Serviceorientierte Architektur

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Serviceorientierte Architektur (SOA), engl. service oriented architecture, auch dienstorientierte Architektur, ist ein Ansatz der Informationstechnik, Dienste von Mitarbeitern und Organisationen zu strukturieren und zu nutzen. Diese Strukturierung und Nutzung kann auf unterschiedlichen Ebenen erfolgen. „Vergib einen Kredit“ ist beispielsweise auf einer hohen Ebene angesiedelt, dahinter versteckt sich bei einer größeren Bank ein Geschäftsprozess mit einigen beteiligten Personen und informationstechnischen Systemen (eröffnen der Geschäftsbeziehung, eröffnen eines/mehrerer Konten, Kreditvertrag, …), während „Trag den Kunden ins Kundenverzeichnis ein“ ein Dienst auf einer niederen Ebene ist.

Vereinfacht könnte man SOA als Methode ansehen, die vorhandenen EDV-Komponenten (Programme, Datenbanken, Server, Websites) so zu koordinieren ("Orchestrierung"), dass ihre Leistungen zu Diensten ("Services") zusammen gefasst werden, die dann anderen Organisationsabteilungen oder Kunden zur Verfügung gestellt werden. Maßgeblich sind also nicht technische Einzelaufgaben (Datenbanken, Tabellenkalkulation, Textverarbeitung), sondern die Zusammenführung dieser IT-Leistungen zu "höheren Zwecken" (Einrichten eines Benutzerkontos, Ausführen einer Bestellung, Rentabilität einer Abteilung), die eine Organisationsabteilung nach "außen" anbietet. Bei SOA handelt es sich also um eine Struktur, welche die Unternehmensanwendungsintegration ermöglicht, indem die Komplexität der einzelnen EDV-Programme ("Applications") hinter den standardisierten Schnittstellen verborgen wird.

SOA erfordert auch eine sehr starke Integration der einzelnen IT-Komponenten, damit die Orchestrierung kostengünstig gelingt. SOA spielt somit bereits bei der Auswahl von IT-Komponenten eine Rolle.

Eine technische Umsetzung von SOA ist das Anbieten dieser Dienste im Internet. Die Kommunikation zwischen solchen, im Internet angebotenen Diensten geschieht dann durch SOAP. Der Nutzer dieser Dienste weiß nur, dass der Dienst angeboten wird, welche Eingaben er erfordert und welcher Art das Ergebnis ist. Details über die Art und Weise der Ergebnisermittlung müssen nicht bekannt sein.

Welche Dienste nutzbar sind und wie sie angesteuert werden, wird durch UDDI geregelt.

Inhaltsverzeichnis

[Bearbeiten] Definition

Der Begriff „serviceorientierte Architektur“ wurde 1996 von dem Marktforschungsunternehmen Gartner erstmalig genutzt.[1] Gartner gilt daher als Erfinder der SOA. Es gibt keine allgemein akzeptierte Definition von SOA. Dennoch wird häufig die Definition von der OASIS aus dem Jahr 2006 zitiert:

SOA ist ein Paradigma für die Strukturierung und Nutzung verteilter Funktionalität, die von unterschiedlichen Besitzern verantwortet wird.[2]

Zentrales Thema aller Definitionen sind die Dienste. Im Folgenden werden die idealtypischen Eigenschaften von Diensten in einer SOA aufgeführt. In der Praxis werden nicht alle dieser Anforderungen vollständig eingehalten.[3]

  • Ein Dienst ist in sich abgeschlossen und kann eigenständig genutzt werden.
  • Dienste sind in einem Netzwerk verfügbar.
  • Jeder Dienst hat eine veröffentlichte Schnittstelle. Für die Nutzung reicht es, die Schnittstelle zu kennen. Kenntnisse über die Details der Implementierung sind hingegen nicht erforderlich.
  • Die Benutzung von Diensten ist plattformunabhängig, d.h. Anbieter und Nutzer eines Dienstes können in unterschiedlichen Programmiersprachen auf verschiedenen Plattformen realisiert sein.
  • Alle Dienste sind in einem Verzeichnis registriert.
  • Die Dienste werden dynamisch gebunden, d.h. bei der Erstellung einer Anwendung, die einen Dienst nutzt, muss der Dienst nicht vorhanden sein. Er wird erst bei der Ausführung lokalisiert und eingebunden.

[Bearbeiten] Beispiel

Als Beispiel für einen Geschäftsprozess soll die Bestellung eines Kunden bei einem Versandhändler dienen. Bei diesem gibt es folgende Prozessschritte:

Erfassung - Verfügbarkeitsprüfung - Bonitätsprüfung - Bestellung - Kommissionierung - Versand - Rechnungsstellung - Zahlungseingang

