 |
 | |  |  | | Beschreibung des Werkzeuges |  | .NET Remoting bezeichnet den Nachfolger für Distributed Component Object Model (DCOM). Mit Remoting ist es möglich, verteilte lichtgewichtige RPC-basierte Objektsysteme zu erstellen. Die Anwendung von Remoting ist denkbar einfach. Die Klassenbibliothek definiert eine Klasse MarshalByRefObject, die Basisklasse für alle verteilten Objekte ist. Will man per Objektreferenz auf eine Instanz einer Klasse über Prozessgrenzen hinweg zugreifen, genügt es, die Klasse von MarshalByRefObject abzuleiten, wie folgendes C#-Beispiel illustriert:
public class CFoo: MarshalByRefObject {
...
}
Die Kommunikation in Remotingsystemen ist Remote Procedure Call (RPC)-basiert. Die Architektur von Remoting benennt als wesentliche Elemente:
Verteilte Objekte,
Proxys und
Transportkanäle.
Dabei ist jedes dieser Elemente individuell anpassbar und erweiterbar. Verteilte Objekte werden anders als bei DCOM nicht mehr in der Registry von Windows registriert, sondern durch einen sog. Service Host publiziert. Ein Service Host kann beispielsweise:
ein einfaches Konsolen- oder Windowsprogramm,
ein Windows Systemdienst oder
der IIS sein.
Anders als bei DCOM oder beispielsweise CORBA müssen die Interfaces der verteilten Objekte nicht mehr in einer separaten IDL (Interface Definition Language) beschrieben werden. Analog zu Remote Method Invocation (RMI) ist es möglich, native Interfaces zu verwenden oder einfach die Klasse der verteilten Objekte zu den Clients zu transportieren (was nicht unbedingt empfehlenswert ist). Auch eine Extraktion der Metadaten ist ebenso möglich, wie die Extraktion einer WSDL-Schnittstelle und somit eine Publikation als WebServices WSDL. Die Verwendung von Interfaces ist dabei besonders attraktiv, da das Interface-Konzept elementarer Bestandteil der Plattform ist und somit von alle .NET-konformen Sprachen verstanden werden kann.
Beispiel – das folgende C#-Interface mit dem Aufbau:
public interface IFoo
{
void DoSomething(string message);
}
ist äquivalent zu folgendem Visual Basic.NET Interface:
Public Interface IFoo
Sub DoSomething(ByVal message As String)
End Interface
Wichtig dabei ist, dass das C#-Interface z.B. in einer Visual Basic.NET Klasse implementiert werden kann oder umgekehrt. Aufgrund der Spracheninteroperabilität (siehe Interoperabilität von .NET-Sprachen (Teil 1)) der .NET-Plattform können Interfaces bis zu einem gewissen Grad eine IDL vollständig ersetzen. Ist dies nicht mehr möglich, kann man aus einer solchen Schnittstelle ein WSDL-Schnittstelle generieren und Remoting-Objekte im Stile von Web Services nutzen.
Remoting geht zurzeit im Web Services Hype etwas unter, dennoch ist Remoting Basistechnologie für viele Anwendungen auf der .NET-Plattform, wie beispielsweise:
Windowsanwendungen,
Multithreadinganwendungen,
Anwendungen mit fortgeschrittenen Techniken wie beispielsweise Aspektorientierte Softwareentwicklung und kontextgebundene Objekte sowie
Anwendungen für .NET Enterprise Services.
|  | | Plattformen |  | Windows 2000 Windows XP, Windows 2003 |  | | Hersteller |  | | Microsoft |  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | |  |  |   | Übergeordnet |  |  |  | |  |  | |  |  |  |  |  | .NET Remoting |  |  |  |  |  | Ansprechpartner |  |  |  | |  |  |  | Literaturhinweise |  |  |  | |  |  | |  |  |  |  |  |  |
|