Diplomarbeit Integration von OMG Audio / Video Streams in TINA-DPE
Transcrição
Diplomarbeit Integration von OMG Audio / Video Streams in TINA-DPE
H UMBOLDT-U NIVERSITÄT ZU B ERLIN I NSTITUT FÜR I NFORMATIK L EHRSTUHL FÜR S YSTEMANALYSE Diplomarbeit Integration von OMG Audio / Video Streams in TINA-DPE Helge Hesse Betreuer: Prof. Dr. Joachim Fischer Dipl.-Inf. Olaf Kath 2 Inhaltsverzeichnis 1 Einleitung 9 2 Das Referenzmodell für offene und verteilte Verarbeitung 13 2.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 ODP Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 ODP Verteilungstransparenzen . . . . . . . . . . . . . . . . . . . 16 2.4 ODP Modellierungssichten . . . . . . . . . . . . . . . . . . . . . . 17 2.5 ODP Modellierungssprachen . . . . . . . . . . . . . . . . . . . . 19 2.5.1 Enterprise-Modellierungssprache . . . . . . . . . . . . . . 19 2.5.2 Informationsmodellierungssprache . . . . . . . . . . . . . 19 2.5.3 Computational-Modellierungssprache . . . . . . . . . . . 20 2.5.4 Engineering-Modellierungssprache . . . . . . . . . . . . . 23 2.5.5 Technology-Modellierungssprache . . . . . . . . . . . . . 24 2.6 ODP-Referenzpunkte . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.7 ODP Stream-Binding-Konzepte . . . . . . . . . . . . . . . . . . . 25 2.7.1 Binden in der Computational-Modellierungssicht . . . . 26 2.7.1.1 Das ODP-Bindungsobjekt . . . . . . . . . . . . . 27 2.7.2 Binden in der Engineering-Modellierungssicht . . . . . . 28 2.7.2.1 3 Etablierung eines Kanals . . . . . . . . . . . . . 30 Realisierung der ODP Stream-Binding-Konzepte 31 3.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Telecommunications Information Networking Architecture . . . 32 3.2.1 Überblick über die TINA-Architektur . . . . . . . . . . . 32 3.2.2 TINA-Teilarchitekturen . . . . . . . . . . . . . . . . . . . 32 3.2.3 Verteilte Verarbeitungsumgebung - DPE . . . . . . . . . 33 3 Inhaltsverzeichnis 3.2.4 Referenzpunkte . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.5 Servicearchitektur . . . . . . . . . . . . . . . . . . . . . . 36 3.2.6 TINA-Connection-Management . . . . . . . . . . . . . . . 37 3.2.6.1 Informationsmodellierung . . . . . . . . . . . . . 37 3.2.6.2 Computational-Modellierung . . . . . . . . . . . 44 3.3 OMG Control and Management of Audio / Video Streams . . . . 46 3.3.1 Überblick über der AVS-Standard . . . . . . . . . . . . . 46 3.3.2 Konzepte des Standards . . . . . . . . . . . . . . . . . . . 46 3.3.2.1 Erweiterung der Object-Management-Architektur 46 3.3.2.2 Ziele der Streaming-Architektur . . . . . . . . . 48 3.3.2.3 Komponenten der Streaming-Architektur . . . . 49 3.3.3 Die AVS Informationsspezifikation . . . . . . . . . . . . . 50 3.3.3.1 Das AVS-Informationsmodell . . . . . . . . . . . 53 3.3.4 Die AVS Computational-Spezifikation . . . . . . . . . . . 54 3.3.4.1 AVS Computational-Modell für das leichte Profil 55 3.3.4.2 AVS Computational-Modell für das volle Profil . 55 3.3.5 Stream-Binding-Szenarien . . . . . . . . . . . . . . . . . . 55 3.3.5.1 Stream-Binding-Szenario für das leichte Profil . 57 3.3.5.2 Stream-Binding-Szenario für das volle Profil . . 58 4 Verwandte Arbeiten 61 4.1 IONA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2 Humboldt Universität, NTT . . . . . . . . . . . . . . . . . . . . . 63 5 Integration von OMG Audio/Video Streams in TINA-DPE 5.1 Einführung und Rahmenbedingungen . . . . . . . . . . . . . . . 65 5.2 Gegenüberstellung von TINA und OMG Audio/Video Streams . 66 5.2.1 Gemeinsamkeiten . . . . . . . . . . . . . . . . . . . . . . . 66 5.2.2 Unterschiede . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.3 Beschreibung der Ausgangssituation . . . . . . . . . . . . . . . . 69 5.4 ODP-Spezifikation des AVS-Terminals . . . . . . . . . . . . . . . 70 5.4.1 Informationsspezifikation . . . . . . . . . . . . . . . . . . 70 Das Informationsobjekt SFEPBridge . . . . . . . . 71 5.4.1.1 4 65 Inhaltsverzeichnis 5.4.1.2 Das Informationsmodell . . . . . . . . . . . . . . 73 5.4.1.3 und Die SFEPBridge-Medienbeschreibung Aspekte der Dienstqualität . . . . . . . . . . . . 73 5.4.2 Computational-Spezifikation . . . . . . . . . . . . . . . . 74 5.4.2.1 Anwendung der ODP Stream-Binding-Konzepte 74 5.4.2.2 Das Bridge-Konzept in der ComputationalModellierungssicht . . . . . . . . . . . . . . . . . 76 Voraussetzungen für die Teilnahme des AVSTerminals am TINA-Connection-Management . 78 5.4.2.4 Die Schnittstellen der Objekte BBM und Bridge 79 5.4.2.5 Computational-Interaktionen . . . . . . . . . . . 79 5.4.3 Engineering-Spezifikation . . . . . . . . . . . . . . . . . . 84 5.4.2.3 5.4.3.1 Ein Engineering-Modell der AVS-Objekte . . . . 84 5.4.3.2 Ein Engineering-Modell für die Bridge-Objekte 86 5.4.3.3 Engineering-Modell für das AVS-Terminal . . . 88 5.4.3.4 Zusammenfassung der Engineering-Spezifikation 90 5.4.4 Technology-Spezifikation . . . . . . . . . . . . . . . . . . . 5.4.4.1 Auswahlkriterien für einen terminallokalen Transportmechanismus . . . . . . . . . . . . . . 90 91 6 Zusammenfassung und Ausblick 93 7 Anhang 95 Literaturverzeichnis 101 8 105 Thesen zur Diplomarbeit 5 Inhaltsverzeichnis 6 Abbildungsverzeichnis 2.1 Die fünf ODP-Modellierungssichten . . . . . . . . . . . . . . . . 17 2.2 Instanziierung eines Objektes aus einer Schablone . . . . . . . . 22 2.3 Engineering-Konzepte . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4 ODP Referenzpunkte . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5 Instanziierung eines Bindungsobjektes aus einer Schablone . . 27 2.6 Erzeugen der Schnittstellen . . . . . . . . . . . . . . . . . . . . . 27 2.7 Zusammengesetztes Binden . . . . . . . . . . . . . . . . . . . . . 28 2.8 Konfiguration eines Kanals . . . . . . . . . . . . . . . . . . . . . 29 3.1 TINA DPE-Infrastruktur . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 TINA Business Roles und Business Relationships . . . . . . . . 35 3.3 TINA Sitzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4 Stream-Binding auf Anwendungsebene . . . . . . . . . . . . . . 38 3.5 Klassendiagramm eines abstrakten Verbindungsgraphen . . . . 39 3.6 Klassendiagramm eines Logical-Connection-Graphen . . . . . . 40 3.7 Dekomposition einer Stream-Flow-Verbindung . . . . . . . . . . 42 3.8 Klassendiagramm eines Nodal-Connection-Graphen . . . . . . . 42 3.9 Struktur eines Layer-Netzes . . . . . . . . . . . . . . . . . . . . . 43 3.10 Computational-Modellierungssicht . . . . . . . . . . . . . . . . . 44 3.11 OMG Streams-Architektur . . . . . . . . . . . . . . . . . . . . . . 47 3.12 Komponenten der AVS-Spezifikation . . . . . . . . . . . . . . . . 49 3.13 Das AVS-Informationsmodell . . . . . . . . . . . . . . . . . . . . 53 3.14 Initialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.15 Aufbau einer Stream-Verbindung im leichten Profil . . . . . . . 57 3.16 Binden im vollen Profil: Finden kompatibler Endpunkte . . . . 58 3.17 Binden im vollen Profil: Aufbau von Flow-Verbindungen . . . . 59 7 Abbildungsverzeichnis 8 4.1 IONA Szenario zum Binden von zwei FEPs . . . . . . . . . . . . 62 4.2 Das SFEPBridge-Informationsobjekt . . . . . . . . . . . . . . . . . 63 5.1 SFEPAV S vs. SFEPT INA . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2 Einführung des Informationsobjektes SFEPBridge . . . . . . . . . 71 5.3 Das Informationsmodell für den integrierten Ansatz . . . . . . . 73 5.4 Computational-Objekte mit Stream-Schnittstellen verschiedenen Typs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.5 Das Bridge-Objekt als Computational-Objekt mit zwei StreamSchnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.6 Bridge Binding Manager als Bindungsobjekt für MMDevice und Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.7 Das Stream-Binding Szenario des integrierten Ansatzes . . . . 80 5.8 Beispiel eines AVS-Engineering-Modells . . . . . . . . . . . . . . 84 5.9 Bridge-Engineering-Spezifikation . . . . . . . . . . . . . . . . . . 86 5.10 Transport kontinuierlicher Daten über zwei Kanäle . . . . . . . 87 5.11 Transport kontinuierlicher Daten über einen Kanal . . . . . . . 88 5.12 Das AVS-Engineering-Modell des AVS-Terminals . . . . . . . . . 89 1 Einleitung Die Infrastruktur der Telekommunikationsnetze wurde in den letzten Jahren intensiv ausgebaut. Die Welt der Telekommunikation bildet heute einen offenen Markt. Durch die Deregulationsbestrebungen der letzten Zeit haben jetzt mehr Unternehmen die Möglichkeit, eine eigene Telekommunikationsinfrastruktur aufzubauen und diese am Markt anzubieten. Die Entwicklung geht von proprietären Lösungen bis zu weltweit verbundenen Netzen, über die Daten mit unterschiedlichen Anforderungen an die Übertragungsqualität transportiert werden können. Es ist ein Zusammenwachsen der Informations- und Telekommunikationsindustrie zu einem einzigen Markt zu beobachten. Wurden anfänglich ausschließlich sprach- und textbasierte Informationen übermittelt, so sind heute ganz neue Anwendungen realisierbar. Insbesondere multimediale Applikationen können auf der Grundlage breitbandiger Netze erstellt und genutzt werden. Die Zusammenarbeit der Informations- und Telekommunikationsindustrie setzt die Verwendung allgemein anerkannter Standards und die Offenlegung der Schnittstellen voraus. Nur so ist eine schnelle Entwicklung und Integration neuer Anwendungen möglich. Aus diesem Grund wurde 1993 ein internationales Konsortium von Telekommunikationsunternehmen unter dem Namen Telecommunication Information Networking Architecture Consortium (TINA-C) gegründet. Die Initiative hat innerhalb von fünf Jahren eine Architektur für die Einführung leistungsfähiger Telekommunikationsanwendungen entwickelt. Auf der Grundlage des Referenzmodells für offene verteilte Verarbeitung (engl. Reference Model of Open Distributed Processing, RMODP) [9] wurde eine Softwarearchitektur für verteilte Anwendungen entworfen. Durch offene Schnittstellen, definiert in Referenzpunkten, ist es möglich, sehr schnell neue Produkte zu entwickeln und die Interoperabilität mit bestehenden Anwendungen sicherzustellen. Eine schon länger existierende Organisation ist Open Management Group (OMG). Sie wurde 1989 mit dem Ziel gegründet, die Entwicklung objektorientierter Technologien in verteilten Verarbeitungsumgebungen zu standardisieren, um die Wiederverwendbarkeit, Portabilität und Interoperabilität ob- 9 1 Einleitung jektorientierter Software zu sichern. OMG arbeitet als übergeordnetes Gremium, das die Entwicklungen der Mitglieder koordiniert. Dazu veröffentlicht es regelmäßig RFPs (engl. Request For Proposal), zu denen die Mitglieder Vorschläge einreichen können und über deren Annahme die stimmberechtigten Mitglieder entscheiden. Für die Entwicklung multimedialer Anwendungen wurde 1996 das RFPDokument “Control and Management of Audio/Video Streams“ [7] herausgegeben. Im darauf folgenden Jahr wurde eine gemeinsame Vorlage mehrerer Firmen als Standard angenommen [8]. Er definiert Softwareschnittstellen und beschreibt Interaktionsszenarien zum Aufbau von Verbindungen für den Transport kontinuierlicher Daten zwischen multimedialen Anwendungen. Der OMG-Standard konzentriert sich auf die Spezifikation der Endgeräte. Auf das Management zugrundeliegender Telekommunikationsnetze wird verzichtet, anstelle dessen wird von Ende-zu-Ende-Verbindungen zwischen den Geräten ausgegangen. Das Management von Verbindungen zur Übertragung kontinuierlicher Daten ist einer der TINA-Schwerpunkte, während dort wiederum keine Spezifikation der Schnittstellen von Endgeräten erfolgt. Von der Zielsetzung passen beide in orthogonaler Weise zueinander. Um ein funktionierendes Zusammenspiel zwischen OMG AVS-konformen Endgeräten und TINA-Netzmanagement zu erreichen, wird in dieser Arbeit ein Modell entwickelt, das die Verbindung der beiden unterschiedlichen Konzepte realisiert. Es wird gezeigt, wie beide Standards zusammengeführt werden können. Dabei wird auf bereits existierende Forschungsergebnisse aufgebaut [17]. Als Grundlage der Modellierung werden die Ausdrucksmittel des Referenzmodells ODP genutzt. Zu diesem Zweck werden zuerst die ODP-Prinzipien eingeführt. Diese werden bei der Vorstellung relevanter TINA-Konzepte genutzt. Anschließend wird der AVS-Standard vorgestellt. Dadurch wird die Voraussetzung geschaffen, ein gemeinsames Modell zu entwerfen, das die Architektur der OMG und die des TINA-Konsortiums vereint. Das Ergebnis der Integration ermöglicht es, AVS-konforme Geräte unverändert mit einer TINA-orientierten Telekommunikationsplattform zu nutzen. Die Arbeit gliedert sich in folgende Teile: Kapitel 1 gibt eine Einführung in die Thematik der Arbeit. Kapitel 2 erklärt das ODP-Referenzmodell. Es werden die Grundlagen und die darauf aufbauenden Prinzipien und Modellierungssichten vorgestellt. Kapitel 3 unterteilt sich in zwei Abschnitte. Sie stellen die StreamBinding-Konzepte von TINA und des AVS-Standards vor. 10 Kapitel 4 beschreibt bereits bestehende Forschungsarbeiten. Kapitel 5 entwirft ein gemeinsames Modell beider Standards. Dieses Modell wird es ermöglichen, daß OMG Audio/Video Streams-konforme Geräte in TINA-orientierten Telekommunikationsnetzen genutzt werden können. Die Struktur orientiert sich dabei an den Modellierungssichten des ODP-Referenzmodells. Kapitel 6 gibt eine Zusammenfassung und einen Ausblick. In dieser Arbeit wird die alte Rechtschreibung verwendet, wie es der deutsche Hochschulverband empfohlen hat. Der Text wurde mit dem Satzsystem LATEX in einer 10 Punkt Times Schriftart gesetzt. Alle englischen Fachbegriffe sind kursiv hervorgehoben. Schnittstellenbeschreibungen sind in der Schriftart Courier notiert. 11 1 Einleitung 12 2 Das Referenzmodell für offene und verteilte Verarbeitung 2.1 Einführung Das Referenzmodell für offene und verteilte Verarbeitung (engl. Reference Model of Open Distributed Processing (RM-ODP)) [9, 10, 11, 12], ist eine gemeinsame Empfehlung der Standardisierungsgremien ITU-T und ISO. Es ist ein Rahmenwerk für die Spezifikation verteilter Systeme. RM-ODP charakterisiert ein verteiltes System durch die folgenden Merkmale: Die Komponenten des Systems können örtlich verteilt sein. Interaktionen können zwischen lokalen und entfernten Komponenten auftreten. Die Komponenten können parallel ausgeführt werden. Es kann kein globaler Zustand des Systems festgestellt werden. Einzelne Komponenten des Systems können unabhängig voneinander ausfallen. Die Kommunikation und Verarbeitung kann nicht durch eine globale Uhr synchronisiert werden. Das Referenzmodell adressiert Probleme, die bei der Verteilung, Zusammenarbeit und Portabilität verteilter Systeme auftreten. In diesem Zusammenhang wird erstmals der Begriff Dienst verwendet. In dieser Arbeit wird mit der Bezeichnung Dienst eine Funktion bezeichnet, die von einer Systemkomponente erbracht und von einer anderen Komponente genutzt wird. Die ODP-Standardisierung erlaubt, verteilte Systeme mit den folgenden Eigenschaften zu entwickeln [9]: Offenheit: Diese Eigenschaft sichert die Portabilität verschiedener Komponenten eines Systems. Ohne Modifizierungen soll die Ausführung von Komponenten auf verschieden Verarbeitungseinheiten möglich sein. Ebenso wird die Kommunikation zwischen unterschiedlichen Komponenten sichergestellt. 13 2 Das Referenzmodell für offene und verteilte Verarbeitung Modularität: Diese strukturelle Eigenschaft zielt auf die Autonomie einzelner Teile des Systems. Sie bildet die Grundlage für die Flexibilität eines Systems, indem einzelne Teile austauschbare Komponenten bilden. Sicherstellung von Qualitätsanforderungen: Diese Eigenschaft zielt auf ein Systemverhalten unter Beachtung bestimmter Qualitätsanforderungen. Dazu zählt Verläßlichkeit und Geschwindigkeit, mit der ein Dienst erbracht wird. Da nicht davon ausgegangen werden kann, daß alle Komponenten eines Systems permanent verfügbar sind, muß ein System auch flexibel gegenüber Fehlern reagieren können (Fehlertolleranz). Transparenz: Diese System-Eigenschaft soll gegenüber Applikationen die technische Realisierung der Verteilung von Komponenten verbergen. Die Existenz von heterogener Hard- und Software, aber auch das Ersetzen einzelner Komponenten soll für eine Applikation nicht sichtbar (transparent) sein. RM-ODP besteht aus vier Dokumenten, den ITU-T Empfehlungen X.901 bis X.904 [9, 10, 11, 12], mit folgendem Inhalt: X.901 gibt eine Motivation, indem es einen Überblick über RM-ODP, die Schlüsselkonzepte und eine Einführung in die Architektur gibt. Im letzten Abschnitt werden Kriterien definiert, anhand derer sich die Konformität von Implementierungen zum Standard überprüfen lassen. Dazu wird das Konzept der Referenzpunkte eingeführt. Anhand mehrerer Systeme werden Beispiele für ODP-Spezifikationen gegeben. X.902 definiert Konzepte zur Beschreibung von verteilten Systemen. X.903 definiert, wie ODP-Systeme zu spezifizieren sind. Dabei werden die in X.902 eingeführten Konzepte benutzt. Das Dokument stellt charakteristische Merkmale vor, die ODP-Systeme auszeichnen. X.904 enthält eine Formalisierung der in X.902 vorgestellten Modellierungskonzepte. Die Formalisierung wird durch eine Interpretation der ODP-Konzepte durch Ausdrucksmittel standardisierter formaler Beschreibungstechniken erreicht. 14 2.2 ODP Grundlagen 2.2 ODP Grundlagen X.902 und X.903 definieren grundlegende Begriffe, die bei der Modellierung von ODP-Systemen verwendet werden. Die folgenden Begriffe werden auch in dieser Arbeit benutzt: Eine Entität ist ein konkretes oder abstraktes Element der modellierten Welt. Ein Objekt ist das Modell einer Entität. In Abhängigkeit vom Abstraktionsniveau können Objekte unterschiedliche Dinge repräsentieren. Sie sind von verschiedener Granularität, so daß ein Objekt eine Komposition von Objekten sein kann. Jedes Objekt ist charakterisiert durch sein Verhalten. Ein Objekt ist von anderen unterscheidbar, d.h. es besitzt eine Identität. Ein Objekt kann eine Menge von (Name,Wert)-Tupeln besitzen, sie werden als Attribute des Objektes bezeichnet. Die Wertebelegung eines Attributs kann sich während der Lebenszeit eines Objektes ändern. Die Umgebung eines Objektes ist der Teil eines Modells, der nicht Teil des Objektes ist. Das Verhalten eines Objektes ist die Menge aller möglichen Aktionen, an denen ein Objekt teilnehmen kann. Zugehörig sind Einschränkungen bezüglich des möglichen Auftretens dieser Aktionen. Damit beschreibt das Verhalten alle möglichen Zustandsänderungen eines Objektes. Der Zustand eines Objektes beschreibt die Belegung seiner Attribute zu einem bestimmten Zeitpunkt. Der aktuelle Zustand eines Objektes ergibt sich aus den vorausgegangenen Aktionen. Mögliche Folgeaktionen werden durch den aktuellen Zustand bestimmt. Eine Aktion ist ein Vorgang, der in Verbindung mit einem Objekt abläuft. Es wird in interne Aktionen und Interaktionen unterschieden. Bei einer Interaktion ist die Umgebung des Objektes beteiligt. Eine Schnittstelle beschreibt eine Menge von Interaktionen sowie Einschränkungen bezüglich des möglichen Auftretens. Ein Objekt kann mehrere Schnittstellen besitzen, wodurch sowohl funktionale Dekomposition als auch Verteilung ermöglicht wird. Objekte können nur über Schnittstellen mit ihrer Umgebung interagieren. Komposition ist eine Kombination von Objekten, die zu einem neuen Objekt auf einem anderen Abstraktionsniveau führt. 15 2 Das Referenzmodell für offene und verteilte Verarbeitung Dekomposition ist die Spezifikation eines gegebenen Objektes als eine Komposition. Eine Schablone ist die Spezifikation der gemeinsamen Eigenschaften einer Menge von Entitäten. Eine Schablone enthält genügend Informationen, um Instanzen von Objekten zu erzeugen. Es gibt Schablonen für Objekte, Schnittstellen und weitere Entitäten. 2.3 ODP Verteilungstransparenzen Jedes ODP-System benötigt Unterstützung durch eine Kommunikationsplattform, die Interaktionen zwischen Instanzen von Objekten ermöglicht. Verteilungstransparenzen werden benutzt, um Aspekte eines ODP-Systems zu verbergen, die durch die netzweite Verteilung einzelner Objekte entstehen. Die Kommunikationsplattform unterstützt dafür eine Menge von Transparenzen: Access: verbirgt Unterschiede der Datenrepräsentation und Aufrufmechanismen, um die Zusammenarbeit zwischen Objekten zu ermöglichen. Failure: verbirgt Fehlfunktionen oder den Ausfall von Objekten. Damit kann Fehlertoleranz in einem verteilten System sichergestellt werden. Location: verbirgt die räumliche Verteilung bei der Identifizierung und dem Binden von Schnittstellen. Migration: verbirgt vor einer Entität den Umstand, daß sie in einer neuen Umgebung ausgeführt wird. Replication: verbirgt die Benutzung einer ganzen Gruppe kompatibler1 Objekte zur Bereitstellung einer Schnittstelleninstanz. Dadurch können die Performanz und die Verfügbarkeit erhöht werden. Persistence: verbirgt vor einem Objekt die Deaktivierung und Wiederaktivierung von Objekten. Dadurch wird die Dauerhaftigkeit von Objekten gewährleistet, auch wenn das System notwendige Ressourcen zeitweilig nicht bereitstellen kann. Transaction: verbirgt die Koordinierung von Aktionen zwischen Objekten zur Gewährleistung von Konsistenz. 1 Kompatibilität bezieht 16 sich auf das Verhalten der Objekte. 2.4 ODP Modellierungssichten 2.4 ODP Modellierungssichten Um die Komplexität verteilter Systeme beherrschbar zu machen, führt RM-ODP mehrere, in Beziehung zueinander stehende Modellierungssichten (engl. viewpoints) ein. Jede Modellierungssicht definiert dabei eine andere Abstraktion des Gesamtsystems. Abstraktion bezieht sich nicht auf die Granularität der betrachteten Entitäten eines Systems, wodurch die Modellierungssichten keine Hierarchie bilden. Es wird von den für den Schwerpunkt der Betrachtung unwichtigen Dingen abgesehen (abstrahiert). Dabei wird das Ziel verfolgt, die speziellen Anforderungen der am Designprozeß beteiligten Gruppen zu erfüllen. So werden für dasselbe System mehrere Modelle entwickelt, die in Art und Umfang auf die konkrete Aufgabenstellung der Designer ausgerichtet sind. So gibt es Modellierungssichten, die auf die Beschreibung und Analyse ausgerichtet sind, während andere sich auf das Verhalten und die Realisierung des Systems konzentrieren. Es sind fünf Modellierungssichten definiert, die untereinander in Beziehung stehen, die jedoch keine Folge von Modellierungsschritten bilden: Abbildung 2.1: Die fünf ODP-Modellierungssichten Enterprise Modellierungssicht Informationsmodellierungssicht ODP System Computational Modellierungssicht Engineering Modellierungssicht Technology Modellierungssicht Enterprise-Modellierungssicht Die Enterprise-Modellierungssicht beschreibt den Zweck eines Systems innerhalb des Unternehmens. Es werden die Anforderungen und der Anwendungsbereich des Systems untersucht. Dabei werden die Aktivitäten des Systems im Kontext einer Organisation betrachtet und die Rollen beteiligter Personen identifiziert. Schließlich werden die für das System geltenden Regeln (engl. Policies) aufgestellt. 17 2 Das Referenzmodell für offene und verteilte Verarbeitung Informationsmodellierungssicht Die Informationsmodellierungssicht beschreibt, welche Informationen verarbeitet, gespeichert und übertragen werden. Es werden Informationsobjekte identifiziert und ihre Attribute beschrieben. Erkannte Beziehungen und Abhängigkeiten zwischen Informationsobjekten werden in einem Informationsmodell dargestellt. Computational-Modellierungssicht Die Computational-Modellierungssicht dekomponiert das System in eine Menge interagierender Computational-Objekte (engl. Computational Objects, COs). Sie kapseln Daten und Funktionalität in einer Einheit. Objekte interagieren untereinander über wohldefinierte Schnittstellen. Eine Computational-Spezifikation umfaßt die Beschreibung der Objekte, die Informationsverarbeitung innerhalb der Objekte, die Beschreibung der Schnittstellen sowie die Interaktionen, die über diese Schnittstellen zwischen Objekten auftreten. Engineering-Modellierungssicht Die Engineering-Modellierungssicht beschreibt die Systemunterstützung, die eine Verteilung der Objekte aus der Computational-Modellierungssicht ermöglicht. Computational-Objekte werden auf eine Menge von BasicEngineering-Objekten (BEOs) abgebildet. Zusätzlich werden Infrastrukturobjekte eingeführt, die die unter 2.3 vorgestellten Verteilungstransparenzen sicherstellen. Dazu zählen insbesondere Bindungs- und Protokollobjekte, die Interaktionen zwischen Objekten auf verschiedenen Verarbeitungseinheiten ermöglichen. Technology-Modellierungssicht In dieser Modellierungssicht werden die zur Implementierung eines verteilten Systems geeigneten Technologien beschrieben. Betrachtet werden z.B. verwendete Kommunikationsprotokolle und Programmiersprachen. 18 2.5 ODP Modellierungssprachen 2.5 ODP Modellierungssprachen Um ein ODP-System in einer bestimmten Modellierungssicht zu repräsentieren, sind Konzepte zur Beschreibung zu definieren, durch die das Modell spezifiziert werden kann. Diese Konzepte bilden eine Modellierungssprache (engl. Viewpoint Language) zur Spezifikation des Modells in einer Modellierungssicht. Jede Sprache besitzt genügend Ausdrucksmittel, um ODPEntitäten, Applikationen und Regeln in dieser Sichtweise auszudrücken. 2.5.1 Enterprise-Modellierungssprache Die Enterprise-Modellierungssprache führt Konzepte ein, um den Zweck eines ODP-Systems im Kontext des Unternehmens zu beschreiben, in dem es installiert ist. Folgende Fragen stehen dabei im Mittelpunkt: Welches Ziel wird mit dem System innerhalb der Organisation verfolgt ? Wer benutzt das System ? Für welchen Zweck wird das System benutzt ? In welcher Wechselbeziehung steht das System mit seiner Umgebung ? Welchen Einschränkungen unterliegt das System ? Ein Unternehmen wird durch mehrere Enterprise-Objekte modelliert. Durch die Zuweisung verschiedener Rollen werden die Objekte zueinander in Beziehung gesetzt. Die Rollen bezeichnen Nutzer, Eigentümer und Anbieter von Informationen. Eine Schlüsselrolle spielt das Konzept des Vertrags (engl. Contract), der Enterprise-Objekte verbindet und gegenseitige Verpflichtungen festlegt. Ein Vertrag drückt die gemeinsamen Ziele der Objekte aus, beschreibt die Pflichten der einzelnen Objekte und nennt geltende Bestimmungen (engl. Policies), die Einschränkungen bezüglich der Objektinteraktionen beschreiben. 2.5.2 Informationsmodellierungssprache Ein ODP-System besteht aus mehreren Komponenten. Voraussetzung für den Informationsaustausch zwischen den Komponenten ist eine einheitliche Vorstellung über die Bedeutung der Informationen, die ausgetauscht bzw. verarbeitet werden. Eine unterschiedliche Interpretation der Informationen würde dazu führen, daß sich das System anders als erwartet verhält. 19 2 Das Referenzmodell für offene und verteilte Verarbeitung Konzepte der Informationsmodellierungssprache Informationsobjekte und Beziehungen: Die Informationsmodellierungssprache enthält Konzepte zur Spezifikation der Struktur und Bedeutung der in einem ODP-System gespeicherten und manipulierten Informationen. Dazu wird ein ODP-System durch Informationsobjekte und deren Beziehungen untereinander dargestellt. Ein Informationsobjekt ist eine abstrakte Entität in der realen Welt, im ODP-System oder in anderen Modellierungssichten. Die elementare Form ist das atomare Informationsobjekt, welches in vielen Spezifikationssprachen als einfacher Wert repräsentiert wird. Komplexe Informationen werden als kombinierte Informationsobjekte dargestellt, während Zusammenhänge zwischen Informationsobjekten durch Beziehungen (engl. Relationships) ausgedrückt werden. Schemata: Neben den Informationsobjekten und ihren Beziehungen besteht eine Informationsspezifikation aus einer Menge verwandter Schemata, bei denen drei Varianten unterschieden werden: invariante, statische und dynamische Schemata. Ein invariantes Schema enthält Aussagen, die bei jedem gültigen (d.h. definierten) Verhalten des Systems zu jeder Zeit wahr sein müssen. Ein statisches Schema enthält Annahmen, die zu einem gegebenen Zeitpunkt wahr sein müssen, beispielsweise kann so der initiale Zustand eines Objektes spezifiziert werden. Ein dynamisches Schema spezifiziert, wie sich Informationsobjekte während des Systemeinsatzes verändern können. Es beschreibt die erlaubten Änderungen unter Beachtung der für dieses Objekt gültigen invarianten Schemata. Zusätzlich können in einem dynamischen Schema Informationsobjekte erzeugt und zerstört werden. Verschiedene Notationen können für die Spezifikation verwendet werden, so daß die Betonung auf die Klassifizierung, die Zustände oder das Verhalten der Informationsobjekte gelegt werden kann. 2.5.3 Computational-Modellierungssprache Die Computational-Modellierungssicht beschreibt die funktionale Dekomposition des Systems und bildet damit die Grundlage für dessen Verteilung. Dazu werden Einheiten eingeführt, die jeweils eine Teilfunktionalität des Systems beschreiben. 20 2.5 ODP Modellierungssprachen Konzepte der Computational-Modellierungssprache Computational Object: Das System wird als eine Konfiguration von Computational-Objekten (COs) dargestellt. Gemäß dem Standard X.903 kann ein Objekt: Operationsaufrufe durchführen, bzw. auf solche antworten, Signale und kontinuierliche Daten senden bzw. empfangen, Schnittstellen und Objekte aus Schablonen instanziieren, Schnittstelleninstanzen binden, den eigenen Zustand verändern, Schnittstelleninstanzen und sich selbst löschen. Den Schwerpunkt der Computational-Modellierungssprache bildet das Objektmodell. In diesem werden Objekte identifiziert und Schnittstellen beschrieben, über die Interaktionen zwischen Objekten stattfinden können. Weiterhin werden die Aktionen definiert, die ein Objekt ausführen kann. Computational Interfaces: Interaktionen zwischen Objekten sind ausschließlich über Schnittstellen möglich. Eine Schnittstelle ist charakterisiert durch eine Signatur, ihrem Verhalten und einer Umgebungsvereinbarung. Die Signatur ist abhängig vom Typ der Schnittstellen, der entweder „operational“, „signal“ oder „stream“ sein kann: Die Signatur einer Signal-Schnittstelle beschreibt eine Menge von Signalen, die über diese Schnittstelle empfangen oder gesendet werden können. Ein Signal ist eine elementare, atomare Interaktion. Für jedes Signal wird angegeben, ob die Schnittstelle die Rolle des Initiators oder Empfängers einnimmt. Die Signatur einer operationalen Schnittstelle umfaßt eine Menge von Operationen, bei denen zwischen Anzeigen (engl. announcements) und Anfragen (engl. interrogations) unterschieden wird. Zur Signatur einer Anzeige gehört ihr Name, sowie Anzahl, Namen und Typen der Parameter. Für eine Operation wird zusätzlich eine Menge möglicher Terminierungen angegeben. Eine Terminierung besteht aus einem Namen, sowie der Anzahl und Typen der Parameter. Eine Stream-Schnittstelle beschreibt eine Menge kontinuierlicher Datenströme (engl. flows). Für jeden Datenstrom wird seine Rolle angegeben, er ist entweder Produzent oder Verbraucher. 21 2 Das Referenzmodell für offene und verteilte Verarbeitung Verhalten und Umgebungsvertrag: Das Verhalten einer operationalen Schnittstelle beschreibt die erlaubten Sequenzen von Aktionen des Objektes, welches diese Schnittstelle unterstützt. Das Verhalten kann interne Aktionen des Objektes umfassen und wird eingeschränkt durch die Umgebung des Objektes. Zur Spezifikation einer Schnittstelle gehört ein Umgebungsvertrag. In einem solchen Vertrag werden Parameter der Dienstgüte (engl. Quality of Service, QoS) festgelegt. Ein Objekt, das eine Instanz dieser Schnittstelle erzeugt, garantiert dabei ein bestimmtes Maß an Dienstgüte. Aber nur unter der Bedingung, daß die Umgebung ihrerseits die geforderten Voraussetzungen erfüllt. Computational Interface Template: Schnittstellen werden zur Laufzeit durch die Instanziierung von Schnittstellen-Schablonen (engl. Interface Templates) erzeugt. Eine Schablone enthält die dafür notwendigen Informationen, d.h. die Signatur, das Verhalten und die Umgebungsvereinbarung. Eine Interaktion zwischen Objekten setzt den erfolgreichen Aufbau eines Kommunikationspfades zwischen den Schnittstellen voraus. Dieser im ODP Referenzmodell als Binden (engl. Binding) bezeichnete Vorgang wird im Kapitel 2.7 beschrieben. Computational Object Template: Jedes Computational-Objekt wird aus einer Schablone instanziiert. Diese beinhaltet eine Menge von Schnittstellenschablonen, einen initialen Zustand sowie die Spezifikation des Verhaltens und der Umgebungsvereinbarung. Abbildung 2.2 zeigt die Instanziierung eines Computational-Objektes aus einer Schablone: Abbildung 2.2: Instanziierung eines Objektes aus einer Schablone computational object template interface templates Verhaltensspezifikation Umgebungsvertrag Initialer Zustand computational interface template stream interface template operationale Signatur Stream Signatur Verhaltensspezifikation Verhaltensspezifikation Umgebungsvertrag Umgebungsvertrag control interface computational object 22 stream interface 2.5 ODP Modellierungssprachen 2.5.4 Engineering-Modellierungssprache Die Engineering-Modellierungssprache konzentriert sich auf die Erbringung der notwendigen Unterstützung, um Interaktionen zwischen Objekten zu ermöglichen. Es werden Konzepte definiert, die eine verteilungstransparente Interaktion von Objekten ermöglichen. Konzepte der Engineering-Modellierungssprache Basic Engineering Objects: Die im Objektmodell identifizierten Computational-Objekte - die keine Bindungsobjekte sind - werden in der Engineering-Modellierungssicht als Basic Engineering Objects (BEOs) sichtbar. Die Computational-Schnittstellen werden auf Engineering-Schnittstellen abgebildet und ComputationalBindungen werden als lokale Bindungen oder Kanäle (engl. Channels) sichtbar. BEOs werden durch geschachtelte Gruppierungen in Beziehung zu verfügbaren Ressourcen gesetzt. Knoten, Kapsel und Cluster: Abbildung 2.3 zeigt die Konfiguration einer unabhängig verwalteten Einheit, die als Knoten (engl. Node) bezeichnet wird. Abbildung 2.3: Engineering-Konzepte Node Capsule Basic engineering object Basic engineering object Channel Cluster Basic engineering object Cluster Basic engineering object Basic engineering object Cluster Manager Capsule Basic engineering object Cluster Manager Cluster Manager Capsule Manager Capsule Manager Cluster Basic engineering object Basic engineering object Channel Nucleus 23 2 Das Referenzmodell für offene und verteilte Verarbeitung Gesteuert wird der Knoten durch einen Kern (engl. Nucleus). Dieser ist verantwortlich für die Instanziierung und Initialisierung von Objektgruppen, erlaubt den Zugriff auf die Kommunikationsressourcen des Knotens und ist in der Lage, eindeutige Bezeichner für Entitäten innerhalb des Knotens zu vergeben. Innerhalb eines Knotens existieren mehrere Kapseln (engl. Capsules). Eine Kapsel besitzt einen Teil des Speichers und der Rechenkapazität des Knotens. Er kann mit einem UNIX-Prozeß verglichen werden, der über einen eigenen, geschützten Speicher verfügt. Über den Kapselmanager läßt sich eine Kapsel steuern. Eine Kapsel enthält mehrere Cluster, in denen Basic Engineering Objects gruppiert sind. Diese zusätzliche Gruppierung erlaubt die Anwendung einer Operation auf eine definierte Teilmenge von Objekten innerhalb des Clusters, z.B. das Aktivieren oder Deaktivieren. Moderne Betriebssysteme unterstützen dieses Konzept durch die Bereitstellung von Threads (parallele Ausführungsstränge eines Prozesses). Operationen auf einem Cluster werden durch Interaktion mit dem Clustermanager ausgeführt. Das Engineering-Konzept der Gruppierung von Objekten in Clusters bereitet den Aufbau von Kommunikationspfaden zwischen BEOs vor, indem es unterschiedliche Konzepte für die Kommunikation von Objekten innerhalb eines Clusters sowie über Clustergrenzen hinweg erlaubt. Der Aufwand für die Kommunikation von Objekten innerhalb eines Clusters kann minimiert werden, indem diese Aufgabe den Werkzeugen übertragen wird, die die umgebene Kapsel erzeugt haben (Compiler, Linker). Die Kommunikation kann dann durch die Unterstützung eines sprachabhängigen Laufzeitsystems effizient organisiert werden. Kanal: Wenn Objekte aus verschiedenen Prozessen kommunizieren sollen, so ist dafür eine Engineering-Unterstützung Voraussetzung. Das RM-ODP führt dazu das Konzept des Kanals (engl. Channel) ein. Ein Kanal besteht aus einer Menge interagierender Engineering-Objekte. Diese Objekte sichern die im Kapitel 2.3 geforderten Transparenzprinzipien. Der Aufbau eines Kanals wird bei der Vorstellung der ODP Stream-Binding-Konzepte beschrieben. 2.5.5 Technology-Modellierungssprache Die technologische Spezifikation beschreibt die Implementierung eines ODPSystems in Hinsicht auf die verwendeten Hardware- und Softwarekomponenten. Der Spielraum wird dabei durch Kosten und Verfügbarkeit von Technologien eingeschränkt. Die in der technologischen Modellierungssicht enthaltenen Informationen bilden den Übergang von der Spezifikation eines Systems zu seiner Realisierung. Sie sind die Grundlage für das Testen von existierenden Standardkompenten auf ihre Konformität zur Spezifikation des Systems 24 2.6 ODP-Referenzpunkte in den anderen Modellierungssichten. Insbesondere kann untersucht werden, ob eine verwendbare Technologie eine Funktion mit hinreichender Qualität erbringen kann. Beispielsweise kann überprüft werden, ob eine Technologie das in der Computational-Modellierungssicht definierte Verhalten einer Schnittstelle garantieren kann. 2.6 ODP-Referenzpunkte Das Referenzmodell ermöglicht die Entwicklung offener, verteilter Systeme. Damit ein System die Eigenschafft „offen“ erfüllt, muß es die Schnittstellen, über die Interaktionen (engl. Interworking) mit anderen Systemen erfolgen können, frei zugänglich machen. Um die Beschreibung zu vereinheitlichen, wird das Konzept des Referenzpunktes eingeführt. Potentielle Kandidaten für Referenzpunkte sind die Schnittstellen von Objekten. Im Zusammenhang mit Referenzpunkten unterscheidet das Referenzmodell vier Kategorien von Schnittstellen. Objekte besitzen Schnittstellen zu Nutzern, zu anderen Objekten, zu Kommunikationsmechanismen und zu Speichermedien. Dementsprechend werden die Referenzpunkte in vier Kategorien eingeteilt: Abbildung 2.4: ODP Referenzpunkte User 1 ODP System A Application ODP System B 3 Application 2 Application 4 1 RP zwischen einem System und einem Nutzer (engl. perceptual) 2 RP innerhalb eines Systems (engl. programmatic) 3 RP zwischen zwei Systemen (engl. interworking) 4 RP zwischen einem System und einem externen Speichermedium (engl. interchange) Spezifikationen von Referenzpunkten können in jeder der fünf Modellierungssichten erfolgen. 2.7 ODP Stream-Binding-Konzepte Zu den grundlegenden Modellierungskonzepten von ODP gehören Objekte und Schnittstellen. Bevor eine Interaktion zwischen Objekten stattfinden kann, muß ein Kommunikationspfad zwischen den Schnittstellen aufgebaut werden. Dieser Vorgang wird als „Binden“ bezeichnet. 25 2 Das Referenzmodell für offene und verteilte Verarbeitung ODP definiert unterschiedliche Aktionen zum Binden von Schnittstellen: ODP Bindungsvorgänge implizite - nur für operationale Schnittstellen explizite primitive zusammengesetzte - in der Computational- Spezifikation - durchgeführt durch nicht modelliert - durchgeführt durch ein Bindungsobjekt beteiligtes Objekt - nur zwischen Schnittstellen des gleichen Typs möglich 2.7.1 Binden in der Computational-Modellierungssicht Ein explizites Binden ist sowohl für operationale als auch für StreamSchnittstellen definiert. Für operationale Schnittstellen ist zusätzlich ein implizites Binden spezifiziert. Diese Form wird in der ComputationalModellierung nicht beschrieben, da der Bindevorgang ausschließlich durch Engineering-Mechanismen realisiert wird. Für den Fall, daß es sich um ein explizites Binden handelt, wird nach zwei Bindungsvorgängen (engl. Binding actions) unterschieden: ein primitiver und ein zusammengesetzter Bindungsvorgang. Das primitive Binden erlaubt die direkte Bindung von zwei Schnittstellen des gleichen oder von verschiedenen Objekten. Es wird von einem der beteiligten Objekte durchgeführt. Voraussetzung ist, daß die Schnittstellen vom gleichen Typ sind und eine komplementäre Signatur (Produzent/Konsument) besitzen. Das zusammengesetzte Binden bezeichnet das Binden von Schnittstellen durch Unterstützung eines Bindungsobjektes (engl. Binding Object). Damit wird auch das Binden von mehr als zwei Schnittstellen möglich, wodurch sich Punkt-zu-Mehrpunkt bzw. Mehrpunkt-zu-Mehrpunkt Verbindungen realisieren lassen. ODP gestattet das Binden von Schnittstellen mit unterschiedlichem Typ nur unter Anwendung zusammengesetzter Bindungsaktionen durch ein Bindungsobjekt [13]. Damit stellt das ODP-Bindungsobjekt die leistungsfähigste Methode zur Bereitstellung von Stream-Verbindungen in der ComputationalModellierungssicht dar. 26 2.7 ODP Stream-Binding-Konzepte 2.7.1.1 Das ODP-Bindungsobjekt Das Bindungsobjekt wird wie jedes Computational-Objekt aus einer Schablone erzeugt. Der Initiator des Vorgangs kann eines der beteiligten Objekte oder ein außenstehendes, drittes Objekt sein: Abbildung 2.5: Instanziierung eines Bindungsobjektes aus einer Schablone Binding Object template ates instanti Computational Object (Initiator) Binding Object Durch Kenntnis der Schablone kann der Initiator die entsprechende Operation zum Binden von Schnittstellen rufen. Als Parameter werden die zu bindenden Schnittstellen übergeben. Das Bindungsobjekt instanziiert eine Steuerungsschnittstelle sowie eine passende Menge von Stream-Schnittstellen: Abbildung 2.6: Erzeugen der Schnittstellen ControlIF Computational Object (Initiator) bind ( in StreamIF1, in StreamIF2, out ControlIF ) Computational Object 1 Stream Interface 1 Binding Object Computational Object 2 Stream Interface 2 Im nächsten Schritt benutzt das Bindungsobjekt primitive Bindungsaktionen, um seine Schnittstellen mit denen der Objekte CO1 und CO2 zu binden: 27 2 Das Referenzmodell für offene und verteilte Verarbeitung Abbildung 2.7: Zusammengesetztes Binden ControlIF Computational Object (Initiator) returns ControlIF Computational Object 1 Binding Object primitive bindings Computational Object 2 Das Resultat eines zusammengesetzten Bindens ist gewöhnlich die Rückgabe einer Steuerungsschnittstelle durch das Bindungsobjekt. Damit werden der Zugriff auf weitere Funktionen und die Manipulation der Bindung möglich. Diese Operationen erlauben: Das Anfordern von Benachrichtigungen (engl. notifications) über aufgetretene Fehler oder Änderungen von Dienstgüteparametern. Zu diesem Zweck stellt das initiierende Objekt eine Schnittstelleninstanz bereit, die entsprechende Benachrichtigungsoperationen unterstützt. Das Hinzufügen oder Entfernen von Schnittstelleninstanzen zur Bindung. Die Kontrolle über Dienstgüteparameter der Bindung, insbesondere beim Transport kontinuierlicher Daten über Stream-Schnittstellen. Das Anfordern von Benachrichtigung über Ereignisse, welche von Engineering-Objekten festgestellt wurden (z.B. der Beginn oder eine Unterbrechung der Übertragung kontinuierlicher Daten). Auch hierfür wird eine Schnittstellenreferenz an das Bindungsobjekt übermittelt. Das Lösen der Bindung. 2.7.2 Binden in der Engineering-Modellierungssicht Die in der Computational-Betrachtung vorgestellten Bindungen werden im Engineering-Modell entweder als Kanäle oder als lokale Bindungen sichtbar. Wenn sich die zu bindenden Objekte innerhalb derselben Kapsel befinden, so wird die Bindung systemspezifisch realisiert und bedarf keiner weiteren Engineering-Unterstützung. Befinden sich die Objekte aber in unterschiedlichen Kapseln (oder sogar in verschiedenen Knoten), so realisiert ein Kanal die nötigen Verteilungstransparenzen. 28 2.7 ODP Stream-Binding-Konzepte Abbildung 2.8 zeigt den Aufbau eines Kanals und verdeutlicht den Zusammenhang zur Computational-Betrachtung des Bindungsobjektes. Ein Kanal besteht aus einer Konfiguration von Stub, Binder und Protocol Object. Abbildung 2.8: Konfiguration eines Kanals ControlIF Binding Object Computational Object Computational Object Computational specification Engineering specification Node Node ControlIF Capsule Cluster Basic Engineering Object Channel Control Object Cluster Basic Engineering Object Stub Stub Binder Binder Protocol Object Nucleus Channel Capsule Protocol Object Nucleus Stubs interagieren direkt mit dem Basic-Engineering-Objekt. Sie kodieren und dekodieren die Parameter operationaler Schnittstellen (engl. marshalling), wofür sie Informationen über den Typ der unterstützten Schnittstelle benötigen. Die beiden anderen Bestandteile Binder und Protocol Object benötigen keine typspezifischen Informationen über die Schnittstelle, da sie komplette Nachrichten übertragen, ohne sie interpretieren zu müssen. Das Binder-Element stellt die Ende-zu-Ende Integrität des Kanals sicher und behandelt den Ausfall und die Migration von Objekten. Damit ist es verantwortlich für viele der Verteilungstransparenzen. Protocol Object realisiert die Interaktionen zwischen den Binder-Elementen in der geforderten Qualität und Zuverlässigkeit. Falls der Kanal technische oder organisatorische Grenzen überschreitet, so ist ein interceptor notwendig. Dieser ist in der Lage, Format- und Protokollumsetzungen vorzunehmen oder die Berechtigung des Zugriffs zu kontrollieren. 29 2 Das Referenzmodell für offene und verteilte Verarbeitung 2.7.2.1 Etablierung eines Kanals Das Binden in der Engineering-Modellierungssicht bedeutet das Aufbauen eines Kanals zwischen zwei oder mehreren BEOs. Die erste Voraussetzung dafür ist, daß die zu bindenden Schnittstellen identifiziert werden können. Wenn eine Schnittstelle instanziiert wird, so wird von der Laufzeitumgebung und dem Kern des Knotens ein eindeutiger Bezeichner vergeben. Dieser wird als Schnittstellenreferenz (engl. Interface Reference) bezeichnet. Die Empfehlung X.930 [14] beschreibt den konzeptionellen Aufbau einer Referenz, ihre Bestandteile sind: eine Kennzeichnung des Typs (operational, stream oder signal), die Adresse zur Zeit der Instanziierung (bezeichnet den Knoten innerhalb des Netzes und innerhalb des Knotens eindeutig die Schnittstelleninstanz), zusätzliche, vom Typ abhängige Informationen. Das Binden der Schnittstellen wird in Zusammenarbeit mit den Kernen der beteiligten Knoten durchgeführt. Daher muß ein Kern beim Erzeugen einer Schnittstellenreferenz hinreichende Informationen in der Referenz hinterlegen, wie der Kern zum Binden kontaktiert werden kann. Das bedeutet, daß der Kern Kommunikationsschnittstellen identifizieren muß, an denen eine Kern-Kern-Interaktion stattfinden kann. Dazu gehören das verwendete Protokoll und dafür spezifische Parameter. Die für die Kern-Kern Interaktion verwendeten Schnittstellen und Protokolle sind im allgemeinen unabhängig von denen, die für die Bindung der BEOs ausgewählt werden. Im Referenzmodell ODP ist durch das Bindungsobjekt ein Konzept der Computational-Modellierungssicht zur Bindung von Stream-Schnittstellen beschrieben. In der Engineering-Modellierungssicht wird durch Kanäle die verteilungstransparente Interaktion zwischen BEOs unterstützt. Aufbauend auf diesen Konzepten kann der Transport kontinuierlicher Daten zwischen multimedialen Anwendungen realisiert werden. 30 3 Realisierung der ODP Stream-Binding-Konzepte 3.1 Einführung Bereits mehrere Konsortien1 haben Spezifikationen verteilter Verarbeitungsumgebungen für multimediale Dienste entwickelt. Unter ihnen Microsoft, DAVIC (Digital Audio-Visual Council), IMA (Interactive Multimedia Association, OMG und das TINA-Konsortium. Allen gemeinsam ist ein objektorientierter Ansatz und eine Verankerung innerhalb der Telekommunikations- und Computerindustrie. Sie unterscheiden sich jedoch in der Akzeptanz bei den Herstellern. Eine breite Unterstützung zu erhalten, versprechen der von OMG veröffentlichte Standard „Control and Management of Audio/Video Streams“ (AVS) sowie die TINA-Architektur. AVS bildet eine geeignete Grundlage für die Entwicklung multimedialer Anwendungen, während durch TINA u.a. eine detaillierte Architektur von Transportnetzen beschrieben ist. Die wesentlichen Konzepte von AVS und TINA werden im folgenden Kapitel erläutert, bevor in Kapitel 5 das Modell eines integrierten Ansatzes vorgestellt wird. Es werden die ODP-Konzepte für die Realisierung verteilter multimedialer Dienste spezialisiert. Die Betrachtungen konzentrieren sich dabei auf das Binden von Stream-Schnittstellen. Die damit in Zusammenhang stehenden Konzepte der Informations, Computational- und Engineering- Modellierungssichten werden konkretisiert. Aus den Betrachtungen zu beiden Standards werden sich Ansatzpunkte ergeben, an denen mit einer Integration von AVS in die TINA-Architektur begonnen werden kann. 1 Der Begriff Konsortium steht hier verallgemeinernd für Organisation, Gruppen und einzelne Unternehmen. 31 3 Realisierung der ODP Stream-Binding-Konzepte 3.2 Telecommunications Information Networking Architecture Das TINA Konsortium (Telecommunications Information Networking Architecture Consortium) hat sich 1993 als ein Zusammenschluß international führender Firmen der Computer- und Telekommunikationsindustrie gegründet. Ziel der auf fünf Jahre ausgelegten Unternehmung war es, eine offene Architektur für verteilte Anwendungen der Telekommunikation zu definieren. Auf dieser Grundlage sollen eine schnelle Einführung und ein effizientes Management komplexer Anwendungen möglich sein. Die Entwicklung wurde durch Laborexperimente und Feldversuche begleitet, bei denen die Architektur ständig auf ihre Anwendbarkeit überprüft wurde. Obwohl die Spezifikation noch nicht abgeschlossen ist, begann bereits die zweite Phase mit dem Ziel, marktreife Produkte zu entwickeln. Im folgenden Abschnitt werden die Grundlagen der durch das TINAKonsortium definierten Architektur vorgestellt. 3.2.1 Überblick über die TINA-Architektur Die Architektur basiert auf objektorientierten Technologien. Sie integriert Ergebnisse von ITU-T, vom ATM-Forum, von OMG und von anderen Organisationen. Sie wurde auf Grundlage des Referenzmodells für ODP entwickelt und spezialisiert dessen Konzepte für die Anforderungen verteilter Telekommunikationsanwendungen. TINA setzt das Konzept der Trennung zwischen Anwendungen und Kommunikationsinfrastruktur um, deutlich erkennbar an der Unterteilung der Architektur. Damit sind eine unabhängige Weiterentwicklung einzelner Komponenten sowie die Integration bereits vorhandener, im allgemeinen TINA-unbewußter Anwendungen möglich. 3.2.2 TINA-Teilarchitekturen Die TINA-Architektur ist in die folgenden vier Komponenten gegliedert: Die Servicearchitektur definiert Konzepte zum Design und zur Implementierung von Telekommunikationsdiensten. Es wird ein allgemeines Modell zum Abonnieren, zum Zugriff und zur Nutzung von Diensten beschrieben. Die Netzarchitektur beschreibt das Management von Netzen, dazu gehört auch der Aufbau von Verbindungen. Die Computing-Architektur beschreibt die Umgebung, die Objektinteraktionen ermöglicht. Sie wird als Distributed Processing Environment (DPE) bezeichnet. 32 3.2 Telecommunications Information Networking Architecture Die Managementarchitektur beschreibt Komponenten zur Steuerung, Verwaltung und Abrechnung der Nutzung von Ressourcen. Die Architektur umfaßt eine Vielzahl von Modellen und Prinzipien, von denen nicht alle zum Verständnis der Stream-Binding-Konzepte betrachtet werden müssen. Notwendig sind der Aufbau der Verarbeitungsumgebung, die Einordnung der Anwendungen in die Servicearchitektur, die Beschreibung von Interaktionspunkten und der Aufbau von Stream-Flow- und NetworkFlow-Verbindungen. 3.2.3 Verteilte Verarbeitungsumgebung - DPE Eines der Hauptziele des TINA-Konsortiums war die Spezifikation einer verteilten Verarbeitungsumgebung (engl. Distributed Processing Environment, DPE). In der DPE-Spezifikation [16] werden die ODP-Engineering-Konzepte einer verteilten Verarbeitungsumgebung konkretisiert. Diese Plattform bildet die Grundlage, auf der TINA-Anwendungen entwickelt werden können. In der Computational-Modellierungssicht wird Objektinteraktion als Aufruf von Funktionen an operationalen Schnittstellen bzw. als Transport kontinuierlicher Daten über Stream-Schnittstellen beschrieben. Im Mittelpunkt stehen dabei die Beschreibung von Computational-Objekten und die Definition von Schnittstellen, über die Interaktionen stattfinden können. Die Engineering-Modellierungssicht beschreibt, wie Objektinteraktion realisiert werden kann. In dieser Ebene ist TINA-DPE eingeordnet. Die Umgebung erfüllt die vom Referenzmodell ODP an eine Engineering-Spezifikation gestellten Transparenz-Forderungen. Abbildung 3.1 zeigt den Aufbau der TINAInfrastruktur [21]. Abbildung 3.1: TINA DPE-Infrastruktur applications NCCE A DPE node A DPE platform B NCCE B DPE node B DPE platform C NCCE C infrastructure DPE platform A DPE node C kernel transport network 33 3 Realisierung der ODP Stream-Binding-Konzepte TINA-Anwendungen werden innerhalb von DPE-Knoten ausgeführt. Jeder Knoten enthält eine DPE-Plattform, die folgende Aufgaben übernimmt: Unterstützung des Objektlebenszyklus (Instanziierung, Aktivierung und Deaktivierung von Engineering-Computational-Objekten2 (eCOs)). Unterstützung von Objektkommunikation über operationale und Stream-Schnittstellen. Unterstützung von Anwendungen durch zusätzliche Dienste. (z.B. Namensdienst) Aus Anwendungssicht abstrahiert die DPE-Plattform von der verwendeten Verarbeitungs- und Kommunikations-Hardware (Native Computing and Communication Environment). Für Ende-zu-Ende-Verbindungen zwischen DPE-Knoten ist das kernel-Transportnetz (kernel Transport Network) verantwortlich. Die DPE-Plattform ermöglicht Interaktionen zwischen Objekten verschiedener DPE-Knoten. In der DPE-Spezifikation [21] wird OMG-CORBA (Common Object Request Broker Architecture) als Basistechnolgie favorisiert. CORBA beschreibt eine Architektur für die Interaktion verteilter Objekte. Wichtigster Bestandteil ist ORB (Object Request Broker). ORB ermöglicht die Ausführung von Operationen an entfernten Objekten. Viele der CORBA-Dienste wurden mit einigen Erweiterungen als TINA-DPE Objektdienste integriert, wie z.B. Notification-, Trading- und Naming-Service. Abbildung 3.1 verdeutlicht die prinzipielle Trennung zwischen Anwendung und DPE-Plattform. Damit wird eine von Transporttechnologien abstrahierende Infrastruktur geschaffen, auf deren Grundlage TINA-Anwendungen entwickelt und betrieben werden können. Die Interaktionen zwischen Anwendung und DPE-Plattform, zwischen DPE-Plattformen untereinander sowie zwischen DPE-Plattform und kTN werden durch Referenzpunkte (engl. Reference Points, RPs) definiert. 3.2.4 Referenzpunkte TINA nutzt verschiedene Konzepte des Referenzmodells ODP. Dazu zählen die in Abschnitt 2.6 vorgestellten Referenzpunkte. Von den vier Kategorien verwendet die TINA-Architektur die Interworking und Interchange RPs und bezeichnet sie als Intra-Domain- bzw. Inter-Domain-Referenzpunkte. Domänen sind ein Konzept der Enterprise-Modellierungssicht und basieren auf Eigentum an Ressourcen. 2 Ein Computational-Objekt wird in der Engineering-Modellierungssicht durch ein Engineering-Computational-Objekt repräsentiert. 34 3.2 Telecommunications Information Networking Architecture Anhand typischer Interessen und Funktionen wird eine Menge von Business Roles identifiziert. Ein Konsument (engl. Consumer) ist der Verbraucher von TINADiensten. Seine Teilnahme ist nicht durch das Erzielen von Gewinnen motiviert. Ein Makler (engl. Broker) bietet Informationen zum Finden von Anbietern und Diensten an. Ein Drittanbieter (engl. 3rd-party Service Provider) bietet Dienste zum Weiterverkauf an. Ein Wiederverkäufer (engl. Retailer) bietet dem Konsumenten Dienste an, die von einem Drittanbieter eingekauft wurden. Ein Verbindungsanbieter (engl. Connectivity Provider) bietet Dienste zum Datentransport an. Da der Vertreter einer Domäne gleichzeitig mehrere Business Roles einnehmen kann (z.B. Drittanbieter gegenüber einem Konsumenten und Konsument gegenüber einem Verbdindungsanbieter), werden Referenzpunkte nicht zwischen Domänen sondern zwischen Business Roles identifiziert. Abbildung 3.2 zeigt die im TINA Business-Modell [28] bis jetzt identifizierten Referenzpunkte: Abbildung 3.2: TINA Business Roles und Business Relationships Business Relationships: Application related Broker Ret Bkr Bkr Bkr Ret Consumer Retailer 3Pty Bkr 3rd party Service Provider DPE related RtR TCon TCon ConS 3Pty ConS Connectivity Provider CSLN Bkr LNFed Retailer 3Pty 3rd Party Bkr Broker TCon Terminal Connection ConS Connectivity Service LNFed Layer Network Federation CLSN Client Server Layer Network TCon Ein Referenzpunkt wird in mehreren Modellierungssichten spezifiziert, wobei die Informations- und die Computational-Beschreibung eine zentrale Rolle einnehmen. 35 3 Realisierung der ODP Stream-Binding-Konzepte Das Informationsmodell beschreibt die Informationen, die ausgetauscht werden. Die Computational-Modellierung beschreibt das Objektmodell und das dynamische Verhalten von Objekten, z.B in Form von Event Traces. TINA verwendet für die Beschreibung der Objekte ODL (Object Definition Language) [22]. Für jedes Objekt werden eine Verhaltensspezifikation in natürlicher (englischer) Sprache und eine Spezifikation der Schnittstellen des Objektes gegeben. Das Informationsmodell sowie Event Traces werden in OMTNotation beschrieben. 3.2.5 Servicearchitektur TINA definiert ein allgemeines Sitzungsmodell (engl. Session Model) für alle Dienste einer TINA-konformen Umgebung. Die Definition eines Dienstes ist sehr weit gefaßt und beschreibt ihn als eine Menge von Funktionen, die von einem Diensterbringer angeboten wird. Die Teilnehmer eines Dienstes werden durch eine Sitzung in eine temporäre (für die Zeit der Nutzung existierende) Relation gesetzt. In der Computational-Modellierungssicht setzt eine Sitzung die bei einem Dienst beteiligten Computational-Objekte in Relation zueinander. Die Servicearchitektur [27] definiert eine grundsätzliche Trennung zwischen dem Zugang (engl. Access) und der Nutzung (engl. Usage) des Dienstes. Während einer Access-Sitzung autorisiert sich ein potentieller Nutzer gegenüber dem Anbieter eines Dienstes. Verläuft der Vorgang erfolgreich, instanziiert der Anbieter eine Service-Sitzung und übermittelt dem Nutzer die notwendigen Informationen zum Zugriff. Probleme der Autorisierung und Sicherheit werden in dieser Arbeit nicht betrachtet. Innerhalb der Usage-Sitzung wird weiter in eine Service- und eine Communication-Sitzung unterteilt. Die Service-Sitzung bildet den Kontext einer temporären Beziehung zwischen Teilnehmern eines Dienstes. Sie umfaßt Informationen und Funktionen zur spezifischen Steuerung des Dienstes, der Vereinbarung von Dienstparametern sowie der Kontrolle über die Dienstteilnehmer. Die Communication-Sitzung repräsentiert eine allgemeine Sicht auf StreamVerbindungen und eine technologieunabhängige Beschreibung von Kommunikationsressourcen zur Bereitstellung von Ende-zu-Ende Verbindungen. Eine Communication-Sitzung kann mehrere Verbindungen steuern, die vom Typ Punkt-zu-Punkt oder auch Punkt-zu-Mehrpunkt sein können. Für die technologische Realisierung von Ende-zu-Ende-Verbindungen auf der Grundlage verfügbarer Kommunikationsressourcen (Netze) startet eine Communication-Sitzung ein oder mehrere Connectivity-Sitzungen. 36 3.2 Telecommunications Information Networking Architecture Eine Connectivity-Sitzung realisiert Netzverbindungen und verbirgt vor der Communication-Sitzung netzwerktopologische Gegebenheiten. Dazu zählt die Einbeziehung mehrerer Verbindungsanbieter oder das Aufbauen von Verbindungen über Teilnetze mit unterschiedlichen Technologien. Abbildung 3.3 zeigt eine integrierte Übersicht: Abbildung 3.3: TINA Sitzungen Consumer Domain Retailer Domain Access Session 3rd Party Domain Access Session Service Session 11 00 00 11 1 0 Communication Session 1 0 0 1 11 00 0 1 0 1 11 00 01 1 0 01 1 0 000 111 0 1 0 1 000 111 0 1 0 1 000 111 01 1 0 Connectivity Provider Domain Connectivity Session 3.2.6 TINA-Connection-Management Im Abschnitt 3.2.5 wurde erläutert, daß eine Communication-Sitzung eine Connectivity-Sitzung startet, um für Stream-Verbindungen zwischen Anwendungen eine Menge von Netzverbindungen aufbauen zu lassen. Die Trennung in zwei Sitzungen entspricht dem Ansatz, Verbindungen aus einer logischen, applikationsorientierten sowie einer netzwerkorientierten Sichtweise zu beschreiben. Bei der Modellierung des TINA-Connection-Managements in der Informations- und Computational-Modellierungssicht werden StreamFlowund Network-Flow-Verbindungen unterschieden. Mit diesen Ressourcen arbeitet das TINA-Connection-Management. 3.2.6.1 Informationsmodellierung des Connection-Managements Die Spezifikation des Network Resource Information-Modells NRIM [26] beschreibt das Informationsmodell eines TINA-Netzes. 37 3 Realisierung der ODP Stream-Binding-Konzepte Um unterschiedlichen Schwerpunkten bei der Betrachtung gerecht zu werden, wurde das Modell in vier Fragmente geteilt: (1) Network Fragment: Es wird die topologische Struktur eines Netzes beschrieben. Das gesamtheitlich als Connectivity Layer Network (CLNW) bezeichnete Netz wird als Komposition einzelner Layer Networks (LNW) dargestellt. (2) Connectivity Fragment: Es werden Informationsobjekte und Beziehungen definiert, die für die Beschreibung von Verbindungen notwendig sind. (3) Termination Point Fragment: Die charakteristischen Informationen der Terminierungspunkte von Verbindungen werden beschrieben. (4) Other Fragments: Es werden Informationsobjekte für die Abbrechnung von Leistungen und der Umgang mit Fehlersituationen beschrieben. Die Fragmente (2) und (3) sind für eine Integration von AVS-konformen Produkten auf der Basis eines unveränderten TINA-Netzes wichtig, da beide Fragmente in Beziehung zur Schnittstelle zwischen DPE und Connectivity Layer-Netz stehen. Abbildung 3.4 zeigt die logische Sicht auf ein TINA-Netz. Die Realisierung von Verbindungen über unterschiedliche Teilnetze wird vor den Anwendungen verborgen, sodaß sie auf Anwendungsebene als Ende-zu-EndeVerbindungen sichtbar sind. Abbildung 3.4: Stream-Binding auf Anwendungsebene Application (CPE attached to network) CO Stream Interface CO TINA Network CO Stream Flow Connection Source Stream Flow End Point Sink Stream Flow End Point Die Anwendungen verfügen über Stream-Schnittstellen, wie sie im ODPKapitel 2.5.3 eingeführt wurden. 38 3.2 Telecommunications Information Networking Architecture Eine Stream-Schnittstelle ist eine Menge von Quellen und Senken, die innerhalb der TINA-Architektur als Stream Flow End Points (SFEPs) bezeichnet werden. Ein SFEP-Objekt beschreibt einen Terminierungspunkt, der Daten empfängt oder sendet. SFEP ist ein Informationsobjekt und besitzt die folgenden Attribute: Attribut Bedeutung Name Bezeichnung des SFEP-Objektes. Direction SFEPs sind unidirektional. Direction kann die Werte source oder sink annehmen. Administrative State Kann den Zustand locked oder unlocked annehmen. Unlocked zeigt an, daß eine Verbindung besteht und Daten transportiert werden können. FlowQoS Beschreibt applikationsbezogene QoS-Parameter. Verbindung zwischen SFEPs werden durch Stream-Flow-Verbindungen (Stream Flow Connections, SFCs) modelliert. SFCs transportieren Informationen in unidirektionaler Weise von einer Quelle zu einer oder mehreren Senken. Verbindungsgraphen Der Aufbau sowie die Modifikation von Verbindungen läßt sich in der Informationsmodellierungssicht durch die Manipulation von Verbindsgraphen (engl. Connection Graph, CG) beschreiben. Sie erlauben eine Modellierung auf unterschiedlichen Abstraktionsniveaus. Das aus dem Eurescom Projekt P 103 [18] stammende Konzept wurde in die TINA-Architektur vereinfacht übernommen. Von dem in Abbildung 3.5 gezeigten abstrakten Klassendiagramm können spezialisierte Graphen abgeleitet werden. Abbildung 3.5: Klassendiagramm eines abstrakten Verbindungsgraphen Connection Graph 1..* Flow Connection ConnectionTopology Flow Connection Branch OperationalState Root Flow End Point 1..* Leaf Directionality 39 3 Realisierung der ODP Stream-Binding-Konzepte Ein Verbindungsgraph enthält eine oder mehrere Flow-Verbindungen (engl. Flow Connections, FCs). Eine Flow-Verbindung setzt Flow-Endpunkte (engl. Flow End Points, FEPs) in Relation zueinander. Das Attribut ConnectionTopology beschreibt die Topologie der Verbindung. Genau ein FEP-Objekt nimmt die Rolle „Root“ (Quelle) und mindestens ein Objekt die Rolle „Leaf“ (Senke) ein. Dadurch lassen sich Punkt-zu-Mehrpunkt Verbindungen modellieren. Eine solche Verbindung besteht aus einzelnen Punkt-zu-Punkt Verbindungen zwischen einem Leaf- und dem gemeinsamen Root-Terminierungspunkt. Ein Zweig (engl. Branch) repräsentiert eine solche Beziehung zwischen einer Flow-Verbindung und einem LeafTerminierungspunkt. Den Zustand des Zweiges beschreibt das Attribut OperationalState. Neben der Eigenschaft, Quelle oder Senke von Informationen zu sein (Directionality), besitzt ein Terminierungspunkt weitere Attribute, die vom Niveau der Abstraktion abhängig sind. Vom abstrakten Verbindungsgraphen wird für die Modellierung von Verbindungen innerhalb der TINA-Sitzungen ein Logical-, Nodal- und PhysicalVerbindungsgraph abgeleitet. Das Konzept der Verbindungsgraphen wird innerhalb der Communicationund Connectivity-Sitzung verwendet, um Anforderungen zum Aufbau von Verbindungen auszudrücken. Die Communication-Sitzung beschreibt Verbindungen auf Anwendungsebene. Die innerhalb einer Sitzung aufgebauten Verbindungen werden in einem Logical-Connection-Graphen (LC-Graphen) gruppiert. Abbildung 3.6: Klassendiagramm eines Logical-Connection-Graphen Logical Connection Graph 1..* Stream Flow Connection ConnectionTopology Stream Flow Connection Branch { xor } Root Stream Flow End Point OperationalState Leaf 1..* Ein LC-Graph enthält Stream-Flow-Verbindungen (SFCs), die Stream-FlowEndpunkte (SFEPs) zueinander in Relation setzen. Während der abstrakte Graph bidirektionale Verbindungen zuläßt, beschreibt das Informationsmo- 40 3.2 Telecommunications Information Networking Architecture dell SFCs immer als unidirektional. Diese Eigenschaft drückt sich in der Beschränkung aus, daß ein Endpunkt entweder die Rolle „Root“ oder „Leaf“ einnimmt. Ein „Root“-Endpunkt kann an mehrere „Leaf“-Endpunkte gebunden sein, wodurch Punkt-zu-Mehrpunkt Verbindungen modelliert werden können. Die SFEP-Attribute beschreiben die Charakteristik der kontinuierlichen Daten, die von einem SFEP-Objekt gesendet bzw. empfangen werden. Der Austausch kontinuierlicher Daten zwischen Anwendungen, modelliert durch LC-Graphen, benötigt eine Unterstützung auf Netzebene. Auf physikalischer Ebene ist ein TINA-Netz in zwei Hauptteile gegliedert. Den einen Teil bildet das Connectivity-Layer-Netz, den anderen bilden die kommunikationsbezogenen Ressourcen innerhalb eines DPE-Knotens. Dieser kann entweder ein multimediales Endgerät (z.B. Video-Telefon) oder ein Computer mit TINA-konformen Anwendungen sein. Das Connectivity-Layer-Netz ist die Zusammenfassung aller Komponenten des Transportnetzes. Das Transportnetz übernimmt bzw. übergibt Daten an einem Network-FlowEndpunkt (NFEP). Ein NFEP-Objekt ist ein Informationsobjekt, das einen technologieunabhängigen Endpunkt einer Netzverbindung repräsentiert. Die Verbindung zwischen zwei oder mehreren NFEP-Objekten wird durch eine Network-Flow-Verbindung (NFC) modelliert. Im Gegensatz zu einem SFEPObjekt kann ein NFEP-Objekt gleichzeitig Quelle als auch Senke von Informationen sein. Damit kann eine Network-Flow-Verbindung eine der folgenden Konfigurationen besitzen: Eine bidirektionale Punkt-zu-Punkt-Verbindung zwischen zwei NFEPObjekten. Informationen werden in beide Richtungen übertragen. Eine unidirektionale Punkt-zu-Punkt-Verbindung zwischen zwei NFEP-Objekten. Informationen werden vom „Root“-NFEP zum „Leaf“NFEP übertragen. Eine unidirektionale Punkt-zu-Mehrpunkt-Verbindung. Informationen werden von einem „Root“-NFEP zu mehreren „Leaf“-NFEPs übertragen. Network-Flow-Verbindungen bilden einen Physical-Connection-Graphen, das Klassendiagramm entspricht dem in Abbildung 3.6 gezeigten. Die Einschränkung, daß ein Endpunkt nur eine der beiden Rollen annehmen kann, gilt nur für den Fall, daß die Network-Flow-Verbindung die Konfiguration Punkt-zuMehrpunkt besitzt. Die Unterscheidung in anwendungs- und netzbezogene Endpunkte erfordert die Modellierung einer weiteren Ressource, der Terminal-Flow-Verbindungen (TFCs). Diese entstehen durch das Binden von SFEP- an NFEP-Objekte. 41 3 Realisierung der ODP Stream-Binding-Konzepte Die Spezifikation des Network-Resource-Information-Modells erlaubt auch eine Terminal-Flow-Verbindung zwischen zwei SFEP-Objekten (Kardinalität 1,2 im Nodal-Connection-Graphen). Voraussetzung ist, daß sich alle Endpunkte innerhalb des gleichen Knotens (CPE) befinden. Damit können Stream-Flow-Verbindungen innerhalb eines Knotens modelliert werden. Die Informationsobjekte SFEP und NFEP beschreiben die Charakteristik der übertragenen Informationen auf unterschiedlichem Niveau. Einem SFEPObjekt sind anwendungsorientierte QoS-Parameter zugeordnet, während einem NFEP-Objekt netzbezogene Parameter zugeordnet sind. Die Abbildung bzw. Anpassung der Parameter ist Aufgabe der Terminal-Flow-Verbindung. Abbildung 3.7: Dekomposition einer Stream-Flow-Verbindung in zwei Terminal- und eine Network-Flow-Verbindung DPE Node Terminal Flow Connection Transport Network DPE Node Terminal Flow Connection Application Application Network Flow Connection SFEP NFEP NFEP SFEP Es ist möglich, daß mehrere TFCs in einem Terminal ein gemeinsames NFEP-Objekt haben, so daß ein Multiplexing mehrerer Stream-FlowVerbindungen auf eine einzige Network-Flow-Verbindung möglich ist. Umgekehrt können mehrere NFEP-Objekte einem SFEP-Objekt zugeordnet werden, sodaß eine Stream-Flow-Verbindung durch mehrere Network-FlowVerbindungen unterstützt werden kann. Eine Terminal-Flow-Verbindung bildet einen unidirektionalen Transportweg zwischen Endpunkten unterschiedlichen Typs, die sich immer im gleichen DPE-Knoten befinden. Da es sich um eine Punkt-zu-Punkt-Verbindung handelt, existieren keine Zweige im Verbindungsgraphen. Abbildung 3.8: Klassendiagramm eines Nodal-Connection-Graphen Nodal Connection Graph 1..* Stream Flow End Point 42 1,2 Terminal Flow Connection 0,1 Network Flow End Point 3.2 Telecommunications Information Networking Architecture Innerhalb der Communication-Sitzung können Verbindungen mit Hilfe von Verbindungsgraphen und den bereits vorgestellten Informationsobjekten beschrieben werden. Die Communication-Sitzung startet eine ConnectivitySitzung, um Network-Flow-Verbindungen durch verfügbare Netzressourcen zu realisieren. Die TINA-Netzarchitektur wird durch ein sehr detailliertes Informationsmodell beschrieben. In dieser Arbeit ist die Schnittstelle zwischen Transportnetz und DPE-Knoten interessant, und damit auch die als Informationsobjekte modellierten Terminierungspunkte Network Trail Termination Point (NWTTP) und aufgrund einer Kolokationsbeziehung das Objekt Network Connection Termination Point (NWCTP). Abbildung 3.9: Struktur eines Layer-Netzes NWCTP NWTTP Subnetwork1 NWTTP Subnetwork2 Subnetwork Connection Subnetwork3 Link Connection Trail Verbindungen zwischen DPE-Knoten werden durch Trails repräsentiert. Trails terminieren in NWTTPs, die die charakteristischen Parameter einer Ende-zu-Ende-Verbindung beschreiben. Die NRIM-Spezifikation motiviert, Spezialisierungen von NWCTP abzuleiten, die technologieabhängige Attribute enthalten. Ein Layer-Netz besteht aus mehreren Teilnetzen (engl. Subnetworks), die durch Links miteinander verbunden sind. Die Bereitstellung einer TrailVerbindung erfordert den Aufbau von Verbindungen in allen Teilnetzen, die durch die Trail-Verbindung überspannt werden. Wie Abbildung 3.9 verdeutlicht, ist einem Trail-Terminierungspunkt immer ein NWCTP am gleichen Ort zugewiesen. Der vorgestellte Teil des Informationsmodells hat Terminierungspunkte und Verbindungen auf unterschiedlichem Niveau gezeigt, die für die Anbindung eines DPE-Knotens an ein Netz wichtig sind. 43 3 Realisierung der ODP Stream-Binding-Konzepte 3.2.6.2 Computational-Modellierung des Connection-Managements In der Computational-Modellierungssicht wird das Connection-Management durch eine Menge interagierender Computational-Objekte beschrieben. Im Gegensatz zu anderen Ansätzen, bei denen Verbindungen durch eine zentrale Instanz gesteuert werden3 , wird das Management von Ressourcen verteilt durchgeführt. Dadurch wird eine Steuerung großer Netze möglich, und es werden Anforderungen an Skalierbarkeit und administrative Autonomie erfüllt. Eine ODL-Beschreibung der Computational-Objekte ist im Anhang von Network Components Specification [24] nachzulesen. Die Schnittstellen, an denen Objekte über Domängrenzen hinweg interagieren, sind in den Computational-Spezfikationen der jeweiligen Referenzpunkte beschrieben. Abbildung 3.10: Computational-Modellierungssicht Ret−RP Service Provider Domain UAP SSM Service Session TCSM CSM Communication Session CC Connectivity Session FCC TCon−RP LNC TLA TM Consumer Domain Connectivity Provider Domain UAP: User Application TCSM: Terminal Communication Session Manager TLA: Layer Network SSM: Service Session Manager FCC: Flow Connection Controller CSM: Communication Session Manager LNC: Layer Network Coordinator CC: Connection Coordinator TM: Trail Manager Terminal Layer Adapter Interaktionen zwischen Computational-Objekten UAP repräsentiert eine TINA-Anwendung in der Domäne des Nutzers. Die Anwendung verfügt i.A. über Stream-Schnittstellen und hat somit Bedarf an 3 Einen 44 solchen Ansatz stellt OMG Audio/Video Streams dar. 3.2 Telecommunications Information Networking Architecture der Bereitstellung von Flow-Verbindungen zur Übertragung kontinuierlicher Daten. In jedem Terminal existiert genau ein Terminal-Communication-SessionManager-Objekt (TCSM). TCSM ist für die Zuordnung von SFEPs zu NFEPs verantwortlich. NFEPs werden durch eines der Terminal-Layer-AdapterObjekte (TLA) bereitgestellt. Zur Nutzung eines vom Provider angebotenen Dienstes interagiert die Anwendung mit einem dienstspezifischen Service-Session-Manager-Objekt (SSM). Zu den Aufgaben des SSM-Objektes zählt die Steuerung über die Teilnehmer der Sitzung. Dazu besitzt es Operationen zum Hinzufügen, Einladen und Entfernen von Nutzern, sowie zur Modifikation der Bindungen zwischen Stream-Schnittstellen. Multimediale Dienste erfordern die Übertragung kontinuierlicher Daten zwischen den Teilnehmern. Um Stream-Flow-Verbindungen zwischen Anwendungen bereitzustellen, erzeugt das SSM-Objekt einen CommunicationSession-Manager (CSM). Ein CSM-Objekt kann eine oder mehrere StreamFlow-Verbindungen steuern. Dazu bietet es Operationen zum Erzeugen und Aktivieren von Stream-Flow-Verbindungen sowie zum Hinzufügen und Entfernen von Zweigen bestehender Verbindungen an. Stream-FlowVerbindungen werden durch die in Abschnitt 3.2.6.1 vorgestellten Logical Connection-Graphen beschrieben. Das CSM-Objekt ist verantwortlich für die Abbildung der Stream-Flow- auf Network-Flow-Verbindungen. CSM beauftragt Objekte der Verbindungsanbieterdomäne mit der Bereitstellung der Network-Flow-Verbindungen. Wähend dieses Prozesses wird eine Trail-Verbindung bereitgestellt. Für den Trail-Terminierungspunkt (NWTTP) wird vom Terminal Layer Adapter ein NFEP-Objekt erzeugt und an Terminal Communication Session Manager übermittelt. TCSM kann durch Zuordnung der NFEPs zu SFEPs des ssUAPObjektes die nodalen Bindung abschliessen. Sobald die Terminal-Flow-Verbindungen aufgebaut sind, ist der StreamBinding-Prozeß mit ssUAP abgeschlossen. Der Dienst kann gestartet und kontinuierliche Daten zwischen den Stream-Schnittstellen transportiert werden. 45 3 Realisierung der ODP Stream-Binding-Konzepte 3.3 OMG Control and Management of Audio / Video Streams 3.3.1 Überblick über der AVS-Standard Die Verfügbarkeit hoher Netzbandbreiten und die steigende Leistungsfähigkeit von CPUs führen zu einer wachsenden Bedeutung von Anwendungen, die eine Übertragung kontinuierlicher Daten benötigen. Aktuelle Netztechnologien schaffen die technische Grundlage für eine steigende Qualität multimedialer Übertragungen. Verteilte Verarbeitungsumgebungen wie CORBA [6] unterstützen eine Anfrage/Antwort Semantik verteilter Anwendungen. Implementierungen des CORBA Internet-Inter-ORB-Protokolls (IIOP) führen für jede Anfrage eine Speicheranforderung aus und kopieren die Daten mehrmals, wodurch die Latenzzeit deutlich erhöht wird. Zusätzlich benötigt das Kodieren und Dekodieren der Daten viel CPU-Zeit und führt zu einem geringen Datendurchsatz. Wenn Erweiterungen möglich sind, die einen hohen Durchsatz mit geringer Latenzzeit ermöglichen, können multimediale Anwendungen von der Portierbarkeit und Flexibilität profitieren, die ihnen CORBA bietet. Die OMG erkannte 1996 dieses Problem und veröffentlichte ein RFPDokument (engl. Request For Proposal) mit dem Titel „Control and Management of Audio/Video Streams“ [7]. Es erbittet Lösungsvorschläge, um OMA4 konformen Anwendungen die Übertragung kontinuierlicher Daten zu ermöglichen. Damit können in standardisierter Form Stream-Verbindungen zwischen Objekten aufgebaut und gesteuert werden. Auf das RFP-Dokument antworteten die Firmen IONA [15], Lucent [30] und Siemens-Nixdorf [3]. Aus den initialen Einsendungen wurde ein gemeinsamer Ansatz [8] entwickelt und der OMG als überarbeiteter Vorschlag eingereicht. Er wurde im Dezember 1998 von der OMG als offizieller Standard angenommen. Dieser wird in dieser Arbeit kurz als AVS bezeichnet. AVS beschreibt Informationen nicht durch Informationsobjekte und Beziehungen. In Vorbereitung eines integrierten Modells von TINA und AVS wird in Kapitel 3.3.3 ein Informationsmodell für den AVS-Standard entworfen. 3.3.2 Konzepte des Standards 3.3.2.1 Erweiterung der Object-Management-Architektur Die Object-Management-Architektur (OMA) bildet die Grundlage aller Entwicklungen der OMG. Sie besteht aus den fünf Komponenten Object Request Broker (ORB), Object Services, Common Facilities, Domain Interface und 4 OMA: 46 Object Management Architecture, das grundlegende Objektmodell der OMG 3.3 OMG Control and Management of Audio / Video Streams Application Objects. ORB ermöglicht verteilungstransparente Interaktionen zwischen Objekten und realisiert die Engineering-Unterstützung für das ODP-Konzept einer operationalen Schnittstelle. Es werden die beiden Operationsarten „Anzeige“ und „Anfrage“ unterstützt. Der Austausch kontinuierlicher Daten zwischen Stream-Schnittstellen ist über ORB nicht möglich und war bei der CORBAEntwicklung auch nicht vorgesehen. Insbesondere lassen sich keine Aussagen über die Verzögerung der Datenübertragung von Klient zu Server oder den erreichbaren Durchsatz beim Datentransport treffen. Gerade diese Parameter sind entscheidend für multimediale Anwendungen. CORBA gewährleistet die Sicherheit der Datenübertragung, die bei operationaler Objektinteraktion in den allermeisten Fällen auch notwendig ist. Das Ziel bei der Übertragung kontinuierlicher Daten ist aber nicht absolute Verlustfreiheit, sondern das kontinuierliche Eintreffen der Daten beim Empfänger. Das erneute Senden verlorener Pakete führt zu einer Verzögerung der nachfolgenden Daten. Bei einer Videoübertragung würde dieses Vorgehen zu „Ruckeln“ und zu Asynchronität zwischen Bild und Ton führen. Die menschliche Warnehmung reagiert am empfindlichsten auf Störungen einer Audioübertragung. Während Bildprobleme noch tolleriert werden, sinkt die Akzeptanz eines Dienstes bei Tonstörungen erheblich. Sicherheit und Kontinuität bei der Datenübertragung verhalten sich orthogonal zueinander und können mit verschiedenen Technologien realisiert werden. Abbildung 3.11 zeigt die im AVS-Standard verwendete Architektur, wie sie bereits im RFP-Dokument [7] vorgeschlagen wurde: Abbildung 3.11: OMG Streams-Architektur StreamEndPoint Stream Stream Flow Data EndPoint (Source) Interface Control Object Control and Management Object Interface Control Object Data Flow Stream Adapter Flow Data EndPoint (Sink) Data Flow Basic Object Adapter Basic Object Adapter Stream Adapter ORB Core Request Flow 47 3 Realisierung der ODP Stream-Binding-Konzepte Die in der Abbildung herausgestellte Gruppierung mit der Bezeichnung „StreamEndPoint“ besteht aus drei logischen Bestandteilen: einem Objekt mit Schnittstellen zur Steuerung der Gruppierung, einem Objekt, das kontinuierliche Daten produziert bzw. konsumiert, und einem Adapterobjekt das Daten über ein Netz transportiert. AVS spezifiziert die Schnittstellen des Management- sowie des Steuerungsobjektes und beschreibt Interaktionsszenarien. Objektinteraktionen innerhalb der StreamEndPoint-Gruppierung sowie der Datenfluß zwischen Quelle/Senke und Adapterobjekt werden nicht spezifiziert. Dadurch sind gerätespezifische Optimierungen möglich. Insbesondere bleibt offen, ob die Flow-Terminierung durch Hardware- oder Softwarekomponenten realisiert wird. Die Abbildung verdeutlicht, daß die Übertragung kontinuierlicher Daten zwischen Quellen und Senken über einen ORB-unabhängigen Transportweg erfolgt. Nur die Konfiguration der Stream-Adapter zur Bereitstellung eines Transportpfades erfolgt über CORBA-Interaktionen zwischen dem Steuerungs- und den Adapter-Objekten. Diese Differenzierung ist entscheidend für das Erreichen einer hohen Performanz. Der AVS-Standard beschreibt IDL-Schnittstellen, Interaktionsszenarien und ausgetauschte Informationen. 3.3.2.2 Ziele der Streaming-Architektur Die Ziele der AVS-Spezifikation sind: Standardisierter Aufbau und Steuerung von Stream-Verbindungen. Dadurch können Produkte für Anbieter und Konsumenten von Inhalten unabhängig voneinander entwickelt werden, während die Kompatibilität aller Produkte gesichert ist. Unterstützung unterschiedlicher Transportprotokolle. Um eine performante Stream-Verbindung zu realisieren, können Transportprotokolle wie z.B. UDP [20], TCP [1] oder AAL5 [2] verwendet werden. Die Architektur erlaubt die Verwendung weiterer, eventuell erst in Zukunft entwickelter Protokolle. Unterstützung unterschiedlicher Typen von Quellen und Senken. Die AVS-Architektur erlaubt die Stream-Terminierung sowohl in Hard- als auch in Software. Das ermöglicht z.B. eine Video-FlowGenerierung aus einer Kamera oder einem Videoserver gleichermaßen. 48 3.3 OMG Control and Management of Audio / Video Streams 3.3.2.3 Komponenten der Streaming-Architektur Die AVS-Spezifikation standardisiert eine Menge von Schnittstellen die zur Implementierung multimedialer Anwendungen geeignet sind. Die Schnittstellen ermöglichen: die Konfiguration multimedialer Geräte, Stream-Flow-Endpunkte von Anwendungen bereitstellen zu lassen, und die den Aufbau und Steuerung von Stream-Verbindungen. Die Konfiguration der Geräte umfaßt alle notwendigen Parametriesierungen des Senders sowie aller Empfänger. Das Ziel besteht in der Festlegung auf ein Format der kontinuierlichen Daten sowie zusätzliche QoS-Parameter. Abbildung 3.12 zeigt die Komponenten der AVS-Spezifikation. Abbildung 3.12: Komponenten der AVS-Spezifikation StreamCtrl MMDevice MMDevice VDev VDev StreamEndPoint StreamEndPoint Producer One object per device Consumer One object per stream MultiMedia Device Die MMDevice-Schnittstelle abstrahiert die spezifischen Eigenschaften von multimedialen Geräten. Diese können in Form physischer Geräte wie z.B. Kameras oder in logischer Form wie z.B. Dateien existieren. Sie unterstützt eine potentiell beliebige Anzahl von Stream-Verbindungen indem es für jede Verbindung ein virtuelles Gerät (VDev) sowie einen Stream-Terminierungspunkt (StreamEndPoint) bereitstellt. 49 3 Realisierung der ODP Stream-Binding-Konzepte VDev Eine VDev-Schnittstelle wird dynamisch von MMDevice bei der Beantwortung einer Stream-Verbindungsanfrage erzeugt. Jedes Gerät unterstützt eine Menge von Kodierungen. Die VDev-Schnittstelle erlaubt die Festlegung einer Kodierung sowie das Aushandeln von QoSParametern mit der Gegenstelle. Für diese Aufgabe stellt die Schnittstelle die Operationen set_format(string flowname, string format) sowie set_dev_params(string flowname, propSeq props) bereit. Die Menge der unterstützten Kodierungen sowie die akzeptierbare Bandbreite der QoS-Parameter kann über Properties festgestellt werden. StreamCtrl Die StreamCtrl-Schnittstelle ermöglicht die Bereitstellung von StreamVerbindungen zwischen zwei oder mehr MMDevice-Objekten. StreamCtrl ist die OMG-Realisierung des ODP-Bindungsobjektes. Die StreamCtrl-Schnittstelle bietet Operationen zum Auf- und Abbau sowie zur Steuerung von Stream-Verbindungen an. StreamEndPoint Eine StreamEndPoint-Schnittstelle wird dynamisch von MMDevice für jede aufzubauende Stream-Verbindung erzeugt. Während VDev für das Format der Daten verantwortlich ist, ist es Aufgabe des StreamEndPoint-Objektes Daten an einem Netzterminierungspunkt zur Verfügung zu stellen oder von dort zu empfangen. Das StreamEndPoint-Objekt verbirgt die transportspezifischen Parameter einer Stream-Verbindung. Dazu zählen das verwendete Protokoll sowie davon abhängige Parameter. 3.3.3 Die AVS Informationsspezifikation Der AVS-Standard enthält kein explizites Informationsmodell, so wurden keine Informationsobjekte im Sinne von RM-ODP identifiziert. Dennoch lassen sich die enthaltenen Informationen aus Properties (engl. Eigenschaften) ableiten, die Computational-Objekten zugeordnet worden sind. Anhand dieser Properties können Informationsobjekte und Beziehungen beschrieben werden. Zur Vorbereitung eines integrierten Informationsmodells von AVS und aus Bestandteilen von TINA, wird in diesem Kapitel ein Informationsmodell für den AVS-Standard entworfen. Dazu werden Informationsobjekte und ihre Beziehungen untereinander bestimmt. 50 3.3 OMG Control and Management of Audio / Video Streams AVS beschreibt ein Rahmenwerk, das den Austausch kontinuierlicher Daten zwischen multimedialen Anwendungen ermöglicht. In diesem Zusammenhang werden Informationen verwaltet, die: Senken bzw. Quellen von Informationen beschreiben in Bezug auf Quality-of-Service der Daten die sie liefern bzw. empfangen können, den Endpunkt eines Transportnetzes beschreiben in Bezug auf spezifische Parameter des Netzprotokolls, Assoziationen zwischen Verbindungen, Endpunkten beschreiben, also Stream- die Kodierung der kontinuierlichen Daten auf Anwendungsebene charakterisieren, für eine Verbindung vereinbarte Quality-of-Service-Parameter beschreiben. Diese Informationen werden durch die beiden Informationsobjekte StreamFlowEndPoint und StreamFlowConnection modelliert. Zusätzlich werden zwei Aggregationsobjekte StreamEndPoint und StreamConnection eingeführt. StreamEndPoint repräsentiert eine Stream-Schnittstelle, die durch StreamConnection in Relation zu anderen Schnittstellen gesetzt wird. Es gibt in AVS keine Informationsobjekte, die vergleichbar sind mit denen aus TINA bekannten Objekten NetworkTrailTerminationPoint (NWTTP) oder dessen abstrakter Repräsentation NetworkFlowEndPoint (NFEP). Diese Informationsobjekte werden in TINA als eigenständige Objekte modelliert, da sie unabhängig von einer Relation zu einem SFEP-Objekt existieren und manipuliert werden können. Ein NWTTP-Objekt kann als Terminierungspunkt einer Ende-zu-Ende-Verbindung bereitgestellt werden, ohne daß er in Verbindung mit einem SFEP-Objekt steht. Diese Trennung ist in AVS nicht möglich. Ein Netzterminierungspunkt kann nur durch ein SFEP-Objekt erzeugt und mit einem anderen verbunden werden. Die Idee, einen Netzterminierungspunkt als eigenständiges Objekt in das Informationsmodell aufzunehmen, entspricht also nicht dem AVS-Konzept. Informationen, die die Charakteristik und den Zustand des Terminierungspunktes beschreiben, sind so eng mit einem SFEP-Objekt verbunden, daß sie als Attribute in das SFEPInformationsobjekt eingehen. Informationsobjekt StreamFlowEndPoint Das Informationsobjekt StreamFlowEndPoint (SFEP) beschreibt die charakteristischen Eigenschaften einer Quelle oder Senke kontinuierlicher Daten. Dazu zählen unterstützte Medienformate, sowie Parameter von Netzprotokollen. 51 3 Realisierung der ODP Stream-Binding-Konzepte Das Format der Daten kann ein definiertes und damit für alle Seiten bekanntes Byte-Layout wie z.B. MPEG sein. Um beliebige IDL-getypte Daten zu übertragen, wird in AVS ein spezielles Protokoll eingeführt. Das als Simple Flow Protocol (SFP) bezeichnete Protokoll definiert die Struktur von Nachrichten, die zwischen Sender und Empfänger ausgetauscht werden können. Eine Nachricht enthält u.a. den Typ, die Gesamtlänge und eine variable Anzahl von Nutzdaten. Da SFP nur die Struktur und die logische Abfolge von Nachrichten definiert, ist die Interpretation der Nutzdaten nicht festgelegt. SFP ist optional in Bezug auf Unterstützung und Verwendung. Es kann dynamisch festgestellt werden, ob der Partner SFP unterstützt und dann entschieden werden, ob SFP als Transportprotokoll verwendet wird. Wenn anstatt SFP ein bekanntes Audio- oder Video-Format verwendet wird, so wird es durch zusätzliche QoS-Parameter charakterisiert. Das Aushandeln der Parameter setzt ihre eindeutige Bezeichnung voraus. Zu diesem Zweck definiert AVS eine Menge von Parametern speziell für Audio- und Video-Flows. Diese Parameter werden von den Geräten ausgetauscht, um die Stream-Kompatibilität zu sichern. Es muß mindestens ein Transportprotokoll vom unterstützen werden. Ein SFEP-Attribut beschreibt das verwendete Protokoll und eine dazu spezifische Adresse. Diese Adresse beschreibt eindeutig den Terminierungspunkt der Netzverbindung. Die Attribute des Informationsobjektes StreamFlowEndPoint und eine Beschreibung ihrer Bedeutung gibt die folgende Tabelle. Die Attribute sind abgeleitet aus Properties von Computational-Objekten. Attribut Bedeutung Direction Charakterisiert den SFEP als Quelle oder Senke. FlowName Enthält den Flow-Namen. AvailableFormats Enthält eine Liste der unterstützten Kodierungen. (z.B. “MPEG, MJPEG “) UsedFormat Beschreibt die für eine Stream-Flow-Verbindung vereinbarte Kodierung. ApplicationQoS Enthält die für eine Stream-Flow-Verbindung vereinbarten Quality-of-Service-Parameter der Kodierung. (z.B. “video_framerate=25“) NetworkQoS Enthält eine Liste der für eine Transportverbindung vereinbarten Quality-of-Service-Parameter. (z.B. “Bandwith_Min=115000“) NetworkAddress Beschreibt das verwendete Netzprotokoll und eine für dieses Protokoll spezifische Adresse. (z.B. “TCP=vidserver.linux.org:31000“) 52 3.3 OMG Control and Management of Audio / Video Streams Eine einheitliche Bezeichnung für die Namen der ApplicationQoS- und NetworkQoS-Parameter, der gültigen Belegungen sowie der Einheiten numerischer Werte wurden im AVS-Standard definiert. Informationsobjekt StreamFlowConnection Die Bindung von SFEPs wird durch das Informationsobjekt StreamFlowConnection (SFC) modelliert. Durch SFC wird eine Quelle mit einer oder mehreren Senken in Beziehung zueinander gesetzt. Die Topologie wird durch das Attribut Topology beschrieben. Informationsobjekte StreamInterface und StreamConnection Das Informationsobjekt StreamInterface erlaubt die Aggregation mehrerer SFEPs. Das StreamInterface-Objekt repräsentiert die Stream-Schnittstelle einer Anwendung. Durch das Informationsobjekt StreamConnection werden StreamInterfaceObjekte in Relation gesetzt. Es modelliert die Verbindung zwischen StreamSchnittstellen und ist eine Aggregation von StreamFlowConnections. 3.3.3.1 Das AVS-Informationsmodell Abbildung 3.13 zeigt das aus dem AVS-Standard abgeleitete Informationsmodell: Abbildung 3.13: Das AVS-Informationsmodell StreamInterface connects 2..* 0..1 StreamConnection StreamFlowEndPoint Direction FlowName AvailableFormats UsedFormat ApplicationQoS NetworkQoS NetworkAddress source 1 connectivity 0..1 {xor} sink 1..* connectivity 0..1 StreamFlowConnection Topology 53 3 Realisierung der ODP Stream-Binding-Konzepte Die Assoziationen bezeichnen die folgenden Einschränkungen der Beziehungen zwischen Objekten: StreamConnection verbindet zwei oder mehrere StreamInterfaces StreamFlowEndPoint kann nur eine der Rollen „source“ oder „sink“ annehmen. StreamFlowConnection besitzt genau eine Quelle und eine oder mehere Senken. Der AVS-Standard stellt im Anhang A gemäß der RFP-Anforderung eine Computational-Lösung für Mehrpunkt-zu-Mehrpunkt-Verbindungen vor. Die dort gegebene Lösung setzt sich aus der Verwendung mehrerer Punkt-zuPunkt und einer Punkt-zu-Mehrpunkt-Verbindung zusammen. Durch Einführung eines weiteren Informationsobjektes läßt sich das bestehende Informationsmodell auch für diese Topologie erweitern. Dieses Objekt aggregiert eine Menge von StreamConnection-Objekten für die gilt, daß genau eines die Topologie Punkt-zu-Mehrpunkt und alle anderen die Topologie Punkt-zuPunkt besitzen. 3.3.4 Die AVS Computational-Spezifikation Die im vorhergehenden Abschnitt modellierten Informationsobjekte und Beziehungen werden auf Computational-Schnittstellen abgebildet, um auf die enthaltenen Informationen zugreifen und sie manipulieren zu können. Das AVS-Informationsmodell beschreibt Flow-Endpunkte und FlowVerbindungen sowie deren Aggregation zu Stream-Endpunkten und StreamVerbindungen. Eine Computational-Modellierung muß nicht für jedes Informationsobjekt auch eine Computational-Schnittstelle bereitstellen. Es ist möglich, ein Computational-Modell zu entwickeln, welches nur Schnittstellen für Stream-Endpunkte und Stream-Verbindungen enthält. Eine Operation, die an einer Computational-Schnittstelle eines Stream-Endpunktes aufgerufen wird, wird auf alle enthaltenen Flows angewendet. Aktionen auf Flow-Basis sind über diese Schnittstellen nicht möglich. Die AVS-Architektur beschreibt zwei als „Profile“ bezeichnete ComputationalModelle: 1. Im vollen Profil (engl. Full Profile) werden Flow-Endpunkte und FlowVerbindungen auf IDL-Schnittstellen abgebildet. 2. Im leichten Profil (engl. Light Profile) werden für Flow-Endpunkte und Flow-Verbindungen keine IDL-Schnittstellen bereitgestellt. 54 3.3 OMG Control and Management of Audio / Video Streams 3.3.4.1 AVS Computational-Modell für das leichte Profil Im AVS-Standard werden alle in Abschnitt 3.3.2.3 vorgestellten Schnittstellen jeweils einem Computational-Objekt zugeordnet. Das ComputationalModell im leichten Profil besteht damit aus den Objekten MMDevice, VDev, StreamEndPoint und StreamCtrl. Jedes der Objekte besitzt genau eine Schnittstelle, deren vollständige IDL-Beschreibung im Anhang B des AVSStandards enthalten ist. Die Interaktionen zwischen den Objekten werden in den Stream-Binding-Szenarien in Abschnitt 3.3.5 beschrieben. 3.3.4.2 AVS Computational-Modell für das volle Profil Im Computational-Modell für das volle Profil existieren alle Objekte des leichten Profils und zusätzlich die Objekte FDev, FlowEndPoint und FlowConnection. Diese bieten Operationen zur Steuerung einzelner FlowEndpunkte bzw. Flow-Verbindungen. Die Möglichkeit der Bereitstellung von Objektrefenzen für diese Objekte bereitet Engineering-Modelle vor, in denen Flow-Endpunkte zu verschiedenen Kapseln und verschiedenen Knoten zugeordnet werden können. FDev Im vollen Profil bietet ein MMDevice-Objekt für jedes Flow-Gerät eine FDevSchnittstelle an. Beispielsweise bietet ein MMDevice-Objekt das eine Kamera repräsentiert, zwei FDev-Schnittstellen an (für Audio und Video getrennt). Über die FDev-Schnittstelle können FlowEndPoint-Objekte erzeugt werden. FlowEndPoint Das FlowEndPoint-Objekt vereint die Funktionalität von VDev und StreamEndPoint, jedoch nur für einen einzigen Flow. FlowConnection Das FlowConnection-Objekt ermöglicht die Bereitstellung und Steuerung einer Flow-Verbindung analog dem StreamCtrl-Objekt, jedoch nur für einen Flow. 3.3.5 Stream-Binding-Szenarien Ein wesentliches Ziel der AVS-Spezifikation war die Entwicklung eines standardisierten Mechanismus zum Aufbau von Stream-Verbindungen. Dieser Abschnitt beschreibt wie die Objekte der AVS-Architektur interagieren, um Stream-Verbindungen aufzubauen bzw. steuern zu können. 55 3 Realisierung der ODP Stream-Binding-Konzepte Das ODP-Referenzmodell beschreibt allgemeine Voraussetzungen beim Binden von Stream-Schnittstellen. Die Schnittstellen müssen vom gleichen Typ sein und eine komplementäre Signatur besitzen. Die zu bindenden Flows einer Schnittstelle müssen eine paarweise entgegengesetzte Richtung besitzen. Daher existieren Stream-Schnittstellen im allgemeinen paarweise. ODP sieht dafür eine Subtypisierung von Stream-Schnittstellen vor [9, Seite 24]. Der AVS-Standard beschreibt die beiden Schnittstellentypen als A-Partei und B-Partei. Beide Parteien sind komplementär zueinander, sodaß eine Stream-Verbindung auf der einen Seite von einer A-Partei und auf der anderen Seite von einer B-Partei terminiert ist. Für jede Quelle der APartei enthält die B-Partei eine Senke und umgekehrt. Die AVS-Spezifikation definiert dafür zwei unterschiedliche IDL-Typen StreamEndPoint_A und StreamEndPoint_B, mit der gemeinsamen Basisklasse StreamEndPoint. Dadurch wird sichergestellt, daß die Bindung von zwei Endpunkten typsicher in Bezug auf die Flow-Richtung ist. Nur ein MMDevice-Objekt mit einer StreamEndPoint_A-Schnittstelle kann die Quelle in einer Punkt-zuMehrpunkt sein. Dazu bietet die Schnittstelle Operationen zum Hinzufügen und Entfernen von StreamEndPoint_B-Schnittstellen. Stream-Binding zwischen zwei Parteien vollzieht sich in mehreren Schritten, in Abbildung 3.14 sind die ersten zwei dargestellt. Abbildung 3.14: Initialisierung 1: bind(aMMDevice, bMMDevice) :StreamCtrl Initiator: 2.1: aSEP, aVDev := create_A() aMMDevice:MMDevice aVDev:VDev {new} aSEP:StreamEndPoint_A {new} 2.2: bSEP, bVDev := create_B() bMMDevice:MMDevice bVDev:VDev {new} bSEP:StreamEndPoint_B {new} 1. Erzeugen des Bindungsobjektes. Es wird ein StreamCtrl-Objekt erzeugt, entweder durch eine der zu bindenden Parteien oder durch eine dritte Anwendung. Der Initiator ruft am StreamCtrl-Objekt die Operation bind_devs(aMMDev, bMMDev) auf, wobei a und b Referenzen von MMDevice-Objekten sind. Den Stream-Aufbau steuert ab jetzt das StreamCtrl-Objekt. 56 3.3 OMG Control and Management of Audio / Video Streams 2. Erzeugen der Endpunkte. Das StreamCtrl-Objekt ruft an einem MMDevice-Objekt die Operation create_A() an dem anderen create_B(). Als Ergebnis werden zwei Objektreferenzen geliefert. Eine ist vom Typ VDev, die zweite vom Typ StreamEndPoint_A bzw. StreamEndPoint_B. Für die betrachtete Punkt-zu-Punkt-Topologie ist es gleichwertig, welches Objekt die StreamEndPoint_A-Schnittstelle bereitstellen soll. Die weiteren Interaktionen sind davon abhängig, ob das volle Profil verwendet werden soll und ob beide Seiten dieses unterstützen. 3.3.5.1 Stream-Binding-Szenario für das leichte Profil Das StreamCtrl-Objekt kann vor dem dritten Schritt prüfen, ob beide StreamEndPoint-Objekte das volle Profil unterstützen. Die Überprüfung erfolgt durch Aufruf der Operation get_property_value(“Flows“), die jeweils eine Liste der Flow-Namen eines StreamEndPoint-Objektes liefert. Danach wird für jeden Flow die Operation get_fep(“flowName“) gerufen. StreamEndPoint-Objekte, die nur das leichte Profil unterstützen werfen als Ergebnis sofort eine Ausnahme (engl. exception), da sie keine Schnittstellen für einzelne Flow-Endpunkte bereitstellen. Falls diese Operation an einem der beiden StreamEndPoint-Objekte fehlschlägt, wird das Binden der Stream-Schnittstellen nach dem leichten Profil durchgeführt: Abbildung 3.15: Aufbau einer Stream-Verbindung im leichten Profil 3.1: setPeer(bVDev) :StreamCtrl 3.2: setPeer(aVDev) aVDev:VDev bVDev:VDev 4: connect(bSEP) aSEP:StreamEndPoint_A bSEP:StreamEndPoint_B 5: bSinkFlowSpec request_connection(aSinkFlowSpecs) 3. Konfiguration der virtuellen Geräte. Das StreamCtrl-Objekt ruft nacheinander an beiden VDev-Objekten die Operation set_peer(peerVDev). Dadurch erhält ein VDev-Objekt die Möglichkeit, die Kompatibilität der eigenen Flows mit denen des Partners zu überprüfen. Mit den Operationen set_format(...) und set_dev_params(...) einigen sie sich Flow-basiert auf Kodierung und QoS-Parameter. 57 3 Realisierung der ODP Stream-Binding-Konzepte 4. Start Stream-Aufbau. StreamCtrl ruft an StreamEndPoint_A die Operation connect(StreamEndPoint_B). Stream-Binding ist ab jetzt unter der Steuerung der StreamEndPointObjekte, StreamCtrl hat darauf keinen weiteren Einfluß. 5. Stream-Aufbau im leichten Profil. StreamEndPoint_A erzeugt für jede Senke der Stream-Schnittstelle einen Terminierungspunkt. Die Wahl des Transportprotokolls ist dabei nur durch die verfügbaren Protokollstacks eingeschränkt. Das StreamEndPoint-Objekt beginnt an den Terminierungspunkten auf eingehende Verbindungen zu warten. Parallel dazu ruft es an StreamEndPoint_B die Operation request_connection(flowspec). Die Informationen, die flowspec beschreibt, sind das Transportprotokoll sowie protokollspezifische Parameter (z.B. TCP=pandora.informatik.hu-berlin.de:12000). StreamEndPoint_B erzeugt für alle Flows der flowspec-Beschreibung Terminierungspunkte des entsprechenden Transportprotokolls und verbindet sie mit denen von StreamEndPoint_A. Anschließend erzeugt es Terminierungspunkte für die Senken und liefert deren flowspecBeschreibung als Ergebnis der request_connection()-Operation zurück. StreamEndPoint_A verarbeitet die flowspec-Beschreibung in der gleichen Weise. Danach sind die Terminierungspunkte der beiden StreamEndPoint-Objekte miteinander verbunden. 3.3.5.2 Stream-Binding-Szenario für das volle Profil Ob Stream-Binding auf Flow-Basis durchgeführt wird, kann erst nach dem zweiten Schritt (“Erzeugen der Endpunkte“) entschieden werden. Die ersten beiden Schritte, also das Instanziieren des Bindungsobjektes sowie das Bereitstellen von StreamEndPoint- und VDev-Objekten, werden sowohl im leichten als auch im vollen Profil durchgeführt. Danach existiert das Bindungsobjekt und kennt die StreamEndPoint-Objekte der beiden Parteien. Nach dem Aufruf der Operation get_property_value(“Flows“) an beiden Objekten kennt es die einzelnen Flow-Namen und stellt über die folgenden Schritte Flow-Verbindungen her: Abbildung 3.16: Binden im vollen Profil: Finden kompatibler Endpunkte 3.1: (i=1..n) aFEP:=get_fep(name:FlowName) aSEP:StreamEndPoint_A 3.2: (i=1..n) bFEP:=get_fep(name:FlowName) :StreamCtrl bSEP:StreamEndPoint_B 5: (i=1..n) connect(aFEP, bFEP) 4: (i=1..n) is_fep_compatible(bFEP) :FlowConnection {new} aFEP:FlowConsumer {new} bFEP:FlowProducer {new} 4: get_property() 58 3.3 OMG Control and Management of Audio / Video Streams 3. Abfrage der FlowEndPoint-Objekte Für jeden Flow-Namen fordert StreamCtrl ein FlowEndPoint-Objekt an. 4. Finden kompatibler Endpunkte. Für jeden Endpunkt der A-Seite iteriert das StreamCtrl-Objekt über die Endpunkte der B-Seite und versucht Paare kompatibler Endpunkte festzustellen. Zwei Endpunkte gelten als kompatibel, wenn die Operation is_fep_compatible() erfolgreich ist. Es ist Aufgabe des FlowEndPoint-Objektes festzustellen, ob es mit dem Peer-Objekt ein gemeinsames Transportprotokoll sowie ein gemeinsames Kodierungsformat unterstützt. 5. Erzeugen der Bindungsobjekte. Für jedes als kompatibel erkannte FlowEndPoint-Paar wird ein FlowConnection-Objekt erzeugt. An diesem wird die Operation connect(aFEP, bFEP) aufgerufen. Abbildung 3.17: Binden im vollen Profil: Aufbau von Flow-Verbindungen :FlowConnection 6.1: set_peer(fep:sourceFEP) 7: flowSpec go_to_listen() aFEP:FlowConsumer 8: connect_to_peer(flowSpec) bFEP:FlowProducer 6.2: set_format(flowFormat) 6. Flow-Konfiguration. FlowConnection ruft die Operation set_peer (bFEP) am FlowEndPoint-Objekt (Senke) auf, um die Konfiguration der Flow-Parameter zu ermöglichen. Über die Operationsrufe set_dev_params() und set_format() werden Parameter eingestellt. 7. Bereitstellen eines Terminierungspunktes durch die Senke. FlowConnection ruft am FlowConsumer-Objekt die Operation go_to_listen() auf. Das FlowConsumer-Objekt wählt ein gemeinsam unterstütztes Transportprotokoll aus und initialisiert einen entsprechenden Terminierungspunkt. Aus dem verwendeten Protokoll sowie den protokollspezifischen Daten des Terminierungspunktes wird eine flowspec-Beschreibung generiert und als Ergebnis der Operation zurückgeliefert. 8. Aufbau der Flow-Verbindung. FlowConnection ruft mit dieser Beschreibung die Operation connect_to_peer(flowspec) am FlowProducer-Objekt auf. FlowPruducer erzeugt einen Terminierungspunkt gemäß dem Protokoll der flowspec-Beschreibung und 59 3 Realisierung der ODP Stream-Binding-Konzepte verbindet diesen mit dem Terminierungspunkt des FlowConsumerObjektes. Damit besteht eine aufgebaute aber noch nicht gestartete Flow-Verbindung zwischen Produzenten und Konsumenten eines kontinuierlichen Datenstromes. Die Stream-Binding-Szenarien des leichten und des vollen Profils haben verdeutlicht, daß im Standard Control and Management of Audio/Video Streams die Bereitstellung von Transportverbindungen die Aufgabe der Anwendungsobjekten ist. 60 4 Verwandte Arbeiten Mit der Aufgabe der Zusammenführung der Konzepte des OMG Standards “Control and Management of Audio/Video Streams“ und TINA haben sich zwischen 1998 und 1999 bereits mehrere Projekte beschäftigt [19, 5, 17]. Den beiden in diesem Kapitel vorgestellten Arbeiten ist gemeinsam, daß sie auf der Grundlage eines TINA-organisierten Netzes die Verwendung von OMG AVS konformen Geräten ermöglichen wollen. Die zentralen Ideen der unterschiedlichen Ansätze werden in den folgenden Abschnitten vorgestellt. 4.1 IONA: A CORBA Framework for Multimedia Streams Die Autoren schlagen eine Änderung des in der Network-ResourceArchitektur [25] beschriebenen Bindungsobjektes Communication Session Manager (CSM) vor. Als Motivation zeigen sie die folgenden Analogien zwischen OMG-AVS und TINA-Konzepten: Das CSM-Objekt abstrahiert einen logischen Verbindungsgraphen, der aus mehreren Stream-Flow-Verbindungen (SFCs) besteht. SFCs lassen sich auf das AVS-Konzept Flow Connection abbilden. SFEPs entsprechen Flow End Points. Die Aktivierung bzw. Deaktivierung von SFCs entspricht dem Starten bzw. Stoppen von Flow Connections. Das TINA CSM-Objekt soll die Aufgaben eines OMG Flow-ConnectionObjektes erfüllen und damit Flow End Points binden. Die Autoren empfehlen die folgende Änderung der IDL-Beschreibung für SFEPs, um sowohl TINASFEPs als auch AVS-FEPs zu referenzieren: 61 4 Verwandte Arbeiten // neu: struct t_SFep { t_IntRef tcsmRef; t_Sfep_Cid SFepId; }; // alt: struct t_SFepRef { t_IntRef tcsmRef; t_Sfep_Cid SFepId; }; struct t_SFepRef { case 1 : FlowEndPoint case 2 : t_SFep; default : t_SFep; }; Folgendes Szenario wird für einen TINA-Dienst beschrieben, der zwei FEPs binden soll. Es beschreibt, wie eine Stream-Flow-Verbindung zwischen zwei AVS-Geräten aufgebaut wird: Abbildung 4.1: IONA Szenario zum Binden von zwei FEPs Trading Service 1 Consumer Domain Retailer Domain 2.1 FDev FlowEndPoint Consumer Domain TINA Service 3,5 2.2 FDev FlowEndPoint CSM 1. Der Dienst nutzt einen TradingService, um die zu bindenden FDevs zu finden (FDevs können FEPs erzeugen). 2. Der Dienst läßt jeweils eine FEP-Instanz erzeugen. 3. Der Dienst ruft eine Bindungsoperation am CSM-Objekt mit den beiden erzeugten FEPs als Parameter auf. 4. Die Verbindung wird durch das CSM-Objekt bereitgestellt und gestartet. 5. Der Dienst läßt die Verbindung durch das CSM-Objekt abbauen. Nach Aussage der Autoren läßt ihr Ansatz keine Stream-Flow-Verbindungen zwischen FEPs und SFEPs zu. Damit wäre eine Bindung zwischen der Stream-Schnittstelle eines OMG AVS-konformen Gerätes und einer TINAAnwendung nicht möglich. Diese Einschränkung bleibt unmotiviert. Die ge- 62 4.2 Humboldt Universität, NTT zeigte Neudefinition der SFEP-Referenz alleine begründet dies nicht, da sie sich nur auf einen Endpunkt bezieht. Die Modellierung eines SFCInformationsobjektes hätte diese Aussage belegen können, da SFCs Einschränkungen bezüglich des Typs der Endpunkte enthalten können. Die Autoren lassen ein wesentliches Problem ungelöst. Es wird nicht beschrieben, wie das CSM-Objekt eine Netzverbindung zwischen zwei FEPs herstellt. TINA Connection Management kann keine AVS-FEPs verbinden. Folglich bleibt nur die AVS-Strategie, eines der beiden FEP-Objekte mit dem Verbindungsaufbau zu beauftragen. Das Ergebnis der Arbeit besteht in der Erweiterung des CSM-Objektes, um Verbindungen zwischen zwei AVS-konformen Geräten aufbauen zu können. Der gezeigte Ansatz leistet nicht mehr als der AVS-Standard [8] und ermöglicht nicht die gleichzeitige Verwendung von TINA-Anwendungen und AVSGeräten. Der Aufbau von Verbindungen, also die CSM-Aktionen für Schritt 4 in Abb. 4.1, wird den Anwendungen überlassen und nicht durch das TINA Connection-Management realisiert. 4.2 OMG A/V Streams and TINA NRA: An integrative Approach Kath und Takita stellen in [17] ein Rahmenwerk für den Einsatz multimedialer Anwendungen in einem ATM-basierten Netz vor. Die Grundlage bilden dabei TINA-Konzepte der Informations-, Computational- und Engineering-Modellierungssichten. Der Ansatz erlaubt die Verwendung von multimedialen Produkten verschiedener Standards innerhalb der TINAKonsumentendomäne. Die Lösung ist damit allgemeiner als die in 4.1 gezeigte, die ausschließlich den Einsatz von OMG-AVS-Anwendungen ermöglicht. Das Dokument beschreibt TINA-Informationsobjekte, die an der Schnittstelle zwischen Konsumenten- und Verbindungsanbieterdomäne wesentlich sind. Durch die Einführung des Informationsobjektes SFEPBridge wird die Bindung zu spezifischen Produkten (SFEPProduct ) von der nodalen Bindung zwischen SFEPBridge und NFEP entkoppelt: Abbildung 4.2: Das SFEPBridge -Informationsobjekt SFEPProduct SFEPBridge NFEP Anwendung Layer Network anwendungsspezifische Bindung nodale Bindung 63 4 Verwandte Arbeiten Die Bindung zwischen SFEPProduct und SFEPBridge ist abhängig von dem verwendeten Produkt und kann durch verschiedene Technologien bereitgestellt werden. Sie ist nicht abhängig von dem im Transportnetz verwendeten Protokoll. Für das Beispiel eines OMG-AVS-Produktes wurde ein Objektmodell entworfen. Es enthält Computational-Objekte, die die Schnittstellen StreamEndPoint und VDev unterstützen. SFEPProduct wird mit SFEPBridge durch ein AVSspezifisches Bindungsobjekt gebunden. Die von Kath und Takita gezeigte Lösung zeichnet sich gegenüber der von IONA erbrachten durch eine Trennung zwischen AVS-spezifischer StreamBindung und der nodalen Bindung zischen SFEPs und NFEPs aus. Durch die Einführung des Informationsbjektes SFEPBridge werden an den Schnittstellen der Konsumentendomäne alle notwendigen Informationen bereitgestellt, die für den Aufbau von Stream-Flow-Verbindungen durch das TINAVerbindungsmanagement benötigt werden. 64 5 Integration von OMG Audio/Video Streams in TINA-DPE 5.1 Einführung und Rahmenbedingungen Der Titel dieses Kapitels bezeichnet mit dem Wort „Integration“ die Zielstellung dieser Arbeit. Integration bezeichnet eine Eingliederung, in dieser Arbeit die Eingliederung von AVS-konformen Geräten in TINA CPE (Customer Premises Equipment). Dieses Kapitel beschreibt ein Terminal, das die Anforderungen an TINA-CPE erfüllt und gleichzeitig mit AVS-konformen Geräten ausgestattet ist. Ein AVS-konformes Gerät muß keine Hardware enthalten, es ist nur eine dem AVS-Standard konforme Implementierung der Schnittstellen gefordert. Ein damit ausgestattetes Terminal wird im folgenden als AVS-Terminal bezeichnet. Das AVS-Terminal soll mit möglichst präzisen Modellierungsmethoden beschrieben werden. Der AVS-Standard nutzt als Modellierungssprache natürliche (englische) Sprache und zur Schnittstellenbeschreibung IDL. TINA ist durch ODPModellierungssichten beschrieben. Die im AVS-Standard verwendeten Ausdrucksmittel reichen nicht aus oder sind zu unpräzise, um TINA-Konzepte darzustellen, die für das AVS-Terminal notwendig sind. Die Schnittstellen des integrierten Modells sollen offengelegt werden, das Referenzmodell ODP ist eine dafür geeignete Methode. Es sind die Anforderungen festzulegen, die für das Modell des AVS-Terminals gelten sollen. Für das AVS-Terminal sollen die gleichen Anforderungen bezüglich des Verhaltens mit der Umgebung bestehen wie für TINA-CPE, da sich ein AVS-Terminal innerhalb TINA genauso verhalten soll, wie in [26] beschriebene TINA-CPEs. Der integrierte Ansatz beschreibt ausschließlich das AVS-Terminal, daher ist eine Modifikation von Komponenten außerhalb des AVS-Terminals nicht erlaubt. Ansonsten müßten diese in die Modellierung einbezogen werden. AVS-Geräte enthalten eine Software, die konform zum Standard „Control and Management of Audio/Video Streams“ [7] ist. Diese Software soll für den Einsatz im AVS-Terminal nicht geändert werden. Daraus ergibt sich, daß nur die im Standard beschriebenen Schnittstellen zur Verfügung stehen. Es sind kei- 65 5 Integration von OMG Audio/Video Streams in TINA-DPE ne Anpassungen an die Besonderheiten des AVS-Terminals möglich, in dem die Geräte betrieben werden sollen. Die in Abschnitt 3.2.6 gezeigten Stream-Binding-Konzepte auf der Grundlage des TINA-Transportnetzes werden auch im integrierten Ansatz genutzt. Insbesondere wird der Communication-Session-Manager als Bindungsobjekt für den Aufbau von (logischen) Stream-Verbindungen genutzt. Zur Bereitstellung von Network-Flow-Verbindungen durch das TINA-Connection-Management muß das AVS-Terminal an mindestens ein TINA-Netz angeschlossen sein. Damit sind drei Anforderungen für das AVS-Terminal identifiziert: 1. Das AVS-Terminal ist TINA-CPE-konform. 2. OMG AVS-konforme Geräte werden ohne Anpassungen eingesetzt. 3. Es werden keine CPE-externen Änderungen vorgenommen. 5.2 Gegenüberstellung von TINA und OMG Audio/Video Streams In Kapitel 3 wurden die Stream-Binding-Konzepte von OMG-AVS und TINA vorgestellt. Bevor ein integriertes Modell entworfen wird, erfolgt eine Gegenüberstellung der beiden Standards. Sie zeigen einige Gemeinsamkeiten, besitzen aber auch konzeptionelle Unterschiede. 5.2.1 Gemeinsamkeiten Stream-Schnittstellen Anwendungen können kontinuierliche Daten an Stream-Flow-Endpunkten empfangen und versenden. Stream-Flow-Endpunkte werden zu StreamSchnittstellen gruppiert. Datentransport zwischen verschiedenen Knoten Kontinuierliche Daten können zwischen verschiedenen Knoten transportiert werden, sofern sie durch ein Netz verbunden sind. Objektinteraktionen Operationale Objektinteraktion wird durch OMG CORBA unterstützt. Bereitstellung von Stream-Verbindungen Stream-Verbindungen werden durch ein Bindungsobjekt bereitgestellt. 66 5.2 Gegenüberstellung von TINA und OMG Audio/Video Streams Dienstgüte An Stream-Flow-Verbindungen können Dienstgüteanforderungen gestellt werden. Topologie Stream-Flow-Verbindungen sind unidirektionale Punkt-zu-Punkt- oder Punkt-zu-Mehrpunkt-Verbindungen. 5.2.2 Unterschiede In Bezug auf Beschreibungstechnik und Stream-Binding-Konzepte unterscheiden sich AVS und TINA in den folgenden Punkten: Modellierung TINA orientiert sich in den Spezifikationen an den Modellierungssichten des Referenzmodells ODP. Als Beschreibungstechnik wird OMT verwendet. Der AVS-Standard folgt RM-ODP nicht so genau wie TINA. Die Beschreibungen enthaltener Informationen und Interaktionen zwischen ComputationalObjekten erfolgen gleichzeitig. Konzepte sind in natürlicher (englischer) Sprache beschrieben. Operationale Schnittstellen von Objekten sind in CORBA IDL notiert. Einige Interaktionsszenarien zwischen Objekten sind durch freie Zeichnungen beschrieben. Betrachtungsspektrum Stream-Binding ist in TINA nur einer von vielen Aspekten bei der Beschreibung einer Plattform für verteilte Anwendungen. AVS bezieht sich ausschließlich auf Stream-Binding-Konzepte. Durch die Verwendung von CORBA ist eine Plattform beschrieben. Modellierung von Verbindungen TINA unterscheidet in eine anwendungsorientierte (logische) und eine netzorientierte (physische) Sicht auf Verbindungen. Zwischen logischen und physischen Verbindungen wird im AVS-Standard nicht unterschieden. Aufbau von Netzverbindungen TINA-Connection-Management stellt Netzverbindungen auf Anforderung von Anwendungen bereit. Der Aufbau von Netzverbindungen erfolgt ohne die Beteiligung von Anwendungen. 67 5 Integration von OMG Audio/Video Streams in TINA-DPE In AVS werden Netzverbindungen durch die Anwendungen bereitgestellt. Diese müssen das Netzprotokoll auf Grundlage der dem Terminal zur Verfügung stehenden Möglichkeiten aushandeln. Netzmanagementkonzepte Die TINA-Spezifikationen beschreiben u.a. den Aufbau und das Management von Netzen [25]. Ende-zu-Ende-Verbindungen werden durch Aufbau mehrerer Teilnetzverbindungen bereitgestellt. Fehlfunktionen von Netzelementen werden durch Komponenten des Ausfallmanagements erkannt und behandelt. AVS betrachtet Netzverbindungen ausschließlich als Ende-zu-EndeVerbindungen. Durch diese Vereinfachung kann auf das Management einzelner Netzelemente verzichtet werden. Ausfälle sind durch die Nutzeranwendungen zu behandeln. Verwaltung von Stream-FlowEndpunkten Stream-FlowEndpunkte stellen in TINA eine vom Terminal verwaltete Ressource dar. Anwendungen können Endpunkte bei einem singulären Verwalter (TCSM) anfordern. Nach Nutzungsende werden sie in den Pool der verfügbaren Endpunkte zurückgegeben. In AVS werden Endpunkte nach Anforderung eines Bindungsobjektes durch Anwendungen erzeugt und vernichtet. Mechanismen zum Schutz vor konkurrierendem Zugriff auf Resourcen sind nicht enthalten. Medienbeschreibung und Dienstgüte In TINA ist die Beschreibung der Daten, die ein SFEP bereitstellen bzw. konsumieren kann, in der SFEP-IDL-Spezifikation durch das Attribut “media“ vorgesehen. Eine Darstellung möglicher Belegungen ist in keiner der TINASpezifikationen enthalten. Es ist nicht zu erkennen, wie beispielsweise die Quelle eines 44kHz Audiosignals zu notieren ist. Im AVS-Standard enthält das Property-Element “currFormat“ eines StreamEndpunktes die SFEP-Medienbeschreibung. Es sind eine Menge standardisierter Parameter sowie möglicher Belegungen definiert. Mit ihnen lassen sich charakteristische Werte von Audio- und Videosignalen beschreiben. Um Dienstgüteanforderungen spezifizieren zu können, wurde eine Notation für die Angabe von Unter- bzw. Obergrenzen von Werten eingeführt. Im Gegensatz zu den aktuellen TINA-Dokumenten enthält der AVS-Standard hinreichende Informationen zur Überprüfung der Kompatibilität von SFEPs und zur Angabe von Dienstgüteparametern für Stream-Flow-Verbindungen. 68 5.3 Beschreibung der Ausgangssituation 5.3 Beschreibung der Ausgangssituation Die Integration soll die Verwendung AVS-konformer Geräte innerhalb TINACPE ermöglichen. Die Schnittstellen, die zwischen der Konsumentendomäne sowie den anderen Domänen in der TINA-Architektur spezifiziert sind, werden im integrierten Modell beibehalten. Die Makler-, Drittanbieter-, Wiederverkäufer- und Verbindungsanbieterdomäne bilden die Umgebung der Konsumentendomäne. Das AVS-Terminal besitzt – als Bestandteil der Konsumentendomäne – drei Schnittstellen mit ihrer Umgebung, identifiziert durch die Referenzpunkte Broker (Bkr), Retailer (Ret) [29] und Terminal Connection (TCon) [23]. Der Broker-Referenzpunkt bezeichnet die Schnittstelle zu einem Verzeichnisdienst. Die Funktionalität zum Finden von Diensten wurde in einem eigenen Referenzpunkt beschrieben, da sich das Finden orthogonal zum Nutzen von Diensten verhält. Die Aufgabe des Verzeichnisdienstes gilt als erfüllt, bevor der gefundene Dienst gestartet wird. Umgekehrt ist es für die Dienstnutzung unbedeutend, auf welchem Weg der Dienst gefunden wurde. Der BrokerReferenzpunkt hat damit keine Bedeutung für die Nutzung von AVS-Geräten in einem TINA-Dienst, insbesondere nicht für den Aufbau von Stream-FlowVerbindungen zwischen dem AVS-Terminal und anderen CPEs. Ein wichtiges Kriterium für den Erfolg der Integration ist die Einhaltung der in den Referenzpunkten Ret und TCon gegebenen Spezifikationen, da nur dann das AVS-Terminal als CPE-konform gilt. Die Spezifikation eines TINA-Referenzpunktes besteht aus mehreren Bestandteilen, einem Informations-, einem Computational- und einem Engineering-Teil. Diese spezifizieren Entitäten, die über Domängrenzen hinweg sichtbar sind. Dazu zählen Informationsobjekte sowie ComputationalSchnittstellen. Spezifikationen von Intra-Domain-Referenzpunkten (z.B. Term) enthalten Aussagen über Objektinteraktionen innerhalb einer Domäne. Diese haben nicht den Charakter einer Vorschrift. Daher ist es zulässig, die Informations- bzw. Computational-Modelle um neue Objekte zu erweitern, die zusätzliche Informationen repräsentieren bzw. eine erweiterte Funktionalität bereitstellen. Die Integration von OMG AVS in die Konsumentendomäne baut auf diese Möglichkeit auf, indem sie AVS-spezifische Informationen in das Informationsmodell einfügt sowie neue Computational-Objekte beschreibt. Das AVS-Terminal ist eine TINA-CPE-Einheit, die an mindestens ein Layer-Netz angeschlossen ist. Damit gelten die folgenden Bedingungen für das AVS-Terminal: 1. Es existiert ein TCSM-Objekt. 2. Für mindestens ein Layer-Netz existiert ein TLA-Objekt (Terminal Layer Adapter). 69 5 Integration von OMG Audio/Video Streams in TINA-DPE 3. Es existiert mindestens ein MMDevice-Objekt Multi Media Device. Die Unterstützung des vollen Profils wird nicht gefordert. 4. Die Objektreferenzen sind bekannt, z.B. durch Anmeldung bei einem Namensdienst. 5.4 ODP-Spezifikation des AVS-Terminals 5.4.1 Informationsspezifikation Ausgehend von dem in Kapitel 3.2.6.1 vorgestellten TINA-Informationsmodell und dem in Kapitel 3.3.3 entwickelten AVS-Modell wird ein gemeinsames Informationsmodell für das AVS-Terminal modelliert. Bestandteil des TINA-Informationsmodells für Verbindungsmanagement sind Terminierungspunkte von Verbindungen. Die der Konsumentendomäne, und damit auch dem AVS-Terminal als Vertreter diese Domäne, zugeordneten Informationsobjekte sind die Terminierungspunkte von Ende-zu-EndeVerbindungen. Der Schwerpunkt bei der Modellierung von Informationen des AVS-Terminals liegt folglich in der Beschreibung von Verbindungsendpunkten. Da das TINA-Modell mit logischen und physischen Verbindungsgraphen als Grundlage dient, wird auch im AVS-Terminal in logische und physische Endpunkte von Verbindungen unterschieden. Die zur Beschreibung von Verbindungen verwendeten Informationsobjekte beider Standards sind in Abbildung 5.1 gegenübergestellt. Diese sind in ein gemeinsames Modell zu integrieren. Abbildung 5.1: SFEPAV S vs. SFEPT INA TINA AVS SFC AVS connectivity 0..1 {xor} sink 1..* SFC TINA connectivity 0..1 connectivity 0..1 {xor} Root source SFEPAVS connectivity sink 1..* NFC 0..1 connectivity {xor} Root source sink SFEPTINA endpoint 0..1 connectivity 70 SFC: Stream Flow Connection NFC: Network Flow Connection TFC: Terminal Flow Connection 1..* 0..1 Root source NFEP 1..2 endpoint 0..1 SExtremity SFEP: Stream Flow End Point NFEP: Network Flow End Point 0..1 connectivity NExtremity TFC 0..* connectivity 5.4 ODP-Spezifikation des AVS-Terminals Der naive Ansatz, SFEPT INA durch SFEPAV S zu ersetzen, ist nicht korrekt, da AVS nicht zwischen logischen und physischen Verbindungen unterscheidet. SFEPs stehen ausschließlich in Beziehung zu anderen SFEPs (indirekt über ein SFC-Objekt). Eine Beziehung zu NFEPs, wodurch eine nodale Bindung (TFC) entsteht, ist nicht zu motivieren. Diese Beziehung wäre auch deshalb problematisch, da sowohl SFEPAV S als auch NFEP Attribute zur Beschreibung einer physischen Flow-Verbindung enthalten. Ein solches Informationsmodell, in dem SFEPT INA durch SFEPAV S ersetzt wird, liegt dem Entwurf von IONA [5] zu Grunde, die Probleme wurden in Abschnitt 4.1 diskutiert. Da die Konformität zum AVS-Standard erhalten bleiben soll, können SFEPAV S -Objekte nicht in Beziehung zu NFEP-Objekten gesetzt werden. Zur Lösung dieses Problems wird die aus [17] stammende Idee eines SFEPBridge Objektes verwendet. Hier wird es dazu genutzt, ein integriertes Modell zu ermöglichen, daß die existierenden Informationsobjekte nicht verändert. Es erlaubt eine AVS-konforme Modellierung der Beziehung zwischen SFEPs und eine TINA-konforme Beschreibung der Zuordnung von SFEPs zu NFEPs durch TFCs. Die folgende Abbildung zeigt SFEPBridge in Assoziation mit zwei FlowVerbindungen: Abbildung 5.2: Einführung des Informationsobjektes SFEPBridge SFC AVS SFEPAVS SFC TINA SFEPBridge SFEPTINA SFEP: Stream Flow End Point SFC: 5.4.1.1 Stream Flow Connection Das Informationsobjekt SFEPBridge Die SFEP-Objekte beider Standards besitzen jeweils ein Attribut zur Beschreibung der Flow-Richtung. Das Attribut wird mit einem Wert belegt, der das SFEP-Objekt als Quelle oder Senke charakterisiert. SFEPAV S bzw. SFEPT INA können damit nicht gleichzeitig Quelle und Senke sein. Eine Stream-Flow-Verbindung besteht zwischen zwei SFEPs1 , die eine entgegengesetze Richtung besitzen. Das SFEPBridge -Objekt fügt sich in der StreamFlow-Verbindung zwischen zwei SFEPs ein, im integrierten Ansatz zwi1 Die Aussage gilt für alle Zweige in einer Stream-Flow-Verbindungen mit der Topologie Punkt-zu-Mehrpunkt 71 5 Integration von OMG Audio/Video Streams in TINA-DPE schen SFEPAV S und SFEPT INA . Ist beispielsweise das Richtungsattribut des SFEPAV S -Objektes mit Quelle belegt, so soll durch SFEPBridge ein kontinuierlicher Datenaustausch zu einem SFEPT INA -Objekt mit der Eigenschaft Senke ermöglicht werden. Dazu wird SFEPBridge gegenüber SFEPAV S als Senke charakterisiert, gegenüber SFEPT INA als Quelle. Als Informationsobjekt besitzt SFEPBridge die in der folgenden Tabelle gezeigten Attribute. Attribut Bedeutung FlowName Bezeichnet den Flow-Namen. DirectionAV S Charakterisiert die Rolle gegenüber SFEPAV S . DirectionT INA Charakterisiert die Rolle gegenüber SFEPT INA . MediaDesc Beschreibt die verwendete Kodierung. ProtocolAV S Bezeichnet das verwendete Protokoll der Transportverbindung zu SFEPAV S . AddressAV S Enthält die protokollspezifische Adresse der Verbindung zu SFEPAV S . NFEP Bezeichnet das zugeordnete NFEP-Objekt. Zwei Richtungsattribute sind die besondere Eigenschaft des BridgeKonzeptes in der Informationsspezifikation. Dazu besitzt das Informationsobjekt die zwei Attribute “DirectionT INA “ und “DirectionAV S “. Beide Attribute besitzen immer eine unterschiedliche Belegung. Mit dieser Festlegung ist die Verwendung von zwei Attributen zwar redundant, verdeutlicht aber das Konzept. Das Attribut FlowName bezeichnet den Flow-Namen. Da die Zuordnung der Quelle einer Stream-Schnittstelle zur Senke einer anderen Schnittstelle nur über den Flow-Namen erfolgt, sind die Flow-Namen von SFEPAV S und SFEPT INA identisch. MediaDesc beschreibt das Medienformat2 der zwischen SFEPAV S und SFEPT INA transportierten Daten. SFEPBridge nimmt keine Konvertierung der Daten vor. Durch die Attribute ProtocolAV S und AddressAV S wird der für den Datentransport zu SFEPAV S verwendete Terminierungspunkt beschrieben. NFEP enthält das zu SFEPBridge zugeordnete NFEP-Objekt. 2 Medienformate 72 sind in RFCs von IETF definiert. 5.4 ODP-Spezifikation des AVS-Terminals 5.4.1.2 Das Informationsmodell Abbildung 5.2 zeigt das für den integrierten Ansatz entworfene Informationsmodell mit SFEPBridge als Verbindungselement der beiden Standards. SFEPBridge ist eine Spezialisierung von SFEPT INA . Damit ist es möglich, Stream-Flow-Verbindungen zwischen einer beliebigen Kombination von SFEPBridge - und SFEPT INA -Objekten zu beschreiben. Für TerminalFlow-Verbindungen gibt es keine Unterscheidung zwischen SFEPT INA und SFEPBridge . Abbildung 5.3: Das Informationsmodell für den integrierten Ansatz SFC TINA connectivity 0..1 connectivity {xor} sink 1..* NFC 0..1 connectivity Root sink source SFEPTINA endpoint 1..2 FlowName 0..1 connectivity {xor} 1..* 0..1 Root source NFEP SExtremity endpoint 0..1 NExtremity SFEPAVS SFEPBridge FlowName endpoint AVSExtremity 1..* con. TFC 0..1 connectivity endpoint {SFEP_AVS.FlowName = SFEP_Bridge.FlowName 0..1 BridgeExtremity SFC AVS connectivity connectivity TransportProtocol OperationalState Das SFCAV S -Objekt beschreibt eine Verbindung zwischen einem SFEPAV S und einem SFEPBridge -Objekt mit gleichen Flow-Namen. Die beiden Attribute bezeichnen das verwendete Transportprotokoll sowie den Zustand der Verbindung. Die SFCT INA - und NFC-Modellierungen wurden unverändert in das integrierte Informationsmodell übernommen. Damit bleiben auch die Modelle der logischen und physischen Verbindungsgraphen erhalten. 5.4.1.3 Die SFEPBridge-Medienbeschreibung und Aspekte der Dienstqualität Bereits bei der Gegenüberstellung der beiden Standards in Abschnitt 5.2 wurde auf die unterschiedliche Darstellung von Medienformaten aufmerksam gemacht. 73 5 Integration von OMG Audio/Video Streams in TINA-DPE Das im integrierten Informationsmodell eingeführte SFEPBridge-Objekt enthält ein Attribut zur Medienbeschreibung, also der charakteristischen Eigenschaften der Daten, die an diesem Stream-Flow-Endpunkt empfangen bzw. an ihn gesendet werden können. Da SFEPBridge einen Stream-Flow-Endpunkt des OMG-Gerätes gegenüber einem TINA-Dienst repräsentiert, sollte die Medienbeschreibung semantisch der des SFEPAV S -Objektes möglichst entsprechen. Dazu ist ein Algorithmus zur Abbildung der AVS-Notation auf die TINA-Notation notwendig. Zur Zeit der Fertigstellung dieser Arbeit (September 2000) enthalten die TINA-Spezifikationen keine Notation zur Darstellung von Medienformaten. Diese ist aber notwendig, um die Medienbeschreibung eines SFEPAV S Objektes in eine für die TINA-Welt interpretierbare Beschreibung zu bringen. Für diese Arbeit soll gelten, daß die Notation der Medienbeschreibung in TINA aus dem AVS-Standard übernommen wird. Mit dieser Festlegung gilt, daß das SFEPBridge -Medienformat identisch mit dem des SFEPAV S -Objektes ist. Bei einem Auftrag zur Bereitstellung von Flow-Verbindungen kann die Einhaltung gegebener Dienstgüteeigenschaften gefordert werden, die für diese Verbindung gelten sollen. Für Stream-Flow-Verbindungen werden die Kriterien durch Parameter der Anwendungsebene beschrieben. Beispielsweise kann für eine Stream-Flow-Verbindung, die Audiodaten im Medienformat “mp3“ transportiert, gefordert werden, daß die Kodierung mit mindestens 128 Bit erfolgt. Network-Flow-Verbindungen erbringen die physische Übertragung der Daten einer Stream-Flow-Verbindung. Dienstgüteparameter auf Anwendungsebene haben direkten Einfluß auf die Bestimmung der Anforderungen an die Netzverbindung. Der integrierte Ansatz setzt jeweils ein SFEPAV S -Objekt in Beziehung zu einem SFEPBridge-Objekt. Diese Beziehung läßt sich als SFC betrachten, wodurch Aussagen über die gestellten Güteanforderungen zu treffen sind. Im AVS-Terminal werden an diese Verbindung die gleichen Anforderungen gestellt, wie sie für SFC zwischen SFEPBridge und remote-SFEPs gelten. Mit dieser Festlegung werden Anforderungen eines TINA-Dienstes an eine Nutzeranwendung direkt auf das AVS-Gerät übertragen. 5.4.2 Computational-Spezifikation 5.4.2.1 Anwendung der ODP Stream-Binding-Konzepte Zu den Betrachtungsgegenständen der Computational-Modellierungssicht gehört das Binden der Stream-Schnittstellen von Computational-Objekten. Für den integrierten Ansatz muß also das Bereitstellen von StreamVerbindungen beschrieben werden. Eine solche Verbindung wird auf der 74 5.4 ODP-Spezifikation des AVS-Terminals einen Seite durch eine Stream-Schnittstelle eines AVS-Gerätes des AVSTerminals terminiert. Der andere Terminierungspunkt ist eine TINAStream-Schnittstelle eines Computational-Objektes, z.B. des in der ServiceArchitektur eingeführten User-Application-Objektes (UAP). Zwischen den Stream-Schnittstellen dieser beiden Computational-Objekte wird im integrierten Ansatz ein kontinuierlicher Datenaustausch ermöglicht. Abbildung 5.4: Computational-Objekte mit Stream-Schnittstellen verschiedenen Typs MMDevice AVS Stream-Schnittstellen (SEP) MMDevice: Multi Media Device, Computational-Objekt mit AVS-Stream-Schnittstelle UAP TINA Stream-Schnittstellen (SI) UAP: User Application, Computational-Objekt mit TINA-Stream-Schnittstelle Das Referenzmodell ODP beschreibt ein Bindungsobjekt als leistungsfähigste Methode zur Bereitstellung von Stream-Verbindungen (vgl. Abschnitt 2.7 auf Seite 25). Ein Bindungsobjekt erlaubt es, Stream-Schnittstellen mit unterschiedlichem Typ zu binden. Die Verbindung zwischen den Schnittstellen von MMDevice und UAP kann durch ein ODP-Bindungsobjekt bereitgestellt werden. CSM ist das Bindungsobjekt des TINA-Connection-Managements und unterstützt nur Schnittstellen vom TINA-Typ Stream Interface (SI). CSM ist die IDL-Spezifikation der AVS-Schnittstelle StreamEndPoint (SEP) nicht bekannt. Damit kann es nicht als Bindungsobjekt für die ComputationalObjekte der Abbildung 5.4 eingesetzt werden. Des weiteren funktioniert das StreamEndPoint-Objekt nur mit der StreamBinding-Semantik des AVS-Standards. Demnach ist es auf die Existenz eines StreamEndPoint-Objektes als Peer angewiesen. Das Objektmodell mit MMDevice und UAP ermöglicht bis jetzt keine Bindung der Stream-Schnittstellen unter Verwendung von CSM. Durch Einführung eines weiteren Computational-Objektes kann der Austausch von kontinuierlichen Daten zwischen diesen Objekten dennoch ermöglicht werden. Dieses Objekt besitzt den Charakter eines Adapters, der eine Umsetzung zwischen den Konzepten vornimmt und den jeweiligen Partner vor einem Objekt verbirgt. Das Objekt tritt gegenüber MMDevice und UAP als Partner für Interaktionen über operationale- und für Datenaustausch über StreamSchnittstellen auf. 75 5 Integration von OMG Audio/Video Streams in TINA-DPE Der Adapter motiviert eine Modellierung der Bridge nicht nur als Informationsobjekt, sondern auch als ein Computational-Objekt. Das Informationsobjekt SFEPBridge besitzt zwei Richtungsattribute, diese Eigenschaft wird in der Computational-Modellierungssicht durch zwei Stream-Schnittstellen3 eines Computational-Objektes sichtbar. Durch die im Informationsmodell definierte Beschränkung der Belegung beider Attribute (entgegengesetzte Richtung) sind die Stream-Schnittstellen von komplementärer Signatur. 5.4.2.2 Das Bridge-Konzept in der Computational-Modellierungssicht Das Informationsobjekt SFEPBridge wird in der Computational-Modellierungssicht als ein Computational-Objekt mit zwei Stream-Schnittstellen dargestellt. Die Konfiguration der zu bindenden Computational-Objekte im integrierten Ansatz zeigt Abbildung 5.5. Das Bridge-Objekt besitzt genau zwei Stream-Schnittstellen, davon ist eine vom AVS-Typ SEP, die andere ist vom TINA-Typ SI. Als ComputationalObjekt besitzt das Bridge-Objekt damit eine Stream-Schnittstelle des AVSStandards und eine von TINA. Abbildung 5.5: Das Bridge-Objekt als Computational-Objekt mit zwei Stream-Schnittstellen i_BridgeControl MMDevice Bridge TINA Stream-Schnittstellen (SI) AVS Stream-Schnittstellen (SEP) Bridge: Computational-Objekt mit zwei Stream-Schnittstellen unterschiedlichen Typs UAP MMDevice: Multi Media Device, Computational-Objekt mit AVS-Stream-Schnittstelle UAP: User Application, Computational-Objekt mit TINA-Stream-Schnittstelle Das im letzten Abschnitt eingeführte Informationsmodell enthält keine Assoziation zwischen einem AVS- und einem TINA-Stream-Flow-Endpunkt. Und damit auch nicht zwischen den zu Stream-Schnittstellen aggregierten Stream-Flow-Endpunkten. Die SFEP-Objekte des Informationsmodells werden im ComputationalModell durch Stream-Schnittstellen repräsentiert. Da es im Informations3 Eine 76 Stream-Schnittstelle ist eine Aggregation von SFEPs. 5.4 ODP-Spezifikation des AVS-Terminals modell keine Assoziation zwischen SFEPAV S und SFEPT INA gibt, enthält das Computational-Modell keine Computational-Bindung zwischen den StreamSchnittstellen SEP und SI. Sowohl aus dem Informations- als auch dem bis jetzt entworfenen Computational-Modell ist ersichtlich, daß der Transport kontinuierlicher Daten zwischen MMDevice und UAP nicht durch eine einzige Bindung von zwei Stream-Schnittstellen ermöglicht werden kann. Es sind zwei Bindungen bereitzustellen, zwischen MMDevice und Bridge und zwischen Bridge und UAP. Als Bindungsobjekt für die Objekte Bridge und UAP wird CSM verwendet. Für die Bindung zwischen MMDevice und Bridge wird ein neues Bindungsobjekt modelliert, das Objekt wird als Bridge Binding Manager (BBM) bezeichnet. Die Konfiguration der Computational-Objekte für den integrierten Ansatz zeigt die folgende Abbildung. Abbildung 5.6: Bridge Binding Manager als Bindungsobjekt für MMDevice und Bridge BBM CSM i_BridgeControl MMDevice MMDevice Bridge UAP Interaktion an operationaler Schnittstelle BBM: Bridge Binding Manager CSM Communication Session Manager Die Funktionalität von BBM besteht in der Bereitstellung einer Verbindung zwischen genau zwei Stream-Schnittstellen des AVS-Standards. BBM stellt eine Verbindung zwischen MMDevice- und Bridge-Objekt her. Die besondere Beachtung des AVS-Terminals und die Optimierung der Stream-Verbindung, die BBM gegebenüber dem AVS-StreamCtrl-Objekt auszeichnet, werden in der Engineering- bzw. Technology-Modellierungssicht sichtbar. 77 5 Integration von OMG Audio/Video Streams in TINA-DPE 5.4.2.3 Voraussetzungen für die Teilnahme des AVS-Terminals am TINA-Connection-Management Vor dem Entwurf der Schnittstellen der neu eingeführten COs BBM und Bridge sollen zunächst die für die Umgebung des AVS-Terminals bereitzustellenden Schnittstellen diskutiert werden. Die Referenzpunkte Ret und TCon fordern von einer CPE die Existenz der Schnittstellen von TCSM und TLA. Die Modellierung der Objekte, die diese Schnittstellen unterstützen und damit die erwartete Funktionalität erbringen, ist nicht vorgeschrieben. Für das AVS-Terminal ergeben sich damit zwei Möglichkeiten. Die erste besteht in der Bereitstellung der Funktionalität durch neue Objekte des AVSTerminals (BBM, Bridge oder weiteren). Die zweite baut auf die Nutzung der im AVS-Terminal existierenden Objekte TCSM und TLA auf. Eine Neuimplementierung ist dann notwendig, wenn spezifische Anforderungen des AVSTerminals eine Änderung der Funktionalität erfordern. Die Aufgaben eines TLA-Objektes bestehen in der Bereitstellung und Manipulation von NWTTPs auf Anforderung von Objekten der Verbindungsanbieterdomäne. Nach erfolgter NWTTP-Bereitstellung für eine Network-FlowVerbindung wird ein NFEP-Objekt als technologieunabhängige Sicht auf den Trail-Terminierungspunkt an das TCSM-Objekt übermittelt. Anhand der von TCSM bei der SFEP-Anmeldung vergebenen Korrelations-ID kann TCSM den TFC-Aufbau abschließen. Die Funktionen des TLA-Objektes werden im AVS-Terminal unmodifiziert verwendet, da der Aufbau von Network-FlowVerbindungen weiterhin durch das TINA-Connection-Management erfolgt. Im AVS-Terminal wird der Aufbau der terminallokalen Stream-FlowVerbindung zwischen MMDevice und Bridge an die Benachrichtigung über die NFEP-Bereitstellung gekoppelt. Diese und andere Benachrichtigungen können an der i_NotifyCtrl-Schnittstelle des TCSM-Objektes bestellt werden. Die Verwendung dieser Schnittstelle ist die einzige Besonderheit des AVS-Terminals in Zusammenhang mit dem TCSM-Objekt. Durch die i_NotifyCtrl-Schnittstelle kann das im AVS-Terminal bereits existierende TCSM-Objekt ohne Modifikationen genutzt werden. Das Bridge-Objekt wurde als Computational-Objekt mit zwei StreamSchnittstellen entworfen. Die Bindung der TINA-konformen StreamSchnittstelle mit der eines UAP-Objektes erfolgt durch das TINA-ConnectionManagement. Die zweite Stream-Schnittstelle des Bridge-Objektes wird mit der des MMDevice-Objektes gebunden. Diese Bindung erfolgt durch das BBM-Objekt und kann, wie im AVS-Standard beschrieben, im leichten oder im vollen Profil erfolgen. Für das AVS-Terminal wird das leichte Profil verwendet. Das volle Profil bietet die (Engineering-)Möglichkeit der Verteilung einzelner Flow-Endpunkte auf unterschiedliche Knoten. Diese Eigenschaft wird nicht benötigt, da sich alle Endpunkte des MMDevice- und des BridgeObjektes innerhalb des AVS-Terminals befinden. 78 5.4 ODP-Spezifikation des AVS-Terminals Zur Vorbereitung der Stream-Flow-Verbindung zwischen MMDevice und Bridge gehört die Instanziierung einer AVS-Stream-Schnittstelle durch das Bridge-Objekt. Damit sind die im AVS-Terminal notwendigen Voraussetzungen identifiziert, die für Interaktionen mit dem TINA-Connection-Management während des Bindungsprozesses notwendig sind. 5.4.2.4 Die Schnittstellen der Objekte BBM und Bridge Das Computational-Objekt BBM besitzt die drei Schnittstellen i_Factory, i_BridgeBindingManager und i_Notify. Die Schnittstelle i_BridgeBindingManager wird vom ssUAP-Objekt4 zur Bereitstellung von TINA-Stream-Schnittstellen für ein vom Nutzer ausgewähltes MMDevice-Objekt genutzt. An i_Notify empfängt BBM Benachrichtigungen des TCSM-Objektes. Das Bridge-Objekt besitzt die Schnittstellen i_BridgeCtrl zur Steuerung der Stream-Verbindungen zu einem MMDevice-Objekt sowie i_Configurator und i_BridgeSEP für Interaktionen mit dem AVS-Gerät. Die IDL-Beschreibung der Schnittstellen befinden sich im Anhang. 5.4.2.5 Computational-Interaktionen - Stream-Binding-Szenario Das Szenario beschreibt beschreibt die Bereitstellung mehrerer StreamFlow-Verbindungen. Die Bindung zwischen der Stream-Schnittstelle des MMDevice-Objektes im AVS-Terminal und eines UAP-Objektes einer anderen CPE wird durch eine Folge von Interaktionen zwischen ComputationalObjekten hergestellt. Es ist nicht entscheidend, ob das UAP-Objekt, mit dem das MMDevice-Objekt gebunden wird, eine TINA-Anwendung ist, oder ob es sich dabei ebenfalls um eine Anwendung eines AVS-Terminals handelt. Das folgende Szenario baut auf einer bestehenden Service-Sitzung auf. Damit ist eine dienstspezifische Komponente einer Anwendung im AVSTerminal instanziiert und eine für Einladungen bereitgestellte Schnittstelle dem User Session Manager (USM) in der Anbieterdomäne bekannt. Ausgehend von der bestehenden Service-Sitzung werden der Aufbau einer Communication-Sitzung und die Verarbeitung der Benachrichtigung über die NFEP-Zuordnung während des Aufbaus der zugehörigen ConnectivitySitzung beschrieben. Das Szenario folgt den Schnittstellenbeschreibungen und dem Verhalten der Objekte der Network Component Specification [24], dem Nachfolgedokument von Network Ressource Architecture [25]. 4 Das Objekt ssUAP bietet einem Nutzer die im AVS-Terminal registrierten MMDeviceObjekte zur Auswahl an. 79 80 16: sinks = request_connection(sources:FlowSpec) :BridgeSEP {new} 5: si = configureSI(aVDev:VDev, reqFlows:t_MediaDescList) 13: (i=1..n) notify(list:t_notify_list) 9: setNotificationDestination(self:i_Notify) 8: (i=1..n) registerSFEP(name:t_SFEPName) 14: connectToSEP(sfeps:t_SFEPBridgeDescList) 15: connect(aSEP:StreamEndPoint, sfeps:t_SFEPBridgeDescList) :BridgeCtrl {new} :Configurator {new} 4: si = setup(aVDev:VDev, aSEP:StreamEndPoint, reqFlows:t_MediaDescList) :BridgeBindingManager 7: (i=1..n) set_format(name:flowName, media:MediaDesc) aSEP:StreamEndPoint {new} aVDev:VDev {new} 6: flowNameSeq := get_property("Flows") aMMDev:MMDevice 3: aSEP, aVDev := create_A() 1: si = addPartyPaSBInd(reqFlows:t_MediaDescList) 2: si := prepareNodalBinding(aMMDevice:MMDevice, reqFlows:t_MediaDescList ) :ssUAP :TLA :CSM 11: (i=1..n) correlate(name:t_SFEPName, id:t_Id) 12: (i=1..n) associate(id:t_Id, finalNFEP:t_NFEP) :TCSM :SSM 10: addUSR(si:t_SFEPDescList) :USM 0: si = addParticipantsPartyPaSBInd()(reqFlows:t_MediaDescList) 5 Integration von OMG Audio/Video Streams in TINA-DPE Abbildung 5.7: Das Stream-Binding Szenario des integrierten Ansatzes 5.4 ODP-Spezifikation des AVS-Terminals 1. User Session Manager (USM) sendet eine Aufforderung zur StreamBinding-Teilnahme an die dienstspezifische Anwendung (ssUAP). Einer der übergebenen Parameter ist eine Liste von Mediabeschreibungen der zu diesem Dienst gehörenden Flows. 2. ssUAP beauftragt das BridgeBindingManager-Objekt mit der Bereitstellung einer TINA-Stream-Schnittstelle für ein durch den Parameter aMMDevice gewähltes AVS-Gerät. 3. BridgeBindingManager fordert von MMDevice die Erzeugung eines VDev- und eines StreamEndPoint-Objektes. Danach wird ein BridgeCtrl-Objekt erzeugt. 4. Das BridgeCtrl-Objekt wird für das MMDevice-Objekt konfiguriert. 5. BridgeCtrl instanziiert die Objekte Configurator und BridgeSEP. Das Configurator-Objekt wird mit der Konfiguration des VDev-Objektes für den TINA-Dienst beauftragt. 6. Das Configurator-Objekt parametrisiert die einzelnen Flows des VDevObjektes für die vom TINA-Dienst geforderten Kodierungen. Dazu erfragt es vom VDev-Objekt zuerst die Flow-Namen. Danach erfragt es einzeln die Flow-Richtungen. 7. Für korrespondierende Flow-Namen wird durch set_format() die vom TINA-Dienst geforderte Kodierung eingestellt. Für jeden Flow der TINA-Dienstbeschreibung, für den VDev einen Flow mit gleichem Namen und entgegengesetzter Richtung enthält und bei dem die Einstellung der Kodierung gelungen ist, wird eine t_SFEPBridgeDesc-Struktur erzeugt. Damit entsteht eine SFEPListe, die eine Teilmenge der von VDev und dem TINA-Dienst verwendeten SFEPs darstellt. Die SFEP-Liste wird als TINA-Schnittstellenbeschreibung des AVSGerätes an BridgeCtrl zurückgegeben. BridgeCtrl liefert die Beschreibung als Ergebnis der setupSI()-Operation an BridgeBindingManager zurück. 8. BridgeBindingManager registriert die SFEP-Namen am TCSM. Die Objektreferenz von TCSM ist durch Registrierung am Namensdienst bekannt. 9. BridgeBindingManager bestellt Benachrichtigungen am TCSM, um später über die Zuweisung von NFEPs zu SFEPs informiert zu werden. Die TINA-Schnittstellenbeschreibung wird an ssUAP zurückgegeben. ssUAP gibt sie als Ergebnis der addPartyPaSBInd()-Anforderung an das USM-Objekt zurück und dieses weiter an SSM. 81 5 Integration von OMG Audio/Video Streams in TINA-DPE 10. SSM beauftragt CSM, eine Communication-Session zu erzeugen, und übergibt als Parameter die Stream-Schnittstellen der Dienstteilnehmer. 11. CSM generiert eine Korrelations-ID für jeden SFEP, die ID wird TCSM übermittelt. Diese ID ordnet SFCs und NFCs einer TFC zu, sie wird durch den Aufruf correlate() dem TCSM mitgeteilt. Diese ID wird später von TLA verwendet, um TCSM die Auswahl des gewählten NFEP-Objektes mitzuteilen, dann erst kann TCSM den TFC-Aufbau abschließen. Nach diesem Schritt befindet sich das AVS-Terminal in dem folgenden Zustand: Das AVS-Terminal verfügt über eine TINA-Stream-Schnittstelle, deren SFEPs in Name, Richtung und Charakteristik (Kodierung) einer Teilmenge der SFEPs des AVS-Gerätes entsprechen. Die erzeugten SFEPs sind TCSM bekannt. TFCs sind noch nicht vollständig aufgebaut. Die nachfolgenden Aktionen von CSM bauen eine Connectivity-Sitzung auf. Die dabei stattfindenden Interaktionen sind unabhängig von den Erweiterungen des AVS-Terminals und wurden im Collaboration-Diagramm 5.7 nicht notiert. Mit dem Aufbau der Connectivity-Sitzung beauftragt CSM das Objekt Connection Coordinator (CC) aus der Verbindungsanbieterdomäne. CC stellt Network-Flow-Verbindungen zwischen NFEPs her. Die Auswahl der verwendeten NFEP-Objekte eines Terminals wird am Terminal Layer Adapter bekanntgegeben. Diese Benachrichtigung enthält die Korrelations-ID. TCSM kann dadurch die Terminal-Flow-Verbindung eindeutig identifizieren und dieser das NFEPObjekt zuordnen. In einer TINA-CPE ohne AVS-Erweiterung wäre der TFC-Aufbau abgeschlossen und TFC in einem aktivierbaren Zustand. Für das AVS-Terminal gilt diese Aussage noch nicht. Es muß zunächst eine Verbindung für den Transport der Daten zwischen StreamEndPoint und BridgeSEP bereitgestellt werden. 12. TLA sendet eine Benachrichtigung an TCSM über die endgültige NFEP-Auswahl. 13. TCSM leitet die Benachrichtigung an das zuvor registrierte Objekt BridgeBindingManager weiter. BridgeBindingManager speichert den NFEP-Namen in der SFEPBridgeDesc-Struktur. 82 5.4 ODP-Spezifikation des AVS-Terminals 14. Wenn für alle SFEPs eine Zuordnung erhalten wurde, ruft BridgeBindingManager die Operation connectToSEP() am BridgeCtrl-Objekt auf. 15. BridgeCtrl- ruft connect() an BridgeSEP auf. 16. BridgeSEP interagiert mit dem SEP-Objekt gemäß der Semantik des AVS-Standards. Das Ziel ist der Aufbau von Flow-Verbindungen zwischen Endpunkten des StreamEndPoint- und des BridgeSEP-Objektes. Dazu wird für jedes SFEPBridge-Objekt, dessen Attribut DirectionAV S die Belegung Sink hat, ein Flow-Endpunkt (FEP) erzeugt. Flow-Endpunkte werden für ein bestimmtes Transportprotokoll erzeugt. Da SFEPBridge bereits ein NFEP-Objekt zugeordnet worden ist, kann überprüft werden, ob die Adresse des Netzterminierungspunktes verwendet werden kann. Diese Optimierungssmöglichkeit wird in der EngineeringSpezifikation erläutert. Die zur Verfügung stehenden Protokolle werden von der Verarbeitungsumgebung bestimmt. Da das Protokoll von beiden Endpunkten der Flow-Verbindung unterstützt werden muß, wird vor Bereitstellung eines Flow-Endpunktes die Unterstützung durch das StreamEndPointObjekt erfragt. Protokolle, die sich besonders für terminallokale FlowVerbindungen eignen, werden in den Technology-Betrachtungen diskutiert. Die Adressen der erzeugten FEPs werden mit der Operation request_connection() an StreamEndPoint übermittelt. StreamEndPoint stellt Endpunkte für alle lokalen Senken bereit und verbindet sie mit den als Parameter übergebenen FEP-Adressen. Für SFEPs mit der Eigenschaft Source werden weitere Endpunkte erzeugt und als Rückgabewert an BridgeSEP geliefert. BridgeSEP erzeugt Endpunkte für jedes SFEPBridge-Objekt mit dem Attribut dir=Source (Richtung gegenüber dem TINA-Dienst). Anschließend werden sie mit den aus dem Rückgabewert von request_connection erhaltenen Adressen verbunden. Damit ist der Aufbau der Terminal-Flow-Verbindungen im AVSTerminal beendet. Sie sind in einem aktivierbaren Zustand. Die von StreamEndPoint und BridgeSEP erzeugten Endpunkte sowie deren Verbindungen stellen Ressourcen der Engineering-Modellierungssicht dar. Sie entsprechen dem Modell von ODP-Kanälen und benötigen die Unterstützung der umgebenden Verarbeitungseinheit (das AVS-Terminal). Die verschiedenen Möglichkeiten der technologischen Realisierung der Verbindung 83 5 Integration von OMG Audio/Video Streams in TINA-DPE zwischen StreamEndPoint und BridgeSEP – dazu zählt z.B. die Auswahl geeigneter Transportprotokolle – werden im Kapitel „Technology-Spezifikation“ beschrieben. 5.4.3 Engineering-Spezifikation Jedes Computational-Objekt des integrierten Ansatzes besitzt in der Engineering-Spezifikation ein korrespondierendes EngineeringComputational-Objekt (eCO). eCOs werden Kapseln zugeordnet, in denen sie ausgeführt werden können. Das AVS-Terminal bietet die zur Ausführung notwendige DPE-Unterstützung. 5.4.3.1 Ein Engineering-Modell der AVS-Objekte Zu AVS-Geräten gehört eine Implementierung, die die Schnittstellen des AVS-Standards bereitstellt. Der AVS-Standard enthält keine Vorgaben bezüglich der Engineering-Realisierungen dieser Implementierung. Daher sind mehrere Engineering-Modelle möglich. Die Implementierung kann in Form einer dynamisch ladbaren Bibliothek (engl. Dynamic Load Library) oder als ausführbare Datei (engl. Executable) vorliegen. Das in diesem Abschnitt entworfene Modell ordnet alle eCOs des AVS-Gerätes einer Kapsel zu. Abbildung 5.8: Beispiel eines AVS-Engineering-Modells AVS Terminal AVS Capsule Capsule Manager Cluster Manager Factory MMDevice Cluster Manager VDev Device Driver Device StreamEnd Point Coding Object Coding Object Channel Transport kontinuierlicher Daten Objekterzeugung Channel Operationale Schnittstelle Durch diese Zuordnung ist ausgeschlossen, daß für die Flow-Verbindung zwischen AVS-Objekten und Bridge technologische Verfahren angewendet werden können, die nur innerhalb einer Kapsel möglich sind. Dadurch würden AVS-Geräte von der Verwendung im AVS-Terminal ausgeschlossen werden, deren Software als ausführbare Datei vorliegt. 84 5.4 ODP-Spezifikation des AVS-Terminals In dem hier entworfenen Modell enthält die Kapsel zwei Cluster. Im Referenzmodell ODP wird eine Kapsel durch das Objekt Capsule-Manager und werden Cluster durch Cluster-Manager-Objekte gesteuert. Sie werden zur Instanziierung von Clusters und Objekten benötigt. Das Computational-Objekt MMDevice wird auf das Engineering-Objekt Factory abgebildet. Es unterstützt die Schnittstelle MMDevice und ist einem Cluster zugewiesen. Das zweite Cluster enthält das Engineering-Objekt DeviceDriver, das eine gerätespezifische Implementierung der Schnittstellen VDev und StreamEndPoint bereitstellt. DeviceDriver stellt das gerätespezifischen Objekt eines AVS-Gerätes dar. Es kann kontinuierliche Daten bereitstellen und konsumieren. Die Quelle bzw. die Senke dieser Daten ist spezifisch für das AVS-Gerät. Es kann sich dabei um ein physisches Gerät handeln, von dem Daten gelesen bzw. an das Daten gesendet werden können (z.B. ein Mikrophon oder ein Lautsprecher). In diesem Fall interagiert DeviceDriver über eine gerätespezifische Schnittstelle mit dem Gerät, z.B. durch ioctrl()Systemrufe. Quellen und Senken müssen nicht an physische Geräte gebunden werden. Die Senke kontinuierlicher Daten kann eine graphische Oberfläche sein, z.B. ein Fenster des X-Window-Systems. Die Ansteuerung erfolgt über eine für Anwendungen bereitgestellte Schnittstelle (Application Programming Interface, API). In der AVS-Kapsel terminieren ein oder mehrere Kanäle für den Transport kontinuierlicher Daten. Für den Transport der Daten über einen Kanal ist das Objekt CodingObject verantwortlich. Es empfängt Daten vom DeviceDriver-Objekt und sendet sie über den Kanal bzw. empfängt Daten vom Kanal und übergibt sie an das DeviceDriver-Objekt. CodingObject kodiert und dekodiert die Daten in das für die Flow-Verbindung ausgehandelte Format. Alternative Engineering-Modelle Für die AVS-Objekte sind weitere Engineering-Modelle möglich. Das hier gezeigte Modell ist nur ein Beispiel. Implementierungen für konkrete Geräte können andere Engineering-Modelle zur Grundlage haben. Die Bestimmung der Engineering-Computational-Objekte wird sich an der verwendeten Hardware und an unterstützten Flows orientieren. Die Objekte können spezialisierte Schnittstellen von MMDevice, VDev und StreamEndPoint unterstützen. Zusätzlich können die Schnittstellen des vollen Profils FlowEndPoint und FDev unterstützt werden. Aus dem AVS-Standard läßt sich die Forderung ableiten, daß alle Engineering-Modelle die Schnittstellen vom Basistyp MMDevice, VDev und StreamEndPoint unterstützen müssen. Dieses Kriterium definiert die Menge der möglichen Modelle. Das in Abbildung 5.8 gezeigte Modell erfüllt dieses Kriterium. 85 5 Integration von OMG Audio/Video Streams in TINA-DPE 5.4.3.2 Ein Engineering-Modell für die Bridge-Objekte Die Bridge-Objekte werden zusammen einer Kapsel zugeordnet, die die Schnittstellen i_BridgeBindingManager, i_Notify, VDev und StreamEndPoint unterstützt. Das BridgeBindingManager-Objekt wird in dieser Kapsel einem Cluster zugeordnet und erzeugt BridgeCtrl-Objekte jeweils in einem anderen Cluster. Damit können BridgeCtrl-Objekte parallel in der Kapsel ausgeführt werden, wodurch mehrere AVS-Geräte im AVS-Terminal unabhängig voneinander verwendet werden können. Die Lebenszeiten der BridgeCtrl-Clusters sind unabhängig voneinander und durch die Dauer der Verwendung des jeweiligen AVS-Gerätes bestimmt. Abbildung 5.9: Bridge-Engineering-Spezifikation AVS-Terminal i_BridgeBindingManager Bridge Capsule Capsule Manager Cluster Manager i_Factory BridgeBinding Manager i_Notify Factory i_BridgeCtrl Cluster Manager Configurator i_Configurator VDev StreamEnd Point BridgeCtrl BridgeSEP Flow Adapter i_BridgeSEP Cluster Manager Objekterzeugung Operationale Schnittstelle Interaktion an operationaler Schnittstelle Das BridgeSEP-Objekt instanziiert während des Bindungsprozesses mehrere FlowAdapter-Objekte jeweils in einem neuen Cluster. Dadurch können sie parallel ausgeführt werden, und blockierendes Warten auf das Eintreffen von Daten über den Kanal hat keine Auswirkungen auf den Datenfluß der ande- 86 5.4 ODP-Spezifikation des AVS-Terminals ren Kanäle. Die Funktion des FlowAdapter-Objektes besteht darin, Daten, die über eine Trail-Verbindung am AVS-Terminal eintreffen, zum CodingObject der AVS-Kapsel zu transportieren. Die folgende Abbildung verdeutlicht den Transport der Daten: Abbildung 5.10: Transport kontinuierlicher Daten über zwei Kanäle AVS Terminal AVS Capsule Bridge Capsule Device Driver BridgeSEP StreamEnd Point Coding Object StreamEnd Point Flow Adapter Channel Channel Transport kontinuierlicher Daten Interaktion an operationaler Schnittstelle Objekterzeugung Operationale Schnittstelle In dieser Konfiguration terminieren am FlowAdapter-Objekt zwei Kanäle. Möglichkeiten der technologischen Realisierung des Kanals zum CodingObject werden im nächsten Abschnitt erläutert. Daten, die am TrailTerminierungspunkt (NWTTP) des Terminals eintreffen, werden vom FlowAdapter-Objekt auf einen lokalen Speicherbereich kopiert und anschließend über den Kanal zum CodingObject transportiert. Die Daten werden dabei nicht verändert. Der Kanal zwischen CodingObject und FlowAdapter-Objekt wird gemäß dem AVS-Standard aufgebaut (Stream-Binding-Szenario in Abschnitt 5.4.2.5). Im oben gezeigten Bild stellt CodingObject eine Senke dar. Der AVS-Standard legt für den Aufbau von Flow-Verbindungen fest, daß die Seiten in der die Flow-Verbindung terminiert (Senke), einen Terminierungspunkt bereitstellt und die Adresse an den Sender übermittelt. Für die im Bild gezeigte Konfiguration baut FlowAdapter eine Verbindung (Kanal) zu dem vom CodingObject erzeugten Terminierungspunkt auf. BridgeSEP hat dabei Einfluß auf das verwendete Protokoll (es wird über die StreamEndPoint-Schnittstelle ausgehandelt), nicht jedoch auf die vom DeviceDriver-Objekt gewählte Adresse des Terminierungspunktes. 87 5 Integration von OMG Audio/Video Streams in TINA-DPE Für die umgekehrte Flow-Richtung stellt CodingObject die Quelle dar. Der Terminierungspunkt wird in diesem Fall vom BridgeSEPObjekt bereitgestellt. BridgeSEP kann durch Aufruf der Operation get_property(“AvailableProtocols“) an der StreamEndPointSchnittstelle von DeviceDriver feststellen, welche Protokolle unterstützt werden. Ist das Protokoll der Netzverbindung ein Element dieser Liste, dann können z.B. für AAL5 die VCI/VPI-Kennungen von NWCTP der Netzverbindung als Adresse des Terminierungspunktes an das DeviceDriver-Objekt übermittelt werden. Das DeviceDriver-Objekt erzeugt CodingObject, das die Daten direkt über den Netzterminierungspunkt des AVS-Terminals sendet. Durch BridgeSEP wird kein FlowAdapter-Objekt erzeugt: Abbildung 5.11: Transport kontinuierlicher Daten über einen Kanal – ein Kopieren ist nicht notwendig AVS Terminal AVS Capsule Bridge Capsule Device Driver BridgeSEP StreamEnd Point StreamEnd Point Coding Object Channel Transport kontinuierlicher Daten Interaktion an operationaler Schnittstelle Objekterzeugung Operationale Schnittstelle 5.4.3.3 Engineering-Modell für das AVS-Terminal Neben den bereits zugeordneten Objekten von AVS und Bridge existieren im AVS-Terminal die Objekte ssUAP, TCSM und TLA. ssUAP wird als eigenständige Kapsel des AVS-Terminals modelliert, da es mehrere Nutzeranwendungen in einer TINA-CPE geben kann, die unabhängig von allen anderen Objekten existieren. TINA-CPEs verfügen über mehrere TLA-Objekte, eins für jedes Layer-Netz, an das sie angeschlossen sind. Da die Funktion eines Layer-Netzes unabhängig von dem Zustand anderer Netze ist, bildet jedes 88 5.4 ODP-Spezifikation des AVS-Terminals TLA-Objekt eine eigene Kapsel. TCSM existiert genau einmal in jeder CPE, die Lebenszeit ist an kein anderes Objekt gekoppelt und bildet damit eine eigene Kapsel. Damit sind alle Objekte des AVS-Terminals Ressourcen zugeordnet. Abbildung 5.12 enthält das Engineering-Modell. Sie zeigt das AVS-Terminal in einer Konfiguration, in der eine Flow-Verbindung in der AVS-Kapsel terminiert: Abbildung 5.12: Das AVS-Engineering-Modell des AVS-Terminals AVS-Terminal Application Capsule Cluster Manager Capsule Manager ssUAP Manager i_PartyPaSBInd i_BridgeBindingManager Bridge Capsule Cluster Manager AVS Capsule i_Factory Capsule Manager Cluster Manager i_Notify i_NotifyCtrl TFC Manager Cluster Manager Configurator VDev StreamEnd Point i_TlaTcsm i_Configurator VDev StreamEnd Point Cluster Manager i_Terminal ComSControl i_BridgeCtrl MMDevice Device Driver Cluster Manager Notifier Factory Cluster Manager Capsule Manager SFEP Manager i_SFEPCtrl BridgeBinding Manager Factory Device TCSM Capsule Capsule Manager BridgeCtrl BridgeSEP TLA Capsule Capsule Manager i_BridgeSEP Cluster Manager Coding Object Flow Adapter Cluster Manager Channel NFEP Manager i_tcontlaNfepControl Channel Transport kontinuierlicher Daten Interaktion an operationaler Schnittstelle Objekterzeugung Operationale Schnittstelle Ein Engineering-Modell für einen allgemeineren Ansatz Das AVS-Terminal wurde als eine mit AVS-Geräten ausgestattete TINACPE definiert. Unter Abänderung dieser Definition – bei der AVS- und Bridge-Objekte nicht genau einem Knoten zugeordnet werden – sind weitere Engineering-Modelle möglich. Diese lassen mehr Varianten der Zuordnung von Objekten zu Knoten zu. Beispielsweise können die AVS-Objekte 89 5 Integration von OMG Audio/Video Streams in TINA-DPE einem anderen Terminal zugeordnet werden als die Bridge-Objekte, sofern CORBA-Interaktionen zwischen eCOs von AVS und Bridge möglich sind und Stream-Endpunkte eine Verbindung für den Transport kontinuierlicher Daten bereitstellen können. Neben der Unterstützung der drei Schnittstellen des AVS-Standards durch Objekte dieses Knotens werden keine weiteren Forderungen an den Knoten gestellt. Die Verallgemeinerung erlaubt die Verwendung eines AVS-Gerätes auf einem anderen Knoten als dem der Bridge-Objekte (die weiterhin benötigt werden). Dem AVS-Gerät kann der Trail-Terminierungspunkt nicht mehr als FEPAdresse zugewiesen werden, da sich dieser im AVS-Terminal und nicht im Knoten des AVS-Gerätes befindet. Ein Kopieren der Daten im Bridge-Objekt ist nicht zu vermeiden. Der in [17] verfolgte Ansatz enthält ein solches Modell, er gibt keine Einschränkungen bezüglich der Zuordnung von eCOs zu Knoten vor. 5.4.3.4 Zusammenfassung der Engineering-Spezifikation Die aufgezeigten Varianten der Engineering-Spezifikation haben gezeigt, daß es mehrere Möglichkeiten für die Zuordnung von Engineering-Objekten zu den Ressourcen (Kapseln, Clusters) des AVS-Terminals gibt. Sie werden im wesentlichen motiviert durch die Anzahl möglicher Instanzen, der logischen Zusammengehörigkeit von Funktionalität und der Unabhängigkeit der Lebenszeit von Objekten. Die Entscheidung, ob ein einziger Kanal für den Transport kontinuierlicher Daten zwischen AVS-Gerät und einem TINADienst genügt, ist von der Flow-Richtung und dem Transportprotokoll der Netzverbindung abhängig. 5.4.4 Technology-Spezifikation Die Technology-Spezifikation beschreibt die Auswahl verwendeter Technologien. Sie enthält eine Abbildung von Engineering-Konzepten auf technologische Lösungen. Der Schwerpunkt liegt auf der Implementierung von operationalen und Stream-Kanälen [9]. Für operationale Kanäle wird CORBA [6] verwendet. Es sind mehrere Sprachabbildungen (engl. Language Mappings) definiert worden, sodaß durch IDL-Compiler für verschiedene Programmiersprachen Stub-Objekte eines ODP-Kanals generiert werden können. Eine Implementierung des AVS-Terminals benötigt keine herstellerspezifischen Erweiterungen, sodaß die Wahl eines CORBA-Produktes beliebig ist, solange es zu CORBA 2.0 konform ist. Die Produkte ORBIX 2000 der Firma 90 5.4 ODP-Spezifikation des AVS-Terminals IONA, Visibroker von Inprise und ORBacus von OOC gehören zu den bekanntesten Vertretern. Alle Produkte sind konform zu CORBA 2.0 und eignen sich gleichermaßen für operationale Interaktionen zwischen eCOs von AVS, TINA und des integrierten Ansatzes. Für Stream-Kanäle zur Übertragung kontinuierlicher Daten bietet CORBA keine Unterstützung, aus diesem Grund wurde der Standard „Control and Management of Audio / Video Streams“ entwickelt. Im AVS-Terminal wird für jeden Flow ein Kanal zwischen den beiden Flow-Endpunkten CodingObject und FlowAdapter benötigt. In der Engineering-Spezifikation wurde definiert, daß sich beide Endpunkte in unterschiedlichen Kapseln des gleichen Knotens befinden. Die Implementierung eines Protokollobjektes kann damit alle Möglichkeiten der Interprozeßkommunikation nutzen, die das Betriebssystem des AVS-Terminals unterstützt. Für den Transport kontinuierlicher Daten sind das UDP-Protokoll und Named Pipes5 besonders geeignet, da sie zeichenorientiert arbeiten. Ein anderes Verfahren ist die Verwaltung eines Ringpuffers in einem von verschiedenen Kapseln adressierbaren Speicherbereich6 . Ein Ringpuffer stellt eine bestimmte Anzahl Rahmen bereit, die vom Protokollobjekt des Source-FEP-Objektes beschrieben und vom Sink-FEPObjekt gelesen werden. Die Adresse eines Flow-Endpunktes auf Named-PipeBasis ist die Position der Datei im Dateisystem. 5.4.4.1 Auswahlkriterien für einen terminallokalen Transportmechanismus Das Zwischenspeichern der Daten im FlowAdapter-Objekt führt zu einer zusätzlichen Verzögerung des Empfangs der Daten in der AVS-Kapsel bzw. am TINA-Dienst. Eine geringe Latenzzeit sowie ein hoher Datendurchsatz sind wichtige Merkmale der Dienstgüte. Sie bilden die Hauptkriterien bei der Auswahl des Protokolls. Des weiteren sollte die CPU-Belastung gering sein. Der Transport von Daten über Named Pipes bzw. Ringpuffer in Memory Mapped Files sind die effizientesten Methoden, Daten innerhalb eines Knotens zu transportieren. Das gewählte Protokoll muß von beiden FEP-Objekten unterstützt werden. Die Möglichkeit der Verwendung eines der beiden Protokolle sollte in jedem Fall überprüft werden, bevor ein anderes Protokoll verwendet wird. Werden sie durch das AVS-Produkt nicht unterstützt, so können auch für terminallokale Verbindungen verbreitete Netzprotokolle wie z.B. TCP oder UDP verwendet werden. 5 Named Pipes werden nicht von Microsoft Windows NT unterstützt. Windows NT ermöglicht Memory Mapped Files, UNIX bietet zusätzlich Shared Memory 6 Microsoft 91 5 Integration von OMG Audio/Video Streams in TINA-DPE 92 6 Zusammenfassung und Ausblick Die Aufgabe der vorliegenden Arbeit bestand darin, in einem TINAorganisierten Netz die Verwendung multimedialer Geräte zu ermöglichen, die konform zum OMG-Standard „Control and Management of Audio / Video Streams“ (AVS) sind. Die besondere Eigenschaft multimedialer Anwendungen und Geräte ist, daß sie Quellen und Senken kontinuierlicher Daten bereitstellen. Diese Daten werden über Stream-Flow-Verbindungen transportiert. Die von AVS und TINA verwendeten Konzepte, die in Zusammenhang mit der Bereitstellung von Stream-Flow-Verbindungen stehen, wurden in dieser Arbeit eingeführt und gegenübergestellt. Es hat sich gezeigt, daß durch die Einführung neuer Informations- und Computational-Objekte ein Modell entwickelt werden kann, das die Integration von AVS-konformen Geräten in die verteilte Verarbeitungsumgebung TINA-DPE ermöglicht. Die Schnittstellen des AVS-Standards sowie die Spezifikationen der TINA-Referenzpunkte Ret und TCon bildeten dabei den Ausgangspunkt. Bei der ODP-Spezifikation wurde deutlich, daß einige Varianten des Engineering-Modells die Möglichkeiten der Zuordnung des AVS-Gerätes zu beliebigen Knoten der Verarbeitungsumgebung erlauben, während andere für die Verwendung des AVS-Gerätes in TINA-CPE geeignet sind. Die Leistungsfähigkeit des vorgestellten Bridge-Konzeptes kann deutlich erhöht werden, sobald ein Rahmenwerk für die Medienbeschreibung von TINADiensten vorliegt. Dann kann die Adapterfunktionalität nicht nur für die Netz- sondern auch für die Stream-Verbindungen bereitgestellt werden. Die Annahme der Kompatibilität der Medienformate würde entfallen. Ein Adapter auf Stream-Ebene könnte eventuell notwendige Transformationen der Daten vornehmen. Der OMG-AVS-Standard hat bis jetzt nur geringe Akzeptanz gefunden. Insbesondere im Internet-Bereich haben sich proprietäre Lösungen zum Transport kontinuierlicher Daten durchgesetzt. Das Bridge-Konzept kann in weiteren Arbeiten als Grundlage für die Integration anderer Produkte in ein TINA-organsiertes Netz dienen. 93 6 Zusammenfassung und Ausblick 94 7 Anhang Abkürzungsverzeichnis AVS Audio Video Streams BBM Bridge Binding Manager BEO Basic Engineering Object CO Computational Object CORBA Common Object Request Broker Architecture CPE Customer Premises Equipment CSM Communication Session Manager DPE Distributed Procesing Environment FC Flow Connection FEP Flow End Point IDL Interface Definition Language LCG Logical Connection Graph NFEP Network Flow End Point NFP Network Flow Connection NRIM Network Resource Information Model NWCTP Network Connection Termination Point NWTTP Network Trail Termination Point ODP Open Distributed Processing OMA Object Management Architecture OMG Object Management Group ORB Object Request Broker PCG Physical Connection Graph RFP Request For Proposal 95 7 Anhang SC Stream Connection SEP Stream End Point SFEP Stream Flow End Point SFP Simple Flow Protocol SFP Stream Flow Connection SI Stream Interface SSM Service Session Manager TCSM Terminal Communication Session Manager TFC Terminal Flow Connection TINA Telecommunications Information Networking Architecture TLA Terminal Layer Adapter UAP User Application USM User Session Manager 96 IDL-Schnittstellenbeschreibungen der eingeführten Objekte // AVS IDL-Beschreibungen #include <MediaStreams.idl> // enthält Schnittstellen des // leichten Profils // TINA IDL-Beschreibungen #include <naming.idl> #include <sfepcoms.idl> #include <TCSM.idl> // allgemeine Typen // SFEP und MediaDesc // definiert i_Notify typedef string t_SFEPBridgeName; typedef sequence<t_SFEPBridgeName> t_SFEPBridgeNameList; typedef t_SFEPBridgeDesc { t_SFEPBridgeName name; t_SFlowDirection dir; // gegenüber TINA-Dienst t_MediaDesc media; t_NFEPName nfep; }; typedef sequence<t_SFEPBridgeDesc> t_SFEPBridgeDescList; typedef t_SFEPBridgeDescList t_SI; enum t_SuccessCriterion {BestEffort, AllOrNone}; module BBM { interface i_BridgeBindingManager { // Stellt TINA Stream-Schnittstelle bereit void prepareNodalBinding(in MMDevice aMMDev, out t_SI si); // Zerstört die Bridge-Verbindung void destroyNodalBinding(in MMDevice aMMDev); // zerstört das Objekt void destroy(); }; 97 7 Anhang interface i_Factory { i_BridgeBindingManager create(); }; // an i_Notify kann TCSM Benachrichtigungen // über die Fertigstellung von TFCs senden interface i_Notify : CommonTypes::i_Notify { }; }; // module BBM module Bridge { interface i_BridgeCtrl { // Setup void setup(in StreamEndPoint aSEP); // Gibt eine Beschreibung der bereitgestellten // Stream-Schnittstelle zurück void getSI( out t_SI desc); // Aufbau der Stream-Verbindung zu SEP void connectToSEP(in t_SFEPBridgeNameList sfeps, out t_SFEPBridgeNameList failList); // Starten und void start(in in out Stoppen einzelner Flows t_SuccessCriterion crit, t_SFEPBridgeNameList sfeps, t_SFEPBridgeNameList failList); void stop(in t_SuccessCriterion crit, in t_SFEPBridgeNameList sfeps, out t_SFEPBridgeNameList failList); // Auflösen der StreamConnection zu SEP void releaseNodalBinding(); // Zerstören des BridgeCtrl-Objektes void destroy() }; 98 // Schnittstelle für Interaktionen mit AVS-VDev interface i_Configurator : VDev { void configureSI(out t_SI); }; // Schnittstelle für Interaktionen mit AVS-StreamEndPoint interface i_BridgeSEP : StreamEndPoint { }; }; // module Bridge 99 7 Anhang 100 Literaturverzeichnis [1] RFC 793: Transmission Control Protocol (TCP), September 1981. http://www.ietf.org/rfc/rfc0793.txt. [2] ATM User-Network Interface Specification V3.1 (UNI V3.1), 1994. ftp://ftp.atmforum.com/pub/approved-specs/af-uni-0010.002.pdf.tar.Z. [3] Siemens Nixdorf AG. Control and Management of A/V Streams, Initial Submission, OMG Document Number telecom/97-02-02. Technical report, Februar 1997. http://www.omg.org/docs/telecom/97-02-02.pdf. [4] Rumbaugh Booch, Jacobsen. The Unified Modeling Language. Technical report, Rational Software Corporation, September 1996. [5] M. Chapman D. McGrath. A CORBA Framework for Multimedia Streams. Technical report, IONA Technologies, Januar 1998. [6] Object Management Group. The Common Object Request Broker: Architecture and Specification. Object Management Group, Inc., Framingham, MA, USA, July 1995. [7] Object Management Group. Control and Management of A/V Streams, Request for Proposel, omg document number telecom/96-08-01. Technical report, Mai 1996. http://www.omg.org/docs/telecom/96-08-01.pdf. [8] Siemens-Nixdorf IONA Technolgies, Lucent Technologies. Control and Management of A/V Streams, omg rfp submission, omg document number telecom/97-05-07, Mai 1997. http://www.omg.org/docs/telecom/97-05-07.pdf. [9] ITU-T. ITU Recommendation X.901 | ISO/IEC 10746-1: ODP Reference Model Part 1: Overview and guide to use. Technical report, ITU-T, 1993. ftp://ftp.dstc.edu.au/pub/arch/RM-ODP/PDFdocs/part1.pdf. [10] ITU-T. ITU Recommendation X.902 | ISO/IEC 10746-2: ODP Reference Model Part 2: Foundations. Technical report, ITU-T, 1993. ftp://ftp.dstc.edu.au/pub/arch/RM-ODP/PDFdocs/part2.is.pdf. 101 Literaturverzeichnis [11] ITU-T. ITU Recommendation X.903 | ISO/IEC 10746-3: ODP Reference Model Part 3: Architecture. Technical report, ITU-T, 1993. ftp://ftp.dstc.edu.au/pub/arch/RM-ODP/PDFdocs/part3.pdf. [12] ITU-T. ITU Recommendation X.904 | ISO/IEC 10746-4: ODP Reference Model Part 4: Architectural Semantics. Technical report, ITU-T, 1993. ftp://ftp.dstc.edu.au/pub/arch/RM-ODP/PDFdocs/np43.pdf. [13] ITU-T. Binding Model, chapter 8.4.2. In [9], 1993. ftp://ftp.dstc.edu.au/pub/arch/RM-ODP/PDFdocs/part1.pdf. [14] ITU-T. ITU-T Recommendation X.930 Information Technology - Open distributed processing - Interface references and binding. Technical report, ITU-T, September 1998. [15] IONA Technologies Ltd. Control and Management of Audio/Video Streams, Initial Submission, OMG Document Number telecom/97-02-01. Technical report, Februar 1997. http://www.omg.org/docs/telecom/97-02-01.pdf. [16] TINA DPE WG members. TINA DPE Architecture Version 2.0b0, Draft for WG review. Technical report, TINA-C, November 1997. file://u/tinac/97/resources/dpe/docs/arch/dpe20. [17] W.Takita O. Kath. OMG A/V Streams and TINA NRA: An integrative Approach. Technical report, Humboldt University, NTT Japan, 1999. [18] Project Internal Report 2.3 P 103. Network Resource Model. Technical report, Eurescom, 1992. http://www.eurescom.de/~pub-deliverables/p100-series/p103/d6/d6a.zip. [19] S.P. Rana P.H. Loosemore, E. Sellin. Multimedia stream binding for a pan-European service platform. BT Technology Journal, 1999. [20] J. Postel. RFC 768: User Datagram Protocol (UDP), August 1980. http://www.ietf.org/rfc/rfc0768.txt. [21] TINA-C Core Team. Engineering Modelling Concepts (DPE Architecture) Version 2.0. Technical report, TINA-C, Dezember 1994. [22] TINA-C Core Team. Computational Modelling Concepts Version 2.0. Technical report, TINA-C, February 1995. [23] TINA-C Core Team. The TCon Reference Point Version 1.0. Technical report, TINA-C, November 1996. http://www.tinac.com/specifications/documents/tconrp.pdf. 102 [24] TINA-C Core Team. Network Components Specification Version 2.2. Technical report, TINA-C, December 1997. http://www.tinac.com/specifications/documents/ncs.pdf. [25] TINA-C Core Team. Network Ressource Architecture Version 3.0. Technical report, TINA-C, Februar 1997. http://www.tinac.com/specifications/documents/nra_v3_public.pdf. [26] TINA-C Core Team. Network Ressource Information Model Specification Version 2.2. Technical report, TINA-C, Oktober 1997. http://www.tinac.com/specifications/documents/nrim.pdf. [27] TINA-C Core Team. Service Architecture Version 5.0. Technical report, TINA-C, Juni 1997. http://www.tinac.com/specifications/documents/sa50-main.pdf. [28] TINA-C Core Team. TINA Business Model and Reference Points Version 4.0. Technical report, TINA-C, Mai 1997. http://www.tinac.com/specifications/documents/bm_rp.pdf. [29] TINA-C Core Team. The Ret Reference Point Version 1.1. Technical report, TINA-C, April 1999. http://www.tinac.com/specifications/documents/ret111.pdf. [30] Lucent Technologies. Initial Submission to Telecom RFP1 (Streams), OMG Document Number telecom/97-02-03. Technical report, Februar 1997. http://www.omg.org/docs/telecom/97-02-03.pdf. 103 Literaturverzeichnis 104 8 Thesen zur Diplomarbeit These I Sowohl OMG “Control and Management of Audio / Video Streams“ als auch TINA ermöglichen den Transport kontinuierlicher Daten zwischen StreamSchnittstellen. Sie verwenden dazu unterschiedliche Konzepte, sodaß die Verwendung AVS-konformer Geräte in einem TINA-organisierten Netz zusätzliche Unterstützung benötigt. These II Die Offenlegung der Schnittstellen der Architektur des TINA-Konsortiums bildet eine wesentliche Voraussetzung für die Spezifikation eines integrierten Modells. Nur durch die exakte Beschreibung der Schnittstellen und des Verhaltens der Computational-Objekte von TINA und AVS konnte eine Möglichkeit zur Anpassung der unterschiedlichen Konzepte gefunden werden. These III Die Nutzung OMG-AVS-konformer Geräte in einem TINA-organisierten Netz kann durch die Verwendung eines Bridge-Objektes ermöglicht werden. These IV Für die Spezifikation des integrierten Modells ist das Referenzmodell ODP eine geeignete Methode. These V Durch das Bridge-Konzept kann die Zuordnung eines AVS-Gerätes sowohl zu TINA-CPE als auch zu Knoten, die nicht den Anforderungen an TINA-CPE genügen, erfolgen. Für beide Fälle können unterschiedliche EngineeringModelle spezifiziert werden. These VI Das Bridge-Konzept erweitert den Einsatzbereich von AVS-Geräten und kann als Grundlage für die Integration weiterer Produkte in ein TINAorganisiertes Netz dienen. 105 8 Thesen zur Diplomarbeit 106 Erklärung Hiermit erkläre ich, daß die vorliegende Arbeit von mir selbst und ohne jede unerlaubte Hilfe nur unter Verwendung der angegebenen Quellen angefertigt wurde. Berlin, den 14. September 2000 Helge Hesse Einverständniserklärung Hiermit erkläre ich mein Einverständnis, daß diese Arbeit in der Bibliothek des Institutes für Informatik der Humboldt-Universität zu Berlin öffentlich ausgelegt wird. Berlin, den 14. September 2000 Helge Hesse