"Abstract Syntax Notation One" als neue Sprache für Kommunikationsprotokolle

ASN.1: Normierte Basis für offene Anwendungen

11.03.1988

Als einer der wichtigsten Eckpfeiler bei den Standardisierungsbemühungen im Rahmen der offenen Kommunikation (Open Systems Interconnection - OSI) hat sich in den vergangenen Jahren eine Sprache herausgestellt, die die Grundlage für die Definition nahezu sämtlicher Normprotokolle auf der Anwendungsebene darstellt. Gemeint ist Abstract Syntax Notation One (ASN.1), die zunächst unter der Bezeichnung X.409 von der CCITT zur Beschreibung von anwendungsbezogenen Datenstrukturen für den Bereich der "Electronic Mail" definiert wurde. Mittlerweile wurde ASN.1 als Standard 8824 von der internationalen Standardisierungsorganisation (ISO) verabschiedet und wird auch für Kommunikationsprotokolle verwendet, wie sie beispielsweise im Rahmen von CIM (Computer Integrated Manufacturing) eingesetzt werden sollen.

Mit der rasanten Entwicklung der Standardisierungsbestrebungen hin in Richtung Anwendung, wie beispielsweise File-Transfer, Dokumentenübertragung oder die Bereitstellung von einheitlichen Kommandos und Operationen in einer rechnergeführten Fabrik, wurde die Notwendigkeit einer einheitlichen, anschaulichen und trotzdem mächtigen Beschreibungssprache für die Datenstrukturen, die zwischen diesen Anwendungen ausgetauscht werden, notwendig.

In wesentlichen Teilen kompatibel mit X.409

Als einer der wegweisenden Standards auf dem Gebiet der Kommunikationssysteme hat sich die Beschreibungssprache ASN.1 der internationalen Standardisierungsorganisation erwiesen. Diese Notation, die im Mai 1987 als "International Standard 8824" endgültig verabschiedet wurde, ist in wesentlichen Teilen mit der CCITT-Syntax X.409 kompatibel. X.409 ist hierbei die Beschreibungs- und Transfersyntax für die verschiedenen Normungspapiere, die auch unter dem Oberbegriff "Message handling Systems" beziehungsweise "Electronic Mail" bekennt sind.

Üblicherweise wird beim Protokollentwurf davon ausgegangen, daß man diese Aufgabe in zwei getrennte Aufgabenklassen unterteilen kann. Eine dieser Aufgabenklassen behandelt den prozeduralen Ablauf der Kommunikation, das heißt die Definition von Regeln, welche festlegen, wie Dienstleistungen angefordert und Informationen ausgetauscht werden können. Zum prozeduralen Ablauf würde beispielsweise die Festlegung zählen, daß vor dem Austausch von Daten zunächst eine Verbindung aufgebaut werden muß.

Ein weiterer, genauso wichtiger Aspekt ist die Spezifikation der Protokoll-Dateneinheiten beziehungsweise der Datenstrukturen, die beim Kommunikationsvorgang vom Sender mit konkreten Werten zu füllen sind, anschließend in eine gemeinsame Transfersyntax überführt und auf der Empfangsseite wieder dekodiert werden müssen. Dieser Gesichtspunkt des Protokollentwurfs beeinflußt insbesondere auf der Anwendungsebene wesentlich die Möglichkeiten und die Leistung, die dem Anwender eines Kommunikationsprotokolls zur Verfügung gestellt werden. Durch eine ungeschickte oder nicht eindeutige Datenspezifikation können Fehler auftreten, welche bei der Kommunikation schwierig nachvollziehbar und aufzudecken sind.

Um dem Benutzer die Anwendung einer Beschreibungssprache für die Beschreibung von Kommunikationsstrukturen zu erleichtern, ist es notwendig, daß sich ein derartiger Formalismus leicht erlernen und handhaben läßt. Allerdings kann bei komplexen Sachverhalten eine intuitive Verständlichkeit manchmal auch von Nachteil sein, da sich komplexe Eigenschaften meist nicht mit einfachen Sprachmitteln definieren lassen. ASN.1 hat hier einen guten Mittelweg gefunden, da sich einerseits einfache Typen und Werte mit geringem Aufwand spezifizieren, andererseits auch komplexe Definitionen erstellen lassen.

Einordnung ins ISO/OSI-Modell

