JINI - Was ist das?
Domenico LorenzelliSun Java Center Schweiz
Arbeitskreis Software Technologien FH Konstanz 15. Oktober 1999
Die Jini Vision
Connect Anythingat 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
Java RMI
Java VM
Security
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Jini erweitert Java
InfrastructureProgramming
ModelServices
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Extended Security
Jini
Jini Infrastrukur
“The set of components that allow the building of a Jini system”
Java
InfrastructureProgramming
ModelServices
RMI
Java VM
Security
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Extended Security
Jini
Jini
Jini LookupService
Service Provider
Service Consumer
Discovery
Jini LookupService
Service Provider
Service Consumer
Discovery
Jini LookupService
Service Provider
Service Consumer
Discovery
Jini LookupService
Service Provider
Service Consumer
Discovery
Join
Jini LookupService
Service Provider
Service Consumer
Join (Registrierung)
Service Item
Jini LookupService
Attribute
Service Item
Attribute
Attribute
Proxy
Attribute
Service Item
Attribute
Attribute
Proxy
Attribute
Service Item
Attribute
Attribute
Proxy
Nutzer geht ans Netz
Jini LookupService
Service Provider
Service Consumer
Der Nutzer trägt sich ein
Jini LookupService
Service Provider
Service Consumer
Discovery
Lookup
Jini LookupService
Service Provider
Service Consumer
Lookup
Jini
Jini LookupService
Service Provider
Service Consumer
Interaktion
Beliebiges Protokoll
Interface und Implementierung
ServiceObjekt
Interface
BeliebigesNetzwerkProtokoll
ServiceConsumer
ServiceProvider
Service
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
Java
InfrastructureProgramming
ModelServices
RMI
Java VM
Security
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Extended Security
Jini
Jini Infrastructure
“The set of components that allow the building of a Jini system”
Java
InfrastructureProgramming
ModelServices
RMI
Java VM
Security
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Extended Security
Jini
Jini Programmiermodell
“The set of interfaces that allow the construction of reliable services”
Java
InfrastructureProgramming
ModelServices
RMI
Java VM
Security
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Extended Security
Jini
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
“Jini services provide simple solutions to complex problems faced by developers in the distributed environment”
Java
InfrastructureProgramming
ModelServices
RMI
Java VM
Security
LeaseDiscovery
EventLookup
Transaction
JavaSpaces
TX Manager
Java API’s
Beans...
Enterprise Beans
JNDI
JTS...
Extended Security
Jini
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