Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.

Ähnliche Präsentationen


Präsentation zum Thema: "© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner."—  Präsentation transkript:

1 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner

2 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Was ist Jini? l 1998 Projekt namens Jini wird unter Bill Joy und Jim Waldo vorangetrieben. (Jini = Java Intelligent Network Infrastructure) l Ziel: Möglichkeit zu bieten Services in Plug and Play Manier zu verteilen l Spezifikation von Middleware Komponenten l beinhaltet APIs zum Bau von Clients oder Services l In Java geschriebene Implementierung

3 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Dienstparadigma l Alles ist Dienst (Hardware, Software) l Dienste werden über Interfaces definiert stellen darüber ihre Funktionalität zur Verfügung. l Dienst ist durch seinen Objekttyp und seine Attribute charakterisiert. l Dienste und Dienstnutzer finden sich spontan zu einer Föderation zusammen.

4 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Jini Föderation

5 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Komponenten in Jini l Service: z.B. Toaster, Partnervermittlung, Drucker l Client: Applikation, die einen Service verwenden möchte l Lookup Service: Vermittelt dem Client einen Service l Netzwerk: Implementierung TCP/IP, nach Spezifikation aber nicht zwingend

6 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Java Bezug von Jini l JVM als Bytecode Interpreter l RMI für Kommunikation zwischen den Komponenten l Somit gewisse Homogenität in einer heterogenen Umgebung l Sicherheit von Java überträgt sich auf Jini

7 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Discovery (von Client oder Service) 1/3 l Ziel: Client oder Service (Hosts) sollen mit Lookup Service kommunizieren können. l Lookup Service hört auf TCP- und UDP-Port 4160 l Somit 2 Möglichkeiten Lookup Service zu finden: 1.Unicast (Host kennt Adresse des Lookup Services bereits) 2.Multicast Requests (Multicastgruppe 224.0.1.85; zumeist nur innerhalb des LANs möglich, da Multicast Pakete meistens nicht geroutet werden) ähnlich DHCP

8 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Discovery (von Client oder Service) 2/3 l Lookup Service (LUS) sendet Stellvertreter-Objekt (LUS Proxy) an Host (Serialisiertes Objekt via TCP Verbindung) l LUS Proxy läuft nun in JVM des Host (Code Shipping) l Host kann nun über LUS Proxy mit LUS kommunizieren

9 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Discovery (von Client oder Service) 3/3

10 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Join: Registrierung eines Services 1/2 l Ziel: Funktionalität des LUS Proxys nutzten um eigen Proxy an LUS zu senden. l Service muss einen LUS Proxy besitzen (Discovery) l zudem können noch Attribute gesendet werden (Genaue Service Beschreibung) l LUS Proxy gibt Lease an Service (Gültigkeitsdauer der Registrierung, Service schlägt Lease Zeit vor, gegebenenfalls kann LUS Lease Dauer heruntersetzen) l LUS verwaltet Service Proxy l Service kann nun in der Jini Föderation gefunden werden

11 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Join: Registrierung eines Services 2/2

12 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Lookup: Suchen eines Dienstes 1/2 l Client muss LUS Proxy besitzen (Discovery) l Client formuliert Query (erstellt ServiceTemplate-Objekt, welches dem LUS Proxy übergeben wird) public ServiceTemplate(ServiceID serviceID, java.lang.Class[] serviceTypes, Entry[] attrSetTemplates)) l Client bekommt ServiceMatches-Objekt vom LUS zurück, welches die Treffer-Proxies enthält l Client man jetzt Dienst nun lokal auswählen

13 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Lookup: Suchen eines Dienstes 2/2

14 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Proxies l Proxies sind normalerweise Stellvertreter eines Services l Alle Daten werden an den Service weitergereicht (z.B. RMI) l Sinnvoll bei kleinen Datenmengen oder schwachen Clients l Protokoll für Kommunikation zwischen Proxy und Service kann beliebig sein (auch zwischen LUS und LUS Proxy)

15 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Smart Proxies l Erbringen eine Teil oder den ganzen Service beim Client (z.B. Videokompression) l Darum muss Rechenleistung des Clients zur Verfügung stehen l Service hat nur noch die Aufgabe am Leben zu bleiben und Leases zu erneuern l Entscheidung, ob Service mittels smarten oder normalen Proxies gebaut wird liegt beim Entwickler, nicht beim Client

16 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Proxy-Klassen l Serialisierte Proxy-Objekte werden bei der Suche an den Client geschickt l Problem: Client erhält Zustand des Objekts, aber nicht dessen Klasse. l Lösung: Klasse wird z.B. auf einem HTTP-Server zur Verfügung gestellt. (Dem Client wird URI der Klasse mittels speziellem Property-Feld mitgeteilt.)

17 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Jini Implementierungen 1/2 1 Service pro JVM mehrer Services pro JVM

18 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Jini Implementierungen 2/2 Jini Service als Proxy für Legacy Services

19 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Java Spaces (ein Jini Service) 1/4

20 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Java Spaces (ein Jini Service) 2/4 l JavaSpaces stellt eine Möglichkeit zur verteilten Speicherung von Java- Objekten l Operationen: áwrite(..) Objekt in den Raum schreiben átake(..) Objekt aus dem Raum entfernen átakeIfExists(..) blockiert nicht, falls das gesuchte Objekt nicht vorhanden ist áread(..) áreadIfExists, blockiert nicht, falls das gesuchte Objekt nicht vorhanden ist ánotify(Entry template,..), benachrichtigt ein Java-Objekt, falls der Eintrag, der dem Muster von template entspricht, in den JavaSpace geschrieben wurde (Pattern-Matching).

21 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Java Spaces (ein Jini Service) 3/4 l Ein Tupel entspricht einem Java-Objekt, welches zwei Marker-Interfaces implementiert: áSerializable, um die RMI-Kommunikation im Netzwerk zu unterstützen áEntry, kennzeichnet das Java-Objekt als Tupel

22 © 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Java Spaces (ein Jini Service) 4/4 l US Army: Projekt zur Kommunikation von Schlachtfeld zu Tactical Operation Center l Klinische Informationssysteme in Spitälern (Vernetzung medizinischer Geräte) l Vernetzung von kleinen Wetterstationen


Herunterladen ppt "© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner."

Ähnliche Präsentationen


Google-Anzeigen