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 zwei Hauptarchitekturebenen:
- Client-Laufzeit – Bedienung von Web- und Mobilclients
- Serverlaufzeit – eine skalierbare Laufzeitumgebung zur Handhabung der serverseitigen Logik
Architektur
Der Mendix Die Laufzeitarchitektur besteht aus mehreren Komponenten. Die Client-Laufzeit 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. Die Server-Laufzeit ist für die Ausführung der Logik, die Datenverwaltung, die Kommunikation mit dem Client und die Implementierung der Sicherheit verantwortlich.
Das folgende Diagramm bietet eine Übersicht über die Hauptkomponenten sowohl für die Client-Laufzeit als auch für die Server-Laufzeit.

Server-Laufzeit
Der Mendix Die Server-Runtime besteht aus den folgenden Hauptkomponenten:
- HTTP-Server - inbegriffen in Mendix Laufzeitumgebung zur Bearbeitung von Anfragen vom Web- und Mobilclient sowie zur Bearbeitung von Serviceanfragen
- Client-Schnittstelle – verantwortlich für die Kommunikation mit Web- und Mobilclients; die API wird verwendet, um Daten abzurufen, Datenänderungen beizubehalten und Mikroflusslogik auszuführen
- API-Anforderungshandler – Verantwortlich für die Implementierung von APIs wie REST, SOAP und oData. Die Server Runtime ermöglicht zudem die Erweiterung mit Custom Request Handlern
- Kernlaufzeit – verantwortlich für den korrekten Start und das Herunterfahren Ihrer Anwendung und das Laden der erforderlichen Bibliotheken und Erweiterungen
- Entity Model Engine – führt das Entitätsmodell und die Entitätsaktivitäten aus
- Mikroströmungsmotor – führt die Microflows (Logik) und Microflow-Aktivitäten aus.
- Workflow-Engine – führt Workflows sowie Workflow-Aufgaben und -Aktivitäten aus.
- Abfragehandler – übernimmt die Ausführung von Datenbankabfragen an die mit der Anwendung verbundene Datenbank.
- Datenbank-Connector – übernimmt die Persistenz und den Abruf von Datenobjekten aus der Anwendungsdatenbank; außerdem ist er für die Erstellung und Aktualisierung der Datenbankstrukturen verantwortlich, die für die Persistenz Ihrer Daten erforderlich sind. Die Server-Runtime unterstützt mehrere Datenbankkonnektoren, die jeweils unterschiedliche Datenbankmanagementsysteme unterstützen. (Details finden Sie im Abschnitt Was Datenbanken tun Mendix Unterstützung? im Datenspeicher)
- Sicherheitsagent – Handhabung von Benutzern und Zugriff auf die Anwendung mithilfe von Standardprotokollen zur Authentifizierung und Autorisierung.
- Ereignis- und Aktionshandler – Handhabung sowohl synchroner als auch asynchroner Kommunikation und Prozesse.
- Benutzerdefinierte Bibliotheken – Die Server-Runtime ermöglicht auch Erweiterungen zur Erweiterung der Standardfunktionen und -fähigkeiten der Runtime, beispielsweise durch die Verwendung von Java-Aktionen.
Client-Laufzeit
Der Mendix Client Runtime besteht aus den folgenden Komponenten:
- Seiten-Engine – generiert die Benutzeroberfläche und kümmert sich um die Interaktion zwischen Widgets und der Client-Core-Laufzeit.
- Nanoflow-Motor – verarbeitet clientseitige Datenvalidierungen und komplexere clientseitige Logik mithilfe Mendix Nanoflüsse
- Steckbare Widgets – Die Benutzeroberfläche besteht aus Widgets. Widgets sind steckbar, d. h. die Client-Laufzeit kann mit benutzerdefinierten Widgets erweitert werden.
- Kernlaufzeit – übernimmt die Kommunikation mit dem Mendix Server-Laufzeit unter Verwendung eines sicheren JSON-über-HTTP-Protokolls. Verwaltet die im Front-End verwendeten Daten; basierend auf dem React Flux-Muster zur Statusverarbeitung und zum Übertragen von Änderungen an UI-Komponenten.
- Ereignis- und Aktionshandler – Handhabung asynchroner Kommunikation und Prozesse.
- Local Storage – Handhabung des Cachings (Speicherns) von Daten auf dem Clientgerät.
- Custom Actions – Die Client-Runtime ermöglicht auch Erweiterungen, um die Standardfunktionen und -fähigkeiten der Runtime mithilfe von JavaScript-Aktionen zu erweitern.
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.
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:
- Barierrefreiheit – 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.