140 likes | 257 Views
JAVA RMI. RMI. RMI steht für Remote Method Invocation Angelehnt an RPC (remote procedure call) Bestandteil von JAVA Package Java.rmi.*. VORTEIL VON JAVA. wurde u.a. entworfen, um die Entwicklung von Netzwerk-Applikationen zu erleichtern Java-Objekte sind: klein maschinenunabhängig
E N D
RMI • RMI steht für Remote Method Invocation • Angelehnt an RPC • (remote procedure call) • Bestandteil von JAVA • Package Java.rmi.*
VORTEIL VON JAVA • wurde u.a. entworfen, um die Entwicklung von Netzwerk-Applikationen zu erleichtern • Java-Objekte sind: • klein • maschinenunabhängig • portabel • Sicher
VERTEILTE ANWENDUNG IN JAVA • Java ist geeignet für verteilten Systemen • RMI bietet die Möglichkeit: • verteilte Anwendungen in JAVA • einfach abstrahierter entfernter Methodenaufruf • Transparenzprinzip • Keine Kenntnis über Netzprogrammierung erforderlich
EINGENSCHAFT VON RMI • RMI bietet einfache Möglichkeit um verteilte, plattformübergreifende Softwareherzustellen, die transparent über heterogene Netzwerke hinweg arbeitet. • RMI ermöglicht das Aufrufen von Java-Methoden auf Objekte die in einem über ein Netzwerk verbundenen Rechner residieren. • Die Basis eines RMI-Programms sind „Remote Objects“.
BESTANDTEIL • RMI besteht aus • Naming Service • Kommunikationskomponente • Server • Client
PROTOKOLL • RMI Wired Protocol • Von Sun • Aufbauend auf TCP/IP • Verwendet HTTP Server • IIOP (Internet Inter ORB Protocol) • Von OMG (Object Management Group) • Verwendet auch in CORBA
SERIALISATION • Um Objekte in einen Stream verwandelt werden können, welcher dann versandt wird • Durch Stub und Skeleton Klassen auf dem Client bzw. Server • Schreibt man RMI Objekte und bewegt Objekte als Parameter oder Ergebnis,dann sollten diese Objekte als Serializable markiert sein
RMI Class Loader • Klassen zu übermittelten Objekten müssen eventuell nachgeladen werden • Klassen werden nur nachgeladen, wenn ein SecurityManager installiert ist: • void System. setSecurityManager( SecurityManager s)
SecurityManager • SecurityManager ist abstrakte Klasse mit Methoden, die java.lang.SecurityManager werfen wenn bestimmte Operationen nicht erlaubt sind • java. rmi. RMISecurityManager implementiert eine • Sicherheitspolicy,z. B.: • Kein Arbeiten mit Ports • Keine Manipulation von Threads • Keine Prozesse
Naming Service • Objekte mit lesbaren Namen zu assoziieren • bind() • rebind() • unbind() • lookup() • list() • Registry • der eigentliche Server
VERGLEICH • Vorteile zu CORBA • Transparenz • einfache Programmierung • eingebunden in JAVA JDK • URL basierte Namensgebung • Nachteile zu CORBA • auf JAVA beschränkt, d.h. nicht so mächtig • Geschwindigkeitsnachteil • wenige Services implementiert