Einführung
Die komponentenbasierte Architektur/komponentenbasierte Entwicklung ist ein
RUP-Verfahren, da Komponenten ein wirksames Mittel sind, um ein komplexes System in verwaltbare Teile aufzuteilen, und
weil Komponenten die Wiederverwendung unterstützen. Serviceorientierte Architektur (SOA) ist eine spezialisierte
Version der komponentenbasierten Architektur, die auf der Verwendung veröffentlichter und dynamisch erkennbarer
Services basiert.
Was ist SOA?
Ein Service ist eine logische Komponente, die eine Gruppe von Schnittstellen definiert und die keinem definierten
Benutzer, sondern mehreren Clients zugeordnet wird, die diese gemeinsam nutzen kann. Ein Serviceprovider ist eine
Komponente, die die Serviceschnittstellen implementiert. Services und Serviceprovider werden über ein Repository, einen
so genannten Servicebroker, veröffentlicht und bereitgestellt. Diese Services können von anderen Komponenten
(Benutzeranwendungen und andere Services) über den Servicebroker erkannt und aufgerufen werden. Die Prinzipien sind in
der folgenden Abbildung veranschaulicht.

Abbildung 1 - SOA-Teilnehmer und ihre Hauptoperationen
Diese Trennung zwischen den Serviceschnittstellen und ihrer Implementierung durch den Serviceprovider lässt mehrere
Provider für denselben Service zu und ermöglicht, dass Provider dynamisch und ohne Beeinflussung der Serviceanforderer
hinzugefügt und ersetzt werden können. Serviceanforderer können die benötigten Services und die zugehörigen
Serviceprovider dynamisch erkennen. Durch das Prinzip von Veröffentlichung/Erkennung ist die SOA im Gegensatz zu
traditionellen Architekturen wesentlich flexibler und bietet eine wesentlich flexiblere Verbindung. Dies ist besonders
hilfreich, wenn unterschiedliche Systeme integriert oder zusammengestellt werden, z. B. traditionelle Systeme mit
Standardsoftware und J2EE- oder .Net-Anwendungen. Weitere Informationen zu dieser Art von Integration finden Sie in Konzept: Integration von Unternehmensanwendungen, Integration auf
Anwendungsschnittstellenebene.
Servicemerkmale
Services weisen die folgenden Schlüsselmerkmale auf:
-
Allgemein definiert und geschäftsorientiert: Da es wegen der Netzkommunikation immer eine gewisse Latenzzeit
gibt, muss ein Service einen wesentlichen Teil der Anwendungslogik verbergen und gleichzeitig dem Konsumenten einen
erheblichen geschäftlichen Nutzen bringen.
-
Schnittstellenbasiertes Design: Ein Service implementiert eine definierte Gruppe von Schnittstellen.
-
Aufgerufen und erkennbar: Ein Service und Provider dieses Services können von anderen Systemen aufgespürt
und von diesen aufgerufen werden.
-
Verteilt: Services, die eine Anwendung bilden, können auf unterschiedliche Systeme in einer Organisation
oder sogar auf mehrere Organisationen verteilt werden.
-
Flexibel verbunden: Services werden über lose verbundene Schnittstellen verbunden, was die Modifizierung
einer Schnittstelle ohne Beeinträchtigung der anderen ermöglicht.
SOA und Web Services
Für alles, was bisher beschrieben wurde, können unterschiedliche Technologien verwendet werden: CORBA und .Net sind nur
zwei Beispiele für solche Technologien. Warum also sind Web Services so eng mit der serviceorientierten Architektur
verbunden?
Web-Services basieren auf Internetstandards wie XML (eXtensible Markup Language) für die Formatierung von Daten, SOAP
(Simple Object Access Protocol) für die Kommunikation und WSDL (Web Services Description Language) und UDDI (Universal
Description, Discovery and Integration) für die Veröffentlichung von Beschreibungen. Die Verwendung dieser allgemein
akzeptierten Standards ermöglicht eine wesentlich höhere Interoperabilität zwischen den Lösungen unterschiedlicher
Lieferanten und macht damit die Implementierung einer SOA einfacher und deutlich billiger.
Eine ausführliche Beschreibung zur Verwendung von Web Services und komponentenbasierter Entwicklung für die
Implementierung einer SOA finden Sie im Whitepaper: Using Service-Oriented Architecture and Component-Based Development to Build
Web Service Applications.
|