Hallo zusammen! In Aufgabe 1 soll euer Client eine Registry verwenden, um die Adressen eurer
Web-Service herauszufinden. Was der Sinn dahinter ist und wie ihr das in der Aufgabe
realisieren sollt, erzähle ich euch in diesem Video.
Warum verwenden wir denn überhaupt eine Registry? Man könnte die Adresse des Web-Services dem
Client ja auch einfach manuell konfigurieren. Das Problem hierbei ist, dass in einem System
normalerweise nicht nur ein Web-Service läuft, sondern viele verschiedene. Auch hat ein Web-Service
üblicherweise keine feste Adresse. Unser Service soll ja möglichst robust und zudem
noch dynamisch sein. Wenn der Server, auf dem der Dienst gerade läuft, abstürzt, wollen
wir den Dienst also so schnell wie möglich auf einem anderen Server starten. Dann ändert
sich aber natürlich die Adresse des Dienstes. Auch wollen wir gegebenenfalls mehrere Instanzen
unseres Dienstes starten, wenn es gerade einen großen Ansturm gibt. Weihnachten zum Beispiel.
In so einem Fall geben wir der einen Hälfte der Clients vielleicht Adresse A und der anderen
Adresse B, um die Last möglichst gleichmäßig zu verteilen. Um mit unserem Web-Service interagieren
zu können, benötigt ein Client aber natürlich die aktuelle Adresse des Web-Services. Hier
kommt die Registry ins Spiel. Die Registry ist ein eigener Dienst, der die Metadaten
der anderen zur Verfügung stehenden Dienste verwaltet, also zum Beispiel ihre Adressen.
Damit man hier keine Hand-to-Hand-to-Eye-Probleme bekommt, muss die Adresse der Registry aber
natürlich global im System bekannt sein. Und so sollte sich auch möglichst selten ändern.
Das ist allerdings nicht ganz so schlimm, da es sich hier nur um einen einzigen Dienst
handelt. Zudem sollte die Anfragelast der Registry üblicherweise verhältnismäßig
klein sein, da Clients die Registry ja normalerweise nur dann anfragen, wenn sie Informationen
über einen anderen Dienst brauchen. Solange sich diese dann nicht ändern, kommuniziert
der Client danach direkt mit dem gewünschten Web-Service. Die Registry ist also eine Art
Treffpunkt zwischen Dienst und Client. Ein Dienst registriert sich in der Registry mit
seiner Adresse und hält diese dort aktuell. Ein Client kann jetzt über die Registry die
derzeitige Adresse eines Dienstes abfragen. Wie schon erwähnt, läuft die eigentliche
Kommunikation des Clients mit dem Dienst dann an der Registry vorbei. Sie hat ihre Aufgabe
in dem Moment erfüllt. Für die Aufgabe bekommt ihr von uns Zugang auf eine vom Lehrstuhl
gehostete Registry. Diese ist, wie auch eure Web-Services, mit REST implementiert und liegt
auf einem Rechner des Lehrstuhls. Die Adresse der Registry findet ihr im Preuverzeichnis
in der Datei Registry.address. Unsere Registry verwaltet die Daten in einem
hierarchischen Schema. Auf unterster Ebene gibt es Gruppen. Hier gibt es eine Gruppe für
jede Übungsgruppe. Unter Gruppen kann es Dienste geben. Es kann mehrere Dienste pro
Gruppe geben, ein Dienst ist aber immer nur einer Gruppe zugeordnet. Ein Dienst hat wiederum
beliebig viele Schlüsselwertpaare. Auch hier ist wieder jedes Paar genau einem Dienst zugeordnet.
Hier seht ihr beispielhaft, wie so eine Registry aussehen kann.
Zum Lesen und Modifizieren bittet die Registry zudem folgende Schnittstellen an. Die Gruppen
sind fest und können nicht modifiziert werden. Dienste und Schlüsselwertpaare können aber
nach Belieben erstellt und gelöscht werden. Im Preuverzeichnis findet ihr wieder eine
ausführliche Beschreibung der Registry API. Der Zugriff auf unsere Registry ist durch
Nutzer geschützt. Jeder bekommt dafür von uns Zugangsdaten per E-Mail geschickt. Wenn
ihr noch keine Zugangsdaten habt, aber schon mit der Bearbeitung der Aufgabe beginnen
wollt, könnt ihr zum Beispiel mit der Implementierung der Web-Services anfangen. Die Registry-Teilaufgabe
ist relativ unabhängig und kann auch zu einem späteren Zeitpunkt erledigt werden.
Euer Registry-Account hat dabei Leser- und Schreibrechte auf eure eigene Gruppe und
alle Dienste darin. Die Einträge anderer Gruppen können nur gelesen, aber nicht geschrieben
werden. Damit euer Client auf die Registry zugreifen kann, muss sich der Client einmalig
mit Nutzername und Passwort registrieren. Das macht man in Java mit dem HTTP Authentication
Feature, der Rest API. Im Rahmen der Aufgabe müsst ihr die Kommandos im Registry-Client
zuerst implementieren. Folgende Kommandos soll es dabei geben.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:04:54 Min
Aufnahmedatum
2020-10-27
Hochgeladen am
2020-10-27 15:07:03
Sprache
de-DE
Registrierung von Web-Services