Artículo
· 24 abr, 2024 Lectura de 4 min

Cómo instalar soluciones ObjectScript sin código fuente o en modo de despliegue mediante el gestor de paquetes IPM

¡Hola, amigos!

A menudo, cuando desarrollamos soluciones comerciales, existe la necesidad de desplegar soluciones sin código fuente, por ejemplo, para preservar la propiedad intelectual.

Una de las formas de conseguirlo es utilizar InterSystems Package Manager.

Aquí he pedido a Midjourney que pinte una propiedad intelectual de software:

¿Cómo se puede lograr esto con IPM?

De hecho, es muy sencillo; basta con añadir la cláusula Deploy="true" en el elemento Resource del manifiesto module.xml. Ver Documentación.

He decidido pasaros el ejemplo más simple posible para ilustrar cómo funciona y también para daros una plantilla de entorno de desarrollo que os permita empezar a construir y desplegar vuestros propios módulos sin código fuente. ¡Allá vamos!

A continuación se muestra la aplicación de plantilla de ejemplo de Open Exchange que contiene dos clases:

 dc.deployed.ObjectScript y dc.withsource.ObjectScript 

Como se deduce del nombre, es un ejemplo de modo despligue sin código fuente. Se utiliza otra clase con código fuente para ilustrar la diferencia y la opción de combinar los modos despliegue y código fuente.

Así es como podéis probarlo:

Iniciad IRIS como:

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

y, a continuación, abrid el terminal IRIS:

docker exec -it iris-demo iris session iris

Después, instalad el módulo:

zpm "install deployed-oscript-template"

Se deberían instalar dos clases en el espacio de nombres. Comprobemos el código fuente. Haced la siguiente llamada:

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

Deberíais ver esto:

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

It is a deployed class without source code!

Y si llamáis a otro método para imprimir el código fuente de la clase:

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

Sólo veréis el nombre de la clase y las firmas de los métodos:

Class dc.deployed.ObjectScript

{



ClassMethod Test() As %Status
{

}



}

Y si llamamos a otra clase con código fuente veréis:

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

}



}

 

Podéis aprovechar el repositorio para probar la función de modo de despliegue. A continuación se muestran los pasos de ejemplo para gestionarlo.

Clonar el repositorio

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

Abrid la carpeta en VSCode e iniciad docker en el terminal VSCode:

$ docker-compose up -d

Refrescad la conexión del VSCode para conectar con el contenedor IRIS. Realizad cambios en IRIS ObjectScript Classes y module.xml (o no lo hagáis) y luego cargad el código fuente en IRIS Terminal:

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

Cambiad el cliente IPM de la comunidad predeterminada al registro de prueba (está disponible todo el tiempo para realizar pruebas de IPM):

USER>zpm

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

y publicad el módulo en el registro de pruebas:

zpm:USER>publish deployed-oscript-template

Por supuesto, podéis cambiar el nombre del módulo en module.xml (así como los recursos de código que publicáis).

Comprobad si el módulo está publicado:

zpm:USER>find

Como se puede ver el módulo fue publicado con éxito.

Si deseáis probar que el módulo recién publicado se instala sin código fuente es fácil de hacer con otra instancia IRIS iniciada en el contenedor docker. Esto se puede realizar de la siguiente manera. Iniciad un contenedor con IRIS en el terminal:

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

Abrid el terminal IRIS:

docker exec -it iris-demo iris session iris

Iniciad la consola IPM:

USER>zpm

Cambiad al registry de IPM para pruebas (test):

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

Instalad vuestro módulo (cambiadlo si lo habéis publicado con otro nombre):

zpm:USER>install deployed-oscript-template

Probad el funcionamiento del módulo y el código fuente como hicimos anteriormente.

Y ya está. 

¡Felices innovaciones y despliegues con IPM e InterSystems IRIS!

Comentarios (0)1
Inicie sesión o regístrese para continuar