B.33 B Programmiermodell. 3 Programmiermodell (2) Erweiterung des Java-Programmiermodells. Wesentliche Änderungen gegenüber Java

Größe: px
Ab Seite anzeigen:

Download "B.33 B Programmiermodell. 3 Programmiermodell (2) Erweiterung des Java-Programmiermodells. Wesentliche Änderungen gegenüber Java"

Transkript

1 3 Programmiermodell Erweiterung des Java-Programmiermodells Programmiermodell von Java Java RMI Wesentliche Änderungen gegenüber Java Interface obligatorisch Exception-Handling obligatorisch veränderte Parameterübergabesemantik bei übergebenen Nicht-RMI-Objekten Zugriffstransparenz verletzt veränderte Semantik bei Koordinierung im entfernten Fall wird der Stub gesperrt statt das RMI-Objekt keine Erkennung von doppelten Object-Locks Deadlock beim Wiedereintritt in das selbe RMI-Objekt B.33 3 Programmiermodell (2) Bewahrte Konzepte aus dem Java-Programmiermodell Objekte Methodenaufrufe syntaktisch gleich Parameterübergabesemantik für übergebene RMI-Objekte und Nicht-Objekte Typisierung volle Typisierung im verteilten Fall (dynamische) Type-Casts auch für RMI-Objekte möglich Stubobjekte besitzen alle Methoden des Originals Garbage Collection transparente Speicherbereinigung verteiltes Verfahren zur Speicherbereinigung basierend auf Referenzzähler und Leases Halter einer entfernten Referenz muss Besitz immer wieder bestätigen passiert automatisch durch lokales RMI-System B.34

2 4 Implementierung Vorgabe eines RMI-Gerüstes durch Sun Microsystem verschiedene Implementierungen möglich meist jedoch die von Sun verwendet (Package sun.rmi) von einigen Fremdherstellern auch eigene Implementierungen verfügbar B Dynamisches Klassenladen Deserialisierung Objektinstanzen werden regeneriert Instanzvariablen werden restauriert pro JVM und pro Objekt muss Klasse verfügbar sein im Verteilten System Verfügbarkeit der Klassen nicht automatisch garantiert Serialisierter Bytestrom enthält Objektdaten keine Klassen Klassenname wird übertragen Klasse lokal vorhanden: Verwendung für regenerierte Objektinstanz Klasse nicht lokal vorhanden: Möglichkeit des dynamischen Ladens der Klasse über das Netzwerk Class-Path (?) B.36

3 4.1 Dynamisches Klassenladen (2) Serverseite Bereitstellung der Klassen über einen externen Server Web-Server FTP-Server File-Server Codebase-URL gibt Wurzel für Klassen pro Server an Codebase muss beim Server-Lauf festgelegt werden Java Property java.rmi.server.codebase liefert Codebase-URL z.b. java -Djava.rmi.server.codebase= B Dynamisches Klassenladen (3) Weitergabe von Referenzen auf RMI-Objekte z.b. bei Registrierung in Registry oder Namensdienst Stubobjekt wird serialisiert RMI-System trägt Klassenname und Codebase in Bytestrom ein empfangendes RMI-System: 1. Suche der Klasse lokal 2. falls nicht gefunden: Laden der Klasse über Codebase + Klassenname z.b. Klasse avo.myprinter_stub unter MyPrinter_Stub.class 3. falls nicht gefunden: Laden der Klasse über clientseitig definierte Codebase (z.b. über Codebase-Property) 4. falls nicht gefunden: ClassNotFoundException für entfernt geladene Klassen steht Codebase für erneute Weitergabe fest B.38

4 4.1 Dynamisches Klassenladen (4) Beispiel MyPrinter JVM Server Webserver JVM Registry Registry Code für MyPrinter_Stub wird dynamisch geladen B Dynamisches Klassenladen (5) Beispiel MyClient MyPrinter JVM Client JVM Server Webserver JVM Registry Registry Code für MyPrinter_Stub wird dynamisch geladen B.40

