Mit Serviceorientierter Architektur (SOA) lassen sich Dienste von IT-Systemen strukturieren und effizienter nutzen. Zugleich lassen sich Geschäftsprozesse flexibler abbilden, was Wartungsaufwand und Kosten reduziert. Grundlage ist dabei das Zerlegen komplexer Geschäftsprozesse in ihre Einzelschritte. Für diese Schritte sind softwareseitig jeweils einzelne Services zuständig. Über die Serviceorientierte Architektur werden diese Services dann je nach Anforderung zu Prozessen verbunden, die die Aufgaben der jeweiligen Anwendung erfüllen, etwa im hier gezeigten Beispiel die Kontoverwaltung oder den Bestellprozess.
Die einzelnen Services laufen auf Basis der vorhandenen EDV-Komponenten wie Datenbanken, Server und Websites gekapselt. Da sie eine sehr niedrige Abstraktionsebene besitzen, sind sie in immer neuer Kombination für unterschiedlichste Anwendungen einsetzbar. Das Zusammenführen solcher niedrig abstrahierten Services zu Services höherer Abstraktionsebene wird bei SOA als Orchestrierung bezeichnet.
Die Bonitätsprüfung eines Kunden ist in dargestellten Beispiel sowohl beim Geschäftsprozess „Bestellung“ als auch beim Geschäftsprozess „Kontoverwaltung“ erforderlich. Bei einer herkömmlichen, monolithischen Software-Architektur besitzt jede der für diese beiden Prozesse benötigten Applikationen eine eigene, fest in der Software integrierte Bonitätsprüfung. Ändert sich beim Verfahren der Bonitätsprüfung etwas, mussen beide Applikationen angepasst werden. Wird für einen neuen Geschäftsprozess die Bonitätsprüfung als Schritt benötigt, muss sie in der neuen Applikation eigens abgebildet werden.
Bei der SOA ist dagegen die Bonitätsprüfung eines Kunden ein Service niederer Ordnung. Benötigt eine komplexe Applikation den Schritt „Bonitätsprüfung“, greift sie nur auf den entsprechenden Service zu. Ein einmal implementierter Dienst kann auf Dauer erhalten bleiben, unabhängig davon, ob sich Geschäftsprozesse ändern. Für die Funktionen einer neuen Applikation für einen neuen Geschäftsprozess müssen die dafür geeigneten vorhandenen Services nur neu orchestriert werden. Dies beschleunigt die Entwicklung bei zugleich geringeren Kosten und geringerer Fehlerquote.
Standardisierte Schnittstellen wie REST verbergen dabei die Komplexität der Anwendungen für den Nutzer: Er weiß, dass ein Dienst angeboten wird, welche Eingaben er machen muss und wie das Ergebnis ausieht. Wie das jeweilige Ergebnis zustande kommt, muss ihn nicht interessieren. Die Plattform, auf der ein Service läuft, die Programmiersprache, in der er umgesetzt wurde, selbst die Frage, ob der Service im Unternehmen selbst läuft oder von einem externen Dienstleister kommt, sind für die Anwendung unerheblich. Dies macht einen SOA-Ansatz zugleich besonders geeigent für webbasierte und cloud-basierte Anwendungen.