.NET Remoting


.NET Remoting

.NET Remoting is a Microsoft application programming interface (API) for interprocess communication released in 2002 with the 1.0 version of .NET Framework. It is one in a series of Microsoft technologies that began in 1990 with the first version of Object Linking and Embedding (OLE) for 16-bit Windows. Intermediate steps in the development of these technologies were Component Object Model (COM) released in 1993 and updated in 1995 as COM-95, Distributed Component Object Model (DCOM), released in 1997 (and renamed ActiveX), and COM+ with its Microsoft Transaction Server (MTS), released in 2000. [cite web | title=Component Object Model and Related Capabilities | author=Software Technology Roadmap | publisher=Carnegie-Mellon Software Engineering Institute | year=2001 | url=http://www.sei.cmu.edu/str/descriptions/com_body.html ] It is now superseded by Windows Communication Foundation (WCF), which is part of the .NET Framework 3.0. The .NET Framework 3.0 is also included with the Windows Vista operating system.

Like its family members and similar technologies such as Common Object Request Broker Architecture (CORBA) and Java's remote method invocation (RMI), .NET Remoting is complex, yet its essence is straightforward. With the assistance of operating system and network agents, a client process sends a message to a server process and receives a reply. [cite book | author=Scott McLean, James Naftel and Kim Williams | title=Microsoft .NET Remoting | year = 2002 | publisher=Microsoft Press ] [cite book | author=Ingo Rammer and Mario Szpuszta | title=Advanced .NET Remoting | publisher=Apress | year=2005 ]

Overview

.NET Remoting allows an application to make an object (termed "remotable object") available across "remoting boundaries", which includes different appdomains, processes or even different computers connected by a network. The .NET Remoting runtime hosts the listener for requests to the object in the appdomain of the server application. At the client end, any requests to the remotable object are proxied by the .NET Remoting runtime over Channel objects, that encapsulate the actual transport mode, including TCP streams, HTTP streams and named pipes. As a result, by instantiating proper Channel objects, a .NET Remoting application can be made to support different communication protocols without recompiling the application. The runtime itself manages the act of serialization and marshalling of objects across the client and server appdomains.cite web | url = http://msdn2.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx | title = .NET Remoting Overview | accessdate = 2007-10-23]

.NET Remoting makes a reference of a remotable object available to a client application, which then instantiates and uses a remotable object as if it were a local object. However, the actual code execution happens at the server-side. A remotable object is identified by "Activation URLs" and are instantiated by a connection to the URL. A listener for the object is created by the remoting runtime when the server registers the channel that is used to connect to the remotable object. At the client side, the remoting infrastructure creates a proxy that stands-in as a pseudo-instantiation of the remotable object. It does not implement the functionality of the remotable object, but presents a similar interface. As such, the remoting infrastructure needs to know the public interface of the remotable object before-hand. Any method calls made against the object, including the identity of the method and any parameters passed, are serialized to a byte stream and transferred over a communication protocol-dependent Channel to a recipient proxy object at the server side("marshalled"), by writing to the Channel's transport sink. At the server side, the proxy reads the stream off the sink and makes the call to the remotable object on the behalf of the client. The results are serialized and transferred over the sink to the client, where the proxy reads the result and hands it over to the calling application. 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. A channel can be composed of a number of different Channel objects, possibly with different heterogeneous transports. Thus, remoting can also work across systems separated by an interconnection of heterogeneous networks, including the internet.cite web | url = http://msdn2.microsoft.com/en-us/library/2e7z38xb(VS.71).aspx | title = .NET Remoting Architecture | accessdate = 2007-10-23] Type safety is enforced by the CTS and the .NET Remoting runtime. Remote method calls are inherently synchronous; asynchronous calls can be implemented using threading libraries. Authentication and access control can be implemented for clients by either using custom Channels or by hosting the remotable objects in IIS and then using the IIS authentication system. [cite web | url = http://msdn2.microsoft.com/en-us/library/aa720577(VS.71).aspx | title = Security | publisher = MSDN | accessdate = 2007-10-23]

References


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • .Net Remoting — NET Remoting это созданный компанией Microsoft API для межпроцессного взаимодействия. Выпущен в 2002 году вместе с версией 1.0 пакета .NET Framework. Это одна из серии технологий от Microsoft, начатой в 1990 году первой версией OLE для 16 разрядн …   Википедия

  • .NET Remoting — ist ein umfassendes, erweiterbares Framework für die nahtlose Kommunikation zwischen Objekten, die sich in verschiedenen Applikationsdomänen oder Prozessen bzw. auf unterschiedlichen Computern befinden. Es ermöglicht sozusagen die Kommunikation… …   Deutsch Wikipedia

  • .NET Remoting — es una tecnología propietaria de Microsoft que permite crear aplicaciones distribuidas. Una de las principales características es la capacidad para poder trabajar desde una máquina con los objetos en memoria de la máquina Remota. Proceso de… …   Wikipedia Español

  • .NET Remoting — est une API de Microsoft pour la communication interprocessus livrée avec la version 1.0 du .NET Framework. Cette technologie est désormais supplantée par Windows Communication Foundation depuis la version 3.0 du framework. Portail de… …   Wikipédia en Français

  • .NET Remoting — У этого термина существуют и другие значения, см. .NET. .NET Remoting  компонент, созданный компанией Microsoft. API для межпроцессного взаимодействия. Реализация от Microsoft протокола SOAP (веб сервисы). Выпущен в 2002 году вместе с… …   Википедия

  • .NET-Framework — Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

  • .NET-Klassenbibliothek — NET Framework Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

  • .NET 3.0 — NET Framework Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

  • .NET Framework — Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

  • .NET Framework 3.0 — NET Framework Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia