Corona-Zeit: Progammieren_2 (Java)

Wie fühlt sich Vorlesung in Epidemie-Zeiten an? Wie für Dozenten? Wie für Student*Innen? Die Sicht aus dem HomeOffice des Dozenten kann ich Ihnen zeigen.

Nach in der Zwischenzeit sieben Woche virtualiserter, synchroner Veranstaltung, steht für mich fest: geht soweit ganz gut. Wie es aus studentischer Sicht aussieht, kann ich vielleicht zeigen, sobald mir ein/e Student*In ihren Mittschnitt zur Verfügung stellt.

Das Scaffold für ADRELI_3_NET wird besprochen (Sprint-Planning-Meeting)

ADRELI_3_NET

Was hier zu sehen ist, ist eine erste Auseinandersetzung mit dem Scaffold „scaffold_3_ADRELI_3_NetCore“: ADRELI_3_NET ist ein vernetzte Applikation.

  • Von der Architektur her handelt es sich um eine Client-Server-Architektur
  • Der Client spielt die Rolle des „View“ (aus MVC) und handelt Bildschirm und Tastatur
  • Der Server spielt die Rolle des „Model“ (aus MVC) und handelt die Datenbasis.
  • Im einfachsten Fall ist der Server single-threaded
  • Im Idealfall ist der Server multi-threaded (wünschenswert)
  • Das sowohl Client wie auch Server einen kleinen „Conroller„-Anteil (aus MVC) haben ist evident.
  • Für die Kommunikation über das TCP/IP-Netz (= Internet) werden Sockets verwendet.
  • Die Oberflächen für Client und Server ist nachwievor Menü-basiert zeichenorientiert

Die ADRELI-Familie

Die Adreli-Familie besteht aus insgesamt 5 SCRUM-Sprint-Ergebnissen, es gibt also vier zwischenprodukte (Sprint-Ergebnisse), bis das definitive Endprodukt seht. Hier der Entwicklungspfad:

  • ADRELI_1_CON: Einstiegs-Sprint in der Veranstaltung PROGRAMMIEREN_2 mit JAVA.
    • Eigenschaften:
      • monolithische JAVA-Lösung
      • läuft als main()-Thread innerhalb einer einzigen JVM
      • User-Interface zeichenorientierte Menüoberfläche
      • Datenbasis: RandomAccessFile
      • nur 1-Semester-Kenntnisstand notwendig
  • ADRELI_2_Thread
    • Eigenschaften:
      • erster Verteilungsansatz = multi-threaded MVC
      • lokal verteilt in einem Computer, genauer: in einer einzigen JVM mehrere Threads
      • drei Threads:
        • Model-Thread: handelt die Datenbasis
        • View-Thread: handelt User-Interface (zeichen-orientiert)
        • Controler-Thread: baut auf und managed die Piping-Infrastruktur
      • Kommunikation zwischen Model-Thread und View-Thread erfolgt mit Pipes
      • Datenbasis: RandomAccessFile
  • ADRELI_3_NET
    • Eigenschaften:erster Verteilungsansatz = multi-threaded MVC
      • geografisch verteilt über mehrere Computer
      • funktioniert aber auch lokal
      • Architektur: Client/Server
      • Server: handelt die Datenbasis, spielt die Rolle des Model-Threads
      • Server: ist multi-threaded und skalierbar
      • Client: handelt User-Interface (zeichen-orientiert), spielt die Rolle des View-Threads
      • Kommunikation zwischen Client und Server erfolgt mit Sockets
      • Datenbasis: RandomAccessFile
  • ADRELI_4_GUI
    • Eigenschaften:
      • wie ADRELI_3_NET
      • Server bietet eine GUI (Java FX oder AWT)
      • Client bietet eine GUI (Java FX oder AWT)
  • ADRELI_5_JDBC
    • Eigenschaften:
      • wie ADRELI_4_GUI
      • Server_1 = Adreli-Server mit Business-Logik
      • Server_1 mit eigenem Server-Logging
      • Server_2 = Datenbank-Server als Datenbasis
      • Datenbasis: neben Datenbank auch CSV-RandomAcessFile

Soviel an dieser Stelle zur Adreli-Family: realisiert wird das Endprodukt ADRELI_5_JDBC in 5 Sprints, innerhalb eines Semesters. Während des verkürzten Corona-Semester wird im SS2020 mit ADRELI_4_GUI Schluß sein.

https://youtu.be/vdh3BvRxX9Q

Insgesamt geht es mit ADRELI in diese Richtung:

Verteilte Systeme
Verteilte Systeme

Weiterhin viel Spass mit „Programmieren_2“

Have fun storming the castle!

Ihr

J. Anton Illik

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.