Programmieren 2: Lesson 4

ADRELI_3_NET

Das zweite ADRELI-Projekt ADRELI_2_Thread wird weiter entwickelt, in Richtung „Verteilte Applikation“ mit einer Client/Server-Architektur (in der „Aussenansicht„) in der „Innenansicht“ durch eine MVC-Architektur gekennzeichnet.

Das neue (und dritte) ADRELI heißt ADRELI_3_Net, eben weil der Client und der Server verteilt im TCP/IP-Intranet oder -Internet sind. Für die Kommunikation von Client und Server setzten wir auf die Java-Sockets. Das Schöne daran: die Sockets sind die konsequente Fortsetzung der im Projekt vorher eingesetzten Java-Pipes. Mit anderen Worten: wir können für das Socket-Fitting zur Datenübertragung der Puffer-Container das gleiche Fitting verwenden, wie bei den Pipes. Und natürlich läßt sich die Lösung auch lokal testen! Sehr praktisch!!

Aber zunächst mal Sachte, überstürzen Sie nichts. Ich empfehle, zunächst

Schritt a)

a) den im Felix befindlichen ADRELI_3_NetCore zum Laufen zu bringen. Hier bekommen Sie die Adressierung und die Kommunikation zunächst grundsätzlich in den Griff. Ebenso die essentiellen Socket-Methoden bind() und accept(). Wichtig für den Test: lassen sie Client und Server im Labor tatsächlich physisch verteilt laufen, den Client auf Ihrem Laptop den Server auf einer der HFU-Maschinen im C1.04. (Ein beliebter Fehler: bis zur Fertigstellung von ADRELI_3_NET alles lokla zu entwickeln und dann als Letztes die Verteilung von Client und Server im Netz vorzunehmen. What a pity! – Typischer Anfängerfehler, geht selten auf anhieb gut! Umgekehrt ist es besser!

Schritt b)

b) Wenn sie die verteilte Lauffähigkeit validiert haben, reichern Sie ADRELI_3_NetCore an: bauen Sie in den Client und in den Server jeweils einen lokalen Puffer ein (wie Sie ihn auch in ADRELI_2_Thread benutzt haben. Nachdem die Puffer verfügbar (und statisch) gefüllt sind, passen Sie

Schritt c)

c) das Socket-Fitting an. Wenn Sie die Puffer so organisiert haben wie beim ADRELI_2_Thread-Projekt ist auch das Socket-Fitting identisch mit dem Pipe-Fitting aus dem vorghergehenden Projekt.

Schritt d)

d) Im nächsten Schritt kümmern Sie sich um den notwendigen Zierrat, die aus dem NetCore-Client den ADRELI-Client macht und aus dem NetCore-Server den ADRELI-Server macht.

Da der ADRELI-Server wieder gethreadet sein soll, kümmern Sie sich zu guter Letzt um das Threading!

Nun sollte die unten gezeigte Skizze implementiert sein!

ADRELI_3_NET
ADRELI_3_NET

Immer dran denken: Kiss „keep it simple, stupid“

Kiss: keep It simple, stupid
Kiss: keep It simple, stupid

Schreibe einen Kommentar