Grundlagen verteilter Systeme

Größe: px
Ab Seite anzeigen:

Download "Grundlagen verteilter Systeme"

Transkript

1 Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt Grundlagen verteilter Systeme Lösungsvorschlag Das vorliegende System besteht aus einem Client und einem Server. Es soll eine Prozedur vom Client mittels RPC auf dem Server ausgeführt werden. Gehen Sie davon aus, dass die jeweiligen Maschinen unterschiedliche Architekturen aufweisen (SPARC, Intel) und die Prozedur ein Ergebnis beinhaltet. a) Erläutern Sie den Aufbau und die Funktionsweise von RPC. b) Welche Probleme können bei der Parameterübergabe auftreten? c) Beschreiben Sie eine mögliche Lösung für die Probleme aus b). d) Sind Prozeduraufrufe mittels RPC transparent? Begründen Sie ihre Antwort. zu a) Funktionsweise: Abbildung 1: Aufbau RPC 1. Die Client-Prozess ruft die Client-Stub-Prozedur wie eine normale Prozedur auf. 2. Der Stub erzeugt eine Nachricht (Marshalling), die neben den Eingabeparametern zusätzlich noch den Name bzw. eine ID der Server-Prozedur enthält. Anschließend übergibt der Stub die Nachricht an das Betriebssystem (BS). 3. Das Client BS sendet die Nachricht über die Kommunikationsmodule an das entfernte Betriebssystem. 4. Das Server BS gibt die Nachricht an den Dispatcher weiter. 5. Dieser entpackt den Header der Nachricht und kann durch die mitgelieferte Identifizierung die jeweilige Stubprozedur aufrufen. 6. Der Stub entpackt die Nachricht (Unmarshalling) und ruft die eigentliche Prozedur auf. 1

2 7. Der Server führt die Prozedur aus und gibt das Ergebnis an den Stub zurück. 8. Der Stub verpackt die Nachricht und gibt sie an das BS weiter. 9. Dadurch wird die Nachricht erneut über die Kommunikationsmodule übertragen und an das Client BS weiter gegeben. 10. Das Client BS reicht die Nachricht an den Stub weiter. 11. Der Stub packt das Ergebnis aus und gibt es zurück. zu b) Call-by-Value: Darstellungsformate können unterschiedlich sein. Beispielsweise verwenden Intel basierte Systeme das LittleEndian Format und SPARC Maschinen das BigEndian Format. Daher kann es bei der Parameterübergabe zu falschen Werten kommen. Call-by-Reference: Referenzen sind Zeiger auf Adressen im lokalen Adressraum und daher auch nur da sinnvoll. Zwar kann man für kleinere Konstrukte die Pointer belassen und die Struktur mit übergeben. Dies ist allerdings nur sehr begrenzt möglich. zu c) Durch Interface Definition Language (IDL) können Schnittstellen in einer maschinenunabhängigen Sprache formuliert und in entsprechende Stubs für Client und Server kompiliert werden. Anschließend werden Header, Stubs und die eigentlichen Implementierungen verbunden (Linker). zu d) Ja, da durch die angesprochene Lösung ein Programm eine entfernet Prozedur als lokale aufrufen kann und dabei keine Unterschiede bei einem fehlerfreien Ablauf beachten muss. Allerdings muss bei der Fehlerbehandlung auf Transparenz geachtet werden. Aufgabe 2: Analog zu Aufgabe 1 liegt Ihnen eine Client/Server Architektur vor. a) Erläutern Sie den Aufbau und die Funktionsweise von RMI. b) Kann die Transparenz im Fall eines Fehlers in der Übertragung von Nachrichten mittels RMI gewahrt bleiben? Begründen Sie ihre Antwort und gehen Sie dabei auf die verschiedenen Aufruf-Semantiken ein. zu a) 2

3 Abbildung 2: Aufbau RMI Funktionsweise: Analog zu RPC werden die Kommunikationsmodule benutzt um ein Anfrage/Antwort Protokoll zu implementieren. Wird ein entferntes Objekt bzw. dessen Referenz zum ersten mal verwendet, so wird ein Eintrag zwischen einem lokale und entfernten Objekt in die Tabelle des Remote Reference Module eingetragen. Liegt noch kein Proxy oder dessen Referenz vor, so werden die benötigten Informationen heruntergeladen und der Proxy erzeugt. Dies geschieht in Java mittels der RMIRegistry automatisch. Mit dem RMI Compiler rmic können Skeleton-Klassen und damit auch Proxy- und Dispatcher-Klassen automatisch erzeugt werden. Liegt jetzt somit für jedes verwendete entfernte Objekt ein Proxy vor, so können Methoden auf dem eigentlichen Objekt ausgeführt werden. Der Proxy verhält sich wie ein lokales Objekt. Beim Aufruf einer Methode des Proxy werden die Argumente (können wiederum entfernte Referenzen sein) mit dem Verweis auf das Zielobjekts und einer methodid verpackt und über die Kommunikationsmodule übertragen. Der Dispatcher verwendet die methodid, um die passende Methode im Skeleton auszuwählen und leitet die Request Nachricht entsprechend weiter. Der Skeleton entpackt die Nachricht und führt den eigentlichen Methodenaufruf auf dem Objekt aus und nimmt eine eventuelle Antwort entgegen, verpackt und sendet sie zum Client. Dort wird die Nachricht vom Proxy entgegengenommen, entpackt und an die Applikation weitergegeben. zu b) maybe Semantik: Nein, da die Nachricht verloren gehen kann und nach einem Timeout ein Fehler zurückgeliefert wird. at-least-once Semantik: Nein. Zwar wird die Nachricht mit dieser Semantik auf jeden Fall übertragen. Allerdings kann sie auch öfters übertragen werden, wobei dies bei nicht indepotenten Methoden zu Problemen führen kann. at-most-once Semantik: Ja, die Nachricht wird genau einmal übertragen und gleicht somit der Semantik eines lokalen Aufrufs. Allerdings besteht weiterhin ein Unterschied im Verhalten bestimmter Situationen (Ausfall der Verbindung für längere Zeit). 3

4 Die Transparenz kann nie gänzlich erfüllt werden, da durch Fehlen der Verbindung ein Fehler nicht mehr maskiert werden kann, egal welche Semantik verwendet wird. Aufgabe 3: Erläutern Sie die verteilte Garbage Collection (vgc) anhand des folgenden Systems. Gehen Sie dabei auf die Verweise ein und stellen Sie diese zusätzlich grafisch dar. Initialzustand: - Server A: Objekt a, Verweis auf entferntes Objekt b,c,d. - Server B: Objekt b,c, Verweis auf entferntes Objekt a,d. - Server C: Objekt d. a) Welche Operationen haben zu dem Initialzustand des Systems geführt? Die Reihenfolge können Sie außer acht lassen. b) Ein Server X ruft eine Methode auf und bekommt eine entfernte Referenz auf das Objekt c zurückgeliefert. Beim Eintrag in die Liste der Verweise von c wird ein Fehler an Server X zurück gegeben. Welche Auswirkungen hat das auf die vgc? c) Ein Server Y hält bereits eine Referenz des Objektes c und ist auch in der Liste der Verweise korrekt eingetragen. Y wird das Objekt c nicht weiter benötigen und benachrichtigt Server C. Dabei wird ein Fehler zurückgeliefert. Welche Auswirkungen hat das auf die vgc? d) Der Server Z verwendet die entfernten Objekte a,c,d und wurde auch korrekt in die entsprechenden Verweis-Listen eingetragen. Im Weiteren ist davon auszugehen, dass keine weiteren Verweise auf die Objekte a,c,d bestehen. Z verwendet diese Objekte anschließend auch nicht mehr, benachrichtigt aber nicht die entsprechenden Server. Mit welchem Mittel kann die vgc trotzdem funktionsfähig bleiben? Welche Auswirkungen hat dies letztendlich für die lokale GC der Server A,B und C? zu a) A: addref(b); an Server B addref(c); an Server B addref(d); an Server C B: addref(a); an Server A addref(d); an Server C 4

5 Abbildung 3: Initialzustand zu b) X: addref(c); an Server B Exception; removeref(c); an Server B addref(c); an Server B zu c) Abbildung 4: Zustand nach b) Y: addref(c) (bereits erfolgt); an Server B removeref(c); an Server B ; Exception; removeref(c) oder Server B löscht den Verweis nach Ablauf der Lease- Dauer. 5

6 Abbildung 5: Zustand nach c) zu d) Für den Fall, dass Objekte nicht mehr benutzt werden, dies den entsprechenden Servern nicht mitgeteilt, können Referenzen über Leases entfernt werden. Server müssen innerhalb einer bestimmten Zeit ihren Lease erneuern, damit ihre Referenz nicht entzogen wird. Falls nach der vgc keine entfernten Referenzen mehr bestehen, kann die lokale GC auf diesen Objekten ausgeführt werden und falls auch lokal keine Verwendung besteht, können Sie gelöscht werden. Aufgabe 4: a) Welche Eigenschaften müssen Objekte haben, damit sie mittels Java RMI verwendet werden können? b) Schreiben Sie ein Programm mit Java RMI, welches die folgenden Anforderungen erfüllt: News sollen mit einer Methode addnews(string news) an den Server geschickt werden können. Beim Aufruf der Methode auf dem Server soll die neue Nachricht gespeichert werden. Zusätzlich sollen mit getnews() alle News zurückgeliefert werden. Verwenden Sie Callbacks, um Clients über neue Nachrichten zu informieren. zu a) Objekte können prinzipiell als Werte und als Referenzen übertragen werden. Objekte werden dabei gegen Interfaces als Typ programmiert. Daher muss für jedes entfernte Objekt ein entsprechendes Interface erstellt werden, dessen Methoden RemoteExceptions (throws RemoteException) werfen. 6

7 Wenn Objekte als Wert übertragen werden, müssen sie das Interface Serializable implementieren und IOExceptions werfen können. Damit Objekte als Referenzen übergeben werden können, müssen sie von RemoteObject abgeleitet sein. Damit implementieren sie automatisch die Schnittstellen Remote und Serializable. Server Objekte werden entweder von Remote- Server, von Activatable oder von UnicastRemoteObject abgeleitet und müssen RemoteExceptions werfen können. zu b) Alle Klassen müssen kompiliert werden. Anschließend müssen die Stubs für die Klassen NewsImpl und NewsClient mit dem RMI Compiler rmic erzeugt werden. Bsp.: rmic NewsClient (ohne Endung) Liegen Somit alle Klassen vor, muss die RMI-Registry mit rmiregistry erzeugt werden. Beim Aufruf der Klassen NewsClient und NewsServer muss zusätzlich eine Policy File mit eingebunden werden. Bsp.: java -Djava.security.policy=policy NewsServer Die Zugriffsrechte wurden hierbei nicht eingeschränkt. Michael Rambold * Dieses Interface dient als Remote Schnittstelle eines NewsServer. * Die Methoden sollten durch die Namen klar sein. import java.rmi.remoteexception; import java.util.arraylist; public interface INews extends java.rmi.remote { public void addnews(string news) throws RemoteException; public ArrayList<String> getnews() throws RemoteException; public void register (ICallback client) throws RemoteException; public void unregister (ICallback client) throws RemoteException; import java.rmi.remoteexception; * Michael Rambold * Dieses Interface stellt eine Methode notifyfornews bereit, * die als Callback Schnittstelle für einen Client verwendet wird. * Ein Server kann die Methode aufrufen und dadurch den Client * informiert halten. 7

8 public interface ICallback extends java.rmi.remote { public void notifyfornews() throws RemoteException; import java.rmi.remoteexception; import java.util.*; public class NewsImpl extends java.rmi.server.unicastremoteobject implements INews { public NewsImpl() throws java.rmi.remoteexception { super(); private ArrayList<String> news = new ArrayList<String>(); private ArrayList<ICallback> registeregclients = new ArrayList<ICallback>(); public void addnews(string n) throws java.rmi.remoteexception { news.add(n); if(this.registeregclients.size()!=0){ this.notifyclients(); public ArrayList<String> getnews() throws java.rmi.remoteexception { return news; public void register(icallback client) throws RemoteException { this.registeregclients.add(client); System.out.println("Client is registered"); public void unregister(icallback client) throws RemoteException { this.registeregclients.remove(client); * Jeder registrierte Client wird benachrichtigt. 8

9 private void notifyclients(){ System.out.println("NewsServer: notify Client"); Iterator<ICallback> it = this.registeregclients.iterator(); while(it.hasnext()){ ICallback client = it.next(); try { client.notifyfornews(); catch (RemoteException e) { e.printstacktrace(); catch (Exception ex){ ex.printstacktrace(); import java.rmi.*; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; public class NewsServer { args public static void main(string[] args) { * SecurityManager verhindern das automatische herunterladen * möglicherweise schadhaften Codes(Stubs). * In diesem Fall liegen alle Stub Klassen im src Verzeichnis * und damnach müssen keine weiteren Aktionen hinzugefügt werden. * Falls man einen WebServer zum Austausch einsetzen möchte, muss * der nachfolgende Kommentar entfernt werden und die Addresse * angepasst werden. Dort müssen sich die Stub Klassen befinden. * Beim Aufruf der Klasse: java -Djava.security.policy=policy NewsServer!! if(system.getsecuritymanager()==null){ System.setSecurityManager(new RMISecurityManager()); //System.getProperties().put("java.rmi.server.codebase","Url als String"); 9

10 try{ INews news = new NewsImpl(); Registry registry = LocateRegistry.getRegistry(); registry.rebind("newsserver", news); System.out.println("Server NewsServer run!"); catch(remoteexception ex){ System.out.println("NewsServer RemoteException: " + ex.getmessage()); catch(exception e){ System.out.println("NewsServer Exception: " + e.getmessage()); import java.net.malformedurlexception; import java.rmi.*; import java.util.arraylist; public class NewsClient extends java.rmi.server.unicastremoteobject implements ICallback { private ArrayList<String> _lokalnews = null; private INews _news =null; * NewsServer vom Typ INews ist die Schnittstelle eines NewsServer java.rmi.remoteexception public NewsClient(INews NewsServer)throws java.rmi.remoteexception{ super(); this._news = NewsServer; public void notifyfornews() throws RemoteException { this.set_lokalnews(this._news.getnews()); * Nachrichten werden einem NewsServer über die Referenz übergeben news zu speichernde Nachrichten NewsServer vom Typ INews ist die Schnittstelle eines NewsServer 10

11 private void addnews(string news, INews NewsServer){ try { NewsServer.addNews(news); catch (RemoteException e) { e.printstacktrace(); private void set_lokalnews(arraylist<string> news) { _lokalnews = news; args public static void main(string[] args) { INews newsserver = null; * SecurityManager verhindern das automatische herunterladen * möglicherweise schadhaften Codes(Stubs). * In diesem Fall liegen alle Stub Klassen im src Verzeichnis * und damnach müssen keine weiteren Aktionen hinzugefügt werden. * Falls man einen WebServer zum Austausch einsetzen möchte, muss * der nachfolgende Kommentar entfernt werden und die Addresse * angepasst werden. Dort müssen sich die Stub Klassen befinden. * Beim Aufruf der Klasse: java -Djava.security.policy=policy NewsClient!! if(system.getsecuritymanager()==null){ System.setSecurityManager(new RMISecurityManager()); //System.getProperties().put("java.rmi.server.codebase","Url als String"); try{ newsserver = (INews) Naming.lookup("NewsServer"); NewsClient client = new NewsClient(newsServer); newsserver.register((icallback)client); for(int i=0;i<5;i++){ client.addnews("nachricht: "+i, newsserver); System.out.println(client._lokalNews.toString()); newsserver.unregister((icallback)client); 11

12 catch (MalformedURLException e) { e.printstacktrace(); catch (NotBoundException e) { e.printstacktrace(); catch (RemoteException e) { e.printstacktrace(); Abgabe in elektronischer Form und Dreiergruppen bis zum an: michael@ds-lab.org. 12

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

Remote Method Invocation

Remote 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

Mehr

Remote Method Invocation

Remote 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

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. 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

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-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

Mehr

Mobile und Verteilte Datenbanken

Mobile 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

Mehr

Java RMI Remote Method Invocation

Java 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

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. 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

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien 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

Mehr

Mobile und Verteilte Datenbanken

Mobile 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

Mehr

Java Remote Method Invocation (RMI)

Java 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

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte 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

Client/Server-Programmierung

Client/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

Mehr

Client/Server-Programmierung

Client/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

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlö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

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Programmieren 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

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. 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

7 Remote Method Invocation (RMI)

7 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

Mehr

Praktikum Verteilte Anwendungen

Praktikum 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

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote 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

Mehr

8.1.5 Java RMI Remote Method Invocation

8.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

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. 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

Mehr

-Testen verteilter Anwendungen

-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

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- 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

Mehr

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Hier soll ein Überblick 1 über die RMI-Technologie der Java 2 Plattform gegeben werden. Inhaltsverzeichnis 1.Überblick...3 2.RMI Architektur...6 2.1.Überblick...6 2.2.RMI

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel

UNIVERSITÄ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,

Mehr

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 8

Praktikum 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.

Mehr

B 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

B 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)

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 8. November 2013 Betriebssysteme / verteilte

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Verteilte 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

Mehr

J Fernmethodenaufrufe Remote Method Invocation (RMI)

J 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

Mehr

VS5 Slide 1. Verteilte Systeme. Vorlesung 5 Sebastian Iwanowski FH Wedel

VS5 Slide 1. Verteilte Systeme. Vorlesung 5 Sebastian Iwanowski FH Wedel VS5 Slide 1 Verteilte Systeme Vorlesung 5 Sebastian Iwanowski FH Wedel VS5 Slide 2 Vorsorgemaßnahmen gegen diese Risiken gegen Verklemmung (deadlock): Korrektur zum letzten Mal! Zyklenerkennung und -behebung

Mehr

10.1 Remote Method Invocation (RMI)

10.1 Remote Method Invocation (RMI) 10.1 Remote Method Invocation (RMI) Verteilte Java Anwendungen Methodenaufrufe auf Fremdobjekten (remote objects) Object Serialization Typen bleiben erhalten Package java.rmi (und andere) Vorläufige Version

Mehr

Middleware. im Schweinsgalopp

Middleware. im Schweinsgalopp Middleware im Schweinsgalopp 1 Szenario Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web- Schnittstelle Daten im ERP

Mehr

4. Informatiktag NRW 14.3.05. Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen

4. Informatiktag NRW 14.3.05. Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen 1/51 Projekt online Shop 4. Informatiktag NRW 14.3.05 Barbara Leipholz Schumacher Euregio Kolleg, Würselen 2/51 Die Firma Sprachen Lernen möchte ihr Angebot auf online Bestellungen ausweiten. Sprache Art

Mehr

C Java RMI. 1 Java. Objektorientierte Sprache

C 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

H.2 Distributed Events

H.2 Distributed Events H Überblick über die 7. Übung H Überblick über die 7. Übung 1 RemoteEvent Remote Events ServiceEvents Basisklasse aller Jini Events package net.jini.core.event; import java.rmi.marshalledobject; Security-Policies

Mehr

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren Namen

Mehr

Java in Verteilte Systeme - RMI

Java in Verteilte Systeme - RMI In diesem Kursteil Modul 2 : Remote Method Invocation RMI Modul Einleitung Was ist Java RMI? RMI Architektur Übersicht Der Transport Layer Garbage Collection Remote Reference Layer RMI Stubs und Skeletons

Mehr

Netzprogrammierung Verteilte Objekte in Java RMI II

Netzprogrammierung Verteilte Objekte in Java RMI II Netzprogrammierung Verteilte Objekte in Java RMI II Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de http://www.robert-tolksdorf.de

Mehr

5A Kooperation: Lösungen

5A Kooperation: Lösungen 5A Kooperation: Lösungen 5A.1 Wissens- und Verständnisfragen 1.a.) dass nicht auf jedem Computer alle Programme und Daten vorgehalten werden müssen / dass damit auch Geräte auf anderen Rechnerknoten angesprochen

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2016/2017 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 18. November 2016 Betriebssysteme / verteilte

Mehr

E.1 Object Request Brokers

E.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

Mehr

Netzprogrammierung Verteilte Objekte in Java RMI II

Netzprogrammierung Verteilte Objekte in Java RMI II Netzprogrammierung Verteilte Objekte in Java RMI II Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de http://www.robert-tolksdorf.de

Mehr

Java in Verteilte Systeme

Java in Verteilte Systeme In diesem Kursteil Modul 2 : Remote Method Invocation RMI Modul Einleitung Was ist Java RMI? RMI Architektur Übersicht Der Transport Layer Garbage Collection Remote Reference Layer RMI Stubs und Skeletons

Mehr

Inhalt. Übung zur Vorlesung "Einführung in Verteilte Systeme" Das RMI-Schichtenmodell. Java Remote Method Invocation. Wintersemester 2004/05

Inhalt. Ü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

KAPITEL 1 RMI Verteilte Programmierung unter JAVA von Anja Austermann

KAPITEL 1 RMI Verteilte Programmierung unter JAVA von Anja Austermann RMI Verteilte Programmierung unter JAVA von Anja Austermann Da die Sprache Java sehr stark an der Programmierung für das Internet orientiert ist, stellt sie mit RMI einen Mechanismus zur Verfügung, mit

Mehr

RMI Server und Client

RMI Server und Client RMI Server und Client RMI Server Remote Objekt(e) bereitstellen Wurzel Objekt in Verzeichnisdienst anmelden RMI Client Wurzel Objekt in entfernter JVM mittels Verzeichnisdienst finden Methoden von Remote

Mehr

Fehlerquellen. Überblick. Einordnung. Fehlerquellen

Fehlerquellen. Überblick. Einordnung. Fehlerquellen Überblick RPC-Semantiken Fehler bei Fernaufrufen Fehlertolerante Fernaufrufe Fehlerquellen Anwendung Fehler sind nicht im Fernaufruf begründet Fehlersituation tritt bei lokalem Methodenaufruf ebenfalls

Mehr

RMI. Wir haben. Komponenten auf einem Rechner. Remote Method Invocation

RMI. Wir haben. Komponenten auf einem Rechner. Remote Method Invocation RMI Remote Method Invocation Wir haben Komponenten auf einem Rechner Komp1 Komp2 zwei Rechner Wir wollen Komp1 Komp2 TCP/IP aber wie? Fallstudie Chat Einfluss der Architektur auf den Entwurf oder Man kann

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

36.2 Example ClassLoader. 36.3 Example Appletviewer

36.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

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Verteilte Programme und Anwendungen I - Verteilte Programme Verteilte Algorithmen und verteilte Programme Programm

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Zusammenfassung Netzprogrammierung (Folien und Bücher)

Zusammenfassung Netzprogrammierung (Folien und Bücher) Zusammenfassung Netzprogrammierung (Folien und Bücher) 1. Einleitung a. Verteilte Systeme Definition: Ein verteiltes System ist eine Menge voneinander unabhängiger Computer, die dem Benutzer wie ein einzelnes,

Mehr

Kapitel 6: Verteilte Objekte durch RMI. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Kapitel 6: Verteilte Objekte durch RMI. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 6: Verteilte Objekte durch RMI Prinzip von RMI RMI (Remote Method Invocation) erlaubt den Aufruf von Methoden von Objekten, die sich auf einem anderen einem entfernten Rechnersystem befinden. Man

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Überblick. Middleware - Übung. Model-View-Controller. Entwurfsmuster (Design Patterns)

Ü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

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

RMI - Remote Method Invocation

RMI - Remote Method Invocation RMI - Remote Method Invocation JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz RMI Motivation Grundarchitektur

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Softwareentwicklung in verteilten Umgebungen, Teil 5 Middleware (Coulouris et al., Kapitel 5) Dieter Schmalstieg

Softwareentwicklung in verteilten Umgebungen, Teil 5 Middleware (Coulouris et al., Kapitel 5) Dieter Schmalstieg Softwareentwicklung in verteilten Umgebungen, Teil 5 Middleware (Coulouris et al., Kapitel 5) Dieter Schmalstieg Partly based on material by Victor García Barrios Warum Middleware? TCP/IP hat niedrige

Mehr

Kommunikation. Björn und Georg

Kommunikation. 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

Mehr

JAVA Remote Method Invocation JRMP Tutorial

JAVA Remote Method Invocation JRMP Tutorial JAVA Remote Method Invocation JRMP Tutorial Abteilung Technische Informatik, Institut für Informatik, Universität Leipzig Abteilung Technische Informatik, Wilhelm Schickard Institut für Informatik 11.6.2013

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

Mehr

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf

Mehr

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung Client/Server-Programmierung WS2007/08 EJB/JSP: Schritt-für-Schritt Anleitung Version 1.1, 26.09.07 Eingesetzte Software: - Apache Tomcat 5.5.9 bzw. 5.5.12 (http://tomcat.apache.org/download-55.cgi#5.5.12)

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Remote Method Invocation (RMI) ist Teil der JDK 1.1. - Es wurde entwickelt, um Remote Method Invocation nahtlos über verschieden Java Virtual Machines hinweg zu unterstützen. Damit

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl. Vorbereitungen Download AVO-Übung ICE Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS005 Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

A.1 Überblick über JINI

A.1 Überblick über JINI A Überblick über die 8. Übung A Überblick über die 8. Übung A.1 Konzepte Einführung Discovery Discovery Lookup Lookup-Service Leasing Aufbau eines JINI Services Remote Events Leasing Distributed Transactions

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Implementierung III. Implementierung IV

Implementierung III. Implementierung IV Übersicht Implementierung III GUI und Verhalten (Teil 2) Implementierung IV Schnittstelle zur Umgebung Integration und Test Alexander Geraldy Softwarepraktikum - Teil: Eingebettete Systeme SoSe 20031 Implementierung

Mehr

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Partly based on material by Victor García Barrios and Paul Krzyzanowski

Mehr

Verteiltes Rechnen. Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff

Verteiltes Rechnen. Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff Verteiltes Rechnen Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff Verteiltes Rechnen Anwendungen im WWW sind meist als Client-Server Architekturen realisiert. Ein Client

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.

Mehr

G.1 Überblick über JINI

G.1 Überblick über JINI G Überblick über die 6. Übung G Überblick über die 6. Übung G.1 Konzepte Einführung Discovery Discovery ookup ookup-ervice easing Aufbau eines JINI ervices Remote Events easing Distributed Transactions

Mehr

1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären.

1. 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

Mehr

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2)

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Robert Tolksdorf und Peter Löhr Überblick 1. Auffinden von.class-dateien 2. Serializable Parameter 3. Sicherheit 4. Code laden übers Web

Mehr

F.1 Überblick. 1 RPC-System in Aufgabe 3. Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern aus

F.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

Mehr

Programmiermethodik. Übung 10

Programmiermethodik. Übung 10 Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering andreas.koch@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Java : Fehlerbehandlung.

Java : Fehlerbehandlung. Java : Fehlerbehandlung Prinzip Callerklassen / Workerklassen Arbeitet... Callerklasse Arbeitet... Workerklasse Arbeitet... Arbeitet weiter... Fer7g! Prinzip Callerklassen / Workerklassen Main- Methode

Mehr