Eine Komponente ist eine modulare, autonome Einheit mit definierten Schnittstellen.
Eine Komponente ist in ihrer Umgebung ersetzbar (replaceable)
(aus OMG UML2.1 2006-04-02 Kap.8.1)
Schnittstelle:
Schnittstellen können zu Ports gruppiert werden:
Port:
Im IBM Rational Software Architekt 8.0 müssen die Interfaces auf einem Port basieren.
Ein Port wird durch Betriebssystem- oder Middlewaremechanismus implementiert:
Man kann hier zwischen Daten- und Service-Anbietern und -Nutzern unterscheiden. (nach VS Nov 2010):
Man bedenke, dass Dienste, genauer RPC-Dienste elementar aus nachrichtenbasierten Mechanismen zusammengesetzt sind: Sie empfangen Anfragen und liefern Antworten.
Bei der Verwendung der Notation muss man sich im klaren sein, welcher Natur die Ports sind und geeignete Abstraktionen wähen.
Der Vorschlag ist naheliegend, diese Portklassifikation auch in der UML graphisch zu unterscheiden.
Begriff: conjugated port: Dies ist die Gegenstelle, die die required -Interfaces provided hat und umgekehrt.
Um dies Abzuleiten zu können, haben die Ports nun einen Typ. Im Falle von "isConjugated" kann für den Port nun die Gegenstelle abgeleitet werden.
Der Port konnte bisher auch sehr abstrakt aufgefasst werden. Je Wahl der Implementierung konnte eine 1:1 oder auch eine 1:n - Kommunikation dahinter gedacht werden. (1:n ist gut bei DDS oder bei Funkverbindungen oder so)
Damit könnte man beim Entwurf so vorgehen:
Unstrittig ist, das ein Port in der Komponente als Proxy realisiert wird kann (CORBA,DDS,...), und das dieses in der Implementierung ein Objekt bzw. Instanz einer Klasse ist.
Beim IBM RSA/UML2.2 bzw. bei UML2.4.1 wird man daher gezwungen, eine Klasse als Port-Type anzugeben. Diese Klasse ist dann mit den provided/required-Interfaces verbunden.
Sitzen jetzt mehrere Komponenten auf einem "Middlewarebus" wie ORB,DDS usw., dann kann nur noch der konkrete Portname diese Verwandschaft ausdrücken.
Integrating the RTI DDS with IBM Rational Rhapsody schlägt vor, dass die DDS-Middleware jeweils mit konjugierten Proxy-Objekten gebildet wird.
Es wird kritisiert, dass die Sichtweise nun zu frühzeitigen Konkretisierungen zwingt und mit den konjugierten Ports richtig 1:1-Verbindungen favorisiert und 1:n-Verbindungen wie DDS aussenvorlässt.
Über das Schnittstellen- und Port-Konzept können die Komponenten zusammengeschaltet werden.
Deployment: Aufstellung, Stationierung, Verteilung
Die Komponenten können unabhängig aufgestellt (deployed) und abgebaut werden, zum Beispiel um ein System auf einen neuen Versionsstand zu bringen.
KompoDSL - einfache DSL für Komponenten.