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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

CORBA (Überblick, IDL)

CORBA (Überblick, IDL) Friedrich-Alexander-Universität Erlangen-Nürnberg Konzepte von Betriebssystemkomponenten CORBA (Überblick, IDL) Radu Vatav 1. Geschichte Die Object Management Group (OMG), 1989 gegründet, hatte das Ziel

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

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

CORBA: Common Object Request Broker Architecture. Interoperabilität? CORBA die Idee. Die Object Management Group

CORBA: Common Object Request Broker Architecture. Interoperabilität? CORBA die Idee. Die Object Management Group CORBA: Common Request Broker Architecture Interoperabilität? Middleware-Architektur-Spezifikation der Management Group (OMG) Überblick: Die Management Group (OMG) Das Objektmodell der OMG Die Management

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

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

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

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

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

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Verteilte objektorientierte Programmierung am Beispiel CORBA. Dr. Christian Schröder Telelogic Deutschland GmbH

Verteilte objektorientierte Programmierung am Beispiel CORBA. Dr. Christian Schröder Telelogic Deutschland GmbH Verteilte objektorientierte Programmierung am Beispiel CORBA Dr. Christian Schröder Telelogic Deutschland GmbH Agenda 1. Was versteht man unter einem verteilten System? 2. Was ist CORBA? 3. Wie funktioniert

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

3. Die CORBA Dienste. Seite 2 von 11

3. Die CORBA Dienste. Seite 2 von 11 Vortrag: CORBA CORBA Common Object Request Broker Architecture 1. Einleitung Moderne Programmiersprachen haben den objektorientierten Ansatz in die strukturierte Berechnung in einem einzigen Betriebssystemprozess

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

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

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

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Entwurfsmuster (Design Pattern) ETIS SS05

Entwurfsmuster (Design Pattern) ETIS SS05 Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

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

J2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg J2EE-Praktikum EJB-Security Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 EJB Sicherheit 2 Schnittstelle für den Bean Provider 3 Zusammenfassung EJB Security Allgemeines Sicherheitsziele

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

5.1 Middleware für verteiltes Programmieren. 5 Middleware und verteilte Anwendungen: CORBA. 5.2 CORBA-Überblick. 2 Literatur, URLs.

5.1 Middleware für verteiltes Programmieren. 5 Middleware und verteilte Anwendungen: CORBA. 5.2 CORBA-Überblick. 2 Literatur, URLs. 5 Middleware und verteilte Anwendungen: CORBA 5 Middleware und verteilte Anwendungen: CORBA 5 Middleware und verteilte Anwendungen: CORBA 5.1 Middleware für verteiltes Programmieren 5.1 Middleware für

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

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

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Sicherheit von Webapplikationen Sichere Web-Anwendungen Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda 2 Web Technologien l HTTP(Hypertext Transfer Protocol): zustandsloses Protokoll über TCP auf Port 80 HTTPS Verschlüsselt

Mehr

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany Enterprise JavaBeans Einführung Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Inhalt Allgemeines Motivation Rollen Aufbau einer EJB Arten von Beans Enterprise JavaBeans

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Ein einfacher Server. .NET Remoting. Klassentypen

