Title:

Client-/Server-Architektur und Internet

Home
deutsch
  
ISBN: 3908497426   ISBN: 3908497426   ISBN: 3908497426   ISBN: 3908497426 
 
|<< First     < Previous     Index     Next >     Last >>|
  Wir empfehlen:       
 

 

CORBA

Ein wenig mehr ins Detail möchte ich nun bei CORBA gehen. CORBA steht für Common Object Request Broker Architecture und ist ein von der OMG (Object Modelling Group) gewarteter offener Standard. Die OMG ist ein Konsortium von über 800 Mitgliedern (die meisten aus der Industrie) unter denen sich nahmhafte Unternehmen wie 3Com, Canon, Hewlett-Packard, Microsoft, Philips, Sun Microsystems und viele andere befinden. Die Ziele von CORBA sind plattform- firmen- und programmiersprachenunabhängiges RPC. Die Offenheit und Unabhängigkeit wird dadurch erreicht, daß sich das Konsortium nur mit der Spezifikation des Systems und nicht mit der Implementierung beschäftigt. Die (mehrere tausend Seiten lange) Spezifikation steht jedem Interessierten frei zur Verfügung.

Wie setzt man CORBA ein

Um CORBA in eigenen Client/Server Anwendungen einzusetzen sind folgende grundlegende Schritte nötig.

  • Spezifikation einer Schnittstelle : Eine Schnittstelle in Form von Prozeduraufrufen muss spezifiziert werden. Diese Schnittstelle wird in einer Schittstellendefinitionssprache namens IDL (Interface Definition Language) notiert. IDL bietet die Möglichkeit die Grunddatentypen string (Unicode Texte beliebiger länge), verschiedene numerische Typen (die auf den meisten Plattformen üblichen Bittiefen als Integer und teilweise auch als Fliesskommazahlen, teils mit oder ohne Vorzeichen), und boolsche Werte. Ferner können Enumerationstypen selbst definiert werden. Man gibt dabei eine Liste von erlaubten Literalen vor (beispielsweise ROT, GRÜN und BLAU als erlaubte Farben). Es können Aggregationsstrukturen (ähnlich der "struct" in C) bereits definierter Typen definiert werden. Ferner können noch Fehler für Prozeduraufrufe definiert werden und nicht zuletzt Objekte als Ansammlung von Prozeduren und Parametern. Vererbung ist bei Objekten zulässig. Prozeduren haben eine feste Anzahl typisierter Parameter und einen typisierten Rückgabewert. Es muss auch spezifiziert werden, welchen Fehler auftreten können. Parameter werden mit den Zugriffsmodifikatoren "in", "out" und "inout" versehen. Diese Modifikatoren geben an, ob die Parameter von der Prozedur gelesen, geschrieben oder beides werden. All diese definitionen werden in Modulen (mit jeweils eigenen Namensräumen) zusammengefasst. Module können hierarchisch in Paketen (ebenfalls mit eigenen Namensräumen) liegen.
  • Implementierungssprachenabhängige Schnittstellen generieren :
    • Clientseitig : Ein übersetzungswerkzeug welches Teil des verwendeten CORBA-Frameworks (Beispiele hier sind JACORB für Java, FNORB für Python, VISIBROKER von Borland u.v.a.) ist, kann nun Methoden in der Zielsprache erzeugen, welche den Implementierern des Clients zur Verfügung stehen. Es wird komplett über das zugrunde liegende Protokoll verwendet. Die hier erzeugten Klassen, Methoden oder Funktionen (was erzeugt wird ist Implementierungssprachen abhängig) werden "Stubs" genannt und verwenden die Plattform- und Zielsprachenspezifischen Varianten der im IDL-Interface definierten Typen und Fehlerbehandlungsmechanismen.
    • Serverseitig : Ein Übersetzungswerkzeug erzeugt Implementierungsschnittstellen und serverseitige Protokollimplementierungen. Bei den Implementierungsschnittstellen handelt es sich in Java beispielsweise um java-"interface"s, in C um ".h" header-Dateien. Die Schnittstellen sind von den Implementierern des Servers zu implementieren und werden von der Serverseitigen Protokollimplementierung aufgerufen. Hier ist das zugrundeliegende Protokoll, die Netzwerkadresse (falls nötig) und sonstige verbindungsrelevante Daten für den Programmierer völlig transparent.
  • Referenzierung : Jedes CORBA-Objekt erhält bei seiner Instantiierung einen einmaligen Identifikator, die sog. IOR. Aus diesem Identifikator lassen sich Ort, zu verwendendes Protokoll und alle nötigen Informationen erzeugen, um eine funktionierende Kommunikation aufzubauen. Solche IDs werden üblicherweise von sog. Nameservern verwaltet, bei denen Clients Referenzen auf Serverobjekte anfordern können. Nameserver implementieren selbst ein standardisiertes IDL-Interface.

Hier nun ein kleines IDL Beispiel um sich ein Bild von der Syntax machen zu können.

IDL Beispiel

/*Comments may be written like in C++ or Java*/
module HelloWorld { //a package
interface HelloServer { //a class
attribute integer priceOfService; //instance variable
exception OutOfOrder{string explanation}//defining an error
string sayHello(in short howOften) //simple function
raises (OutOfOrder); //sayHello may raise an error
}
}

Protokolle

Um Plattform- und Herstellerunabhängig CORBA einsetzen zu können, muss das von den verschiedenen CORBA-Implementierungen verwendete Protokoll Einheitlich sein. Die hier von der OMG spezifizierten Standards heissen General Inter-ORB Protocol (GIOP) falls sich Client und Server auf derselben Maschine befinden und Internet Inter-ORB Protocol (IIOP) falls Client und Server über Netzwerk kommunizieren müssen. IIOP basiert auf GIOP.

  
Objective-C und Cocoa. (Nachfolger von Tiger und XCode 2.1) (Gebundene Ausgabe)
von Klaus M. Rodewig,
Amin Negm-Awad
Siehe auch:
Einsteigen in Xcode
von Fritz Anderson
COCOA Programming for MacOS X.: Programming for OS X
von Aaron Hillegass
Programming in Objective-C.
von Stephen Kochan
Advanced Mac OS X Programming
von Mark Dalrymple
 
    
     
|<< First     < Previous     Index     Next >     Last >>| 

Back to the topic site:
StudyPaper.com/Startseite/Computer/Informatik

External Links to this site are permitted without prior consent.
   
  Home  |  deutsch  |  Set bookmark  |  Send a friend a link  |  Copyright ©  |  Impressum