26.10.2012 Aufrufe

Programmieren in Java

Programmieren in Java

Programmieren in Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!