Schon mal etwas von service-oriented computing oder von service-oriented architecture oder ihren jeweiligen Abkürzungen SOC bzw. SOA gehört oder gelesen? Als Nicht-IT-Verantwortlicher oder Nicht-Programmierer höchstwahrscheinlich nicht. Dabei wird SOC bzw. SOA wahrscheinlich in naher Zukunft weiter an Bedeutung in der Programmierung gewinnen. Nachfolgend möchte ich euch die Themen etwas näher bringen.
Eins vor weg, zwar wird SOC bzw. SOA natürlich auch praktisch angewendet, letztendlich sind es aber vor allem theoretische Konstrukte. Diese sind aus der Not heraus geboren worden, weil es die Anforderungen so gewollt haben und unterliegt bis heute einen Entwicklungsprozess. Dieser ist wohl nicht immer in geordneten Bahne gelaufen, sodass es zu den unterschiedlichsten Begriffen in diesem Themenbereich die vielfältigsten Definitionen gibt, in denen man sich schnell verlaufen kann. Das fängt schon bei der Abgrenzung des Service-oriented Computing (SOC) und der Serviceorientierte Architektur (SOA) an. An vielen Stellen wird SOC und SOA synonym verwendet, was aber falsch ist. Vielmehr ist das Service-oriented Computing ein Überbegriff, zu dem sich verschiedene Techniken und Konzepte einreihen, darunter eben auch Serviceorientierte Architekturen. Neben SOA umfasst SOC auch Cloud Computing, Utility Computing oder auch Grid Computing mit ein.
Die Serviceorientierte Architektur (SOA) hingegen ist ein konkretes Software-Architekturmuster. Eine allgemein akzeptierte Definition von SOA gibt es nicht, weshalb man wie schon gesagt die unterschiedlichsten dazu finden wird. Der Schritt vom ursprünglichen Programmierkonzept zu SOA ist der, dass ein monolithisches Programm nun in Komponenten mit wohl-definierten Schnittstellen (Services) aufgeteilt wird. Diese Service kann man dann einzeln wieder zu einem neuen Programm zusammensetzen (orchestrieren). Der Grund dafür ist einfach, viele Programme brauchen immer wieder die gleichen Funktionen. Nun müsste man diese Funktionen für jedes Programm neuschreiben oder kopieren. Mit SOA entfällt dies, da man einfach nur den benötigten Service in das Programm einbinden muss. Das erhöht die Flexibilität und die Wiederverwendbarkeit. Wer sich ein bisschen mit SOA beschäftigt wird schnell auf Webservices stoßen. Auch hier herrscht wohl noch Unklarheit, da an manchen Stellen der Eindruck erweckt wird SOA wären Webservices. Dies ist nicht der Fall, Webservices sind lediglich eine (häufige) Umsetzung einer Serviceorientierte Architektur, es ist aber nicht das gleiche. Vielmehr beschreibt SOA völlig losgelöst von speziellen Implementierungsmethoden und -techniken ein Architekturparadigma.
Das war es auch schon mit dem kurzen Einblick in das Service-Oriented Computing bzw. der Service-Oriented Architecture. Mehr zu diesen Themen findet ihr unter: http://www.service-oriented-computing.de/, diese Seite dreht sich nämlich nur um den hier angeschnittenen Themenbereich.
Ähnliche Themen: