L'intégration a toujours été un élément important du développement d'applications. Mais jusqu'à présent, le sujet n'a pas vraiment occupé l'attention du marché du développement d'applications. La maturation des options logicielles natives du cloud et « en tant que service » a accru le besoin d'API qui connectent des applications disparates entre elles pour échanger des données, déclencher des événements et orchestrer des processus de workflow.
At Mendix, nous avons investi dans la plateforme pour faciliter la connexion des applications et des services entre eux de diverses manières, plus récemment avec REST. Et bien que REST soit devenu une norme pour la création d'API et de services Web permettant aux applications de communiquer, il est important de reconnaître d'autres protocoles de services Web. Les cadres et API standardisés restent des options valables en fonction du problème que vous essayez de résoudre. Prenons le temps d'identifier les cas d'utilisation où Mendix joue un rôle dans l'intégration, les principes directeurs pour la construction d'intégrations avec Mendix, et comment la plateforme résout les défis d'intégration pour permettre à votre entreprise de se développer.
Identifier le cas d'utilisation des intégrations
Mendix propose une variété de protocoles, de cadres et d'API pour intégrer des systèmes à Mendix applications et entre des solutions logicielles disparates. Mais avant de choisir une technologie à utiliser pour une intégration, l'identification du cas d'utilisation vous aidera à éclairer la décision que vous prendrez. Passons en revue les cas d'utilisation d'intégration les plus courants et les technologies utilisées pour les satisfaire.
Extension des systèmes existants
Un cas d’utilisation courant pour Mendix consiste à créer des interfaces utilisateur et des applications mobiles modernes sur des systèmes existants. Vous voyez encore beaucoup de services Web basés sur SOAP lors de la connexion à des systèmes existants. MendixLe support du service Web de vous permettra d'utiliser ces systèmes rapidement depuis votre Mendix application en raison de la prise en charge étendue du mappage de messages XML complexes vers Mendix entités.
Il est également courant de créer des applications directement sur des bases de données héritées, voire sur des protocoles personnalisés. Mendix propose un connecteur de base de données pour exécuter des requêtes SQL directement sur des bases de données existantes. Pour les protocoles personnalisés, vous pouvez utiliser le kit de connecteur pour fournir facilement un accès depuis Mendix applications.
Utilisation de services tiers
De plus en plus, les composants et fonctionnalités logiciels sont proposés sous forme de services. Tous les grands fournisseurs de cloud proposent de nombreux services intéressants, de la reconnaissance de texte à la reconnaissance d'images, de la validation d'adresses à l'automatisation complète des processus métier. La majorité d'entre eux utilisent REST comme technologie pour exposer ces services, bien que certaines technologies SOAP soient encore utilisées.
Exposer les API
De nombreuses entreprises participent à écosystèmes numériquesLes API qui exposent les données, les algorithmes, les transactions et les processus métier jouent un rôle crucial dans cet objectif. Les API permettent à un groupe indépendant d'entreprises, de personnes et d'objets de collaborer sur une plateforme numérique standardisée. REST est le principal moyen de mettre en œuvre ces API.
Utiliser des architectures de microservices pour créer des solutions complexes
Pour gagner en rapidité et en agilité dans votre processus de développement logiciel, séparez vos solutions en petits composants qui peuvent être développé et exploité par de petites équipes DevOps autonomes est devenue essentielle.
Le partage de données et de logique entre plusieurs applications nécessite souvent des efforts considérables à mettre en œuvre. Mendix vous aide en générant la plupart des API requises en fonction de vos microflux et entités de modèle de domaine.
Pour les microservices, le découplage de vos composants à l'aide d'un bus de messages ou d'un iPaaS apportera des avantages supplémentaires tels qu'une disponibilité et une évolutivité améliorées. Mendix fonctionne bien avec la plupart des produits de messagerie commerciaux. Les plateformes iPaaS modernes offrent des fonctionnalités de publication et d'abonnement basées sur des protocoles REST. La messagerie push en temps réel est généralement fournie via des webhooks REST.
Les bonnes pratiques en matière de microservices favorisent le concept de points de terminaison intelligents et de canaux muets. En pratique, cela signifie que votre bus de messages est uniquement responsable du transport des messages entre les applications. Les applications elles-mêmes doivent être capables de traduire un message dans le format dont elles ont besoin. MendixLes mappages d'importation et d'exportation de vous permettent de définir facilement de manière visuelle comment convertir les formats de message d'une application à une autre.
Système back-end pour applications front-end et mobiles sur mesure
Développeurs des applications mobiles ont généralement besoin d'un backend pour stocker leurs données et s'intégrer aux systèmes backend. MendixGrâce à la capacité de 's à générer des API REST pour les modèles de domaine, vous pouvez disposer d'un backend pour votre application mobile en 5 minutes. Pas besoin de passer beaucoup de temps à créer un backend, et pas besoin d'apprendre un autre langage de backend (et une autre technologie de base de données) juste pour stocker vos données mobiles.
Mendix ne se limite pas au stockage de données pour vos applications. En raison de son fort support de logique et d'intégration, nous voyons des clients utiliser Mendix en tant que Centre d'intégration numériqueL’ MendixLe backend basé sur le backend récupère les données d'autres applications et services backend, gérant la transformation et la validation des données.
Et le meilleur de tous, créer des pages Web administratives pour gérer vos processus de back-office est un jeu d'enfant avec MendixLa création de ces pages Web de back-office nécessite généralement beaucoup plus d'efforts avec des solutions mBaaS spécialisées.
Des principes directeurs
Comme mentionné ci-dessus, l'un des principaux objectifs de nos installations d'intégration est de se connecter à des systèmes externes. Nous cherchons à rendre cela aussi simple et productif que possible. Cependant, lorsqu'il s'agit de systèmes externes, la productivité ne suffit pas. Le contrôle, l'agilité et la collaboration sont des aspects importants à prendre en compte. Voici comment cela est géré dans le Mendix
Contrôle
Lorsque vous travaillez avec des systèmes que vous ne contrôlez pas, il peut être très important de maîtriser les détails de l'intégration. Vous devez être capable de vous adapter à l'autre côté, car ceux-ci ne sont pas toujours implémentés correctement selon les spécifications, ou il peut s'agir d'anciens systèmes utilisant d'anciennes pratiques.
Cela signifie que vous avez besoin d'un moyen simple et flexible pour convertir les messages entre les systèmes externes et votre Mendix .
In Mendix ceci est géré avec des mappages. Vous pouvez définir des mappages d'importation pour convertir les messages reçus en Mendix objets. Lorsque vous envoyez des objets à des systèmes externes, vous pouvez les convertir à l'aide de mappages d'exportation. Cela fonctionnera aussi bien pour les messages XML que pour les messages JSON. Les mappages sont réutilisables, ce qui signifie que vous pouvez les utiliser pour les services Web, les services REST et pour les intégrations de kits de connecteurs.
La capture d'écran suivante montre un mappage d'importation où un message XML ou JSON contenant des commandes et des lignes de commande sera converti en objets Order et OrderLine. 
Speed
La rapidité ne se résume pas seulement à la productivité brute, mais aussi à la facilité avec laquelle vous pouvez modifier vos applications. Lorsque des systèmes externes dépendent de vos services, ou vice-versa, il est essentiel de pouvoir modifier votre application sans affecter les dépendances externes. Deux outils importants vous aideront ici : le versionnage des API et les contrats explicites sur les messages échangés.
Pour garantir que les messages que vous échangez restent identiques, vous pouvez définir ces messages à l'aide de définitions de messages. Selon le cas d'utilisation, cela peut être effectué à l'aide d'un schéma XML, d'une structure JSON ou d'une définition de message démarrée à partir de l'une de vos entités de modèle de domaine. Lorsque vous apportez des modifications à vos mappages qui ne sont pas compatibles avec vos définitions de messages, vous verrez une vérification de cohérence.
La capture d'écran suivante montre une définition de message démarrée à partir d'une entité. Si vous avez des entités associées, vous pouvez les inclure pour définir le message agrégé, par exemple, des commandes avec des lignes de commande.

