Programmieren in Java
Programmieren in Java
Programmieren in Java
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
FACHHOCHSCHULE MUENCHEN FAKULTÄT FÜR ELEKTROTECHNIK UND INFORMATIONSTECHNIK<br />
FG TECHNISCHE INFORMATIK V – JV – 823 – 02 – TH – 03<br />
------------------------------------------------------------------------------------<br />
<strong>Java</strong>-RMI - Interfaces und Klassen (2)<br />
• Die wichtigsten Interfaces und Klassen des <strong>Java</strong>-RMI-API - Kurzbeschreibung<br />
◇ <strong>in</strong>terface Remote (Package : java.rmi)<br />
"Basis"-Interface für alle Interfaces, deren Methoden mittels RMI aufrufbar se<strong>in</strong> sollen.<br />
Alle Klassen, deren Objekte mittels RMI ansprechbar se<strong>in</strong> sollen, müssen direkt oder <strong>in</strong>direkt – über abgeleitete<br />
Interfaces – dieses Interface implementieren.<br />
Mittels RMI können nur die Methoden, die <strong>in</strong> e<strong>in</strong>em von Remote abgeleiteten Interface (� remote <strong>in</strong>terface) spezi-<br />
fiziert s<strong>in</strong>d, aufgerufen werden.<br />
◇ class RemoteObject (Package : java.rmi.Server)<br />
Abstrakte Klasse, die e<strong>in</strong>ige Methoden der Klasse java.lang.Object für entfernt nutzbare Objekte (remote<br />
objects) überschreibt und damit die entsprechenden Fähigkeiten für derartige Objekte implementiert.<br />
(spezielle Implementierungen der Methoden hashCode(), equals() und toStr<strong>in</strong>g())<br />
◇ class RemoteServer (Package : java.rmi.Server)<br />
Abstrakte Superklasse der Klassen für entfernt nutzbare Server-Objekte.<br />
Sie stellt e<strong>in</strong> geme<strong>in</strong>sames Framework zur Unterstützung unterschiedlichster Semantiken für entfernte Referenzen<br />
zur Verfügung, die durch die von ihr abgeleiteten Klassen implementiert werden<br />
Die zur Erzeugung und Exportierung von Objekten an das RMI-Laufzeitsystem benötigten Methoden (Konstruktoren<br />
und gegebenenfalls weitere Methoden) werden durch die von dieser Klasse abgeleiteten Klassen bereitgestellt.<br />
U.a. stellt diese Klasse auch e<strong>in</strong>e statische Methode zum Ermitteln des aufrufenden Client-Rechners zur Verfügung.<br />
◇ class UnicastRemoteObject (Package : java.rmi.Server)<br />
Von der Klasse RemoteServer abgeleitete Klasse für e<strong>in</strong>fache – nicht replizierbare – entfernte Objekte, deren<br />
Referenzen nur gültig s<strong>in</strong>d, solange die Objekte aktiv s<strong>in</strong>d.<br />
Sie stellt die Unterstützung für Punkt-zu-Punkt-Verb<strong>in</strong>dungen zu aktiven Objekten (bezüglich Aufrufe, Parameter,<br />
Rückgabewerte) unter Verwendung von TCP-Sockets bereit<br />
Durch Übergabe e<strong>in</strong>es <strong>in</strong>t-Parameters an den Konstruktor kann die Port-Nummer festgelegt werden.<br />
Wird ke<strong>in</strong> Parameter übergeben, wird vom System e<strong>in</strong> anonymes Port gewählt.<br />
Eigene Klassen, die diese Referenz-Semantik bereitstellen sollen, müssen – unter Implementierung e<strong>in</strong>es geeigneten<br />
remote <strong>in</strong>terfaces - von dieser Klasse abgeleitet werden.<br />
◇ class Activatable (Package : java.rmi.Activation)<br />
Von der Klasse RemoteServer abgeleitete Klasse für entfernte Objekte, deren Referenzen auch gültig s<strong>in</strong>d,<br />
wenn die Objekte <strong>in</strong>aktiv und persistent ausgelagert s<strong>in</strong>d Diese Objekte können bei Bedarf wieder aktiviert werden.<br />
Eigene Klassen, die diese Referenz-Semantik bereitstellen sollen, müssen – unter Implementierung e<strong>in</strong>es geeigneten<br />
remote <strong>in</strong>terfaces - von dieser Klasse abgeleitet werden.<br />
◇ class RemoteException (Package : java.rmi)<br />
Superklasse der kommunikationsorientierten Exceptions, die bei RMI auftreten können.<br />
Alle Methoden e<strong>in</strong>es remote <strong>in</strong>terfaces müssen diese Exception weiterreichen können, d.h. <strong>in</strong> ihrem Funktionskopf<br />
muß e<strong>in</strong>e entsprechende Exception-Spezifikation (throws-Klausel) enthalten se<strong>in</strong>.<br />
◇ class Nam<strong>in</strong>g (Package : java.rmi)<br />
Nicht ableitbare Klasse (f<strong>in</strong>al), die statische Methoden zum Zugriff zur RMI-Registry bereitstellt<br />
◇ class RMISecurityManager (Package : java.rmi)<br />
Beispiel e<strong>in</strong>es von RMI-Anwendungen für das dynamische Laden von Code benötigten Security-Managers.<br />
Der RMI Class Loader kann ohne <strong>in</strong>stallierten Security-Manager ke<strong>in</strong>en Code von URLs, die auf e<strong>in</strong>en entfernten<br />
Rechner verweisen, laden.