Service-Oriented Architecture

Es handelt sich bei der Service-Oriented Architecture um eine Architektur, bei der die Systembestandteile in drei Kategorien unterschieden werden:
 
• Service Provider,
• Service Consumer und
• Service Broker (bzw. Service Registry).

Die Service Provider stellen Dienste oder Geschäftsprozesse bereit (Services). Bei diesen ist die Realisierung (Implementation) von der Schnittstellenbeschreibung (Interface) getrennt.

Der Service Broker führt ein Verzeichnis, in dem die von den Service Providern bereitgestellten Dienste zusammen mit beschreibenden Metadaten (u.a. Interface) aufgeführt sind.

Die Service Consumer benutzen den Service Broker, um die Dienste aufzufinden, die sie benutzen wollen.

Damit eine Service-Oriented Architecture den größtmöglichen Nutzen bringt, müssen beim Entwurf der Services die folgenden Ziele verfolgt werden:

- Service Provider und Service Consumer sollen möglichst lose gekoppelt sein (Loose Coupling).
- Service Consumer sollen Services aufrufen können, unabhängig von deren tatsächlichen Lokationen (Location Transparency).
- Die Realisierung eines Services soll möglichst autonom sein (Autonomy).
- Wenn möglich, dann sollten Services zustandslos sein (Stateless).
- Wenn ein Service zustandsbehaftet ist, dann soll sein innerer Zustand über Serviceaufrufe verwaltet werden können.
- Services sollen wiederverwendbar sein (Reusability).
- Es soll einfach sein, einen Service zu realisieren, der andere Services benutzt (Composability).