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.
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
- Eigenschaften:
- 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
- Eigenschaften:
- 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
- Eigenschaften:erster Verteilungsansatz = multi-threaded MVC
- ADRELI_4_GUI
- Eigenschaften:
- wie ADRELI_3_NET
- Server bietet eine GUI (Java FX oder AWT)
- Client bietet eine GUI (Java FX oder AWT)
- Eigenschaften:
- 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
- Eigenschaften:
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.
Insgesamt geht es mit ADRELI in diese Richtung:
Weiterhin viel Spass mit “Programmieren_2”
Have fun storming the castle!
Ihr
J. Anton Illik