MD 4/02 Hello World from CORBA ein erster Überblick.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
C ommon O bject R equest B roker A rchitecture
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Imperative Programmierung -Entwicklungswerkzeuge
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Komponentenbasierter Taschenrechner mit CORBA
MD 5/02 CORBA Lebensdauer von Objekten, Transaktionen.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Konstruktoren.
Objekte und Arbeitsspeicher
Objektorientierte Programmierung JDK-Klassenbibliothek
Philipp Ciechanowicz 5. Übung zu Software Engineering WS 2007/2008.
Einführung in die Programmierung mit Java
Programmieren mit JAVA
Programmieren mit JAVA
JAVA RMI.
Common Object Request Broker Architecture (CORBA)
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Remote Methode Invocation (RMI)
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
UML Begleitdokumentation des Projekts
Common Object Request Broker anhand eines Beispiels Aufgabestellung ( Ein Konto wird von einem Server verwaltet. Der Stand des Kontos wird.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache Java
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Teil II Objekte ergeben ein Ganzes
Java und Eclipse.
Kap. 4 Der Corba-Standard zur verteilten Objektverwaltung
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Stellen Sie nochmals statischen und dynamischen Methodenaufruf gegenüber.
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
7.1.5 Java RMI – Remote Method Invocation
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Vortrag - Diplomarbeiten (HS I)
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Realisierung verteilter Anwendungen: Teil 3 zBeim vorigen Mal: Sockets, RMI zInhalt heute yCommon Object Request Broker Architecture (CORBA) zLernziele:
Aufbau Integrierter Informationssysteme Verteilte Objektsysteme am Beispiel von CORBA Falk Ritschel, Stefan Springer, Falko Steponat Martin-Luther-Universität.
Hello World! Javakurs 2013 Arne Kappen
Implementieren von Klassen
 Präsentation transkript:

MD 4/02 Hello World from CORBA ein erster Überblick

MD 4/02 Aufruf einer Objekt-Methode Client Objekt- Implementation getTemperature() Thermometer th = new Thermometer(); double t = th.getTemperature(); th enthält eine Objekt-Referenz im Objekt, auf das die Referenz th zeigt, wird die Methode getTemperature() aufgerufen, die einen Fließkomma- Rückgabewert liefert Thermometer

MD 4/02 Aufruf einer Objekt-Methode über Rechnergrenzen hinweg Client Objekt- Implementation getTemperature() Netzwerk CORBA......ist ein System, bei dem das Klienten-Programm nur geringfügig abgeändert werden muss - Programmieren wie mit lokalen Objekten: objref.getTemperature()...kümmert sich selbsttätig um den Aufbau der Netzwerk- Verbindungen...vergibt für jedes aufrufbare Objekt eine Interoperable Object Reference (IOR), eine netzwerkweit eindeutige Referenz Thermometer

MD 4/02 Was ist CORBA? Common Object Request Broker Architecture Object Request Broker (ORB) sind Systeme, die Methoden- Aufrufe weitervermitteln ORBs können über Netzwerke miteinander kommunizieren Die CORBA-Spezifikationen der OMG umfassen u.a.: –Inter-ORB-Protokoll –Interoperable Object Reference (IOR) – Objekt-Referenzen, die Routing- Informationen enthalten, damit ORBs weitervermitteln können –Programmiersprachen-unabhängige Beschreibung von Objekt- Schnittstellen (Interface Definition Language IDL) –CORBAservices – grundlegende Dienste mit festgelegten IDL- Beschreibungen

MD 4/02 Object Management Group (OMG) 1989 von 3Com, American Airlines, Canon, Data General, Hewlett-Packard, Philips, Sun und Unisys gegründet inzwischen ein großes IT-Konsortium mit über 800 Mitgliedern (im Jahr 2000) Ziele: –Verbreitung des objekt-orientierten Ansatzes in der Software-Entwicklung –Entwicklung von grundlegenden Technologien, die die Herstellung von verteilten objekt-orientierten Anwendungen ermöglichen UML

Client ORB Core IDL Stub ORB Interface IDL Skeleton Object Adapter Object Implementation Vereinfachtes Modell der ORB Architektur

Client IDL Stub ORB Interface ORB Core ORB Interface IDL Skeleton Object Adapter Object Implementation ORB Core Internet Inter-ORB Protocol (IIOP) Inter-ORB Kommuniktion

Client IDL Stub ORB Interface IDL Skeleton Object Adapter Object Implementation Vereinfachtes Modell der ORB Architektur ORB Core Interface Description

MD 4/02 Bestandteile von CORBA Schnittstellen-Beschreibung –eigene Beschreibungssprache: IDL (Interface Definition Language) Stub –aus der Schnittstellen-Beschreibung automatisch generierte Proxy- Objekte, in denen der Klient Methoden aufruft Skeleton –aus der Schnittstellen-Beschreibung automatisch generierte Objekte, die Methoden der Objekt-Implementation aufrufen ORB –leitet Objekt-Anfragen weiter Object Adapter –verwaltet Objekt-Instanzen (Servants) –kann Objekte bei Bedarf aktivieren

MD 4/02 Programmiersprachenunabhänigige Beschreibung von Schnittstellen: IDL eigene Beschreibungssprache ist sinnvoll –Unabhängigkeit von der Implementierungssprache - z.B. können Java- Anwendungen mit C++-Objekten kommunizieren –IDL bewahrt den Programmierer davor, zu viele sprachspezifische Features einzusetzen Language Mapping –wird für die automatische Generierung von Code benötigt –damit nicht jeder ORB-Hersteller eine eigene Form von Stub- und Skeleton-Objekte erzeugt, ist deren Inhalt größtenteils von der OMG festgelegt –es gibt Festlegungen für C, C++, COBOL, Smalltalk, Ada95, Java, Lisp, Python

MD 4/02 Language Mapping IDL-Java // IDL module ExampleA { interface Thermometer { readonly attribute double temperature; }; IDLJava modulepackage interface attribute double temperaturedouble temperature(); void temperature(double t);

MD 4/02 Abbildung der IDL-Datentypen in Java IDL DatentypJava boolean char / wcharchar string / wstringjava.lang.String octetbyte short / unsigned shortshort long / unsigned longint long long / unsigned long longlong float double fixedjava.math.BigDecimal

MD 4/02 Der IDL Compiler Der IDL-Compiler erzeugt aus einer IDL-Datei mehrere Java-Dateien Beispiel: für ein Interface Thermometer existieren nach dem Aufruf des Compilers u.a.: –Thermometer.java – ein Interface, welches von org.omg.CORBA.Object Funktionalität erbt –ThermometerHelper.java – Hilfsfunktionen (z.B. narrow) –ThermometerHolder.java – Hilfsklasse für Parameter-Übergabe (Java- spezifisch) –ThermometerOperations.java – Abbildung der IDL-Beschreibung in Java

MD 4/02 Portable Object Adapter (POA) für den Server-Teil erzeugt der IDL-Compiler zusätzlich: –ThermometerPOA.java – Servant-Klasse, die vom Programmierer erweitert werden muss (Skeleton) –wahlweise zusätzlich ThermometerPOATie.java – leitet die Servant- Anfragen an ein anderes Objekt weiter – wird benötigt, wenn die Servant-Klasse nicht selbst vom generierten POA-Skeleton ableiten kann die Programmierung von Servant-Klassen ist seit der Einführung des POA-Modells nicht mehr von der Implementation des ORBs abhängig POA gibt es im Java2 SDK erst ab Version 1.4.0

MD 4/02 narrow-Methode der Helper-Klasse Normale Java-Objekte: Object obj = new String("Hallo"); String s = (String) obj; CORBA-Objekte: org.omg.CORBA.Object obj = orb.string_to_object(ior); Thermometer th = ThermometerHelper.narrow(obj);

MD 4/02 Das CORBA-Beispiel Es wird lediglich das Java2 Software Development Kit in der Version >= benötigt Windows: –Java2 z.B. in das Verzeichnis D:\J2SDK1.4.0 installieren –PATH-Variable so abändern, dass die Java-Binärdateien als erstes gefunden werden: set PATH=D:\J2SDK1.4.0\BIN;%PATH% Linux: –auf den HPI-Linux-Pool-Rechnern ist Java2 im Verzeichnis /usr/local/j2sdk1.4.0 installiert –PATH-Variable so abändern, dass die Java-Binärdateien als erstes gefunden werden: PATH=/usr/local/j2sdk1.4.0/bin:$PATH Examples.zip (Beispielprogramme) auspacken (Linux-Befehl: unzip)

MD 4/02 Das CORBA-Beispiel: Thermometer Klient möchte die Temperatur des Thermometers abfragen das Thermometer-Objekt stellt dafür eine Schnittstelle zur Verfügung Client Objekt- Implementation temperature() Thermometer

MD 4/02 Naming Service org.omg.CosNaming.NamingContext –bind, rebind: Speichert eine Objekt-Referenz (IOR) unter einem Namen (lesbarer Text-String) –resolve: Sucht in der internen Liste nach dem Namen und gibt die zugehörige Objekt-Referenz zurück Das Java2 SDK enthält die Anwendung orbd, die u.a. einen solchen NamingService implementiert Wichtig: Portnummer, unter der der Naming Service zu erreichen ist: orbd -ORBInitialPort 2809 andere Anwendungen sollten bei der Initialisierung ihres ORBs -ORBInitialPort und -ORBInitialHost setzen einfacher: Benutzung des Interoperable Naming Service (INS) z.B.: "corbaname::localhost:2809#Therm002"

MD 4/02 Vererbung in IDL Syntax ist C++-ähnlich die IDL-Datei der abzuleitenden Klasse muss mit #include geladen werden #include "ExampleB.idl" module ExampleC { interface Thermometer : ExampleB::Thermometer { double getTemperatureInUnit (in ExampleB::TempUnit tUnit); };