Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999 JINI - Was ist das? Domenico Lorenzelli Sun Java Center Schweiz [email protected] Die Jini Vision Connect Anything at Anytime Anywhere Agenda • Was ist Jini? • Konzepte Was ist Jini? • Eine Vision? • Ein Produkt? • Erst mal `ne Demo! Was ist Jini? DEF: Jini ist eine Technologie zur Verteilung von Diensten. 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. 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. „Spontanes Networking“ • Gebrauch von Services • ohne Konfiguration • Ad hoc und sporadisch • Automatische Komposition und Dekomposition eines verteilten Gesamtsystems • Dynamisches Groupware Konzept 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. Das Konzept • Infrastruktur • 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 Discovery Lookup Extended Security Lease JavaSpaces Event TX Manager Java VM Java API’s RMI Security Beans ... Infrastructure Jini Java Transaction Enterprise Beans JNDI JTS ... Jini Infrastrukur Programming Model Services Discovery Lookup Extended Security Lease JavaSpaces TX Manager Java VM Java API’s RMI Security Beans ... Infrastructure Jini Java Event Transaction Enterprise Beans JNDI JTS ... “The set of components that allow the building of a Jini system” Jini Jini Lookup Service Service Provider Service Consumer Discovery Jini Lookup Service Service Provider Service Consumer Discovery Jini Lookup Service Service Provider Service Consumer Discovery Jini Lookup Service Discovery Service Provider Service Consumer Join Jini Lookup Service Join (Registrierung) Service Provider Service Consumer Service Item Jini Lookup Service Service Item Service Item Proxy Attribute Attribute Attribute Service Item Proxy Proxy Attribute Attribute Attribute Attribute Attribute Attribute Nutzer geht ans Netz Jini Lookup Service Service Provider Service Consumer Der Nutzer trägt sich ein Jini Lookup Service Discovery Service Provider Service Consumer Lookup Jini Lookup Service Lookup Service Provider Service Consumer Jini Jini Lookup Service Interaktion Beliebiges Protokoll Service Provider Service Consumer Interface Interface und Implementierung Service Service Objekt Service Consumer Beliebiges Netzwerk Protokoll 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 Jini Technology Programming Model Services Discovery Lookup Extended Security Lease JavaSpaces Event TX Manager Java VM Java API’s RMI Security Beans ... Infrastructure Jini Java Transaction Enterprise Beans JNDI JTS ... Jini Infrastructure Programming Model Services Discovery Lookup Extended Security Lease JavaSpaces TX Manager Java VM Java API’s RMI Security Beans ... Infrastructure Jini Java Event Transaction Enterprise Beans JNDI JTS ... “The set of components that allow the building of a Jini system” Jini Programmiermodell Infrastructure Jini Java Programming Model Discovery Lookup Extended Security Lease Java VM Java API’s RMI Security Beans ... Event Services JavaSpaces TX Manager Transaction Enterprise Beans JNDI JTS ... “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. Event • Erweitern das Java Event Modell auf verteilte Dienste • Registrierung und Benachrichtigung • Event Managers 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 Jini Services Programming Model Services Discovery Lookup Extended Security Lease JavaSpaces TX Manager Java VM Java API’s RMI Security Beans ... Infrastructure Jini Java Event Transaction Enterprise Beans JNDI JTS ... “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 JavaSpaces Service • Messaging • 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 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 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 Mehr Information • Quellcode • java.sun.com/products/jini • Java Developer Connection • Literatur • www.jini.org • java.sun.com/products/jini • W. Keith Edwards: “Core Jini“, Prentice Hall PTR, 1999 Fragen und Antworten Domenico Lorenzelli Sun Java Center Schweiz [email protected]