Middleware für verteilte Objektsysteme. Philipp Bender

Größe: px
Ab Seite anzeigen:

Download "Middleware für verteilte Objektsysteme. Philipp Bender"

Transkript

1 Middleware für verteilte Objektsysteme Philipp Bender

2 Programm Kommunikation Verteilte Transaktionsverarbeitung (nicht behandelt) Übersicht über weitere Dienste Namensdienst Persistenzdienst Transaktionsmanager Sicherheitsdienst Datenbasis Protokoll Object Request Broker 2

3 Der CORBA-Namensdienst

4 Aufgabe des Namensdienstes Verwaltung von Zuordnungen (sog. Bindings) zwischen logischen Objektnamen und CORBA-Objektreferenzen Im einzelnen: Entgegennahme neuer Bindings Auffinden der zu einem Objektnamen gehörenden Referenz Löschen von Bindings Erzeugen und Löschen von Namenskontexten (Behälter für Bindings) Analogon: Verzeichnisstruktur in Dateisystemen, mit der Dateinamen auf Dateien abgebildet werden 4

5 Gründe für einen Namensdienst Abstraktion von konkreten Objektreferenzen: Code mit logischen Namen ( ArtikelHome ) ist portabler als Code mit festen Objektreferenzen ( IOR:01AF7EC ). Zusätzliche Indirektion durch den Namensdienst ermöglicht flexible Kopplung von Klienten und Diensten. Leicht lesbare Bezeichner für Objekte: Namensdienst definiert diverse URL-Formate für Objektreferenzen, z.b. iioploc://www.klick-andbau.com:9999/artikelhome Lastverteilung: Bei Bindung mehrerer äquivalenter Objekte an denselben Objektnamen kann jeweils die Referenz auf das geringst belastete Objekt zurückgegeben werden. 5

6 Namensraum: Struktur Der Namensraum des CORBA-Namensdienstes ist ein gerichteter Graph: Innere Knoten heißen Namenskontexte (vergleichbar mit Dateiverzeichnissen). Sie enthalten eine Menge von (Name, Objektreferenz)-Paaren. Die Objektreferenzen können auf weitere Namenskontexte oder auf normale CORBA-Objekte verweisen. Vollständige Objektnamen bestehen daher aus einer Folge von Namenskomponenten, die die zu durchlaufenden Kontexte beschreiben. 6

7 Namensraum: Beispiel Klick-and-Bau Namenskontexte Buchhaltung Logistik Stammdaten Bewegungsdaten ArtikelHome KundenHome BestellungHome LieferungHome Andere CORBA-Objekte ArtikelHome KundenHome BestellungHome LieferungHome 7

8 Operationen auf Namenskontexten interface NamingContext { } // Definiere neues Binding zwischen n und obj. void bind (in Name n, in Object obj); // Binde existierenden Namen n an anderes Objekt obj. void rebind (in Name n, in Object obj); // Lˆsche Binding von n. void unbind (in Name n); // Finde an Namen n gebundenes Objekt. Object resolve (in Name n); // Erzeuge neuen (leeren) Namenskontext. NamingContext new_context (); // Zerstˆre Namenskontext. void destroy (); // Weitere Methoden (z.b. zum Auflisten) nicht gezeigt... 8

9 Wie findet man den ersten Namenskontext? Die allerersten Objektreferenzen (auf den Wurzel- Namenskontext oder andere Dienstobjekte) erhält man via resolve_initial_references() vom ORB: interface ORB { }... Object resolve_initial_references (in String name);... CORBA definiert einige Namen, die der ORB auflösen muss ( RootPOA, InterfaceRepository, NameService u.a.), weitere können i.d.r. konfiguriert werden. 9

10 Objektreferenzen und URLs Unabhängig von logischen Objektnamen können CORBA- Objekte auch über URLs adressiert werden: iioploc://appserver.klick-and-bau.com:4711/object-24 bezeichnet das CORBA-Objekt, das unter dem Identifikator object-24 an Port 4711 der Maschine appserver.klick-andbau.com angesprochen werden kann. iiopname://appserver.klick-andbau.com/buchhaltung/stammdaten/artikelhome bezeichnet das CORBA-Objekt, das der CORBA-Namensdienst auf der Maschine appserver.klick-and-bau.com unter dem Namen Buchhaltung/Stammdaten/ArtikelHome kennt. In beiden Fällen muss das Objekt natürlich über das CORBA-Wire Protocol IIOP angesprochen werden. 10

