-
3 Merkmale entfernte Objektverweise
- Entfernte Methodenaufrufe mit Parametern
- Bezeichner für entfernte Objektinstanz
- Nachricht muss eindeutigen Verweis auf Objektinstanzangeben, die Methode aufrufen soll
-
3 Einschränkungen entfernter Objekte
- Kapselung erzwungen: Zugriff auf Zustand nur über Methoden
- Factory-Klassen mit Factory-Methoden erforderlich: Keine Verwendung des Konstruktors in entfernten Objektschnittstellen möglich
- Zusätzlicher Fehlertypus: RemoteException
-
4 Merkmale von Java RMI
- Integraler Bestandteil der Java Plattformen
- Client und Serverobjekte immer in Java
- Client benötigt Objektreferenz von Serverobjekt
- Verwendet Sicherheitsmodell der Java Plattform
-
3 Merkmale der Serialisierung bei Java RMI
- Abflachung eines oder mehrerer verknüpfter Objekte zueinem seriellen Format zur Übertragung oder Speicherung
- Serialisierbare Klassen implementieren das Interface Serializable
- Voraussetzung: deserialisierender Prozess benötigt kein Vorwissen über Typen der Objekte in serialisiertem Format
-
4 Schritte der Funktionsweise der statischen Klasse Naming
- Stellt dem Server statische Hilfsmethoden zur Verfügung
- Unter anderem Methoden zum Anmelden von Serverobjekte am Namensdienst, der RMI Registry
- Zur Anmeldung wird eine eindeutige Objektreferenz des Serverobjekts im Namensdienst bekanntgegeben
- Die Objektreferenz enthält die genaue Adresse des Objekts
-
3 Merkmale Java RMI Client
- Verschafft sich über die statische Methode lookup() der Klasse Naming bei der RMI-Registry die Objektreferenz vom Namensdienst zur Kontaktierung des Serverobjekts
- Die Referenz ist Grundlage für die Generierung eines Proxy-Objekts (RMI Proxy Pattern)
- Über den Proxy können alle Methoden des Serverobjekts angesprochen werden
-
5 Merkmale Java RMI Registry
- Aufgabe der RMI-Registry ist die Bereitstellung von Referenzen auf Serviceobjekte
- Die RMI Umgebung generiert bei der Anmeldung eines Serviceobjekts an der RMI-Registry eine Objektreferenz mit Ortsbeschreibung zur Lokalisierung des Serviceobjekts
- Objektreferenzen werden unter einem kennzeichnenden Namen an der Registry angemeldet
- Client holt über den Namen die Objektreferenz von der Registry und kann damit auf das Serviceobjekt zugreifen
- Registry läuft als Hintergrundprozess
-
6 Merkmale von Java RMI Callbacks
- Client erzeugt entferntes (Callback-)Objekt, dass Schnittstelle mit Methode zum Aufruf durch den Server implementiert
- Server stellt Operation bereit, die interessierten Clients erlaubt, Objektreferenzen der Callback-Objekte zu informieren
- Server speichert Liste der Objektreferenzen
- Bei Ereigniseintritt ruft der Server alle interessierten Clients auf
- Server performanceintensiv
- Standardmäßig nicht echtzeitfähig
-
4 Merkmale Java RMI Objektaktivierung
- In großen Systemen mit Tausenden von Objekten ist es unrealistisch, immer alle Objekte im Speicher aktiv zu haben
- Mit Hilfe des Java-Aktivierungsmechanismus können Objekte persistent gemacht und erst bei Bedarf wieder instanziiert werden
- Dieses Objektmanagement wird durch den Dämon rmid realisiert
- Jini basiert sehr weitgehend auf diesem Aktivierungsmechanismus
-
5 Merkmale des persistenten Objektspeichers bei Java RMI
- Persistente Objekte existieren zwischen Prozessaktivierungen garantiert weiter
- Menge verwandter persistenter Objekte erreichbar über gemeinsame Wurzel
- Verwaltung der Wurzeln und Garbage Collection über nicht mehr von einer Wurzel erreichbare Objekte
- Klassen für Persistenz mit Unterstützung für Transaktionen zum Speichern und für Wiederherstellung
- Caching möglich, aber nur unter Verwendung eines Cache-Konsistenz-Protokolls
-
6 Merkmale Java RMI Sicherheitsmodell
- Das Sicherheitsmodell der Java Plattform wird auch Sandbox Modell genannt
- Nicht vertrauenswürdiger Code (Untrusted Code) darf nur ingeschützten Speicherbereichen ablaufen und erhält lediglich Zugriff auf lokale Ressourcen
- Findet die Laufzeitumgebung eine Klassendefinition nicht lokal vor, wird sie über das Netz nachgeladen
- Heruntergeladene Klassen werden als untrusted Code betrachtet
- Entfernte Aufrufe werden ebenfalls als nicht vertrauenswürdig betrachtet
- Installation eines Security Managers auf Client und Serverseite
-
5 Punkte der Basisimplementierung von Java RMI
- Seit Java 1.2: Verwendung von Reflection
- Nutzung der Java-Klasse Method
- Eine Instanz der Klasse Method pro aufrufbarer Methode einer von Remote erbenden Klasse
- Aufrufbar mit der Methode invoke()
- Transparente Anlage des Dispatchers
|
|