Projektstudium SS98 - distributed computing


Vorteile der CORBA-Programmierung für Java-Programmierer

Java unterstützt die Entwicklung von verteilten Anwendungen nicht direkt. Die einzige Möglichkeit zur Implementierung von verteilten Anwendungen, die direkt in Java unterstützt wird, ist die Verwendung der Netzwerk-Library Klassen im Package java.net. Diese Klassen bieten eine API für das Handling von URLs und eine API für UDP/IP und TCP/IP-Sockets.

Die URL-API bietet einen high-level Zugriff auf Web-Ressourcen. So bietet sie beispielsweise einen Mechanismus an, mit dem ein Dokument, das in einer URL spezifiziert ist, unter Verwendung des in der URL spezifiziertem Protokolls, holen kann. Die API bietet also die gleiche Harangehensweise bezüglich verteilten Anwendungen wie ein Browser. Entweder wird ein Dokument vom Remote Server geladen oder es wird das Common Gateway Interface zum Aufruf eines Programmes auf einem HTTP-Server verwendet, der ein HTML Dokument erzeugt.

UDP/IP und TCP/IP Sockets sind low-level Abstraktionen, die Zugang zu Transportprotokollen bieten. Die Socket-API bietet weder distribution transparency noch Connection Management.

Die Java-Bindung für OMG IDL bietet eine Anwendungsentwicklungsumgebung mit CORBAs high-level Distributed object Paradigmen:

 

 

Interfaces, die unabhängig von der Implementation definiert werden

Die OMG Inteface Definition Language ( OMG IDL) ermöglicht Interfaces von ihrer Implementation zu trennen. Diese Trennung erweist sich insbesondere bei Software-Engineering-Prozessen als nützlich. Software-Designs, die auf objektorientierten Design Methoden wie beispielsweise OMT basieren können in OMG IDL ausgedrückt werden. Wenn erst mal die Komponenten in IDL definiert sind, können sie von verschiedenen Teams unabhängig voneinander implementiert werden.

 

Zugriff auf Objekte, die in einer anderen Programmiersprache definiert sind

CORBA unterstützt multiple language mappings für OMG IDL so daß die einzelnen Komponenten eines Systems oder einer Anwendung in verschiedenen Programmiersprachen implementiert werden können. Sämtliche Interaktionen zwischen den einzelnen Komponenten erfolgen durch Interfaces, die unabhängig von der verwendeten Programmiersprache spezifiziert sind.

 

Zugriff auf Objekte ohne Beachtung ihren Aufenthaltortes

Socket- oder URL-basierte verteilte Anwendungen benötigten zur Adressierung eines Servers einen Host-Name und eine Port-Nummer. Im Gegensatz dazu bietet CORBA eine sogenannte location transparency, was bedeutet das ein Objekt unabhängig von seinem physikalischem Aufenthaltsort identifiziert wird und seinen Aufenthaltsort ohne Unterbrechung einer Anwendung verändern kann. Die hierfür benötigten Mechanismen werden vom Object Request Broker (ORB) zu Verfügung gestellt.

Zusätzlich bietet CORBA einen Mechanismus zum Starten von Services auf Verlangen, was durch verschieden Server-, Aktivations- und Verwaltungsstrategien kontrolliert werden kann

 

Automatische Code-Generierung für den Umgang mit remote invocations

Verteilte Anwendungen benötigen eine Reihe von sich wiederholenden Programmieraufwand wie beispielsweise:

 

IDL-Compiler und ORB Run-Time-Systeme befreien Anwendungsprogrammierer von diesen Aufgaben. IDL-Compiler erzeugen Representanten der IDL-definierten Konstrukte wie beispielsweise Konstanten, Datentypen ind Interfaces in bestimmten language bindings wie beispielsweise C++ oder Java. Sie erzeugen außerdem Code zur Konversion der vom Benutzer definierten Datentypen. Bibliotheken werden zur Unterstützung von vordefinierten CORBA-Typen zur Verfügung gestellt.

 

Zugriff zu Standard-Corba Services

Der ORB stellt Möglichkeiten für die distribution-transparent invocation von Methoden auf potentielle remote Objekten zur Verfügung. Typischer Weise setzen verteilte Anwendungen, die als nicht trivial bezeichnet werden können, zusätzliche Funktionalität voraus . Innerhalb der OMG, wurden diese Vorraussetzungen anlaysiert und haben zu einer entsprechenden Spezifikation der koorespondierenden fundamentalen Services geführt. Diese fundamentalen Services wurden als CORBAservices veröffentlicht.

 

Herstellerunabhängigkeit durch ORB Interoperabilität

Die zur Zeit aktuelle Version von CORBA (CORBA 2.0) spezifiziert Möglichkeiten durch die Objekte die unter Verwendung verschiedener ORB-Implementierungen implementiert werden, interoperieren können. Dies beinhaltet Adressierung zwischen interoperablen Objekt-Referenzen und eine Protokollhierarchie. Diese Interoperabilität erlaubt eine gewisse Unabhängigkeit von ORB-Hersteller-Produkten. Jede Anwendung, die mit einem CORBA2.0 unterstützenden ORB erstellt wird, kann Komponenten integrieren, die unter einem anderem interoperablen ORB entwickelt wurden.

 

nächste Seite 


© Copyright 1998 André Möller, Oliver Mentz & Magnus Wiencke