Gemäß dem ISO/OSI-Referenzmodell für die Kommunikation in offenen Systemen, ist ASN.1 der Darstellungsebene (englisch: "Presentation Layer), das heißt der Schicht 6, zuzuordnen. Diese Schicht des ISO/OSI-Referenzmodells hat die Aufgabe der Darstellung und Kodierung von Informationen mit Hilfe einheitlicher Beschreibungsformalismen im offenen System. Während die einzelnen Netzkomponenten lokal über unterschiedliche und systemabhängige Datenrepräsentationen (zum Beispiel ASCII oder EBDCIC) verfügen können, muß beim Datentransfer jeder Kommunikationspartner seine lokale Darstellung der Daten in eine von beiden Seiten als gemeinsam akzeptierte Darstellungsform beziehungsweise Notation umwandeln.

Im Gegensatz zu früheren Vorschlägen und Entwürfen für Kommunikationsprotokolle der Darstellungsschicht, wie beispielsweise bei den "Einheitlich Höheren Kommunikationsprotokollen" der Ebene 6 (EHKP-6), die im Rahmen von Bildschirmtext (Btx) verwendet werden, geht die internationale Standardisierungsorganisation von folgender Vorgehensweise aus:

1. Beschreibung der Datenstruktur mit Hilfe einer abstrakten Notation,

2. Kodierung der abstrakten Datenstrukturen mit Hilfe gesonderter Umsetzungsvorschriften.

Zu Beginn einer Verbindung können sich die beiden Partner beziehungsweise Instanzen auf der Anwendungsschicht über die Strukturierung ihrer Informationen sowie über die Verwendung einer bestimmten Menge von Datentypen einigen. Dieser Teil der Verhandlung für eine spezielle Anwendungsverbindung ist noch unabhängig von der konkreten Kodierung in Bits und Bytes zu sehen und wird aus diesem Grund als "abstrakte Transfersyntax" bezeichnet. Zur Beschreibung der abstrakten Syntax kann von einer Anwendung eine standardisierte Sprache verwendet werden, die "abstrakte Syntaxnotation" genannt wird. ASN.1 ist bislang die einzige abstrakte Syntaxnotation, die weltweit von der ISO im Standard IS 8824 normiert wurde.

Neben dieser abstrakten Syntax muß beim Verbindungsaufbau zwischen zwei Anwendungsprozessen auch eine "konkrete Syntax" vereinbart werden, die genau festlegt, wie jeder Wert beziehungsweise jede Ausprägung eines abstrakten Datentyps bitweise zu kodieren ist. Bei der Datenübertragung erfolgt nun eine Übersetzung der lokalen Darstellung des sendenden Kommunikationsprozesses in diese zuvor ausgehandelte beziehungsweise vereinbarte Transfersyntax. Das empfangende System übersetzt den eintreffenden Bitstrom aufgrund der Transfersyntax in die lokale Darstellung der empfangenden Anwendungsinstanz. Als Ergänzung zur abstrakten Syntax ASN.1 wurden von der ISO die "Basic Encoding Rules for ASN.1" festgelegt und in der Norm IS 8825 verabschiedet.

Obwohl bislang lediglich genau eine abstrakte Syntax und eine konkrete Transfersyntax von der ISO definiert wurden, bedeutet dies nicht, daß für alle Zeiten und für alle Anwendungen diese Beschreibungs- und Kodierungsformen festgeschrieben sind. Explizit ist hierzu in den Normierungsunterlagen ausgesagt, daß künftig auch weitere Alternativen spezifiziert werden können. Ist dies der Fall, das heißt für eine Kommunikationsverbindung wurden mehrere Darstellungskontexte ausgehandelt, kann im zeitlichen Verlauf der Kommunikationssitzung zwischen verschiedenen Darstellungskontexten gewechselt werden. Dies ist insbesondere dann von Interesse, wenn Informationen aus unterschiedlichsten Bereichen während dieser Sitzung ausgetauscht werden sollen, und wenn angepaßte, leistungsfähige Kodierungsvorschriften notwendig sind.

Eine derartige Notwendigkeit für mehrere Darstellungskontexte existiert beispielsweise im Rahmen der Bürokommunikation beziehungsweise der Dokumentenübertragung, wenn zwischen unterschiedlichen Repräsentationsmöglichkeiten hinsichtlich von Bilddarstellungen, Grafiken oder alphanumerischem Text unterschieden werden muß.

Wichtige Standardprotokolle in der neuen Sprache

In den vergangenen Jahren sind zahlreiche anwendungsbezogene Dienste bereits genormt worden oder befinden sich noch in der Normierungsphase. Nahezu sämtliche Datenstrukturen dieser Anwendungsprotokolle wurden mit ASN.1 beschrieben. Beispiele für derartige Standardprotokolle sind:

- "Association Control Service Elements" (ACSE) nach ISO 8649, zur Bereitstellung allgemeiner Dienstelemente zum Verbindungsaufbau, zur unstrukturierten Datenübertragung, zum Verbindungsabbau und -abbruch;

- "Manufacturing Message Specification" (MMS) nach EIA RS 511 beziehungsweise ISO DP 9506 zur Ansteuerung und Integration von Automatisierungskomponenten in Fabrikhallen;

- "Message Handling Systems" (MHS) der CCITT (X.400-Reihe) zur Übertragung und zum Austausch elektronischer Nachrichten;

- "File Transfer, Access and Management" (FTAM) nach ISO DIS 9571 zum Zugriff, zur Verwaltung und zur Übertragung von Dateien;

- "OSI Directory Access Service" (DAS) nach ISO 9594 zur Verwaltung

Namen und Ressourcen;

- Systems Management" nach IEEE 802 oder "Configuration Management" nach ISO und ECMA zur Administration eines Netzes.

Die hier aufgeführten anwendungsorientierten Dienste und Funktionen stellen lediglich einen knappen Auszug aus den Normierungsbestrebungen bezüglich der Ebene 7 gemäß dem ISO/OSI-Referenzmodell dar. Weitere Standardisierungsarbeiten beschäftigen sich beispielsweise mit der Definition einer "Office Document Architecture" und einem zugehörigen "Office Document Interchange Format" (ODA/ODIF).

Literaturhinweis: Gora, W.; Speyerer, R.: "ASN.1 - Abstract Syntax Notation One", Datacom-Verlag, 6024 Pulheim, 1987, ca. 180 Seiten