I — Theorie des CORBA-Komponentenmodells.- 1 CORBA.- 1.1 Überblick CORBA.- 1.2 Object Request Broker.- 1.3 Interface Definition Language.- 1.3.1 Sprachabbildungen.- 1.4 Portable Object Adapter.- 1.4.1 Servant Manager.- 1.5 General Inter-ORB Protocol.- 1.5.1 Common Data Representation.- 1.5.2 Interoperable Object Reference.- 1.6 Standarddienste in CORBA.- 2 Das CORBA-Komponentenmodell.- 2.1 Komponentenbegriff.- 2.1.1 Was ist eine Komponente?.- 2.1.2 Was ist ein Objekt?.- 2.1.3 Komponenten und Objekte.- 2.1.4 Instanzen.- 2.1.5 Komponententyp.- 2.1.6 Sichtbarkeit und Wiederverwendung.- 2.1.7 Eine abschließende Definition.- 2.2 CORBA-Komponenten.- 2.2.1 Der Metatyp CORBA-Komponente.- 2.2.2 Ports.- 2.2.3 Das Komponenteninterface.- 2.2.4 Facets.- 2.2.5 Receptacles.- 2.2.6 Ereignisproduzenten.- 2.2.7 Ereigniskonsumenten.- 2.2.8 Attribute.- 2.3 Homes.- 3 Der Container.- 3.1 Laufzeitumgebung einer CORBA-Komponente.- 3.2 Standarddienste des Containers.- 3.2.1 Transaktionen.- 3.2.2 Sicherheit.- 3.2.3 Automatische Speicherung.- 3.3 Komponentenkategorien.- 3.4 Containertypen.- 3.4.1 Der Komponenten-Kontext.- 3.4.2 Callback-Interfaces.- 3.4.3 Allgemeine Eigenschaften des Containers.- 3.4.4 Eigenschaften des Session-Containers.- 3.4.5 Eigenschaften des Entity-Containers.- 3.5 Der Komponentenserver.- 3.6 Der Komponentenserver-Aktivator.- 4 Implementierungsstruktur.- 4.1 Komposition.- 4.2 Executors.- 4.3 Segmente.- 4.4 Dauerhafter Zustand.- 4.5 Proxy Homes.- 4.6 Komponentenkategorien.- 5 Komponentenbasierte Anwendungen.- 5.1 Was ist eine komponentenbasierte Anwendung?.- 5.2 Beispielanwendungen.- 5.2.1 Hello World.- 5.2.2 Philosophen.- 5.3 Bereitstellungsformate.- 5.3.1 Metainformationen.- 5.3.2 Archive.- 5.4 Bereitstellung von Komponenten.- 5.5 Bereitstellung von Anwendungen.- 5.6 Konfiguration.- 5.7 Infrastruktur für Anwendungen.- 5.7.1 Werkzeugunterstützung.- 5.7.2 Plattformunterstützung.- 5.8 Inbetriebnahme von Anwendungen.- 5.8.1 Prozess der Inbetriebnahme.- 5.8.2 Szenario.- 6 Rollen und Entwicklungsprozesse.- 6.1 Rollen im CORBA-Komponentenmodell.- 6.1.1 Der Nutzer.- 6.1.2 Der Komponentenentwickler.- 6.1.3 Der Anwendungsentwickler.- 6.1.4 Der Installateur.- 6.1.5 Der Containerhersteller.- 6.1.6 Der Systemadministrator.- 6.2 Der Komponentenentwicklungsprozess.- 6.2.1 Entwurf des Komponententyps.- 6.2.2 Implementierung der Komponenten.- 6.2.3 Bereitstellung.- 6.3 Der Anwendungsentwicklungsprozess.- 6.3.1 Entwurf und Spezifikation.- 6.3.2 Implementierung und Bereitstellung.- 6.3.3 Inbetriebnahme.- II — Entwicklung von Komponenten.- 7 Modellierungskonzepte.- 7.1 Modellierung.- 7.1.1 Metamodell des CORBAKomponentenmodells.- 7.1.2 Modellierungssprache.- 7.2 Verfeinerung der Beispiele.- 7.2.1 Hello World.- 7.2.2 Speisende Philosophen.- 8 Komponentendesign.- 8.1 Entwurf eines Komponententyps.- 8.1.1 Datentypen.- 8.1.2 Interfaces.- 8.1.3 Valuetypes.- 8.1.4 Komponenten.- 8.1.5 Facets.- 8.1.6 Receptacles.- 8.1.7 Ereignistypen.- 8.1.8 Ereignisproduzenten.- 8.1.9 Ereigniskonsumenten.- 8.1.10 Attribute.- 8.1.11 Home.- 8.2 Beispielhafte Komponentendefinition.- 8.2.1 Hello World.- 8.2.2 Speisende Philosophen.- 9 Äquivalente Typumwandlung.- 9.1 Motivation.- 9.2 Komponenteninterface.- 9.2.1 Umwandlung eines Facet.- 9.2.2 Umwandlung eines Receptacle.- 9.2.3 Umwandlung eines Ereignistyps.- 9.2.4 Umwandlung von Ereignisproduzenten.- 9.2.5 Umwandlung von Ereigniskonsumenten.- 9.2.6 Das Interface CCMObject.- 9.2.7 Das Interface Navigation.- 9.2.8 Das Interface Receptacles.- 9.2.9 Das Interface Events.- 9.3 Home-Interface.- 9.3.1 Das implizite Home-Interface.- 9.3.2 Das explizite Home-Interface.- 9.4 Typumwandlung für die Beispielszenarien.- 9.4.1 Hello-World.- 9.4.2 Philosophen.- 10 Design der Implementierung.- 10.1 Entwurf der Komposition.- 10.2 Speichertypen.- 10.2.1 Speicherschnittstellen.- 10.2.2 Speicherfabrikschnittstellen.- 10.2.3 Speicherobjekttypen.- 10.2.4 Speicherfabriktypen.- 10.3 Komposition.- 10.3.1 CIDL.- 10.3.2 UML.- 10.4 Home Executor.- 10.4.1 CIDL.- 10.4.2 UML.- 10.5 Proxy Home Executor.- 10.5.1 CIDL.- 10.6 Komponenten-Executor.- 10.6.1 CIDL.- 10.6.2 UML.- 10.7 Definition der Implementierungsstruktur der Beispiele.- 10.7.1 Hello World.- 10.7.2 Philosophen.- 11 Implementierung.- 11.1 Der Sinn der Sprachabbildung.- 11.2 Grundlegende Strategie.- 11.3 Basis einer Komponentenimplementierung.- 11.3.1 Der Executor Locator.- 11.3.2 Fehlerzustände im Executor.- 11.4 Interfaces für den Session-Containertyp.- 11.5 Interfaces für den Entity-Containertyp.- 11.6 Typspezifische Implementierungsregeln.- 11.6.1 Regeln für Interfaces.- 11.6.2 Regeln für den Komponententyp.- 11.6.3 Regeln für Ereignistypen.- 11.6.4 Facets.- 11.6.5 Receptacles.- 11.6.6 Ereignisproduzenten.- 11.6.7 Ereigniskonsument.- 11.6.8 Homes.- 11.7 Abbildung der CIDL-Konstrukte.- 11.7.1 Abbildung der Modulnamen.- 11.7.2 Abbildung des Kompositionsnamens.- 11.7.3 Abbildung des Hauptsegments.- 11.7.4 Abbildung für weitere Segmente.- 11.7.5 Abbildung für den Home-Executor.- 11.8 Implementierungsaspekte beim locator-basierten Ansatz.- 11.9 Bemerkungen.- 12 Bereitstellung von Komponenten.- 12.1 Komponentenbeschreibung.- 12.1.1 Dateikopf.- 12.1.2 Allgemeine Informationen.- 12.1.3 Transaktionen, Sicherheit und Persistenz.- 12.1.4 Eigenschaften des Home.- 12.1.5 Eigenschaften der Komponente.- 12.2 Implementierungsbeschreibung.- 12.2.1 Dateikopf.- 12.2.2 Allgemeine Informationen.- 12.2.3 Implementierungsvarianten.- 12.3 Komponentenarchive.- 12.3.1 Beispiel.- III — Entwicklung von Anwendungen.- 13 Entwurf und Spezifikation von Anwendungen.- 13.1 Entwurf von Anwendungen.- 13.1.1 Beispiel.- 13.2 Spezifikation von Anwendungen.- 13.2.1 Umfang der Spezifikation.- 13.2.2 Spezifikation mit XML.- 13.2.3 Anwendungsbeschreibung.- 13.2.4 Konfigurationsbeschreibung.- 13.3 Ergebnis.- 14 Implementierung und Bereitstellung von Anwendungen.- 14.1 Implementierung von Anwendungen.- 14.1.1 Vorgehensweise.- 14.1.2 Beispiel.- 14.2 Bereitstellung von Anwendungen.- 14.2.1 Anwendungsarchive.- 14.2.2 Beispiel.- 15 Infrastruktur für die Inbetriebnahme.- 15.1 Installation von Komponenten.- 15.1.1 Bemerkungen.- 15.2 Erzeugung von Laufzeitinstanzen.- 15.2.1 Instantiierung eines Servers.- 15.2.2 Das Interface des Komponentenservers.- 15.2.3 Das Container-Interface.- 15.2.4 Einsprungpunkte.- 15.3 Laufzeitrepräsentationen von Anwendungen.- 15.3.1 Erzeugung von Laufzeitrepräsentationen.- 15.3.2 Bemerkungen.- 15.4 Sichtbarkeit von Laufzeitinstanzen.- 15.4.1 Durchsuchen der Plattform.- 15.4.2 Verwendung von Standarddiensten.- 15.4.3 Home Finder.- 16 Inbetriebnahme von Anwendungen.- 16.1 Bestimmung der Verteilung.- 16.1.1 Beispiel.- 16.2 Übergabe an die Plattform.- 16.2.1 Erzeugung der Laufzeitrepräsentation der Anwendung.- 16.2.2 Installation.- 16.2.3 Instantiierung.- 16.2.4 Konfiguration.- IV — Entwickeln mit Qedo.- 17 Die Software Qedo.- 17.1 Geschichte von Qedo.- 17.2 Eigenschaften von Qedo.- 17.2.1 Allgemeine Eigenschaften.- 17.2.2 Eigenschaften der Laufzeitumgebung.- 17.2.3 Eigenschaften der Werzeuge.- 18 Installation von Qedo.- 18.1 Die aktuellen Quellen.- 18.1.1 CVS-Benutzung.- 18.1.2 Web-Benutzung.- 18.1.3 FTP-Benutzung.- 18.2 Kompatible ORB-Produkte.- 18.3 Weitere benötigte Software.- 18.3.1 XML-Unterstützung.- 18.3.2 Archivierungsunterstützung.- 18.3.3 Softwarepakete für den Generator.- 18.4 Installationsprozess.- 18.4.1 Installation unter Windows.- 18.4.2 Installation unter Linux.- 18.5 Inbetriebnahme von Qedo.- 19 Ein Beispiel mit Qedo.- 19.1 Die Benutzung des Generatorwerkzeugs.- 19.2 Die Spezifikation der Komponente.- 19.3 Die Implementierung der Komponente.- 19.3.1 Die Beschreibung mit CIDL.- 19.3.2 Implementierung mit Visual Studio .NET.- 19.4 Die Erstellung des Komponentenarchivs.- 19.4.1 Die Komponentenbeschreibung.- 19.4.2 Die Implementierungsbeschreibung.- 19.5 Fertigstellung des Komponentenarchivs.- 19.6 Ausblick.- Literatur.