Gregor Horvath, Ing.

Industrieberatung

Softwareentwicklung

Konzept Architektur DbBow

Datenbank-Webapp-Generator

Name "DbBow"

Db
Datenbank
Bow
Benutzer Oberfläche für das Web

Zielsetzung

DbBow soll automatisiert, flexible und anpassbare Webbenutzeroberflächen für relationale Datenbanken erzeugen. Ziel ist den Programmieraufwand von Datenbank Webanwendungen durch Automatisierung zu reduzieren, dabei aber die Anpassbarkeit, Erweiterbarkeit und die Integrierbarkeit in andere Lösungen zu erhalten.

Kreativität, Vernunft und Handwerk kann nicht durch Maschinelles "Lernen" oder LLM's ersetzt werden. Das Schaffen von Lösungen erfordert tatsächliche und nicht künstlich simulierte Fake Intelligenz. Das primäre Ziel ist daher nicht, wie bei manchen sogenannten Low oder No Code Lösungen, erfahrene Programmierer zu ersetzen, sondern sie mit einem flexiblen und leistungsstarken Werkzeug zu unterstützen. Die immer wiederkehrenden Funktionen von Datenbankanwendungen wie CRUD, Abfragemasken, Einzelsatzansicht, Tabellenansicht, Listenansicht, Kopf/Positionsansichten, Navigation, Datenvalidierung etc. sollen automatisiert erzeugt werden. Das Ergebnis soll aber anpassbar und leicht erweiterbar bleiben.

Prinzipien

Software Teile

Maker:
Ein Dynamic Site Generator. Ich schlage für dieses neue Konzept die Abkürzung DSG vor. Ähnlich wie ein SSG (Static Site Generator) erzeugt der Maker aus Metainformation über die Daten eine komplette Webanwendung mit statischen HTML Templates, die als Variablen nur mehr Platzhalter für die Daten enthalten. Dabei werden Datentypen HTML Oberflächenelementen zugeordnet und Seiten und Navigationsstrukturen erzeugt.
MetaMaker:
ist Teil davon und erzeugt die für den Maker notwendigen Metainformation aus Datenbank DDL und generischen Schema Definitionen, z.B. standardisierten Tabellen und Spaltennamen unter Anlehnung an vorhandenes Vokabular wie Microformats und Schema.org.
AppMaker:
Die Anpassungen für eine spezifische App. Optional.
App:
Der vom Maker generierte Programmcode für einen konkreten Satz Datenmetainformation.
Runner:
Das generische Webserver Laufzeitprogramm, dass die App HTML Oberfläche mittels SSR (Server Side Rendering) über HTTP zur Verfügung stellt
Datenquelle:
Eine Datenbank oder API, die die eigentlichen relationalen, strukturierten Daten zur Verfügung stellt.
Die Architekturidee ist, die Verarbeitung der statischen Meta Daten und die konkreten dynamischen Daten sowohl zeitlich, logisch als auch örtlich strickt zu trennen. Die App könnte theoretisch auch als statische Seiten zur Verfügung gestellt werden. Der Runner wäre dann nicht mehr notwendig, weil die Daten über die Datenquellen API vom Browser dynamisch geladen und Client seitig gerendert werden könnten. (SSG + CSR = YAMStack)

Einfacher und effizienter ist jedoch in einem ersten Schritt die Implementierung mit vom Runner generierten, dynamischen Seiten (SSR). Daher wird im Sinne von KISS das zunächst realisiert. Allerdings mit der in sonst üblichen SSR Server Webanwendungen unüblichen strikter, sauberen Trennung zwischen statischen und dynamischen Inhalt.

Jänner 2024