G JINI G.2 G.4. 1 Überblick. 1.1 Programmiermodell. 1.1 Programmiermodell (2) Diensteplattform für Java. Hintergrund. JINI Dienst.



Ähnliche Dokumente
Nomadic computing mobile Geräte dynamische Dienstnutzung einfacher Zugang zu Geräten Gerät bietet Dienste an allgemeine Dienstnutzung

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

Elektronischer Kontoauszug

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Installation OMNIKEY 3121 USB

6 Seminar "Informations- und Kommunikationssysteme" Unterteilung des Vortrags. Das Lookup Service Teil 1. Einführung und Discovery Protocols

Java RMI Remote Method Invocation

Wirtschaftsinformatik 2

Elektronischer Kontoauszug

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

JINI. JINI Lookup-Service. Lookup-Service. von Ingo Seidemann & Sven Hoffmann

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

AutoCAD Dienstprogramm zur Lizenzübertragung

Cisco AnyConnect VPN Client - Anleitung für Windows7

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Step by Step Webserver unter Windows Server von Christian Bartl

Print2CAD 2017, 8th Generation. Netzwerkversionen

SmartDispatch DMR-Dispatcher. Bestellablauf. SmartDispatch-Bestellablauf V1.0

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.

2.2 Installation via Netzwerkkabel

Schnittstellenspezifikation: ZEUS Web Services

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Einführung Anleitungen für Merlin Project ProjectWizards

LANiS Mailversender ( Version 1.2 September 2006)

Anleitung für die Hausverwaltung

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Nutzung von GiS BasePac 8 im Netzwerk

How-to: Webserver NAT. Securepoint Security System Version 2007nx

HorstBox (DVA-G3342SD)

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen!

Anbindung des eibport an das Internet

Download - Shop. Handbuch Work@Home

Installation der Demoversion vom M-Doc AutoSigner

Installation der Eicon Diva PCI Karte unter Windows XP

Lubuntu als Ersatz für Windows

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Installationsanleitung

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Außerdem verwenden wir Cookies für andere Zwecke, wie zum Beispiel:

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Internet Explorer Version 6

Synchronisations- Assistent

10.6 Programmier-Exits für Workitems

Lizenzen auschecken. Was ist zu tun?

IBM SPSS Statistics Version 22. Konfigurieren von Technologie für behindertengerechte Bedienung

Hilfedatei der Oden$-Börse Stand Juni 2014

NODELOCKED LIZENZ generieren (ab ST4)

Motorsegler Reservierungs-System. Reservierungsplatz

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Der Anrufbeantworter. Service-Telefon: Eine Verbindung mit Zukunft. MDCC / Stand 10/10

secuentry/anleitung Android KeyApp

4. AuD Tafelübung T-C3

Unico Cloud AdminPortal

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

White Paper. Fabasoft Folio Zugriffsdefinitionen Winter Release

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Anleitung SEPA-Lastschriften mit VR-NetWorld Software 5

ELSTER Daten versenden

Profi cash (Version 10.3 oder höher) Erfassen und Verwalten von SEPA- Lastschriften

Stand: Adressnummern ändern Modulbeschreibung

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Statuten in leichter Sprache

Dokumentation für Lehrstühle

Lehrer: Einschreibemethoden

Diese Anleitung hilft Ihnen Ihre Empfangsbox (Settop-Box)) mit Ihrem Kabelmodem so zu verbinden damit Sie DVB-IP Programme empfangen können.

Thema: Microsoft Project online Welche Version benötigen Sie?

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Konfiguration des Novell GroupWise Connectors

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Anleitung zur Updateinstallation von ElsaWin 5.20

Kurzanleitung der Gevopa Plattform

mybev Shop des e-geodata Austria Portal

Informationen zum neuen Studmail häufige Fragen

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Der lokale und verteilte Fall

inviu routes Installation und Erstellung einer ENAiKOON id

Technische Dokumentation SilentStatistikTool

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Lizenzierung von SharePoint Server 2013

Anleitung über den Umgang mit Schildern

Zum Lesen von News-Feeds unter Windows bieten sich diverse kostenlose bzw. kostenpflichtige Feed-Reader an:

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Transkript:

1 Überblick Diensteplattform für Java von Sun Microsystems G JINI Programmiermodell für Dienste Infrastruktur Unterstützungsdienste Hintergrund Nomadic computing mobile Geräte dynamische Dienstnutzung einfacher Zugang zu Geräten Gerät bietet Dienste an allgemeine Dienstnutzung G.1 G.2 1.1 Programmiermodell 1.1 Programmiermodell (2) JINI Dienst konzeptioneller Dienst keine vorgeschriebene Zuordnung zu bestimmter Implementierung Implementierung in Hardware z.b. Lichtschalter, Heizungsregler Implementierung in Software z.b. Hallo -Sager, Druckseitenaufbereiter Kombination z.b. Drucker Implementierung des Dienstes muss nicht vollständig in Java erfolgen Dienstveröffentlichung () muss in Java erfolgen Dienst erhält weltweit eindeutige Service-ID sollte für die selben Dienste wiederverwendet werden JINI- Nutzer eines Dienstes Implementierung in Java dynamischer Dienstzugang Dienstzugang () in Java muss ein dienstspezifisches Java-Interface implementieren JINI- ähnlich Namensdienst registriert JINI-Dienste ermittelt registrierte JINI-Dienste für s G.3 G.4

