Article
· Avr 22 4m de lecture

Installation de solutions ObjectScript sans code source ou en mode déploiement à l'aide du gestionnaire de packages IPM

Salut la communauté!

Souvent, lorsque nous développons des solutions commerciales, il est nécessaire de déployer des solutions sans code source, par exemple afin de préserver la propriété intellectuelle.

L'une des manières d'y parvenir est d'utiliser InterSystems Package Manager.

Ici, j'ai demandé à Midjourney de peindre la propriété intellectuelle d'un logiciel :

 

Illustration numérique de l'espace de travail d'un développeur de logiciels axé sur la protection de la propriété intellectuelle.
La scène montre un développeur de logiciels à son bureau, avec un écran d'ordinateur affichant un code complexe recouvert de verrous et de boucliers lumineux.
Sur le bureau se trouve un document de brevet avec un sceau et un ruban, symbolisant la protection d'innovations logicielles uniques.
A proximité, se trouvent des boîtes de produits logiciels avec des symboles de marque (™ ou ®) et des papiers avec des symboles de droit d'auteur (©), représentant la protection de l'identité de la marque et des œuvres originales.
Le cadre est moderne et bien éclairé, générant un sentiment de sécurité et d'innovation.

Comment y parvenir avec IPM ?

En fait, c'est très simple ; ajoutez simplement la clause Deploy="true" dans l'élément Resource de votre manifeste module.xml. Documentation.

J'ai décidé de fournir l'exemple le plus simple possible pour illustrer son fonctionnement et également de vous donner un modèle d'environnement de développement pour vous permettre de commencer à créer et à déployer vos propres modules sans code source. On y va !

Voici le modèle d'application sur Open Exchange qui contient deux classes:

 dc.deployed.ObjectScript et dc.withsource.ObjectScript 

Comme son nom l'indique, il s'agit d'un exemple de mode déployé sans code source. Une autre classe est installée avec le code source pour illustrer la différence et la possibilité de combiner les modes de déploiement et de code source.

Voici comment vous pouvez l'essayer :

Démarrez IRIS via :

docker run --rm --name iris-demo -d -p 29091:1972 -p 29092:52773   intersystemsdc/iris-community

puis ouvrez le terminal IRIS :

docker exec -it iris-demo iris session iris

Après cela, installez le module :

zpm "install deployed-oscript-template"

Deux classes doivent être installées dans l'espace de noms. Vérifions le code source. Exécutez la commande suivante :

Do ##class(dc.deployed.ObjectScript).Test()

Vous devriez voir:

USER>Do ##class(dc.deployed.ObjectScript).Test()  

It is a deployed class without source code!

Et si vous appelez une autre méthode pour afficher le code source de la classe :

k text do ##class(%Compiler.UDL.TextServices).GetTextAsString($namespace, "dc.deployed.ObjectScript", .text) w text

Vous ne verrez que le nom de classe et les signatures de méthode :

Class dc.deployed.ObjectScript

{



ClassMethod Test() As %Status
{

}



}

Et si nous appelons une autre classe avec le code source, nous verrons :

USER>Do ##class(dc.withsource.ObjectScript).Test()

This class installed with a source code!

 

USER>k text do ##class(%Compiler.UDL.TextServices).GetTextAsString($namespace, "dc.withsource.ObjectScript", .text) w text
Class dc.withsource.ObjectScript

{

ClassMethod Test() As %Status
{

    set a=42
    write "This class installed with a source code!",!

    return a

}



}

 

Vous pouvez profiter de ce référentiel pour tester la fonctionnalité du mode déploiement. Vous trouverez ci-dessous des exemples d'étapes pour le gérer.

Cloner le référentiel du modèle : 

$ git clone https://github.com/intersystems-community/objectscript-docker-template.git

Ouvrez le dossier dans VSCode

, et démarrez Docker dans le terminal de VSCode :

$ docker-compose up -d

Actualisez la connexion depuis VSCode pour vous connecter au conteneur IRIS. Apportez des modifications aux classes IRIS ObjectScript et au module.xml (ou non), puis chargez le code source dans le terminal IRIS :

USER>zpm "load /home/irisowner/dev"

Remplacez le client IPM de la communauté par défaut par le registre de test (il est disponible à tout moment à des fins de test IPM) :

USER>zpm

zpm:USER>repo -n registry -r -url https://test.pm.community.intersystems.com/registry/ -user test -pass PassWord42

et publiez le module dans le registre de test :

zpm:USER>publish deployed-oscript-template

Vous pouvez bien sûr changer le nom du module dans un module.xml (ainsi que les ressources de code que vous publiez).

Vérifiez si le module est publié :

zpm:USER>find

Comme vous pouvez le constater, le module a été publié avec succès.

Si vous souhaitez tester que le module nouvellement publié est installé sans code source, il est facile de le faire avec une autre instance IRIS démarrée dans le conteneur Docker. Cela peut être effectué comme suit. Démarrez IRIS dans le terminal du système d'exploitation :

docker run --rm --name iris-demo -d -p 29091:1972 -p 29092:52773   intersystemsdc/iris-community

Ouvrez le terminal IRIS :

docker exec -it iris-demo iris session iris

Lancez la console IPM :

USER>zpm

Passer au registre TEST :

repo -n registry -r -url https://test.pm.community.intersystems.com/registry/ -user test -pass PassWord42

Installez votre module (modifiez-le si vous avez publié sous un nom différent) :

zpm:USER>install deployed-oscript-template

Testez le fonctionnement du module et du code source comme nous l'avons fait ci-dessus.

Voilà !

Bonnes innovations et déploiements avec IPM et InterSystems IRIS !

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