11 Der CORBA-Sicherheitsdienst

12 Ziele des Sicherheitsdienstes Vertraulichkeit Information ist nur dazu berechtigten Benutzern zugänglich. Insbesondere können Nachrichten nicht abgehört werden. Integrität Information kann nur von dazu berechtigten Benutzern geändert werden. Insbesondere können Nachrichten nicht verfälscht werden. Verantwortlichkeit Jede sicherheitsrelevante Aktion im System kann eindeutig einem Urheber zugeordnet werden. Verfügbarkeit Berechtigte Zugriffe auf das System können nicht von Dritten verhindert werden. 12

13 Grundlegende Techniken Authentisierung Zweifelsfreie Feststellung der Identität eines Benutzers (z.b. durch Passwort) Autorisierung Festlegung der Schutzregeln, d.h. Vergabe von Zugriffsrechten an Benutzer Zugriffsüberwachung Überwachung der Schutzregeln Protokollierung sicherheitsrelevanter Ereignisse Verschlüsselung Sicherstellung von Vertraulichkeit und Integrität auf Nachrichtenebene 13

14 Probleme Sicherheitsanforderungen und -modelle sind vielfältig: Uni-Netzwerk vs. Buchungssystem einer Bank Authentisierung durch Passwort, Chipkarte, Iris-Scanner... Autorisierung basierend auf Benutzer, Rolle, Sicherheitseinstufung, Zugriffslisten... Zugriffskontrolle pro Methodenaufruf, pro Objekt, pro Server... Nachrichtenübermittlung im Klartext, symmetrisch verschlüsselt, asymmetrisch verschlüsselt... Konsequenz: Sicherheitsdienst stellt im Wesentlichen Mechanismen bereit, mit denen verschiedene Sicherheitspolitiken durchgesetzt werden können. 14

15 Architektur des Sicherheitsdienstes Der Principal- Authenticator ist für die Authentisierung von Klienten zuständig. Eine erfolgreiche Authentisierung gibt Credentials-Objekt zurück ( Ausweis ). Das Current-Objekt speichert aufrufbezogene Daten, u.a. die Credentials. login() erzeugt speichert Object Request Broker CORBA-Klient CORBA-Server 15

16 Architektur des Sicherheitsdienstes DomainManager verwalten die Schutzregeln von Sicherheitsdomänen. Einzelne Schutzregeln werden als Policy- Objekte gekapselt. AccessDecision- Objekte benutzen die Policies, um über Aufrufe zu entscheiden. Die AccessDecision- Objekte werden über Request Interceptors eingebunden. stellt bereit konsultiert fragt Interceptor für Zugriffskontrolle Object Request Broker Interceptor für Zugriffskontrolle CORBA-Klient CORBA-Server 16

17 Architektur des Sicherheitsdienstes AuditDecision- Objekte entscheiden, ob ein Aufruf protokolliert wird. Auch diese Entscheidungen werden anhand von Policy- Objekten gefällt. Ggf. schreibt der Interceptor einen Eintrag in ein Audit- Channel-Objekt. schreibt Eintrag Interceptor für Zugriffskontrolle fragt konsultiert Object Request Broker Interceptor für Zugriffskontrolle CORBA-Klient CORBA-Server 17

18 Architektur des Sicherheitsdienstes Weitere Request Interceptors sichern Aufrufe durch Verschlüsselung ab. Zu Beginn handeln die Interceptors dazu ein SessionContext- Objekt aus. Interceptor für Zugriffskontrolle Interceptor für Verschlüsselung Interceptor für Verschlüsselung Interceptor für Zugriffskontrolle Schlüsselaustausch CORBA-Klient CORBA-Server 18

19 Arbeitsweise des Sicherheitsdienstes 1. Klient ruft entfernte Methode auf. Seine Credentials werden in den Aufruf kopiert. 2. Zugriffskontroll- Interceptor prüft und protokolliert ggf. Aufruf. 3. Verschlüsselungs- Interceptor signiert und verschlüsselt Aufruf. 4. ORB übermittelt Aufruf an Server. Interceptor für Zugriffskontrolle Interceptor für Verschlüsselung Interceptor für Verschlüsselung Interceptor für Zugriffskontrolle foo() CORBA-Klient CORBA-Server 19