5 4.2 Kommunikation Java Remote Method Protocol (JRMP) TCP-basiertes RPC-Protokoll RPC = entfernter Prozeduraufruf / Remote Procedure Call im Wesentlichen Java-Serialisierung Annotierung der Codebase, falls vorhanden Signalisierung von Aufrufen Multiplexen mehrerer Aufrufe Adressierung über Hostname/IP-Adresse, Portnummer adressiert entferntes RMI-System weitere Adressierung über Objektidentifikator adressiert konkretes Objekt B Client-Seite Implementierung der mit rmic erzeugten Stubs RemoteObject 0..1 <<Interface>> RemoteRef RemoteStub MyPrinter_Stub sichtbare RMI-Komponenten RemoteObject Basisklasse für Stubs und RMI-Objekte RemoteStub Basisklasse für alle Stubs RemoteRef Interface für Protokollimplementierung B.42

6 4.3 Client-Seite (2) Implementierung der generischen Stubs RemoteObject- Invocation- Handler Proxy <<Interface>> RemoteRef eigentlicher Stub Instanz von java.lang.reflect.proxy Spezialklasse, die beliebige Interfaces implementieren kann Interfaces werden bei Erzeugung individuell angegeben Aufrufe werden generalisiert und in einem Handler bearbeitet java.rmi.server.remoteobjectinvocation. Handler bearbeitet Aufrufe B Client-Seite (3) Stub generalisiert Aufrufe Aufruf der invoke()-methode an RemoteRef wie bei Java-Reflection Method-Objekt bezeichnet Methode, Object-Array bezeichnet Parameter RemoteRef enthält Adressierungsinformation Lokale JRMP-Implementierung wird von allen lokalen Stubs verwendet TCP/IP-Verbindung zu entfernten RMI-Systemen Öffnen eines TCP-Socket, falls Verbindung abgerissen oder noch nicht besteht Multiplexen von Aufrufen an Objekte des selben RMI-Systems über selbe TCP-Verbindung B.44

7 4.4 Server-Seite Generisches Skeleton Teil des lokalen RMI-Systems nimmt JRMP-Anfragen entgegen hat TCP-Server-Socket geöffnet interpretiert Protokoll, deserialisiert Objekte Aufruf der lokalen Methode über Java-Reflection Identifikation des Objekts durch zusätzlichen Objektidentifikator Tabelle der exportierten Objekte Zuordnung von Anfragen zu RMI-Objekten durch Objektidentifikator mind. lokal eindeutige Objektnummern zugeordnet werden beim Export zugeteilt Identifikation exportierter, lokaler RMI-Objekte Ersetzung durch Stub beim Marshalling B Client und Server Konzeptionelle Sicht JVM Server JVM Client JVM Server B.46

8 4.5 Client und Server (2) Tatsächliche Implementierungen RMI-Sys. JVM Server RMI-Sys. RMI-Sys. JVM Client JVM Server B Parametertransport Basis: Serialisierung von Java-Datentypen und -Objekten Übergabe von Referenzen auf RMI-Objekte lokal: Referenz auf einen Stub Serialisierung des Stubs lokal: Referenz auf RMI-Objektimplementierung Ersetzung des RMI-Objekts durch geeigneten Stub vor der Serialisierung serialisierter Stub enthält eindeutige Identifikation des referenzierten Objekts: IP-Adresse, Portnummer und Objektidentifikator B.48

9 4.7 Socket-Factories RMI-Implementierungen benutzen Sockets zur Kommunikation java.net.serversocket und java.net.socket stattdessen Einsatz von anwendungsspezifischen Sockets möglich Socket-Factory erzeugt anwendungsspezifische Sockets Übergabe der Factory an das RMI-System z.b. als Parameter zum Konstruktor von java.rmi.unicastremoteobject RMI-Stub-Objekt enthält Verweis auf Socket-Factory wird evtl. dynamisch geladen wird zur Kommunikation eingesetzt Einsatz z.b. Verschlüsselung (SSL) B.49 5 Aktivierung und Deaktivierung Zweck persistente Objektimplementierungen konzeptionelles Objekt überlebt temporäre Objektimplementierungen Laststeuerung nicht alle Objektimplementierungen müssen in JVMs vorgehalten werden (aktiv sein) Realisierung persistente entfernte Referenzen überleben das Passivieren eines verteilten Objekts überleben die JVM eines passivierten verteilten Objekts triggern das Reaktivieren einer JVM und des Objekts B.50

