vs7.2 1 7.2.0 Facetten der Verteilungsabstraktion Verteilungsabstraktion (distribution transparency) ist Sammelbegriff für verschiedene Eigenschaften eines Programmiersystems, die von den Verteilungsspezifika der Implementierung zu abstrahieren erlauben: Zugriffs- Abstraktion (access transparency) Lage/Orts- Abstraktion (location transparency) Migrations- Abstraktion (migration transparency) Replikations- Abstraktion (replication transparenc und weitere . . . 7.2 Mobile Objekte (mobile objects, auch Objektmigration, object migration)
7.2 Mobile Objekte ( mobile objects, auch Objektmigration, object migration). 7.2.0 Facetten der Verteilungsabstraktion. Verteilungsabstraktion (distribution transparency) ist Sammelbegriff für verschiedene Eigenschaften eines Programmiersystems, die von den Verteilungsspezifika - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
ist Sammelbegriff für verschiedene Eigenschaften einesProgrammiersystems, die von den Verteilungsspezifikader Implementierung zu abstrahieren erlauben:
Zusätzliche Mechanismen für Variablenparameter bei Fernaufrufen:
Call-by-move: Argument migriert zum aufgerufenen Objekt:
server.op(move arg);
Call-by-visit:Argument migriert zum aufgerufenen Objekt und zurück:
server.op(visit arg);
(! Nicht verwechseln mit call-by-value-result !)
Plattform: Workstation Cluster,
Programmcode auf allen Stationen repliziert
vs7.2 12
Doorastha
= Java-Erweiterung mit Annotationen < ..... > ,
ohne (sichtbaren) RMI-Code, übersetzt nach JVM
Klasse für „Fernobjekte“:
<globalizable> class Table ...
Fernerzeugung:
Table t = new <remotenew: host=...> Table();
Spezifikation von call-by-move:
void op(<by-move> Table t) ...
+ weitere Annotationen, auch für Attribute von Objekten
vs7.2 13
7.2.4 Migrationsabstraktion
z.B. bei JavaParty (Univ. Karlsruhe, M. Philippsen)http://wwwipd.ira.uka.de/JavaParty/
= minimal erweitertes Java für hochgradige Verteilungsabstraktion
zwecks Parallelrechnen im Lokalnetz – ohne (sichtbaren) RMI-
Coderemote class X .. bewirkt, dass die X-Objekte
fernaufrufbar und mobil sind
Migration wird von „intelligentem“ Laufzeitsystem gesteuert
(explizite Steuerung ist ebenfalls möglich)
Voraussetzung: alle Stationen sehen gemeinsames (verteiltes) Dateisystem
vs7.2 14
Benutzung von JavaParty:
1. Programm z.B. HelloJP.java
public remote class HelloJP {public static void main(String[] arg) {
System.out.println("Hello JavaParty!"); }.....}
übersetzen mit JavaParty-Übersetzer:
jpc HelloJP.java
generiert diverse Klassen,
einschließlich Hilfs- und Stub-Klassen für RMI (!)
vs7.2 15
2. JavaParty Runtime Manager starten:
jprm &
3. Eine oder mehrere JavaParty Virtual Machines starten, z.B. auf verschiedenen Stationen, aber so, dass die .class-Dateien erreichbar sind:
jpvm & *
Achtung: jpvm sucht Kontakt mit jprm per Rundruf;Stationen sollten daher im gleichen Subnetz sein
* zufällige Namensgleichheit mit JPVM für Java PVM
vs7.2 16
4. Programm so starten, daß die .class-Dateien erreichbar sind, z.B.
jp HelloJP
5. Die mit jprm und jpvm hochgezogene Plattform abräumen mit
jprk („rk“ wie „remote kill“)
vs7.2 17
7.2.5 Klassifikation mobilen Codes
Nicht vergessen:
Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, dass der Code entweder am Zielort vorhanden ist (schon geladen oder dynamisch aus dem Dateisystem nachladbar) oder zusammen mit den Daten im Netz übertragen werden kann.
Code-Übertragung zwischen Rechnern mit verschiedener Architektur kommt nicht in Frage, wenn es sich umMaschinencode handelt. (Daten dagegen können stetsumcodiert werden!)
Code-Übertragung (wenn möglich) wird natürlich vielfach- und wurde immer schon - auch ohne Objekte eingesetzt.
vs7.2 18
Allgemeine Situation ohne Objektorientierung:
Prozess A ist an einer Dienstleistung interessiert,
Prozess B ist an deren Erbringung beteiligt,
A und B befinden sich auf verschiedenen Stationen SA, SB.
Dienstleistung wird erbracht durch Ausführung von
Code (evtl. parametrisiert) auf Daten/Ressourcen
Klassifikation von Mobilcode-Paradigmen:
(Fuggetta et al. in IEEE-TSE May 1998)
vs7.2 19
Paradigma SA SB
Client/Server
A B
Code Ressourcen
Remote Evaluation(uploading)
A
Code
B
Ressourcen
Code on Demand(downloading)
A Ressourcen
B
Code
Mobile Agent(process, not object)
ACode
Ressourcen
Code
Code
ACode
vs7.2 20
Extreme Flexibilität dank interpretiertem Code z.B. bei Java:
Dynamisches Laden von Code ( .class )
nicht nur aus Dateisystem sondern auch über Netz
Beispiele:
Applets (downloading)
Fernaufruf von Compute Server (uploading mit Objektdaten)
Fernaufruf von Objektfabrik (downloading mit Objektdaten)
vs7.2 21
Achtung! Code übers Netz laden bedroht die Systemsicherheit !