20 Arbeitsweise des Sicherheitsdienstes 5. Serverseitiger Verschlüsselungs- Interceptor dechiffriert Aufruf. 6. Zugriffskontroll- Interceptor prüft und protokolliert ggf. Aufruf serverseitig. 7. Credentials werden aus Aufruf in serverseitiges Current- Objekt kopiert. 8. Serverobjekt kann Klienten-Credentials für weitere Prüfungen verwenden. Interceptor für Zugriffskontrolle Interceptor für Verschlüsselung Interceptor für Verschlüsselung Interceptor für Zugriffskontrolle foo() CORBA-Klient CORBA-Server 20

21 Behandlung von Delegation Die Übernahme von eingehenden in ausgehende Credentials wird durch ein Policy-Objekt kontrolliert. Ein Server-Objekt kann die erhaltenen Credentials auch mit den eigenen kombinieren. foo() Interceptor für Zugriffskontrolle bar() Interceptor für Zugriffskontrolle bar() CORBA-Server 21

22 Zusammenfassung der Dienstobjekte PrincipalAuthenticator: Zuständig für Authentisierung von Benutzern Credentials: Weist den Benutzer aus Current: Enthält die Sicherheitsinformationen des aktuellen Aufrufs Policy: Kapselt einzelne Schutzregeln DomainManager: Enthält die Schutzregeln einer Sicherheitsdomäne AccessDecision: Entscheidet über die Zulässigkeit von Aufrufen AuditDecision: Entscheidet über die Protokollierung von Ereignissen AuditChannel: Kapselt Ereignisprotokoll SecurityContext: Kapselt verbindungsbezogene Sicherheitsinformation (z.b. Schlüssel) 22

23 CORBA und Persistenz

24 Eine unendliche Geschichte 1991: Die ersten Versionen des CORBA-Standards erwähnen vage einen Database Adaptor für ORBs, der nie näher spezifiziert wird. 1993: Hersteller (IONA) experimentieren mit CORBA- OODBMS-Anbindungen, die nie Produktreife erreichen. 1997: Die OMG spezifiziert einen Persistent Object Service, der sich niemals durchsetzt. 1999: Die OMG spezifiziert den Persistent State Service als Nachfolger des Persistent Object Service. Auch dieser wird am Markt nicht angenommen. 2002: CORBA 3 spezifiziert ein Komponentenmodell mit transparenter Persistenz, das sich nie... ahem. 24

25 Was bedeutet Persistenz für CORBA? Klientensicht: Persistente Objektreferenzen Referenzen auf Serverobjekte können gespeichert, über verschiedenen Medien (z.b. Papier) ausgetauscht und nach beliebig langer Zeit wieder verwendet werden. Einfach: Definiere Zeichenkettenformat für Objektreferenzen und Methoden object_to_string(), string_to_object(). Serversicht: Persistente Objektzustände Der mit einer Objektreferenz assoziierte Objektzustand überdauert einzelne Inkarnationen des zugehörigen Implementierungsobjekts in einem Serverprozess. Nicht so einfach: Erfordert begriffliche Trennung zwischen Objekt, Objektidentität und Objektinkarnation sowie flexible Zuordnungsmöglichkeiten zwischen diesen. 25

26 Begriffe Mit Einführung des Portable Object Adapters (1998) wurde festgelegt: CORBA-Objekte sind abstrakte Entitäten, die eine eindeutige Identität besitzen. Servants sind konkrete programmiersprachliche Entitäten, die CORBA-Objekte (zeitweilig) inkarnieren können. Die Zuordnung zwischen Objektidentitäten und Servants erfolgt mithilfe eines Objektadapters. Referenzen auf CORBA-Objekte enthalten (u.a.) die Identität des Objekts und die des zuständigen Objektadapters. Für jeden Methodenaufruf auf einer Objektreferenz ermittelt der zuständige Objektadapter nach wählbaren Strategien (sog. Policies) einen Servant, der den Aufruf durchführt. 26

27 Objektreferenzen, Servants und Objekte Objektreferenzen Objektadapter Reale Servants Gedachte CORBA- Objekte POA=A, ID=42 42 POA=A, ID=17 Object Request Broker POA A 17 POA=B, ID=29 CORBA-Klient POA B CORBA-Server 29 27

