Serviceorientierte Architektur

Architekturmuster der Informationstechnik
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Februar 2006 um 22:38 Uhr durch Michael Hüttermann (Diskussion | Beiträge) (Elementarer Grundgedanke). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der Begriff Serviceorientierte Architektur (SOA) oder englisch Service Oriented Architecture, auch dienstorientierte Architektur, ist ein Systemarchitektur-Konzept, das die Bereitstellung fachlicher Dienste und Funktionalitäten in Form von Services vorsieht.

Ein Service sei in diesem Kontext als eine Funktionalität definiert, die über eine standardisierte Schnittstelle in Anspruch genommen werden kann.

Komplexe Geschäftsprozesse lassen sich durch Aneinanderreihung von Service-Aufrufen (Orchestrierung von Services) realisieren. Die Programmlogik ist nicht in einem einzigen Programm zu finden, sondern verteilt über mehrere unabhängige Dienste.

Die SOA sieht eine Menge voneinander unabhängiger, lose gekoppelter Dienste vor. Ein Dienst wird von einem service provider angeboten. Ein service consumer stellt eine Anfrage (service request) an einen Dienst und bekommt daraufhin eine Antwort (service response) vom Anbieter.

Oft werden für SOAs Web Services auf der Basis von den wenigen bestehenden Standards wie SOAP, WSDL und UDDI oder SessionBeans eingesetzt, doch kann eine SOA prinzipiell auf jeder dienstbasierten Technologie wie z. B. CORBA oder Enterprise Java Beans (EJB) aufgebaut werden. Da Services in unterschiedlichen Programmiersprachen und auf unterschiedlichen Systemplattformen realisiert werden können, wird eine SOA häufig zur Anwendungsintegration genutzt.

Ein weiteres wesentliches Ziel einer SOA ist die Kapselung von persistenten Daten durch Dienste, die exklusives Lese- und Schreibrecht auf "ihre" Daten besitzt. Die hierdurch erzielte Modularität führt zu geringen Redundanzen und einer höheren Flexibilität der IT-Systeme, was häufig zu niedrigeren Betriebskosten führt.

Diesen Vorteilen stehen allerdings oft erhebliche initiale Entwicklungsaufwände gegenüber: Geschäftslogik in existierenden Unternehmensanwendungen muss in der Regel durch Entwicklung geeigneter Adapter zu Services umgebaut werden.

Definition

Zuallererst ist der SOA Ansatz verbunden mit einem fachlichen Umdenken respektive der blossen Identifikation von Services (genauer: service producer und service consumer). Der Schwerpunkt auf das Domain Model wird häufig unterschätzt bzw. gänzlich sträflich aussen vor gelassen ist doch ein wesentliches Merkmal einer SOA die Integration einer heterogenen Umgebung mit deren zahlreichen Interdependenzen und Stakeholdern durch eine plattformunabhängige Lösung. Die eigentliche Technik die zur Erfüllung eingesetzt wird sollte standardisiert sein und ist lediglich Mittel zum Zweck.

Eine serviceorientierte Architektur ist aber auch ein Konzept für eine Systemarchitektur, in welchem Funktionen in Form von wieder verwendbaren, voneinander unabhängigen und lose gekoppelten Services implementiert werden. Services können unabhängig von zugrunde liegenden Implementierungen über Schnittstellen aufgerufen werden, deren Spezifikationen öffentlich und damit vertrauenswürdig sind. Serviceinteraktion findet über eine dafür vorgesehene Kommunikationsinfrastruktur statt. Mit einer serviceorientierten Architektur werden i. d. R. die Gestaltungsziele der Geschäftsprozessorientierung, der Wandlungsfähigkeit (Flexibilität), der Wiederverwendbarkeit und der Unterstützung verteilter Softwaresysteme verbunden. Ein wesentlicher Aspekt bei der Entwicklung serviceorientierte Architekturen ist die Sicherstellung der Authentizität der über offene Schnittstellen angebotenen Services.

Ziel

Ziele sind - Kostenvorteile durch schnelle Optimierung - Schnelle Reaktion auf Herausforderungen möglich - Mittelfristige Einsparungen

Elementarer Grundgedanke

Identifikation von Services (Service Consumer und Service Producer) Trennung der Zuständigkeiten nach fachlichen Gesichtspunkten, sowie Daten-Kapselung (ein Service ist ausschliesslich zuständig für "seine Daten", jeder Server Consumer muss sein Interesse an den Daten bzw. an dem Service beim Service Producer anmelden).

Beispiel

Online-Brokerage - der Abschluss von Wertpapiergeschäften über das Internet - kann in einer SOA auf folgenden Diensten aufsetzen:

  • einem Wertpapierdienst, der handelbare Wertpapiere (Aktien, Fonds ...) nennt
  • einem Marktdatendienst, der zu einem Wertpapier aktuelle Börsenkurse liefert
  • einem Depotdienst, der Zugriff auf das Wertpapierdepot des Anwenders erlaubt
  • einem Orderdienst, der Kauf-/Verkaufsaufträge des Anwenders an eine Börse übermittelt
  • einem Archivdienst, der alle Daten der Transaktion revisionssicher archiviert

Diese Dienste werden aus einer Webanwendung heraus aufgerufen.

SOA in 10 Schritten

  1. Think BIG, Start small
  2. Fachabteilung einbinden
  3. Bestandsaufnahme
  4. Erste Services einbinden
  5. Registry installieren
  6. Governance regeln
  7. Sicherheit planen
  8. Messaging Infrastructure einrichten
  9. Service Management einrichten
  10. Services orchestrieren

Siehe auch

Literatur

  • Norbert Bieberstein, Sanjay Bose, Marc Fiammante, Keith Jones, Rawn Shah: Service-Oriented Architecture Compass. Business Value, Planning and Enterprise Roadmap. Pearson, Upper Saddle River 2006, ISBN 0-13-187002-5
  • Kai J. Oey, Holger Wagner, Simon Rehbach, Andrea Bachmann: Mehr als alter Wein in neuen Schläuchen. Eine einführende Darstellung des Konzepts der serviceorientierten Architekturen. In: Stephan Aier, Marten Schönherr (Hrsg.): Unternehmensarchitekturen und Systemintegration. Gito, Berlin 2005 (Enterprise Architecture, Band 3), S. 199ff., ISBN 3-936771-50-2
  • Stephan Aier, Marten Schönherr (Hrsg.): Enterprise Application Integration. Serviceorientierung und nachhaltige Architekturen. Gito, Berlin 2004 (Enterprise Architecture, Band 2), ISBN 3-936771-30-8
  • Douglas K. Barry: Web Services and Service-Oriented Architectures. The savvy manager's guide. Your road map to emerging IT. Morgan Kaufmann, Amsterdam u.a. 2004, ISBN 1-55860-906-7
  • Thomas Erl: Service-Oriented Architecture. A field guide to integrating XML and Web services. Prentice Hall PTR, Upper Saddle River 2004, ISBN 0-13-142898-5
  • Dirk Krafzig, Karl Banke, Dirk Slama: Enterprise SOA. Prentice Hall PTR, Upper Saddle River 2005, ISBN 0-13-146575-9