next up previous contents
Next: Die SOM-Laufzeitumgebung Up: 2.3 IBM's SOMObjects Previous: 2.3 IBM's SOMObjects

2.3.1 SOM: System Object Model

Das System Object Model (SOM) ist eine objektorientierte Technologie zur Erstellung von binären Klassenbibliotheken. Es wurde entwickelt, um eine Reihe von Problemen zu lösen, die bei heutigen objektorientierten Programmiersprachen wie C++ auftreten. Einige dieser Probleme sind:

SOMObjects löst diese Probleme durch ein sprachneutrales Objektmodell, das die Entwicklung von binärkompatiblen Klassenbibliotheken erlaubt. Dabei werden ausgehend von einer IDL-Beschreibung einer Objektklasse, die dem CORBA-Standard entspricht, Implementierungstemplates für Programmiersprachen generiert.

Die Implementierung einer normalen SOM-Anwendung (deren Objekte nicht verteilt sind) geschieht durch folgende Schritte:


 
Abbildung: Der SOM-Entwicklungsprozeß
\begin{figure}
\begin{center}
\mbox{ \epsffile{bilder/somdev2.eps} }\end{center}\end{figure}

1.
Zuerst werden die Aufrufschnittstellen (die Methoden und die sichtbaren Attribute) für die Objektklassen in IDL definiert.
2.
Der SOM-Compiler erzeugt aus den IDL-Dateien Skelette für die Implementierung der Klassen sowie Client- und Server-Stubs in Form von Header-Dateien. Der Compiler kann konfiguriert werden, um Implementierungstemplates für unterschiedliche Programmiersprachen zu erzeugen.
3.
Die Methoden in den vom SOM-Compiler erzeugten Skeletten werden durch den Anwendungsprogrammierer implementiert. Dabei können für die einzelnen Klassen unterschiedliche Programmiersprachen verwendet werden.
4.
Das Client-Programm, das die Klassen benutzt, wird erstellt.
5.
Das Client-Programm wird mit einem Compiler der entsprechenden Programmiersprache übersetzt und die Implementierung der Klassen wird dazugebunden.
6.
Das Client-Programm wird ausgeführt.

SOM ist derzeit für AIX, OS/2, Windows und MVS verfügbar.



 
next up previous contents
Next: Die SOM-Laufzeitumgebung Up: 2.3 IBM's SOMObjects Previous: 2.3 IBM's SOMObjects
Copyright Munich Network Management Team