Automatische Verteilung in Pangaea. André Spiegel Freie Universität Berlin

Ähnliche Dokumente
8.2 Mobile Objekte. (mobile objects, auch Objektmigration, object migration) Facetten der Verteilungsabstraktion

Einstieg in die Informatik mit Java

Software Engineering

Einstieg in die Informatik mit Java

Programmieren in Java -Eingangstest-

Crashkurs C++ - Teil 1

Einstieg in die Informatik mit Java

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Einsatz von Java-Komponenten in verteilten Embedded Systems

Einstieg in die Informatik mit Java

Statische Methoden, Vererbung, Benutzereingabe

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Einstieg in die Informatik mit Java

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Überschreiben von Methoden

JUnit. Software-Tests

Einstieg in die Informatik mit Java

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Einstieg in die Informatik mit Java

Überblick über die Roblet -Technik

Methoden und Wrapperklassen

Dr. Monika Meiler. Inhalt

Sommersemester Implementierung I: Struktur

Einstieg in die Informatik mit Java

13. Funktionale Konzepte in Java

Javakurs für Anfänger

II.4.5 Generische Datentypen - 1 -

Softwaretechnik WS 16/17. Übungsblatt 01

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Statische Methoden, Vererbung, Benutzereingabe

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Entwurf und Prototypische Implementierung einer Data Mashup Plattform. Abschlussvortrag Projekt-INF

Typumwandlungen bei Referenztypen

Einführung in die Programmierung 1

Netzwerkprogrammierung unter Linux und UNIX

SAP NetWeaver Gateway. 2013

7. Übung Informatik II - Objektorientierte Programmierung

7.1.5 Java RMI Remote Method Invocation ( (

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Enterprise JavaBeans Überblick

Kapitel 8: Serialisierbarkeit

12 Abstrakte Klassen, finale Klassen und Interfaces

Kapitel 5: Interfaces

Einstieg in die Informatik mit Java

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Programmieren 2 Java Überblick

Klausur Grundlagen der Programmierung

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Java in der Ausbildung

Web-Techniken Einführung in JavaScript

Poseidon for UML. Einführung. Andreas Blunk

Remote Method Invocation

Institut für Informatik und Angewandte Kognitionswissenschaften

Implementieren von Klassen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Konzepte von Betriebssystem- Komponenten Middleware. Jini. Vortrag von Philipp Sommer

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Prof. Dr. Th. Letschert CS5001. Verteilte Systeme. Master of Science (Informatik) - Einleitung - Th Letschert FH Gießen-Friedberg

Tag 8 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Vorlesung Programmieren

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Verteilte Web-Anwendungen mit Ruby. Ruben Schempp Anwendungen

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse

Info B VL 11: Innere Klassen/Collections

Vererbung. Martin Wirsing. Ziele. Vererbung

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

FPGA-basierte Automatisierungssysteme

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Vorkurs Informatik WiSe 17/18

Die AspectIX Middleware-Plattform

Vererbung, Polymorphie

Einstieg in die Informatik mit Java

Kontext-basierte Personalisierung von Web Services

Vorlesung Programmieren

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

ServiceGlobe: Flexible and Reliable Web Service Execution

Masterkurs Verteilte betriebliche Informationssysteme

Programmierkurs Java

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Multi-Port-Speichermanager für die Java-Plattform SHAP

11. Komponenten Grundlagen der Programmierung 1 (Java)

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces

Programmieren 1 09 Vererbung und Polymorphie

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Verteidigung. Diplomarbeit Thema: Evaluation des Projekts Quality Objects. Sven Harazim

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006

Software Design basierend auf dem Plug-In Konzept

Transkript:

Automatische Verteilung in Pangaea André Spiegel Freie Universität Berlin

Einführung Pangaea ist ein System, das zentralisierte Java-Programme automatisch verteilen kann basierend auf statischer Quelltextanalyse unter Verwendung beliebiger Middleware wie RMI oder CORBA. ein verteilender Übersetzer. Anwendungsgebiete: interaktive, client/server-artige Web-Applets parallele Programmierung.

Gliederung Motivation: Warum automatische Verteilung? Pangaea im Überblick Technische Einzelheiten Objektgraph-Analyse Codegenerierung für eine Middlewareschicht Eine Fallstudie

Motivation Warum automatische Verteilung? erleichtere die Erstellung verteilter Programme entkoppele Verteilung und Anwendungslogik Warum statische Analyse? Ziele Verteilungstransparenz konsequent findet Optimierungen, die für eine rein laufzeit-basierte Automatik unmöglich sind Beispiel: konstante Objekte (immutable objects) zunächst fast so gut sein wie der Programmierer......später besser (vgl. Compilertechnik)

Architektur Verteilungsanforderungen Zentralisiertes Programm (100% Java) Analyzer Pangaea Plattform-Adapter (CORBA) (JP) (D stha) Verteiltes Programm (plattform-spezifisch)...... CORBA Middleware JavaParty Doorastha Ausführbares Programm

Die Benutzerschnittstelle

Objektgraph-Analyse Das Ziel: Gewinne durch statische Analyse einen Graphen der Objekte, die zur Laufzeit existieren werden der Benutzungsbeziehungen zwischen diesen Objekten (wer ruft wen?) Existierende Ansätze: Typinferenz, Points-to Analyse,... betrachten Typen, nicht Objekte ein statisches Programm manipuliert passive Daten Unser Ansatz: eine objekt-orientierte Sicht des Problems

Eine Beispielanalyse public class Main... public class Producer... public class Data... public class Buffer... public class Consumer...

Eine Beispielanalyse dynamisches Objekt initial von Main alloziert genau eine Instanz Producer statisches Objekt implizit alloziert genau eine Instanz Main

Eine Beispielanalyse Data dynamisches Objekt List nicht-initial alloziert unbestimmt viele Buffer Instanzen Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eine Beispielanalyse Data List Buffer Producer Consumer Main

Eigenschaften des Algorithmus Für reale Programme: polynomielle Komplexität Implementiert und getestet für Programme mit bis zu 10.000 Zeilen (Rechenzeiten im Minutenbereich) Detailauflösung hinreichend zur Verteilungsanalyse

Codegenerierung Das Ziel: realisiere die Verteilungsstrategie, die der Analyzer verlangt, auf der gegebenen Middleware unter Wahrung der zentralisierten Semantik. Einfachster Fall: mache einige Klassen fernaufrufbar ( Globalisierung ) ändere einige new-anweisungen in Fernerzeugungen. Semantikerhaltung: durch Codetransformation

Eine Fallstudie

Verteilungsanalyse NameView Database Parser Scanner CommentView Cache Board MovesView BoardView Board MoveList Position MoveList TurnView Position naive Verteilung gute Verteilung

Verteilung via Ethernet (10 MB/s)

Verteilung via Modem (28.8 kb/s)

Zusammenfassung Pangaea ist ein verteilender Übersetzer: Java- Programme werden für verteilte Maschinen übersetzt, die durch beliebige Middleware realisiert sein können. Die Arbeit des Programmierers wird erleichtert; eine zukünftige Automatik wird dem Programmierer vielleicht sogar überlegen sein. Statische Analyse erlaubt es, bessere Verteilungsentscheidungen zu treffen, als es für eine rein laufzeitbasierte Automatik möglich wäre.

Projektstatus Implementiert: Objektgraph-Analyse Graphische Oberfläche Rudimentäre Codegenerierung (JavaParty) Geplante Plattform-Unterstützung: JavaParty, CORBA, Doorastha, Jackal,... Alpha-Release ist frei verfügbar (GPL)

www.inf.fu-berlin.de/~spiegel/pangaea