I view Midas
Just saw the DFW's "Borland and N-Tier's complaint", found that today's blog has content to be written: P
I very much agreed with the current points, the masters are very keen on hipster, or "impetuous". I have also seen very many people in three layers for three floors, complicate simple questions, and make it unnecessary into three layers specially changed to three layers, and the result is not compensated, and the matter is half.
But some technical analysis behind Wang Xiong, I think there is still worth it.
First, Li Wei said: The connection speed of the DCOM is slower than the socket connection, but the transfer data is fast than the socket connection after the connection is completed. I think it is basically correct. Pay attention to a little: Socket here does not refer to Socket communication, but refers to the SocketConnection of Borland.
The problem is that Wang Xiong puts DCOMCONNECTION and DCOM to a Tan. The DCOM application is equivalent to a remote Automation application, which is implemented by the ORPC protocol to transmit the IDispatch interface. The so-called DCOMCONNECTION is a DCOM-based ORPC protocol to transmit MIDAS's Iappserver interface (which is also derived from the IdisPatch interface), while Midas (not only Midas, DNA) does not limit the DCOM connection (ie ORPC) server must be DCOM application, later MTS, COM is not based on this, even now .NET Remoting is based on this, it is based on mature standard RPC, combined with Windows security mechanism development, the most critical, it The underlying protocol is also TCP / IP (ORPC uses two protocols for UDP and TCP). Wang Xiong said the so-called elimination, it should refer to DCOM applications, not to DCOM.
It is undeniable that the MS Design ORPC protocol is completely Windows-based domain security mechanism, which determines that there is a lot of restrictions, especially because of the dynamic port, so basically cannot pass through the firewall (not, you can open Firewall All ports can be, but the firewall is inseparable), but there are other ways to solve, typically the IIS-based CIS (COM Internet Services) technology provided by MS, which is Borland's SocketConnection and WebConnection.
Essentially these techniques that pass through FireWall are so-called tunnel technology. That is, through a pair of agents to transfer ORPC's requests and responses to pass through other protocols. Where the essence of CIS and WebConnection is used as an intermediate agreement with the HTTP protocol, and SocketConnection uses TCP protocols. as follows:
DCOM Client == [Remote Interface Call / ORPC] ==> Server (DCOM / MTS / COM )
Dcom client == [local interface call] => Client agent (socketconnection / webconnection etc.) == [Intermediate protocol: TCP / http] => Server agent (SCKTSRVR / HTTPSRVR ETC.) == [Local interface call] => Server (DCOM / MTS / COM )
One is a standard DCOM connection, which is the tunnel connection because tunnel has many intermediate steps, so data transmission performance is more poor. But why is the connection speed faster than DCOM? Because ORPC has security constraints, you need authentication when connecting, and after using tunnel, both sides are called, without security authentication, so the connection speed is faster. But this is the need to handle security issues, such as the SocketConnection provides Interceptor technology, and WebConnection requires the use of SSL. However, according to I know, most people doing these two applications have not considered this problem (it is said that some people use the agent hunter to search the 211 port number of the Internet, actually find a pile of addresses, sweat). Just giving a friend for a friend, he needs to transform WebConnection for safety considerations, so it is just more familiar with its implementation mechanism (otherwise Midas has not been used for a few years, so I will forget it almost.). Wang Xiong said that WebConnection will lead to significant efficiency, which I agree, because in WebConnection, Marshall is required to make Marshall, and encode the text format required for the HTTP protocol, to HTTPSRVR, turn HTTP text to local COM transfer. Relatively, the binary data efficiency of SocketConnection is definitely higher than that of HTTP, not to mention the application layer protocols such as the HTTP used by WebConnection, and it is also good to use the underlying TCP protocol of SocketConnection. However, if you use SocketConnection, you must open a port on the firewall for use. For some firewalls that can only access the Web, it will be powerful.
As for XML and HTTP SOAP / WebService, I also agree with the Wang Xiong. Basically, it has the advantages of WebConnection (just genericity and standardism is not as good as SOAP), and the base64 encoding for WebConnection is much higher than XML encoding in time efficiency and spatial efficiency. Personally think that if it is not necessary to interconnect with heterogeneous systems, SOAP / WebService should still be avoided.
But Wang brother believes that HTTP is inefficient, and I don't dare to get together. In some cases, with the sacrificial efficiency to exchange the flexibility or worth it, as for the query of the Wang Xiong querying the data of M, the problem is not very big for the current network, even if the data is large It can be solved by reducing the number of records per transmission. After all, the data that can be seen at a time using the client is limited.
The demanding requirements of the Web firewall are thrown, and SocketConnection should be better choice or in flexibility in performance. But unfortunately, the SocketServer provided by Borland does not have the ability of industrial applications. The specific Wang brother has been analyzed very well, and I will not go. But the Wang Xiong has no SocketConnection, I feel that it is not very appropriate.
For Borland, Scktsrvr is a small program provided with Delphi / BCB. It is impossible to require too high. Tuxedo is unfair, Tuxedo is one of the main earning products of BEA, one tuxedo is more than Delphi is expensive, there is no reason to ask Delphi free with a product with Tuxedo. Borland provides SCKTSRVR source code for SckTSRVR is also: if you need a high performance request, you can modify it with a better way to complete the port with your source code.
Of course, for the current situation, Midas cannot be a very good multi-layer solution, it is impossible to count on all multi-layer applications with a multi-layer technology (ie, there is a hammer in the so-called hand, what to see They are all nails, but Midas is finally one of the simplestations. In the final analysis: technology is not fundamentally, using technology - this is the foundation.