Michael Chen | Content Strategist | 28. März 2024
Eine serviceorientierte Architektur (SOA) ist ein Software-Design-Ansatz, der sich auf den Aufbau funktionaler, skalierbarer Softwaresysteme aus einzelnen Komponenten, den so genannten Services, konzentriert. Dienste können miteinander interagieren, um Aufgaben zu erfüllen, z. B. eine einmalige Anmeldung und den Zugriff auf eine Vielzahl von Geschäftsanwendungen zu ermöglichen. Bei SOA liegt der Schwerpunkt auf Modularität, Wiederverwendbarkeit und Interoperabilität. Wenn Unternehmen komplexe Anwendungen in kleinere, besser handhabbare Bausteine zerlegen, führt dies zu mehr Flexibilität und Skalierbarkeit.
Dienste sind nicht fest in Anwendungen kodiert. Stattdessen werden Dienste in einem Verzeichnis veröffentlicht, das von Anwendungen bei der Suche nach der neuesten Version eines Dienstes abgefragt wird. Auf diese Weise können Dienste auch von Personen ohne detaillierte Anwendungskenntnisse problemlos geändert oder aktualisiert werden. Ein SOA-Ansatz erleichtert die Anpassung an dynamische Geschäftsanforderungen und die Integration von Systemen, die verwandte Funktionen bieten.
Bei SOA sind die einzelnen Dienste lose gekoppelt und können nach Bedarf kommunizieren und Daten übertragen. Ein SOA-Ansatz für die Entwicklung von Cloud-Software bringt beispielsweise folgende Vorteile mit sich:
Beispiele für serviceorientierte Architekturen sind:
Eine serviceorientierte Architektur (SOA) ist ein Entwurfsparadigma, bei dem Anwendungen durch in sich geschlossene, wiederverwendbare Bausteine – Dienste – erstellt oder ergänzt werden, die bestimmte Funktionen bereitstellen und über ein Netzwerk aufgerufen werden können. Jeder Dienst hat einen definierten Anwendungsbereich und kann von anderen Komponenten oder Diensten innerhalb der Architektur genutzt werden, um die Gesamtfunktionalität und Leistung des Systems zu verbessern.
Beispiele für Dienste in einer serviceorientierten Architektur sind ein Zahlungsverarbeitungsdienst, ein Kundenverwaltungsdienst oder ein Produktempfehlungsdienst, die in eine E-Commerce-Website eingebettet werden können. Andere Dienste können weitaus weniger komplex sein, wie z. B. ein Dienst, der die aktuelle Uhrzeit in einer Stadt auf der anderen Seite der Welt angibt. Ein Beispiel für einen großen Vorteil der SOA ist der Wechsel des Zahlungsabwicklers, ohne dass die Anwendungen, die den Dienst nutzen, geändert werden müssen.
SOA sorgt für eine modulare und flexible Software-Infrastruktur, in der einzelne Dienste unabhängig voneinander entwickelt, getestet und eingesetzt werden können. Zwei wesentliche Vorteile sind die einfache Wartung und Skalierbarkeit.
SOA arbeitet mit einer losen Kopplung von Diensten im Rahmen einer Anwendung. Jeder Dienst arbeitet als ein Modul, das die angeforderte Eingabe/Ausgabe liefern kann. Die Anwendung muss nicht wissen, welche Version des Dienstes sie verwendet. Stattdessen wird ein Verzeichnis durchsucht, um das aktuellste Serviceangebot mit der erforderlichen Funktionalität zu finden. Betrachten Sie den folgenden Arbeitsablauf auf der Website eines Einzelhändlers, die mit einem SOA-Modell erstellt wurde.
SOA beschleunigt die Entwicklung dieser Art von Websites, indem sie die Integration von Diensten auf standardisierte Weise ermöglicht. In diesem Beispiel bleibt dem Einzelhändler nicht nur der Aufwand erspart, jedes dieser Module einzeln zu entwickeln, sondern er muss auch keine Service-Updates mehr überwachen. Die IT-Abteilung kann ganz einfach geprüfte Services mit bewährter Funktionalität, Sicherheit und Verfügbarkeit nutzen.
Der Schlüssel zur Entwicklung einer SOA liegt darin, modular zu denken und zu verstehen, wo sich Möglichkeiten zur Serviceintegration ergeben. In der Cloud entwickelte Anwendungen können problemlos von einer Vielzahl von SOA-ähnlichen Diensten profitieren, die als Webservices implementiert sind.
Eine modulare und flexible SOA-Infrastruktur bietet erhebliche Vorteile für Unternehmen, die die Cloud nutzen. Hier finden Sie weitere wichtige Trends.
Was ist ein Beispiel für eine serviceorientierte Architektur?
Ein Verbraucherbeispiel für eine serviceorientierte Architektur ist eine App für Läufer. Anstatt eigene Tools für Entfernungsmessung und Karten zu entwickeln, kann die App Dienste für das GPS-System des Telefons und einen bestehenden Kartendienst wie beispielsweise Google Maps integrieren. Außerdem kann es das örtliche Wetter vom nationalen Wetterdienst abrufen. Es ist die Aufgabe der App, die Daten dieser Dienste nahtlos zum Nutzen des Läufers darzustellen.
Wie unterscheidet sich eine SOA von Microservices?
SOA und Microservices haben ein ähnliches Ziel: Sie wollen Anwendungen durch netzwerkbasierte Funktionsaufrufe mit Funktionalität versorgen. SOA betrachtet die Nutzung jedoch auf einer umfassenderen und meist höheren Ebene. Microservices berücksichtigen die Nutzung auf Anwendungsebene und bieten Services für eine extrem spezialisierte Aufgabe, die je nach Bedarf wiederholt werden kann. Ein Authentifizierungs-Plug-in für eine sichere Anmeldung würde beispielsweise als Teil einer SOA betrachtet werden; ein wiederholbarer Service, der das Passwort verschlüsselt, ist jedoch ein Microservice. Microservices können innerhalb eines SOA-Services aufgerufen oder in ein größeres Projekt integriert werden. In diesem Beispiel verwendet der Authentifizierungsservice den Verschlüsselungs-Microservice, um seine Aufgabe zu erfüllen. Die Reichweite ist der Hauptunterschied zwischen den beiden.
Was sind die Hauptmerkmale einer serviceorientierten Architektur?
Zu den wichtigsten Merkmalen der serviceorientierten Architektur gehören:
Wo wird serviceorientierte Architektur eingesetzt?
Serviceorientierte Architektur kann für nahezu jede Anwendung verwendet werden, solange Standalone-Services existieren, die die Anforderungen des Systems erfüllen. Aufgrund des umfangreichen Ökosystems für die Entwicklung von Services können die meisten Softwareentwickler einen Service finden, der ihre Anforderungen erfüllt. Selbst das individuellste Projekt kann immer noch einen unabhängigen Service für Aufgaben wie Identitätsauthentifizierung oder den Abruf von Kartendaten nutzen.