Überlegungen zur Architektur eines minimalen Webframeworks

Wurde beim Februar 2011-Treffen von Wilhelm vorgestellt.

Hintergrund

Bei der Konstruktion eines Webframworks (in folge FW genannt) wurden Überlegungen gemacht, welche die minimale Funktionalitäte beschreiben.

Diese Überlegungen sind unabhängig von Programmiersprachen und Datenbereitstellungsmechnismen (z. B. Webserver).

Die Programmiersprache muss in der Lage sein, die unten angeführten Prozesse handzuhaben. Der Bereitstellungsmechnismus muss in der Lage sein, Nachrichten des Anzeigeagenten (Browser) zu empfangen.

Als Schnittstelle zwischem dem Bereitstellungsmechnismus und dem Anzeigeagenten wird CGI Common_Gateway_Interface angenommen.

Architektur

Die Architektur wird in einer mehrschichtigen Bauform beschrieben.

Neben den Modell Controller Viewer (MVC) Schichten, in denen die Geschäftsprozesse abgehandelt werden wird noch die FW-Schicht betrachtet.

http://nagy.zoff.cc/pymframe/nanofw-docu/nanofw.jpg

Als Metasprache wurde BPMN verwendet (Business_Process_Modeling_Notation)

Download Grafik nanodms

framework

Jeder Aufruf wir von einer einzigen Startprozedur behandelt (start). Dieser Prozess regelt die grundlegenden Einstellungen und leitet den Aufrauf an das FW weiter. Dieses entscheidet über den weiteren Verlauf.

controller

Der Controller dient dazu die Geschäftslogik zu beschreiben. Er stellt die Daten zusammen (optional aus einer Datenbank) und übergibt diese dem Viewer zur Bearbeitung.

viewer

Der Viewer ist für das äußere Erscheinungsbild zuständig. Er wird vom Controller aufgerufen.

modell

Das Model stellt die Daten für den Controller und den Viewer zu Verfügung. Es müssen nicht zwangsläufig Daten aus einer Datenbank sein. Zum Beispiel können die Daten auch über eine WEB Ressource (JSON, CSV, XML oder dergleichen) zur Datengewinnung herangezogen werden.

Als Datenschnittstelle werden Domains herangezogen. Die Domains sind Datenobjekte, welche als Schittstelle zum Datenanbieter darstellen und geeignete Methoden zur Datengewinnung haben.

PyUGAT: Talks/MinimalesFramework (last edited 2011-07-24 10:45:23 by thp)