Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.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
Konferenzen/Events
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
(
DCOM
) 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
DCOM
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
DCOM
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
SOAP
-
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 Webservices
Hinsichtlich der Performanz ist .NET Remoting über
TCP
mit dem binären
Formatter
wesentlich performanter als über HTTP/
SOAP
. Auch HTTP/binär ist schneller als HTTP/
SOAP
. Remoting über HTTP/
SOAP
ist ähnlich performant wie
XML-Webservice
s. Keines der vorgenannten Verfahren ist jedoch so schnell wie
DCOM
.
Unterschiede zu den Webservices
.NET Remoting mit dem
SOAP
-
Formatter
über HTTP ist nicht gleichzusetzen mit
XML-Webservice
s, auch wenn dort ebenfalls
SOAP
und HTTP zum Einsatz kommen. .NET Remoting mit
SOAP
/HTTP ist nur unter bestimmten Voraussetzungen kompatibel mit
XML-Webservice
s (siehe [MSDN12]). .NET Remoting nutzt das so genannte »
RPC
-codierte«
SOAP
, 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
DCOM
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).
[MSDN12]
ASP.NET Web Services oder .NET Remoting - So treffen Sie die richtige Entscheidung
http://www.microsoft.com/germany/msdn/library/net/ASPNETWebServicesOderNETRemotingSoTreffenSieDieRichtigeEntscheidung.mspx
Querverweise zu anderen Begriffen im Lexikon
Distributed Component Object Model (DCOM)
Internet Information Server (IIS)
Remote Method Invocation (RMI)
.NET Enterprise Services
System.Runtime.Remoting
Client-Activated Object (CAO)
Server-Activated Object (SAO)
Konfigurationsdatei
Authentifizierung
Deserialisierung
XML-Webservice
.NET Framework
Activated Type
Formatter
Singleton
Objekttyp
.NET 3.0
Netzwerk
Methode
Channel
Indigo
Java
.NET Framework 2005 (.NET 2.0)
Distributed Component Object Model (DCOM)
Web Services Interoperability Organisation (WS-I)
Simple Object Access Protocol (SOAP)
Asynchronous Communication Layer (ACL)
Client Activated Object (CAO)
Remote Procedure Call (RPC)
Interprocess Communication (IPC)
Internet Information Server (IIS)
Transmission Control Protocol (TCP)
Remote Method Invocation (RMI)
Server-Activated Object (SAO)
Beratung & Support
Anfrage für Beratung/Consulting zu .NET Remoting
Gesamter Beratungsthemenkatalog
Technischer Support zum .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)
Mehrschichtiges Entwickeln mit .NET
Anfrage für eine individuelle Schulung zum Thema .NET Remoting
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
PowerShell – kurz & gut
C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin
ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications
Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
Moderne Datenzugriffslösungen mit Entity Framework Core 3.1
C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 3.0
Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch
Moderne Datenzugriffslösungen mit Entity Framework Core 2.1/2.2
Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
Programmierung in Python
C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1
Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 2.0
Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
Angular - Das Praxisbuch zu Grundlagen und Best Practices
Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2
Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
Introducing Regular Expressions: JavaScript and TypeScript
Introducing Web Development
Introducing Bootstrap 4
Programming Web Applications with Node, Express and Pug
Einführung in TypeScript: Grundlagen der Sprache TypeScript 2
Pug – Die Template-Engine für node.js
Web-Programmierung mit Node, Express und Pug
Windows PowerShell 5 – kurz & gut
Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
Windows PowerShell 5.0 - Das Praxishandbuch
PHP 7 und MySQL: Von den Grundlagen bis zur professionellen Programmierung
Windows Scripting Lernen
.NET Praxis - Tipps und Tricks für .NET und Visual Studio
Grundlagen für Web-Entwickler: Protokolle, HTML und CSS
Bootstrap 3 - Stile und Komponenten
Bootstrap 4 - Stile und Komponenten
Einführung in JavaScript: ECMAScript 5
Einführung in node.js
express – Middleware für node.js
JADE – Die Template Engine für node.js
Reguläre Ausdrücke in JavaScript
Moderne Datenzugriffslösungen mit Entity Framework 6
C++ Standardbibliothek
AngularJS: Moderne Webanwendungen und Single Page Applications mit JavaScript
Microsoft SharePoint Server 2013 und SharePoint Foundation: Das umfassende Handbuch
SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
Moderne Webanwendungen mit ASP.NET MVC und JavaScript
Windows PowerShell 4.0 - Das Praxishandbuch
JavaScript: Das umfassende Handbuch, inkl. HTML5, JavaScript-Frameworks, jQuery, OOP
C++11 für Programmierer
C++ kurz und gut
Microsoft ASP.NET 4.5 - Entwicklerbuch
Moderne Webanwendungen mit ASP.NET MVC
Verteilte Systeme und Services mit .NET 4.5
Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
Windows 8 für Administratoren
Windows 8.1 - Das Handbuch (27. November 2013)
Windows Store Apps entwickeln mit C# und XAML - Crashkurs
.NET 4.5 Update
Windows Scripting Lernen
WPF 4.5 und XAML
Datenbankprogrammierung mit .NET 4.5
C++11: Der Leitfaden für Programmierer zum neuen Standard
Verteilte Systeme und Services mit .NET 4.0
Microsoft ASP.NET 4.0 mit C# 2010 - Entwicklerbuch
Agile Software Engineering with Visual Studio
Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
Microsoft SharePoint Server 2010 und SharePoint Foundation 2010
Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
Microsoft Viusal C# 2010
Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
Programmieren mit dem ADO.NET Entity Framework
.NET 4.0 Crashkurs
Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
.NET 4.0 Update
Windows PowerShell 2.0 - Das Praxishandbuch
Windows 7 im Unternehmen
Agile Muster und Methoden
Ajax
ASP.NET 4.0
ASP.NET 4.0 mit Visual C# 2010
JavaScript
PHP 5-Migration
Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
SQL Server 2008 R2: Das Programmierhandbuch. Inkl. ADO.NET 3.5, LINQ to Entities und LINQ to SQL
Visual Basic 2010
Windows PowerShell 2.0 - Crashkurs
Windows Server 2008 R2
Windows Scripting
Windows Scripting Lernen
Data Mining mit Microsoft SQL Server
Windows 7 für Administratoren
Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Entwicklerbuch
.NET 3.5
Essential PowerShell
.NET 3.5 Crashkurs
Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr