1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

C ommon O bject R equest B roker A rchitecture
DI Christian Donner cd (at) donners.com
.NET Remoting und XML Web Services. Ralf Westphal
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Basis-Architekturen für Web-Anwendungen
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
JAVA RMI.
Introducing the .NET Framework
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Seminar Internet Technologien
Remote Methode Invocation (RMI)
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Björn Schmidt, Hoang Truong Nguyen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Seminarleiter: Herr Prof. Klement und Herr Prof. Kneisel
1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller.
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Internet: Funktionsweise und Dienste
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
PSI - Überblick und Szenarien
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SQL Server 2005 CLR-Integration
Systemaufbau / Komponenten
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Management- und Web Services- Architekturen
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Einführung in Web Services Web Services in der Praxis
Meldungen über Ethernet mit FINS/UDP
Seminar aus Softwareentwicklung
Netzwerke.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
Die AppDomain Das unbekannte Wesen?
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
->Prinzip ->Systeme ->Peer – to – Peer
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
8.4 Microsoft.NET Framework =  CLR – Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller.
Cloud Entwicklung: Web Services
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Implementieren von Klassen
 Präsentation transkript:

1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller

2 Verteilte Applikationen Früher waren Applikationen eigenständige Einheiten mit wenig Integration. Heute sind Applikationen in Komponenten aufgeteilt, die miteinander kommunizieren. Applikation Code und Daten

3 Kommunikation unter Server Applikationen Manche sind in der Nähe (Intranet) Manche weiter weg (Internet) Manche hinter Firewalls Manche benutzen gleiche Protokolle (HTTP, SOAP), laufen aber auf unterschiedlichen Plattformen Manche benutzen gleiche Protokolle und laufen auf derselben Plattform (z.B..NET) Verteilte Applikationen Kommunikation im Netzwerk

4 Zwischen.NET und Non-.NET Applikationen Verwende Web Service Protokolle HTTP, SOAP, WSDL Zwischen.NET Applikationen Verwende wenn möglich Binärprotokolle Binär = High Speed Verwende wenn nötig Web Service Protokolle HTTP um Firewalls zu überwinden Verteilte.NET App.

5 Was ist.NET Remoting? Remoting ist der Zugriff auf Objekte über Grenzen hinweg. Grenzen können unterschiedliche Maschinen, Prozesse, Application Domains oder Kontexte sein. Marshaling heißt Objekte für den Transport über Grenzen hinweg aufzubereiten.

6 Appdomains Die CLR abstrahiert OS-Prozesse und arbeitet mit virtuellen Prozessen Isolierter Ausführungsraum für Anwendungen Unabhängig vom OS Konzept für Prozesse und Threads Diese virtuellen Prozesse werden Appdomains genannt Appdomains dienen als Ausführungscontainer für Assemblies

7 Appdomains Eine Appdomain existiert in genau einem Prozess Ein Prozess kann mehrere AppDomains beinhalten Aufrufe über AppDomain-Grenzen hinweg erfordert Marshaling Prozess 1 Prozess 2 AppDomain 1AppDomain 3AppDomain 2 Objekt Marshaling