10 5.1 Terminologie Aktives Objekt (active object) verteiltes Objekt realisiert durch eine exportierte Implementierungsinstanz in einer passenden JVM Passives Objekt (passive object) momentan nicht durch Implementierung repräsentiertes aber dennoch aktivierbares verteiltes Objekt evtl. nicht einmal JVM dafür vorhanden entfernte Referenzen (Stubs) sind bereits im Umlauf Aktivierung (activation) Transformation eines passiven in ein aktives Objekt in der Regel Aktivierung auf Anfrage, d.h. bei Methodenaufruf (Lazy activation) B Architektur Aktives Objekt aktuelle, normale RMI-Referenz (RemoteRef) zum aktiven Objekt wird in aktivierbaren Stub eingebettet und verwendet für Aufrufe Fehlersituation eingebettete RMI-Referenz funktioniert nicht mehr z.b. Absturz der Server-JVM z.b. Passivierung des RMI-Objekts B.52

11 5.2 Architektur (2) Stub des aktivierbaren Objekts enthält normale RMI-Referenz auf einen Activator enthält eine Aktivierungs-ID bezeichnet Objekt eindeutig gegenüber Activator im Fehlerfall: Kontaktierung des Activators Skeleton JVM Activator Client-Stub Skeleton RMI-Objekt JVM B Architektur (3) Activator ermittelt Activation-Descriptor (Activator verwaltet Datenbank) Activation-Group-ID Bezeichner für JVM, die Gruppe aktivierbarer Objekte beherbergt Klassenname und Codebase für RMI-Objekt objektspezifische Initialisierungsdaten (MarshalledObject) B.54

12 5.2 Architektur (3) Activator (fortges.) startet Activation-Group falls nötig eigene JVM initialisiert Activation-Group triggert Activation-Group zur Erzeugung des RMI-Objekts neues RMI-Objekt Initialisierung mit objektspezifischen Daten z.b. über Datei, welche persistenten Zustand hält Rückgabe einer normalen Referenz an den Activator Rückgabe der Referenz an den ursprünglichen Stub Stub des aktivierbaren Objekts Einbetten der Referenz in die RemoteRef B Marshalled Object Container für serialisiertes Objekt serialisiertes Daten-Objekt wird in ein MarshalledObject eingebettet aus MarshalledObject kann Datenobjekt deserialisiert werden Vorteil des Einsatzes MarshalledObject enthält Datenstrom der Serialisierung benötigt jedoch zur Laufzeit nicht die Klasse des serialisierten Objekts MarshalledObject kann gespeichert und weitergegeben werden z.b. durch Serialisierung des MarshalledObject jedoch kein Klassenladen erforderlich, da Klasse MarshalledObject lokal bekannt B.56

13 5.4 Erzeugen eines aktivierbaren Objekts Übliches Vorgehen Implementierungsklasse erbt von java.rmi.activation.activatable zusätzlicher Konstruktor für die Aktivierung public MyImpl( ActivationID id, MarshalledObject data ) id ist ein Identifikator, der das zu aktivierende Objekt beschreibt data ist ein serialisiertes Objekt, das zur Initialisierung eines zu aktivierenden Objekts dienen kann (z.b. Filename für Daten etc.) Konstruktor ruft Konstruktor der Basisklasse für das Exportieren auf Registrierung des Objekts beim Aktivierungsmechanismus im (Default-) Konstruktor Basisklassenmethode getid liefert eine ActivationID: eindeutiger Bezeichner für aktivierbares Objekt B Erzeugen eines aktivierbaren Objekts (2) Alternatives Vorgehen ohne Vererbung zusätzlicher Konstruktor für die Aktivierung (siehe vorherige Folie) Konstruktor ruft statische Methode zum Exportieren auf: java.rmi.activation.activatable.exportobject(... ) Aufruf liefert ActivationID: eindeutiger Bezeichner für aktivierbares Objekt Registrierung des Objekts beim Aktivierungsmechanismus im normalen Konstruktor Erzeugen eines aktivierbaren Objekts ohne Objektinstanz wie beschriebene Möglichkeiten jedoch: Registrierung des Objekts beim Aktivierungsmechanismus ohne Erzeugung einer Implementierung B.58

