Konzept: Einführung in die serviceorientierte Architektur
Dieses Konzept ist eine Einführung in die serviceorientierte Architektur (SOA), eine spezialisierte Version der komponentenbasierten Architektur, die auf der Verwendung veröffentlichter und dynamisch erkennbarer Services basiert.
Beziehungen
Hauptbeschreibung

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.

Im Begleittext beschriebenes Diagramm
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.