Kommunikation


... [ Seminar Linux und Apache] ... [ Thema GNOME Komponentenmodell ] ... [ Orbit ] ... 

Übersicht: Verschiedene Programmiersprachen


Probleme

Ein Projektziel von GNOME war es unabhängig von der Programmiersprache zu sein. In diesem Zusammenhang  steht das  Projekt vor einem Problem. Wie kommunizieren zwei Applikationen miteinander, die in verschiedenen Programmiersprachen geschrieben wurden?
Früher wurden Protokolle für die Kommunikation zwischen Applikationen entwickelt. Mit dieser Lösung wollte man nicht vorlieb nehmen.
Außerdem wollte man Funktionalität von GNOME Applikationen nach außen exportieren.
"Alte" Skripte sollten ebenfalls einbindbar werden.   Unix ist immer wieder dafür gelobt worden, dass es dem Benutzer einfach macht, eine Reihe von kleinen Filterprogrammen (wie grep oder sed) zu benutzen und sie mittels Pipes zu verbinden, um eine komplexere, dem jeweiligen Bedarf angepaßte Applikation zu erzeugen. Leider lassen sich Pipes und Filter nicht sehr gut auf komplexere Applikationen (insbesondere graphische Applikationen) übertragen. GNOME ist eine Umgebung, in der Softwareobjekte miteinander auf eine standardisierte Art und Weise kommunizieren können (auch in einem Netzwerk), ohne etwas voneinander wissen zu müssen. Dies wird durch den CORBA- Unterbau von GNOME ermöglicht.
 


CORBA

CORBA ist keine Software, sondern ein Standard der OMG (Object Management Group).
Es ist ein serverseitiges Komponentenmodell, welches Ähnlichkeiten zu Enterprise Java Beans hat. Es ermöglicht wie der Remote Procedure Call (RPC)  die Nutzbarmachung von Teilfunktionalitäten anderer Applikationen. Es ist im Gegensatz zu RPC aber objektbasiert.
Theoretisch kann eine Applikation die Teilfunktionalität einer anderen Applikation benutzen, wenn die andere Applikation auf einer anderen Rechnerarchitektur, auf einem anderen Betriebssystem, in einer anderen Programmiersprache und mit einer anderen Compiler Version entstanden ist.

Allgemein :

Die IDL ist lexikalisch an C++ angelehnt und ist die Sprache zur Definitionen von Schnittstellen (Parameter, Attribute, Exception usw.).
Sie repräsentiert den kleinsten gemeinsamen Nenner der Applikationen.

Der ORB organisiert die Aufrufe teilt Referenzen zu und bietet die Transparenz für entfernte Aufrufe.
Diese Transparenz bedeutet transparenz bezüglich :

Kommunikation


1. Client - Objekt

2. Server - Objekt

3. Schnittstellen

4. Objektadapter


Komponenten (2)

Die Elemente eines Komponentenmodells wurden in Kapitel 1 bereits aufgezeigt. Wie diese Elemente auf CORBA Komponenten  realisiert sind wird nun eingegangen.

Corba und GNOME

Gnorba ist das GNOME CORBA Framework und es ermöglicht Applikationen auf einfache Art und Weise ORBit den speziell für GNOME entwickelten ORB zu benutzen.
ORBit wurde entwickelt, weil die auf den Markt befindlichen Broker zu ressourcenhungrig und schwerfällig waren.
CORBA ist eine mächtige Spezifikation, mit der man alles machen kann. GNOME macht sich hauptsächlich folgende Dienste nutzbar:



... [ Seminar Linux und Apache] ... [ Thema GNOME Komponentenmodell ] ... [ Kommunikation ] ... [ Orbit] ...