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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

58 Entwurf<br />

Dienste geteilt. Für die Kommunikation zwischen der Anwendung und den Services oder zwischen<br />

den einzelnen Services werden Standard-Schnittstellen wie z.B. REST eingesetzt.<br />

Bezüglich der von den Diensten bereitgestellten Schnittstelle wird im Fall dieser Architektur eine<br />

Schnittstelle definiert, die die grundlegenden REST Methoden enthält, die von jedem Dienst bereitgestellt<br />

werden müssen (siehe auch 7.3.5). Darüber hinaus definiert jeder Dienst eine eigene erweiterte<br />

Schnittstelle, um die eigene Funktionalität bereitzustellen.<br />

Die verfügbaren Dienste können in einem “Repository” oder “Gateway” gelagert werden und mittels<br />

einem Web <strong>Server</strong> nach außen zu den Clients bereitgestellt. Ein Vorteil einer SOA-ähnliche Lösung<br />

ist, dass die Dienste individuell auf verschiedenen Systeme gelagert werden können, um z.B.<br />

eine bessere Fehlertoleranz zu erzielen. Im Rahmen des Architektur-Konzeptes dieser Arbeit werden<br />

die Dienste in einem Gateway zusammengepackt und mithilfe eines hochperformanten <strong>Server</strong>s zur<br />

Verfügung gestellt, wie im Detail im Laufe des Abschnittes 7.3.5 dargestellt wird.<br />

Weiterhin wird zwischen “normale”, nicht-Echtzeit fähige Dienste und Echtzeit-fähige Dienste<br />

unterschieden, indem die dafür zuständige Komponente für die Zwischenspeicherung oder Persistierung<br />

(siehe auch vorheriger Paragraph) unterschiedlich ist. Während sich ein NonRealtimeService<br />

mit der relationalen Datenbank in Verbindung setzen kann, spricht hingegen ein RealtimeService die<br />

Echtzeit-Datenbank an. Ein weiterer Unterschied zwischen den zwei Arten einbezogener Diensten<br />

wäre, dass die deklarierten Schnittstellen unterschiedlich sind. Des Weiteren verwenden beide Arten<br />

von Diensten eigene “Unterkomponenten”, die die verschiedenen Persistenz-bezogene Programmlogik<br />

einkapseln.<br />

Ein weiterer Aspekt bezüglich der Bereitstellung von REST Web Services, nämlich die Entdeckung<br />

vorhandener Dienste, wird im darauffolgenden Abschnitt behandelt.<br />

Entdeckung und Beschreibung vorhandener REST Web Services<br />

In [KTP11] wird die Idee eingeführt, dynamisch eine maschinenlesbare Darstellung vorhandener<br />

RESTful Services zu erzeugen. Dies würde dazu dienen, einen einheitlichen und standardisierten<br />

(REST-basiert) Datenaustausch mit den aufgelisteten Services zu ermöglichen. Ein Hilfsmittel für<br />

diese Darstellung wird von der vorgeschlagenen WADL 1 Spezifikation repräsentiert. WADL (Web<br />

Application Description Language) ist eine Sprache zur Beschreibung von Web Anwendungen, die<br />

im Jahr 2009 zwecks Standardisierung bei W3C vorgeschlagen worden ist. Jedoch ist WADL noch<br />

nicht standardisiert.<br />

WADL ist ein XML-basiertes Dateiformat, das eine Plattform- und Programmiersprache-unabhängige<br />

Beschreibung von HTTP-basierten Web Anwendungen anbietet. Eine verbreitete Perspektive von<br />

WADL schildert dies als das RESTful Äquivalent von WSDL [KTP11]. Obgleich die Beschreibung<br />

von REST-basierten Web Services möglich 2 ist, stellt sie sich als eine zu schwerfällige Annäherung<br />

dar.<br />

In dieser Arbeit wurden die Prinzipien von WADL in einer “verkürzten” Form übertragen: mithilfe<br />

des häufig übersehenen HTTP Verbs namens OPTIONS und die benutzten Methoden zur Beschrei-<br />

1<br />

http://wadl.java.net/<br />

2<br />

Artikel von IBM: https://www.ibm.com/developerworks/webservices/library/wsrestwsdl/

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!