Für jeden Schritt gibt es einen Dienst. Die Implementierung - Programmiersprache usw. - kann unterschiedlich sein. Auch können die Dienste auf unterschiedlichen Systemen, sogar in unterschiedlichen Unternehmen implementiert sein. So könnte die Zahlungsfähigkeit des Kunden von einem Finanzdienstleister ermittelt werden oder die diversen Logistikdienste werden von einem Logistikdienstleister erbracht. Schlüsselinformationen, wie Kundennummern oder Artikelnummern, werden den Diensten von der Infrastruktur zur Verfügung gestellt, so weit diese jeweils gebraucht werden.

Die Abfolge muss nicht so sequentiell erfolgen wie dargestellt. Im Gegenteil, die meisten Prozess-Schritte können scheitern. Mangelnder Bestand, fehlende Bonität, ausbleibender Zahlungseingang führen zu Verzweigungen, die entsprechend abweichende Vorgehensweisen erfordern. Auch die parallele Verarbeitung mehrerer Schritte - beispielsweise Versand und Rechnungsstellung - ist möglich.

Wichtig ist jedoch, dass beispielsweise die Bonitätsprüfung immer dieselbe ist, auch wenn sie von unterschiedlichsten Prozessen oder sogar Firmen genutzt wird. Damit wird ein wichtiges Ziel von SOA erreicht: Ein einmal implementierter Dienst kann auf Dauer erhalten bleiben, er muss nicht immer wieder angefasst werden, wenn sich Geschäftsprozesse ändern, was Aufwand spart und Fehler vermeidet.

Entscheidet sich das Unternehmen aber, die Bonitätsprüfung in andere Hände zu legen, so muss die Infrastruktur diesen Dienst nur bei einem anderen Anbieter aufrufen. Sonst ändert sich nichts.

[Bearbeiten] Implementierung einer SOA

Eine Implementierung einer SOA basiert wesentlich auf Entscheidungen über die Kommunikation und Integration zwischen Dienstgebern (auch: Dienstanbieter) und Dienstnehmern (auch: Dienstnutzer, Dienstkonsument) sowie der Abbildung von Geschäftsprozessen.

Für die Kommunikation zwischen Dienstnutzer und -anbieter können beliebige Netzwerkprotokolle genutzt werden. Häufig werden Webservices, REST oder Message Queueing eingesetzt. Auch die Verwendung älterer Protokolle wie IIOP, DCOM, DCE oder SNA ist möglich.

Die Integration einzelner Dienste kann in einer SOA über Punkt-zu-Punkt-Verbindungen oder einem Hub and Spoke-Ansatz erfolgen. Bei Punkt-zu-Punkt Verbindungen wird Verbindung zwischen Dienstgeber und -nutzern individuell entworfen, entwickelt und administriert. Beim Hub and Spoke Ansatz vermittelt eine neutrale Stelle zwischen Dienstanbietern und Dienstnehmern. Im SOA Umfeld werden solche Vermittler als Enterprise Service Bus (ESB) bezeichnet.

Die Abbildung von Geschäftsprozessen kann speziell entwickelt werden oder einen Standard wie BPEL nutzen. In BPEL beschriebene Prozesse sind auf geeigneten Plattformen direkt ausführbar. Die BPEL eignet sich somit zur technischen Implementierung von Geschäftsprozessen, anders gesagt, zur Definition der Orchestrierung von Diensten. Im Jahr 2007 bildeten viele SOA-Implementierungen die Geschäftsprozesse durch speziell dafür entwickelte Anwendungen ab. Langfristig wird erwartet, dass sich BPEL für die Abbildung der Geschäftsprozesse durchsetzt[3].

Bei der Implementierung wird das SOA-Paradigma in der Regel ab einem bestimmten Punkt durchbrochen; die einzelnen Dienste der SOA werden dann durch reine Clients angesprochen, die an sich nicht mehr Teil der SOA sind, wie beispielsweise Webbrowser.

[Bearbeiten] Einführung und Fortschreibung einer SOA

Die Aktivitäten, Entscheidungen, Rollen und Verantwortlichkeiten zur Regulierung und Kontrolle einer serviceorientierten Architektur werden als SOA-Governance bezeichnet. Innerhalb der SOA-Governance werden die Regeln einer SOA erarbeitet und überwacht.

[Bearbeiten] Umfeld

Der Begriff serviceorientierte Architektur ist in das folgende Umfeld einzuordnen:

[Bearbeiten] Technische Realisierung zur Laufzeit