14 5.5 Registrierung eines aktivierbaren Objekts Registrierung an der ActivationGroup ActivationGroup ist innerhalb einer JVM eine Gruppe von aktiven Objekten letztlich bezeichnet eine ActivationGroup eine JVM Erzeugen einer ActivationGroup new-operation auf java.rmi.activation.activationgroupdesc erzeugt einen Descriptor/Identifikator für eine ActivationGroup Properties können angegeben werden z.b. für Security Policies (sonst keine RMI-Verbindungen zwischen den JVMs möglich) Erzeugen der ActivationGroup über ein ActivationSystem ActivationSystem-Implementierung wird über statische Methode ActivationGroup.getSystem ermittelt Aufruf der Methode registergroup am ActivationSystem liefert eine Instanz von ActivationGroupID zurück ActivationGroupID ist ein Identifikator für die ActivationGroup B Registrieren eines aktivierbaren Objekts (2) Erzeugen eines ActivationDesc für das aktivierbare Objekt ActivationDesc ist ein Deskriptor für das aktivierbare Objekt enthält Klassennamen enthält CodeBase enthält MarshalledObject das zur Initialisierung bei Re-Aktivierung dienen kann enthält ActivationGroupID für die JVM, in der das aktivierbare Objekt laufen soll Erzeugen des ActivationDesc-Objekts durch new-operator ohne Angabe einer ActivationGroupID wird Default-Gruppe verwendet und gegebenenfalls automatisch erzeugt Problem: Defaultgruppe hat meist nicht die richtigen Policy Properties B.60

15 5.5 Registrieren eines aktivierbaren Objekts (3) Registrieren des ActivationDesc-Objekts Aufruf der statischen Methode Activatable.register mit dem ActivationDesc-Objekt als Parameter Rückgabe einer entfernten Referenz auf die Implementierung (Stub mit Fähigkeit der Re-Aktivierung) z.b. anschließend Registrierung im Nameserver B Aktivierung Aktives Objekt kein besonderes Vorgehen Passives Objekt Objekt hat sich deaktiviert z.b. durch Aufruf von inactiveobject in Klasse Activatable mit ActivationID als Parameter Stubobjekte bekommen keine Verbindung mehr und stoßen Aktivierung an Aktivierung ist transparent für einen Aufrufer lediglich zusätzliche Exceptions möglich (Subklassen von java.rmi.remoteexception) B.62

16 5.6 Aktivierung (2) Aktivierung durch den Stub Stub kennt die zugehörige ActivationID ActivationID enthält Referenz auf einen Activator Stub fordert einen Activator auf, das Objekt zu aktivieren interner Aufruf der Methode activate am Activator bekommt als Ergebnis eine neue Standard-RMI-Objektreferenz (bei Erfolg), die intern gespeichert wird Activator typischerweise einmal pro System vorhanden kennt aktive und passive Objekt anhand ActivationIDs kennt aktive ActivationGroups Standardimplementierung: Dämon-Prozess rmid intern ist Activator eine RMI-Referenz, die automatisch ermittelt wird B Aktivierung (3) ActivationGroup aktiv Activator beauftragt die ActivationGroup das Objekt zu aktivieren, d.h. mit Hilfe des zusätzlichen Konstruktors zu erzeugen Activator bekommt eine neue Referenz auf das aktivierte Objekt (Standard- Stub) ActivationGroup passiv Activator startet neue JVM und instanziiert ActivationGroup neue ActivationGroup bekommt nächst höhere Generationennummer dient zur Erkennung von Aufruffehlern Übergabe z.b. über Standardeingabe Rest wie bei aktiver ActivationGroup B.64

17 5.6 Aktivierung (4) Kontrollfluss persistenter Stub kennt Activator über ActivationID: Aufruf von activate Activator kennt aktive Gruppen (lokales Caching bzw. Informationen aus den Gruppen): Aufruf von newinstance am ActivationInstantiator Interface (gehört zur Implementierung der Gruppe) Rückgabe eines transienten Stubs an Activator Rückgabe eines transienten Stubs an den persistenten Stub falls Gruppe passiv: Activator erzeugt neue Gruppe: Starten einer neuen JVM sobald sich Gruppe aktiv meldet: fortfahren wie oben Übergabe des transienten Stubs als MarshalledObject Objekt ist serialisiert: Code muss nicht geladen werden B Aktivierung (5) Initialisierung des reaktivierten Objekts zusätzlicher Konstruktor erhält ActivationID und ein MarshalledObject MarshalledObject wurde bei Erzeugung des ActivationDesc spezifiziert enthält ein serialisiertes Objekt zur direkten oder indirekten (Re-)Initialisierung, z.b. Dateinamen, Datenbankverweis, entfernte RMI- Referenzen B.66

18 5.7 Implementierung Aktivierungsmechanismus hauptsächlich durch Interfaces vorgegeben z.b. Activator, ActivationGroup, ActivationSystem, ActivationInstantiator Implementierung durch Property java.rmi.activation.activator.class festlegbar für andere Teile sind feste Klassen vorgesehen, z.b. ActivationDesc, ActivationID, ActivationGroupDesc, ActivationGroupID diese interagieren mit den hinter Interfaces verborgenen Implementierungen Interner ActivationMonitor wird pro ActivationGroup erzeugt und vom Activator benutzt Gruppe muss an den ActivationMonitor berichten Aktivierung, Deaktivierung von Objekten in der Gruppe Deaktivierung der Gruppe B Implementierung (2) Activator prüft Gruppen bei Absturz von Gruppen werden diese reaktiviert (neu gestartet) Ständige Aktivierung bei Registrierung kann dauerhafte Aktivierung angegeben werden bei Absturz der Gruppe wird dauerhaft aktives Objekt sofort wieder re-aktiviert B.68

19 5.8 Bewertung Zweistufige Aktivierung und Deaktivierung Objektebene Gruppenebene (JVM-Ebene) Verteilung aktivierbares Objekt wird immer auf gleichen Rechner aktiviert Activator-Referenz hängt an der ActivationID keine Migration möglich aber eventuell Realisierung durch eigene Activator-Implementierung Garbage Collection Objekt müssen sich sauber deaktivieren, sonst bleiben Referenzen stehen B Weiterführende Links RMI Informationen bei Sun Microsystems RMI Einführung hello-world.html RMI Activation Tutorial Java Serialisierung B.70

C.38 C.40 C Socket-Factories. 5.2 Server-Seite. 6.1 Interaktionsmuster. 6 Beispiel: White-Board. generisches Skeleton

C.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

Mehr

C.6 C.8. 1 Java (5) 1 Java (4) 1 Java (6) 2 Java RMI Grundlagen. Sicherheitsmechanismen. Hierarchische Benennung von Interfaces und Klassen

C.6 C.8. 1 Java (5) 1 Java (4) 1 Java (6) 2 Java RMI Grundlagen. Sicherheitsmechanismen. Hierarchische Benennung von Interfaces und Klassen 1 Java (4) Hierarchische Benennung von Interfaces und Klassen Paketname + Klassenname (Package) z.b. java.lang.object weltweite eindeutige Benennung durch Anlehnung des Paketnamens an Domainname z.b. org.aspectix.orb.orb

Mehr

Hierarchische Benennung von Interfaces und Klassen

Hierarchische Benennung von Interfaces und Klassen 1 Java (4) Hierarchische Benennung von Interfaces und Klassen Paketname + Klassenname (Package) z.b. java.lang.object weltweite eindeutige Benennung durch Anlehnung des Paketnamens an Domainname z.b. org.aspectix.orb.orb

Mehr

