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.
5.2 <strong>Server</strong>-Architektur und -Funktionalität 57<br />
Dienst ist von der Persistenz-Komponente repräsentiert, welche die vom Client entgegengenommenen<br />
Datenbestände sichert.<br />
Speicherung des Datenbestandes<br />
Als Hauptkomponente für die Speicherung des Datenbestandes bietet der <strong>Server</strong> eine Komponente,<br />
die Daten persistieren, bearbeiten und auslesen kann. Damit wird der Zugang zu einem relationalen<br />
Datenbanksystem ermöglicht, welches CRUD Operationen ausführen kann.<br />
Die Schnittstelle zwischen dem <strong>Server</strong> und dem Datenbanksystem wird von einer ORM Komponente<br />
gewährleistet. ORM steht für Object-Relational Mapping und beschreibt einen Dienst, der<br />
eine beidseitige Verbindung zwischen einem bestimmten Eintrag in der Datenbank und dessen Repräsentation<br />
als Objekt bzw. Instanz in einer Objekt-orientierten Programmiersprache herstellt. Eine<br />
Schreibvariante des Akronyms ist auch O/RM, um den Unterschied zwischen Object-Relational Mapping<br />
und Object-Role Mapping deutlicher zu machen.<br />
Vorteilhaft an der Verwendung eines ORM Dienstes ist die Einbettung gewisser Verbindungen und<br />
Eigenschaften oder Attributen der Ressource in eine einheitliche Komponente bzw. Klasse. Weiterhin<br />
können mithilfe fortgeschrittener ORM Dienste Relationen im Ganzen erstellt werden. Dies geschieht<br />
anhand einer Beschreibung der Datentypen abgesonderter Attribute und Verbindungen zu anderen<br />
Relationen des Schematas.<br />
Ein wichtiger an dieser Stelle zu beachtenden Aspekt ist die Einkapselung der Persistenz-bezogenen<br />
Funktionen in eigenständigen REST Web Services, welche z.B. für jede Operation (Create, Read, Update,<br />
Delete) auf eine Ressource eine entsprechende HTTP-Methode bereitstellt. Dieser Aspekt ist ein<br />
Beispiel für ein NonRealtimeService; Details über die Umsetzung dieses Aspektes lassen sich weiter<br />
aus dem Absatz 7.3.5 entnehmen.<br />
Aus Sicht der Datenhaltung kann der <strong>Server</strong> auch Zugang zu einer nicht- relationalen Datenbank<br />
bereitstellen. Diese Datenbank ist für den Umgang mit sehr schnell einkommenden, sogenannten<br />
“Echtzeit” Daten relevant. Wie im Fall der relationalen Datenbank wird eine Schnittstelle verwendet,<br />
mit dem Zweck, die Ausführung von CRUD Operationen zu erleichtern. Die Softwareprodukte, die<br />
für die Umsetzung der Datenhaltung, werden in 7.3.1 benannt.<br />
Während die interne Kommunikation zwischen dem <strong>Server</strong> und den einzelnen für die Datenhaltung<br />
zuständigen Teilsystemen durch ORM Dienste realisiert wird, lässt sich die eingehende Kommunikation<br />
(vom Client zum <strong>Server</strong>) mittels des genannten Kommunikationsprotokolls, nämlich HTTP,<br />
realisieren. Jeder Dienst kann nach außen eine Schnittstelle definieren, in Form eines REST Web<br />
Services, in eine Art und Weise die im kommenden Paragraph beschrieben wird.<br />
REST Web Services<br />
Die im Abschnitt 2.7 eingegangenen Konzepte hinsichtlich REST-Technologien sind in der Architektur<br />
der entwickelten Softwarelösung enthalten (Bereich “Backend/<strong>Server</strong>”). An dieser Stelle werden<br />
mehrere Services definiert, die durch REST ansprechbar sind und somit einen SOA-ähnlichen<br />
Konzept der Service-Orientierung beschreiben.<br />
Eine Service-Orientierte Architektur (engl. Service-Oriented Architecture, SOA) beschreibt eine<br />
Software-Architektur, die aus mehrere lose gekoppelte Dienste oder Services besteht. Somit werden<br />
die einzelnen Bestandteile und Funktionalitäten der beschriebenen Anwendung in selbständige