Die Interaktion zwischen Dienstanbieter und Dienstnehmer läuft nach dem (publish/register), find, bind, execute-Paradigma ab (dt. (veröffentlichen/registrieren), finden, binden, ausführen).[4]

publish / register
Der Diensteanbieter veröffentlicht oder registriert seinen Dienst in einem Verzeichnis
find
Die Softwarekomponente, die einen Dienst benutzen möchte, sucht ihn in einem Verzeichnis. Wird ein passender Dienst gefunden, kann zum nächsten Schritt übergegangen werden.
bind
Die benutzende Komponente erhält vom Verzeichnis eine Referenz (Adresse) unter der sie auf den Dienst zugreifen kann. Der Funktionsaufruf wird an diese Adresse gebunden.
execute
Der Dienst wird aufgerufen. Eingabeparameter werden an den Dienst übermittelt und Ausgabeparameter als Antwort auf den Aufruf zurückgeliefert.

[Bearbeiten] Siehe auch

[Bearbeiten] Hauptquellen

[Bearbeiten] Literatur

  • Stephan Aier, Marten Schönherr (Hrsg.): Enterprise Application Integration. Serviceorientierung und nachhaltige Architekturen. 2. Auflage, Gito, Berlin 2006 (Enterprise Architecture, Band 2), ISBN 3-936771-74-x
  • Norbert Bieberstein, Robert G. Laird, D.r Keith Jones, and Tilak Mitra: Executing SOA - a practical guide for the service-oriented architect Pearson. Upper Saddle River 2008, ISBN 978-0-13-235374-8
  • 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
  • Daniel Liebhart: SOA goes real. Hanser Verlag, Juni 2007, ISBN 3-446-41088-0 (Website zum Buch)
  • Knut Hildebrand: IT-Integration & Migration. Dpunkt Verlag, Heidelberg 2007, ISBN 978-3-89864-455-6
  • 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. 2. Auflage, Gito, Berlin 2006 (Enterprise Architecture, Band 3), S. 197ff., ISBN 3-936771-75-8
  • Martin van den Berg, Norbert Bieberstein, Erik van Ommeren: SOA for Profit, A Manager's Guide to Success with Service Oriented Architecture, Mai 2007, ISBN 90-75414-14-5 oder ISBN 978-90-75414-14-1
  • 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
  • Wolfgang Dostal, Mario Jeckle, Ingo Melzer, Barbara Zengler: Service-orientierte Architekturen mit Web Services. Spektrum Verlag, September 2005, ISBN 3-8274-1457-1 (Website zum Buch)
  • OSGi Service Platform, Release 3, IOS Press (2003), englisch, ISBN 1-58603-311-5
  • IBM Systems Journal edition on SOA: Service-Oriented Architecture 12 wissenschaftliche Papers zum Thema SOA
  • Chappell, David A.: Enterprise Service Bus. Theory in Practice. O'Reilly Media; englisch, ISBN 978-0-596-00675-4
  • Frank Leymann, Dimka Karastoyanova (Eds.) et al.: Service Oriented Architecture – Overview of Technologies and Standards. Schwerpunktthemenheft der Zeitschrift it - Information Technology. Vol. 50 (2008)Heft 2
  • Fröschle, Hans-Peter / Reinheimer, Stefan: Serviceorientierte Architekturen - Praxis der Wirtschaftsinformatik, HMD 253, dpunkt verlag, ISBN 978-3-89864-434-1
  • Hoyer, Volker / Stanoevska-Slabeva, Katarina: Enterprise Mashups: Neue Herausforderung für das Projektmanagement - Praxis der Wirtschaftsinformatik, HMD 260, dpunkt verlag

[Bearbeiten] Einzelnachweise

  1. Research Note SPA-401-068, 12 April 1996, "'Service Oriented' Architectures, Part 1" und SSA Research Note SPA-401-069, 12 April 1996, "'Service Oriented' Architectures, Part 2"
  2. Reference Model for Service Oriented Architecture 1.0,Committee Specification 1, 2 August 2006[1]
  3. a b Bianco Phil,Kotermanski Rick, Merson Paulo: Evaluating a Service-Oriented Architecture. Software Engineering Institute der Carnegie Mellon University, September 2007 http://www.sei.cmu.edu/publications/documents/07.reports/07tr015.html
  4. Haibin Zhu, "Challenges to Reusable Services," scc, pp. 243-244, 2005 IEEE International Conference on Services Computing (SCC'05) Vol-2, 2005.

[Bearbeiten] Weblinks

  • SOA FAQ SOA-Blog der Computerwoche (deutsch)
  • Einführung in SOA Deutschsprachige und visualisierte Einführung in Service-orientierte Architekturen
Persönliche Werkzeuge