Referenzmodelle der Anwendung

Das W3C-Dokument "Web Services Architecture, W3C Working Group Note 11 February 2004" (http://www.w3.org/TR/ws-arch/) stellt im Abschnitt "2.3 The Architectural Models" (http://www.w3.org/TR/ws-arch/#concepts) vier verschiedene Architekturmodelle dar, die typische Webservice-Konstruktionen widerspiegeln. Dabei lassen sich natürlich tatsächlich vorhandene Dienste nicht immer vollständig einem dieser Basismodelle zuordnen. Dies kann zum einen daran liegen, dass ein gegebener Dienste Eigenschaften mehrerer Modelle in sich vereint, zum anderen ist dagegen auch bereits in den Modellen eine gewisse Überschneidung untereinander zu sehen, sodass diese Basisarchitekturen mehr als Referenzmodelle und Leuchttürme gelten sollen, was Webdienste bieten bzw. wie sie aufgebaut sein können.

Die nachfolgende Abbildung fasst diese verschiedenen Modelle in einem Überblick zusammen, wird aber noch einmal in vier Varianten in diesem Abschnitt wiederkehren, in denen dann einzelne Modelle mit ihren beteiligten Komponenten dargestellt werden. Im genannten W3C-Text findet man darüber hinaus noch weitere Abbildungen zu jedem Modell, in denen überaus detailliert mehr Bausteine eines betrachteten Modells herausgearbeitet werden. Dies soll an dieser Stelle aus Gründen der Übersichtlichkeit und knappen Darstellung unterbleiben. In den einzelnen Modellen ist bereits die Überschneidung mit anderen Modellen gegeben, welche durch die grauen Pfeile angegeben ist.

Webservice-ModelleWebservice-Modelle

Nachrichtenorientiertes Modell

Im Abschnitt "2.3.1 Message Oriented Model" (http://www.w3.org/TR/ws-arch/#message_oriented_model) beschreibt man ein Model, dessen Fokus hauptsächlich auf den Nachrichtenaustausch und die Verarbeitung von übertragenen Nachrichten liegt. Dabei ist die Bedeutung (Semantik) der einzelnen Nachrichten oder die Beziehung zwischen diesen nachrangig und außerhalb der Architektur. Es konzentriert sich mehr auf die technischen Bereiche, d.h. auf die Beziehungen zwischen Sendern und Empfängern sowie den Nachrichtentransport /-austausch selbst.

Im Zentrum des Modells steht die Nachricht. Sie besitzt Sender und Empfänger, die selbst wieder als Agenten auftreten. Der Empfänger besitzt eine Adresse, zu der die Nachricht geschickt werden soll. Diese wiederum ist vom Mechanismus des Nachrichtentransports bekannt, der neben dem eigentlichen Transport auch für die Verlässlichkeit / Integrität / Unveränderlichkeit der Nachricht zuständig ist.

Die Nachricht besteht aus einem Kopf (engl. header) und einem Körper (engl. body) wie viele andere Nachrichten in Softwareanwendungen auch. Neben diesen beiden Bereichen besitzt sie mit Blick auf das SOAP-Format auch einen Briefumschlag (engl. envelope), der hier als Zusammenstellung bzw. Eltern-Element für Körper und Kopf auftritt. Er enthält also beide genannten Bereiche.

Nachrichtenorientiertes ModellNachrichtenorientiertes Modell

Serviceorientiertes Modell

Im Abschnitt "2.3.2 The Service Oriented Model" (http://www.w3.org/TR/ws-arch/#service_oriented_model) beschreibt man ein Modell, dessen Fokus auf den beiden Bausteinen Dienst (engl. service) und Aktivität (engl. action) liegt. Sein Ziel ist es, die Beziehungen der Agenten und den zur Verfügung gestellten und nachgefragten Diensten herauszustellen und zu erklären. Sein Fundament bildet das nachrichtenorientierte Modell, stellt allerdings den Dienst bzw. die Aktivität in den Mittelpunkt.

Im Zentrum des Modells steht der Dienst, der Aktivitäten und Operationen auf Basis von eingehenden Daten ausführt bzw. selbst Daten als Antwort versenden kann. Er wird von einem Nachfrager genutzt und von einem Anbieter bereitgestellt. Beide stellen Agenten dar, die von einer Person oder Organisation besessen werden. Sie besitzen nicht nur den Dienst, sondern stellen ihn auch für die Nutzung zur Verfügung. Dabei können auch bestimmten Sicherheitsrichtlinien oder überhaupt Regeln (engl. policy) zum Einsatz kommen, welche die Verwendung mit Blick auf einen bestimmten Zielzustand (engl. goal state) näher beschreiben.

Der Dienst erfüllt eine bestimmte Dienstaufgabe (engl. service task), die selbst wieder eine Kristallisation einer Dienstrolle (engl. service role) ist, die vom Dienst umgesetzt bzw. gespielt wird. Diese wird wiederum von der besitzenden Person oder Organisation eingerichtet und gefordert.

Die ausgeführte Dienstaufgabe resultiert in einer Aktion, welche selbst wiederum den von der Organisation geforderten Zielzustand hervorbringt. Diese Aktion kann eine Nachricht verarbeiten oder zu einer Nachricht in Form einer Antwort führen. Eine Dienstschnittstelle (engl. service interface) legt das Nachrichtenformat fest, wobei diese Beschreibung wiederum von einer allgemeinen Dienstbeschreibung abhängt, die auf der einen Seite die Dienstschnittstelle und auf der anderen Seite die Bedeutung der Dienstaufgabe beschreibt.

Schließlich besitzt der Dienst noch eine weitere Eigenschaft. Er kann selbst wieder als Ressource gelten, weil er ja unter einer bestimmten Adresse (URI) aufgerufen werden kann.

Serviceorientiertes ModellServiceorientiertes Modell

Ressourcenorientiertes Modell

Im Abschnitt "2.3.3 The Resource Oriented Model " (http://www.w3.org/TR/ws-arch/#resource_oriented_model) beschreibt man eine Architektur, deren Zentrum eine Ressource bildet. Sie gelten als besonders wichtiges und zentrales Konzept von Webdiensten an sich, da bspw. ein Webservice selbst auch wieder eine Ressource darstellt. Das Modell konzentriert sich dabei auf die Schlüsselaspekte, die einer Ressource zu Eigen sind und die unabhängig von ihrer Rolle als Webservice zu beobachten sind. Dies betrifft die Besitzverhältnisse, Sicherheitsrichtlinien und andere Regeln sowie die allgemeine Verwendung.

Im Zentrum des Modells steht eine Ressource. Sie besitzt einen URI, d.h. eine Netzwerkadresse, unter der sie aufgerufen werden kann. Diese befindet sich in einer Ressourcenbeschreibung (engl. resource description), welche sich auf eine Sicherheitsrichtlinie (engl. policy) beziehen kann. Die Ressourcen kann eine Repräsentation aufweisen. Eine Person oder Organisation besitzt die unter dem URI auffindbare Ressource und legt die Sicherheitsrichtlinien oder andere die Ressource betreffende Regeln fest.

Die Ressource wird von einem Agenten entdeckt, wobei dieser wiederum einen Entdeckungsdienst (engl. discovery service), d.h. einen Verzeichnisdienst für Webservices zu Rate zieht. Dieser Verzeichnisdienst stellt selbst wiederum einen Dienst bzw. auch eine Ressource dar. Er indiziert die Ressourcenbeschreibung, welcher den URI enthält und damit zur eigentlichen Ressource führt.

Ressourcenorientiertes ModellRessourcenorientiertes Modell

Sicherheits(richtlinien)modell

Im Abschnitt "2.3.4 The Policy Model" (http://www.w3.org/TR/ws-arch/#policy_model) beschreibt man eine Architektur mit (Sicherheits-)Regeln und Richtlinien im Zentrum. Neben Sicherheitsfragen können diese auch Qualitäts- oder Verwendungsfragen betreffen. Sicherheit bedient sich konzeptuell des Prinzips der Beschränkung, die das Verhalten von Aktionen oder die Ressourcennutzung betreffen. Gleiches gilt prinzipiell auch für Qualitätsanforderungen. Alle diese Ausprägungen von Richtlinien werden in diesem Modell mit anderen wesentlichen Bausteinen in Beziehung gesetzt, sodass es insgesamt eine einfache Sicherheitsarchitektur vorstellt, die allerdings im konkreten Fall von einer Vielzahl anderer Bereiche berührt wird.

Im Zentrum des Modells steht eine Richtlinie (engl. policy). Sie betrifft eine Domäne (engl. domain), welche eine Richtlinienbeschreibung (engl. policy description) besitzt, welche wiederum die Richtlinie beschreibt. Die Richtlinie selbst wird von einer Person oder Organisation eingerichtet, die durch sie notwendige Beschränkungen festlegt. Die Person oder Organisation besitzt Agenten und Ressourcen, wobei die Agenten sich auf Ressourcen beziehen. Die Agenten erfordern Erlaubnisse, um bestimmte Aktivitäten (engl. action) durchführen zu können. Diese Erlaubnisse werden in Form der Richtlinien erteilt, organisiert oder auch verweigert.

Die Ressource steht unter der Kontrolle eines Wächters (engl. permission guard), welcher die Einhaltung der Erlaubnisse bzw. der Richtlinien erzwingt. Er ermöglicht dadurch die Ausführung von Aktionen. Diese Aktionen wiederum zielen auf Ressourcen ab.

Neben dem Wächter, welcher die Erlaubnisse kontrolliert, existiert ein weiterer Wächter (engl. audit guard), der für die Aufzeichnung und Protokollierung von Ressourcenzugriffen und die Durchführung von Aktionen verantwortlich ist. Er stellt die Verpflichtungen (engl.obligation) sicher, welcher durch die Richtlinie eingefordert werden.

Regelorientiertes ModellRegelorientiertes Modell