Jini

Software
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 14. Januar 2005 um 00:24 Uhr durch Schubbay (Diskussion | Beiträge) (Typos). Sie kann sich erheblich von der aktuellen Version unterscheiden.

JINI™ ist ein Framework zum Programmieren von verteilten Anwendungen, welche besondere Anforderungen an die Skalierbarkeit und die Komplexität der Zusammenarbeit zwischen den verschiedenen Komponenten stellen und nicht durch existierende Techniken bedient werden können. Jini bietet eine flexible Infrastruktur, über die Dienste (Service) in einem Netzwerk bereit gestellt werden können. Jini wurde von Sun Microsystems basierend auf der Programmiersprache Java entwickelt.

Die Jini-Netzwerktechnologie ist eine offene Architektur, welche es Entwicklern ermöglicht, anpassungsfähige Netzwerk-basierte Dienste - implementiert in Hardware oder Software - zu programmieren. Mit Jini können so skalierbare und flexible Netzwerke erzeugt werden, welche in einer dynamischen Computer-Umgebung benötigt werden.

Eigenschaften

7 Trugschlüsse verteilter Anwendungen

  • Das Netzwerk ist immer verfügbar
  • Die Wartezeit (engl. latency) ist Null
  • Die Übertragungsrate (Bandbreite) ist unendlich groß
  • Das Netzwerk ist sicher
  • Der Aufbau des Netzwerk ändert sich nicht
  • Es gibt nur einen Administrator
  • Es fallen keine Transportkosten an

Diese Annahmen über das Netzwerk behindern die effektive Geschwindigkeit und die Verteilung der Software. Die folgenden Eigenschaften der Jini-Netzwerk-Technologie kümmern sich um die genannten Fallstricke.

  • Code mobility - Das Programmiermodell der Java-Programmiersprache wird auf das Netzwerk übertragen. Es ist möglich, das Daten und Programme als Java-Objekt über das Netzwerk übertragen werden.
  • Protokoll-unabhängig - ermöglicht eine hohe Flexibilität beim Design der Programme.
  • Leasing - ermöglicht die Selbstheilung und automatische Konfiguration des Netzwerkes, wodurch z. B. die Fehlertoleranz erhöht wird.
  • Flexibilität - das Netzwerk passt sich Änderungen an der Computer-Umgebung an.
  • Integration - es wird eine einfache und schnelle Zusammenarbeit von alten, aktuellen und zukünftigen Netzwerkkomponenten ermöglicht
  • Lizenzierung - die Jini-Netzwerktechnologie ist kostenlos verfügbar.

Jini-Architektur

Die Jini-Architektur spezifiziert, wie sich Clients und Dienste in einem Netzwerk finden und zusammenarbeiten koennen, um gestellte Aufgaben zu lösen. Die Dienstanbieter ermöglichen den Clients den Zugriff auf die Dienste über Java-basierte Objekte. Die Netzwerkkommunikation kann über verschiedene Techniken, wie z. B. Java remote method invocation, CORBA, oder SOAP, erfolgen, da der Client nur die angebotenen Java-Objekte des Dienstes sieht. Die eigentliche Netzwerkkommunikation ist durch die Java-Objekte des Dienstes verdeckt.

Wenn ein Dienst, welcher Jini untertützt, in einem Netzwerk gestartet wird, dann verbreitet dieser Dienst eine Meldung über ein Java-Objekt, welches die Service-API implementiert. Die Implementierung dieses Java-Objektes ist dem Dienst freigestellt. Ein Client findet die Dienste, indem es nach Objekten sucht, welche die gewünschte Programmierschnittstelle bereitstellen. Nachdem der Client das veröffentlichte Objekt gefunden hat, werden benötigte Programmteile geladen, um mit dem Dienst kommunizieren zu können. Der Entwickler des Dienstes hat festgelegt, wie die Kommunikation zwischen dem Client und dem Service erfolgen soll.

Die existierende Java Plattform macht es möglich, die Jini-Netzwerktechnologie festzulegen. Und Jini erweitert die Java-Plattform, indem es die Dienste innerhalb des Netzwerks verfügbar macht. Die Java-Plattform legt fest, was auf einer beteiligten Maschine an Funktionen zur Verfügung steht. Die Jini-Technologie erweitert den Gedanken einer Plattform von einem einzelnen Rechner auf das Netzwerk von Rechnern, welche die Java-Plattform nutzen. Jini-Dienste müssen nicht zwingend auf allen Rechnern des Netzwerkes existieren, sondern sind durch das Netzwerk auf allen Rechnern verfügbar.

JINI und UPnP

Jini und UPnP sind verschiedene Ansätze, um eine Zusammenarbeit zwischen Programmen und Geräten in einem Netzwerk zu ermöglichen. Allerdings stellen beide Ansätze jeweils einen anderen Umfang der Implementierung bereit. Während zum Beispiel Jini bereits ein existierendes Netzwerk für die Kommunikation zwischen den Teilnehmern des Netzes voraussetzt, bietet UPnP auch Funktionen, um das Netzwerk zwischen verschiedenen Geräten zu konfigurieren und damit erst zu ermöglichen.

Siehe auch