Client/Server-Systeme

Größe: px
Ab Seite anzeigen:

Download "Client/Server-Systeme"

Transkript

1 Client/Server-Systeme Prof. Dr.-Ing. Wilhelm Spruth SS 2004 Teil 14 CORBA cs 1000 ww6 wgs 05-97

2 Wiederverwendbarkeit von Code Vorbild: Entwurf/Bau einer Brücke im Bauingenieurwesen Objekttechnologie ermöglicht Code Blöcke mit fest definierter Funktionalität, die in Klassen gekapselt werden. Ein Objekt als Instanz einer Klasse stellt sich dem Entwickler als Black Box mit einer öffentlichen Schnittstelle dar. Wird nur in einer einzigen Sprache mit identischem Compiler entwickelt ist die Wiederverwendbarkeit von Klassen am leichtesten erreichbar. Beim Einsatz mehrerer Programmiersprachen muß die Objektphilosophie der Programmiersprache beachtet werden. Z.B. unterstützt C++ die Mehrfachvererbung, Java aber nur die Einfach-vererbung. Um objektorientierte Bibliotheken mit unterschiedlichen Sprachen und Compilern zu realisieren, ergeben sich eine Reihe von Problemenbereichen: Sprachunabhängigkeit: Smalltalk- und C++-Objekte verstehen einander nicht Compilerunabhängigkeit: Objekte zweier Compiler (z.b. Watcom und GNU C++) können nicht miteinander kommunizieren, weil die Verwaltung interner Informationen nicht standardisiert ist starre Kopplung zwischen Objekten: Wenn sich die Implementierung einer Klasse ändert, müssen alle Teile, die diese Klasse in irgendeiner Form nutzen, neu kompiliert werden. Beispiel: C++ Compiler benutzen Konstanten beim Zugriff auf Daten und Methoden Beschränkung auf einen Prozeßraum (Objekte können nicht über Prozeßgrenzen hinweg kommunizieren) Zielsetzung: Unterschiedliche objektorientierte Klienten-Implementierungen, die auf unterschiedlichen Plattformen (z.b. HP-UX, AIX, Solaris, Linux, NT, OS/400, OS/390) laufen, sollen mit unterschiedlichen objektorientierten Server- Implementierungen (ebenfalls unterschiedliche Plattformen) in Binärform kompatibel zusammen arbeiten. Klienten sollen maximal portierbar sein, und ohne -Änderungen auf Rechnern/Betriebssystemen unterschiedlicher Hersteller lauffähig sein. Klienten sollen keine Kenntnis benötigen wie ein Objekt auf einem Server implementiert ist cs 1107 ww6 wgs 06-98

3 Anforderung (Request) Client 1 Objekt 1 Client 2 Objekt 2 Client 3 Objekt 3 Client 4 Objekte Klient bieten Operationen an, durch deren Aufruf sie zu bestimmten Aktionen veranlaßt werden können Eine Software-Einheit, die eine Operation eines Objektes aufruft css1114 ww6 wgs 06-97

4 NT Object GNU C++ COBOL Apple HP-UX Java HP C++ SUN AIX Symatec Smalltalk NT Object GNU C++ COBOL Apple HP-UX Java HP C++ SUN AIX Symatec Smalltalk ORB In unterschiedlichen Programmiersprachen entwickelte binäre Objekte können plattformunabhängig miteinander kommunizieren. cs 1032 ww6 wgs 03-00

5 Object Request Broker ORB Ein ORB (Object Request Broker) ist eine Komponente eines Betriebssystems. Er ermöglicht es, daß Objekte, die in unterschiedlichen Programmiersprachen entwickelt wurden, in binärer Form miteinander zusammenarbeiten. Dies kann über Prozeß- und physische Rechnergrenzen hinweg geschehen. Hierfür stellt der ORB ein einheitliches Klassenmodell sowie Standards für die Organisation von Klassen-bibliotheken und die Kommunikation zwischen Objekten zur Verfügung. Es existieren mehrere Alternativen einen ORB zu implementieren: CORBA Standard der OMG Remote Method Invocation (RMI), Teil des JDK 1.1 der Fa. SUN COM+ / DCOM / Activex / SNA / DotNet der Fa. Microsoft In eine ähnliche Richtung geht die Internet orientierte SOAP / UDDI / WSDL Initiative. cs1104 ww6 wgs 05-97