Ein einfacher Server. .NET Remoting. Klassentypen Einführung - eine Klienten-Applikation kann mit einer Komponente interagieren die hinter einer Grenze liegt - Remoting ermöglicht eine Kommunikation von Komponenten Kontext-, Applikationsdomänen- (leichtgewichtiger

Mehr

1.Überblick...3. 2.Interface Definition in IDL...5. 3.Erzeugen des Servers...10. 3.1.Grundlegende Einstellungen...16

1.Überblick...3. 2.Interface Definition in IDL...5. 3.Erzeugen des Servers...10. 3.1.Grundlegende Einstellungen...16 Java IDL Ein Object Request Broker (ORB) ist ein Kommunikationsmechanismus für die synchrone Interaktion zwischen verteilten, in verschiedenen Programmiersprachen implementierten Objekten über verschiedene

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Der Einsatz von CORBA in verteilten EDA-Tools

Der Einsatz von CORBA in verteilten EDA-Tools Der Einsatz von CORBA in verteilten EDA-Tools Frank Grützmacher Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik Fachgebiet Mikroelektronische Schaltungen und Systeme

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA Hauptseminar Management von Softwaresystemen Techniken der System-Integration EAI, Middleware, SOA, CORBA Betreuerin: Referent: Ulrike Hammerschall Alexey Krivoborodov Agenda Motivation Arten der Verteilung

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

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

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

Überblick. Netzprogrammierung 4.II CORBA. Object Adapters. Konzeptionell: Zur Anpassung von Object Request. Objekten sieht CORBA

Überblick. Netzprogrammierung 4.II CORBA. Object Adapters. Konzeptionell: Zur Anpassung von Object Request. Objekten sieht CORBA Überblick Netzprogrammierung 4.II CORBA 1. ORB 2. POA 3. NameService 4. Ausführung 5. Persistente Serverobjekte Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Wiederholung: Informationssicherheit Ziele

Wiederholung: Informationssicherheit Ziele Wiederholung: Informationssicherheit Ziele Vertraulichkeit: Schutz der Information vor unberechtigtem Zugriff bei Speicherung, Verarbeitung und Übertragung Integrität: Garantie der Korrektheit (unverändert,

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Python. Quetsch deine Objekte nicht in Tabellen - leg sie in eine Objektdatenbank. gocept gmbh & co. kg. ZODB eine native Objektdatenbank für.

Python. Quetsch deine Objekte nicht in Tabellen - leg sie in eine Objektdatenbank. gocept gmbh & co. kg. ZODB eine native Objektdatenbank für. Quetsch deine Objekte nicht in Tabellen - leg sie in eine Objektdatenbank. gocept gmbh & co. kg November 16, 2010 /me, Software-Entwickler Mitgründer von gocept (Zope-Beratung, -Entwicklung, -Hosting)

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5 Die DW-LogLibrary ist eine kleine, einfach zu verwendende Softwarebibliothek, um Entwicklern von.net-programmen das Speichern von Ausgaben und Fehlermeldungen ihrer Programme zu erleichtern. Sie unterstützt

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

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

Einführung in Web-Security

Einführung in Web-Security Einführung in Web-Security Alexander»alech«Klink Gulaschprogrammiernacht 2013 Agenda Cross-Site-Scripting (XSS) Authentifizierung und Sessions Cross-Site-Request-Forgery ([XC]SRF) SQL-Injections Autorisierungsprobleme

Mehr

Programmiertechnik II

Programmiertechnik II X.509: Eine Einführung X.509 ITU-T-Standard: Information Technology Open Systems Interconnection The Directory: Public Key and attribute certificate frameworks Teil des OSI Directory Service (X.500) parallel

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

2 Literatur, URLs. 1 Überblick

2 Literatur, URLs. 1 Überblick G und verteilte Anwendungen: CORBA G und verteilte Anwendungen: CORBA 2 Literatur, URLs G und verteilte Anwendungen: CORBA 1 Überblick Motivation Object Management Architecture (OMA) Anwendungsobjekte

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Howto. Konfiguration eines Adobe Document Services

Howto. Konfiguration eines Adobe Document Services Howto Konfiguration eines Adobe Document Services (ADS) Inhaltsverzeichnis: 1 SYSTEMUMGEBUNG... 3 2 TECHNISCHE VERBINDUNGEN ZWISCHEN DEN SYSTEMEN... 3 2.1 PDF BASIERENDE FORMULARE IN DER ABAP UMGEBUNG...

Mehr

Sicherheitsaspekte von Web Services. Hauptseminar Rechnernetze

Sicherheitsaspekte von Web Services. Hauptseminar Rechnernetze Sicherheitsaspekte von Web Services Hauptseminar Rechnernetze Stefan Hennig sh790883@inf.tu-dresden.de 21. Januar 2005 Gliederung Einführung Überblick Sicherheit auf Netzwerk- und Transportebene XML-Sicherheit

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

5. Übung zur Vorlesung Service-orientierte Architekturen

5. Übung zur Vorlesung Service-orientierte Architekturen 5. Übung zur Vorlesung Service-orientierte Architekturen Webservices und WSDL SoSe 2011 Anmerkung Hausaufgabe 03 BPMN Auch hier gilt: Layout! Zu Unterschieden zw. BPMN und eepk Relative Aussagen sind geschickter

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people Vortrag zur DOAG Konferenz 2011 Mehr Dynamik in Apex mit und Alexander Scholz its-people 1 Ablauf Thema des Vortragsthemas Motivation Besonderheit des Referenten Alexander Scholz its-people Wie kann in

Mehr

Theorie und Praxis einer JSON-RPC-basierten Web-API

Theorie und Praxis einer JSON-RPC-basierten Web-API Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause Christian.Krause@raritan.com Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Gliederung 1 2 Remote Procedure Call Interface Definition

Mehr