Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999

Slides:



Advertisements
Ähnliche Präsentationen
Service Oriented Architectures for Remote Instrumentation
Advertisements

Service Discovery in Home Environments
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
Microsoft Referenzarchitekturen- Infrastruktur für Connected Systems
Windows Vista für Entwickler
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Windows Server 2003 Managment Eric Hellmich
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
Dr. M. Schlottke Common Description of Web Services Source: P. Gerbert, 2002 Web Services allow to establish B2B e-commerce on the fly Web Services allow.
© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.
DissOnline / Digitale Dissertationen Dr. P. Schirmbacher Offene Standards und internationale / nationale Abstimmung Gliederung: 1.Open Archive.
Camil Bartkowiak Serhat Cinar Leonardo Di Lella Jan Finsel
Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen Am Fassberg, Göttingen Fon: Fax:
Objektorientierte Programmierung JDK-Klassenbibliothek
JAVA RMI.
.NET – Quo Vadis? Dariusz Parys Developer Group Microsoft GmbH.
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
Gehärtet von Anfang an { Windows 2008: Spezielle Aufgaben }
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Windows Essential Business Server 2008
Google App Engine Microsoft Windows Azure
Institut AIFB, Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Towards Automatic Composition of Processes based on Semantic.
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
SOA - Service-orientierte Architekturen
© 2004 – 2005 The Project Group GmbH Slide 1 Microsoft Office Project 2007Die neuen Möglichkeiten derIntegration in unternehmensweite ProzessePMI Chapter.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
Smalltalk-Anbieter Helge K. Nowak
EsprIT 1 Übersicht in Bildern Framework zur Entwickung von Java Applikationen Client/Server, GUIs, Datenbank,
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Projekt Alcatraz Java RMI / Spread - Gruppe A4.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
Bundesamt für Wehrtechnik und Beschaffung THE COST EFFECTIVE DEVELOPMENT OF HLA FEDERATIONS FOR COMPUTER- ASSISTED EXERCISES (CAX) K. Pixius 23-Sep-02.
Developer Day Webseiten auf Windows Azure hosten Britta Labud bbv Software Services AG Roland Krummenacher bbv Software Services AG.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure SQL Server auf IaaS How-to.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
HandsOn Cloud, Infrastruktur, Architektur, Solution Design SharePoint for Internet Sites: Erfahrung aus der Praxis.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
MongoDB on Linux-VM.
MVVM in Windows 8 und Windows Phone 8
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
Bilateral coordination for the Enhancement and Development of S&T Partnerships between the EU and the USA Internationale strategische Kooperation EU –
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
XML IV: Cocoon 2.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Web Application Engineering & Content Management.
SharePoint FIS HandsOn – out of the Box.
TOGAF - The Open Group Architecture Framework
Office Business Anwendungen mit SharePoint 2010 Fabian Moritz SharePoint MVP.
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
Windows Azure VMs und Storage
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
1 von 10 ViS:AT Abteilung IT/3, IT – Systeme für Unterrichtszwecke ViS:AT Österreichische Bildung auf Europaniveau BM:UKK Apple.
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Developer Day Deep Dive into WinRT-Controls: FlipView, ListView, GridView and SemanticZoom Thomas Claudius Huber Principal Consultant, Trivadis AG
Thomas Claudius Huber Senior Consultant Trivadis AG WCF RIA Services Datengetriebene Apps.
Ciiema CITEM - Dr. Siegl VU Dr. Manfred Siegl ENTWURF, ERRICHTUNG, BETRIEB VON DATENNETZEN VU Dr. Manfred Siegl
Agile ALM for Plex/2E CM MatchPoint ALM. Themen Agenda CM MatchPoint ALM Übersicht CM MatchPoint 5.2 Web und Mobile Entwicklung Agile ALM / DevOps CM.
1 1 Panda Managed Office Protection Switch from Antivirus to Security as a Service Sales training presentation.
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner |
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Institut für Nachrichtentechnik U. Reimers Technische Universität Braunschweig The MultiMedia Home Platform (MHP): Hype or Reality ?
Microsoft Partner Network (MPN)
Universal Plug and Play
Lync and Learn mit Manfred Helber Thema heute: Überblick der Leistungserweiterungen von Windows Server 2016 Start: 9.30 Uhr 30 Minuten Vortrag & Demo 30.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Computer Services Business challenge
 Präsentation transkript:

Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999 JINI - Was ist das? Domenico Lorenzelli Sun Java Center Schweiz domenico.lorenzelli@sun.com

Die Jini Vision Connect Anything at Anytime Anywhere