6 DCOM - CORBA Integration Das Gegenstück zum CORBA ORB ist der Microsoft DCOM ORB. Er ist CORBA-inkompatibel. Ziel: Vermittlung von Methodenaufrufen zwischen binären Objekten Brücke DCOM Corba DCOM - Corba Brücke z.b. Visigenic VisiBridge ORB DCOM CORBA Corba Schnittstelle CIOP IIOP DCE RPC Transport beliebig TCP/IP css1145 ww6 wgs 06-97

7 CORBA Common Object Broker Architecture Standard der OMG (Open Management Group) cs 1112 ww6 wgs 06-98

8 Begriffe Object Management Group (OMG) 1989 gegründeter, internationaler, nicht profit-orientierter Zusammenschluß von zunächst 8 (Anfang 1996: Ca. 600) Softwareentwicklern, Netzbetreibern, Hardwareproduzenten und kommerziellen Anwendern von Computersystemen (ohne Microsoft). Object Management Architecture (OMA) Von OMG spezifizierte Architektur, die das Zusammenwirken von Anwendungen verschiedener Hersteller unabhängig von Betriebssystem, Programmiersprache und Hardware ermöglichen soll. Common ORB Architecture (CORBA) Universelles Kommunikationsmedium für beliebig geartete Objekte in verteilten heterogenen Systemen, Kernstück der OMA, 1991 von OMG in Version 1.1 spezifiziert, aktuelle Version 3.0 (Sommer 1999). Literatur R. Orfali, D. Harkey: Client/Server Programming with Java and Corba. John Wiley, 2nd edition, cs 1160 ww6 wgs 06-01

9 CORBA Implementierungen Verfügbare ORB s: DEC IBM IONA HP SunSoft Inprise andere ObjectBroker Component Broker Orbix ORB Plus Solaris NEO Visigenic Object Broker Unterstützte Sprachen: C++ Smalltalk COBOL Java ADA Implementierungsbeispiele und Download Code sind zu finden unter: cs 1113 ww6 wgs 06-97

10 Client Server Sockets oder Sockets oder RPC RPC Transport, z.b. TCP Mit Prozeduren arbeitendes Client/Server-System Client Server CORBA Schnitt- CORBA Schnittstelle stelle ORB Beispiele: Sockets oder Sockets oder IIOP, RPC RPC CIOP Transport, z.b. TCP Objektorientiertes Client/Server-System css1117 ww6 wgs 05-97

11 Klient Objekt Klient Objekt Stub Skel Stub Skel ORB Nr. 1 ORB Nr. 2 IIOP TCP/IP ORB stellt eine Schnittstelle zwischen Client und Server dar, die ähnlich der Socket- oder RPC-Schnittstelle arbeitet, aber auf einer höheren Ebene arbeitet (und deshalb evtl. Sockets oder RPC für die eigentliche Kommunikation verwendet) objektorientiert arbeitet für die Kommunikation das IIOP Protokoll verwendet (andere) Klienten und Server Objekte kommunizieren mit ihrem ORB über Stubs und Skeletons. Sie können transparent auf dem gleichen oder auf entfernten Rechnern arbeiten Eine eindeutige Objekt Referenz (IOR) wird dem Objekt bei der Entstehung zugeordnet. Der Client nimmt die Dienste eines Objektes in Anspruch, indem er einen Methodenaufruf ausführt. Der Methodenaufruf enthält: IOR Methodennamen Parameter Kontext (enthält Information über die Position des Aufrufers und nimmt Fehlermeldungen entgegen) cs 1161 ww6 wgs 06-98

12 Wichtige Schnittstellen des ORB zum Client und zur Objekt-Implementation Interface Implementation Repository Repository Client Objekt-Implementation IDL IDL Object Stubs Skeletons Adapter ORB-Kern Standardisierte Schnittstelle (identisch für alle ORBs) Mehrere, jeweils auf einen Objekttyp spezialisierte Schnittstellen Es kann mehrere Object Adapter geben ORB-spezifische Schnittstelle IDL Stubs IDL Skeletons Objektspezifische Schnittstellen, werden von IDL- Compiler generiert cs 1129 ww6 wgs 05-98

