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