J-Orchestra. Motivation. Automatic Java Application Partitioning. Application Partitioning
|
|
- Ingrid Schmid
- vor 5 Jahren
- Abrufe
Transkript
1 J-Orchestra Automatic Java Application Partitioning Motivation Application Partitioning Bezeichnet das Aufteilen einer Applikation in unabhängige Teile, die unter Erhaltung der Gesamtfunktionalität in einer verteilten Umgebung laufen können. Dient vor allem der Nutzung von verteilten Daten und verteilter Rechenleistung sowie der Integration zusätzlicher Hardware. 1
2 Ansätze Konventionelle Ansätze Partitionierung durch manuelle Modifikation der Anwendung auf Quellcodeniveau Anschließende Integration der Applikationsteile durch Middleware Shared Memory Systeme: Modifikation der JVM Pangaea an der FU Berlin von André Spiegel entwickelt automatische Front-End Distribution für Java frei Wahl der Middleware Modifikation auf Quellcode-Niveau Ansätze J-Orchestra Automatisierte Partitionierung bestehender Programme mittels byte code rewriting RMI als Middleware Keine Modifikation des Quellcodes Keine Modifikation der JVM Unterstützung von Objektmigration GUI-Unterstützung bei der Partionierung 2
3 Strategie Überblick über die generelle Vorgehensweise von J-Orchestra beim Partitionieren von Applikationen Strategie Allgemein: Ortstransparenz herstellen mittels automatischer Ersetzung lokaler Zugriffe durch Proxyzugriffe generiert werden Proxy-Klassen Remote-Klassen Infrastruktur ObjectFactory für Remote-Erzeugung RMI als Middleware 3
4 Nativer Code Systemklassen greifen auf nativen Code zurück, dieser nicht migriert werden Verteilung ist also nicht immer möglich Partitionierung muss diese Einschränkung berücksichtigen Anhand dieses Kriteriums kann eine Codeklassifikation vorgenommen werden Codeklassifikation Mobile Classes Objekte können prinzipiell migrieren verschiedene Migrationsverfahren möglich typischerweise ist Applikationscode mobile Anchored Classes Kriterien: Klasse besitzt native Methoden oder Klasse leitet eine anchored Klasse ab (Ausnahme java.lang.object) oder Objekte dieser Klasse werden von anderen anchored Klassen verwendet Objekte können nicht migrieren Häufig in Java-Systemklassen 4
5 Codeklassifikation (Un)modifiable Code Code kann (nicht) verändert werden z.b. Java-Systemklassen, Lizenzgründe usw. Mögliche Fälle: Client: unmodifiable, Server: modifiable replace approach: Proxyklasse einführen mit dem Namen der Originalklasse Originalklasse umbenennen Unmodifiable Code Client: modifiable, Server: unmodifiable Referenzen beim Client auf eine Proxyklasse mit neuem Namen umleiten direkte Zugriffe auf Objektvariablen des Servers müssen durch Methodenaufrufe ersetzt werden all-or-none Semantik Client: unmodifiable, Server: unmodifiable keine Partitionierung möglich Client und Server müssen in der selben JVM laufen (co-anchored) 5
6 Codeklassifikation Architektur Vorstellung der Aufgaben und Funktionsweisen der J-Orchestra -Systemkomponenten 6
7 Systemarchitektur Profiler: statische Codeanalyse Definition der Partitionierung und der Migrationsrichtlinien durch den Benutzer Classifier: Codeklassifizierung Sicherung d. Korrektheit Translator: byte code rewriting Erzeugung von Java- Code zur Fehlerbehandlung Profiler statische Analyse des Programms gruppiert Klassen anhand ihrer Abhängigkeitsstruktur und ihrer Funktion (Graphik, Sound, Dateisystem etc.) (Heuristik) führt Testläufe zur Optimierung durch unterstützt den Nutzer bei der Erstellung einer sinnvollen Partitionierung, der Platzierung von Klassen und der Erstellung von Migrationsrichtlinien 7
8 Classifier führt die Klassifizierung (mobile oder anchored) des vorhanden Codes durch stellt fest, welche Klassen zusammen platziert werden müssen (co-anchored). stellt die Korrektheit der gewählten Objektplatzierung und Migrationsrichtlinien fest Rewriting Erläuterung des Vorgehens bei der automatischen Modifikation des Bytecodes von Java Applikationen 8
9 Mobile & Modifiable A interface interface interface A interface A interface extends extends Remote{ Remote{ void void foo() foo() throws throws RemoteException; RemoteException; A class A { void foo(){ Mobile & Modifiable A A interface class class A A implements implements java.io.externalizable{ java.io.externalizable{ A interface A interface ref; ref; void void foo(){ foo(){ try A try {ref.foo {ref.foo catch catch (RemoteException (RemoteException e){ e){ // // let let user user provide provide handling handling class A { void foo(){ 9
10 Mobile & Modifiable A A interface A remote A class class A remote A remote extends extends UnicastRemoteObject class UnicastRemoteObject A { implements implements A interface{ A interface{ void void foo(){ void foo() foo() throws throws RemoteException{ RemoteException{ Mobile & Modifiable A interface A remote A interface A A 10
11 Mobile & Modifiable A interface A remote A interface A A Anchored & Unmodifiable 11
12 Anchored & Unmodifiable C interface remotecapable.c C translator package package remotecapable; remotecapable; class C class C translator C translator extends extends UnicastRemoteObject UnicastRemoteObject implements implements C interface{ C interface{ C C originalclass; originalclass; void void foo(remotecapable.p foo(remotecapable.p p) p) throws throws RemoteException{ RemoteException{ originalclass((p)runtime.unwrap(p)) originalclass((p)runtime.unwrap(p)) class C { void foo(p p){ remotecapable.p remotecapable.p bar() bar() throws throws P bar() RemoteException{ RemoteException{ { return return (remotecapable.p) (remotecapable.p) Runtime.wrap( Runtime.wrap( originalclass.bar()); originalclass.bar()); Anchored & Unmodifiable C interface remotecapable.c C interface remotecapable.c P interface C translator P translator C remotecapable.p P 12
13 Anchored & Modifiable Anchored Modifiable Classes Werden wie anchored unmodifiable classes gehandhabt können jedoch so modifiziert werden, das evtl. existierende Zugriffe auf Felder anderer Klassen durch Methoden ersetzt werden dadurch müssen diese anderen Klassen nicht mehr zwangläufig anchored sein. 13
14 Java Language Features Beschreibt den Umgang mit Besonderheiten der Java-Spezifikation bei der Partitionierung Statische Zugriffe Zugriff auf statische Felder werden durch entsprechende Methoden ersetzt Es werden statische Delegatorklassen generiert, die für das ExceptionHandling zuständig sind. //Original class class A { static void foo (String s) {... static int bar () {... //Static Delegator for A--runs on a remote site class A StaticDelegator extends java.rmi.server.unicastremoteobject { void foo (String s) { A remote.foo (s); int bar () { return A remote.bar (); 14
15 Objekterzeugung Neue Objekte werden von den Proxies nicht lokal erzeugt Konstruktoraufrufe am Proxy bewirken nichts An jedem Netzort existiert eine ObjectFactory, die sich untereinander kennen Jede Factory wird durch J-Orchestra konfiguriert Objekte werden ggf. an einem anderen Ort erzeugt und eine entsprechende Remote- Referenz geholt. this-referenzen //original code class A { void foo (B b) { b.baz (this); class B { void baz (A a) {... //generated remote object for A class A remote { void foo (B b) { b.baz (this); // this is of type A remote! Änderung im Bytecode: aload_0 //pass this to locateproxy method invokestatic Runtime.locateProxy checkcast A //locateproxy returns Object, need a cast to A astore_2 //store the located proxy object for future use aload_1 //load b aload_2 //load 15
16 Multithreading RMI unterstützt nicht die Transparenz von Synchronisationsmechnismen wie synchronized(remoteobject){ remoteobject.wait() oder remoteobject.notify() Umsetzung nicht trivial (z.b. Deadlocks bei Übertragung des Kontrollflusses über das Netzwerk) synchronized: nur im RemoteObject, nicht im Proxy Die final Methoden wait/notify/notifyall werden durch eigenen Methoden ersetzt und an das RemoteObject übertragen Reflection Funktioniert häufig im Normalfall (Methoden) Jedoch nicht immer Idee: Umleitung an ein eigenes Reflection-API bis jetzt nicht realisiert Dynamisches Klassenladen wird nicht unterstützt Idee: eigenen J-Orchestra Classloader verwenden 16
17 Garbage Collection keine keine eigene Anpassung Verwendet wird die RMI-Unterstützung: Remote Reference Counting jedoch: über das Netz verteilte Zyklen werden nicht abgeräumt Innere Klassen Für innere Klassen werden vom Compiler für den Zugriff auf private Methoden und Felder synthetic Methoden erzeugt. Problem: Proxies werden in Sourceform erzeugt, synthetic Methoden können nicht kompiliert werden synthetic Methoden werden in sichtbare Methoden umgewandelt 17
18 In der Praxis Performance und realer Einsatz von J-Orchestra Performance Indirektionen erzeugen Overhead Abhilfe durch anchoring per choice direkte Zugriffe bleiben erhalten wichtigstes Partitionierungskriterium Zahl mobiler Objekte minimieren 18
19 Performance Umschreiben von J-Orchestra durch J-Orchestra brachte eine Verlangsamung von 37 Prozent anchoring by choice Klassen mit ähnlicher Funktionalität bleiben für die gesamte Ausführungszeit gemeinsam in der selben JVM Zugriffe untereinander erfolgen direkt Zugriffe von außen selten im Verhältnis zu internen Zugriffen oft analog zur Packagestruktur bspw. Grafik-, Sound, IO- Funktionalität reduziert den overhead gegen 0 Performance A interface A A remote A interface A lazy remote object creation lokal werden vom Proxy zunächst lazy-objekte erzeugt dieses ist nicht von UnicastRemoteObject abgeleitet erst beim ersten Zugriff im Remote-Kontext wird dieses Objekt durch die Remote- Implementierung ersetzt geringerer overhead, da Konstruktor von UnicastRemoteObjekt sehr komplex 19
20 JBits kommerzielle industrielle Application in Bytecode-Form (FPGA Simulator) 1920 Klassen, 7,5 MB Ziel: GUI auf einen anderen Rechner exportieren Ergebnis: ca Klassen anchored by choice auf dem Server (rechenintensive Simulation) 259 Klassen anchored auf dem Client (GUI), davon 144 aus JBits (der Rest AWT, Swing) Rest: anchored auf dem Server JBits Dauer für das Erstellen der besten Partitionierung: 1-2 Tage Optimierung: Zahl der Remote-Zugriffe durch mobile Objekte reduzieren (Benutzer) Vergleich mit Zugriff per X-Windows: viele GUI-Operationen (Menüs, Views, Resizing, Scrolling usw.) sind ausschließlich lokal und verursachen keinen Netztransfer (wie X-Windows) Bei der Durchführung Simulation wurden weniger Daten übertragen als bei X-Windows Gesamtperformance besser als bei X-Windows leider keine Benchmarks 20
21 Resümee J-Orchestra Partitionierung von Programmen in Bytecode-Form möglich Partitionierung schnell zu erreichen skaliert gut akzeptable bis gute Performance bei optimaler Partitionierung GUI-Unterstützung optimale Partitionierung nicht trivial Systemklassen nicht mobil (problematisch vor allem bei java.util.*) nützlich nur bei grobkörniger Partitionierung wie Trennung zw. GUI, Applikationslogik, Persistenzschicht leider ungeeignet für verteiltes Rechnen (Vektoren, Arrays) 21
22 Vielen Dank Fragen 22
Einführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrRemote Method Invocation
Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf
MehrSystemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007
Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung
MehrRemote Method Invocation
Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf
MehrB Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion
1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)
Mehr1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI
1 Motivation Motivation ierte Objektmodel Standard Middleware für objektorientierte Anwendungen CORBA,.NET-Remoting Java Remote Method Invocation (RMI) Java RMI ierte Objekte undjava RMI Zusammenfassung
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste
MehrJava Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung
Mehr7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.
7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung
MehrErzeugungsmuster. Kapselung der Objekt-Erzeugung
Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
MehrC Java RMI C.2 C.4. 1 Java. 1 Java (2) 1 Java (3) Objektorientierte Sprache. Objektorientierte Sprache (fortges.) Objektorientierte Sprache (fortges.
1 Java C Java RMI orientierte Sprache e und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. Methodenaufruf bei vorhandener referenz Übergabe von Parametern
MehrJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
MehrReflexive Programmiersprachen Konzepte und Umsetzung in Java
Reflexive Programmiersprachen Konzepte und Umsetzung in Java Jan Petendi 01.02.08 Lehrstuhl für Praktische Informatik Fakultät WIAI Otto-Friedrich-Universität Bamberg Einführung Entwicklung neuer Programmierkonzepte:
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrB Java RMI B.1 B.2. 1 Java. 1.1 Objekte. Objektorientierte Sprache
B Java RMI B.1 1 Java 1.1 Objekte Objektorientierte Sprache Objekte beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger,
MehrRemote Methode Invocation (RMI) ETIS SS05
Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen
MehrGrundlagen verteilter Systeme
Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 2 20.11.07 Grundlagen verteilter Systeme Lösungsvorschlag
MehrKomponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1
Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität
MehrJava Remote Method Invocation (RMI)
Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von
MehrKonzepte von Betriebssystem-Komponenten Middleware RMI
Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrÜberblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://download.oracle.com/javase/tutorial/reflect/index.html
MehrÜberblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html
MehrCORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu
CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe
MehrKommunikation. Björn und Georg
Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges
MehrAvO-Übung 2 Remote Method Invocation
AvO-Übung 2 Remote Method Invocation Jörg Domaschka und Andreas I. Schmied Institut für Verteilte Systeme 30. Oktober 2007 Übersicht 1 Besprechung der letzten Aufgaben 2 Aufruf-Semantiken 3 Netzwerkkommunikation
MehrVerteilte Systeme Übung
Verteilte Systeme Übung Tobias Distler, Klaus Stengel, Timo Hönig, Christopher Eibel, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrKurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1
Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen
MehrJava Beans (22.02.2001)
Component Based Software Development Java Beans (22.02.2001) Stefan Jäger Robert Kalcklösch Veranstalter: M. Bittner W. Koch Inhalt Einführung in Java Die Java Beans Einsatz und Entwicklung von Beans Enterprise
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrRemote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1
Remote-Objekte Motivation Architektur Client und Server-Implementierung Parameterübergabe Distributed Garbage Collection Verteilung und Nachladen von Code Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte
MehrVerteilte Systeme - Java Networking (Sockets) 2 -
Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:
MehrKlausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006
Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren
MehrProgrammieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik
Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method
Mehr1 Einleitung Generizität Syntax... 2
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................
MehrPhilipp Güttler Objektorientierung und komplexe Datentypen
Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen
MehrDie Magie von MBeans und JMX. DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV
Die Magie von MBeans und JMX DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV Bio Andreas Chatziantoniou Freelance Oracle Fusion Middleware Consultant 16 Jahre Oracle Erfahrung/26 Jahre IT (Unix/C) Oracle
MehrEin Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA
Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA Themenspeicher Strukturen objektorientierter Programmierung (Wiederholung) Klassen und Vererbung Schnittstellen und
MehrJava: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe
Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
RMI, Zusammenfassung und Lehrevaluation PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 8. Juli 2013 Übersicht
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrJavassist. Java-API zum Ändern von Java Bytecode
Javassist Java-API zum Ändern von Java Bytecode Markus Wichmann June 2003 Allgemeines Javassist ist ein Open-Source-Projekt der JBoss Gr0up Wurzeln reichen bis etwa 1997 zurück ergänzt das Java Reflection
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrJava I Vorlesung Nebenläufigkeit
Java I Vorlesung 10 Nebenläufigkeit 28.6.2004 Threads Synchronisation Deadlocks Thread-Kommunikation Innere Klassen Anonyme Klassen Nebenläufigkeit http://java.sun.com/docs/books/tutorial/essential/threads/
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 07: Nebenläufigkeit Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in die Nebenläufigkeit und Java Thread Konzept: Motivation
MehrC.38 C.40 C Socket-Factories. 5.2 Server-Seite. 6.1 Interaktionsmuster. 6 Beispiel: White-Board. generisches Skeleton
5.2 Server-Seite generisches Skeleton nimmt JRMP-Anfragen entgegen interpretiert Protokoll, deserialisiert Objekte Aufruf der lokalen Methode über Reflection Tabelle der exportierten Objekte Zuordnung
MehrDer lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrC Java RMI. 1 Java. Objektorientierte Sprache
Java RMI 1 1 Java Objektorientierte Sprache Objekte und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger, Adressen o.ä. Methodenaufruf bei vorhandener Objektreferenz
MehrKlausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006
Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren Namen
MehrEmpfehlenswerte Literatur
Empfehlenswerte Literatur 1 Flanagan, David: Java in a Nutshell, O Reilly, UK, 2002 (50 ) Online Referenzen unter http://www.wi3.uni-erlangen.de/lehre/ http://java.sun.com http://www.javaworld.com/ Online
MehrEntwurfsmuster und Frameworks Singleton
Entwurfsmuster und Frameworks Singleton Oliver Haase Oliver Haase Emfra Singleton 1/20 Beschreibung I Klassifikation: objektbasiertes Erzeugungsmuster Zweck: sicherstellen, dass eine Klasse nur genau einmal
MehrTh. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrInternetanwendungstechnik (Übung)
Internetanwendungstechnik (Übung) JacORB S. Bissell, G. Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr. EN6,
MehrÜbung zur Vorlesung "Einführung in Verteilte Systeme"
Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Thema: Java RMI Ulf Rerrer Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!
MehrJ2EE-Praktikum. Enterprise JavaBeans Patterns. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg
J2EE-Praktikum Enterprise JavaBeans Patterns Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 Designmuster Sitzungsfassade Wertobjekte 2 Implementierungsmuster Geschäftsinterfaces
MehrLaborskript Verteilte Systeme
Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,
MehrShort Introduction to C# C# (C SHARP) Microsofts Antwort auf Java
Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C
MehrH.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications
Motivation The ed-object Approach Java RMI ed Objects in Java RMI Conclusions Universität Erlangen-Nürnberg Informatik 4, 2007 H-Formi-.fm 2007-12-14 13.11 H.1 1 Motivation Distributed object-oriented
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrUNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP
UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,
MehrJava Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe
Java Reflection Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Mai 2008 Was ist Reflection? Ein Paket (package) von Interfaces und Klassen, die dem Programm zur Laufzeit Zugriff
MehrUmgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen
Umgang mit Fehlern Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Die Java-Fehlerbehandlung stellt gegenüber älteren Verfahren einen großen Fortschritt dar. Prof.
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrVerteiltes Rechnen. Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff
Verteiltes Rechnen Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff Verteiltes Rechnen Anwendungen im WWW sind meist als Client-Server Architekturen realisiert. Ein Client
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrProgrammieren I. Kapitel 12. Referenzen
Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrModellierung CORBA-basierter Anwendungssysteme mit der UML
Verteidigung der Diplomarbeit über das Thema: Modellierung CORBA-basierter Anwendungssysteme mit der UML Andreas Mucha Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl
MehrSoftwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert
Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Partly based on material by Victor García Barrios and Paul Krzyzanowski
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A
MehrParallele und Verteilte Systeme
Parallele und Verteilte Systeme Einführung in die Netzwerk Programmierung mit Java : JavaIDL Hello World (C) J.M.Joller 1 Zeitlicher Ablauf Hello World Übersicht IDL Interface Beschreibung Der Client (Der
MehrJava Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
Mehr