13 Interface Repository Bestandteil des ORB, Run-Time verteilte Datenbank. Enthält Schnittstellen Beschreibungen aller registrierten verteilten Objekte. Dies schließt Beschreibungen der Methode Parameter der Objekte ein. Die Schnittstellen Beschreibungen können als Maschinen-lesbare Versionen der in IDL definierten Schnittstellen betrachtet werden. CORBA bezeichnet dise Beschreibungen als Methoden Signaturen. Beim Aufruf (Invocation) eines Objektes ermöglicht die Signatur eine Typen Überprüfung Interface Repositories können lokal verwaltet werden, oder als Department oder unternehmensweite Ressourcen eingesetzt werden. Der genaue Aufbau des Interface Repository ist ORB-spezifisch gelöst (wird nicht von der OMG definiert). Bestandteil des ORB. Implementation Repository Enthält Run-Time Informationen, die der Auffindung eines (anhand einer Objekt-Referenz identifizierten) Objekts im Netz ermöglichen. Macht damit Objekt-Lokationen für Clienten transparent. Enthält Information über die Klassen, die ein Server unterstützt, die aktivierten Objekte und deren ID s. Speichert zusätzliche administrative Daten wie Trace Information, Audit Trails und relevante Daten für die Sicherheit. Kann auch mehrere Lokationen für ein und dasselbe Objekt (d.h. dieselbe Referenz) bereitstellen: Etwa zur Lastverteilung auf mehrere Server oder als Vorkehrung für den Ausfall eines Servers. Für den Client stellen sich dabei sämtliche Objekt-Implementierungen als ein einziges Objekt dar. Enthält weiterhin die Interface-Beschreibungen der vorhandenen Objekte. Wird deshalb auch genutzt, um DII und DSI die erforderlichen Informationen bereitzustellen. Der genaue Aufbau des Implementation Repository ist ORB-spezifisch gelöst (wird nicht von OMG definiert). cs 1179 ww6 wgs 06-98

14 Aufbau eines Servers Objecte A1, A2, A3 Objekte B1, B2 Server Interface A Interface B Methode A1 Methode B1 Methode A2 Methode B2 Methode A3 Methode B3 allgemeine Methode B4 Behandlungsroutine private Daten private Daten Dynamic Skeleton für Skeleton für Object Skeleton Interface A Interface B Adapter (DSI) (OA) Request für unbekanntes Interface Request für A ORB-Kern Request für B CORBA unterscheidet zwischen Server und Objekt. Server beinhaltet typischerweise mehrere Objekte. Je 1 Skeleton für Objekte mit identischer Interface. Zuweisung der Requests an Skeletons (bzw. DSI) erfolgt durch ORB und Object Adapter. css1134 ww6 wgs 06-97

15 Objekt Menge von Daten, die nur über wohldefinierte Operationen (Methoden) zugänglich sind Objekt-Klasse (Objekt-Typ) spezifiziert Operationen und Datenstrukturen für gleichartige Objekte Typ Klasse Abstrakte Spezifikation der Funktionalität Implementierung dieser Funktionalität Objekt-Instanz, Objekt-Exemplar Ausprägung eines Objektes, welches zu einer (vorher definierten) Klasse gehört css1103 ww6 wgs 05-97

16 CORBA Server Objekt Objekt Objekt Object Objekt A B C X Y Prozess Prozess Skeleton 1 Skeleton 2 Basic Object Adapter, Portable Object Adapter CORBA Unterscheidet zwischen Server und Objekt Objekt implementiert Schnittstelle Server beinhaltet typischerweise mehrfache Objekte (shared server), z.b. alle von der gleichen Klasse Der Server wird erstmalig aktiviert, wenn ein Request für eines seiner Objekte eintrifft. Weitere Requests werden auf einer first come, first serve Basis abgearbeitet. Typischerweise 1 Thread pro Objekt. (Ein Persistent Server ist ein shared Server, der die ganze Zeit aktiv ist, z.b. für Transaktionsverarbeitung.) cs 1133 ww6 wgs 06-97

17 Schnittstellen des ORB zum Client und zur Objekt-Implementation Interface Implementation Repository Repository Client Objekt-Implementation DII IDL ORB DSI IDL Object Stubs Interface Skeletons Adapter ORB-Kern Standardisierte Schnittstelle (identisch für alle ORBs) Mehrere, jeweils auf einen Objekttyp spezialisierte Schnittstellen Es kann mehrere Object Adapter geben ORB-spezifische Schnittstelle DII: Dynamic Invocation Interface Gehören mit Object Adapter und ORB-Kern DSI: Dynamic Skeleton Interface zur CORBA-Plattform IDL Stubs IDL Skeletons Objektspezifische Schnittstellen, werden von IDL- Compiler generiert cs 1130 ww6 wgs 05-98

