Laufzeitarchitektur
Was ist der Mendix Laufzeit und wie unterstützt sie wichtige Architekturprinzipien?
Der Mendix Runtime führt Ihre Anwendungen im Kontext einer Cloud-native-Architektur aus. In diesem Abschnitt werden wir uns die Kernkomponenten der Mendix Laufzeit und die damit verbundenen Funktionen. Wir werden uns auch einige wichtige Aspekte der Laufzeitausführung genauer ansehen.
Welche Komponente ist für die Modellausführung verantwortlich?
Der Mendix Runtime interpretiert und führt die Modelle Ihrer Apps aus. Die Runtime verfügt über eine Twelve-Factor App-kompatibel Design mit branchenführenden Java- und Scala-Technologien.
Wie schneidet Mendix Modelle ausführen?
Der Mendix Die Runtime führt Modelle direkt aus, was bedeutet, dass das Modell buchstäblich die Anwendung ist und kein Vermittler. Im Gegensatz zu Ansätzen, bei denen ein visuell modelliertes Design tatsächlich Code generieren würde (z. B. Java oder .NET), ist die Mendix Der Ansatz der Modellinterpretation weist eine Reihe einzigartiger Merkmale und Vorteile auf, die im Folgenden beschrieben werden.
Change Control
Anwendungsänderungen können einfacher berücksichtigt werden. Da das Modell die Anwendung ist, Mendix stellt die Kompatibilität von Anwendung und Modell sicher.
Benutzerdefinierte Erweiterungen
Die Erweiterung von Modellen mit benutzerdefiniertem Code wird eleganter gesteuert, da das Modell den benutzerdefinierten Code erkennt und ihn in Konsistenzprüfungen einbezieht, im Gegensatz zum Einfügen von benutzerdefiniertem Code in generierten Code. MendixDer Modellinterpretationsansatz von löst das grundlegende Round-Trip-Problem der Codegenerierung, bei dem Änderungen am Modell mit benutzerdefinierten Codeerweiterungen in Konflikt geraten würden. Darüber hinaus bedeutet das Fehlen benutzerdefinierter Änderungen am generierten Code, dass die technische Architektur der Plattform modernisiert werden kann, ohne Ihr Modell zu beeinträchtigen. Das bedeutet, dass es einfacher und kostengünstiger ist, von technischen Innovationen zu profitieren.
Netzwerk Performance
Die Überwachung und Analyse des Anwendungsverhaltens zur Laufzeit kann dynamischer und flexibler eingerichtet werden als bei der vorherigen Definition von Monitorparametern.
Fehlerbeseitigung
Das Debuggen und Lösen von Problemen wird für den Entwickler einfacher, da er nicht verstehen muss, wie der generierte Code mit dem visuellen Modell zusammenhängt. Debuggen und Problemlösen werden am Modell durchgeführt, nicht am generierten Code.
Wie schneidet Mendix Zustandslose Architektur implementieren?
Um Skalierbarkeit, Leistung und hohe Verfügbarkeit zu gewährleisten, Mendix hat eine zustandslose Laufzeit implementiert. Das bedeutet, dass jede verfügbare Laufzeitinstanz eine Benutzeranforderung verarbeiten kann, unabhängig von vorherigen oder nachfolgenden Anforderungen.
Um dies zu erreichen, haben Laufzeitinstanzen für die Dauer einer Benutzeranforderung einen Status. Am Ende einer Anforderung wird der gesamte festgeschriebene Status in der Datenbank gespeichert. Der gesamte nicht festgeschriebene Status wird zusammen mit allen anderen Daten, die der Client benötigt, an den Client zurückgegeben.
Für weitere Informationen, siehe Gruppiert Mendix Laufzeit in England, Mendix Studio Pro-Handbuch.
Was sind die Komponenten der Mendix Laufzeit?
Die Runtime besteht aus 2 Hauptkomponenten:
- Clients – Web- und Mobilclients
- Laufzeitserver – eine skalierbare Laufzeitumgebung zur Handhabung der serverseitigen Logik
Server-Architektur
Der Mendix Die Serverarchitektur besteht aus mehreren Komponenten, die Logik ausführen, Daten verwalten, mit dem Client kommunizieren und Sicherheit implementieren. Das folgende Diagramm bietet einen Überblick über alle Komponenten, gefolgt von einer kurzen Beschreibung ihrer Verantwortlichkeiten:
Der Mendix Die Runtime besteht aus den folgenden Komponenten:
- Plattformkern – verantwortlich für den korrekten Start und das Herunterfahren Ihrer Anwendung und das Laden der erforderlichen Bibliotheken und Erweiterungen
- Objektcache – verwaltet die Erstellung und Entfernung von Objekten
- Sitzungsmanager – verwaltet die Erstellung von Benutzersitzungen und die Bereinigung abgemeldeter oder abgebrochener Sitzungen.
- HTTP-Server - inbegriffen in Mendix Laufzeitumgebung zur Bearbeitung von Anfragen vom Web- und Mobilclient sowie zur Bearbeitung von Serviceanfragen
- Mikroströmungsmotor – führt Ihre Microflows und Microflow-Aktivitäten aus
- Datenschicht – speichert und ruft Objekte aus Ihrer Anwendungsdatenbank ab; außerdem ist sie für die Erstellung und Aktualisierung der Datenbankstrukturen verantwortlich, die für die Speicherung Ihrer Daten erforderlich sind: Die Datenschicht unterstützt eine große Anzahl verschiedener Datenbanken, und die Daten werden unter Verwendung gängiger Best Practices für den Entwurf von Datenmodellen gespeichert (Einzelheiten finden Sie im Abschnitt Was Datenbanken tun Mendix Unterstützung? in Datenspeicher)
- Integrationsschicht – verarbeitet eingehende und ausgehende Serviceanfragen für Webdienste, REST-APIs, App-Dienste und OData
- Client-API – verantwortlich für die Kommunikation mit Web- und Mobilclients; die API wird verwendet, um Daten abzurufen, Datenänderungen beizubehalten und Mikroflusslogik auszuführen
- Konfigurations-API – diese JSON-API wird verwendet von Mendix Portal und Container-Buildpack zum Konfigurieren der Laufzeit
- Überwachungs-API – diese JSON-API wird verwendet von Mendix Portal und Container-Buildpack zum Abrufen von Überwachungsmetriken
- Benutzerdefinierte APIs – diese Java APIs dienen zur Erweiterung der Mendix Laufzeit (beispielsweise mit Microflow-Aktivitäten oder Entity-Listenern)
Client-Architektur
Der Mendix Der Client ist für die Benutzerinteraktion verantwortlich und besteht aus einer UI-Widget-Ebene, einer Logikebene zur Ausführung der Offline-Logik und einer Datenebene für die Offline-Speicherung. Dieses Diagramm bietet einen Überblick:
Der Mendix Der Client besteht aus den folgenden Komponenten:
- Kommunikationsschicht – tauscht Metadaten, Sitzungsverwaltungen und Daten mit dem Mendix Runtime-Server bei Verwendung eines sicheren JSON-over-HTTP-Protokolls
- Datenschicht – verwaltet die im Frontend verwendeten Daten; basierend auf dem React Flux-Muster, um den Status zu verarbeiten und Änderungen an UI-Komponenten zu übertragen
- Logikebene – behandelt Datenvalidierungen und komplexere Logik mithilfe von Mendix Nanoflüsse
- UI-Komponentenebene – verwaltet den Widget-Lebenszyklus und die Kommunikation zwischen Widgets und stellt sofort einsatzbereite Widgets bereit
Nativer mobiler Client
Mendix Native Mobile Apps sind wirklich native Apps, die auf React Native. Dieses Framework ermöglicht die Entwicklung mobiler Apps mit modernsten nativen Technologien, um das beste mobile Benutzererlebnis zu bieten:
- Erreichbarkeit – Apps können im Standard-App-Store des Geräts gefunden, auf mobilen Geräten installiert und über ein Symbol geöffnet werden
- Offline-Verfügbarkeit – da die App auf mobilen Geräten installiert wird (einschließlich aller erforderlichen Ressourcen und des nativen Clients), können Endbenutzer Ihre Mendix App offline, und relevante App-Daten werden in einer SQLite-Datenbank auf Ihrem Gerät gespeichert
- Native Benutzeroberflächen – Native Apps verwenden native Benutzeroberflächenkomponenten, die über flüssige Animationen und ein natives Erscheinungsbild verfügen.
- Unterstützung für native Funktionalität – React Native ermöglicht es Anwendungen, native Gerätefunktionen zu nutzen, wodurch Sie wiederum von allen Sensoren Ihres Mobilgeräts profitieren können, wie zum Beispiel der Kamera und dem Mikrofon.
Weitere Details zu Mendix Unterstützung für Mobilgeräte finden Sie unter Native mobile Apps.
Web-Client
Der Web-Client ist mit einer Single-Page-Architektur konzipiert, bei der eine einzelne JavaScript-Webseite in den Browser geladen wird, der dann die Seite aktualisiert und mit dem Mendix Laufzeit, die durch die Aktionen des Benutzers benötigt wird. Dies kann das Abrufen von Teilen der Webseite sowie das Abrufen und Speichern von Daten umfassen. Es wird in allen browserbasierten Mendix Anwendung, einschließlich progressiver Webanwendungen.
Der Client wird hauptsächlich mit HTML5, CSS mit Sass und Bootstrap sowie dem React-Framework implementiert. Weitere Informationen finden Sie unter Webclient-Einstellungen in England, Mendix Studio Pro-Handbuch.