Sent from Hauptstadt!

ein Blog für den geneigten Leser

SOA aus technologischer Sicht

Tags: ,

Kategorie Promotion | 1 Kommentar »

Vor einigen Wochen wurde ich darauf hingewiesen, dass ich bis jetzt nicht wirklich gut erklärt habe, was eine service-orientierte Architektur (SOA) nun ist. Heute möchte ich damit beginnen dies nachzuholen. Dabei betrachte ich die technische Seite zunächst ganz abstrakt und stütze mich dabei auf das SOA Referenz Modell.

Beim ersten Lesen des SOA Referenz Modells ist die ganze Sache doch sehr ermüdend. Der Grund ist, dass das Referenz Modell abstrakt beschreibt, was eine SOA ist. Laut Modell ist das Ziel einer SOA, verteilte Fähigkeiten (Capabilities) zu organisieren und zu nutzen. Damit dies möglich ist, müssen diese Fähigkeiten sichtbar (Visibility) sein. Sieht man die Fähigkeiten, kann man sie verknüpfen und somit eine Interaktion (Interaction) zwischen ihnen herstellen. Als Resultat solch einer Interaktion kann man einen Effekt (Real World Effect) beobachten.

Zugegeben, so richtig erhellend war das jetzt noch nicht. Deshalb will ich es nochmal an einem Beispiel versuchen. Nehmen wir an, ich möchte eine Email verschicken. Dazu brauche ich jemanden oder etwas mit der Fähigkeit einen Text an eine bestimmte Emailadresse zu versenden. Das kann z.B. ein Emailprogramm wie Outlook sein oder ein Webdienst wie GMX oder Gmail. GMX hat die Fähigkeit, Emails zu verschicken. Doch woher weiß ich das? Richtig, weil GMX damit Werbung macht, seinen Dienst also sichtbar macht. Um eine Email zu verschicken, muss ich GMX benutzen. Ich muss z.B. mich auf GMX einloggen, die Zieladresse sowie den Text angeben. Somit entsteht eine Interaktion zwischen mir und GMX. Das Resultat dieser Interaktion ist, dass eine Email bei der Zieladresse eingetroffen ist. Ich könnte die Person z.B. anrufen und fragen, ob dies auch wirklich der Fall ist, nur um sicher zu gehen und den Effekt meiner Interaktion mit GMX zu überprüfen.

Nun geht es in einer SOA natürlich nicht primär um die manuelle Nutzung verteilter Fähigkeiten, sondern Computerprogramme sollen die Fähigkeiten anderer Computerprogramme automatisiert nutzen können. Hat ein anderes Computerprogramm eine Fähigkeit und bietet diese anderen Programmen an, so spricht man von einem Dienst (Service).

Ein Programm stellt also einen Service zur Verfügung, wenn es bereit ist von anderen auch tatsächlich genutzt zu werden und auch die Aufträge ausführen kann. Damit man überhaupt weiß, was so ein Service für Fähigkeiten besitzt, müssen diese entsprechend beschrieben (Service Description) werden.

Auch wenn meine Beispiele hier annehmen lassen, dass SOA irgendwas mit Netzwerken zu tun hat, so muss dies nicht der Fall sein. Momentan wird SOA in den meisten Fällen mit Netzwerkdiensten (Web Services) umgesetzt, allerdings sind auch andere Technologien denkbar.

Bietet jemand einen Dienst an, so bezeichnet man ihn als Dienstanbieter (Service Provider). Nutzt jemand einen Dienst, so bezeichnet man ihn als Dienstnutzer (Service Consumer). Eine SOA besteht demnach aus einer Vielzahl von Diensten, die von verschiedenen Service Providern angeboten und von verschiedenen Service Consumern genutzt werden.

Ein Kommentar to “SOA aus technologischer Sicht”

  1. […] dieses meines Blogs werden sich vielleicht erinnern, dass ich schon mal vor einiger Zeit einen Beitrag zum SOA Referenzmodell geschrieben habe. Dort ist auch genau anhand eines Beispiels erklärt, was es mit dem Modell auf […]

Schreiben sie ein Kommentar