Dies ist eine alte Version des Dokuments!
Systemarchitektur Minasa
Minasa ist das CMS-System, welches Kunden selber betreiben können und mit dem Azizi-Datenhub Daten austauschen können.
Ein Minasa-System ist als klassische 3-Tier-Web-Architektur aufgebaut:
Im Folgenden werden die einzelnen Teilsysteme erklärt.
Persistierung, Datenhaltung
Das Datenmodell, die relationalen Entitäten werden in einer MySQL-Datenbank gehalten.
User-generierte, dynamische File-Daten (Bilder, Dokumente, temporäre Dateien) werden auf dem Filesystem des Applikationsservers gehostet, und von der Web-Applikation lokal geschrieben / gelesen.
Applikationsserver
Der Applikationsserver ist eine PHP-Applikation, bestehend aus folgenden Teilsystemen / Schichten:
- Als Web-Framework kommt das Gaia-Framework von Kaden + Partner zum Einsatz: Dies ist ein MVC-Web-Framework für die Abhandlung von Web-Requests.
- Auf dieser Basis sind folgende Teil-Komponenten vorhanden:
- JSON-API für Backend-Dienste:
Diese Komponente stellt die Endpunkte für die Services zur Verfügung, welche von der Cockpit-Applikation (Single-Page JS) benötigt werden. Diese Endpunkte sind auf die Cockpit-Applikation zugeschnitten und liefern zum grossen Teil Json-Antworten. Entrypoint is /services/. - JSON-API für Frontend-Dienste:
Speziell für externe Frontends / Headless CMS / Minasa Widget ist eine Abfrage-API verfügbar. Entrypoint ist /frontend/api. Genauere Infos dazu siehe Frontend-Doc. - Frontend-Route-Controller und -Rendering:
Die öffentlich erreichbare Webseite wird von Frontend-Controllern ausgeliefert: Sie rendern dynamisch HTML-Webseiten und sorgen für das Page-Caching. - Export-Schnittstellen-Endpoints:
das System bietet verschiedene Export-Schnittstellen, welche über definierte Schnittstellen-Router und -Controller ausgeliefert werden. Einstiegspunkt: /services/export/ - gemeinsame Backend-Services:
von allen Teilen gemeinsam genutzte Code-Basis mit Applikationslogik
Cockpit-Applikation
Die Cockpit-Applikation stellt das Management-Tool für Minasa zur Verfügung. Sie ist als Single-Page JavaScript mit VueJS/Vuetify umgesetzt.
Die Cockpit-Applikation kommuniziert mit den JSON-REST-Schnittstellen des Applikationsservers.
Einstiegspunkt: /admin-cockpit/
Web-Clients
Sowohl die öffentlich zugängliche Webseite (Frontend) wie auch die Cockpit-Applikation sind via Internet erreichbar.