18 IDL (Interface Definition Language Client Objekt Server Objekt Die Idee ist: Steckverbindung Über ein (binäres) Server Object ist nicht bekannt wie es implementiert ist in welcher Sprache es implementiert ist Nur die Schnittstellen des Server Objektes werden veröffentlicht Methoden Parameter Um die Programmiersprachenunabhängigkeit zu erreichen, wird die Schnittstellenbeschreibung von der binären (Maschinencode) Implementierung der Klienten- und Serveranwendung getrennt Die Beschreibung der Schnittstelen erfolgt in einer einheitlichen Sprache: IDL. Damit entsteht eine Programmiersprachenunabhängige Class Description. Die Language Mappings der OMG definieren die Umsetzung Wenn der Programmierer die Schnittstellenbeschreibung des Server Objektes kennt, kann er sie benutzen um eine Klientenanwendung zu schreiben Die Compilierung der IDL Schnittstellenbeschreibung erzeugt auf der Klienten- und Serverseite ORB spezifische Skeletons und Stubs Der Skeleton und Stub Code muß Sprachen-spezifisch sein, um mit der Klienten - und Serveranwendung in deren Sprache zurecht zu kommen cs 1034a ww6 wgs 03-00

19 IDL Beschreibung IDL nach IDL nach IDL nach Java Cobol C++ andere Compiler Compiler Compiler Skeleton Skeleton Skeleton Stub Stub Stub Language Mappings: Werden für verschiedene Programmiersprachen spezifiziert. Legen die den IDL-Konstrukten äquivalenten Konstrukte der jeweiligen Programmiersprache fest. Dazu gehören: Einfache und zusammengesetzte Datentypen, Konstanten, Objekte, Operationsaufrufe incl. Parameterübergabe, Setzen und Abfragen von Attributen, Auslösen und Behandeln von Exceptions. Garantieren die Zugriffsmöglichkeit auf Objekte unabhängig von der bei der Entwicklung der Client- und Server-Programme benutzten Programmiersprache. Sind zum Teil von OMG standardisiert (für C, C++, COBOL, Ada, Java und Smalltalk). Weitere Standards sind z.z. in Arbeit (für Fortran und PL/1). cs 1035 ww6 wgs 03-00

20 IDL Interface Definition Language Beschreibt die Schnittstelle, welche von Client-Objekten aufgerufen wird, und die von einer Objekt-Implementierung zur Verfügung gestellt wird. Angelehnt an ANSI C++: Preprocessing im C++ - Stil, Lexikalische Regeln (mit zusätzlichen Schlüsselwörtern), Syntax ist Untermenge der C++ - Syntax (Konstanten-, Typ-, Operationsdeklarationen). Aber auch mit Unterschieden zu C++, z.b.: Rückkehrtyp von Funktionen muß angegeben werden, Alle formalen Parameter in Operationsdeklarationen müssen einen Namen haben,... css1130 ww6 wgs 06-97

21 OMG IDL Erstellung von Client und Objekt-Implementation mittels IDL-Compiler IDL-File ORB-spezifischer IDL-Compiler Stub Skeleton Code Code Client Obj. Impl. Code Code Compiler, Linker Client Object Implementation Stub Skeleton ORB css1131 ww6 wgs 06-97

22 Erstellen eines CORBA Programms 1. Definition der Server Schnittstelle unter Benutzung der Interface Definition Language (IDL) 2. Interface Definition in das Interface Repository binden 3. Idl Definition mit Hilfe des IDL Precompilers übersetzen 4. Code für die Server Implementierung schreiben 5. Server Code kompilieren 6. Run-Time Objekte mit dem Implementation Directory registrieren 7. Zur Start-up Zeit Objekte auf dem Server instanziieren 8. Code für die Client Implementierung schreiben 9. Client Code übersetzen 10. Run cs 1135 ww6 wgs 11-98

23 Klient Server clock1 = cpuclock call increment ( 1000 mal ) sum = 0 clock2 = cpuclock increment (sum) time = clock2 - clock1 CORBA ORB CORBA Beispiel (1) Implementierung des Beispiels in Java (Klient und Server) Klient und Server Code werden in einem CORBA Module (einer Java Package) mit dem Namen Counter zusammengefaßt. Die Schnittstelle zwischen Klient und Server erhält den Namen Count. Dies ist gleichzeitig die Bezeichnung der Klienten und Server Klassen der CORBA Module Counter. Der Name des serverseitigen Objektes ist MyCount. Orfali, Chapter 4, S. 69 cs 1140 ww6 wgs 04-99

24 Vorgehensweise Es sind 4 Dateien zu erstellen: count.idl CountClient.java CountImpl.java CountServer. java Sie konstituieren gemeinsam das Corba Module ( = Java Package) Es werden die folgenden Referenzen benutzt: counter count.idl interface Count method increment CountImpl.java lokale Variable sum CountServer.java globaler Objektname MyCount lokale Objektbezeichnung count CountClient.java globaler Objektname My Count lokale Objektbezeichnung counter Der IDL Compiler erzeugt aus count.idl sechs Java Programme (Hilfsdateien, u.a. Stub und Skeleton), welche die Schnittstelle Count verwenden. Je drei von ihnen werden von CountClient.java bzw. von CountServer.java und CountImpl.java benutzt. Sie müssen alle gemeinsam in Klassen übersetzt werden. cs1175 ww6 wgs 05-01

25 Interoperable Object Reference IOR Zeichenkette, die ein Objekt innerhalb eines verteilten CORBA Systems eindeutig kennzeichnet. Vergleich: Internet CORBA Object Reference informatik.uni-tuebingen.de String (Name) CORBA ORB s unterschiedlicher Hersteller übermitteln Object References nach dem IOR (Interoperable Object Reference) Standard. Anwendungen verwenden String Namen. Es ist die Aufgabe eines Name Servers, String Namen in Object References zu übersetzen. cs1150 ww6 wgs 05-97

26 Inter Operable Reference (IOR) Format TCP/IP SNA IPX OMG Standard IOR s sind unique (eindeutig). IOR ethält u.a. ein Feld für jedes benutzbare Transport Protokoll. Für IIOP (TCP/IP) schließt dies die Internet Adresse, eine Portnummer und eine intern vom ORB erzeugte und verwendete Objektidentifikation ein. Die Netzwerk Adresse bezeichnet die zuletzt bekannte Lokation des Objekt ORB`s. Wurde das Objekt zwischenzeitlivh verlagert, verweist der ursprüngliche ORB auf den neuen ORB mit einer "location_forward" IIOP Nachricht. cs 1030z ww6 wgs 05-97

27 cs 1039 ww6 wgs 05-02

28 Objekte Objekte Zugriff auf die Objekte mit Hilfe von Objekt Objekt Objekt Referenzen Instanz Instanz Objekt Objekt Implemen- Implementierung tierung Corba Client Kernel Corba ORB IIOP Corba Server Betriebssystem Kernel Corba ORB Corba Begriffe Objekt Referenz : Zeiger auf ein Objekt, das irgendwo im Netzwerk existiert Corba Client : Programm, das eine Objekt aufruft Objekt Implementierung : Programm Code, der das Verhalten des Objekts definiert Objekt Instanz : Ausprägung eines bestimmten Objektes Corba Server : Prozess, der eine oder mehrere Objekt Implementierungen bereitstellt cs 1038 ww6 wgs 03-00

29 OMG CORBA Namensdienst Mechanismus, mit dem Objekte auf dem ORB andere Objekte lokalisieren Ein Name-Binding ist eine Zuordnung Name - Objekt. Verwendet hierarchische Struktur. Basiert auf transparenter Kapselung existierender Namensdienste wie LDAP, X.500, DNS oder Sun NIS. Bildet den Namen eines Objektes auf eine eindeutige, maschinenlesbare Objekt Referenz ab. Es kann mit absoluten Namen oder mit Namen innerhalb ihres Context gearbeitet werden. spruth, informatik, unituebingen und de könnten Komponenten eines CORBA Namens sein. Eine Komponente besteht aus 2 Attributen: identifier, kind. Das Attribute kind kann eine Beschreibung der Komponente enthalten, z.b. file-typ. Einige ORB Herstelller, z.b. Inprise, Orbix, bieten zusätzlich eigene, proprietäre Namendienste an, die Broadcasts verwenden und nur innerhalb des gleichen IP Subnetzes arbeiteten. cs 1158 ww6 wgs 06-98

30 Name Obj. Reference MyCount 4711 Corba Namensdienst Server 2 Anfrage 3 Antwort 1 Registrierung MyCount MyCount, MyCount, 4711 Referenz= 4711 Corba Klient 4 invoke Methode, Objekt Referenz = Corba Server Corba Namensdienst Corba Object Refererence : Zeiger auf ein Objekt zurlaufzeit Die vom Programmierer verwendete Repräsentation (Namen) einer Objekt Referenz ist nicht mit der vom ORB verwendeten Repräsentation identisch cs 1185 ww6 wgs 05-01

31 Client Process Server Process OSAgent CountImpl sum increment My Count My Count Name Service counter count Proxy Object Object hat die Methodenaufrufe counter.sum CountServer counter.increment 1. Registrierung My Count, Obj. Ref. 2. Anfrage: My Count??? 3. Antwort: My Count, Obj. Ref. Der interne state des Objektes My Count wird durch 1 Variable ( int sum) dargestellt. Counter Beispiel cs1173x ww6 wgs o6-99

32 IDL (Interface Definition Language Client Objekt Server Objekt Die Idee ist: Steckverbindung Über ein Server Object ist nicht bekannt wie es implementiert ist in welcher Sprache es implementiert ist interface Count Nur die Schnittstellen des Server Objektes werden veröffentlicht Methoden increment() Parameter sum Um die Programmiersprachenunabhängigkeit zu erreichen, wird die Schnittstellenbeschreibung von der binären (Maschinencode) Implementierung der Klienten- und Serveranwendung getrennt Die Beschreibung der Schnittstelen erfolgt in einer einheitlichen Sprache: IDL. Damit entsteht eine Programmiersprachenunabhängige Class Description. Die Language Mappings der OMG definieren die Umsetzung Wenn der Programmierer die Schnittstellenbeschreibung des Server Objektes kennt, kann er sie benutzen um eine Klientenanwendung zu schreiben Die Compilierung der IDL Schnittstellenbeschreibung erzeugt auf der Klienten- und Serverseite ORB spezifische Skeletons und Stubs Der Skeleton und Stub Code muß Sprachen-spezifisch sein, um mit der Klienten - und Serveranwendung in deren Sprache zurecht zu kommen cs 1037 ww6 wgs 03-00

33 // Count.idl module Counter { interface Count { attribute long sum; long increment(); }; }; IDL Schnittstellen Definition der Count Schnittstelle Der IDL Precompiler erzeugt aus der Schnittstellen Definition Java Programme für Client Stub Server Skeleton, weitere Hilfsprogramme und lädt die Schnittstelllen Beschreibung in das Interface Repository. cs 1142 ww6 wgs 03-99

34 mögliche Instanzen von CountImpl CountServer His Count Your Count My Count Count Server Implementierung Die Server Seite von Count besteht aus 2 Programmen. CountServer initialisiert ORB, BOA und erzeugt die Count Objekte (die Instanzen der Klasse Count). Im vorliegenden Beispiel ist dies nur 1 Objekt mit der Bezeichnung My Count. In der Regel werden mehrere Instanzen erstellt. CountImpl enthält den Code für das Server Objekt, welches vom Klienten aufgerufen wird. cs 1146 wgs 03-99

35 // CountImpl.java: The Count Implementation class CountImpl extends Counter._CountImplBase // extends establishes inheritance from Counter._CountImplBase { private int sum; // Constructor, calls ist super, the CORBA skeleton class CountImpl(String name) { super(name); System.out.println("Count Object Created"); sum = 0; } // get sum public int sum() { return sum; } // set sum public void sum(int val) { sum = val; } // increment method public int increment() { sum++; return sum; } } CountImpl Count Server Implementierung cs 1143 ww6 wgs 03-99

36 // CountServer.java: The Count Server main program class CountServer { static public void main(string[] args) { try { // Initialize the ORB org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); // Initialize the BOA org.omg.corba.boa boa = orb.boa_init(); // Create the Count object CountImpl count = new CountImpl("My Count"); // Export to the ORB the newly created object boa.obj_is_ready(count); } } // Ready to service requests boa.impl_is_ready(); } catch(org.omg.corba.systemexception e) { System.err.println(e); } CountServer Count Main Server Programm Initialisierung des ORB, BOA und des Count Objektes. Die beiden Befehle CountImpl... und boa.obj... erstellen und exportieren eine einzige Objekt Instanz ( count, My Count ). cs 1145 wgs 03-99

37 // CountClient.java Static Client, VisiBroker for Java class CountClient { public static void main(string args [ ] ) { try { // Initialize the ORB org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); // Bind to the Count Object Counter.Count counter = Counter.CountHelper.bind(orb, "My Count"); // Set sum to initial value of 0 counter.sum((int)0); // Calculate Start time long starttime = System.currentTimeMillis( ); // Increment 1000 times for (int i = 0 ; i < 1000 ; i++ ) { counter.increment(); } // Calculate stop time long stoptime = System.currentTimeMillis( ); //print statistics System.out.println("Avg Ping = " + ((stoptime - starttime)/1000f) + " msecs"); System.out.println("Sum = " + counter.sum( )); } } } // handle exceptions catch(org.omg.corba.systemexception e) { System.err.println("System Exception"); System.err.println(e); } Count Client Programm cs 1144 ww6 wgs 03-99

38 Schritte zur Programmausführung 1. Erstellung der Dateien Count.idl CountClient.java CountServer.java CountImpl.java Programmieren der CORBA Anwendung 2. idl2java Count.Idl Aufruf des IDL Compilers Es werden die Schnittstellen Beschreibungen in Java erzeugt 3. javac CountClient.java compiliert die *.java javac CountServer.java Programme, erzeugt javac CountImpl.java *.class Programme 4. start osagent startet den Name Server 5. start java CountServer startet den Server 6. java CountClient ruft das Klienten Programm auf. cs 1147 wgs 03-99

39 cs 1182 ww6 wgs 06-98

40 <h1>count Client Applet</h1> <hr> <center> <APPLET CODE=CountClientApplet.class WIDTH=300 HEIGHT=60 CODEBASE=classes> <param name=org.omg.corba.orbclass value=com.visigenic.vbroker.orb.orb> </APPLET> </center> <hr> HTML Code für den Count Client Applet Aufruf cs 1155 ww6 orfali p

41 Common Object Services (COS) Common Object Services sind modulare zusätzliche CORBA System-Dienstleistungen, welche die Funktionalität des ORB ergänzen. Sie stellen Bausteine für die Anwendungsentwicklung dar. Es existieren Spezifikationen der OMG für: Naming Service Persistence Service Speicherung von Objekten in relationalen oder Objekt Datenbanken oder einfachen Dateien Concurrency Lock Manager Dienste für Transaktionen oder Threads Transaction Service Two-Phase Commit Koordination für flache oder nested Transactions sowie weitere Dienste wie Security, Message, Time, Event, Trader,... cs 1135 ww6 wgs 06-97

42 Persistenz Persistente Objekte existieren permanent außerhalb des Gültigkeitsbereichs des Programms, das sie erzeugt hat. Persistenz wird implementiert, indem der Status (die Attribute) eines Objekts zwischen den einzelnen Programmausführungen gespeichert wird. Wenn das Objekt erneut benötigt wird, wird es aus seiner gespeicherten Form wieder hergestellt. Der Herstellungsprozeß erzeugt ein neues Objekt, das mit dem ursprünglichen identisch ist. Das wiederhergestellte Objekt ist zwar nicht das selbe Objekt, aber sein Status und sein Verhalten sind identisch. Das Objektmodell macht zunächst keine Annahmen über die permanente Speicherung der Objekte. Konzeptuell können Objekte in einer Objektdatenbank (z.b. POET) gespeichert werden. In der Praxis werden SQL (oder IMS oder VSAM) Daten als Objekte gekapselt; der Zugriff erfolgt z.b. über eine JDBC (Java Data Base Connectivity) Schnittstelle. Bei der Persistenz werden den gespeicherten Daten alle Objektattribute (etwa Klassenname, Feldname und Zugriffs- Modifier) zugeordnet, so daß verhindert wird, daß die Daten versehentlich mit einem falschen Objekttyp abgelegt werden. cs1171 ww6 wgs 11-98

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm Spruth SS 2005 Teil 15 CORBA cs 1000 ww6 wgs 05-97 Wiederverwendbarkeit von Code Vorbild: Entwurf/Bau einer Brücke im Bauingenieurwesen Objekttechnologie ermöglicht

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

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

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

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Remote Method Invocation Teil 1

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Remote Method Invocation Teil 1 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 1 Object Request Broker el0100 copyright Abt. Technische

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

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

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

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

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

Ü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

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

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

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

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

Kap. 3 Verteilte Objektverwaltung

Kap. 3 Verteilte Objektverwaltung Kap. 3 Verteilte Objektverwaltung 3.1 Einführung in die verteilte Objektverwaltung (Distributed Object Management, DOM) Anforderungen Kurzübersicht Java RMI Microsoft COM+ CORBA 3.2 Der CORBA-Standard

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

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

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

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

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

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

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

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

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT SWT II Projekt Chat - Anwendung Pflichtenheft 2000 SWT i Versionen Datum Version Beschreibung Autor 3.11.2000 1.0 erste Version Dietmar Matthes ii Inhaltsverzeichnis 1. ZWECK... 1 1.1. RAHMEN... 1 1.2.

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Java RMI, CORBA und Firewalls

Java RMI, CORBA und Firewalls Java RMI, CORBA und s Lehrstuhl für Datenverarbeitung falk@ei.tum.de Verteilte Objekte s Probleme Lösungsmöglichkeiten Konkrete Lösungen Verteilte Objekte Client mehrere Objekte Methoden-Aufruf Antwort

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

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

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

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

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,

Mehr

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release White Paper Konfiguration und Verwendung des Auditlogs 2012 Winter Release Copyright Fabasoft R&D GmbH, A-4020 Linz, 2011. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen

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

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

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

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

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Kap. 3 Verteilte Objektverwaltung

Kap. 3 Verteilte Objektverwaltung Kap. 3 Verteilte Objektverwaltung G 3.1Einführung in die verteilte Objektverwaltung (Distributed Management, DOM) Anforderungen Kurzübersicht Java RMI Microsoft COM+ CORBA G 3.2Der CORBA-Standard G 3.3Iona

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

How-to: Webserver NAT. Securepoint Security System Version 2007nx

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

7.4 Verteilungsabstraktion in heterogener Umgebung

7.4 Verteilungsabstraktion in heterogener Umgebung 7.4 Verteilungsabstraktion in heterogener Umgebung Szenario: reiner Maschinencode (native code) bei unterschiedlichen Rechnerarchitekturen, unterschiedlichen Betriebssystemen, unterschiedlichen Übersetzern,

Mehr

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig Von ODBC zu OLE DB Neue Möglichkeiten der Datenintegration Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig Von ODBC zu OLE DB Begriffsbestimmung ODBC, OLE DB, COM, ADO... Unterschiede zwischen

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

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

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

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

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

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

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Kapitel 6. Vererbung

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

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren

Mehr

CORBA Portable Object Adapter (POA) am Beispiel von Visibroker 4. Sven Harazim

CORBA Portable Object Adapter (POA) am Beispiel von Visibroker 4. Sven Harazim CORBA Portabe Object Adapter (POA) am Beispie von Visibroker 4 Sven Harazim Übersicht Einführung in CORBA Portabe Object Adapter (POA) Erzeugen und Aktivieren von Objekten Servant Manager und POA Manager

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Veröffentlicht Januar 2009 Copyright 2009 Helmut Schottmüller Inhaltsverzeichnis 1.

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Windows 2008R2 Server im Datennetz der LUH

Windows 2008R2 Server im Datennetz der LUH Windows 2008R2 Server im Datennetz der LUH Anleitung zur Installation von Active Directory und DNS auf einem Windows 2008R2 Server. Zu einem funktionierenden Active-Directory-Server gehört ein interner

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS Oktober 2015 Tipp der Woche vom 28. Oktober 2015 Aufruf der Weboberfläche des HPM-Wärmepumpenmanagers aus dem Internet Der Panasonic

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Virtual Private Network

Virtual Private Network Virtual Private Network Allgemeines zu VPN-Verbindungen WLAN und VPN-TUNNEL Der VPN-Tunnel ist ein Programm, das eine sichere Verbindung zur Universität herstellt. Dabei übernimmt der eigene Rechner eine

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand: 28.05.2014

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand: 28.05.2014 robotron*e count robotron*e sales robotron*e collect Anwenderdokumentation Version: 2.0 Stand: 28.05.2014 Seite 2 von 5 Alle Rechte dieser Dokumentation unterliegen dem deutschen Urheberrecht. Die Vervielfältigung,

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr