DI Christian Donner cd (at) donners.com

Slides:



Advertisements
Ähnliche Präsentationen
DI Christian Donner cd (at) donners.com
Advertisements

Software Engeniering II
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.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
- 0 - Sicherheit Copyright ©2001 Granitar Incorporated. All rights reserved. Architektur Moderner Internet Applikationen TU Wien/Ausseninstitut.
Inhalt – Technische Grundlagen
:33 Internet Applikationen – Hard und Softwareplattform Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
:33 Architektur Moderner Internet Applikationen – Hard- und Software Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur.
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Imperative Programmierung -Entwicklungswerkzeuge
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Internetzugriff mit Strings und Streams
Ausnahmen 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: Objektorientierte Programmierung
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
MD 5/02 CORBA Lebensdauer von Objekten, Transaktionen.
MD 4/02 Hello World from CORBA ein erster Überblick.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Philipp Ciechanowicz 5. Übung zu Software Engineering WS 2007/2008.
JAVA RMI.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Seminar Internet Technologien
Remote Methode Invocation (RMI)
Packages Vortrag : Cornelia Hardt 23. November 1999.
Einführung in C EDV1 - 03C-Einführung.
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.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Bestimmung des ggT zweier Zahlen
Rechnernetze und verteilte Systeme (BSRvS II)
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.
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
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“
Wir bauen uns eine Webapplikation!
Einführung in die Programmiersprache Java
Die .NET Common Language Runtime
Monitoring von Geräten und Diensten Projektgruppe Location-based Services for Wireless Devices WS 2004/05 Tobias Beisel AG Kao Betriebssysteme und Verteilte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
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.
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.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Stellen Sie nochmals statischen und dynamischen Methodenaufruf gegenüber.
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
7.1.5 Java RMI – Remote Method Invocation
Oliver Spritzendorfer Thomas Fekete
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Reinhard Stumptner Seminar Softwareentwicklung Dynamisches Laden und Binden in Java.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Einführung in Web Services Web Services in der Praxis
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Aufbau Integrierter Informationssysteme Verteilte Objektsysteme am Beispiel von CORBA Falk Ritschel, Stefan Springer, Falko Steponat Martin-Luther-Universität.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
 Präsentation transkript:

DI Christian Donner cd (at) donners.com Architektur Moderner Internet Applikationen 22.-24.4.2004 TU Wien/Ausseninstitut CORBA als Bindeglied zweier Welten JAVA und .NET DI Christian Donner cd (at) donners.com 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

CORBA Agenda Einordnung und Bedeutung von CORBA IDL – Interface Definition Language Funktionsweise ORB – Object Request Broker Ein praktisches Beispiel 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Einordnung von CORBA Der CORBA Standard ist unabhängig von Java und .NET und stammt aus der Mitte der 90er Jahre Trotzdem hat es heute noch Bedeutung als Mechanismus zur Objektkommunikation zwischen verschiedenen Plattformen mit breiter Unterstützung der Hersteller (vgl. IIOP/RMI) Im Prinzip handelt es sich bei CORBA um eine Weiterentwicklung des Remote Procedure Calls (RPC) für OO Sprachen OMG – Object Management Group - ist ein Industriekonsortium, das die Standardisierung betreibt. Siehe www.omg.org. 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

IDL Wie kann man sicherstellen, daß ein Methodenaufruf über Sprach- und Maschinengrenzen hinweg verstanden wird? Man definiert den kleinsten gemeinsamen Nenner und beginnt in der Mitte: IDL (Interface Definition Language) Legt die Methodennamen, Parameter und Typen fest Sprachunabhängig Jede Plattform benötigt einen IDL Compiler, der aus der IDL Definition den Stub- und Skeleton Code generiert und die Datentypen konvertiert. Ein ORB (Object Request Broker) kümmert sich transparent um die Lokalisierung von Objekten und den Transport der Daten. Stub und Skeleton Code sind mit dem ORB verdrahtet, ohne daß der Programmierer sich um die Implementierung kümmern muß. Als Stub Code bezeichnet man den Code, der am Client das Serverobjekt repräsentiert. Als Skeleton bezeichnet man das Programmskelett, das für die Serverimplementierung generiert wird. 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Funktionsweise Der Client erhält letzlich vom ORB einen Objektzeiger, der wie ein lokaler Zeiger behandelt werden kann. CORBA stellt im Hintergrund sicher, daß ein Methodenaufruf an die tatsächliche Instanz weitergeleitet wird. Wie findet der Client ORB ein angefordertes Objekt? IOR Datei (“stringisierte” Objektreferenz enthält Namen und Aufenthaltsort) JNS Directory Java 1.4 brachte POA – Portable Object Adapter aus CORBA 2.2 Spezifikation Up to CORBA 2.1, the only standard object adapter defined by the Object Management Group (OMG) is the Basic Object Adapter (BOA), which provides basic services to allow a variety of CORBA objects to be created. ORB vendors and developers, however, discovered that the BOA is ambiguous and missing some features. This led vendors develop their own proprietary extensions, which resulted in poor portability between different ORB implementations. The new standard object adapter is the Portable Object Adapter (POA), which provides new features that allow developers to construct object implementations that are portable between different ORB products supplied by different vendors. The POA acts as a mediator between the ORB and the server application. The client invokes the request using a reference that refers to the target object. The request is then received by the ORB, which will dispatch the request to the POA that hosts the target object. The POA will then dispatch the request to the servant, which subsequently carries the request and sends the results back to the POA, to the ORB, and finally to the client. Since an application may have multiple POAs, in order for the ORB to dispatch the request to the right POA, it uses an object key, which is an identifier that is part of the request that is kept in the object reference. One part of the object key called the object ID is used by the POA to determine an association (such associations might be stored in a map) between the target object and a servant. 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

ORB Funktionsweise 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Ein Verteiltes System 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Beispiel: Hello Vienna Ein Java Programm ruft ein C# Objekt und übergibt einen String Das C# Objekt gibt den String auf der Konsole aus Verwendete Software MiddTec’s MiddCor C# ORB Implementierung Sun Java 2 SDK 1.4 (enthält einen ORB) Visual Studio .Net Hello.idl: module MiddCorSample { interface Greetings string hello( in string a_strName); }; 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Server IdlToCSharp.cmd ruft MiddCorIdl –> hello.cs HelloSrv.cs: public class GreetingsImpl: GreetingsPOA { public override string hello( string a_strName ) System.Console.WriteLine("\nFunction 'Hello', Parameter '{0}'\n", a_strName); } Starten des Servers und POA, Erzeugen einer Objektinstanz zur Beantwortung von Anfragen: class Server { static void Main(string[] args) MiddTec.CORBA.ORB oOrb = MiddTec.CORBA._ORB.init( args, null); // Get the ROOT-POA MiddTec.PortableServer.POA oRootPOA = MiddTec.PortableServer.POAHelper.narrow( oOrb.resolve_initial_references( "RootPOA" )); // Activate POA oRootPOA.the_POAManager.activate(); // Our implementation of the Greetings Interface GreetingsImpl oGreetings = new GreetingsImpl(); // Create CORBA object reference MiddTec.CORBA.Object obj = oRootPOA.servant_to_reference( oGreetings); // Write IOR-File MiddTec.CORBA._ORB.wrIORtoFile( "c:\\hello.ior", obj ); System.Console.WriteLine("Server is running ...\n" ); oOrb.run(); } 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Client idlj compiler erzeugt Stub code GreetingsClient.java public class GreetingsClient { public static void main(String args[]) throws IOException //initialize ORB ORB orb = ORB.init(args, null); // helper method reads IOR String from a file String ior = ReadIORFile("c:\\hello.ior"); // resolve string object reference org.omg.CORBA.Object obj = orb.string_to_object(ior); // narrow down object type Greetings proxy = GreetingsHelper.narrow(obj); //invoke methods proxy.hello("Vienna"); } Die Methode ReadIORFile ist trivial und nicht aufgelistet. Exception Handling wurde zur besseren Lesbarkeit aus dem Code entfernt. 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Ausführen start orbd -ORBInitialPort 1050 -ORBInitialHost localhost HelloSrv.exe Der Server erzeugt die Datei c:\hello.ior und wartet auf Anfragen java GreetingsClient -ORBInitialPort 1050 -ORBInitialHost localhost Der Client liest die Datei c:\hello.ior Die Objektreferenz wird korrekt aufgelöst, der Sun ORB findet den MiddTec ORB und der Server gibt den String aus Inhalt von hello.ior: IOR:010000001a00000049444c3a4578616d706c652f4772656574696e67733a312e3000000001000000000000006c000000010102000a00000063687269737469616e00d2042a000000526f6f74504f412f2d4d542d2f4578616d706c652e4772656574696e6773496d706c2f31333438333934000001000000010000001c00000001000000010001000100000001000105090101000100000001000105 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

Vielen Dank für Ihre Aufmerksamkeit! 26.03.2004 Internet Applikationen – CORBA Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.