Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
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-