22.01.2014 Aufrufe

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

26 Verwandte Arbeiten<br />

2.7.1 Pico-REST für Komponentenintegration<br />

In [DRAPZ04] werden die Grundprinzipien hinter Pico-REST (Kurzform: pREST) eingeführt: es<br />

wir ein Netzwerk- und REST-basierter Zugriffsprotokoll entwickelt, die die vereinfachte aber mächtige<br />

Vision des Web über Daten und Dienste, in die Welt der Ubiquitären Computing und damit z.B.<br />

auch im Rahmen eines Smart Home Szenario überführen soll. Es wird damit versucht, verschiedene<br />

vorhandene Bestandteile oder Komponente der Ziel-Umgebung (wie z.B. Sensorik, HTTP-aufrufbare<br />

Dienste) zum allgemeinen Zweck von kontextbewussten Anwendungen (eine Kontext-basierte Anpassung)<br />

zu vernetzen. Diese Vernetzung trägt dazu bei, dass heterogene Systeme oder Geräte mittels<br />

HTTP integriert bzw. werden können bzw. zusammenarbeiten können.<br />

Die Simplifizierung dieser Technik lässt sich zuerst anhand der verwendeten Technologien bemerken<br />

– es werden HTTP Mitteilungen zwischen den einzelnen eingekapselten Komponenten verschickt<br />

(s.u.), unter Beachtung der REST Prinzipien. Ein interessanter Aspekt bei der Benutzung von<br />

HTTP ist die damit erzielte Flexibilität – es können Web Browser-gesteuerte Interaktionen zwischen<br />

den Komponenten realisiert werden. Ein ganzheitliche Perspektive über die für die Verbindung der<br />

einzelnen Komponenten erforderlichen Schnittstellen wird vorgegeben: vereinfachte Datentypen wie<br />

z.B. Zahlen, Zeichenketten oder boolesche Werte müssen zwischen den Komponenten kommuniziert<br />

werden können.<br />

Die von pREST angebotene Funktionalität ist simplifizierend aber effektiv: die Abfrage und Manupulation<br />

von Eigenschaften bzw. Daten einer Komponente, sowie die Möglichkeit, eine Funktion<br />

anhand angekommenen, Klartext-basierter Mitteilungen. Hiermit lässt sich eine ursprüngliche Konfiguration<br />

zwischen einer Client-Anwendung und einer entsprechenden <strong>Server</strong>-Anwendung realisieren.<br />

Weiterhin unterstützt pREST die lose Kopplung der zu integrierenden Komponente – im Vergleich<br />

zu üblichen Herangehensweisen der Vernetzung, die die Etablierung einer gemeinsamen Schnittstelle<br />

in Form von IDL (Interface Description Language, eine Sprache womit die Schnittstelle einer Softwarekomponente<br />

beschrieben werden kann) oder WSDL (Web Service Description Language, eine<br />

XML-basierte Sprache, die die von einer Web Service bereitgestellte Funktionalität beschreibt) Dokumenten<br />

vorsehen, stellt pREST eine begrenzte Semantik für die gegenseitige Verbindung vor. Es<br />

wird motiviert, dass im Fall von ubiquitären, “in-house” Computing fast nur Mitteilungen der Form<br />

“ein Ereignis ist aufgetreten”, “Wert auslesen” oder “Wert setzen” verschickt werden müssen.<br />

Zu diesem Zweck werden nur die Basis-Verben HTTP Verben benutzt, um die einzelnen Komponenten<br />

bzw. Ressourcen anfragen zu können: GET, POST sowie HEAD. Eine GET Anfrage für einen<br />

Dienst wird als eine Art “Discovery” Anfrage angesehen – die Antwort zu der Anfrage besteht aus<br />

einer REST-gemäße Repräsentation der für den Aufruf benötigten Parameter. Dementsprechend ist<br />

die Formulierung einer POST Anfrage für einen Aufruf des Dienstes gehalten.<br />

Das HTTP Protokoll wird weiter ausgenutzt, indem ein vereinfachtes System zur Typisierung (engl.<br />

typing system) eingesetzt wird – mithilfe von HTTP Headers und einer MIME-ähnliche Typisierung.<br />

Ein Accept Header listet die von einer Ressource bearbeitbaren Inhaltstypen (engl. content type)<br />

wie z.B. text/plain für primitive Datentypen oder img/* für Bilder, während ein Provide<br />

beschreibt, welche von einer Ressource bereitstellbaren Inhaltstypen sind. Vorteilhaft bei der Einbettung<br />

dieser “Service Descriptions” in HTTP Headers ist, dass das HTTP Verb HEAD zu Nutze<br />

gemacht werden kann: es werden dadurch nur die Headers vermittelt und keinen anderen Inhalt.<br />

Der vom pREST vorgestellte Ansatz kann durch seine vereinfachte Herangehensweise beim Aufbauen<br />

von Datenpfaden in z.B. einem Sensornetzwerk verwendet werden. Damit wird das grundle-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!