C Java RMI C.2 C.4. 1 Java. 1 Java (2) 1 Java (3) Objektorientierte Sprache. Objektorientierte Sprache (fortges.) Objektorientierte Sprache (fortges.

C 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

Mehr

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI

1 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

Mehr

C Java RMI. 1 Java. Objektorientierte Sprache

C 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

Mehr

B 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

B 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)

Mehr

Für objektbasiertes Programmieren ist keine objektbasierte Programmiersprache erforderlich!

Für objektbasiertes Programmieren ist keine objektbasierte Programmiersprache erforderlich! 2 Objekte (3) Objekt als abstraktes Konzept Software-Einheit mit Methoden lokalen Daten eindeutiger Identität Programmiermodell auf hohem Abstraktionsniveau Abbildung auf Programmiermodell der Programmiersprache

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

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

Mehr

B Java RMI B.1 B.2. 1 Java. 1.1 Objekte. Objektorientierte Sprache

B 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,

Mehr

Remote Method Invocation

Remote 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

Mehr

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 3)

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 3) Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 3) Robert Tolksdorf und Peter Löhr Überblick 1. Aktivierung und Deaktivierung von Objekten http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html

Mehr

Schematische Schnittstelle eines Naming-Context-Objekts und des Binding-Iterators. BindingIterator. next_one next_n destroy

Schematische Schnittstelle eines Naming-Context-Objekts und des Binding-Iterators. BindingIterator. next_one next_n destroy 10 Naming-Service (3) Schematische Schnittstelle eines Naming-Context-Objekts und des Binding-Iterators NamingContext resolve list destroy new_context unbind bind rebind bind_context rebind_context bind_new_context

Mehr

Remote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Remote-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.

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. 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

Mehr

Remote Method Invocation

Remote 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

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte 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.

Mehr

Nomadic computing mobile Geräte dynamische Dienstnutzung einfacher Zugang zu Geräten Gerät bietet Dienste an allgemeine Dienstnutzung

Nomadic computing mobile Geräte dynamische Dienstnutzung einfacher Zugang zu Geräten Gerät bietet Dienste an allgemeine Dienstnutzung G JINI G.1 1 Überblick Diensteplattform für Java von Sun Microsystems Programmiermodell für Dienste Infrastruktur Unterstützungsdienste Hintergrund Nomadic computing mobile Geräte dynamische Dienstnutzung

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

AvO-Übung 2 Remote Method Invocation

AvO-Ü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

Mehr

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.

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. 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

Mehr

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Programmieren 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

Mehr

AVO Übung 1. Java RMI, Custom Sockets, Activation. 2. November 2004 (WS 2004) Andreas I. Schmied

AVO Übung 1. Java RMI, Custom Sockets, Activation. 2. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik Abteilung Verteilte Systeme Projektgruppe AspectIX AVO Übung 1 Java RMI, Custom Sockets, Activation 2. November 2004 (WS 2004) Andreas I. Schmied (schmied@inf...)

Mehr

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 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

Mehr

Überblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen

Ü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. 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

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 12. Januar 2018 Betriebssysteme / verteilte

Mehr

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

Mehr

Java RMI Remote Method Invocation

Java 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

Mehr

22 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

22 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 4.4 Namensraum (5) 4.4 Namensraum (6) Praktisches eispiel Einbetten von XHTML-Seiten in ein Dokument zur Speicherung eines Webserver-Inhalts (z.. in einem Content-Management-System) Definition einer XML-Struktur

Mehr

Java Remote Method Invocation (RMI)

Java 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

Mehr

Überblick. Verteilte Systeme - 4. Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs

Überblick. Verteilte Systeme - 4. Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth, Reinhard Tartler Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

D.1 Organisatorisches

D.1 Organisatorisches D Überblick über die 3. Übung D Überblick über die 3. Übung D.1 Organisatorisches D.1 Organisatorisches RPC und ORB Präsentation der Übungsaufgaben 1 und 2 Aufrufsemantiken Hinweise Aufgabe 2 Live in der

Mehr

Kommunikation in verteilten Anwendungen