La gestion des versions est intégrée à Rest publish. Vous pouvez spécifier une version pour votre API et l'intégrer à votre adresse de point de terminaison. Lorsque vous devez fournir une API avec un comportement différent, vous fournissez une nouvelle version simplement en copiant la définition d'origine et en modifiant le numéro de version. Cela vous permet d'exécuter deux versions côte à côte jusqu'à ce que tout le monde ait migré vers la nouvelle version.

La collaboration
L'intégration nécessite généralement la collaboration d'autres personnes, à l'intérieur comme à l'extérieur de votre organisation. Nous souhaitons rendre cette tâche aussi simple que possible, par exemple en fournissant des mappages visuels pour définir comment convertir les données externes en données internes. La nature visuelle de ces mappages vous permet de collaborer avec n'importe qui dans votre organisation, même avec des personnes non techniques.
Un autre outil facilitant la collaboration est la documentation et les contrats générés automatiquement pour vos services, afin que les autres puissent les comprendre et les utiliser facilement. Chaque API REST que vous implémentez inclura automatiquement un document OpenAPI, décrivant toutes les ressources et méthodes fournies par votre API. Si vous incluez de la documentation et des exemples de valeurs dans votre définition de message, comme indiqué dans la section précédente, ceux-ci seront également inclus dans votre documentation OpenAPI. Cela permettra à votre utilisateur de commencer à utiliser votre API très facilement.

