Was versteht man unter SOA (serviceorientierte Architektur)?

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:

  • Schnellere Entwicklungszyklen. Durch die Integration und Wiederverwendung bestehender Dienste müssen die Entwickler viele Funktionen nicht mehr von Grund auf neu entwickeln.
  • Einfachere Wartung. Mit SOA können einzelne Dienste unabhängig voneinander gewartet werden, ohne dass dies Auswirkungen auf ein größeres Projekt hat. Debugging und Troubleshooting können isoliert werden, um die Betriebszeit zu erhöhen.
  • Anpassungsfähigkeit. SOA bewahrt die Rückwärtskompatibilität und erleichtert die Zukunftsplanung. Entwickler können ältere Dienste in eine neuere Umgebung integrieren oder sogar veraltete Dienste durch neuere Versionen ersetzen, die die Vorteile aktualisierter Hardware und Cloud-Infrastruktur nutzen.
  • Skalierbar. Die Dienste können von der SOA-Verwaltungsschicht überwacht werden. Wenn die Leistung aufgrund einer erhöhten Nachfrage zu stark abfällt, können neue Instanzen eines Dienstes gestartet werden, um die Leistung zu verbessern. Die Anwendungen, die den Dienst nutzen, erfahren nichts von den neuen Instanzen, sie sehen nur, dass die Betriebswerte auf einem akzeptablen Niveau bleiben.

Beispiele für serviceorientierte Architekturen sind:

  • Websites und Anwendungen mit universellen Logins: Viele Unternehmen versuchen, Anwendungsumgebungen zu schaffen, in denen Mitarbeiter nur ein einziges Passwort benötigen, um auf die von ihnen benötigten Anwendungen zuzugreifen. Bei einer SOA-Architektur wird das Authentifizierungsmanagement über eine Reihe von Diensten abgewickelt, die dann von den Anwendungen des Unternehmens genutzt werden.
  • Anwendungen mit In-App-KI oder -Analyse: Ein wesentlicher Vorteil von Cloud-Systemen besteht darin, dass sich die Funktionalität einer Anwendung einfach durch die Nutzung von Cloud-Diensten verbessern lässt. Cloud-Dienste können einfache Aufgaben wie die Erstellung eines Diagramms aus einer Reihe von Daten übernehmen. Sie können aber auch komplex sein, wie z. B. die Möglichkeit, Entwicklern über eine Reihe von Service-Aufrufen die Möglichkeit zu geben, einer Anwendung KI-Funktionen hinzuzufügen.
  • Online-Händler: SOA ermöglicht die einfachere Entwicklung und Verwaltung von E-Commerce-Websites durch die Nutzung von Diensten, die Bestandsdaten abrufen, Einkäufe verfolgen, sichere Zahlungen abwickeln und KI-generierte Daten wie ähnliche Produktempfehlungen abrufen.

Was versteht man unter SOA (serviceorientierte Architektur)?

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.

  1. Ein Einkäufer meldet sich über Single-Sign-On mit einer bekannten E-Mail-Adresse und einem Passwort an. Die Einzelhandelsanwendung sendet diese Anmeldung zur Authentifizierung an den Autorisierungsservice und lädt das Kundenprofil, sobald die Anmeldung überprüft wurde.
  2. Anschließend sucht der Einkäufer nach einem bestimmten Produkt. Die Artikelübersicht ist mit einem Bestandsservice verbunden, der Daten über die Verfügbarkeit in den Filialen in der Nähe des Kunden und in den Fulfillment-Zentren für den Versand abruft.
  3. Der Kunde kauft über einen integrierten Einkaufswagenservice ein, der dann für eine sichere Transaktion eine Verbindung zu einem Zahlungsverarbeitungsservice herstellt.
  4. Sobald die Transaktion abgeschlossen ist, kann der Käufer den Auftragsstatus mithilfe anderer Dienste abrufen, um Daten aus dem Lagerbestand und den Versandlogistikdiensten zu erhalten.

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.

10 Cloud-Trends, die CIOs im Jahr 2024 im Auge behalten sollten

Eine modulare und flexible SOA-Infrastruktur bietet erhebliche Vorteile für Unternehmen, die die Cloud nutzen. Hier finden Sie weitere wichtige Trends.

Serviceorientierte Architektur – Häufig gestellte Fragen

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:

  • Lose Kopplung von unabhängigen Services, die entweder aus einer separaten internen Entwicklung oder aus einer Lizenz eines Drittanbieters stammen und gemeinsam zum Aufbau einer größeren Anwendung verwendet werden.
  • Interoperabilität, sodass Services in eine Vielzahl von Softwaresystemen integriert und aktualisiert werden können, ohne die Anwendungsleistung zu beeinträchtigen.
  • Skalierbarkeit, sodass die Services je nach Bedarf hoch- und runtergefahren werden können, ohne dass die Anwendung davon Kenntnis erhält.
  • Ausgelagerte Wartung, da Softwareentwickler nicht für die Instandhaltung der von ihnen genutzten Services verantwortlich sind.

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.