Was ist SOA?
Was ist ein Service?
Was ist der Unterschied zwischen SOA und Web-Services?
Welche Vorteile bringt eine SOA?
Was ist SOA? (zurück)
Eine breit akzeptierte Antwort auf diese Frage gibt es nicht. Je nachdem, ob eine technische oder eine wirtschaftliche Sicht im Vordergrund steht, finden sich unterschiedliche Definitionen. Ein sehr allgemeiner Erklärungsversuch lautet:
Der Begriff Service-orientierte Architektur beschreibt zwei unterschiedliche Dinge: Die ersten beiden Worte bezeichnen eine Methode zur Softwareentwicklung. Das dritte Wort, Architektur, steht für ein Bild sämtlicher Softwareteile eines Unternehmens, ähnlich einer Bauzeichnung, die alle Bestandteile eines Gebäudes darstellt. Eine Service-orientierte Architektur lässt sich als Strategie auffassen, die darauf zielt, alle Softwareteile eines Unternehmens gemäß der Service-orientierten Programmiermethode zu entwickeln.
Services sind in diesem Zusammenhang als Softwarekomponenten zu verstehen, die so konstruiert sind, dass sie sich auf einfache Weise mit anderen Softwarekomponenten verbinden lassen. Die Idee dahinter: Software soll in Komponenten (Services) dargestellt werden, die nicht nur für Programmierer sondern auch für Mitarbeiter aus Fachabteilungen verständlich sind, im Gegensatz etwa zu monolithischen Anwendungen wie ERP oder CRM (siehe auch: Was ist ein Service?).
Eine Business-orientierte Erklärung geben die IBM-Mitarbeiter Norbert Bieberstein, Sanjay Bose, Marc Fiam-mante, Keith Jones und Rawn Shah in dem Buch “Service-Oriented Architecture Compass”:
“Eine Service-orientierte Architektur ist ein Framework für die Integration von Geschäftsprozessen und unterstützender IT-Infrastruktur in Form von sicheren, standardisierten Komponenten - Services -, die sich wiederverwenden und kombinieren lassen, um wechselnde Geschäftsanforderungen abzubilden.”
Die Online-Enzyklopädie Wikipedia beschreibt SOA als einen Ansatz der Informationstechnik, Dienste von Mitarbeitern und Organisationen zu strukturieren und zu nutzen.
Technisch orientierte Autoren beschreiben SOA oft lediglich als “unternehmensweite IT-Architektur, die lose Kopplung, Wiederverwendung und Interoperabilität zwischen Systemen unterstützt.”
In diese Kategorie fällt auch die Definition von Dirk Krafzig, Karl Banke und Dirk Slama in ihrem Buch “Enterprise SOA. Service-Oriented Architecture Best Practices”:
“Eine Service-orientierte Architektur ist eine Softwarearchitektur, die auf den Prinzipien eines Anwendungs-Frontends, Service, Service-Repository und Servicebus aufsetzt. Ein Service besteht aus einem Vertrag (contract), einer oder mehreren Schnittstellen und einer Implementierung.”
Business- und IT-Sicht zusammen bringt der Erklärungsversuch von Eric Newcomer, CTO des Softwareherstellers Iona und Greg Lomow, Berater beim IT-Dienstleister Bearingpoint, in dem Buch “Understanding SOA with Web Services”:
“Service-oriented architecture (SOA) - Eine Methodik, um Anwendungs-Interoperabilität und Wiederverwendung von IT-Assets zu erreichen. Dazu gehören:
- Ein starker Fokus auf Architektur, einschließlich Governance, Prozesse, Modellierung und Tools;
- Eine optimale Abstraktionsebene, um Geschäftsanforderungen und technische Fähigkeiten in Einklang zu bringen und wiederverwendbare, grobkörnige Business-Funktionen zu erstellen;
- Eine Infrastruktur, auf der neue Anwendungen schnell und einfach gebaut werden können;
- Eine wiederverwendbare Sammlung von Services für allgemeine und IT-Funktionen.
Das Würzburger Business Application Research Center (Barc) verwendet eine Definition des Wirtschaftsinformatikers Hans Robert Hansen: “Die SOA ist eine Form der verteilten Informationsarchitektur. Charakteristisch sind das Ankündigen, Auffinden und dynamische Aufrufen von Diensten. Diese sind anwendungsnah und in sich geschlossen.”
Was ist ein Service? (zurück)
Services sind Softwarekomponenten, die so konstruiert sind, dass sie sich auf einfache Weise mit anderen Softwarekomponenten verbinden lassen. Die Idee dahinter: Software soll in Komponenten (Services) dargestellt werden, die nicht nur für Programmierer sondern auch für Mitarbeiter aus Fachabteilungen verständlich sind, im Gegensatz etwa zu monolithischen Anwendungen wie ERP oder CRM.
Den Kern des Servicekonzepts bildet das Prinzip der Abstraktion: Programmcode wird in Form von wiederverwendbaren Komponenten entwickelt, die unterschiedliche Abteilungen eines Unternehmens nutzen können (Reuse). Ein Beispiel könnte die Funktion “Eröffnung eines Kundenkontos” sein. Softwareentwickler folgen dem Abstraktionsprinzip indem sie einen komplexen Wrapper, eine Art Kapselung, um das Softwaremodul legen. Der Wrapper beinhaltet eine Schnittstelle, die die Funktion des Moduls beschreibt und wie darauf zugegriffen werden kann. Im Grunde handelt es sich um ein altes Konzept, das auf die Anfänge der objektorientierten Programmierung in den 80er Jahren zurückgeht. Die Anforderungen an den Umfang und die Qualität der Softwareobjekte sind heute indes höher.
Was ist der Unterschied zwischen SOA und Web-Services? (zurück)
Web Services bestehen aus einem Satz von Kommunikationsstandards für das World Wide Web. Eigentlich handelt es sich nur um eine Verbindungs- und Kommunikationsmethodik. SOA dagegen beschreibt eine übergreifende, umfassende Strategie für die Erstellung von Anwendungen, vergleichbar mit einer Architekten-Blaupause. Einziger Unterschied: Das SOA-Konzept verlangt, dass alle Teile nach einer bestimmten Methode entwickelt werden, die in der Regel als Service-orientierte Programmierung bezeichnet wird.
Welche Vorteile bringt eine SOA? (zurück)
Der potenzielle Nutzen von Service-orientierten Architekturen wird oft auf zwei Ebenen beschrieben: Eine taktische Sicht hebt die Vorteile Service-orientierter Softwareentwicklung hervor. Auf der strategischen Ebene stehen der Nutzen einer umfassenden SOA-Initiative für das Unternehmen oder eine größere Organisationseinheit im Vordergrund.
- Vorteile Service-orientierter Softwareentwicklung:
1) Wiederverwendung (Reuse)
Sind Softwareservices richtig zugeschnitten und dimensioniert, lassen sie sich für neue Anwendungen wiederverwenden. Telekommunikationsanbieter beispielsweise nutzen in verschiedenen Unternehmensbereichen oft jeweils eigenständige Programme für die Auftragsbearbeitung. Die Systeme enthalten in der Regel sehr ähnliche Funktionen, beispielsweise für das Auffinden von Kundendaten. In den hochintegrierten monolithischen Anwendungen lassen sich solche Funktionen nicht über Systemgrenzen nutzen. Eine SOA hingegen würde es er-möglichen, eine Funktion für das Auffinden von Kundendaten zu erstellen, die von allen Unternehmensbereichen gleichermaßen verwendet werden könnte: Benötigen Softwareentwickler die Funktion für eine neue Anwendung, reicht ein Aufruf des Softwareservice.
Am meisten profitieren davon Unternehmen, die regelmäßig neue Anwendungen mit ähnlichen Funktionen entwickeln. Dazu zählen etwa Versicherungen oder Finanzdienstleister, die über verschiedene Divisionen jeweils leicht unterschiedliche Produkte anbieten. Ähnliches gilt für Unternehmen, die häufig andere Firmen kaufen. Beim Entwickeln, Testen und Integrieren von Softwareservices ergeben sich in solchen Fällen erhebliche Ersparnisse.
In der Praxis hängt der Grad der Wiederverwendung vor allem vom richtigen Zuschnitt der Services (Granularität) ab. Das gelingt längst nicht in allen Fällen. Lediglich zehn bis 40 Prozent der Softwareservices werden tatsächlich mehrfach verwendet, schätzt das Marktforschungs- und Beratungshaus Gartner.
2) Höhere Produktivität
Wenn Entwickler Services wiederverwenden, können Softwareprojekte schneller erledigt werden, lautet ein weiteres Argument der SOA-Protagonisten. Ein Entwicklungsteam könnte zudem mehr Projekte betreuen. Die Kosten der Integration sänken tendenziell. Gartner etwa schätzt die diesbezüglichen Einsparmöglichkeiten auf mindestens 30 Prozent.
3) Höhere Agilität und Flexibilität
Selbst wenn Softwareservices nicht mehrfach verwendet werden, können sie Vorteile bringen. Weil komplexe monolithische IT-Systeme gemäß dem SOA-Gedanken in einzelne, von einander unabhängige Services aufgebrochen werden, lassen sie sich leichter verändern. Unternehmen könnten damit schneller auf neue Marktbedingungen reagieren.
- Vorteile einer SOA-Strategie
1) Bessere Abstimmung von IT- und Business-Zielen (Alignment)
Eine SOA liefert im Idealfall das komplette Abbild aller Geschäftsprozesse. Mitarbeiter in Fachabteilungen können mit visuellen Hilfsmitteln nachvollziehen, wie ihre Schlüsselprozesse technisch abgebildet sind. IT-Projekte werden in diesem Szenario nicht in Form komplexer Softwareanwendungen kommuniziert, sondern beschreiben Geschäftsaktivitäten und Prozesse. Das erleichtert es Fachanwendern und Business-Managern, den Sinn von IT-Projekten zu verstehen und diese zu unterstützen. Ähnliches gilt für umfassende Architekturkonzepte (Enterprise Architecture), die der CIO dem Management aus einer rein technischen Sicht oft nur schwer vermitteln kann.
2) Besserer Return on Investment (RoI) für bestehende IT-Systeme
In der Praxis ersetzen SOA-Konzepte nur selten bereits installierte Anwendungen, auch wenn dies dem Idealbild einiger SOA-Befürworter entspricht. Werden einzelne Funktionen von Legacy-Programmen als Softwareservices isoliert, gekapselt und anderen Anwendungen zur Verfügung gestellt, kann das die Lebensdauer der Altsysteme verlängern und Investitionen schützen.
3) Verbesserte Kundenzufriedenheit
Im Rahmen groß angelegter SOA-Initiativen steht die Analyse von Geschäftsprozessen und deren Umsetzung in der IT ganz oben auf der Prioritätenliste. Das birgt erhebliche Optimierungspotenziale, die sich direkt auf die Kundenzufriedenheit auswirken können. Mit Hilfe kombinierbarer Softwareservices lassen sich neue Anwendungen (Composite Applications) schneller entwickeln; Unternehmen könnten damit besser auf neue Kundenwünsche reagieren.
Wolfgang Herrmann



Beiträge (Atom)
Letzte Kommentare
RSSThomas Reichelt, BPMN: Akzeptanz in der Praxis? at SOA meets BPM, Thomas Allweyer [...]
Pweter E. Teichreber
Max J. Pucher - Chief Architect ISIS Papyrus
Max J. Pucher - Chief Architect ISIS Papyrus, Uwe Feddern, Falke [...]