Article
· Jan 6 8m de lecture

Introduction à l'interopérabilité sur Python (IoP) - Partie 1

Interoperability on Python (IoP) (Interopérabilité sur Python) est un projet de validation de concept conçu pour démontrer la puissance du cadre d'interopérabilité InterSystems IRIS lorsqu'il est associé à une approche axée sur Python. IoP exploite Embedded Python (une fonctionnalité d'InterSystems IRIS) pour permettre aux développeurs d'écrire des composants d'interopérabilité en Python, qui s'intègrent de manière transparente à la plateforme IRIS robuste. Ce guide a été conçu pour les débutants et fournit une introduction complète à l'IoP, à sa configuration et aux étapes pratiques pour créer votre premier composant d'interopérabilité. À la fin de cet article, vous comprendrez clairement comment utiliser l'IoP pour créer des solutions d'interopérabilité évolutives basées sur Python. IoP est particulièrement utile pour les développeurs qui travaillent avec InterSystems IRIS ou IRIS for Health, car il simplifie la création de services métier, de processus métier et d'opérations métier qui utilisent Python. Une telle approche réduit la dépendance à ObjectScript (le langage traditionnel pour le développement IRIS), le rendant plus accessible aux développeurs Python.


Pourquoi utilisons-nous IoP?

IoP offre plusieurs avantages aux développeurs:

  1. Dévelopment Python-First: Python est un langage largement adopté, convivial pour les débutants et doté d'un riche écosystème de bibliothèques. IoP permet aux développeurs de tirer parti de leur expertise Python au sein de l'écosystème IRIS.
  2. Interopérabilité simplifiée: IoP résume les configurations complexes basées sur ObjectScript, permettant un développement plus rapide des composants d'interopérabilité.
  3. Applications de santé Healthcare: IoP est particulièrement adapté aux intégrations dans le domaine de la santé, telles que celles impliquant FHIR (Fast Healthcare Interoperability Resources), grâce à la prise en charge robuste des normes de santé par IRIS for Health.
  4. Communauté et Open Source: IoP est disponible sur PyPI et GitHub et bénéficie d'un soutien actif de la communauté, notamment grâce aux contributions de développeurs tels que Guillaume Rongier (développeur évangéliste pour InterSystems).

Conditions préalables

Avant de vous lancer dans IoP, assurez-vous d'avoir les éléments suivants:

  • InterSystems IRIS ou IRIS for Health: une installation locale ou un conteneur Docker exécutant IRIS (la version Community Edition suffit pour les tests).
  • Python 3.10 ou version ultérieure: requis pour exécuter IoP et ses dépendances.
  • Connaissances de base en Python: bonne connaissance des classes, des fonctions et de l'installation des paquets Python.

Dans ce tutoriel, nous utiliserons à l'aide d'une installation IRIS locale pour créer une production InterSystems IRIS comportant une fonctionnalité basée sur Python qui enregistre un message 'Hello World' à la réception d'une requête. Cela devrait démontrer une intégration transparente avec le cadre d'interopérabilité IRIS.

Les étapes suivantes décrivent le processus permettant d'atteindre cet objectif :

  • Étape 1: configuration de l'environnement virtuel
  • Étape 2: installation du paquet IoP
  • Étape 3: configuration des variables d'environnement pour la connexion IRIS
  • Étape 4: initialisation du module IoP dans IRIS à l'aide de l'interface de ligne de commande (CLI)
  • Étape 5: création d'une opération métier Python: exemple Hello World
  • Étape 6: migration des composants IoP vers IRIS
  • Étape 7: aperçu de la production
  • Étape 8: Test du composant d'opération de production

 

Commençons par l'étape 1.

Étape1: configuration de l'environnement virtuel

Tout d'abord, configurez un environnement virtuel Python afin d'isoler les dépendances de votre projet et d'assurer la compatibilité avec IoP et InterSystems IRIS. Un environnement virtuel est un répertoire autonome contenant une version spécifique de Python et les packages requis pour votre projet. Une telle configuration évite les conflits avec d'autres projets Python et rationalise le processus de développement. Pour ce tutoriel, créez un dossier nommé IOP afin d'organiser vos fichiers de projets.

Accédez au dossier IOP et exécutez la commande suivante pour configurer l'environnement virtuel:

python -m venv .venv

Cette commande crée un répertoire .venv dans votre dossier IOP, contenant un interpréteur Python et tous les paquets que vous installez pour votre projet IoP.

Pour activer l'environnement virtuel sous Windows, exécutez la commande suivante:

.venv\Scripts\activate

 

Pour Unix ou MacOS, utilisez la commande suivante:

source .venv/bin/activate

 

Étape 2: installation du paquet IoP

Une fois votre environnement virtuel activé, installez le paquet iris-pex-embedded-python, dépendance principale de votre projet IoP, afin d'activer l'interopérabilité basée sur Python au moyen d'InterSystems IRIS. Exécutez la commande suivante dans votre terminal:

pip install iris-pex-embedded-python

Cette commande installe le paquet iris-pex-embedded-python et ses dépendances à partir du Python Package Index (PyPI) dans votre environnement virtuel. Après l'installation, vous pouvez utiliser le module IoP à l'aide de composants d'interopérabilité basés sur Python, tels que les activités commerciales pour votre projet IoP.

 

Étape 3: configuration des variables d'environnement pour la connexion IRIS

Pour connecter votre projet IoP à InterSystems IRIS, configurez les variables d'environnement en spécifiant les détails de connexion. Pour ce tutoriel, nous allons utiliser une instance IRIS locale au moyen d'un espace de noms compatible avec l'interopérabilité nommé IOP:


Pour Windows:
  


Pour Unix ou MacOS:  

export IRISINSTALLDIR=<installation_directory>
export IRISUSERNAME=<username>
export IRISPASSWORD=<password>
export IRISNAMESPACE=<namespace>


Étape 4: initialisation du module IoP dans IRIS à l'aide de l'interface de ligne de commande (CLI)

L' iop 'interface de ligne de commande (CLI) est un outil puissant pour les développeurs qui travaillent au moyen de la bibliothèque. En plus de --init and --migrate, elle fournit des commandes permettant de gérer vos composants d'interopérabilité directement depuis le terminal.

Certaines des commandes clés sont les suivantes:

  • iop --start: démarre une production définie dans votre fichier settings.py.
  • iop --stop: arrête une production en cours d'exécution.
  • iop --status: vérifie l'état d'une production.
  • iop --log: affiche les journaux de vos composants en cours d'exécution.
  • iop --init: initialise le module IoP dans iris
  • iop --migrate: migre la production et les classes au moyen du fichier de paramètres.

Exécutez la commande CLI IoP ci-dessous pour initialiser le module IoP dans IRIS:

iop --init

Cette commande effectue la configuration nécessaire dans votre instance InterSystems IRIS, lui permettant de localiser et d'utiliser les modules Python que vous créez.
 

Dans le portail de gestion IRIS, accédez à Administration système > Configuration > Classes. Sélectionnez l'espace de noms IOP et cochez la case Afficher les éléments générés pour afficher les classes générées par IoP, par exemple PEX.MyBo. Cela confirmera qu'il a été correctement enregistré dans votre instance IRIS.

  

Étape 5: création d'une opération métier Python: exemple Hello World
 

Créez une opération métier simple "Hello World" pour comprendre la structure de base d'un composant IoP.
Cet exemple illustre comment définir une classe qui traite les messages entrants et enregistre les réponses.
 

Pour ce faire, créez un nouveau dossier nommé hello_world.

mkdir hello_world

Dans ce dossier, créez un nouveau fichier nommé bo.py.

Le cœur de votre composant est une classe Python qui hérite de BusinessOperation,qui prend un message en entrée et renvoie un message en sortie. Entre les deux, elle imprime simplement "Hello World" dans les journaux.

from iop import BusinessOperation

class MyBo(BusinessOperation):
    def on_message(self, request):
        self.log_info("Hello World")



Expliquons ce code.

Tout d'abord, on importe la classe BusinessOperation depuis le module iop .

Ensuite, on génère une classe nommée MyBo qui hérite de BusinessOperation.

Enfin, on effectue un remplacement de la méthode on on_message . Cette méthode est appelée lorsque Business Operation reçoit un message.

Étape 6: migration des composants IoP vers IRIS

Pour migrer les composants IoP vers IRIS, il faut créer un nouveau fichier dans le dossier hello_world, nomméé settings.py.

Ce fichier contient deux paramétres principaux:

  • CLASSES : contient les classes utilisées dans le projet.
  • PRODUCTIONS : comprend le nom de la production utilisé dans le projet.
from hello_world.bo import MyBo

CLASSES = {
    "MyIRIS.MyBo": MyBo
}

PRODUCTIONS = [
        {
            'MyIRIS.Production': {
                "@TestingEnabled": "true",
                "Item": [
                    {
                        "@Name": "Instance.Of.MyBo",
                        "@ClassName": "MyIRIS.MyBo",
                    }
                ]
            }
        } 
    ]


Dans ce fichier, on importe la classe MyBo nommée MyIRIS.MyBo dans IRIS, et on l'ajoute au dictionnaire CLASSES .

Ensuite, on ajoute une nouvelle production à la liste PRODUCTIONS . Cette production conservera l'instance de la classe our MyBo appelée Instance.Of.MyBo.

    Au moyen de la commande iop on peut migrer les composants vers IRIS.

    iop --migrate /path/to/hello_world/settings.py
    

    Cette commande générera la production dans IRIS et y ajoutera la classe MyBo .


    Étape 7: aperçu de la production

    La production suivante a été créée à l'aide de la commande iop --migrate:

    Vous trouverez ci-dessous les détails de l'opération (%classname fait référence au nom de la classe dans notre fichier bo.py, %module fait référence au nom du fichier Python et %classpaths contient le chemin d'accès au fichier Python)
     

      
    Étape 8: Test du composant d'opération de production

    Pour tester la production, sélectionnez le processus métier (Business Operation). Ensuite, accédez à l'onglet Actions et appuyez sur le bouton Test.
    Selectionnez Ens.Request comme type de requête, cliquez sur le bouton Invoke Testing Service (Appel au service de test), puis cliquez sur Visual Trace (Trace visuelle) pour afficher les détails:
     

     

    Conclusion

    L'interopérabilité sur Python (IoP) ouvre le cadre d'interopérabilité InterSystems IRIS pour l'ouverture aux développeurs Python, rationalisant ainsi le processus de création d'intégrations robustes et évolutives. Ce guide vous a guidé à travers l'installation de l'IoP, la configuration d'un environnement de développement et la création d'un processus métier. Au moyen de l'IoP, vous pouvez exploiter la simplicité de Python et la puissance d'IRIS pour connecter des systèmes. Pour plus de détails, consultez la documentation ici: documentation

    Discussion (0)1
    Connectez-vous ou inscrivez-vous pour continuer