CHAPTER 18 THE .NET REMOTING LAYER 569 (Web server hosting)

CHAPTER 18 THE .NET REMOTING LAYER 569 In contrast, the HTTP channel is represented by the HttpChannel class type, which converts message objects into a SOAP format using a related SOAP formatter. As you have seen, SOAP is XML-based and thus tends to result in beefier payloads than the payloads used by the TcpChannel type. Given this, using the HttpChannel can result in slightly slower remote access. On the plus side, HTTP is far more firewall-friendly, given that most firewalls allow textual packets to be passed over port 80. Finally, as of .NET 2.0, we have access to the IPC channel, represented by the IpcChannel type, which defines a communication channel for remoting using the IPC system of the Windows operating system. Because IpcChannel bypasses traditional network communication to cross AppDomains, the IpcChannel is much faster than the HTTP and TCP channels; however, it can be used only for communication between application domains on the same physical computer. Given this, you could never use IpcChannel to build a distributed application that spans multiple physical computers. IpcChannel can be an ideal option, however, when you wish to have two local programs share information in the fastest possible manner. Regardless of which channel type you choose to use, understand that the HttpChannel, TcpChannel, and IpcChannel types all implement the IChannel, IChannelSender, and IChannelReceiver interfaces. The IChannel interface (as you will see in just a bit) defines a small set of members that provide common functionality to all channel types. The role of IChannelSender is to define a common set of members for channels that are able to send information to a specific receiver. On the other hand, IChannelReceiver defines a set of members that allow a channel to receive information from a given sender. To allow the client and server applications to register their channel of choice, you will make use of the ChannelServices.RegisterChannel() method, which takes a type implementing IChannel. Just to preview things to come, the following code snippet illustrates how a server-side application domain can register an HTTP channel on port 32469 (you ll see the client s role shortly): // Create and register a server-side HttpChannel on port 32469. HttpChannel c = new HttpChannel(32469); ChannelServices.RegisterChannel(c); Revisiting the Role of .NET Formatters The final piece of the .NET remoting puzzle is the role of formatter objects. The TcpChannel and HttpChannel types both leverage an internal formatter, whose job it is to translate the message object into protocol-specific terms. As mentioned, the TcpChannel type makes use of the BinaryFormatter type, while the HttpChannel type uses the functionality provided by the SoapFormatter type. Given your work in the previous chapter, you should already have some insights as to how a given channel will format the incoming messages. Once the formatted message has been generated, it is passed into the channel, where it will eventually reach its destination application domain, at which time the message is formatted from protocol-specific terms back to .NET-specific terms, at which point an entity termed the dispatcher invokes the correct method on the remote object. All Together Now! If your head is spinning from reading the previous sections, fear not! The transparent proxy, real proxy, message object, and dispatcher can typically be completely ignored, provided you are happy with the default remoting plumbing. To help solidify the sequence of events, ponder Figure 18-1, which illustrates the basic process of two objects communicating across distinct application domains.
If you are looking for affordable and reliable webhost to host and run your business application visit our ftp web hosting services.

Leave a Reply