1 7.1.6.NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

Objektorientierte Programmierung
Objektorientierte Programmierung
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Definition von Klassen in Java
Kritische Betrachtung
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Ausnahmen HS Merseburg (FH) WS 06/07.
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Sebastian Grahn Sebastian Kühn
Vs Facetten der Verteilungsabstraktion Verteilungsabstraktion (distribution transparency) ist Sammelbegriff für verschiedene Eigenschaften eines.
Einführung in die Programmierung mit Java
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
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.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
JAVA RMI.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Remote Methode Invocation (RMI)
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Einführung in die Programmierung Klassendefinition und Objekte
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
2.4 Rekursion Klassifikation und Beispiele
7.1.5 Java RMI – Remote Method Invocation
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Parameterübergabemechanismen für den Methodenaufruf
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Schleifen
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Die AppDomain Das unbekannte Wesen?
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Vs Grundzüge der Fernaufruf-Implementierung = tatsächliche Aufrufbeziehungen Netz Fernaufrufdienst Transportdienst Hardware BS aus Bibl. Vertreter.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
8.4 Microsoft.NET Framework =  CLR – Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung.
2 Datenabstraktion Geheimnisprinzip:
Vs Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte,
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Vs Java RMI – Remote Method Invocation ( ) (
1 vs NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung.
(mobile objects, auch Objektmigration, object migration)
Von Cem, Maurice und lars
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
 Präsentation transkript:

NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von Programmen in unterschiedlichen Sprachen C# („Csharp“, „Cis“) :Referenzsprache für.NET, Microsoft‘s Antwort auf Java.NET Remoting :Fernaufrufe auf der.NET-Plattform

vs Grundzüge der Fernaufruf-Programmierung in C# Klasse eines fernaufrufbaren Objekts muss erben von System.MarshalByRefObject z.B. using System; using System.Runtime.Remoting; class Server : MarshalByRefObject {private string memo = ""; public string echo(string s) { return memo += s; }

vs Objekterzeugung und –bekanntmachung in 3 Varianten:  Bekanntmachung eines öffentlichen Objekts: Objekt wird lokal erzeugt und dann „veröffentlicht“  Fernerzeugung eines öffentlichen Objekts (SAO): Erzeugung wird lokal vorbereitet, aber erst dann durchgeführt, wenn der erste Klient Interesse zeigt  Fernerzeugung eines privaten Objekts (CAO): Objekt wird auf anderem Rechner erzeugt, und der Erzeuger erhält einen Fernverweis darauf

vs  Bekanntmachung eines öffentlichen Objekts mit Operation der Klasse System.Runtime.Remoting.RemotingServices : using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; TcpChannel channel = new TcpServerChannel(4711); ChannelServices.RegisterChannel(channel); Server server = new Server(); RemotingServices.Marshal(server, "Service"); bewirkt Registrierung bei eingebautem Namensdienst !

vs Nachdem dies auf dem Rechner obelix ausgeführt wurde, erhalten Klienten einen Fernverweis/Vertreterobjekt wie folgt: using System.Runtime.Remoting.Activation; Server s = (Server)Activator.GetObject( typeof(Server), "tcp://obelix:4711/Service"); Verweis auf Vertreter eines anonymen Typs, verträglich mit Server

vs Beachte:  Keine explizite Stub-Erzeugung  Stub Generator ist unsichtbar, erzeugt Stub Code bei Bedarf aus den Metadaten (Schnittstellenbeschreibungen u.a.) der beteiligten Klassen und Schnittstellen.  Explizite Definition einer Schnittstelle für fernaufrufbare Objekte ist üblich, aber nicht obligatorisch.

vs  Fernerzeugung eines öffentlichen Objekts (SAO): Erzeugung wird lokal vorbereitet, aber erst dann durchgeführt, wenn der erste Klient Interesse zeigt ChannelServices.RegisterChannel( new TcpServerChannel(4711)); RemotingConfiguration. RegisterWellKnownServiceType( typeof(Server), „Service", WellKnownObjectMode.Singleton); d.h. ein Objekt mit Zustand (im Gegensatz zu SingleCall )

vs Klient arbeitet wie bei  : Server s = (Server)Activator.GetObject( typeof(Server), "tcp://obelix:4711/Service"); Achtung: Hier taucht weder beim Klienten noch beim Anbieter ein new auf. Das Objekt wird mit einem argumentlosen Konstruktor erzeugt. Es gibt also keine parametrisierte Initialisierung.

vs  Fernerzeugung eines privaten Objekts (CAO): Objekt wird auf anderem Rechner erzeugt, und der Erzeuger erhält einen Fernverweis darauf Server: RemotingConfiguration. RegisterActivatedServiceType(typeof(Server)); Klient – hier beispielhaft für Konstruktor mit 1 Argument: object[] attr = {new UrlAttribute("tcp://host:4711")}; object[] args = {"some constructor argument"}; Server s = (Server)Activator.CreateInstance( typeof(Server), args, attr);

vs Herausziehen der Argumente aus der Erzeugungsoperation und stattdessen Übergabe an eine Konfigurierungs-Operation ermöglicht Fernerzeugung mittels new (nur parameterlos!) für  und  : RemotingConfiguration. RegisterWellKnownClientType( typeof(Server), "tcp://host:4711/Service"); Server s = new Server(); // no Activator.GetObject RemotingConfiguration. RegisterActivatedClientType( typeof(Server), "tcp://host:4712/Service"); Server s = new Server(); // no Activator.CreateInstance

vs Programmbeispiele mit Anleitung zum Übersetzen und Konfigurieren: (Anhang)

vs Parametermechanismen Parameterübergabe in C#: op(int n) Wertparameter (call-by-value) op(ref int n) Variablenparameter (call-by-reference) op(out int n) Variablenparameter, evtl. nicht belegt... bei einfachen Typen. Bei Verweistypen zusätzlich.....

vs Parametermechanismen Parameterübergabe in C#: op(int n) Wertparameter (call-by-value) Bei Fernaufrufen: call-by-value op(ref int n) Variablenparameter (call-by-reference) Bei Fernaufrufen: call-by-value-result ! op(out int n) Variablenparameter, evtl. nicht belegt Bei Fernaufrufen: call-by-result !... bei einfachen Typen. Bei Verweistypen zusätzlich.....

vs Bei Verweistypen zusätzlich beachten (bei Argumenten und Ergebnissen!):  Wenn Objekt fernaufrufbar ( MarshalByRefObject ): Fernverweis wird übergeben;  sonst, wenn Objekt serialisierbar ( [Serializable] ): Objektkopie wird übergeben;  sonst: Ausnahmemeldung  Probleme wie bei Java RMI (7.1.5  )!7.1.5

vs Konfigurationsdateien Auslagerung der netzspezifischen Daten wie Rechnernamen, Portnummern, Protokollnamen, … aus dem Programmtext in Konfigurationsdateien (XML)  erlaubt deren Änderung ohne Neuübersetzung,  flexibilisiert die Installation,  verbessert die Verteilungsabstraktion. (Mehr dazu in )