Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp15/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2015 - D - Network

Netzwerkmodul

Max Doll, Svantje Jung, Elena Resch

Definition und Implementation der Kommunikation von Client und Server

Damit die Datenbank auch von anderen Rechnern aus aufrufbar und benutzbar ist, beschäftigt sich dieses Kapitel mit der Definition und Implementation der Netzwerkschnittstelle. Dazu gehören die entwickelten Client-Programme, Library-Module und das Server-Modul.

Überblick

Ein Datenbankmanagementsystem läuft in der Regel auf einem Server, um einen Mehrbenutzerbetrieb, also den parallelen Zugriff auf die Datenbank, zu ermöglichen. Deshalb ist nach der Betrachtung der eigentlichen Datenbank nun die Netzwerkkommunikation von Bedeutung, damit auch von anderen Rechnern aus auf die Datenbank zugegriffen werden kann.

Dafür ist es zunächst wichtig ein Kommunikationsprotokoll zu definieren, welches angibt, wie die Kommunikation zwischen Server und Clienten ablaufen soll. Dieser Ablauf umfasst die zu sendenden Datenpakete, sowie auch die Zeitpunkte zu denen diese Pakete vom Client bzw. vom Server gesendet bzw. erwartet werden. Daraufhin wird näher auf die Funktionalitäten des Clients eingegangen. Im Anschluss werden die in Rust und Ruby geschriebenenen Bibliotheken, die als Schnittstelle zwischen Client und Server dienen, besprochen. Abgeschlossen wird das Kapitel mit einem Blick auf die Funktionalitäten und Aufgaben des Servers im Allgemeinen. Zum Server gehören im Prinzip alle bisher vorgestellten Module, wie beispielsweise der Parser und der Speicher. In diesem Abschnitt wird hingegen im Besonderen auf den Connection Handler eingegangen, der das Herzstück unseres Datenbankssystems darstellt, da an dieser Stelle alle Module zusammenkommen und die jeweiligen Aufgaben verteilt und verarbeitet werden.

Im obigen Bild sieht man den groben Datenfluss im Netzwerkmodul. Der Client interagiert mit dem Server über eine Library-Schnittstelle. Diese Schnittstelle ist dafür da die Clientlogik von dem eigentlich Senden und Empfangen von Datenströmen zu trennen und so eine einfache Austauschbarkeit des Clienten zu ermöglichen. In diesem Praktikum wurden ein Commandoline-Client und ein Web-Client implementiert, die auf die in Rust geschriebene Bibliothek zugreifen. Daneben gibt es auch noch eine in Ruby implementierte Bibliothek, sodass es möglich ist einen Client zu schreiben, der die Ruby Bibliothek zur Kommunikation mit dem Server benutzt. Wenn die Daten nun beim Client abgeschickt werden, dann werden diese über die Bibliothek (1a) zum Server (1b) weitergesendet. Der Server besteht aus mehreren Modulen, wobei für diesen Bereich, wie bereits oben beschrieben, der Connection Handler am Wichtigsten ist, da dieser alle Module miteinander verbindet. Wurde die Anfrage erfolgreich bearbeitet, so werden die Ergebnisse über den Connection Handler wieder zurück zum Client gesendet. Hierbei wird wieder über die Zwischenstation der Bibliothek gegangen (3a). In der Bibliothek werden die Ergebnisdaten noch einmal aufbereitet, sodass der Zugriff auf die Daten für den Client noch einmal erleichtert wird.


Autor: Svantje Jung
Gruppe: Max Doll, Svantje Jung, Elena Resch


Page last modified on September 24, 2015, at 03:16 PM