Was ist eine Serviceorientierte Architektur (SOA)?
Das Softwareentwicklungsmodell der Service Oriented Architecture (SOA) erlaubt Unternehmen die Erstellung von Anwendungen durch plattform- und sprachübergreifende Kommunikation zwischen den verschiedenen IT-Servicekomponenten ihres Systems. In der SOA versteht man unter „Dienst“ eine unabhängige Softwareeinheit, die für die Ausführung einer bestimmten Aufgabe konzipiert wurde. Eine SOA ermöglicht verschiedenen Diensten über ein lose gekoppeltes System miteinander zu kommunizieren: um Informationen zu übertragen, Prozesse zu koordinieren und so höherwertige IT-Services zur Verfügung zu stellen.
Dabei ist die Definition für „lose Kopplung“, dass der Client technisch weitgehend unabhängig vom jeweils verwendeten Dienst bleibt, dass er mit mehreren Diensten kommuniziert und auch selbst einen Dienst für andere (übergeordnete) Clients zur Verfügung stellt.
Durch das Zusammenspiel dieser orchestrierten und gegebenenfalls kaskadierten Aufrufe an die diversen Dienste können in einer serviceorientierten Architektur viele Einzelmodule komplexe Anforderungen erfüllen, ohne dass man gleichzeitig eine enge technische Abhängigkeit zwischen den beteiligten Modulen in Kauf nehmen müsste.
Warum und wie wird eine SOA implementiert?
Die Implementierung einer serviceorientierten Architektur verfolgt drei Kernziele, von denen sich jedes auf einen bestimmten Abschnitt im Vorgang der Anwendungsbereitstellung konzentriert.
Zunächst sollten Prozesse oder Softwarekomponenten als Dienste strukturiert werden, die nur lose und bedarfsgesteuert an die Anwendungen gebunden sind. Des Weiteren sind die Dienste so angelegt, dass Software-Entwickler, die Anwendungen ja in technisch einheitlicher Weise erstellen müssen, sie leicht verwenden können.
Als nächstes sollte in einer SOA die Zurverfügungstellung bestehender Dienste geregelt sein, einschließlich ihrer Funktionalität und der eindeutigen Definition der Schnittstellen (APIs) und ausgetauschten Datenstrukturen. Auch hier gilt: Die Dienste werden so veröffentlicht, dass Entwickler sie leicht in Applikationen einbinden können.
Beim dritten Ziel serviceorientierter Architektur geht es darum, die notwendige Zugriffssicherheit und den Datenschutz sowie Regelungsaspekte im gesamten System bedarfsgerecht zu berücksichtigen. Bei SOA geht es daher im Wesentlichen um die Sicherheit der einzelnen IT-Architektur-Komponenten, um die mit diesen Einheiten verbundenen Identitäts- und Authentifizierungsmechanismen sowie um die Sicherheit der Interkommunikationswege.
Für Unternehmen stellt eine serviceorientierte Architektur ein IT-„Dienstleistungskonzept“ oder „Dienstleistungsmodell“ dar. Bei dieser Art von System oder IT-Infrastruktur werden Prozesse als Software-Services implementiert. Der Zugriff erfolgt über streng definierte Anwendungsprogramm-Schnittstellen (APIs), die über eine dynamische Service-Orchestrierung mit Anwendungen verbunden sind.
Welche Herausforderungen gibt es im Rahmen von SOA?
Die SOA-Architektur fungiert als eine Art Drehscheibe für die Abwicklung von Geschäftsprozessen. Vor ihrer Einführung sollten Unternehmen jedoch einige Aspekte berücksichtigen.
Erhöhte Anzahl von Schnittstellen
Das Grundprinzip der losen Kopplung erhöht die Anzahl der Schnittstellen innerhalb eines per SOA realisierten IT-Dienstes. Die zusätzlichen Verarbeitungsschritte, die an den internen Übergabestellen notwendig sind, verursachen verlängerte Ausführungszeiten. Es ist daher auf eine Performance-optimierte Implementierung der internen Übergabepunkte zu achten.
Sorgfältige fachliche Planung
Die Einführung von serviceorientierter Architektur erfordert eine sorgfältige technische sowie fachliche Planung der einzelnen Services und Schnittstellenkonzepte, um ein hohes Maß an Wiederverwendbarkeit der Komponenten zu ermöglichen. Unternehmen sollten ebenfalls berücksichtigen, dass das Zusammentragen der technischen Information, die genaue Definition aller Anforderungen und der Zeitaufwand vonseiten der IT-Abteilung zu Beginn der Planung eine gewisse Investitionsbereitschaft erfordern.
Komplexes Management
Einmal implementiert, kann die Verwaltung und der Betrieb von Diensten einer serviceorientierten Architektur auch aufgrund der höheren Abstraktionsebene durchaus komplex sein. Zudem werden bei diesen Prozessen Nachrichten in hoher Anzahl ausgetauscht, sodass das Monitoring aufwendig werden kann. Der modulare Aufbau vereinfacht dabei die lokale Fehleranalyse. Allerdings können manche Arten von Fehlern unter Umständen nur schwer zu analysieren sein, wenn sie auf Probleme der Orchestrierung und ggf. Asynchronität der Aufrufe (z.B. Deadlock-Situationen, modulübergreifende Transaktionen, Race Conditions) zurückzuführen sind. Eine ausgereifte Lösung zur zentralen Verwaltung aller Datenströme und Schnittstellen inkl. Error-Handling und Mechanismen zur detaillierten Loganalyse sind daher eine wichtige Grundlage.
Validierungsanforderungen
Um für Unternehmen den gewünschten Mehrwert zu erzeugen, sind bei jeder Interaktion zwischen den Services vielschichtige Validierungen der Eingangsparameter erforderlich. Diese Prüfungen können die Leistung einer Service-orientierten Architektur beeinträchtigen und die Lade- und Antwortzeiten erhöhen.
Wirtschaftliche Vorteile
Als IT-Infrastruktur-Architektur bietet SOA im Vergleich zu monolithischen Systemen ein hohes Maß an Flexibilität, zentralisierter Verfügbarkeit von Diensten und bedarfsgesteuerten Einsatz.
Interoperabilität und Skalierbarkeit
SOA bietet Unternehmen Vorteile durch hohe Interoperabilität, also durch die Vereinbarkeit technischer Normen zwischen den verschiedenen Anwendungen und Diensten. Der Architekturstil erleichtert das Skalieren bestehender Anwendungen und senkt durch die Wiederverwendbarkeit der Servicekomponenten die Entwicklungskosten von Business Applications/Geschäftsanwendungen.
Unternehmenskonforme Automatisierung von Geschäftsprozessen
SOA bewahrt das in der strukturierten Programmierung übliche Modell des Prozeduraufrufs und standardisiert die Art und Weise, wie Geschäftsprozesse automatisiert und genutzt werden. Die Implementierung und Integration erfolgt dabei in Einklang mit den Anforderungen an die IT-Sicherheit und geltenden Unternehmensrichtlinien.
Zeit- und Kostenersparnis
In einer SO-Architektur werden interne und externe Geschäftsprozesse, also für Kunden und Geschäftspartner, aus vorprogrammierten Servicekomponenten erstellt. Durch diesen Rückgriff auf bereits eingerichtete Dienste sparen Unternehmen nicht nur Zeit, sondern reduzieren ebenfalls ihren Kostenaufwand erheblich. Zudem beschleunigt das Vorhandensein vorprogrammierter Komponenten, in gewissem Maße Innovation, da bestehende Ansätze schneller weiterentwickelt werden können.
Aufbau von Know-how im Unternehmen
Da im Rahmen einer serviceorientierten Architektur wesentliche Dienste zentral abgerufen werden können, haben Mitarbeitende leichter Zugang zu wichtiger Information und damit ein verbessertes Geschäftsprozess-Wissen. Sie sehen das „bigger picture“ und nicht nur die für ihre Abteilung relevanten Aspekte. Die Steuerung und Administration von Berechtigungen für klassifizierte Daten sollte daher von Beginn an im Designprozess der SOA priorisiert berücksichtigt werden.
No-Code-Software für Service Oriented Architectures
Die Softwarelösung Lobster_data, Plattform für Datentransformation und Datenaustausch, ist für SOA-typische Kommunikationsprotokolle (RESTful, HTTP, OPC UA, ActiveMQ, JMS etc.) ausgelegt. Sie eignet sich hervorragend für alle Szenarien, in denen sie nahtlos in eine bestehende Service Oriented Architecture eingefügt werden soll – und zwar sowohl als Client als auch in einer Servicerolle.
Als No-Code-Applikation bietet Lobster_data zudem ein hohes Maß an Flexibilität und Anpassungsfähigkeit an sich ändernde Anforderungen bei deutlich verringertem Aufwand für die Entwicklung und Wartung der Lösung.