Ü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.
Als Metasprache wurde BPMN verwendet (Business_Process_Modeling_Notation)
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.
Authentifizierung
Die Authentifizierung prüft, ob der Nutzer eingeloggt ist oder ob die angeforderte Seite ohne Zugriffsberechtigungsprüfung angezeigt werden darf.
Ist der Benutzer noch nicht angemeldet und eine Anmeldung notwendig wird die Anmeldeseite angezeigt und die Anmeldung vorgenommen. Dies geschieht mit den Mitteln des FrameworksAufruf Controller
Das Framework ermittelt aus den Aufrufparametern (URI) welcher Controller angestoßen werden soll. Es überprüft, ob der Controller vorhanden und entscheidet, was geschehen soll wenn der Controller nicht vorhanden ist.
Ist der Controller vorhanden wird dieser aufgerufen und der Output des Controllers gesammelt.Template laden
Das FW läd das Templatefile. Das Templatefile stellt den äußersten Rahmen der Ausgabe dar. Es enhält eine Marke(Tag), welche dem Framework als Platzhalter für den Output des Controller dient. Diese Marke wird durch den Output ersetzt.- Ausgabe der fertig gerenderten HTML Seite.
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.