Jini-Beispiel für Übung zu Verteilter System Yiyu Ma, Liying Wang, Rui Dong, Fang Shen Überblick Einführung Konzept & Eigenschaft Archtecture Anwendung Implementierung Ablauf des Protokoll UML Diagramm DEMO Fazit Vorteil Nachteil Jini--Java Intelligent Network Infrastructure Jini wurde von Sun Microsystems am Janura 1999 basierend auf der Programmiersprache Java entwickelt, um möglichst einfache verschiedene Komponenten zu verbinden. Verschiedene Programme Externe Hardware 3 Jini--Eigenschaften Die Eigenschaften von Jini: dynamische, kooperative, spontan vernetzte Systeme Plug-and-Play von Clients und Services User kann einfach die Informationen auf der irgendeinen Position des Netzwerks bekommen Eliminieren den Unterschied von Handware und Software Jini ist ein Framework zum Programmieren von verteilten Anwendungen 4 Jini--Architecktur Die Jini-Architektur spezifiziert, wie sich Clients und Dienste in einem Netzwerk finden und zusammenarbeiten können, um gestellte Aufgaben zu lösen. Jini--Anwendungen Anwendungen: Datenbank Mobile Ubiquitous Computing COTS (Commercial-Off-The-Shelf) Legacy 6 Ablauf des Protokoll Lookup service Client Service Provider Service Object 7 Ablauf des Protokoll Lookup service Register & Lease Service Client Service Provider Service Object 8 Ablauf des Protokoll Lookup service Registry of Entries Register & Lease Service Service Object Client Service Provider Service Object 9 Ablauf des Protokoll Lookup service Registry of Entries request service Register & Lease Service Service Object Client Service Provider Service Object 10 Ablauf des Protokoll Lookup service Registry of Entries request service Register & Lease Service Service Object Service Provider Client return service object Service Object Service Object 11 UML: ServiceProvider LookupDiscovery DiscoveryLi stener <<I nterface>> discov ered() addDiscov eryListener(Discov eryListener) <<Use>> ServiceProvider dis cover : LookupDiscovery item : ServiceI tem dis covery Joi n Constructor() discov ered() ServiceItem <<Use>> attributeSets : Entry serv ice : Datatable serv iceID : Serv iceID Constructor() <<Use>> Datatable 12 UML: ServiceItem java.io.Serializable <<Interface>> ServiceID Datatable Entry <<Interface>> <<Use>> ServiceItem <<Use>> attribu teSet s : Ent ry service : Datatable serviceID : Serv iceID <<Use>> C onst ructor( ) Abstr actEntr y ServiceInfo name : String version : String others : String N ame others 13 Constructor of ServiceProvider ServiceProvider : ServiceProvider discovery : LookupDiscovery Constructor addDi scoveryListener(this) 14 descovered ServiceProvider : ServiceProvider item : ServiceItem reg ister : ServiceRegistrar reg leasemanager : ServiceRegistration : LeaseRenewalManag er discovered(register) 1 item:=Constructor() 2(*) reg:=register(item,Lease.FOREVER) : ServiceRegistration 3 lease:=getLease() : Lease renewUntil(lease,Lease.FOREVER) 15 UML: Client Cli ent connect() : Datatable Client : Client lookup : LookupLocator temp : ServiceT emplate register : ServiceRegistrar connect lookup:= Constructor("jini://192.168.0.1") register: getR egistrar() : ServiceR egistrar temp:= Constructor(Datatable) Datatable: lookup(temp) : Object 16 DEMO 17 Fazit Vorteile Für Anwender , JINI anbietet Resource durch Netzwerk gemeinsam benutzen können. Standort Transparent zwischen Anwender und Services. kritisch für “ laufende “ Leute Für Verwalter, JINI besorgt Skalierbarkeit programmierenmodell, zum des Services zu registrieren und zu entdecken Verwendbarkeit von Services während der verteilten Einstellung 18 Fazit Erben die Vorteile von Java. z.B Plattformunabhängigkeit, Sicherheit usw. Für Jini-Dienste müssen keine Treiber installiert werden; Selbst Reperatur Selbst Replizierung 19 Fazit Nachteile JINI ist nicht unabhängig von Programmiersprachen. Jede müssen Java und RMI kennen und JVM besitzen. Vor allem Kleingeräte wären dem hohen Ressourcenverbrauch kaum gewachsen. 20