Kommunikation in verteilten Anwendungen Kommunikation in verteilten Anwendungen Einführung in Sockets, Java RMI,CORBA und Jini von Prof. Dr. Oliver Haase 2., überarbeitete und erweiterte Auflage Oldenbourg Verlag München 1 Einführung in das

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

Mehr

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an

Mehr

Verteilte Systeme Übung

Verteilte 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)

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 8

Praktikum aus Softwareentwicklung 2, Stunde 8 Praktikum aus Softwareentwicklung 2, Stunde 8 Lehrziele/Inhalt 1. Remoting Remoting Über Remoting können Objekte über JavaVMs hinweg miteinander kommunizieren. Das ist auch mit Socket-Programmierung möglich.

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

G JINI G.2 G.4. 1 Überblick. 1.1 Programmiermodell. 1.1 Programmiermodell (2) Diensteplattform für Java. Hintergrund. JINI Dienst.

G JINI G.2 G.4. 1 Überblick. 1.1 Programmiermodell. 1.1 Programmiermodell (2) Diensteplattform für Java. Hintergrund. JINI Dienst. 1 Überblick Diensteplattform für Java von Sun Microsystems G JINI Programmiermodell für Dienste Infrastruktur Unterstützungsdienste Hintergrund Nomadic computing mobile Geräte dynamische Dienstnutzung

Mehr

Mobile und Verteilte Datenbanken

Mobile 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

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

UNIVERSITÄ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,

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

Softwareentwicklung 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 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

Mehr

Moderne Konzepte Verteilter Systeme

Moderne Konzepte Verteilter Systeme Vorlesung Moderne Konzepte Verteilter Systeme Wintersemester 2002/2003 [CS ----] 2002/2003, Franz J. Hauck, Verteilte Systeme, Univ. Ulm [2002w-MKVS-A-Org.fm, 2003-02-14 08.36] 1 A Organisatorisches 2002/2003,

Mehr

C Architektur (Teil 1)

C Architektur (Teil 1) 1 Verteilte Systeme Definition nach Tanenbaum u. van Steen Ein Verteiltes System ist eine Ansammlung von unabhängigen Rechnern, die für seine Benutzer wie ein kohärentes System aussieht. C Architektur

Mehr

Einführung in die Programmiersprache Java II

Einfü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

Mehr

F.1 Überblick. 1 RPC-System in Aufgabe 3. Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern aus

F.1 Überblick. 1 RPC-System in Aufgabe 3. Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern aus F 5. Übung F 5. Übung F.1 Überblick Aufgabe 3 RPC-System im Überblick Marshalling primitiver Datentypen Byteorder Fließkommawerte s und s F.1 Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern

Mehr

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

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Wie teuer ist dynamischer Polymorphismus? 194

Wie teuer ist dynamischer Polymorphismus? 194 Wie teuer ist dynamischer Polymorphismus? 194 Function f vtable data RTTI ~Function get_name type name type info "Sinus\0" execute Nicht-polymorphe Methoden und reguläre Funktionen können in C++ direkt

Mehr

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER Rainer Oechsle Parallele und verteilte Anwendungen in Java 4., neu bearbeitete Auflage Mit 165 Listings, 5 Tabellen und 71 Bildern HANSER Inhalt 1 Einleitung 15 1.1 Parallelität, Nebenläufigkeit und Verteilung

Mehr

Überblick. Stubs & Skeletons Java Reflection API Dynamische Proxies als Stubs Generische Skeletons Aufgabe 2. VS-Übung (SS17) Stubs & Skeletons 2 1

Überblick. Stubs & Skeletons Java Reflection API Dynamische Proxies als Stubs Generische Skeletons Aufgabe 2. VS-Übung (SS17) Stubs & Skeletons 2 1 Überblick Stubs & Skeletons Java Reflection API Dynamische Proxies als Stubs Generische Skeletons Aufgabe 2 VS-Übung (SS17) Stubs & Skeletons 2 1 Java Reflection API Übersicht Bietet die Möglichkeit, das

Mehr