De même, chaque service Web créé avec Mendix génère une page de documentation basée sur WSDL.
Outils
Maintenant que nous avons examiné les principaux cas d'utilisation de l'intégration et passé en revue les principes directeurs pour la création d'intégrations, passons en revue les principaux outils permettant de les mettre en œuvre. MendixVoici la liste :
- Services Web – Mendix fournit un support prêt à l'emploi pour la publication et la consommation de services Web basés sur SOAP.
- Services REST – Publication et consommation REST pour les microflux et les entités.
- oData – Entités de publication à utiliser dans les outils BI et d’analyse de données basés sur la norme OData.
- Kit de connecteurs – Intégration via une logique Java personnalisée.
- Connecteurs – Intégrations personnalisées utilisant le kit de connecteurs disponible sur l’App Store.
Les services Web
Mendix prend en charge à la fois la publication et la consommation de services Web :
- Vous pouvez publier des microflux en tant qu’opérations de service Web.
- Vous pouvez consommer des services Web en important leur contrat WSDL.
Créer un service Web est aussi simple que de sélectionner « Publier en tant qu'opération de service Web… » dans l'éditeur de microflux. Lorsque vous transformez un microflux en opération de service Web, tous les paramètres d'entrée et la valeur de retour du microflux seront automatiquement convertis en messages d'entrée et de sortie pour l'opération.

Vous avez un contrôle total sur le message, vous pouvez sélectionner les attributs à inclure et les noms à utiliser, comme illustré dans la capture d'écran suivante. Cela vous permet de garantir la stabilité du contrat avec le monde extérieur, tout en vous permettant d'apporter des modifications à votre application. Et en parlant de contrat, l'utilisation de ces informations suffit à générer automatiquement le WSDL et la documentation.

Lorsque vous avez un WSDL, soit à partir d'un Mendix application ou à partir d'un 3rd application de fête, vous pouvez facilement l'importer dans votre Mendix App. Il vous suffit de créer un nouveau document « Consumed Web Service », de spécifier l'emplacement de votre WSDL et vous êtes prêt à partir.

Vous pouvez appeler n'importe quelle opération dans le service Web consommé en utilisant l'activité Appeler le service Web dans un microflow. Lorsque vous appelez un service Web externe, vous pouvez utiliser des mappages d'importation et d'exportation pour garantir que vos modèles de domaine sont facilement convertis vers et depuis tous les messages que vous devez échanger avec le service.