2 --Interaktion 2 --Interaktion (2) Klassische Interaktion (z.b. bei Java-RMI) Dienstimplementierung als RMI-Objekt Ermitteln einer Dienstreferenz über Namensdienst Aufruf des Dienstes über RMI Namensdienst JRMP/IIOP RMI-Dienstobjekt RMI-Stub JINI-Interaktionsmodell klassische Interaktion Einsatz von RMI proxybasierte Interaktion ( Smart- -Ansatz) Teil der Dienstimplementierung vor Ort beim automatische Installation des s ist ein Java-Objekt Einsatz andere Middleware-Systeme z.b. CORBA, JMS, EJB, Web-Services teillokale Dienstimplementierung Caching Vorverarbeitung von n lokale Dienstimplementierung keine zentrale Implementierung G.5 G.6 2.1 RMI-basierte Interaktion 2.2 basierte Interaktion Dienstimplementierung als RMI-Objekt Ermitteln eines Dienstproxys (RMI-Stub) über Aufruf des Dienstes über RMI Dienstimplementierung über Netz erreichbar Ermitteln eines Dienstproxys über Aufruf des Dienstes über Methoden des s beliebige Kommunikation (z.b. SOAP) teillokale Dienstimplementierung JRMP/IIOP RMI-Dienstobjekt RMI-Stub G.7 SOAP Dienstimplem. G.8

2.3 lokale Dienstimplementierung 2.4 Dienstimplementierung in Hardware implementiert den Dienst vollständig des Dienstes notwendig Ermitteln eines Dienstproxys über Aufruf des Dienstes über Methoden des s implementiert Zugang zur Hardware des Dienstes notwendig Ermitteln eines Dienstproxys über Aufruf des Dienstes über Methoden des s Diensterzeuger Diensterzeuger Hardware G.9 G.10 3 Zentrale Instanz bei JINI implementiert als JINI-Dienst Dienst- erforderlich Henne-Ei-Problem (Wo kann man den bekommen?) Lösung: Discovery-Protokolle 3.1 Discovery Zwei Varianten Unicast-Discovery Rechner mit bekannt Multicast-Discovery unbekannte Umgebung G.11 3.1 Discovery (2) Discovery-nachricht über Multicast (IP: 224.0.1.85:4160) Protokollversion Portnummer des hält TCP-Port offen für Antwort Liste von bekannten s Service-IDs Liste von JINI-Gruppennamen öffentliche Gruppe: leerer String beliebiger Gruppenname z.b. AvID Nachricht bekommt TTL-Angabe (Time-To-Live) lokales Netz, Organsiationsnetz, regionales Netz, gesamtes Internet korrektes Routing an den Netzgrenzen vorausgesetzt G.12

3.1 Discovery (3) 3.1 Discovery (4) über TCP/IP (Unicast) Protokollversion Generische Antwort über TCP/IP Service- doppelt serialisiertes Java-Objekt serialisiertes -Objekt wird in ein MarshalledObject eingebettet MarshalledObject wird serialisiert Vorteil: eigentliches Objekt braucht nur bei Bedarf deserialisiert werden Klasse muss nicht geladen werden Klasse von MarshalledObject ist bekannt Liste der unterstützten Gruppennamen Multicast-Announcement-Protocol (IP: 224.0.1.84:4160) verbreitet periodisch seine Adresse etwa alle zwei Minuten Nachrichteninhalt: Protokollversion eigener Hostname plus Portnummer eigene Service-ID Liste der unterstützten Gruppen G.13 G.14 3.1 Discovery (5) 3.2 Unterstützung Klasse net.jini.discovery.lookupdiscovery Erzeugung einer Instanz Liste der interessierten Gruppennamen als Konstruktorparameter sucht automatisch nach s einer DiscoveryListener-Instanz wird benachrichtigt über neu entdeckte und verschwundene s erhält Referenz auf Klasse net.jini.discovery.discoverymanager komfortablere Buchhaltungsfunktionen über entdeckte s Lookup-Discovery-Service JINI-Dienst sammelt Informationen über s und benachrichtigt interessierte s eines JINI-Dienstes (Join) Übergabe eines ServiceItem-Objekts an Service-ID (oder null, falls noch nicht bekannt) -Instanz Liste von Attributen z.b. PrinterType=Colour Realisierung der Attribute über speziell serialisierte Attributobjekte (Klasse Entry) Unterstützung Klasse net.jini.lookup.joinmanager sorgt automatisch für an allen gefundenen s insbesondere bei neuen s G.15 G.16

