What is .Net Remoting


.Net Remoting

This is Microsoft Application Programming Interface (API) which was released in 2002 for Inter-process Communications. Which was a part of .Net Framework 1.0.

History

1990       (OLE)      Object Linking and Embedding for 16-bit windows.
1993       (COM)    Component Object Model.
1997       (DCOM) Distributed Component Object Model also known as Active X
2002       (Remoting)
Current    (WCF) Windows Communication Foundation .Net FW 3.0


Methods Similar to Remoting

Common Object Request Broker Architecture (COBRA) and
Java's Remote Methode Invocation (RMI)


What happens in .Net Remoting

*  In Remoting application make an object available beyond the remoting boundries, which may be diffierent AppDomains, Processes or different computers connected by N/W.

*  .Net Remoting runtime hosts the listener for requests to the objects in the AppDomain (IIS) of the Server Application.

*  At Client side any requests to the remotable object are proxied by the .Net Remoting over Channel Objects, which encapsulate the actual transport mode (includes TCP, HTTP and Named Pipes)

*  The Runtime itself manages the act of Serialization and Marshalling of objects across the Client and Server AppDomain.

*  .Net Remoting makes a reference of a remotable object available in Client applicatin, which then instantiate and uses a remotable object

*  Actual code execution happens at the server-side only.

*  A listener for object is created by Remoting Runtime when the server registers the channel which is used to connect the remotable object.

*  Any method calls made against the object, including the identity of the method and any parameters passes are serialized toa byte stream and transfered over a communication protocal - dependent Channel to a receipent proxy object at the server side.

*  At server side proxy reads the stream off the sink and makes the call to the remotable object on behalf of the Client.

*  If the remotable object needs to make a callback to a client object for some services, the client application must mark it as remotable and have a remoting runtime host a listener for it. The server can connect to it over a different Channel, or over the already existent one if the underlying connection supports bidirectional communication.


No comments: