Architecture d'exécution
Quel est le Mendix Runtime et comment prend-il en charge les principes architecturaux clés ?
Mendix Runtime exécute vos applications dans le contexte d'une architecture cloud native. Dans cette section, nous examinerons les composants principaux de Mendix Runtime et ses fonctionnalités associées. Nous examinerons également plus en détail plusieurs aspects importants de l'exécution du runtime.
Quel composant est responsable de l’exécution du modèle ?
Mendix Runtime interprète et exécute les modèles de vos applications. Le Runtime a un Compatible avec l'application Twelve-Factor conception utilisant les technologies Java et Scala de pointe.
Comment La Mendix Exécuter des modèles ?
Mendix Le runtime exécute directement les modèles, ce qui signifie que le modèle est littéralement l'application, et non un intermédiaire. Contrairement aux approches où une conception modélisée visuellement génèrerait réellement du code (par exemple, Java ou .NET), le runtime Mendix L’approche d’interprétation du modèle présente un certain nombre de caractéristiques et d’avantages uniques, qui sont décrits ci-dessous.
La Gestion du changement
Les modifications d'application peuvent être prises en compte plus facilement. De plus, comme le modèle est l'application, Mendix garantit la compatibilité de l'application et du modèle.
Extensions personnalisées
L'extension des modèles avec du code personnalisé est contrôlée de manière plus élégante, car le modèle connaît le code personnalisé et l'inclut dans les contrôles de cohérence, contrairement à l'insertion de code personnalisé dans le code généré. MendixL'approche d'interprétation de modèle de résout le problème fondamental de la génération de code, où les modifications du modèle entreraient en conflit avec les extensions de code personnalisées. De plus, l'absence de modifications personnalisées dans le code généré signifie que l'architecture technique de la plateforme peut être modernisée sans impacter votre modèle. Cela signifie qu'il est plus facile et moins coûteux de bénéficier de l'innovation technique.
Le Monitoring
La surveillance et l'analyse du comportement des applications pendant l'exécution peuvent être configurées de manière plus dynamique et plus flexible que la définition préalable des paramètres de surveillance.
Débogage
Le débogage et la résolution des problèmes deviennent plus faciles pour le développeur, car il n'a pas besoin de comprendre comment le code généré se rapporte au modèle visuel. Le débogage et la résolution des problèmes sont effectués sur le modèle, et non sur le code généré.
Comment La Mendix Mettre en œuvre une architecture sans état ?
Pour garantir l'évolutivité, les performances et la haute disponibilité, Mendix a implémenté un runtime sans état. Cela signifie que n'importe quelle instance d'exécution disponible peut gérer une demande utilisateur, indépendamment des demandes précédentes ou ultérieures.
Pour ce faire, les instances d'exécution disposent d'un état pour la durée d'une demande utilisateur. À la fin d'une demande, tout l'état validé sera enregistré dans la base de données. Tout l'état non validé sera renvoyé au client, ainsi que toutes les autres données dont le client a besoin.
Pour plus d'informations, voir Clusterisé Mendix Runtime dans le Mendix Guide de Studio Pro.
Quels sont les composants du Mendix Durée d'exécution ?
Le Runtime se compose de 2 couches d'architecture principales :
- Exécution du client – au service des clients Web et mobiles
- Exécution du serveur – un environnement d’exécution évolutif pour gérer la logique côté serveur
Architecture
Mendix L'architecture d'exécution se compose de plusieurs composants. L'exécution client est responsable de l'interaction utilisateur et se compose d'une couche de widgets d'interface utilisateur, d'une couche logique pour l'exécution de la logique hors ligne et d'une couche de données pour le stockage hors ligne. L'exécution serveur est responsable de l'exécution de la logique, de la gestion des données, de la communication avec le client et de la mise en œuvre de la sécurité.
Le diagramme ci-dessous présente un aperçu des principaux composants à la fois pour l'exécution du client et pour l'exécution du serveur.

Exécution du serveur
Mendix Server Runtime se compose des principaux composants suivants :
- Serveur HTTP - inclus dans le Mendix Environnement d'exécution pour gérer les demandes du client Web et mobile et pour gérer les demandes de service
- Interface client – responsable de la communication avec les clients Web et mobiles ; l'API est utilisée pour récupérer des données, conserver les modifications de données et exécuter la logique de microflux
- Gestionnaires de requêtes API – Responsable de l'implémentation d'API comme REST, SOAP et oData. L'environnement d'exécution du serveur permet également l'extension avec des gestionnaires de requêtes personnalisés.
- Runtime de base – responsable du démarrage et de l’arrêt corrects de votre application et du chargement des bibliothèques et extensions requises
- Moteur de modèle d'entité – exécute le modèle d’entité et les activités de l’entité
- Moteur Microflow – exécute les microflux (logique) et les activités de microflux.
- Moteur de workflow – exécute les flux de travail, ainsi que les tâches et activités de flux de travail.
- Gestionnaires de requêtes – gère l’exécution des requêtes de base de données sur la base de données connectée à l’application.
- Connecteur de base de données – gère la persistance et la récupération des objets de données depuis la base de données de l'application ; il est également responsable de la création et de la mise à jour des structures de base de données nécessaires à la persistance des données. Le serveur d'exécution prend en charge plusieurs connecteurs de base de données, chacun prenant en charge un système de gestion de base de données différent. (Pour plus de détails, voir la section À quoi servent les bases de données Mendix Soutien? dans le stockage de données)
- Agent de sécurité – gestion des utilisateurs et accès à l’application à l’aide de protocoles standards d’authentification et d’autorisation.
- Gestionnaire d'événements et d'actions – gérer les communications et les processus synchrones et asynchrones.
- Bibliothèques personnalisées – Le Server Runtime permet également des extensions pour enrichir les fonctionnalités et capacités d'exécution standard, en utilisant par exemple des actions Java.
Exécution du client
Mendix Client Runtime se compose des composants suivants :
- Moteur de page – génère l’interface utilisateur et gère l’interaction entre les widgets et le runtime principal du client.
- Moteur Nanoflow – gère les validations de données côté client et la logique côté client plus complexe à l’aide de Mendix nanoflux
- Widgets enfichables L'interface utilisateur est composée de widgets. Ces widgets sont enfichables, ce qui signifie que l'environnement d'exécution client peut être étendu avec des widgets personnalisés.
- Runtime de base – gère la communication avec le Mendix Exécution du serveur utilisant un protocole JSON sécurisé sur HTTP. Gère les données utilisées en front-end ; basé sur le modèle React Flux pour gérer l'état et appliquer les modifications aux composants de l'interface utilisateur.
- Gestionnaire d'événements et d'actions – gestion des communications et des processus asynchrones.
- Stockage local – gestion de la mise en cache (stockage) des données sur le périphérique client.
- Actions personnalisées – Le Client Runtime permet également aux extensions d’enrichir les fonctionnalités et capacités d’exécution standard à l’aide d’actions JavaScript.
Client Web
Le client Web est conçu à l'aide d'une architecture à page unique, dans laquelle une seule page Web JavaScript est chargée dans le navigateur qui mettra ensuite à jour la page et interagira avec le Mendix Exécution requise par les actions de l'utilisateur. Cela peut inclure la récupération de parties de la page Web ainsi que la récupération et le stockage de données. Il est utilisé dans tous les navigateurs Mendix application incluant des applications web progressives.
Client mobile natif
Mendix les applications mobiles natives sont de véritables applications natives fonctionnant sur Réagir Native. Ce framework permet aux applications mobiles créées à l'aide de technologies natives de pointe d'offrir la meilleure expérience utilisateur mobile :
- Accessibilité – les applications peuvent être découvertes dans la boutique d’applications standard de l’appareil, installées sur les appareils mobiles et ouvertes via une icône
- Disponibilité hors ligne – parce que l’application est installée sur des appareils mobiles (y compris toutes les ressources requises et le client natif), les utilisateurs finaux peuvent utiliser votre Mendix application hors ligne et les données d'application pertinentes sont stockées dans une base de données SQLite sur votre appareil
- Interfaces utilisateur natives – les applications natives utilisent des composants d’interface utilisateur natifs, qui présentent des animations fluides et une apparence native.
- Prise en charge des fonctionnalités natives – React Native permet aux applications d’utiliser les fonctionnalités natives de l’appareil, ce qui vous permet à son tour de bénéficier de tous les capteurs disponibles sur votre appareil mobile, comme l’appareil photo et le microphone, par exemple
Pour plus de détails sur Mendix prise en charge des appareils mobiles, voir Applications mobiles natives.