3.3 Dienstsuche 4 Leases an einen Übergabe eines ServiceTemplate-Objekts Service-ID oder null Liste von Interface-Typen oder null Liste von Attributmustern oder null Rückgabe eines oder mehrere Dienst-Proxies zu gefundenen Diensten typisch: Cast auf Dienst-Interface und Nutzung des Dienstes Unterstützung Klasse net.jini.lookup.servicediscoverymanager erzeugt Cache von bekannten und interessanten Diensten Motivation Fehlererkennung ausgefallene und s Selbstheilung Reaktion aus früher Fehlererkennung z.b. nach anderen s suchen z.b. anderen Drucker suchen Begrenzung der Dienstlebenszeit in langlaufenden Systemen z.b. zur Aktualisierung auf neue Version Garbage-Collection Löschen oder Deaktivierung eines Dienstes, falls nicht genutzt G.17 G.18 4 Leases (2) 4 Leases (3) Betriebsmittel werden mit Leases versehen Leases haben begrenzte Gültigkeit nach Ablauf wird Betriebsmittel unter Umständen entzogen oder ungültig hier: Lease für Proxies und Dienstregistrierungen nach Ablauf wird ungültig oder Dienst deregistriert initiale Lease-Zeit wird verhandelt Vorschlag durch Betriebsmittelnutzer z.b. beim Registrieren an einem Lease-Architektur Beispiel: Lease für einen Dienst- Dienst Lease propietäres Lease-Protokoll Lease Java-Interface für beliebige Lease-Implementierungen Methode zur Erneuerung der Lease (Vorschlag durch Nutzer) tatsächliche Verlängerungszeit abhängig vom Anbieter Methode für unmittelbaren Ablauf der Lease verschiedene Implementierungsmöglichkeiten Lease-Implementierung auf Seite des / Lease-Implementierung auf Seite des Dienstes G.19 G.20

4 Leases (4) 4 Leases (5) Lease-Implementierung mit RMI Lease-Implementierung auf der Seite des Dienstes Dienst Unterstützung auf -Seite Klasse net.jini.lease.leasemanager von Leases zur Verwaltung zur automatischen Verlängerung zur automatischen Verlängerung bis zu gewissem Zeitpunkt RMI Lease z.b. Methode getlease() am Dienst-Interface ermittelt Lease Leasing-Service JINI-Service zur Verlängerung von Leases sinnvoll für langdauernd inaktive s zum Outsourcing der Lease-Verwaltung G.21 G.22 4 Leases (6) 5 Randbereiche Unterstützung auf -Seite Sun s Landlord Implementierung bestehend aus Interfaces für Landlord: Verwaltet die Ablaufzeiten aller Leases LandlordLeaseFactory: erzeugt neues Lease-Objekt für bestimmten Landlord LandlordLease: Lease, die mit Landlord zusammen arbeitet Identifikation der Betriebsmittel in Lease und Landlord über Cookie-Objekte Dynamisch zu ladender Code -Code muss dynamisch geladen werden Standard bei RMI-Stubs für alle JINI-Proxies notwendig Web- erforderlich stellt Stub- und -Klassen bereit Security-Manager erforderlich muss erzeugt werden benötigt entsprechende Berechtigungen muss in Policy-Datei festgelegt werden G.23 G.24

5 Randbereiche (2) 6 JavaSpaces RMI-Activation RMI erlaubt aktivierbare Objekte Objektreferenz vorhanden Objekt wird bei Bedarf (bei Zugriff) instanziiert (aktiviert) oder Jini-Service könnte sich deaktivieren Dämon-Prozess rmid notwendig für Aktivierung Implementierung eines Tupel-Space in Java bzw. JINI Dateisystem für JINI-Services Programmiermodell JavaSpace enthält Java-Objekte Einfügen eines Objekts in den Space (als Kopie) (write) Lesen eines Objekts vom Space (als Kopie) (read) Herauslösen eines Objekts aus dem Space (löschendes Lesen) (take) Benachrichtigungsfunktion beim Einfügen von Objekten mit bestimmten Eigenschaften (notify) speicherbare Objekte erben von Entry vgl. Attribute bei Dienstregistrierung und -suche Suche und Suchmuster sind äquivalent G.25 G.26 6 JavaSpaces (2) 7 Literatur Implementierung als JINI-Service muss installiert, registriert, gesucht und gefunden werden Entry-Objekte bekommen eine Lease muss Lease-Management übernehmen Entries mit abgelaufener Lease werden gelöscht Suns JavaSpaces Implementierung Outrigger transienter oder persistenter Objektspeicher Zusammenarbeit mit Transaktionen weiterer Jini-Service: Transaktionsmanager Suns Implementierung: Mahalo Erzeugung eines Transaktionskontexts am Transaktionsmanager Aufruf von abort() macht alle Änderungen im Space rückgängig Aufruf von commit() macht alle Änderungen sichtbar JINI Sun Microsystems: Jini Spezifikation- und Download-Seite <http://java.sun.com/products/jini/> W. K. Edwards: Core Jini. Prentice Hall, 2001. R. Flenner: JINI and JavaSpaces Application Development. Sams, 2001. Jan Newmarch s Guide to Jini Technologies <http://jan.netcomp.monash.edu.au/java/jini/tutorial/jini.xml> G.27 G.28