Arbeitsgruppe Komponenten / CORBA
Komponenten-Software
Ziel der Komponenten ist eine bessere Wiederverwendung von Software
Definitionen
Definition Komponente:
Eine Komponente ist ein funktional in sich abgeschlossener
Softwarebaustein, der über wohldefinierte Schnittstellen mit seiner
Umgebung in Beziehung tritt. Sie liegt in maschinenausfürbarer Form
vor.
Man muß sie in unterschiedliche, nichtverwechselbare
Anwendungskontexte einbetten können.
(Michael Stal, Siemens in Objektspektrum 1/99)
UML-Komponenten: Hier kommt noch das Port-Konzept hinzu, welches erlaubt, das eine Komponente über verschiedene Mechanismen (PORT) mit mehreren Schnittstellen ansprechbar ist.
Bemerkungen: Ein Modul in Prof. F. Hofmann: "Betriebssysteme: Grundkonzepte und Modellvorstellungen" kann man auch als Komponente bezeichnen
- Component Technology White Paper Software Engineering Australia (Western Australia), 2000. von http://ciips.ee.uwa.edu.au/Research/SCL/SCL.html
beschreibt die Abstufung von Funktionen-Modulen-Klassen-dynamisch Geladene Klssen-verteilte Objekte-Compomnenten.
Hier wird auch die Zukunft von der Austauschbarkeit von Komponenten und einem
Markt von verifizierten Komponenten beschrieben.
Definition Framework
Architektur aus Klassenhierarchien, die eine allgemeine generische
Lösung für ähnliche Probleme in einem bestimmten Kontext vorgibt.
- Der Kontrollfluß wird vorgegeben
- Das Zusammenspiel der Klasse wird vorgegeben und wiederverwendet
Darin werden dann die Komponenten ausgetauscht.
Beispiel: JWAM
und JWAM V1.0
Für jede Anwendungsbereich (Domain) existieren spezifische Frameworks
z.B. Finanzbuchhaltung
ggf. Anpassungen machen
Komponenten Technologien
- CORBA-Beans
-
- Java-Beans
-
- Microsoft COM+,Active-X-Controls
- sehr komplex, Werkzeugunterstützung gut (Gordy Booch: A fool with
a tool is still a fool)
Vergleich der Technologien:
- CORBA
-
- verteilte Registry, daher einfach zu administrieren
- ist Standard
- seit 1990, Anwendungen seit 1992
(FAQ)
- robust (FAQ)
- mehrere Programmiersprachen
- mehrere Betriebssysteme
- Mehrfachvererbung von Interfaces
- DCOM vom Microsoft
-
- auf jedem Knoten muß eine Komponente registriert werden, daher
ist die Administration komplex
- Die DCOM-Api ist sehr kompliziert zu verstehen
- Microsoft-dominiert
- beta 1996 FAQ
- DCOM ist gut für front-end Entwicklung. Und wenn die ganze Anwendung
auf Microsoftanwendungen laufen soll (FAQ)
- COM laut Unix Open 2/97 fast nur mit C++ möglich, aufgrund BinärIntraface Standard, der bei der Nachrichtenzutielung mit Offsets arbeitet.
- COM -Objekte haben keinen Zustand und keine Identität (Unix Open 2/97)
- keine Mehrfachvererbung (Unix-Open 2/97)
- Enterprise Java
- ist noch in Entwicklung
auch von OMG
Komponenten sollten mit allen Schnittstellen ausgestattet werden
können.
Die Analyse bei der Konzeption von Komponenten unterscheidet sich von
der herkömmlichen Anwendungsprogrammierung:
- Applikationen lösen einzelne Probleme
- Komponenten lösen ganze Problemfamilinen
(Kryztof Czorniki, Daimler Benz AG in Objektspetrum 1/99)
Metaprogrammierung
Nach Kryztof Czorniki, Daimler Benz AG in Objektspetrum 1/99 wird
bisher nur allgemeinste Interoperabilität unterstützt.
Es gibt aber Probleme, wenn Kompenenten in Umgebungen mit
unterschiedlichen Eigenschaften wie Koordinierungsmodelle oder
Persistenzmechanismen eingesetzt werden.
⇒ die Eigenschaften/Aspekte müssen parametriert werden.
Komponenten brauchen Metawissen über ihre Umgebung, damit sie
sich einpassen können.
Metaprogrammierung nennt man das Generieren eines
anwendungsspezifischen Codes.
Siehe: generate
Kann man das Generieren der Anpassung mit Shared-Libraries realisieren
?
Komponenten für Server
architekturabhängige Komponenten:
- Verteilungsinfrastrukturen
- Transaktionen
- Sicherheitselemente
- Datenbanken
- Verzeichnisdienste
- Multithreading
Bemerkungen
Zeitschriften und Literatur
Arbeitsgruppe Komponenten/CORBA
Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber