Erstes Buch zur CORBA-Komponententechnologie CCM (CORBA Component Model)
Einf?rung und Referenzwerk
Mit zahlreichen Abbildungen und CCM Implementierung
Bertram Neubauer und Frank Stoinski studierten Informatik an der Humboldt-Universität zu Berlin. Heute sind sie dort als wissenschaftlicher Mitarbeiter am Lehrstuhl für Systemanalyse, Modellierung und Simulation tätig. Tom Ritter studierte Informatik an der Technischen Universität Berlin und wurde anschließend wissenschaftlicher Mitarbeiter bei der GMD FOKUS, das 2001 in das Fraunhofer Institut FOKUS umgewandelt wurde. Alle Autoren sind aktive Mitglieder in Standardisierungsgremien und haben so beispielsweise am CORBA Component Model-Standard mitgewirkt. Die Autoren verbindet vor allem die gemeinsame Entwicklung einer Open Source-basierten Referenzimplementierung für CMM.
Die Softwareindustrie fordert immer mehr verbesserte Methoden zur effektiven Herstellung von komplexen Softwaresystemen. Im Bereich der verteilten Softwaresysteme brachte die Common Object Request Broker Architecture (CORBA) eine wesentliche Verbesserung bei der industriellen Fertigung und dem Betrieb von verteilten Softwaresystemen. Das CORBA Component Model (CCM) baut auf den Vorteilen von CORBA auf und fügt neue Mechanismen hinzu. Dieses Buch wird das CORBA Component Model unter anderem aus der Sicht der Softwareentwicklung betrachten. Dabei gliedert sich das Buch in 3 Teile. Der 1. Teil erläutert die allgemeinen und eher theoretischen Konzepte des Modells. Dabei geht es darum, den notwendigen Wissenshintergrund zu vermitteln, um das CCM effektiv einzusetzen. Der 2. Teil befasst sich mit dem Design und der Implementierung von Komponenten. Konkrete Beispiele werden betrachtet und die angewandten Mechanismen im Detail erläutert. Der 3. Teil befasst sich mit dem Design einer ganzen Anwendung.
|
CORBA brachte eine wesentliche Verbesserung bei der industriellen Fertigung und dem Betrieb von verteilten Softwaresystemen. Das CORBA Component Model (CCM) baut auf den Vorteilen von CORBA auf und fügt neue Mechanismen hinzu.
Was bietet CCM für die Softwareentwicklung? In diesem praxisbezogenen Referenzwerk erhält der Leser schnelle Antwort. In drei Teile gegliedert vermittelt es:
- die allgemeinen und eher theoretischen Konzepte des Modells - wichtiges Hintergrundwissen, um das CCM effektiv einzusetzen,
- alles zu Design und der Implementierung von Komponenten mit konkreten Beispielen und detaillierter Erklärung der angewandten Mechanismen,
- nachvollziehbar: Design einer ganzen Anwendung.
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.
Die effiziente Entwicklung von komplexen verteilten Softwaresystemen erfordert moderne Technologien wie das CORBA-Komponentenmodell, das die Wiederverwendung von Software unterstützt und sich durch ein hohes Abstraktionsniveau auszeichnet.
In "CORBA Komponenten" liefern die Autoren zunächst die theoretische Fundierung der komponentenbasierten Softwareentwicklung im Allgemeinen und des CORBA-Komponentenmodells im Besonderen. Zahlreiche anschauliche Beispiele zeigen dann, wie die Modellierungs- und Implementierungskonzepte in der Softwareentwicklungspraxis optimal eingesetzt werden, um fertig implementierte, komponierbare Komponenten zu erhalten. Die Komposition der CORBA-Komponenten zu lauffähigen Anwendungen sowie die Inbetriebnahme dieser Anwendungen in einer IT-Umgebung werden ausführlich erläutert. Den weiterführenden Praxisteil bildet eine konkrete Implementierung des CORBA-Komponentenmodells: die Software Qedo, die auch Bestandteil der CD-ROM ist. Buch und CD-ROM motivieren den Leser zum Anwenden der beschriebenen Technologie und ermöglichen einen schnellen praktischen Einsteig.
Die Softwareindustrie fordert immer mehr verbesserte Methoden zur effektiven Herstellung von komplexen Softwaresystemen. Im Bereich der verteilten Softwaresysteme brachte die Common Object Request Broker Architecture (CORBA) eine wesentliche Verbesserung bei der industriellen Fertigung und dem Betrieb von verteilten Softwaresystemen. Das CORBA Component Model (CCM) baut auf den Vorteilen von CORBA auf und fügt neue Mechanismen hinzu. Dieses Buch wird das CORBA Component Model unter anderem aus der Sicht der Softwareentwicklung betrachten. Dabei gliedert sich das Buch in 3 Teile. Der 1. Teil erläutert die allgemeinen und eher theoretischen Konzepte des Modells. Dabei geht es darum, den notwendigen Wissenshintergrund zu vermitteln, um das CCM effektiv einzusetzen. Der 2. Teil befasst sich mit dem Design und der Implementierung von Komponenten. Konkrete Beispiele werden betrachtet und die angewandten Mechanismen im Detail erläutert. Der 3. Teil befasst sich mit dem Design einer ganzen Anwendung.
I - Theorie des CORBA-Komponentenmodells.- 1 CORBA.- 2 Das CORBA-Komponentenmodell.- 3 Der Container.- 4 Implementierungsstruktur.- 5 Komponentenbasierte Anwendungen.- 6 Rollen und Entwicklungsprozesse.- II - Entwicklung von Komponenten.- 7 Modellierungskonzepte.- 8 Komponentendesign.- 9 Äquivalente Typumwandlung.- 10 Design der Implementierung.- 11 Implementierung.- 12 Bereitstellung von Komponenten.- III - Entwicklung von Anwendungen.- 13 Entwurf und Spezifikation von Anwendungen.- 14 Implementierung und Bereitstellung von Anwendungen.- 15 Infrastruktur für die Inbetriebnahme.- 16 Inbetriebnahme von Anwendungen.- IV - Entwickeln mit Qedo.- 17 Die Software Qedo.- 18 Installation von Qedo.- 19 Ein Beispiel mit Qedo.- Literatur.
Bertram Neubauer und Frank Stoinski studierten Informatik an der Humboldt-Universität zu Berlin. Heute sind sie dort als wissenschaftlicher Mitarbeiter am Lehrstuhl für Systemanalyse, Modellierung und Simulation tätig. Tom Ritter studierte Informatik an der Technischen Universität Berlin und wurde anschließend wissenschaftlicher Mitarbeiter bei der GMD FOKUS, das 2001 in das Fraunhofer Institut FOKUS umgewandelt wurde. Alle Autoren sind aktive Mitglieder in Standardisierungsgremien und haben so beispielsweise am CORBA Component Model-Standard mitgewirkt. Die Autoren verbindet vor allem die gemeinsame Entwicklung einer Open Source-basierten Referenzimplementierung für CMM.
Über den Autor
Bertram Neubauer und Frank Stoinski studierten Informatik an der Humboldt-Universität zu Berlin. Heute sind sie dort als wissenschaftlicher Mitarbeiter am Lehrstuhl für Systemanalyse, Modellierung und Simulation tätig. Tom Ritter studierte Informatik an der Technischen Universität Berlin und wurde anschließend wissenschaftlicher Mitarbeiter bei der GMD FOKUS, das 2001 in das Fraunhofer Institut FOKUS umgewandelt wurde. Alle Autoren sind aktive Mitglieder in Standardisierungsgremien und haben so beispielsweise am CORBA Component Model-Standard mitgewirkt. Die Autoren verbindet vor allem die gemeinsame Entwicklung einer Open Source-basierten Referenzimplementierung für CMM.
Inhaltsverzeichnis
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.
Klappentext
Die Softwareindustrie fordert immer mehr verbesserte Methoden zur effektiven Herstellung von komplexen Softwaresystemen. Im Bereich der verteilten Softwaresysteme brachte die Common Object Request Broker Architecture (CORBA) eine wesentliche Verbesserung bei der industriellen Fertigung und dem Betrieb von verteilten Softwaresystemen. Das CORBA Component Model (CCM) baut auf den Vorteilen von CORBA auf und fügt neue Mechanismen hinzu. Dieses Buch wird das CORBA Component Model unter anderem aus der Sicht der Softwareentwicklung betrachten. Dabei gliedert sich das Buch in 3 Teile. Der 1. Teil erläutert die allgemeinen und eher theoretischen Konzepte des Modells. Dabei geht es darum, den notwendigen Wissenshintergrund zu vermitteln, um das CCM effektiv einzusetzen. Der 2. Teil befasst sich mit dem Design und der Implementierung von Komponenten. Konkrete Beispiele werden betrachtet und die angewandten Mechanismen im Detail erläutert. Der 3. Teil befasst sich mit dem Design einer ganzen Anwendung.
CORBA brachte eine wesentliche Verbesserung bei der industriellen Fertigung und dem Betrieb von verteilten Softwaresystemen. Das CORBA Component Model (CCM) baut auf den Vorteilen von CORBA auf und fügt neue Mechanismen hinzu. rnWas bietet CCM für die Softwareentwicklung? In diesem praxisbezogenen Referenzwerk erhält der Leser schnelle Antwort. In drei Teile gegliedert vermittelt es:rn- die allgemeinen und eher theoretischen Konzepte des Modells - wichtiges Hintergrundwissen, um das CCM effektiv einzusetzen,rn- alles zu Design und der Implementierung von Komponenten mit konkreten Beispielen und detaillierter Erklärung der angewandten Mechanismen,rn- nachvollziehbar: Design einer ganzen Anwendung.