Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Parallele Programmierung in Java
Hauptseminar Parallele Programmierung in Java Transparente verteilte Objekte Arnim Kreutzer
2
Einführung Inhalt Schluß Laufzeitumgebung Entfernte Klassen Einführung
3
Einführung Motivation
Nachteile Sockets keine GC, entfernte Adressen / Methodenaufrufe, Data Marshaling Nachteile RMI Zusätzliche Exceptions, örtlich gebundene Objekte, keine Migration
4
Programmierumgebung für Cluster Applications
Einführung Ziele Programmierumgebung für Cluster Applications Forschungsplattform
5
Einführung Grundlagen
Studienarbeit von Matthias Zenger: „Transparente Objektverteilung in Java“ 1997 Java RMI / KARMI
6
Einführung Highlights
Java-like multi-threaded Programmierung Javas Objektsemantik Entfernte Threads Dynamische Objektverteilung Explizite Plazierung von Objekten/Threads Synchronisation entfernter Objekte Optimierte Örtlichkeiten
7
Entfernte Klassen Aufteilung
class B statischer Anteil nicht-statischer Anteil Class B_class Repräsentation des statischen Anteils von B Class B_impl Repräsentation des nicht- statischen Anteils von B
8
Entfernte Klassen Kompilieren
JavaParty Code JavaParty Compiler JPC JavaParty Transformation Regulärer Javacompiler Pures Java mit RMI Ausdrücken Regulärer RMI Stub & Skeleton Generator Portable ByteCode
9
Entfernte Klassen Objekthierachie
remote class B extends A implements C C B A Object Eingeführter Klassenmodifikator
10
Entfernte Klassen Entfernte Objekthierachie
11
Entfernte Klassen Generierte Klassen
12
Entfernte Klassen Synchronisation
Problem: Keine maschinenübergreifende Threads Klasse für Signalobjekte und Monitorklasse Aktuell: Arbeit an transparente Synchronisation
13
Laufzeitsystem Struktur
14
Laufzeitumgebung Objektinstantiierung I
Wie? Lokale Instantiierung Umzug auf Ziel-JVM Nachteil: teuer Instantiierung auf Ziel-JVM
15
Laufzeitumgebung Objektinstantiierung II
B (T z) { ...getConstrObj („B“)._new (z); } Handle B_intf _new (T z) {... return new B_impl (z); Konstruktorobjekt B_impl (T z) ... Entferntes Objekt new B (x) Lokale JVM Entfernte JVM
16
Laufzeitumgebung Objektmigration
1. Signal von der Ziel JVM an Objekt, dass Umzug beginnen soll 2. Feststellung der Umzugsfähigkeit / Sperre setzen / Serialisieren 3. Erzeugung eines neuen Objekts (Kopie) aus serialisierter Form / Stubreferenz an noch aktuelles Objekt schicken 4. Das jetzt veraltete Objekt setzt einen Verweis auf neuen Stub
17
Schluß Zusammenfassung
+ Anforderungen gut umgesetzt - Inkonsistenzen bei der Migration - Sourcecode nicht gut dokumentiert
18
Installationsanleitung
Schluß Informationen Dokumente JavaParty-HomePage: Antworten Meine mail: Downloads Installationsanleitung
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.