Les mappages d'importation et d'exportation offrent un moyen puissant de convertir des données externes en Mendix objets et vice-versa. Voici quelques-unes des fonctionnalités qu'il prend en charge :
- Détecte et crée automatiquement des associations entre les objets.
- Prise en charge de l'héritage et d'autres types XML complexes.
- Peut générer les entités du modèle de domaine requises à partir du schéma WSDL ou XML.
- Peut être utilisé pour créer de nouveaux objets ou des objets existants.
- Vous pouvez utiliser des microflux pour convertir des attributs.
- Vous pouvez spécifier quels attributs du message doivent être traités comme des attributs clés.
- Prise en charge des définitions de schéma XML complexes comme la norme Acord.
Ces mappages peuvent être réutilisés pour Xml et Json et pour les Webservices, Rest et Connectors.

Services REST
Nous sommes très fiers de ce que vous pouvez faire dans Mendix avec REST publish. Avec les améliorations de productivité les plus récentes, nous pouvons désormais affirmer avec certitude que Mendix est le moyen le plus simple et le plus productif de créer des API.
Juste dans la version de ce mois-ci, nous avons ajouté :
- Générer une API REST complète pour une entité à partir du modèle de domaine.
- Générez l'API REST complète en faisant glisser une entité depuis le connecteur.
- Générez une définition de message par défaut pour une entité en la faisant glisser du connecteur vers une définition de message.
- Générer des mappages par défaut à partir d'une définition de message.
Grâce à ces améliorations de productivité, vous pouvez désormais créer une API REST pour votre modèle de domaine en quelques secondes, comme illustré ci-dessous.

De nos jours, la plupart des services les plus récents utilisent REST au lieu des services Web. L'utilisation de REST nécessite un léger changement dans la conception de vos services. Les services Web consistent à appeler et à fournir un accès à une logique distante. Dans REST, vous concevez un modèle de données qui peut être utilisé par des applications externes. Les objets de votre modèle de domaine sont appelés ressources. Les opérations sur vos ressources sont standardisées :
- Lire ou trouver une ou plusieurs ressources existantes (GET)
- Créer une nouvelle ressource (POST)
- Modifier une ressource existante (PUT)
- Supprimer une ressource existante (DELETE)
Vous verrez également cette approche dans les contrats pour les services REST comme Swagger et OpenApi : d'abord, les ressources seront répertoriées, puis les opérations sur ces ressources.
Le Mendix La fonctionnalité de publication REST suit l'approche utilisée par OpenApi où vous définissez d'abord vos ressources, puis l'opération sur ces ressources. Vous avez le contrôle total de votre API REST car vous définissez les ressources, les messages échangés et les microflux qui implémentent les opérations.
Alternativement, vous pouvez laisser Mendix gérez tout cela automatiquement. Exposez simplement votre entité à partir de votre modèle de domaine ou faites glisser une entité sur la section des ressources d'un document REST publié, et tout ce qui est nécessaire sera généré pour vous, y compris la sécurité. Toutes les règles de sécurité que vous définissez sur vos entités sont automatiquement utilisées par votre API REST.
Que vous souhaitiez un contrôle total de l'API que vous implémentez ou que vous souhaitiez simplement générer un backend pour votre application mobile en 5 minutes, Mendix peut le faire.

En examinant l’implémentation de vos opérations REST, vous pouvez utiliser n’importe quel microflux comme implémentation d’une opération REST. Mendix détectera automatiquement les paramètres dont vous avez besoin et tous les objets nécessitant un mappage d'importation ou d'exportation. Cela peut être spécifié dans la boîte de dialogue Opération. Vous pouvez également utiliser l'envoi et la réception de données binaires ou de fichiers de documents, par exemple, si vous souhaitez fournir une opération pour récupérer un document PDF.
Les captures d'écran suivantes utilisent le paramètre facultatif httpResponse que vous pouvez utiliser pour remplacer le code d'état ou le message d'état HTTP. Si nécessaire, vous pouvez également spécifier que vous souhaitez accéder à la requête http, par exemple pour déterminer la valeur des valeurs d'en-tête http.

Comme déjà montré plus tôt dans le post, Mendix fournira automatiquement un contrat OpenAPI et une page de documentation pour chaque service REST que vous créez. Si vous fournissez des exemples de valeurs dans vos définitions de message, les utilisateurs de votre service REST n'auront littéralement qu'à appuyer sur « Exécuter » pour voir le résultat de l'appel de votre service. Nous ne pouvons pas faire plus simple que cela.

L'appel d'un service REST est également simple. Tout d'abord, vous définissez à quoi ressemblent les ressources externes que vous allez utiliser en créant une définition de message. Le moyen le plus simple consiste généralement à créer une structure JSON en copiant et en collant un exemple de message JSON. Mendix déterminera automatiquement la structure de votre message et les types d'attributs applicables, comme illustré ci-dessous.

Ensuite, définissez les mappages pour importer et exporter des données vers le service REST externe. Cela ressemble à l'exemple ci-dessus. Une fonctionnalité qui n'a pas encore été mentionnée est que vous pouvez générer des entités de modèle de domaine au cas où vous ne disposeriez pas déjà des entités appropriées. C'est probablement le cas lorsque vous avez défini un message basé sur un exemple JSON.
Enfin, utilisez l'activité « Call Rest » dans les microflows pour appeler l'API REST. Il s'agit simplement de fournir l'URL de l'API et, dans les onglets de requête et de réponse, vous pouvez définir les mappages que vous souhaitez utiliser.

oDonnées
Mendix fournit actuellement oData dans le modélisateur en tant que fonction d'intégration pour un cas d'utilisation spécifique : aportando Mendix données d'application pour l'analyse. À côté de cela, Mendix fournit également une intégration SAP basée sur oData, mais cela est basé sur la technologie Connector Kit, comme décrit dans la section suivante.
OData fournit une interface similaire à celle que vous pouvez attendre d'une base de données. Il dispose de fonctionnalités d'insertion, de sélection, de mise à jour et de suppression sur les ressources. OData y parvient en standardisant un langage de données sur Rest. L'avantage de cela est que tous les outils clients comprennent à l'avance comment travailler avec les données que vous exposez.
Les outils d'analyse de données qui prennent en charge OData vont de Microsoft Excel à Tableau, aux outils ETL, aux outils de requête de base comme LINQPad, et même à outils d'analyse statistique comme R. Cela signifie que vous pouvez exposer vos données à partir de Mendix une fois, et tous ces outils peuvent fonctionner directement avec les données de votre application.
Pour exposer votre Mendix données via OData, sélectionnez « Exposer en tant que ressource OData… » sur votre entité dans un modèle de domaine.

Ensuite, vous pourrez spécifier les attributs que vous souhaitez exposer. Vous pouvez également spécifier qui peut accéder à ces données. Bien entendu, toutes les règles d'accès aux entités spécifiées sur les entités de votre modèle de domaine s'appliquent toujours lors de la récupération de données via OData.

Vous pouvez désormais ouvrir l'entité exposée directement dans un outil comme Microsoft Excel ou PowerBI et disposer toujours d'informations à jour à partir d'un Mendix .
Trouvez plus d'informations sur Mendix Prise en charge OData et comment utiliser R pour obtenir un aperçu des données de votre Mendix applications.
Kit de connecteur
Si l'une des fonctions d'intégration prêtes à l'emploi ne répond pas à vos besoins, vous pouvez utiliser le Mendix Kit de connecteurs pour implémenter une intégration personnalisée. Le kit de connecteurs vous permet d'implémenter des intégrations personnalisées. Activités Microflow utilisant le Mendix API Java. Vous pouvez réutiliser la plupart des bibliothèques Java tierces pour fournir toute intégration dont vous avez besoin. Les activités Microflow que vous implémentez seront entièrement intégrées dans la boîte à outils, de sorte que toutes les Mendix le développeur peut les utiliser sans connaissance Java.
Pour créer une intégration personnalisée avec Java, créez une action Java personnalisée. Un fichier source Java sera généré pour votre action Java. Ici, vous pouvez fournir votre implémentation Java ou appeler des bibliothèques Java existantes. Pour faciliter l'utilisation de votre activité de microflux client par d'autres développeurs, vous pouvez définir la manière dont votre activité s'affichera dans la boîte à outils de l'éditeur de microflux, comme illustré ci-dessous.