Agenda Was ist Jini? Konzepte Grundsätzliche Frage beantworten was Jini ist. Die Konzepte, die hinter Jini stecken, vorstellen. Wie eine Netzkomponente Jini-fähig wird.

Was ist Jini? Eine Vision? Ein Produkt? Erst mal `ne Demo! An der kürzlich zu Ende gegangenen Orbit 99, der Schweizer „Cebit“ wurde ich häufig nach Jini befragt, was es denn sei, was man damit machen könne und wo man das beziehen könne. In der Tat bestehen sehr viele Fragen zu Jini. Jini erscheint vielen Benutzern und Beobachtern der IT als nicht greifbar, als unwirklich. Hat Sun mit Jini nur eine Vaporware in die Welt gesetzt? Oder gibt es Jini wirklich? Kann man es kaufen und wenn ja wo bekommt man es? Gibt es bereits Geräte mit Jini oder wenn nicht wann kommen sie? Wie mit allem, was neu erfunden wird, muss erst mal ein Interesse bei den möglichen Anwendern gefunden werden. Es geht darum, mögliche Anwender in Industrie und in Ingenieurbüros auf diese neue Technologie aufmerksam zu machen. Eine neue Technologie wird heute aber nur dann angenommen und getragen, wenn die vielen Anwender dieser neuen Technologie ihre Entwicklung mitgestalten können. In diesem Stadium befinden wir uns mit Jini. Heute ist Jini nur „etwas“ mehr als eine Basistechnologie, die neben einer Spezifizierung und einer Referenzimplementierung nur ganz wenige industrielle Anwendungen gefunden hat. Und selbst dies sind kaum mehr als Versuche. Jini ist etwas, was die Anwendung durch Dritte benötigt. Ohne diese Anwendung existiert Jini nicht und man kann noch lange auf Jini fähige Geräte warten. Wer sich als Gerätehersteller auf den Standpunkt stellt, es müssten erst mal Jini fähige Geräte auf dem Markt sein, bevor er selbst in den Markt einsteigt, der wird nie ein Jini fähiges Gerät zu Gesicht bekommen. Denn es ist der Interessierte, der Jini erst ins Leben ruft. Jini ist demnach kein Produkt. Es ist ein Vorschlag, wie Netzwerke bestehend aus Computern, Maschinen, Geräten und Programmen einfach aufgebaut werden können.

DEF: Jini ist eine Technologie zur Verteilung von Diensten. Was ist Jini? DEF: Jini ist eine Technologie zur Verteilung von Diensten. Dienste: Services

Was ist Jini? Jini erlaubt Maschinen und Programmen eine Gemeinschaft zu bilden und ihre Ressourcen und Fähigkeiten anderen Mitgliedern dieser Gemeinschaft bereitzustellen oder die Ressourcen und Fähigkeiten anderer Mitglieder zu nutzen.

Was ist Jini? Jini erlaubt Maschinen und Programmen eine Gemeinschaft zu bilden und ihre Ressourcen und Fähigkeiten anderen Mitgliedern dieser Gemeinschaft bereitzustellen oder die Ressourcen und Fähigkeiten anderer Mitglieder zu nutzen. Die meisten Zuhörer werden bereits gehört haben, dass man mit Jini sehr einfach Peripheriegeräte an einen Computer anschliessen kann. In der Tat ist Jini eine Technologie mit der Geräte verschiedener Hersteller möglichst einfach verbunden werden können. Diese Definition greift allerdings zu kurz: Es geht nicht nur ums „verbinden“ sondern in erster Linie ums „vernetzen“, was bedeutet: Das Gerät in ein Netz stellen und es am Netz teilnehmen lassen. Zweitens werden nicht nur Maschinen und Geräte verschiedener Hersteller damit vernetzt, sondern auch Maschinen beliebig verschiedener Typen: So kann eine Kamera ohne Umweg über den Computer direkt mit einem Drucker kommunizieren. Genauso gut könnte die Kamera aber an ein Videorecorder angeschlossen sein, der laufend Bilder aufnimmt. Und drittens werden bei Jini Maschinen und Programme als gleichrangig betrachtet. Programme oder Komponenten eines Programmes können ebenso Teil im Jini Netz sein wie Geräte. Jini hat mit Diensten zu tun, nicht mit Geräten. Ein Service kann genau so gut ein Gerät wie eine Softwareanwendung sein. “Welche Dienste sind in meinem Netz?” Nicht: “Welche Applikationen sind auf meiner Festplatte?”

Was ist Jini? Jini erlaubt Maschinen und Programmen eine Gemeinschaft zu bilden und ihre Ressourcen und Fähigkeiten anderen Mitgliedern dieser Gemeinschaft bereitzustellen oder die Ressourcen und Fähigkeiten anderer Mitglieder zu nutzen. Diese Gemeinschaft nennt die Jini Spezifikation eine sogenannte „Federation“. Die Geräte und Softwarekomponenten, die diese Federation bilden heissen Network Citizens oder Netzwerkbürger. Verschiedene Jini ENtitäten bilden sog. Communities (=modernerer Name für Federation), die z.B. eine Workgroup charakterisieren oder ein Netzwerksegment umfassen. Diese Netzwerkbildung ist ein wesentliches Unterscheidungsmerkmal von Jini. In der Tat basiert Jini nicht auf einem Bussystem sondern erfordert eine vollständige Netzwerktopologie um die Gemeinschaft zu bilden. Obschon ein Jini Netz technisch auf einem Bus realisiert werden könnte, basiert das Jini Netzwerk auf TCP/IP und RMI. Was darunter liegt, Ethernet, TokenRing oder was auch immer ist vollkommen transparent. In der Tat spricht man heute über die Verbindung von BlueTooth und Jini als besonders zukunftträchtiges Gespann. Lucents BlueTooth ist eine drahtloses Netzwerkinfrastruktur, das eine Kommunikation bis auf eine Entfernung von 10m???? erlaubt. Ideal also um LANs aufzubauen. Schliesslich kommt bei der Bildung der Federation ein noch nicht erwähnter wichtige Eigenschaft zum Zuge.

„Spontanes Networking“ Gebrauch von Services ohne Konfiguration Ad hoc und sporadisch Automatische Komposition und Dekomposition eines verteilten Gesamtsystems Dynamisches Groupware Konzept „Spontanes Networking“ bedeutet, dass sich Geräte, die mit Jini Software ausgestattet sind, sofort und ohne Konfiguration miteinander verständigen und die Dienste aller anderen im gleichen Netz befindlichen Maschinen benutzen können. Die Jini Technologie stellt sehr einfache Mechanismen bereit, einem Netzwerk beizutreten und daraus auszutreten. Das Bei- und Austreten wird zu einem selbstverständlichen und natürlichen Prozess. Dies ist besonders in Situationen von Vorteil in denen sehr sporadische Netzwerkverbindungen aufgebaut werden. Wenn man mit dem Laptop von produktivem Netz ins Labor muss, oder wenn man bei einem Kunden mit seinem Laptop Wartung vornehmen muss und in ein fremdes unbekanntes Netz eintreten muss. Will man dort fremde Ressourcen wie ein Drucker, den SMTP Gateway oder die Faxserver nutzen, so ermöglicht ihm Jini den Zugang, soweit ihn der Administrator vorlässt. Ein Wartungstechniker kann sich die Bedienoberfläche des Kopierers auf den Laptop holen. Oder die Jobqueue des Druckers kann vom Druckerdisplay ebenso eingesehen werden wie vom Display der Digitalkamera oder vom Fernseher. Die Eingabemöglichkeiten sind dementsprechend anzupassen. Eine typische Anwendung hierfür wäre überall dort anzutreffen, wo Daten über tragbare Terminals drahtlos an eine Zentralstelle vermittelt werden. Beispiel; die grossen Autovermietungsstationen statten die Mitarbeiter mit solchen Terminals aus, um die eingehenden Wagen zu registrieren. Es ist aber extrem schwierig eine dauerhafte drahtlose Verbindung von Terminal zu Datenzentrale aufrecht zu erhalten. Normalerweise werden dann eine Vielzahl von LAN Transceivern auf dem Gelände installiert, die jeden Winkel erreichen. Das können manchmal sehr viele solcher Transceiver erfordern. Wenn der tragbare Terminal die Daten bis zum nächsten Reconnect die Daten behält, könnte viel geld gespart werden. Bedingung für so ein System ist, dass der Aufbau einer Verbindung sehr einfach und schnell von statten geht. Genau hier setzt Jini an. Begriff für dieses Konzept ist „Dynamische Groupware“.

Was ist Jini? Jini erlaubt Maschinen und Programmen eine Gemeinschaft zu bilden und ihre Ressourcen und Fähigkeiten anderen Mitgliedern dieser Gemeinschaft bereitzustellen oder die Ressourcen und Fähigkeiten anderer Mitglieder zu nutzen. Unter Ressourcen und Fähigkeiten verstehen wir den oder die Dienste oder „Services“, die eine Maschine oder ein Programm bereitstellt. Ein Service ist etwas, das im Netzwerk verfügbar ist und eine wie auch immer geartete Aufgabe oder Funktion bereit ist auszuführen. Geräte, Maschinen, Software, Kommunikationskanäle, ja sogar menschlische Benutzer können Dienste vollbringen. Stellt man beispielsweise einen Anrufbeantworter in ein Jini Netz, kann er anderen Teilnehmern einen Ansagedienst oder einen Aufzeichnungsdienst anbieten. Letzerer kann z.B. von einem Computer zum Speichern von Sprache genutzt werden. Ein anderes Beispiel: Der Anrufbeantworter kann den Maildienst meines Internet Providers nutzen, um eine Bestätigungsemail einer eingegangenen Nachricht zu verschicken. Ein weiteres Beispiel: Der Kopierer bietet dem Netz den Druckservice an, ebnso wie das Faxgerät oder der Laserdrucker.

Das Konzept Infrastruktur Verteilte Programmierung Wie kommen Jini Dienste ins Netz? Discovery/Join, Lookup Verteilte Programmierung Wie interagieren Jini Dienste untereinander? Leasing, Events, Transaction APIs Implementierung von Diensten JavaSpaces, Transaction Manager

Jini erweitert Java Programming Model Services Infrastructure Lease JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Java VM Java API’s Enterprise Beans Jini ist keine komplett neue Technologie, die im Ggs. oder in Konkurrenz zu Java steht, sondern baut auf den bestehenden Gegebenheiten von Java auf. Das Paar Discovery und Join kommt zum Zuge, wenn ein Gerät ins Netz eingebracht wird. Discovery geschieht, wenn das Gerät Ausschau nach einem Lookup Server hält, in den er sich registrieren will. Der Join geschieht, wenn der Service einen Lookup Service entdeckt hat und diesem beizutreten wünscht. Lookup geschieht, wenn ein Benutzer oder Client einen bestimmten durch ein Interface beschriebenen Service zu lokalisieren und aufzurufen wünscht. JNDI Java RMI Beans ... JTS ... Security

Jini Infrastrukur Java Infrastructure Programming Model Services RMI Java VM Security Lease Discovery Event Lookup Transaction JavaSpaces TX Manager Java API’s Beans ... Enterprise Beans JNDI JTS Extended Security Jini “The set of components that allow the building of a Jini system”

Jini Jini Lookup Service Service Provider Service Consumer Schematisch dargestellt die Beteiligten der Service Architektur. Das Herz des Jini Systems ist das Trio der Protokolle Discovery, Join und Lookup. Kreis und Quadrat im Service Provider stehen stellvertretend für die Service Items, die der Service Provider bereitstellt. Service Items sind klassifiziert und implementieren ein dazu spezifisches Interface. Ein Drucker, ein Kopierer und ein Faxgerät können das PrinterInterface implementieren. Das Paar Discovery und Join kommt zum Zuge, wenn ein Gerät ins Netz eingebracht wird. Discovery geschieht, wenn das Gerät Ausschau nach einem Lookup Server hält, in den er sich registrieren will. Der Join geschieht, wenn der Service einen Lookup Service entdeckt hat und diesem beizutreten wünscht. Lookup geschieht, wenn ein Benutzer oder Client einen bestimmten durch ein Interface beschriebenen Service zu lokalisieren und aufzurufen wünscht.

Discovery Allows Jini services to: Find and join a group of Jini devices Advertise its capabilities Provide any required software and attributes “Discovery solves the problem of finding the place to start in an unknown network”

Discovery in Brief 2. Lookup Server betreiben Instanzen des Lookup Services. Diese hören multicast requests von entdeckenden Entitäten ab. 1. Ein neu hinzugekommenes Gerät macht sich bekannt und hält Ausschau nach einem Service. Entdeckende Entität Lookup Server 3. Die entdeckende Entität sendet ein Multicast Paket, das nach Referenzen zum lookup service fragt. 4. Der Lookup Server ruft eine entfernte Methode in dem exportierten Objekt der entdeckenden Entität und übergibt dabei eine Referenz auf den Lookup Service in Form eines Parameters

Discovery Jini Lookup Service Service Provider Service Consumer Discovery (1): Der Service Provider geht ans Netz. Bevor eine Jini fähige Entität in einer Jini Community nutzend oder beitragend teilnehmen kann, muss es dieser erst beitreten. Die Entität tut dies indem es sich beim Lookup Service bekannt macht. Diesen Lookup Service zu finden, bewerkstelligt das Discovery Protokoll. Beim Discovery geht es also darum den Lookup Server zu finden, dem der Service sich in einem weiteren Schritt bekannt machen kann. Das Schöne an Jini ist, dass Nutzer als auch Anbieter eines Services nicht wissen müssen, wo sich der Lookup Server befindet. Man ruft einfach nach ihnen und sie melden sich selbst. Der Anbieter oder Nutzer eines Services muss so auch nichts mitführen. Discovery löst das Problem des Auffindens eines zentralen Anfangspunktes.

Discovery Jini Lookup Service Service Provider Service Consumer Discovery (2): Der Service Provider sendet eine Anwesenheitsnotiz in das Netz indem er einen Multicast Request auf einem bekannten Port absetzt. Dem Multicast Paket sind die IP Adresse und der Port beigelegt. Der Multicast Request soll einen Lookup Server auffordern, sich zu melden.

Discovery Jini Lookup Service Discovery Service Provider Service Consumer Lookup Server überwachen den Standardport nach Multicast Paketen. Wird das Multicast Paket von einem Lookup Server aufgefangen, wertet er das Paket aus und entnimmt ihm die vom Service Provider beigelegte IP Adresse und den Port. Mit diesen Informationen entscheidet der Lookup Server ob und wie er Kontakt mit dem Service Provider aufnimmt. Falls ja, baut er eine direkte TCP Verbindung mit dem Service Provider auf. Mittels RMI sendet der Lookup Service nun die Referenz auf ein Objekt, das ein Interface namens „Service Registrar“ implementiert. Mit diesem Registrar werden die weitere Kommunikation zwischen Lookup Service und Service Provider bewerkstelligt. Die nächste Aktion ist in diesem Fall der Join.

Join Jini Lookup Service Join (Registrierung) Service Provider Service Consumer Das Join Protokoll kommt nun zum Zuge. Will ein Service Provider seinen Dienst in der Community bzw. im Netz anbieten, so verwendet er dafür das Join Protokoll. Das vom Discovery erhaltene Service Registrar dient ihm dabei als Referenz auf den Lookup Service. Das ServiceRegistrar Interface beinhaltet eine Methode namens register(). Dieser Methode wird eine Instanz eines ServiceItems und Attributen als Argument mitgegeben, das dem gesuchten Service entspricht. Es existieren einige standardisierte Attribute wir Service Name, Service Standort, Kommentar etc. Dabei werden eine Instanz des Service Items und die Service Attribute beim Lookup Server hinterlegt. Wie das Service Item Objekt aussieht, sehen wir im nächsten Blatt.

Service Item Jini Lookup Service Service Item Proxy Attribute Betrachtet man sich ein Service Item im Detail so wird deutlich, dass es sich aus mehreren Teilen zusammensetzt. Das wichtigste Element eines Service Items ist der Service Proxy. Eine Kopie dieses Service Proxy wird jedem Nutzer dieses Services übergeben. Wenn immer ein Nutzer einen Service gebrauchen will, so benutzt er dazu dieses Service Proxy auf den er seine Calls absetzt. Das Prinzip des Ladens von Service Proxies verleiht Jini die Fähigkeit Dienste und Geräte ohne explizite Treiber- oder Softwareinstallation zu nutzen. Ein Service Item kann mehrere Proxies zur Verfügung stellen um versch. Implementierungen eines Services bereitzustellen. Proxies sind den bekannten Java Applets vergleichbar. Die Besonderheiten, wie ein Proxy mit dem Service interagiert unterliegt dem Implementierer des Proxys. Der heruntergeladene Proxy vollbringt selber den Service (z.B. bei reinem Softwaredienst wie Sprachübersetzer) Der heruntergeladene Proxy ist der RMI stub eines entfernten Services (z.B. IMAP Service, der es dem Nutzer erlaubt mails zu versenden). Der heruntergeladene Proxy benutzt ein privates oder sogar proprietäres Protokoll um mit einem entfernten Service zu interagieren. Dieses Szenario kommt in zwei Situationen zum Zuge: Bei Legacy Systemen, die eine bestehenden Service mitunter in einer anderen Sprache geschriebenen Service anbieten. Oder bei einem HW Service, bei dem das Proxy Objekt die Rolle des Treibers annehmen muss.

Nutzer geht ans Netz Jini Lookup Service Service Provider Service Consumer Der Service liegt nun beim Lookup Server und ist bereit zur Abfrage.

Der Nutzer trägt sich ein Jini Lookup Service Discovery Service Provider Service Consumer Bevor jemand den Service nutzen kann, muss ein Nutzer ans Netz gehen. Dieser meldet sich nach dem bereits beschriebenen Schema an.

Lookup Repository der verfügbaren Dienste Speichert Dienste in Form einer erweiterbaren Menge von Java Objekten ID, interface, GUI’s, attributes, drivers ... “The lookup service binds the federation together”

Lookup Service Objekte werden zum Client runtergeladen Kann mit anderen Lookup services kooperieren Lookup Service Interface: Registration, Access, Search, Removal

Lookup Jini Lookup Service Lookup Service Provider Service Consumer Der Service Consumer benutzt nun das Lookup Protokoll um den gesuchten Service über seinen Typ zu finden. Services werden typisiert indem sie ein bestimmtes, zuvor definiertes Interface implementieren. Um den lookup auszuführen ruft der Service Consumer die Methode lookup() des Service Registrars auf, den der Consumer vom vorangegangenen Discovery erhalten hat. In dem lookup() Aufruf enthalten ist ein Argument, das sog. Service Template, das als Suchkriterium für die Anfrage dient. Das Service Template kann eine Referenz auf ein Array von Objekten der Klasse Class beinhalten. Diese Class-Objektinstanzen spezifizieren den vom Consumer gesuchten Service Typ. Alternativ kann das Service Template auch eine Service ID beinhalten, die den Service eindeutig identifiziert. Auch Wildcards sind darin möglich. Der Rückgabewert des lookup() Aufrufes ist der Service Proxy.

Jini Jini Lookup Service Service Provider Interaktion Service Consumer Am Ende kann der Service Consumer mit dem Service Provider direkt in Interaktion treten, indem er den Service Proxy verwendet. Der Client, bzw. der Service Consumer benutzt diesen Service Proxy weil es dessen Interface verlangt hat und kennt. Im Lookup Server kann mittels der Service Attribute auch die Benutzerschnittstelle eines Services hinterlegt werden. Streng genommen ist eine Benutzerschnittstelle nichts anderes als eine spezielle Form des Service Interfaces, das dem Benutzer erlaubt, den Service direkt zu manipulieren. In Situationen, wo kein Lookup Server gefunden wird, kann auch ein abgewandeltes Protokoll, das Peer Lookup angewandt werden. Beliebiges Protokoll

Interface und Implementierung Service Objekt Service Interface Beliebiges Netzwerk Protokoll Jinis Architektur wendet Objektorientierung auf Netzwerkprogrammierung an indem Dienste bzw. Services eine Trennung von Schnittstelle und Implementierung erfahren. Dem Service Proxy kommt die Rolle eines lokalen Stubs zu, der ein Interface implementiert. Das Service Proxy repräsentiert den von einer anderen oder der gleichen Instanz gelieferten Service. So kann z.B. das Service Proxy den gesamten zu liefernden Service selbst erfüllen. Alternativ dazu kann das Service Proxy auch nur als Proxy für einen entfernten Servers agieren. Eine wichtige Konsequenz hiervon ist, dass das Netzwerkprotokoll, das zwischen Proxy Service Objekt und entferntem Server verwendet wird dem Client nicht bekannt sein muss. Eine weitere Konzequenz davon ist, dass verschiedene Implementierungen des desselben Service Interfaces bereitgestellt werden können. Service Consumer Service Provider

Jini Sicherheitsmodell Erweiterung des bestehenden Java Sicherheitsmodells um: Authentifizierung Integrität Vertraulichkeit Delegation Identität wird beim Aufruf einer entfernten Methode mit übermittelt Wer in den Spezifikationen nach der Jini Sicherheitsmodell sucht, der wird den Hinweis finden, dass Jini auf den vorhandenen Java Sicherheitsmechanismen beruht. Dass diese Antwort nicht befriedigend sein kann, leuchtet ein. Denn schliesslich haben wir es hier nicht mehr nur mit dem Schutz eines einzigen Adressraumes auf einer einzelnen physischen System zu tun, sondern mit einem verteilten System, das über mehrere Adressräume reicht. So muss die Frage gestellt werden, wie sichergestellt wird, ob der Drucker, der vorgibt in diesem Stockwerk zu stehen auch wirklich dort steht und nicht etwa an einem anderem Ort. Diese Fragen werden in einem der zukünftigen Spezifikationen, die zurzeit der Industrie vorliegen beantwortet. Grundidee dahinter ist, dass ein Jini sich auf einer einzelnen Maschine der Sicherheitsmechanismen von Java bedient. Sobald sich ein Netz konstituiert setzen die verteilten Jini Sicherheitsmechanismen ein.

Die Hauptbestandteile im Bild Netzwerk Services PPC x86 Mac Windows Java Lookup ••• Discovery/Join Solaris Sparc RMI Java Spaces Other services Jini

Jini Technology Java Infrastructure Programming Model Services RMI Java VM Security Lease Discovery Event Lookup Transaction JavaSpaces TX Manager Java API’s Beans ... Enterprise Beans JNDI JTS Extended Security Jini

Jini Infrastructure Java Infrastructure Programming Model Services RMI Java VM Security Lease Discovery Event Lookup Transaction JavaSpaces TX Manager Java API’s Beans ... Enterprise Beans JNDI JTS Extended Security Jini “The set of components that allow the building of a Jini system”

Jini Programmiermodell Java Infrastructure Programming Model Services RMI Java VM Security Lease Discovery Event Lookup Transaction JavaSpaces TX Manager Java API’s Beans ... Enterprise Beans JNDI JTS Extended Security Jini “The set of interfaces that allow the construction of reliable services”

Lease Protokoll für das Ressourcenmanagement befristeter Kontrakt zwischen Objekten mit Verlängerungsoption Selbsttätige Netzabnahme nach Ablauf der Leasingperiode. Services, die im Netz vorhanden sind und nicht benutzt werden, verbrauchen Ressourcen: Speicher, Adressen, Latenzzeiten bei Queries usw. Dass Ressourcen wieder freigegeben werden, dafür sorgt das Leasing Protokoll von Jini. Vielen kommt hierbei der Java Garbage Collector in den Sinn. Es gibt aber einige Unterschiede zum GC. Der Garbage Collector entscheidet darüber eine Ressource zu entfernen, wenn keine Referenz mehr auf sie weist. Diesen Anhaltspunkt hat das Leasing Protokoll nicht. Eine Kamera kann ans Netz gehen und unbenutzt bleiben, was nicht bedeuten darf, dass ihr Service Item entfernt werden muss. Der Service der Kamera muss auch noch funktionieren, wenn ein erster Benutzer keine Referenz auf den Service hat. Eine anderer Grund für die Einführung des Leasing Protokolls ist das Netz. Keine Anwendung und keine Komponente kann so transparent sein, dass nicht früher oder später die Tatsache durchdringt, dass es sich heirvei um eine entfernte Entität bzw. Quelle handelt. Netzwerke oder Teile davon sind zwar meist sehr stabil, aber sie können auch versagen. Eine allseits bekannte Möglichkeit dieser Tatsache Rechnung zu tragen, ist Timeouts einzuführen. Nach Ablauf des Timeouts gibt die anfordernde Instanz auf, nach der nicht präsenten Quelle zu fragen. In einer etwas weiter entwickelten Form finden wir dies beim Jini Leasing Service. Leasing stellt eine Methode dar Ressourcen in einer Umgebung in der Netzwerkfehler auftreten können, zu verwalten. Wie lange soll ein Lease dauern: Das hängt ganz von der Applikation ab. Für eine Applikation in der Nutzer dem Netz schnell und häufig ein aund austreten, wird ein kurzer Lease von einer Minute oder weniger sinnvoll sein. Bei einer Anfrage nach einem Service von verschiedenen Stellen mag ein Lease von einer Stunde und mehr sinnvoll erscheinen. In den meisten fawellen wird es ein Lease von wenigen Minuten tun. Per default stellt der Jini Lookup Service einen Lease von exakt 5 Minuten aus.

Event Erweitern das Java Event Modell auf verteilte Dienste Registrierung und Benachrichtigung Event Managers Jini Events tragen den Besonderheiten des Ereignistransports in vernetzten Umgebungen wie z.B. Latenz und Netzwerkverfügbarkeit Rechnung.

Event Verschiedene verteilte Protokolle stehen zur Verfügung push, pull, filter ... Events unterliegen auch dem Leasing Protokoll

Transaction Koordination verteilter Objekte Unterstützt verschiedene Stufen der ACID Properties Nested Transactions Benutzt Leasing Protokoll Aenderungen, die eine oder mehrere Entitäten einer Transaktion betreffen, müssen in Kontexten behandelt werden, so dass eine einzelne Aenderung allen oder keinem der beteiligten Entitäten widerfährt.

Jini Services Java Infrastructure Programming Model Services RMI Java VM Security Lease Discovery Event Lookup Transaction JavaSpaces TX Manager Java API’s Beans ... Enterprise Beans JNDI JTS Extended Security Jini “Jini services provide simple solutions to complex problems faced by developers in the distributed environment”

JavaSpaces Service Verteilter, “dynamischer Speicher” für vernetzte JVMs Unterstützt die Idee der Federation auf der Ebene der JVMs Stellt eine einfache Methode der Objektpersistenz bereit Ein Java Space eignet sich hervorragend zum Implementieren verschiedener bekannter Patterns des Distributed Computing.

JavaSpaces Service Messaging JavaSpaces Service Interface async, store and forward, routed, filtered... JavaSpaces Service Interface Writing, Finding, Reading, Removing, Event

Transaction Manager Service Benuztung von Transaktionsprotokollen auf Objektebene Light-weight Erweiterbar Kein Two Phase Commit Der Jini TM begrift die Ausführung einer Transaktion nur als Protokoll und stellt somit nur ein Interface zur Verfügung, dessen Implementierung verschieden sein kann. Alle Teilnehmer einer Transaktion implementieren das TransactionParticipant Interface und der TM führt dessen Implementierung mit commit() oder abort() nacheinander aus. D.h. der TM führt das Zweiphasen Commit im Auftrag des Teilnehmers aus. Das bedeutet aber, dass Jini Services Wissen über die Intergritäts-Constraints haben müssen.

Jinis Vorteile Service provider Produkteinsustrie Konsumenten Vereinfacht das Management der Dienstebereitstellung Produkteinsustrie öffent neue Marktchancen Konsumenten Vereinfacht das Verbinden von Gerätefunktionen

Beispiel Dienste Example Dynamic, Value Add Services Jini Workgroup Jini Conference Room Mobile Computing Remote Services to Cellular Home Network Follow-me Newspaper Industrial Automation

Jini Kit Grundlegende Dienste, die Jini benötigt um in Gang zu kommen sind: Java 2 Web Server RMI Activation Dämon Lookup Service

Jini Partner Geräte: Canon, Quantum, Seagate, Toshiba, Ericcson, Epson, Oki, Mitsubishi Software: Applix, Axis, Computer Associates, Datek, Encanto, Network Objects, Novell, Object Design Unternehmen: FedEx, Siemens, Salomon Brothers, Norwest Mortgage

Jini Lizenzsituation Sun Community SourceLicensing Langer Rede kurzer Sinn: Jini Quellcode ist frei verfügbar für Studium, Forschung und internen Gebrauch Für kommerzielle Produkte, die Jini Quellcode beinhalten, muss eine Vereinbarung und eine Brandinggebühr entrichtet werden. Anwendungen basierend auf Jini benötigen keine Quellcode-Lizenzvereinbarung SCSL hat viele Gemeinsamkeiten mit der Open Source Lizenz. Im Ggs. dazu, aber sieht die SCSL nicht vor, dass der veränderte Quellcode an die Community zurückgegeben werden muss. Er muss aber (ebenfalls im Ggs. zur Open Source) einem Kompatibilitätskriterium genügen, um das Zersplittern von Jini zu verhindern. Die SCSL definiert drei Benutzungsstufen: 1. (Gebrauch zu Studium und Forschung) Die erste Stufe erlaubt die freie Verwendung des Quellcodes zu persönlichen, Forschungs- und Ausbildungszwecken. In dieser Stufe, darf der Lizenznehmer Modifikationen und Clones des Jini Quellcodes vornehmen, solange die Lizenzinformation beibehalten wird. 2. Stufe (Interner Gebrauch). Wer die Jini Software bereits in der Stufe 1 verwendet hat, kann ohne weiteren Aufwand in diese Stufe aufsteigen. Es ist kein expliztites Agreement mit Sun zu vereinbaren. Die einzige Einschränkung ist, dass die Jini Namenskonvention angewandt wird, und dass die Software kompatibel gemäss dem Jini Compatibility Kit bleiben muss. Dies gilt auch für Clones des Jini kits. 3. Stufe (Kommerzieller Gebrauch) Wer vorhat Produkte, die auf dem Jini Quellcode basieren zu verkaufen, der muss eine kommerzielle Vereinbarung mit Sun treffen. Auc hier werden wiederum einige Auflagen wirksam: Das Produkt muss den Test mit dem Jini Technology Compatibility Kit passieren, und der Hersteller muss eine separate Jini Logo Gebrauchslizenz bei Sun beziehen. Was bedeutet dies konkret? Wer

Mehr Information Quellcode Literatur java.sun.com/products/jini Java Developer Connection Literatur www.jini.org W. Keith Edwards: “Core Jini“, Prentice Hall PTR, 1999

Fragen und Antworten Domenico Lorenzelli Sun Java Center Schweiz domenico.lorenzelli@swiss.sun.com