A Überblick über die 1. Übung
|
|
- Stephan Burgstaller
- vor 5 Jahren
- Abrufe
Transkript
1 A Überblick über die 1 Übung A2 Übungstermine A2 Übungstermine Organisatorisches Sun RPC RMI Tafelübung: Mittwoch Uhr (Raum 0031) Rechnerübung: Freitag 12:00-14:00 Uhr (Raum 01155) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 1 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 3 A1 Organisatorisches A1 Organisatorisches A3 Übungsaufgaben A3 Übungsaufgaben 1 Allgemeines Tobias Distler TobiasDistler@informatikuni-erlangende Raum: 0041 Michael Gernoth MichaelGernoth@informatikuni-erlangende Raum: 0042 Anmeldung: über WAFFEL: Projektverzeichnis: /proj/i4vs/<loginname> Bearbeitung der Übungsaufgaben in Zweier-/Dreiergruppen Gruppenzugehörigkeit festlegen mit: /proj/i4vs/bin/vsgroups Alle Aufgaben müssen pünktlich abgegeben werden Korrektur erfolgt durch Demonstration in den Übungen (CIP-Pool 01155): Aufgaben 1&2: Aufgaben 3&4: Aufgaben 5&6: Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 2 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 4
2 A4 Abgabe A4 Abgabe Abgabe durch einchecken der Lösung in vorgegebenes Subversion- Repository Repository wird von uns nach Aufruf von "vsgroups" manuell erzeugt Erreichbar per HTTPS Zugangsdaten werden per mitgeteilt Login-Name entspricht dem CIP-Pool Login Änderungen übernehmen Jede Änderung (zb editieren, anlegen, löschen, einer Datei) an der Working-Copy muss dem zentralen Repository mitgeteilt werden > svn commit <Hier öffnet sich ein Editor für die Log-Message> Sending Makefile Transmitting file data Committed revision 2 Working-Copy aktualisieren Um die im Repository gespeicherten Änderungen (zb einer anderen Person) in die eigene Kopie zu übernehmen, muss diese aktualisiert werden > svn up U Makefile Updated to revision 2 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 5 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 7 Checkout des Repositories Dateien werden in eine lokale,,working-copy ausgecheckt und können dort bearbeitet werden > svn co Authentication realm: < VS Subversion Repository Password for gernoth : A gruppe0/simplex Checked out revision 1 Dateien hinzufügen Dateien, die in der Working-Copy angelegt werden, fallen nicht automatisch unter die Kontrolle der Versionsverwaltung Dateien entfernen Eine Datei nur in der Working-Copy zu löschen ist nicht ausreichend, sie wird beim nächsten "svn up" wiederhergestellt > svn delete Makefile D Makefile Gelöschte Datei wiederherstellen Eine gelöschte Datei kann aus einer früheren Revision wiederhergestellt werden > svn cp -r 2 Makefile A Makefile > svn add Makefile clntc svcc simplex A Makefile Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 6 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 8
3 B Fernaufruf-Systeme aus Benutzersicht Änderungen anzeigen Während der Arbeit kann es nützlich sein, sich die aktuellen lokalen Änderungen gegenüber des zentralen Repositories anzeigen zu lassen > svn diff Index: Makefile ================================================================= --- Makefile (revision 4) +++ Makefile (working copy) -1,4 +1,4 -#CFLAGS=-DDEBUG +CFLAGS=-DDEBUG all: clnt svc Ziele in einem Fernaufruf-System Transparenter Mechanismus (-> Netzwerktransparenz) Methodenaufruf als Grundmechanismus im lokalen wie auch im verteilten Fall (Zugriffstransparenz) Namensdienst: Zugriff auf Dienst, ohne Ort kennen zu müssen (Ortstransparenz) Behandlung von Heterogenität (Heterogenitätstransparenz) Sprache, Betriebssystem, Hardware, Im Idealfall zusätzlich auch Fehlertransparenz, Migrationstransparenz, Replikationstransparenz, usw Wir betrachten zunächst: Zugriffs- und Ortstransparenz in existierenden Systemen (Sun RPC, Java RMI) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (Orgfm ) A - 9 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 2 B Fernaufruf-Systeme aus Benutzersicht Zweck dieser Übung Programmieren mit den Basismechanismen von existierenden einfachen Fernaufruf-Systemen, aus Sicht des Benutzers Kennenlernen der wichtigstens Probleme und Aufgaben eines Fernaufruf- Systems Kennenlernen der bereitgestellten Mechanismen und Werkzeuge in diesen Systemen Betrachtet werden Sun RPC (Remote Procedure Call) Java RMI (Remote Methode Invocation) Erwartetes Ziel Selbständiger Entwurf einer einfachen verteilten Anwendung mit Hilfe von Sun RPC und Java RMI B Fernaufruf-System aus Benutzersicht Sun RPC Programmiersprache: Hauptsächlich C Bibliotheken für Marshalling von Standard-Datentypen in architekturunabhängiges Netzwerkformat Code-Generation aus Schnittstellenbeschreibung Java RMI Programmiersprache: Java In die Sprache integrierter Mechanismus Tiefergehende Grundlagen zu Fernaufrufen werden später in der Vorlesung aufgegriffen, und dann auch in der Übung behandelt (eigene Implementierung eines RPC-Systems!) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 1 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 3
4 Überblick SUN-RPC SUN-RPC basiert auf dem Stub-Mechanismus Generierung von Klient und Server am Beispiel eines Fernaufrufs zur Ermittlung des Inhalts eines Verzeichnisses ("remote ls") Client foo(); Server void foo() return; Client foo(); Client Stub void foo() call() return; Server Stub invoke() foo(); Server void foo() return; rlsc dirx Methodenschnittstelle rpcgen dir_procc Netzwerk Stellvertr des Dienst- nehmers Dienstnehmer Methodenstellvertreter Konvertierungsroutinen Methode Utility "rpcgen" zur automatischen Generierung der Stubs Dokumentation: "ONC+ Developer s Guide", Sun Microsystems cc Dienstnehmender Prozeß Dienstleistender Prozeß cc Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 4 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 6 Eigenschaften des Sun RPC Pro RPC-Aufruf ist lediglich ein Parameter erlaubt Benötigt der RPC mehrere Parameter, muss eine Hilfsstruktur definiert werden! (Diese Aufgabe kann der rpcgen übernehmen) Der Host, an dem der RPC aufgerufen wird, muss beim Aufruf bekannt sein Übliche Abbildungen via DNS (und NIS/NIS+) werden durchgeführt Als Transportschicht kann UDP und TCP verwendet werden Für das Marshalling von Parametern und Rückgabewerten wird der XDR-Standard verwendet Dadurch wird eine gewisse Kompatibilität mit alternativen Implementationen gewährleistet Ein RPC wird durch ein Tripel (Programm-Nummer, Versions-Nummer, Prozedur-Nummer) identifiziert Die Programm-Nummer repräsentiert dabei eine Gruppe von verwandten RPC s Ports und Portmapper: Namensdienst Dienstnehmermaschine (Klient) dienstnehmender Prozeß ➂ ➁ ➀ Dienstleistermaschine (Server) a 111 b c d Portmapper rpcbind dienstleistender Prozeß (Server-Prozeß) (worker) Ports Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 5 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 7
5 Erzeugung der Marshaling-Methoden faui40% rpcgen dirx dirx Beschreibung der Methodenschnittstelle und der Einbettung in den Server => Erzeugt verschiedene Hilfsdateien: dirh gemeinsame Typdefinitionen dir_svcc Rahmenprogramm des Auftragnehmers dir_xdrc Prozeduren zur (Rück-)Konvertierung in/aus der Datendarstellung, die bei der Übertragung von Parametern verwendet wird dir_clntc Stellvertreter der Methode Datentypen im unverteilten Fall Typ Dateinamen typedef char *nametype; Verkettete Liste aus Dateinamen typedef struct namenode *namelist struct namenode nametype name; namelist next; ; Ergebniscode, und falls dieser gleich 0, Liste der Dateinamen struct readdir_res int myerrno; namelist list; ; Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 8 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 10 Erzeugung des Klienten (rlsc) faui40% cc rlsc dir_clntc dir_xdrc -o rls -lnsl 1 Erzeugung des Servers (Implementierung in dir_procc) faui40% cc dir_procc dir_svcc dir_xdrc -o dir_svc -lnsl 1 Ausführung Start des Dienstes (Server): dir_svc& Start des Klienten rls faui02a ~ Datentypen im verteilten Fall (Fernaufrufe): dirx Typ der Dateinamen const MAXNAMELENGTH = 255; typedef string nametype<maxnamelength>; Verkettete Liste aus Dateinamen typedef struct namenode *namelist struct namenode nametype name; namelist next; ; Typ des Methodenergebnisses, bestehend aus einer Fehlerkennung und (falls sie den Wert 0 hat), einer Liste von Dateinamen union readdir_res switch(int myerrno) case 0: namelist list; default: void; ; 1 -lnsl wird nur unter Solaris benötigt Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 9 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 11
6 Anmerkung: Bei "union" wird in den Programmen eine Struktur mit einer zusätzlichen Komponente gebildet Die Union-Komponente wird durch den Union- Typnamen mit angeschlossener Zeichenfolge _u identifiziert struct readdir_res int myerrno; union namelist list; readdir_res_u; ; XDR (external Data Representation) XDR sieht ein Muster zur Konvertierung zwischen C-Datentypen und einer externen Darstellung als Bitfolge vor Für die Standardtypen von C sind Bibliotheksroutinen verfügbar Diese Routinen zusammen mit unterstützenden Routinen bilden die Grundlage, auf der für jeden benutzerdefinierten Datentyp Routinen implementiert werden können, die die Konvertierung in beiden Richtungen vornehmen Für jeden Datentyp wird eine Routine benötigt mit zwei Argumenten: bool_t xdr_<type>(xdr *xdrs, <type> argresp) xdrs verweist auf ein XDR-Objekt, in das bzw aus dem konvertiert werden soll Das XDR-Objekt enthält eine Komponente, die angibt, ob nach XDR konvertiert werden soll (encode) oder aus XDR (decode) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 12 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 14 Die Schnittstellenbeschreibung (dirx) program DIRPROG version DIRVERS readdir_res readdir(nametype) = 1; = 1; = ; Der Server erhält den Namen DIRPROG Der Server wird unter der Nummer registriert Die Version DIRVERS (==1) stellt die Methode READDIR zur Verfügung, die unter der Methodennummer 1 erreicht wird Dienstnehmer rufen diese Methode mit dem Namen readdir_1 auf (die Zahl nach dem Unterstrich ist die Versionsnummer) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 13 Struktur eines XDR-Objektes enum xdr_op XDR_ENCODE = 0, XDR_DECODE = 1, XDR_FREE = 2 ; typedef struct enum xdr_op x_op; struct xdr_ops bool_t (*x_getlong)(); /* Long aus Stream lesen */ bool_t (*x_putlong)(); /* Long in Stream schreiben */ bool_t (*x_getbytes)();/* Bytes aus Stream lesen */ bool_t (*x_putbytes)();/* Bytes in Stream schreiben */ u_int (*x_getpostn)(); /* Position im Stream lesen */ bool_t (*x_setpostn)();/* Position im Stream setzen */ long * (*x_inline)(); /* Zeiger auf Streamdaten */ void (*x_destroy)(); /* Private Daten freigeben */ *x_ops; caddr_t x_public; /* Benutzerdaten */ caddr_t x_private; /* Zeiger auf private Daten */ caddr_t x_base; /* Private Positionsinformation */ int x_handy; /* zusaetzliche private Daten */ XDR; Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 15
7 Aus den Datenstrukturen für rls werden unter Rückgriff auf die Konversionsroutinen für Standardatentypen folgende Routinen erzeugt; (dir_xdrc) /* * Please do not edit this file * It was generated using rpcgen */ #include "dirh" bool_t xdr_nametype(xdr *xdrs, nametype *objp) register long *buf; if (!xdr_string(xdrs, objp, MAXNAMELENGTH)) return (FALSE); return (TRUE); bool_t xdr_readdir_res(xdr *xdrs, readdir_res *objp) register long *buf; if (!xdr_int(xdrs, &objp->myerrno)) return (FALSE); switch (objp->myerrno) case 0: if (!xdr_namelist(xdrs, &objp->readdir_res_ulist)) return (FALSE); break; return (TRUE); Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 16 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 18 bool_t xdr_namelist(xdr *xdrs, namelist *objp) register long *buf; if (!xdr_pointer(xdrs, (char **)objp, sizeof (struct namenode),(xdrproc_t) xdr_namenode)) return (FALSE); return (TRUE); bool_t xdr_namenode(xdr *xdrs, namenode *objp) register long *buf; if (!xdr_nametype(xdrs, &objp->name)) return (FALSE); if (!xdr_namelist(xdrs, &objp->next)) return (FALSE); return (TRUE); Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 17 Die Implementierung des Servers (dir_procc) // Der Methodenname besteht aus einer symbolischen Bezeichnung // gefolgt von einem Unterstrich und der Versionsnummer // Parameter- und Ergebnistypen werden in der // Methodenschnittstelle definiert readdir_res * readdir_1_svc(nametype *dirname, struct svc_req *req) DIR *dirp; struct dirent *d; namelist *nlp, nl; static readdir_res res; dirp = opendir(*dirname); if(dirp == NULL) resmyerrno = errno; return(&res); // alten Speicher freigeben xdr_free(xdr_readdir_res, (char *)&res); Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 19
8 nlp = &resreaddir_res_ulist; printf("\n"); while (d = readdir(dirp)) nl = *nlp = (namenode *) malloc(sizeof(namenode)); nl->name = strdup(d->d_name); nlp = &nl->next; *nlp = NULL; resmyerrno = 0; closedir(dirp); printf("\n"); return(&res); // Erzeugung eines Deskriptors für den Serverzugang cl = clnt_create(server, DIRPROG, DIRVERS, "tcp"); // Aufruf der Methode readdir am durch cl identifizierten // Server result = readdir_1(&dir, cl); // Ausgabe des Ergebnisses aus dem Methodenaufruf for (nl = result->readdir_res_ulist; nl!= NULL; nl = nl->next) printf("%s\n", nl->name); exit(0); Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 20 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 22 Die Implementierung des Klienten (rlsc) Das Programm wird mit zwei Parametern gestartet, nämlich dem Namen des Rechners, auf dem das auszugebende Verzeichnis liegt und dem Pfadnamen des auszugebenden Verzeichnisses main(int argc, char *argv[]) CLIENT *cl; char *server, *dir; readdir_res *result; namelist nl; // Übernahme der Parameter server = argv[1]; dir = argv[2]; Der Stellvertreter des Klienten (automatisch generiert) static struct timeval TIMEOUT = 25, 0 ; readdir_res * readdir_1(nametype argp, CLIENT *clnt) static readdir_res clnt_res; memset((char *)&clnt_res, 0, sizeof (clnt_res)); if (clnt_call(clnt, READDIR, (xdrproc_t) xdr_nametype, (caddr_t) argp, (xdrproc_t) xdr_readdir_res, (caddr_t) &clnt_res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&clnt_res); Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 21 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 23
9 B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) Der Stellvertreter des Servers (automatisch generiert) main() register SVCXPRT *transp; struct netconfig *nconf = NULL; ermöglicht Abstraktion in einem verteilten System Socket-Kommunikation keine Abstraktion // Erzeuge eine RPC Server Handle transp = svc_tli_create(0, nconf, NULL, 0, 0)) // Registriere Server mit DIRPROG und DIRVERS svc_reg(transp, DIRPROG, DIRVERS, dirprog_1, 0); Fernaufrufe (RPC) Methoden-Fernaufrufe (RMI) prozedurale Abstraktion Abstraktion auf Objektebene // Diese Routine kehrt nur bei einem Fehler zurück // Sie wartet auf RPC-Aufrufe und leitet diese an die // entsprechende Service-Routine weiter svc_run(); Methoden-Fernaufrufe: Aufruf von Methoden an Objekten auf anderen Rechnern Transparente Objektreferenzen zu entfernten Objekten Dokumentation: zb Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 24 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 26 B2 Überblick B2 Jave Remote Methode Invocation (RMI) Zusammenfassung Explizite Schnittstellenbeschreibung ("dirx") Daraus automatische Generierung von Stubs und Marshalling-Funktionen mit Hilfe von "rpcgen" Einheitliche Informationsdarstellung nach XDR für heterogene Systeme Portmapper als lokaler Namensdienst Stub: Stellvertreter (Proxy) des entfernten Objekts Skeleton: Ruft die Methoden am entfernten Objekt auf Stub Skeleton entferntes Objekt RPC und Kommunikationsschichten Anfrage: Objekt ID, Methoden ID, Parameter Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 25 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 27
10 B2 Einführung B2 Jave Remote Methode Invocation (RMI) B2 Ausführung B2 Jave Remote Methode Invocation (RMI) Remote Object (entferntes Objekt): Ein Objekt, welches aus einer anderen JVM heraus genutzt werden kann Klient-Rechner Klient-JVM Server-Rechner Remote Interface: Beschreibt die Methoden eines entfernten Objekts Ein Remote Interface muss von javarmiremote abgeleitet sein Zugriffe auf ein entferntes Objekt sind nur über ein Remote Interface möglich Die Klasse eines entfernten Objekts muss mindestens ein Remote Interface implementieren Entfernte Objekte können selbst wieder entfernte Objekte nutzen Parameter werden wie folgt übergeben: by value: Bei allen Parametern, die keine entfernten Objekte sind by reference: Bei Parametern welche javarmiremote implementieren 2: Naminglookup ("rmi://i4vs/hallo"); halloimpl_stub 3: Objektref 4: hallosay() Server-JVM halloimpl_skel 5: Ergebnis Namensdienst: Registry 1: Namingbind("hallo", hallo); class HalloImpl implements Hallo String say(string msg) return "Hallo "+msg; Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 28 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 30 B2 Jave Remote Methode Invocation (RMI) B2 lokaler vs entfernter Methodenaufruf B2 Registry (1) B2 Jave Remote Methode Invocation (RMI) Jeder Aufruf kann eine RemoteException auslösen Aufrufer weiß nicht, ob die Methode komplett, teilweise, oder gar nicht ausgeführt wurde Entfernte Objekte können nur über Interfaces angesprochen werden Normale Objekte werden kopiert, anstatt eine Referenz darauf zu übergeben Die Registry übernimmt als Namesdienst die Abbildung von Objektnamen auf Objektreferenzen Der Zurgriff erfolgt über die Klasse javarminaming void bind(string name, Remote obj) registriert ein Objekt unter einem eindeutigen Namen; falls das Objekt bereits registriert ist, wird eine Exception ausgelöst void rebind(string name, Remote obj) registriert ein Objekt unter einem eindeutigen Namen; falls das Objekt bereits registriert ist, wird der alte Eintrag gelöscht Remote lookup(string name) liefert die Objektreferenz zu einem gegebenen Namen void Namingunbind(String name) löscht den Namenseintrag Die Registrierung ist nur bei der Registry auf dem aktuellen Rechner möglich! Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 29 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 31
11 B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) B2 Registry (2) B2 Stubs und Skeletons Einen bestimmten Port verwenden: Die Registry nimmt TCP/IP-Verbindungen an Port 1099 entgegen als Parameter kann jedoch ein anderer Port angegeben werden zb 10412: rmiregistry Wenn eine Registry an einem bestimmten Port verwendet werden soll, so muss die URL, die bei bind/rebind/unbind/lookup verwendet wird diesen Port enthalten: Namingrebind("rmi://faui40:10412/hallo", hallo) Naminglookup("rmi://faui40:10412/hallo") 0 0 Stub (auf Klientenseite) - implementiert das remote interface (1) erhält einen ObjectOutputStream von der RMI - Referenzenschicht (2) schreibt die Parameter in diesen Strom (3) teilt der RMI - Referezenschicht mit, die Methode aufzurufen (4) holt einen ObjectInputStream von der RMI - Referezenschicht (5) liest das Rückgabeobjekt aus diesem Strom (6) liefert das Rückgabeobjekt an den Aufrufer Skeleton (auf Serverseite) (1) erhält einen ObjectInputStream von der RMI - Referezenschicht (2) liest die Parameter aus diesem Strom (3) ruft die Methode am implementierten Objekt auf (4) holt einen ObjectOutputStream von der RMI - Referezenschicht (5) schreibt das Rückgabeobjekt in diesem Strom Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 32 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 34 B2 Systemarchitektur B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) B2 Referenzenschicht (Remote Reference Layer) Klient Server Verantwortlich für das Aufräumen (Garbage Collection) der entfernten Objekte Klient Stubs Server Skeletons Stubs Skeletons Implementiert die Aufrufsemantik, zb: unicast, Punkt-zu-Punkt RMI Referenzenschicht (Remote Reference Layer) RMI Referenzenschicht (Remote Reference Layer) Aufruf an einem replizierten Objekt Strategien zum Wiederaufbau der Verbindung nach einer Unterbrechung RMI- Transportschicht RMI- Transportschicht Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 33 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 35
12 B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) B2 Transportschicht B2 Ein einfaches Beispiel Verantwortlich für die Datenübertragung zwischen den Rechnern Aktuelle Implementierung basiert auf TCP/IP Sockets Klient Stubs Server Skeletons RMI Referenzenschicht (Remote Reference Layer) 0 (1) Remote Interface (2) Server (3) Serverinitialisierung (4) Klient (5) Starten des Systems Verschiedene Transportmechanismen sind denkbar RMI- Transportschicht Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 36 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 38 B2 Interface und Implementierung javarmiremote extends Hallo implements implements B2 Jave Remote Methode Invocation (RMI) Skeleton dynamisch generiert HalloImpl dynamisch generiert Stub das muss selbst geschrieben werden Klasse Interface Der Programmierer schreibt die Remote-Schnittstelle Hallo und die Implementierung HalloImpl Der Stellvertreter (Stub) und das Skeleton werden dynamisch aus der Implementierung HalloImpl generiert 1 Beispiel - Remote Interface B2 Jave Remote Methode Invocation (RMI) Alle Methoden, die ein Objekt für seine Klienten anbietet, werden mit einem Interface beschrieben Das Objekt muss dieses Interface implementieren Das Interface muss von javarmiremote erben Alle Methoden können javarmiremoteexception werfen Alle Parameter und Rückgabewerte müssen entweder serialisierbar sein (dh sie müssen das Interface javaioserializable implementieren) oder sie müssen entfernte Objekte sein Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 37 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 39
13 1 Beispiel - Remote Interface Remote Interface Bank: B2 Jave Remote Methode Invocation (RMI) public interface Bank extends javarmiremote void deposit(money amount, Account account) throws javarmiremoteexception; 3 Beispiel - Serverinitialisierung B2 Jave Remote Methode Invocation (RMI) Das Remote-Objekt muss mit bind oder rebind in die Registry eingetragen werden Namingbind("rmi://faui40u:10412/bank", bank); Remote Interface Account: public interface Account extends javarmiremote void deposit(money amount) throws javarmiremoteexception; Parameter Money: public class Money implements javaioserializable private float value; public Money(float value) thisvalue = value; Protokoll Rechnername Objektname RMISecurityManager: ohne SecurityManager können keine Klassen vom Netz geladen werden Server-JVM muss einen SecurityManager setzen, zb SystemsetSecurityManager(new RMISecurityManager()); RMISecurityManager ist ähnlich AppletSecurityManager Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 40 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B Beispiel - Server B2 Jave Remote Methode Invocation (RMI) 3 Beispiel - Security Policies B2 Jave Remote Methode Invocation (RMI) Der Server implementiert das Interface Methoden brauchen keine RemoteException zu werfen Zwei Alternativen zur Erzeugung eines Remote-Objektes Der Server wird von UnicastRemoteObject abgeleitet import javarmiserver*; public class BankImpl extends UnicastRemoteObject implements Bank public BankImpl () throws javarmiremoteexception public void deposit(money amount, Account account) throws javarmiremoteexception accountdeposit(amount); Security Policies Legen das Verhalten des SecurityManagers fest Standard-Policy in: $JAVA_HOME/jre/lib/security/javapolicy Benutzer-Policy in: $HOME/javapolicy Zusätzliche Policy wird mit der Eigenschaft javasecuritypolicy angegeben java -Djavasecuritypolicy=URL Klassenname Jedem alles erlauben: grant permission javasecurityallpermission "", ""; ; oder es wird mit exportobject ein Remote-Objekt erzeugt: public class BankImpl implements Bank Remote bank = UnicastRemoteObjectexportObject(new BankImpl(), 0) Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 41 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 43
14 4 Beispiel - Klient B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) 6 Interaktionen während des Methoden-Fernaufrufes Der Klient kann sich mit lookup eine Referenz auf das entfernte Objekt (den Server) besorgen Beispiel: public class Client public static void main (String argv[]) throws javanetmalformedurlexception, javarminotboundexception, javarmiremoteexception Bank bank= (Bank)javarmiNaminglookup ("rmi://faui40u:10412/bank"); Account account = new AccountImpl(); bankdeposit(new Money(10), account); money client account bank Client JVM Server JVM Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 44 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B Beispiel - System starten B2 Jave Remote Methode Invocation (RMI) B2 Jave Remote Methode Invocation (RMI) 6 Interaktionen während des Methoden-Fernaufrufes (2) Klassenpfad setzen, damit rmic und java (server) die Klassen finden setenv CLASSPATH /proj/i4vs/felser/aufgabe1 Auf dem Serverrechner die Registry starten rmiregistry 10412& money account Auf dem Serverrechner das Serverobjekt starten java -Djavarmiservercodebase= file:///proj/i4vs/felser/aufgabe1/ BankImpl client deposit Kopie von money account stub bank Von jedem beliebigen Rechner aus kann nun der Klient benutzt werden: java Client Client JVM Server JVM Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 45 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 47
15 B2 Jave Remote Methode Invocation (RMI) 6 Interaktionen während des Methoden-Fernaufrufes (3) B2 Zusammenfassung B2 Jave Remote Methode Invocation (RMI) Ein entferntes Objekt muss ein Remote Interface implementieren money client account deposit remote reference Kopie von money bank Alle Methoden des Interfaces müssen eine javarmiremoteexception werfen Um ein entferntes Objekt zu erzeugen, kann man entweder direkt von javarmiserverunicastremoteobject ableiten oder die Methode exportobject verwenden Um entfernte Objekte an der Registry zu registrieren oder zu suchen, kann man javarminaming verwenden Klienten verwenden nur das Remote interface Client JVM Server JVM Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 48 Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 50 B2 Jave Remote Methode Invocation (RMI) 6 Interaktionen während des Methoden-Fernaufrufes (4) money client account Kopie von money deposit Kopie von "Kopie von money" deposit bank Client JVM Server JVM Universität Erlangen-Nürnberg Informatik 4, 2010 SS 2010 VS (RPCfm ) B - 49
A Überblick über die 1. Übung
A Überblick über die 1 Übung A2 Übungstermine A2 Übungstermine Organisatorisches Sun RPC Tafelübung: Mittwoch 1000-1200 Uhr (Raum 0031) Mittwoch 1200-1400 Uhr (Raum 0031) RMI Rechnerübung: Freitag 12:00-14:00
MehrJ Fernmethodenaufrufe Remote Method Invocation (RMI)
J Fernmethodenaufrufe Remote Method Invocation (RMI) ermöglicht Abstraktion in einem verteilten System Socket-Kommunikation Fernaufrufe (RPC) J Fernmethodenaufrufe Remote Method Invocation (RMI) keine
Mehrverwendete Entwurfsmuster (Designpattern) SecurityManager RMI MW - Übung E.1
E Überblick über die 4. Übung E Überblick über die 4. Übung verwendete Entwurfsmuster (Designpattern) SecurityManager RMI Universität Erlangen-Nürnberg Informatik 4, 2007 E-Uebung4.fm 2007-11-15 18.13
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrRemote Method Invocation
Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf
MehrRemote Method Invocation
Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf
MehrF.1 Design Patterns (Entwurfsmuster) CLIENT SERVER. 1 Model-View-Controller. 1 Model-View-Controller (2) verwendete Entwurfsmuster (Designpattern)
F Überblick über die 5. Übung F Überblick über die 5. Übung 1 Model-View-Controller verwendete Entwurfsmuster (Designpattern) 1: Maustaste gedrückt SecurityManager Controller RMI 2: Grafikobjekt löschen
Mehr7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.
7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung
MehrÜberblick. Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1. VS-Übung (SS14) Java RMI 1 1
Überblick Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 VS-Übung (SS14) Java RMI 1 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten
MehrKonzepte von Betriebssystem-Komponenten Middleware RMI
Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.
MehrÜberblick. Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1. VS-Übung (SS12) Java RMI 1 1
Überblick Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 VS-Übung (SS12) Java RMI 1 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten
MehrJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
MehrÜberblick. Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1. VS-Übung (SS16) Java RMI 1 1
Überblick Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 VS-Übung (SS16) Java RMI 1 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten
MehrÜberblick. Middleware - Übung. Model-View-Controller. Entwurfsmuster (Design Patterns)
Überblick Middleware - Übung Tobias Distler, Michael Gernoth, Rüdiger Kapitza Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
MehrSystemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007
Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung
MehrJava Remote Method Invocation (RMI)
Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von
Mehr36.2 Example ClassLoader. 36.3 Example Appletviewer
36 ClassLoader How are classes loaded into the Java Virtual Machine (JVM)? from the local file system (CLASSPATH). by an instance of ClassLoader... and when? - When they are needed the first time. class
MehrÜberblick. Fernmethodenaufrufe
Überblick Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten auf anderen Rechnern Remote-Referenz:
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrB Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion
1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)
MehrD.1 Organisatorisches
D Überblick über die 3. Übung D Überblick über die 3. Übung D.1 Organisatorisches D.1 Organisatorisches RPC und ORB Präsentation der Übungsaufgaben 1 und 2 Aufrufsemantiken Hinweise Aufgabe 2 Live in der
MehrProgrammieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik
Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method
Mehr9. Remote Method Invocation Grundlagen der Programmierung II (Java)
9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung
MehrÜberblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://download.oracle.com/javase/tutorial/reflect/index.html
MehrÜberblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html
MehrÜberblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth
Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
Mehr1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI
1 Motivation Motivation ierte Objektmodel Standard Middleware für objektorientierte Anwendungen CORBA,.NET-Remoting Java Remote Method Invocation (RMI) Java RMI ierte Objekte undjava RMI Zusammenfassung
MehrPraktikum Verteilte Anwendungen
Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung
MehrF.1 Überblick. 1 RPC-System in Aufgabe 3. Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern aus
F 5. Übung F 5. Übung F.1 Überblick Aufgabe 3 RPC-System im Überblick Marshalling primitiver Datentypen Byteorder Fließkommawerte s und s F.1 Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern
Mehr8.1.5 Java RMI Remote Method Invocation
8.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi ) (http://java.sun.com/j2se/1.5/docs/guide/rmi ) (http://java.sun.com/docs/books/tutorial/rmi ) (http://java.sun.com/developer/onlinetraining/rmi/rmi.html
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
RMI, Zusammenfassung und Lehrevaluation PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 8. Juli 2013 Übersicht
MehrÜberblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth
Überblick Verteilte Systeme Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
MehrKurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1
Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen
MehrUNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel
UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation RMI Beispiel el0100 copyright Abt. Technische Informatik,
MehrB Java RMI B.1 B.2. 1 Java. 1.1 Objekte. Objektorientierte Sprache
B Java RMI B.1 1 Java 1.1 Objekte Objektorientierte Sprache Objekte beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger,
MehrVerteilte Systeme Übung
Verteilte Systeme Übung Tobias Distler, Klaus Stengel, Timo Hönig, Christopher Eibel, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)
MehrRemote Methode Invocation (RMI) ETIS SS05
Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrVerteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase
Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte
MehrKomponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1
Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität
MehrGrundlagen verteilter Systeme
Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 2 20.11.07 Grundlagen verteilter Systeme Lösungsvorschlag
MehrSVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann
SVN-Einführung für das SEP DS und CM Julian Timpner, Stefan Brenner, Stephan Rottmann 23. April 2014 Subversion (SVN) - Allgemeines Versionsverwaltung für Dokumente Primär für reine Textdateien (*.txt,
MehrÜberblick. Verteilte Systeme - 4. Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs
Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth, Reinhard Tartler Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
MehrNetzprogrammierung: Java RMI - Remote Method Invocation (Teil 1)
Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 1) Robert Tolksdorf und Peter Löhr Überblick 1. Fernaufrufbare Objekte 2. Das Objektverzeichnis rmiregistry 3. Parametersemantik Dokumentation
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste
Mehr7 Remote Method Invocation (RMI)
7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von
MehrC Java RMI. 1 Java. Objektorientierte Sprache
Java RMI 1 1 Java Objektorientierte Sprache Objekte und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger, Adressen o.ä. Methodenaufruf bei vorhandener Objektreferenz
MehrÜbung zur Vorlesung "Einführung in Verteilte Systeme"
Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Thema: Java RMI Ulf Rerrer Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!
MehrC Java RMI C.2 C.4. 1 Java. 1 Java (2) 1 Java (3) Objektorientierte Sprache. Objektorientierte Sprache (fortges.) Objektorientierte Sprache (fortges.
1 Java C Java RMI orientierte Sprache e und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. Methodenaufruf bei vorhandener referenz Übergabe von Parametern
MehrE.1 Object Request Brokers
E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen
MehrMusterlösung Übungsblatt 2 Netzprogrammierung WS 05/06
Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person
MehrÜbungsaufgabe 5. Verteilte Systeme - 6. Übung. Fehler & RPC (lokaler Fall) Transparenz beim Fernaufruf. RPC-Aufrufsemantiken Fehlermodell
Übungsaufgabe 5 Verteilte Systeme - 6. Übung Tobias Distler, Michael Gernoth, Reinhard Tartler Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)
MehrÜberblick. Java Reflection API. Class-Objekte
Bietet die Möglichkeit, das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html [...] This
MehrSeminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler
Seminar Ausgewählte Komponenten von Betriebssystemen IDL4 Compiler IDL4 Compiler Hristo Pentchev Überblick CORBA IDL Allgemein IDL4 Compiler Beispiele CORBA Common Objekt Request Broker Architecture Gemeinsame
MehrInformatik II Übung 5
Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013
MehrÜberblick. Stubs & Skeletons Java Reflection API Dynamische Proxies als Stubs Generische Skeletons Aufgabe 2. VS-Übung (SS17) Stubs & Skeletons 2 1
Überblick Stubs & Skeletons Java Reflection API Dynamische Proxies als Stubs Generische Skeletons Aufgabe 2 VS-Übung (SS17) Stubs & Skeletons 2 1 Java Reflection API Übersicht Bietet die Möglichkeit, das
MehrRemote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1
Remote-Objekte Motivation Architektur Client und Server-Implementierung Parameterübergabe Distributed Garbage Collection Verteilung und Nachladen von Code Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.
Mehr39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub
39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object
MehrÜberblick. Verteilte Systeme Übung. VS-Übung. Callback Stubs revisited Callback JUnit. Tobias Distler, Michael Gernoth. Sommersemester 2010
Überblick Verteilte Systeme Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
Mehr-Testen verteilter Anwendungen
-Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote
MehrUNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP
UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,
MehrInhalt. Übung zur Vorlesung "Einführung in Verteilte Systeme" Das RMI-Schichtenmodell. Java Remote Method Invocation. Wintersemester 2004/05
Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Ulf Rerrer Thema: Java RMI Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!
MehrÜberblick. Verteilte Systeme - Übung. VS-Übung. Callback Stubs revisited Callback JUnit. Tobias Distler, Michael Gernoth, Reinhard Tartler
Überblick Verteilte Systeme - Übung Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de Sommersemester 2008
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung
MehrZusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks
Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1
Mehr7.4 Verteilungsabstraktion in heterogener Umgebung
7.4 Verteilungsabstraktion in heterogener Umgebung Szenario: reiner Maschinencode (native code) bei unterschiedlichen Rechnerarchitekturen, unterschiedlichen Betriebssystemen, unterschiedlichen Übersetzern,
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrNetzwerkprogrammierung unter Linux und UNIX
Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g
MehrRPC-Codegenerierung Codegenerierung mit Perl
RPC-Codegenerierung Codegenerierung mit Perl Martin Vorländer PDV-SYSTEME GmbH Die Ausgangslage q MEDAS q Messdaten-Erfassungs- und -Archivierungs-System q für Industrie-Prozesse; minimale Auflösung: 1
Mehr39 Object Request Brokers
39 Object Request Brokers invoke methods at remote objects (objects that run in another JVM) example ORBs: RMI, JavaIDL OODS 1997-2000 Michael Golm Object Request Brokers 39.312 40 Components of an ORB
Mehr39 Object Request Brokers
39 Object Request Brokers invoke methods at remote objects (objects that run in another JVM) example ORBs: RMI, JavaIDL OODS 1997-2000 Michael Golm Object Request Brokers 39.312 40 Components of an ORB
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrPraktikum aus Softwareentwicklung 2, Stunde 8
Praktikum aus Softwareentwicklung 2, Stunde 8 Lehrziele/Inhalt 1. Remoting Remoting Über Remoting können Objekte über JavaVMs hinweg miteinander kommunizieren. Das ist auch mit Socket-Programmierung möglich.
MehrAvO-Übung 2 Remote Method Invocation
AvO-Übung 2 Remote Method Invocation Jörg Domaschka und Andreas I. Schmied Institut für Verteilte Systeme 30. Oktober 2007 Übersicht 1 Besprechung der letzten Aufgaben 2 Aufruf-Semantiken 3 Netzwerkkommunikation
MehrKommunikation. Björn und Georg
Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrRemote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter
Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework
Mehr1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären.
CORBA Lernziele 1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären. Zentrale Idee: Schnittstelle: - mit einer Schnittstelle beschreibt man
MehrInformatik II - Tutorium 5
Informatik II - Tutorium 5 Vincent Becker vincent.becker@inf.ethz.ch 28.03.2018 Vincent Becker 28.03.2018 1 Neue Webseite Vincent Becker 28.03.2018 3 Allgemeines Java-Konvention: Alle Variablen- und Methodennamen
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrÜberblick. Netzprogrammierung 3. Verteilte Objekte in Java RMI. Verteilte Objekte
Überblick Netzprogrammierung 3. Verteilte Objekte in Java RMI 1. Verteilte Objekte / RMI 2. Objektreferenzen 3. Serialisierung 4. Threads und RMI Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrFür objektbasiertes Programmieren ist keine objektbasierte Programmiersprache erforderlich!
2 Objekte (3) Objekt als abstraktes Konzept Software-Einheit mit Methoden lokalen Daten eindeutiger Identität Programmiermodell auf hohem Abstraktionsniveau Abbildung auf Programmiermodell der Programmiersprache
Mehr