Sie sind hier:
Wissen
Top-Know-how seit 25 Jahren!
Telefon (Mo-Fr 9 bis 16 Uhr): 0201/649590-0 |
Kontaktformular
Alles auch online!
MENU
Medien
Übersicht
Lexikon/Glossar
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Downloads
Newsletter
.NET
Startseite
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: .NET Remoting
Zur Stichwortliste unseres Lexikons
Was ist
.NET Remoting
?
.NET
Remoting ein proprietäres Fernaufrufkonzept der Firma Microsoft im Rahmen des Microsoft
.NET
Framework, ver-gleichbar mit
Remote Method Invocation
(
RMI
) in
Java
. Anders als der Vorgänger
Distributed
Component Object Model
(
DCO
M) ist
.NET
Remoting aber nicht auf ein bestimmtes Über-tragungsformat und -protokoll festgelegt und bietet eine Vielzahl von Aktivierungs- und Konfigurationsoptionen.
.NET
Remoting wird von vielen Verfechtern der losen serviceorientierten Kopplung wegen seiner engen Kopplung kritisiert. In der in
.NET
3.0 enthaltenen Kommunikationsinfrastruktur
Indigo
wird das
.NET
Re-moting-Modell nur noch in wenigen Teilen vertreten sein.
Anders als der Vorgänger
DCO
M ist
.NET
Remoting nicht auf ein bestimmtes Übertragungsformat und -protokoll festgelegt und bietet eine Vielzahl von Aktivierungs- und Konfigurationsoptionen.
Der Kern des
.NET
Remoting ist in der mscorlib.dll und der
System.Runtime.Remoting
.dll implementiert.
Enge Bindung
.NET
Remoting unterscheidet zwischen der Objektübergabe By-Reference- oder By-Value. Außerdem wird unterschieden zwischen Objekt mit Server-Aktivierung (
Server-Activated Object
s –
SAO
, auch: Well Known Types) und Objekten mit Client-Aktivierung (
Client-Activated Object
s –
CAO
, auch:
Activated Type
s).
Im
CAO
-Fall ist immer (sowohl im By-Value als auch By-Reference-Fall) eine Klasse zu verwenden – die Aktivierung ist über die Schnittstelle alleine nicht möglich. Der
Objekttyp
kann im
SAO
-Fall dem Client durch eine Klasse oder eine Schnittstelle bekannt gegeben werden. Die Nutzung einer Schnittstelle hat den Vorteil, dass der Client nur die Schnittstelle kennen muss, nicht die eigentliche Implementierung.
SAO
ist allerdings mit einem Call-by-Reference möglich.
Bei den server-aktivierten Objekten unterscheidet man ferner zwischen zwei Fällen:
Single Call: Bei jedem
Methode
naufruf wird eine neue Objektinstanz erzeugt. Folglich müssen die Objekte zustandslos sein, da zwei nachfolgende
Methode
naufrufe nicht das gleiche Objekt erreichen.
Singleton
: In diesem Fall existiert nur eine Objektinstanz, bei der alle Client-Objekte ein und dasselbe Server-Objekt verwenden. Ein solches Objekt eignet sich z. B. zum Austausch von Daten zwischen Clients.
Bei der Client-Aktivierung erhält der Client die Kontrolle über Art und Anzahl der Server-Objekte. Hier wird bei jeder Instanziierung im Client ein zugehöriges Objekt auf dem Server erzeugt, d. h. die Anzahl der Objekte, die der Client sieht, entspricht der Anzahl der Objekte auf dem Server.
Protokolle und Formate
Anders als der Vorgänger
DCO
M ist
.NET
Remoting nicht auf ein bestimmtes Übertragungsformat und -protokoll festgelegt und bietet eine Vielzahl von Aktivierungs- und Konfigurationsoptionen.
Zur Übertragung des Fernaufrufs verwendet
.NET
Remoting
Formatter
und
Channel
s:
Ein
Formatter
ist ein Mechanismus, der ein Objekt in einen Byte-Strom umzuwandelt bzw. zurückwandelt. Man spricht in diesem Zusammenhang von Serialisierung bzw.
Deserialisierung
.
.NET
2.0 enthält einen binären und einen
SOA
P-
Formatter
.
Ein
Channel
bietet ein Transportmedium für serialisierte Objekte an.
.NET
2.0 enthält
TCP
,
HTTP
,
IPC
(Inter-Prozess-Kommunikation) sowie einen Application-Domain-internen
Channel
.
Unterschiede zu den
Webservice
s
Hinsichtlich der Performanz ist
.NET
Remoting über
TCP
mit dem binären
Formatter
wesentlich performanter als über
HTTP
/
SOA
P. Auch
HTTP
/binär ist schneller als
HTTP
/
SOA
P. Remoting über
HTTP
/
SOA
P ist ähnlich performant wie
XML
-
Webservice
s. Keines der vorgenannten Verfahren ist jedoch so schnell wie
DCO
M.
Unterschiede zu den
Webservice
s
.NET
Remoting mit dem
SOA
P-
Formatter
über
HTTP
ist nicht gleichzusetzen mit
XML
-
Webservice
s, auch wenn dort ebenfalls
SOA
P und
HTTP
zum Einsatz kommen.
.NET
Remoting mit
SOA
P/
HTTP
ist nur unter bestimmten Voraussetzungen kompatibel mit
XML
-
Webservice
s (siehe [
MSDN
12]).
.NET
Remoting nutzt das so genannte »
RPC
-codierte«
SOA
P, das nicht Teil des Basic Profile der Web Services Interoperability Organization (
WS-I
) ist. Die Bereitstellung von
XML
-
Webservice
s via
.NET
Remoting beschränkt daher die Interoperabilität zu anderen Plattformen und die daher nicht zu empfehlen.
Hosting
Damit ein Objekt für Remoting-Clients überhaupt erreichbar ist (also die Funktionalitäten zur Verfügung stellt, die das Objekt zum Server macht), muss der Server in einem Host-Prozess angeboten werden. Unter COM hat die Laufzeitumgebung selbst einen universellen Host angeboten – das
.NET
Framework stellt einen solchen Host-Prozess nicht zur Verfügung. Unter
.NET
existieren für das Hosting folgende Optionen:
Entwicklung eines eigenen Host (z. B. in Form einer Konsolenanwendung oder eines Windows-Dienstes)
Nutzung des
Internet Information Server
(
IIS
)
Nutzung des COM+ Application Servers (alias
.NET
Enterprise Services)
Weitere Möglichkeiten
Deklarative Remoting-Konfiguration: Neben der Konfiguration von Client und Server durch Programmcode ist alternativ auch eine Konfiguration innerhalb einer
XML
-Anwendungskonfigurationsdatei möglich. Die deklarative und die programmatische Konfiguration können parallel angewendet werden, d. h. eine Anwendung kann auch noch weitere Ports im Programmcode deklarieren, obwohl bereits eine
Konfigurationsdatei
eingelesen wurde.
Lebensdauer: In
DCO
M verwendet ein Server die Referenzzählung seiner Clients und ein Client einen periodischen Ping, um die fortwährende Existenz des Servers zu prüfen.
.NET
Remoting vermeidet den
Netzwerk
-Overhead durch einen Lebensdauer-Mechanismus mit Leihdauer (Lease). Jedes Objekt ist mit einer Time-to-Live (TTL) versehen, die heruntergezählt wird. Die Standard¬lebensdauer beträgt fünf Minuten. Ein Server-Objekt kann die Dauer aber auf andere Werte setzen (auch auf »unendlich«). Die Lebensdauer eines Objekts kann durch einen erneuten
Methode
naufruf oder durch so genannte Sponsoren verlängert werden.
Austausch generischer Datentypen: Ab
.NET
2.0 unterstützt
.NET
Remoting auch generische Datentyoen
Authentifizierung
und Verschlüsselung: Ab
.NET
2.0 wird in
TCP
- und
IPC
-
Channel
Authentifizierung
und Verschlüsselung untersützt. In
.NET
1.x gab es keinerlei Sicherheitsfunktionen.
Zugriffsrechtelisten: Der in
.NET
2.0 neu eingeführte
IPC
-
Channel
unterstützt auch Zugriffsrechtelisten (
ACL
s).
[
MSDN
12]
ASP
.NET
Web Services oder
.NET
Remoting - So treffen Sie die richtige Entscheidung
http://www.microsoft.com/germany/msdn/library/net/AS
PNET
WebServicesOderNETRemotingSoTreffenSieDieRichtigeEntscheidung.mspx
Querverweise zu anderen Begriffen im Lexikon
WS-I
Distributed Component Object Model
DCOM
ACL
TCP
SOA
DCO
HTTP
MSDN
Internet Information Server
IIS
IPC
XML
.NET Enterprise Services
ASP.NET
Remote Method Invocation
RMI
CAO
Client-Activated Object
CAO
System.Runtime.Remoting
Server-Activated Object
SAO
Component Object Model
COM
RPC
PNET
Konfigurationsdatei
.NET 2.0
ASP
ACL
.NET 2.0
.NET 3.0
Authentifizierung
Deserialisierung
Activated Type
Serialisierung
Webservice
Formatter
Objekttyp
Singleton
Netzwerk
.NET 3.0
Channel
Methode
Objekt
Indigo
.NET
COM+
Java
Beratung & Support:
Anfrage für Beratung/Consulting zu den Themen .NET Remoting;
Gesamter Beratungsthemenkatalog
Technischer Support zum Themen .NET Remoting;
Schulungen zu diesem Thema
.NET Remoting
.NET Akademie: Webservices, verteilte Systeme, SOA und REST mit .NET/.NET Core (WCF, ASP.NET WebAPI)
SOAP vs. REST
Serviceorientierte Architekturen (SOA)
.NET-Performance (Leistungsprobleme/Leistungsengpässe)
Mehrschichtiges Entwickeln mit .NET
Anfrage für eine individuelle Schulung zum Thema .NET Remoting;
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Microsoft .NET 3.0 Crashkurs
Microsoft .NET 2.0 Crashkurs - Final Edition
Alle unsere aktuellen Fachbücher
E-Book-Abo für nur 99 Euro im Jahr