Verteilte Systeme. Literatur. Verteilte Systeme. Verteilte Systeme

Verteilte Systeme. Literatur. Verteilte Systeme. Verteilte Systeme Literatur 1 Verteilte Systeme Verteilte Systeme 1 Verteilte Systeme J. Nehmer, P. Sturm Grundlagen moderner Betriebssysteme. dpunkt, 2001. S. Mullender Distributed Systems (2nd edition). ACM Press, 1993.

Mehr

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Überblick. Java Reflection API. Class-Objekte

Überblick. Java Reflection API. Class-Objekte Bietet die Möglichkeit, das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html [...] This

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote 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

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. 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

Kapitel 8: Serialisierbarkeit

Kapitel 8: Serialisierbarkeit Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 8: Serialisierbarkeit Folie 189 : Serialisierbarkeit Die Umwandlung eines komplexen Objektes in ein Byte-Array nennt

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

42 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

42 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 5.3 Deaktivierung und Aktivierung mit POA 5.3 Deaktivierung und Aktivierung mit POA (2) Objekte können ihren Servant und ihre POA-Instanz überleben Servants können deaktiviert werden POA kann deaktiviert

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner

Mehr

Java-Grundkurs für Wirtschaftsinformatiker

Java-Grundkurs für Wirtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 8 Slide 1 Objektorientierte Datenbanken Vorlesung 8 Sebastian Iwanowski FH Wedel OODB 8 Slide 2 Offene Fragen vom letzten Mal: Kann man in einer JDOQL-Anfrage Elemente herausfiltern, deren Attribute

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c

Mehr

Session Beans & Servlet Integration. Ralf Gitzel

Session Beans & Servlet Integration. Ralf Gitzel s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Aufbau einer Stateless s Stateful s Web Client Offene Antwort von

Mehr

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger .NET Remoting André Frimberger 30.11.2004 André Frimberger.NET Remoting 1 Gliederung 1 Einleitung Was ist.net Remoting? 2 Die Interprozess Kommunikation Grundkonzept der Datenkanal Parameterübergabe Instanziierung

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.

Mehr

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications

H.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

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien 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

Mehr

14. RMI - Remote Method Invocation

14. RMI - Remote Method Invocation 14. RMI - Remote Method Invocation 14.1 Beteiligte Instanzen Klientenklasse als Aufrufer: - Naming.Lookup(), - MyCall.Invoke(). Interface Spezifikation für: - Server Stub im Klienten, - Server-Skeleton*,

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

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

Institut 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

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Grundlagen verteilter Systeme

Grundlagen 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

Mehr

Verteilte Systeme: Entfernte Methodenaufrufe

Verteilte Systeme: Entfernte Methodenaufrufe Verteilte Systeme: Entfernte Methodenaufrufe Funktionsweise entfernter Methodenaufrufe Entfernte Schnittstellen und verteilte Objektsysteme Entfernte Methodenaufrufe mit Java RMI Parameterübergabe Call-By-Value

Mehr

Überblick. Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1. VS-Übung (SS12) Java RMI 1 1

Überblick. Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1. VS-Übung (SS12) Java RMI 1 1 Überblick Java RMI Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 VS-Übung (SS12) Java RMI 1 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten

Mehr

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage Java als erste Programmiersprache Java 2 Plattform Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer 2., durchgesehene Auflage B. G. Teubner Stuttgart Leipzig Wiesbaden 1 GRUNDBEGRIFFE DER PROGRAMMIERUNG

Mehr

1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären.

1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären. CORBA Lernziele 1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären. Zentrale Idee: Schnittstelle: - mit einer Schnittstelle beschreibt man

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Client/Server-Programmierung

Client/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

Mehr

Client/Server-Programmierung

Client/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

Mehr

Programmieren I. Kapitel 12. Referenzen

Programmieren 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

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken Objektorientierte Datenbanken Ralf Möller, FH-Wedel z Beim vorigen Mal: y Java Data Objects Teil 2, Queries z Heute: y Java Data Objects Teil 3, Objektidentität z Lernziele: y Grundlagen der Programmierung

Mehr