Service Oriented Architecture (SOA)

Eine SOA unterteilt eine IT-Infrastruktur in modulare und wiederverwendbare Dienste.

Der Begriff SOA

Für den Begriff Service Oriented Architecture (SOA) existiert eine Vielzahl verschiedener Definitionen. Die Meisten teilen aber den gleichen Grundgedanken:

  • Grundelement einer IT-Infrastruktur sind Dienste (Services)
  • Dienste bilden in der Regel ein verteiltes System über ein oder mehrere Netzwerke
  • Zur Lösung einer Aufgabe können Dienste andere Dienste nutzen

Somit wird in einer SOA im Vergleich mit einem monolithischen System ein deutlich höherer Grad an Modularisierung und Wiederverwendung erreicht.

Service Oriented Architecture

Technische Umsetzung von Basis-Diensten

Die technische Umsetzung von kleinen, modularen Basis-Diensten in einer SOA erfolgt häufig über Web Services. Web Services bieten für eine SOA verschiedene Vorteile:

  • Standardisierte Art der Kommunikation im Netzwerk
  • Integration in bestehende Programme durch Vielzahl von existierenden Bibliotheken leicht möglich
  • Erweiterung einer SOA um neue Web Services leicht möglich

Diese Rahmenbedingungen zur Umsetzung von Diensten verringern den Programmieraufwand für neue Dienste um ein Vielfaches und machen SOAs wirtschaftlich.

Komposition einer SOA

Um die Konfiguration und Entwicklung großer SOAs zu vereinfachen, bedient man sich oft zweier weitergehender Konzepte: Enterprise Service Bus (ESB) und Business Process Management (BPM). Dienste, ESB und BPM fügen sich in eine 3-schichtige Architektur ein.

Service Oriented Architecture

Service-Ebene:

  • Dienste enthalten Logik zur Erfüllung von Aufgaben
  • Häufig keine oder wenige Aufrufe anderer Dienste (atomare Dienste)

Orchestrierungs-Ebene:

  • Komposition von mehreren oder vielen Dienstaufrufen (Orchestrierung) durch Prozesse
  • Definition der Aufrufreihenfolge im Prozess
  • Prozesse selbst sind wieder Dienste

Nachrichten-Ebene:

  • Austausch von Nachrichten und Daten
  • Sicherstellen der technischen Kompatibilität von Formaten und Protokollen
  • Definition des Routings von Nachrichten

Durch die Aufspaltung der Logik zur Orchestrierung (Prozesse), Umsetzung (Dienste) und Datenverteilung (ESB) ist jede Komponente in einer SOA leicht austauschbar. Auf diese Weise wird das Prinzip der losen Kopplung umgesetzt und somit Wartung, Erweiterbarkeit und leichte Adaptierbarkeit einer SOA ermöglicht. Eine SOA bietet folglich ein zukunftssicheres und skalierbares Architekturkonzept.