28 Persistente Objekte mit dem POA Grundsätzliche Vorgehensweise: Jedes persistente Objekt erhält einen eindeutigen Identifikator (z.b. Datenbankschlüssel) und einen persistenten Behälter für seinen Zustand (z.b. Tabellenzeile). Wird z.b. als Rückgabewert einer Methode eine Referenz auf ein persistentes Objekt benötigt, so wird diese mithilfe des POAs erzeugt. In die Referenz wird der Objektidentifikator eingebettet. Greift ein Klient auf eine solche Referenz zu, so wird ein geeigneter Servant ausgewählt und der Zustand des persistenten Objekts in den Servant geladen. Anschließend führt der Servant den Methodenaufruf aus. Hat die Methode den Zustand des Objekts geändert, so wird dieser (irgendwann) wieder gespeichert. 28

29 Lebenzyklus von persistenten Objekten: Erzeugen 1. Klient ruft Fabrikmethode auf, um neues persistentes Objekt zu erzeugen. 4. Fabrikobjekt gibt neue Referenz an Klienten zurück. 3. Fabrikobjekt erzeugt Referenz mit ID des neuen Objekts mithilfe des POA. 2. Fabrikobjekt legt persistentes Objekt in Datenbasis an. create() POA=A, ID=42 Object Request Broker POA A return(ref) Servant Activator create() POA B Fabrikobjekt F POA=B, ID=F CORBA-Klient CORBA-Server Datenbank create_reference_with_id(42) 29 ii 17 42

30 Lebenzyklus von persistenten Objekten: Aufruf von Methoden 1. Klient ruft Methode auf Referenz eines persistenten Objekts auf. 2. POA bittet Servant- Aktivator um Servant für Objekt-ID Servant-Aktivator erzeugt Servant und initialisiert ihn mit Zustand von Obj POA delegiert Methodenaufruf an neuen Servant. incarnate() foo() POA=A, ID=42 Object Request Broker POA A foo() ii 42 Servant Activator init(42) POA=B, POA B Fabrikobjekt F ID=F CORBA-Klient CORBA-Server Datenbank 30

31 Beispiel-Implementierung Im Folgenden Beispiel-Realisierung von persistenten CORBA-Objekten zu Fuß. Szenario: Klick-and-Bau möchte Artikel-Stammdaten als CORBA-Objekte verfügbar machen. Annahme: Die Datensätze liegen bisher als Tupel in einer Datenbank-Tabelle Artikel vor. Jedes Tupel soll als CORBA-Objekt sichtbar gemacht werden. Vorgehen: 1. Definition von Artikelobjekten in IDL 2. Realisierung der zugehörigen Servants 3. Realisierung des Server-Hauptprogramms 4. Realisierung des Servant-Aktivators 31