8 AppDomain erzeugen using System; public class MyApp { public static int Main(string[] args) { AppDomain child = AppDomain.CreateDomain("childapp", null, null); return child.ExecuteAssembly("yourapp.exe", null, args); } using System; public class MyApp { public static int Main(string[] args) { AppDomain child = AppDomain.CreateDomain("childapp", null, null); return child.ExecuteAssembly("yourapp.exe", null, args); } Erzeuge neue AppDomain im aktuellen Prozess Führt Assembly in neuer AppDomain aus Aufruf blockiert Main Methode, bis yourapp.exe beendet ist

9 AppDomain Beispiel 1: Fibonacci Zahlen

10 Objekte und AppDomains using System; using System.Runtime.Remoting; public class MyApp { public static int Main(string[] args) { AppDomain child = AppDomain.CreateDomain("sandbox", null,null); ObjectHandle oh = child.CreateInstance("foolib", "Target"); Target t = (Target)oh.Unwrap(); t.DoSomethingInteresting(); } using System; using System.Runtime.Remoting; public class MyApp { public static int Main(string[] args) { AppDomain child = AppDomain.CreateDomain("sandbox", null,null); ObjectHandle oh = child.CreateInstance("foolib", "Target"); Target t = (Target)oh.Unwrap(); t.DoSomethingInteresting(); } CreateInstance erzeugt ein Objekt Target in der AppDomain sandbox Rückgabe ist ein Objekthandle Unwrap() erzeugt ein Proxy Objekt, über das auf Target zugegriffen wird

11 AppDom. und Marshaling Aufrufe über Domaingrenzen hinweg erfordert Marshaling Marshal by value: Kopie des gesamten Objekts wird ans Ziel gesendet Keine Beziehung zum Original Klassen müssen mit dem Attribut [serializable] versehen werden oder das ISerializable Interface implementieren Marshal by reference: Objektreferenz wird ans Ziel gesendet Proxy verknüpft Referenz und Original Wird durch Ableitung einer Klasse von System.MarshalByRefObject erreicht

12 Marshaling Beispiel 2: Fibonacci Zahlen

13 Remoting Arichtektur Messages: Was wird gesendet Channels: Wohin wird es gesendet Formatter: Wie wird es gesendet Proxy Erzeugt aus Meth.aufrufen des Clients Messages Dispatcher Generiert am Server aus Messages Meth.aufrufe ServerClient Channel "Proxy" Dis- patcher

14 Was: Messages Messages sind Objekte implementieren IMessage Interface einfache Wertetabellen {Schlüssel, Wert}.NET Messagetypen: Konstruktoraufrufe Methodenaufrufe Vordefinierte Typen haben vordefinierte Einträge in der Wertetabelle Aufrufvarianten Synchron: Aufruf mit sofortiger Antwort Asynchron: Aufruf mit verzögerter oder fehlender Antwort.

15 Wohin: Channels Channels transportieren Messages TCP Channel Für schnelle LAN Kommunikation Permanente Socket Verbindung HTTP Channel Für Kommunikation über Internet Keine permanente Verbindung notwendig Custom Channels IPX, Pipes Channels können Sinks implementieren Zum Überwachen und Logging Erweiterte Sicherheitsprüfungen Messages komprimieren

16 Wie: Formatter Formatter serialisieren.NET Objekte in ein spezielles Wire-Format.NET Formatter: SOAP und binärer Formatter eigene Formatter: IIOP, RMI, ORPC Werden von Channels dynamisch verwendet Wahl des Channels und Formatters hängt vom Unternehmensumfeld ab Channel Kodieren ins Wire-Format Dekodieren aus Wire-Format SOAP, Binary, eigene Formate

17 Zugriff auf Objekte Remote Objekttypen Server Konfiguration Aktivierung und Zugriff Client Konfiguration

18 Well known Objects (Server activated) Singleton Es gibt eine einzige Objektinstanz für alle Clients Objekt wird mit Serverstart erzeugt Single-call Bei jedem Aufruf wird ein neues Objekt erzeugt und danach zerstört Auf Server Farmen kann dadurch die Last verteilt werden Client-Activated Objects Jeder Client bekommt sein eigenes Objekt Remote Objekttypen

19 Server meldet Objekt im System an Clients verbindet sich mit dem Objekt Konfiguration über Files oder im Code über Methodenaufrufe.NET Aktivierungsmodell ist nicht wie COM.NET ist eher wie CORBA (!) ohne aktiven Endpunkt (Serverdienst) gibt es keine Verbindung Keine Registry Einträge.exe Server kann nicht remote-aktiviert werden Vereinfacht Remoting wesentlich Well Known Objects

20 Server konfigurieren // Channel mit HTTP als Transportprotokoll erzeugen // und auf Port anmelden. // Der Default Formatter des HTTP Channels ist SOAP. HttpChannel httpChannel = new HttpChannel(65100); ChannelServices.RegisterChannel(httpChannel); // Das Well Known Objekt "FinanzServices" wird angemeldet. // Das Objekt wird über den Endpunt "FService" angesprochen. RemotingConfiguration.RegisterWellKnownServiceType ( typeof(FinanzServices), "FService", WellKnownObjectMode.Singleton ); // Channel mit HTTP als Transportprotokoll erzeugen // und auf Port anmelden. // Der Default Formatter des HTTP Channels ist SOAP. HttpChannel httpChannel = new HttpChannel(65100); ChannelServices.RegisterChannel(httpChannel); // Das Well Known Objekt "FinanzServices" wird angemeldet. // Das Objekt wird über den Endpunt "FService" angesprochen. RemotingConfiguration.RegisterWellKnownServiceType ( typeof(FinanzServices), "FService", WellKnownObjectMode.Singleton ); Konfiguration im Sourcecode Konfiguration über.config Datei RemotingConfiguration.Configure("FService.exe.config");

21 Server.config Datei <wellknown mode="Singleton" type="FinazServices, FService" objectUri="FService" /> <wellknown mode="Singleton" type="FinazServices, FService" objectUri="FService" />

22 Service & Server Beispiel 3: FinanzServices

23 Client benötigt Informationen über die Remote Klasse Methodennamen, Parameter, Rückgabewert Werden zur Compile- und Laufzeit benötigt Interface enthält diese Informationen Client referenziert Interface Remote Klasse implementiert Interface SoapSuds.exe generiert Interface Service Interface Soapsuds.exe –ia:FService –nowp –oa:FSInterface.dll

24 Client konfigurieren // Activator.GetObject() liefert einen Proxy des // remote Objekts. FSInterface FS = (FSInterface)Activator.GetObject ( typeof(FSInterface),// Typ des remote Objekts " ); // Endpunkt // Activator.GetObject() liefert einen Proxy des // remote Objekts. FSInterface FS = (FSInterface)Activator.GetObject ( typeof(FSInterface),// Typ des remote Objekts " ); // Endpunkt Aufruf über Activator Klasse Konfiguration im Source Konfiguration über.config Datei RemotingConfiguration.Configure("WinHCalc.exe.config"); Type type = RemotingConfiguration. GetRegisteredWellKnownClientTypes()[0].ObjectType; String url = RemotingConfiguration. GetRegisteredWellKnownClientTypes()[0].ObjectUrl; FSInterface FS = (FSInterface)Activator.GetObject(type, url); RemotingConfiguration.Configure("WinHCalc.exe.config"); Type type = RemotingConfiguration. GetRegisteredWellKnownClientTypes()[0].ObjectType; String url = RemotingConfiguration. GetRegisteredWellKnownClientTypes()[0].ObjectUrl; FSInterface FS = (FSInterface)Activator.GetObject(type, url);

25 Client Beispiel 4: WinHCalc

26 Client Beispiel 5: ObjRef via File

27 Fragen? Uff...

28 Glossar IIS: Microsoft Internet Information Server XML: eXtensible Markup Language. Textbasiertes, allgemeines Datenformat, das Grundregeln für den Aufbau eigener Datenformate definiert. CORBA: Common Object Request Broker Architecture. Konsortialstandard der Object Management Group (OMG) als Richtline zur Implementation von Objektsystemen. CDO: Collaboration Data Objects. ActiveX Controls, die es erlauben, einfach Mail aus Anwendungen heraus zu versenden. RDS: Remote Data Service. ADO Technologies, die es erlaubt, Recordsets über Netzwerke zu remoten. SMTP: Simple Mail Transport Protocol. Standardisiertes Internetprotokoll zum Austausch von . SOAP: Simple Object Access Protocol. XML-basierter Standard zum Datenaustausch zwischen Systemen.