Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999

Ähnliche Präsentationen


Präsentation zum Thema: "Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999"—  Präsentation transkript:

1 Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999
JINI - Was ist das? Domenico Lorenzelli Sun Java Center Schweiz

2 Die Jini Vision Connect Anything at Anytime Anywhere

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

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

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

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

7 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?”

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

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

10 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ätigungs einer eingegangenen Nachricht zu verschicken. Ein weiteres Beispiel: Der Kopierer bietet dem Netz den Druckservice an, ebnso wie das Faxgerät oder der Laserdrucker.

11 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

12 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

13 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”

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

15 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”

16 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

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

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

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

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

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

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

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

24 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”

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

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

27 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

28 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

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

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

31 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

32 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”

33 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”

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

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

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

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

38 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”

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

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

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

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

43 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

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

45 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

46 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

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

48 Fragen und Antworten Domenico Lorenzelli Sun Java Center Schweiz


Herunterladen ppt "Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999"

Ähnliche Präsentationen


Google-Anzeigen