32 Artikel: IDL-Definition module com { module klick_and_bau { }; }; interface Artikel { readonly attribute string id; attribute string name; // weitere Attribute nicht gezeigt }; Id enthält die Artikelnummer, die zugleich Schlüssel der Artikel- Tabelle ist. Normalerweise wird auch eine Fabrikschnittstelle benötigt (hier weggelassen). 32

33 Artikel: Servant package com.klick_and_bau; class ArtikelImpl extends ArtikelPOA { String myid; String myname; ArtikelImpl (String id, String name) { myid = id; myname = name; } ArtikelPOA wurde vom IDL-Compiler aus der IDL-Definition von Artikel generiert. ArtikelImpl realisiert die Business- Methoden von Artikel. } public String id () { return myid; } public String name () { return myname; } public void name (String name) { myname = name; } 33

34 Hauptprogramm: Initialisierung package com.klick_and_bau; import org.omg.corba.*; import org.omg.portableserver.*; class PersistentServer { public static void main (String args[]) { try { Referenz auf ORB- Kern wird über statische init()- Methode erhalten. Referenz auf weitere Dienstobjekte wie POA kommt vom Trivial-Namensdienst. // Initialize ORB and get root POA ORB myorb = ORB.init (args, null); POA rootpoa = POAHelper.narrow ( myorb.resolve_initial_references ("RootPOA") ); 34

35 Hauptprogramm: Erzeugen des POA // Create new POA with policies appropriate // for persistent objects Unsere Objekte leben länger als dieser POA. Policy[] policies = new Policy[4]; policies[0] = rootpoa.create_lifespan_policy ( LifespanPolicyValue.PERSISTENT ); policies[1] = rootpoa.create_id_assignment_policy ( IdAssignmentPolicyValue.USER_ID ); policies[2] = rootpoa.create_request_processing_policy ( RequestProcessingPolicyValue.USE_SERVANT_MANAGER ); policies[3] = rootpoa.create_servant_retention_policy ( ServantRetentionPolicyValue.RETAIN ); POA mypoa = rootpoa.create_poa ( "myfirstpersistentpoa", null, policies ); Wir vergeben unsere eigenen Objekt-IDs. Frage den Servant- Aktivator, falls für eine Objekt-ID kein Servant bekannt ist. Verwende einmal erzeugte Servants auch für zukünftige Aufrufe mit derselben ID. 35

36 Hauptprogramm: Erzeugen von Objektreferenzen // Create and publish some object references (for testing) byte[] oid1 = new String("4711").getBytes(); org.omg.corba.object obj1 = mypoa.create_reference_with_id ( oid1, "IDL:com/klick-and-bau/Artikel:1.0" ); System.out.println (myorb.object_to_string (obj1)); byte[] oid2 = new String("4712").getBytes(); org.omg.corba.object obj2 = mypoa.create_reference_with_id ( oid2, "IDL:com/klick-and-bau/Artikel:1.0" ); System.out.println (myorb.object_to_string (obj2)); Sog. Repository-ID: Schlüssel der Artikel- Typinformation im Interface Repository. Erzeugt Referenz mit der angegebenen Objekt-ID und Typ- Spezifikation. 36

37 Hauptprogramm: Starten des Servers // Create servant activator Registrierung des Servant-Aktivators. } } ServantActivatorImpl myservantactivator = new ServantActivatorImpl (); mypoa.set_servant_manager (myservantactivator); // Start server rootpoa.the_poamanager().activate(); mypoa.the_poamanager().activate(); myorb.run(); } catch (Exception e) {} // Error handling not shown Activate() teilt dem ORB-Kern mit, dass der POA jetzt Aufrufe annehmen kann. Einstieg in die Event Loop des ORB. 37

38 Servant Activator: Initialisierung package com.klick_and_bau; import org.omg.corba.*; import org.omg.portableserver.*; import java.sql.*; Dienstleistungsklasse für CORBA-Objekte, die nicht exportiert werden sollen. class ServantActivatorImpl extends LocalObject implements ServantActivator { Connection connection; Statement statement; ResultSet res; // Establish database connection Interface, das der POA erwartet. ServantActivatorImpl () throws SQLException { try { DriverManager.registerDriver (...); // Supply your favorite driver connection = DriverManager.getConnection (...); // and database here statement = connection.createstatement (); } catch (SQLException e) {} // Error handling not shown } 38

39 Servant Activator: incarnate() // Provide a servant given an object id and POA reference public Servant incarnate (byte[] id, POA poa) { ArtikelImpl newservant = null; try { res = statement.executequery ( Versuche, Datensatz "select Id, Name from Artikel" + mit gewünschter "where Id = " + new String (id) Artikel-ID zu finden. ); if (res.next()) { newservant = new ArtikelImpl (res.getstring(1), res.getstring(2)); } res.close (); } catch (SQLException e) {} // Error handling not shown return newservant; } Bei Erfolg erzeuge neuen Servant und initialisiere ihn mit Datensatz-Feldern. 39

40 Servant Activator: etherealize() // Save the state of a servant that is about to be destroyed by the POA } public void etherealize (byte[] id, POA poa, Servant servant, boolean flag1, boolean flag2) { } try { statement.executeupdate ( "update Artikel" + "set Name = " + ((ArtikelImpl)servant).name () + "where Id = " + new String (id) ); } catch (SQLException e) {} // Error handling not shown Wird vom POA aufgerufen, wenn dieser einen Servant loswerden will. Schreibe aktuellen Zustand des Servants (hier Name) in die Datenbasis zurück. 40

41 Der Persistent State Service Ziel des Persistent State Service: Vermeidung von expliziten Datenbankzugriffen im Server-Code. Mehr Portabilität, da keine festverdrahteten Tabellenstrukturen und SQL-Statements Weniger Programmieraufwand Weniger Fehlermöglichkeiten Vorgehen: Definition einer IDL-Erweiterung (PSSDL), mit der Attribute, Methoden, Schlüssel, Fremdschlüssel und Fabrikmethoden von Speicherobjekten festgelegt werden. Mit einem Codegenerator wird dann automatisch Code zum Konvertieren zwischen Speicherobjekten und Informationen in einer unterliegende Datenbasis erzeugt. 41

42 Architektur des PSS POA und Servant- Aktivator bilden Objektreferenzen auf Servants ab. Servant benutzt Speicherobjekt des PSS zur Speicherung seines Zustands. PSS sorgt für automatischen Abgleich zwischen Speicherobjekt und DB. Objektreferenzen Objektadapter Servants Speicher- und Fabrikobjekte des PSS ii Id POA=A, ID=42 POA=A, ID=17 Object Request Broker POA A POA B Id CORBA-Klient CORBA-Server Datenbank 42

43 Anmerkungen zum PSS Der PSS spezifiziert lediglich eine Beschreibungssprache für Speicherobjekte die Mechanismen, mit denen Speicherobjekte ihren Zustand laden und sichern, bleiben der jeweiligen PSS-Implementierung überlassen. Der PSS ist damit vergleichbar zum ODMG-Standard für objektorientierte Datenbanken, der auch ein abstraktes Modell persistenter Objekte vorsieht und die Persistenzmechanismen dem DB-Anbieter anheim stellt. Leider sind PSS und ODMG-Standard nicht kompatibel und die Mehrzahl der Anbieter von Persistenzdiensten zieht es vor, sich am ODMG-Standard zu orientieren... 43

44 PSS und Transaktionen Da PSS-Speicherobjekte einen persistenten Zustand widerspiegeln, sollte der Zugriff auf ihre Attribute transaktionsgeschützt erfolgen. PSS bietet dafür das Konzept der transaktionalen Session an, welches im Wesentlichen eine laufende Transaktion gegen die unterliegende Datenbasis kapselt. Lese- und Schreibzugriffe auf Speicherobjekte während einer transaktionalen Session erfolgen mit den üblichen ACID- Garantien. Am Ende einer Session erfolgt das Commit. Sessions können auch Bestandteil von CORBA-Transaktionen sein: in diesem Fall registriert sich die unterliegende Datenbasis als Ressource beim Koordinator der CORBA-Transaktion. Werden keine transaktionalen Sessions verwendet, führt der PSS DB-Transaktionen ad hoc (z.b. pro Attributzugriff) durch. 44

45 Web-Referenzen Object Management Group (http://www.omg.org/) Alles rund um CORBA: Tutorials, Spezifikationen,... Freie Implementierungen des CORBA-Standards: MICO (http://www.mico.org/) JacORB (http://www.jacorb.org/) Einführungen, FAQs, Implementierungen,... zu CORBA und EJB Verteilte Informationssysteme Abeck, Lockemann, Seitz, Schiller 2002, dpunkt verlag 45

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

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

Kommunikation. Björn und Georg

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

Mehr

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO)

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Client/Server-Programmierung WS 2007/08 CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Version 1.2, 28.11.07 Schritt 1: Erstellung der IDL Zuerst muß eine IDL (Interface Definition Language)-Datei erstellt

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

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

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

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

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

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: 18. September 2014 Betriebssysteme / verteilte

Mehr

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

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

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

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

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion Verteilte Anwendungen und Klassifikation von Interaktionsformen explizit implizit orthogonal nicht-orthogonal uniform nicht-uniform transparent nicht-transparent explizite, orthogonale Interaktion weit

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

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

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl. Vorbereitungen Download AVO-Übung ICE Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS005 Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation

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

Grundlagen und Implementation. Jan Kraft

Grundlagen und Implementation. Jan Kraft Grundlagen und Implementation Jan Kraft Gliederung 1 die OMG 2 Was ist CORBA? 3 Funktionsweise 3.1 die Interface Definition Language 3.2 Objekt Adapter 3.3 weitere Komponenten des ORB 3.4 InterORB Protokolle

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

3.2 Der CORBA-Standard Common Object Request Broker Architecture

3.2 Der CORBA-Standard Common Object Request Broker Architecture 3.2 Der CORBA-Standard Common Object Request Broker Architecture (Bildquelle: OMG) Kapitel 3.2: Vorlesung CORBA 1 CORBA Middleware im Ueberblick G CORBA = Common Object Request Broker Architecture. Standard

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens 11.1 Indirektes Binden (3) Objektadapterkonfiguration Name wird bei Erzeugung vergeben wird genutzt u.a. für Property-Zugriffe Adapter-ID wird über Property konfiguriert Beispiel: MyAdapter.AdapterID=MyAdapter

Mehr

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1 Corba Systemprogrammierung WS 08 / 09 21.01.09 Roginer - Fontana - Heinisch 1 Gliederung Definition Historie RPC Eigenschaften Architektur IDL-Beispiel Anwendungen OMA Services Facilities Client-Server

Mehr

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme Titel CORBA Eine Middleware-Plattform für objektorientierte Technologien von Martin Villis 6. Mai 2004 Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe

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

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Java-Programmierung. Remote Method Invocation - RMI

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

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

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

Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service

Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service CORBAservices sind eine Sammlung von Diensten auf Systemebene, die CORBA-Objekte um mehrere nützliche Eigenschaften ergänzen bzw. den Umgang mit

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 7. Übung zur Vorlesung Datenbanksysteme WS 09/10 Musterlösung Aufgabe 7-1: SQLJ //

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

Mehr

Nahtlose Integration von J2EE, CORBA und.net

Nahtlose Integration von J2EE, CORBA und.net Nahtlose Integration von J2EE, CORBA und.net Integration der unterschiedlichen Welten ohne zusätzliche Brückenprodukte Autor: Martin Heinzl, Senior Consultant Immer wieder müssen von IT-Verantwortlichen

Mehr

JDO Java Data Objects

JDO Java Data Objects JDO Java Data Objects Ralf Degner, Chief Consultant Ralf.Degner@poet.de Agenda POET Motivation Geschichte Einführung Architekturen FastObjects POET Gegründet 1993 Zwei Produktlinien esupplier Solutions:

Mehr

Mobile und Verteilte Datenbanken

Mobile 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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Middleware für verteilte Objektsysteme. Philipp Bender

Middleware für verteilte Objektsysteme. Philipp Bender Middleware für verteilte Objektsysteme Philipp Bender Programm Kommunikation Verteilte Transaktionsverarbeitung Übersicht über weitere Dienste Namensdienst Persistenzdienst Transaktionsmanager Sicherheitsdienst

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Middleware. Einführung in CORBA. Middlewareplattform CORBA. CORBA: Eigenschaften

Middleware. Einführung in CORBA. Middlewareplattform CORBA. CORBA: Eigenschaften Middleware Einführung in CORBA Kay Römer Institut für Pervasive Computing ETH Zürich Infrastruktur für verteilte Systeme Unterstützt Enwickler bei Behandlung der Probleme verteilter Systeme Erleichtert

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

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

J2EE-Praktikum JNDI. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

J2EE-Praktikum JNDI. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg J2EE-Praktikum JNDI Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 Naming Services 2 JNDI-Typen 3 JNDI-Verwendung 4 Directory-Kontexte 5 Namen 6 Zusammenfassung Java Naming and

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

6.9 Java Server Pages

6.9 Java Server Pages DocumentCollection dc = db.ftsearch(abfrage); Document d = dc.getfirstdocument(); while (d!= 0) { String Name = db.gettitle(); out.println(name + ""); d = dc.getnextdocument(); catch (NotesException

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Erstellung der Datenbank Tabellen Als Login Module soll das in der JBoss Installation bereits vorhandene DatabaseServerLoginModule

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen. EJBs und Sicherheit Vorlesung: Applikationsserver Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.de/~reich Deklarative Sicherheit Zugriffsrechte auf die EJB-Methoden werden

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

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

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Remote Method Invocation

Remote 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

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Factory Method (Virtual Constructor)

Factory 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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

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

Mehr

Javakurs zu Informatik I. Henning Heitkötter

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

Mehr

Client-Server-Praktikum: Aufgabe 1 CORBA

Client-Server-Praktikum: Aufgabe 1 CORBA Client-Server-Praktikum: Aufgabe 1 CORBA In diesem Tutorial werden Sie die CORBA-Spezifikation kennenlernen und grundlegendes Wissen darüber sammeln. Am Ende des Tutorials sollten Sie in der Lage sein,

Mehr

Service-Orientierte Architekturen

Service-Orientierte Architekturen Hochschule Bonn-Rhein-Sieg Service-Orientierte Architekturen Kapitel 7: Web Services IV Exkurs über Sicherheitsanforderungen Vorlesung im Masterstudiengang Informatik Sommersemester 2010 Prof. Dr. Sascha

Mehr

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Zustandsgebundene Webservices

Zustandsgebundene Webservices Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite

Mehr

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf

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