2.2 Rechnernetze

2.2.2 ISO-Referenzmodell

Der Nachrichtenaustausch zwischen zwei Kommunikationspartnern erfolgt nach festgelegten Kommunikationsprotokollen, welche regeln, wie die einzelnen Nachrichten aufgebaut sind und in welcher Reihenfolge sie verschickt werden können. Üblicherweise kommt eine Hierarchie von Protokollen zum Einsatz, die innerhalb einer Kommunikationsarchitektur angeordnet sind. Solche Architekturen wurden sowohl herstellerneutral (ISO OSI, TCP/IP etc.) als auch von einzelnen Herstellern für ihre Plattformen definiert (z.B. SNA von IBM, DNA von DEC, TRANSDATA von SNI etc.). Den Kommunikationsarchitekturen ist gemein, daß sie als Schichtenmodelle realisiert sind. Die einzelnen Kommunikationsprotokolle regeln dabei jeweils die Kommunikation zwischen Instanzen derselben Schicht. Zur Realisierung eines Protokolls der Schicht i+1 werden die Dienste der Schicht i genutzt, ohne die Realisierungseinzelheiten der darunterliegenden Schichten kennen zu müssen.

Die bekannteste herstellerunabhängige Kommunikationsarchitektur ist das OSI (Open Systems Interconnection) 7-Schichten-Modell der ISO (International Organization for Standardization). Diese Architektur bildet ein Referenzmodell, mit dem nur die wichtigsten funktionalen Eigenschaften der einzelnen Schichten festgelegt werden. Die Dienste der einzelnen Schichten sowie die Schichtenprotokolle sind damit noch nicht definiert, sondern Gegenstand einer eigenen Standardisierung. Die Kommunikation verläuft i.a. "verbindungsorientiert", d.h. es sind zunächst logische Verbindungen zwischen den Kommunikationspartnern aufzubauen, über die dann die Nachrichten ausgetauscht werden[6]. Nach Beendigung der Datenübertragung werden die Verbindungen wieder abgebaut.

Abb. 2-8: Die 7 Schichten des ISO-Referenzmodells

Wie Abb. 2-8 zeigt, kommen Anwendungsprozesse, die miteinander kommunizieren möchten, nicht direkt mit den Kommunikationsprotokollen in Berührung. Vielmehr veranlassen sie die Kommunikation durch den Aufruf von Funktionen der Dienstschnittstelle einer bestimmten Schicht (i.a. der Anwendungsschicht, Schicht 7)[7]. Die Dienste der obersten Schicht werden danach sukzessive in Aufrufe der darunterliegenden Schichten umgesetzt bis zur physischen Übertragung der Nachrichten über das jeweilige Medium. Im Empfangsrechner wird der Abbildungsprozeß in umgekehrter Richtung vorgenommen. Die sieben Schichten des Modells sind dabei nur in den Endknoten vollständig repräsentiert, während in Zwischen- bzw. Vermittlungsknoten lediglich die drei untersten Schichten vorliegen. Dies ist ausreichend, da diese Knoten lediglich zur Vermittlung (Aufbau, Aufrechterhaltung und Abbau von Verbindungen) sowie zur reinen Datenübertragung dienen.

Hier soll auf eine genauere Funktionsbeschreibung der einzelnen Schichten verzichtet werden (s. [Ta88, LKK93]), da sie für das weitere Verständnis nicht benötigt wird. Für unsere Zwecke sind jedoch einige Standardisierungsanstrengungen der Anwendungsebene (Schicht 7) von Interesse, welche die Transaktions- und Datenbankverarbeitung in verteilten Systemen betreffen. Wie in Abb. 2-9 gezeigt, kann die Anwendungsebene selbst wiederum in zwei Schichten unterteilt werden. In der oberen Teilschicht befinden sich dabei spezifische Anwendungsdienste (SASE, Specific Application Service Elements), welche allgemeinere Dienste der unteren Teilschicht verwenden. Spezifische Anwendungsdienste sind u.a. RDA (Remote Database Access), FTAM (File Transfer, Access, and Management), MHS (Message Handling Systems), VTP (Virtual Terminal Protocol) und DS (Directory Service). Die untere Teilschicht enthält allgemeinere Anwendungsdienste ( CASE, Common Application Service Elements), welche von mehreren der übergeordneten Dienste benötigt werden. Solche Standards sind u.a. ACSE (Association Control Service Element), TP (Transaction Processing), CCR (Commitment, Concurrency, and Recovery) und ROSE (Remote Operations Service Element).

Abb. 2-9: ISO-Standards der Anwendungsebene

RDA ermöglicht dabei die Verteilung von DB-Operationen in heterogenen Umgebungen und wird in Kap. 11.4.3 näher vorgestellt. TP unterstützt die Initiierung und Abwicklung verteilter Transaktionen. Das hierbei notwendige verteilte Commit-Protokoll zur Gewährleistung der Atomarität verteilter Transaktionen wird mit Hilfe der CCR-Komponente realisiert. ACSE bietet Funktionen zum Auf- und Abbau logischer Verbindungen (Assoziationen).


[6] Der Aufbau der Verbindungen führt zu einem relativ hohen Aufwand im Gegensatz zu einer "verbindungslosen" Kommunikation über sogenannte Datagramme. Dafür kann die Kommunikation über eine bereits erstellte Verbindung schneller ablaufen, was insbesondere in Weitverkehrsnetzen von Bedeutung ist. Weiterhin bieten verbindungsorientierte Protokolle eine höhere Fehlertoleranz hinsichtlich Nachrichtenverlust oder Überholvorgängen.
[7] Anwendungsprogramme rufen dabei - im Gegensatz zu Systemprogrammen wie einem TP-Monitor - i.a. auch nicht direkt die einzelnen Dienste auf, sondern Funktionen eines allgemeineren API (Application Programming Interface). Da die API-Funktionen auf unterschiedliche Kommunikationsarchitekturen abgebildet werden können, ergibt sich eine höhere Unabhängigkeit und Portierbarkeit von Anwendungen.