Les utilisateurs de votre intégration personnalisée verront désormais l’activité apparaître dans la boîte à outils Microflow, comme toute autre activité Microflow.

Si vous souhaitez que d'autres projets bénéficient également de votre intégration personnalisée, vous pouvez publier le module source sur le Mendix Magasin d'applications.
Trouvez plus d'informations sur le Mendix Kit de connecteurs :
- https://docs.mendix.com/howto/extensibility/howto-connector-kit
- https://www.mendix.com/blog/introducing-mendix-connector-kit/
- https://www.mendix.com/blog/writing-code-in-a-low-code-world/
- https://apidocs.mendix.com/7/runtime/
Connecteurs
Un grand nombre de ces intégrations personnalisées basées sur le kit de connecteurs existent déjà dans le Mendix Magasin d'applications.
Connecteur SAP OData
Le Connecteurs SAP oData vous permettent de construire facilement Mendix applications sur SAP. Le créateur de modèle OData générera un Mendix modèle de domaine basé sur ce que vous avez exposé dans votre SAP API Hub, de sorte que toutes les personnalisations de vos API SAP seront également incluses dans votre Mendix Application.
Liens Appstore :
- https://appstore.home.mendix.com/link/app/74525/Mendix/SAP-OData-Connector
- https://appstore.home.mendix.com/link/app/105622/Mendix/SAP-OData-Model-Creator
Connecteur de base de données
Grâce au connecteur de base de données, vous pouvez exécuter des requêtes SQL et des appels de procédures stockées sur des bases de données existantes. Le connecteur exécutera la requête et convertira les données récupérées en Mendix objets. L'Appstore contient également un connecteur Oracle avec prise en charge des extensions spécifiques à Oracle telles que les procédures pl/sql, les curseurs de référence et les types définis par l'utilisateur.

Lien Appstore :
- https://appstore.home.mendix.com/link/app/2888/Mendix/Database-Connector
- https://appstore.home.mendix.com/link/app/8683/Mendix/Oracle-Connector-(Beta)
Connecteur Apache Kafka
Apache Kafka est une plate-forme de streaming distribuée, spécifiquement destinée à l'échange de gros volumes de messages entre différentes applications et au traitement, par exemple, des données de capteurs IoT. Utilisation du connecteur Kafka Mendix Les applications peuvent envoyer et recevoir des messages via Kafka.
Apprentissage automatique et connecteurs cognitifs
Il existe un certain nombre de connecteurs dans le Mendix Appstore qui vous permet d'utiliser l'apprentissage automatique à des fins spécifiques. Parmi les exemples, citons l'identification d'images et de textes, les conversions automatisées avec des chatbots et la détection d'émotions dans un texte.
Connecteur Redis
Redis est une base de données en mémoire qui peut être utile lors de la création d'une application multi-instance distribuée. Redis peut être utilisé comme cache de données et courtier de messages.
Lien Appstore :
- Connecteur Redis : https://appstore.home.mendix.com/link/app/3087/Appronto/Redis-connector
Connecteurs IOT
Outre le connecteur Kafka mentionné précédemment, il existe d'autres connecteurs qui peuvent également être utilisés avec les données IoT :
- Client MQTT : https://appstore.home.mendix.com/link/app/3066/Mendix/MQTT-Client
- Connecteur AWS IoT : https://appstore.home.mendix.com/link/app/2868/Mendix/AWS-IoT-Connector
- Connecteur KPN Lora : https://appstore.home.mendix.com/link/app/2747/First-Consulting/KPN-LoRa-Connector
À mesure que la demande d’applications augmente, le besoin de les connecter les unes aux autres augmentera pour prendre en charge la diversité des cas d’utilisation que les applications devront satisfaire. Mendix propose des options d'intégration flexibles liées à des principes directeurs qui facilitent la création, la gestion et l'exposition de nouvelles connexions à la variété des systèmes et services au sein de votre organisation. En fournissant aux développeurs les bons outils et options pour les aider à créer des intégrations, ils bénéficient de la flexibilité dont ils ont besoin pour créer et connecter des applications avec rapidité, collaboration et contrôle.