Buscar

Limpiar filtro
Anuncio
Jose-Tomas Salvador · 24 nov, 2022

Lanzamiento de la interfaz de usuario web del Registro de Contenedores de InterSystems

InterSystems anuncia el lanzamiento de la interfaz de usuario web del Registro de Contenedores de InterSystems (ICR por sus siglas en inglés). Esta herramienta ha sido diseñada para que sea más sencillo descubrir, acceder y usar las muchas imágenes alojadas en el Registro de Contenedores. La IU del Registro de Contenedores de InterSystems está disponible en: https://containers.intersystems.com/contents Contenedores de la Community Edition Al visitar la interfaz de usuario del ICR, se tiene acceso a los contenedores de InterSystems disponibles públicamente, incluyendo los contenedores de la Community Edition de IRIS. En el menú de la izquierda se puede seleccionar la familia de productos, después el contenedor y por último elegir la versión específica. Contenedores de la Enterprise Edition Los contenedores privados, incluyendo los de la Enterprise Edition de IRIS, se pueden ver haciendo clic en el botón Login. Una vez iniciada sesión, en el menú de la izquierda aparecerán los contenedores a los que se tiene acceso. ¡A por ello!
Anuncio
Esther Sanchez · 27 ene, 2022

Webinar en español: "Novedades 2022 de InterSystems y de la Comunidad de Desarrolladores"

¡Hola desarrolladores! Os invitamos a un nuevo webinar en español: "Novedades 2022 de InterSystems y de la Comunidad de Desarrolladores", el jueves 10 de febrero, a las 4:00 PM (CET). El webinar está dirigido a cualquier persona interesada en el uso masivo de datos y el Big Data. Durante la presentación, mostraremos las novedades de InterSystems IRIS para este año que acaba de empezar. Además, revisaremos los mejores artículos publicados en la Comunidad durante 2021 y ofreceremos algunas ideas sobre cómo se puede ayudar y colaborar en la Comunidad. ¿Y qué más? ¡Os contaremos todos los detalles del Concurso de Artículos Técnicos en el que todos los que participen tendrán premio! ¡Os esperamos! 🗣Ponente: @David.Reche, Sales Engineer en InterSystems Iberia. ➡️ Podéis registraros aquí >> ¡El webinar ya es este jueves! Recordad que @David.Reche mostrará todas las novedades de InterSystems para este año y también las novedades de la Comunidad, el concurso de artículos técnicos... Si se os ha olvidado apuntaros... ¡aún podéis inscribiros! Registro >> ¿Ansiosos por conocer las novedades de la plataforma de Big Data más innovadora? ¡El webinar empieza en 30 min.! 😎 ¡Os esperamos!
Anuncio
Esther Sanchez · 11 feb, 2022

Nuevo vídeo: Novedades 2022 de InterSystems y de la Comunidad de Desarrolladores

¡Hola Comunidad! Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación! David Reche contó todas las novedades de la Comunidad y del Concurso de Artículos Técnicos y Alberto Fuentes mostró las novedades que trae InterSystems IRIS este año. Así que... si queréis estar al día y conocer lo nuevo de InterSystems, ¡no os perdáis el vídeo! ⏯ Novedades 2022 de InterSystems y de la Comunidad de Desarrolladores Por cierto, en las listas de reproducción del canal de YouTube de la Comunidad de Desarrolladores en español podéis ver todos los webinars que hemos realizado (¡ya llevamos dieciséis!), varios tutoriales, trucos, demos... ¡Echadle un ojo y dadle al play! ▶️
Artículo
Eduardo Anglada · 14 feb, 2022

Subir un fichero a InterSystems IRIS usando la API REST

Subir un fichero a IRIS empleando la API REST es sencillo. Primero, usando un cliente Postman, enviamos el fichero: P.S.: Vemos que es un "form" de tipo "multipart" con el nombre "file". Todo esto lo aprendemos viendo la petición http: POST /image-analyzer/postFile HTTP/1.1 Host: localhost:52773 Content-Length: 213 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="/C:/Users/yurim/OneDrive/Imagens/salesschema.png" Content-Type: image/png (data) ----WebKitFormBoundary7MA4YWxkTrZu0gW Después hacemos la API REST para obtener y guardar el fichero: P.S.: hay que prestar especial atención a que la carpeta de destino tenga los permisos de escritura adecuados. Class dc.upload.UploadRESTApp Extends %CSP.REST { Parameter CHARSET = "utf-8"; Parameter CONVERTINPUTSTREAM = 1; Parameter CONTENTTYPE = "application/json"; Parameter Version = "1.0.0"; Parameter HandleCorsRequest = 1; XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ] { <Routes> <!-- post image --> <Route Url="/postFile" Method="POST" Call="PostFile" /> </Routes> } ClassMethod PostFile() As %Status { //try to do the actions try { Set info = {} Set source = %request.GetMimeData("file") Set destination=##class(%Stream.FileBinary).%New() Set destination.Filename="/opt/irisbuild/output/"_source.FileName set tSC=destination.CopyFrom(source) //reader open the file set result=destination.%Save() set info.return = result set info.message = "File saved into /opt/irisbuild/output/"_source.FileName Set %response.ContentType = ..#CONTENTTYPEJSON Set %response.Headers("Access-Control-Allow-Origin")="*" Write info.%ToJSON() Set tSC=$$$OK //returns error message to the user } catch e { Set tSC=e.AsStatus() Set pOutput = tSC } Quit tSC } }
Anuncio
David Reche · 7 mar, 2022

Nuevas versiones de mantenimiento de InterSystems IRIS, Ensemble y Caché

Ya están disponibles nuevas versiones de mantenimiento de: Caché 2018.1.6, Ensemble 2018.1.6 y HSAP 2018.1.6 InterSystems IRIS 2020.1.2, IRIS for Health 2020.1.2 y HealthShare Health Connect 2020.1.2 InterSystems IRIS 2021.1.1, IRIS for Health 2021.1.1 y HealthShare Health Connect 2021.1.1 Los kits para la instalación y los contenedores se pueden descargar de la página de distribución de software del Centro de Soporte Internacional (WRC). Las imágenes de los contenedores para las Enterprise Editions de InterSystems IRIS e IRIS for Health y todos los componentes correspondientes están disponibles en el Registro de Contenedores de InterSystems. Son versiones de mantenimiento con muchas actualizaciones en una gran variedad de áreas. Para mas información sobre las correcciones incluidas en estas versiones, consulta por favor la documentación de cada versión, que incluye las Notas de la Versión y el listado de Actualizaciones, un Listado de Cambios de la Versión, la Referencia de Clases y toda una serie de guías, referencias, tutoriales y artículos. Toda la documentación se encuentra en docs.intersystems.com. Los números de compilación de estas versiones se muestran en la siguiente tabla: Versión Producto Nº de compilación 2018.1.6 Caché y Ensemble 2018.1.6.717.0 2018.1.6 Caché Evaluation 2018.1.6.717.0su 2018.1.6 HealthShare Health Connect (HSAP) 2018.1.6HS.9063.0 2020.1.2 InterSystems IRIS 2020.1.2.517.0 2020.1.2 IRIS for Health 2020.1.2.517.0 2020.1.2 HealthShare Health Connect 2020.1.2.517.0 2020.1.2 IRIS Studio 2021.1.2.517.0 2021.1.1 InterSystems IRIS 2021.1.1.324.0 2021.1.1 IRIS for Health 2021.1.1.324.0 2021.1.1 HealthShare Health Connect 2021.1.1.324.0 2021.1.1 IRIS Studio 2021.1.1.324.0 Las imágenes de los contenedores de InterSystems IRIS e IRIS for Health y todos los componentes correspondientes están disponibles desde el Registro de Contenedores de InterSystems usando los siguientes comandos de la versión 2020.1.2: docker pull containers.intersystems.com/intersystems/iris:2020.1.2.517.0 docker pull containers.intersystems.com/intersystems/irishealth:2020.1.2.517.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2020.1.2.517.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2020.1.2.517.0 Las imágenes del contenedor para la versión 2021.1.1 son los siguientes: docker pull containers.intersystems.com/intersystems/iris:2021.1.1.324.0 docker pull containers.intersystems.com/intersystems/irishealth:2021.1.1.324.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2021.1.1.324.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2021.1.1.324.0 Puedes consultar la lista completa de imágenes disponibles en la documentación.
Anuncio
Esther Sanchez · 6 abr, 2022

InterSystems en la Conferencia "J On The Beach" en Málaga

Hola desarrolladores: Como ya os anunciamos hace unos días, InterSystems va a ser uno de los patrocinadores de la conferencia Internacional "J On The Beach" que tendrá lugar en Málaga los días 28-29 de abril. El primer día de la Conferencia @David.Reche y @Eduardo.Anglada darán una ponencia titulada "Capitán Kirk, descubierto un exoplaneta en la ruta usando AutoML" Y, además, InterSystems contará con un stand que, como siempre, tendrá sorpresas... 😁 ¿Quieres saber qué han preparado?? Sigue leyendo... Es que en InterSystems les ha embargado la nostalgia, se han subido a la nave estelar Enterprise y la han programado para aparecer en plenos años 80 este mes de abril. 😲 En Málaga, Eduardo y David le explicarán al capitán Kirk cómo han descubierto un exoplaneta en la ruta y, para entretenerse, contarán con el juego estrella de la época: ¡dos auténticas máquinas arcade! Así que... si quieres revivir la emoción de las partidas en los Recreativos, ¡no dejes de visitar el stand de InterSystems! Podrás participar en un Concurso de Arcade Clásico y ganar estupendos premios. ¿Te apuntas? 🕹️ En esta página web tienes toda la información sobre el Concurso de Arcade Clásico: InterSystems en J On The Beach ¡Os esperamos a todos! ¿No sabes qué es "J On The Beach"? "J On The Beach" es una Conferencia Internacional sobre Big Data, para desarrolladores y DevOps. Incluye ponencias, charlas, workshops, un hackaton... Y cuenta con la presencia de prestigiosos profesionales de grandes empresas como Microsoft, Cisco, Accenture, AWS, Oracle, MongoDB... Para más información, consulta su página web, donde te cuentan todos los detalles sobre el evento: www.jonthebeach.com
Artículo
Jose-Tomas Salvador · 20 mayo, 2022

InterSystems IRIS Business Intelligence: Construir vs Sincronizar

InterSystems IRIS Business Intelligence te permite mantener actualizados tus modelos analíticos o cubos de varias formas. Este artículo tratará sobre Construir/Generar vs Sincronizar. Hay maneras de actualizar manualmente los cubos, pero son casos muy especiales y casi siempre los cubos se mantienen actualizados por medio de la (Re)construcción o la sincronización. ¿Qué es Construir? La generación o construcción empieza eliminando todos los datos del cubo. Esto garantiza que el cubo se empieza a construir partiendo de cero, limpio. El proceso de construcción pasa por todos los registros especificados por la clase base u origen de datos. Puede coger todos los registros de la clase base o puede coger un conjunto restringido de registros de ella. A medida que el proceso pasa por los registros especificados, los datos requeridos por el cubo son insertados en él. Finalmente, una vez que todos los datos han sido insertados en el cubo, se generan los índices. Durante este proceso, el cubo no está disponible para ser consultado. La (re)construcción se puede ejecutar con un hilo de ejecución o con varios hilos. Puede ser iniciada tanto por el UI como por Terminal. El UI será multi-hilo por defecto. Si se ejecuta desde terminal, también se hará por defecto con varios hilos, a menos que se pase un parámetro. En la mayoría de los casos, es posible esta (re)construcción multi-hilo. Hay casos específicos en los que no es posible y entonces tiene que hacerse con un sólo hilo de ejecución. ¿Qué es Sincronizar? Si la clase base u origen de los datos de un cubo es DSTIME Enabled (ver la documentación), puede ser sincronizada. DSTime permite modificaciones en la clase base que se va a monitorizar. Cuando se ejecuta la sincronización, solo los registros que han sido modificados serán insertados, actualizados o eliminados, según sea necesario dentro del cubo. Mientas la sincronización se está ejecutando, el cubo se mantiene disponible para consulta. Una sincronización solo puede ser iniciada desde Terminal. Puede ser programada en el Cube Manager a través de la IU, pero no puede ser ejecutada directamente desde la IU. Por defecto, la sincronización se ejecuta con un hilo de ejecución, pero hay un parámetro para iniciar la sincronización multi-hilo. Siempre es una buena idea construir al principio tu cubo y después se puede mantener actualizado con la sincronización si se quiere. Resumen de diferencias (Re)Construcción Sincronización ¿Qué registros se modifican? Todos Solo los registros que han cambiado ¿Disponible en UI? Sí No Multi-Hilo Sí, por defecto Sí, no por defecto Cubo disponible para consultas No(*1) Sí Require modificar la clase base No Sí, DSTIME debe estar habilitado Construir - Novedades (*1) Desde InterSystems IRIS 2020.1, Selective Build es ahora una opción disponible cuando (re)construyes tu modelo. Esto permite al cubo estar disponible para consultas mientras se reconstruye de manera selectiva. Para más información, consulta Empezando con Selective Build Sincronizar - Novedades Desde InterSystems IRIS 2021.2, DSTIME tiene una nueva opción "CONDITIONAL". Permite implementaciones para activar DSTIME con condiciones, para sitios/instalaciones específicas. Este artículo está etiquetado como "Mejores prácticas" ("Best practices"). Los artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems.
Artículo
Ricardo Paiva · 23 jun, 2022

Conector Power BI para InterSystems IRIS. Parte I

En un mundo en constante cambio, las empresas deben innovar para ser competitivas. Esto asegura que tomarán decisiones con agilidad y seguridad, aspirando a obtener buenos resultados con mayor exactitud. Las herramientas de Business Intelligence (BI) ayudan a las compañías a tomar decisiones inteligentes en vez de confiar en la "prueba y error". Estas decisiones inteligentes pueden ser la diferencia entre el éxito y el fracaso en el mercado. Microsoft Power BI es una de las herramientas de Business Intelligence líderes. Con unos pocos clics, Power BI permite a los gerentes y analistas explorar los datos de la compañía. Esto es importante porque cuando es fácil accceder y visualizar los datos, es más probable que se usen para tomar decisiones. Power BI incluye una amplia variedad de gráficos, cuadros, tablas y mapas. Por eso, siempre se puede encontrar algún tipo de gráfico perfecto para cada tipo de datos. Las herramientas de BI, sin embargo, solo son tan útiles como los datos que las respaldan. Power BI soporta muchas fuentes de datos e InterSystems IRIS es una de ellas. Como Power BI ofrece una interesante forma de explorar los datos almacenados en IRIS, vamos a analizar cómo utilizar juntas estas dos extraordinarias herramientas. Este artículo explica cómo usar juntos IRIS Tables y Power BI, con datos reales. En una segunda parte, analizaremos Power BI con IRIS Cubes. Prerrequisitos y puesta en marcha Necesitarás lo siguiente para empezar: InterSystems IRIS Data Platform Microsoft Power BI Desktop (versión de abril 2019 o más reciente) InterSystems Sample-BI data Usaremos InterSystems IRIS Data Platform, por lo que necesitarás acceso a una instalación de IRIS. Puedes descargar una versión de prueba si la necesitas. Hay dos formas de instalar Microsoft Power BI Desktop. Puedes descargar un instalador o instalarlo a través de Microsoft Store. Ten en cuenta que si estás ejecutando Power BI desde un equipo diferente al que tenías cuando instalaste InterSystems IRIS, necesitarás instalar los drivers ODBC de InterSystems IRIS en esa máquina por separado. Para crear un panel de control (dashboard) en Power BI, necesitaremos datos. Usaremos el conjunto de datos HoleFoods ofrecido por InterSystems aquí en GitHub. Para continuar, clona o descarga el repositorio. En IRIS, he creado un namespace llamado SamplesBI. No es obligatorio, pero si quieres crear un nuevo namespace, en el IRIS Management Portal, ve a System Administration > Configuration > System Configuration > Namespace y haz clic en New Namespace. Introduce un nombre, después crea un fichero de datos o utiliza uno existente. En el Terminal de InterSystems IRIS, introduce el namespace al que quieres importar los datos. En este caso, SamplesBI: Ejecuta $System.OBJ.Load() con la ruta completa de buildsample/Build.SampleBI.cls y las flags de compilación "ck": Ejecuta el método Build de la clase Build.SampleBI, indica la ruta completa a los ficheros samples: Cómo conectar Power BI con IRIS Ahora es el momento de conectar Power BI con IRIS. Abre Power BI y haz clic en "Get Data". Elige "Database" y verás el conector de InterSystems IRIS: Introduce la dirección del servidor. La dirección del servidor es la dirección IP del servidor para tu instancia de InterSystems IRIS (localhost en mi caso), el Port es el puerto del superservidor de la instancia (la de IRIS por defecto es 57773), y el Namespace es donde se localizan los datos de tu HoleFoods. En el modo Data Connectivity, elige "DirectQuery", lo que asegura que siempre se ven datos actuales. A continuación, introduce el username y password para conectar con IRIS. Los predeterminados son "_SYSTEM" y "SYS". Se pueden importar tanto las tablas como los cubos generados que has creado en IRIS. Empecemos importando unas tablas. En Tablas, HoleFoods, marca: Country Outlet Product Region SalesTransaction ¡Ya casi estamos! Para informar a Power BI sobre la relación entre nuestras tablas, haz clic en "Manage Relationships". Después, haz clic en New. Vamos a establecer dos relaciones: "SalesTransaction" y "Product relationship". Arriba, selecciona la tabla "SalesTransaction" y haz clic en la columna "Product". Después, selecciona la tabla "Product" y haz clic en la columna "ID". Verás que Cardinality cambia automáticamente a "Many to One (*:1)" (Muchos a uno). Repite este paso para: "SalesTransaction(Outlet)" con "Outlet(ID)" "Outlet(Country)" con "Country(ID)" "Country(Region)" con "Region(ID)": Ten en cuenta que estas relaciones se importan automáticamente si se expresan como Foreign Keys. Power BI también tiene una Vista Relaciones. Haciendo clic en el botón a la izquierda de la aplicación, se mostrará nuestro modelo de datos. Cómo crear un cuadro de mando (Dashboard) Ahora tenemos todo lo que necesitamos para crear un cuadro de mando (dashboard). Empieza haciendo clic en el botón a la izquierda para cambiar de la vista Relaciones a la vista Informe. En la pestaña Home (Inicio), en el Grupo Insert, haz clic en TextBox para añadir un Título. El Grupo Insert incluye elementos estáticos como Textos, Formas e Imágenes, que podemos usar para mejorar nuestros informes. ¡Ya podemos añadir nuestra primera visualización! En el panel Fields, marca "Name" en "Product" y "UnitsSold" en "SalesTransaction". Después, ve a Style y selecciona "Bold Header". Ahora ya podemos hacer algunas transformaciones de datos. Haz clic en los tres puntos al lado de "SalesTransaction" en el panel Field. Después, haz clic en "Edit Query". Esto abrirá el "Power Query Editor". Selecciona la columna "DateOfSale" y haz clic en "Duplicate Column". Renombra esta nueva columna como "Year", y haz clic en "Date" y elige "Year". Aplica estos cambios. A continuación, selecciona la nueva columna y, en la pestaña "Modeling", cambia "Default Summarization" a "Don't Summarize". Añade un gráfico de líneas (Line Chart), arrastra Year a Axis, arrastra "Name" desde "Region" a Legend y arrastra "AmountOfSale" desde "SalesTransaction" a Values. Imaginemos que el equipo comercial de HoleFoods tiene un objetivo de venta de 2000 unidades. ¿Cómo podemos saber si están cumpliendo el objetivo? Para responder, vamos a añadir un gráfico para métricas y objetivos. En "SalesTransaction" en el panel Fields, marca "UnitsSold", después haz clic en Gráfico de Indicadores (Gauge Chart). En el eje del indicador, fija el máximo (Max) en 3000 y el Objetivo (Target) en 2000. Los KPIs (Key Performance Indicators) son herramientas muy útiles para la toma de decisiones y Power BI permite visualizarlos de forma rápida y sencilla. Para añadirlos, en "SalesTransaction", marca "AmountOfSale" y en el panel de gráficos haz clic en KPI. Después, arrastra "Year" a "Trend axis". Para alinear todos los gráficos, solo hay que hacer clic sobre un gráfico, arrastrarlo y cuando un borde o centro esté cerca de alinearse con el borde o centro de otro gráfico, aparecerán unas líneas rojas discontinuas. También se puede ir a la pestaña View y permitir "Show GridLines" y "Snap Objects to Grid". Terminaremos añadiendo un mapa que muestra la presencia internacional de HoleFoods. En la pestaña Modeling, marca Longitude y Latitude en "Outlet" y "Don't Summarize" en las Propiedades. El gráfico Mapa se encuentra en el panel de gráficos. Añádelo, arrastra los campos Latitude y Longitude desde Outlet a Latitude y Longitude en el mapa. También, desde SalesTransaction arrastra AmountOfSale a Size y UnitsSold a ToolTips. Y nuestro cuadro de mandos (dashboard) ya está terminado. Puedes compartir tu cuadro de mando publicándolo en el Power BI Service. Para hacerlo, tendrás que crear una cuenta en Power BI. Conclusión En unos pocos minutos hemos podido conectar Power BI con InterSystems IRIS y después crear increíbles gráficos interactivos.Como desarrolladores, esto es genial. En lugar de pasar horas o días desarrollando cuadros de mando para los jefes, podemos tener el trabajo hecho en minutos. Incluso mejor, podemos mostrarles cómo crear informes para ellos mismos, de forma rápida y sencilla. Aunque crear gráficos es a menudo parte del trabajo de los desarrolladores, normalmente nuestro tiempo está mejor empleado en desarrollar aplicaciones o arquitecturas importantes. Usando IRIS y Power BI juntos, nos aseguramos que el tiempo de los desarrolladores se utiliza de forma eficiente y que los jefes pueden acceder a los datos y visualizarlos rápidamente - sin emplear semanas en la preparación de cuadros de mando. Este artículo está etiquetado como "Mejores prácticas" ("Best practices"). Los artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems.
Anuncio
Esther Sanchez · 30 ago, 2022

Echa un vistazo a InterSystems Ideas, nuestro Portal de Sugerencias Oficial

¡Hola Comunidad! Siempre hemos tenido rondando la idea de mejorar el proceso de recolección, análisis y respuesta a las peticiones de mejora de producto de los miembros de la Comunidad. Sabíamos que necesitábamos una buena experiencia de usuario y mejores procesos internos para asegurarnos de que las mejores ideas fueran recogidas, escuchadas y atendidas. Y finalmente esta idea se hizo realidad! El pasado mes de abril anunciamos el lanzamiento del Portal de Sugerencias Oficial de InterSystems. Pero queremos promocionar el Portal y vuestras ideas y que tengáis una forma de obtener feedback directo de los Responsables de Producto (Product Managers) y de otros miembros de la Comunidad. Si os perdisteis la presentación del Portal de Sugerencias, aquí podéis acceder a él: 💡 >> InterSystems Ideas << 💡 InterSystems Ideas es un nuevo procedimiento para enviar peticiones de mejora de productos e ideas relacionadas con nuestros servicios (Documentación, Comunidad de Desarrolladores, Global Masters, etc.), ver lo que otros han enviado, votar tus ideas favoritas, y obtener feedback de InterSystems. ✅ Las ideas con más votos se enviarán al Departamento de Gestión de Producto (Product Management Department) para su revisión. Así que... Compartid vuestras ideas con la Comunidad, y contribuid votando y comentando las ideas de otros. ¡Nos vemos en InterSystems Ideas!
Artículo
Alberto Fuentes · 5 oct, 2022

Cómo ejecutar InterSystems IRIS en modo FaaS con Kubeless

La Función como Servicio (FaaS) es un modelo de computación en la nube que proporciona una plataforma que permite a los clientes desarrollar, ejecutar y gestionar funcionalidades de aplicaciones sin la complejidad de crear y mantener la infraestructura típicamente asociada con el desarrollo y lanzamiento de una app. Crear una aplicación siguiendo este modelo es una forma de conseguir una "arquitectura sin servidor ", y se suele utilizar cuando se crean aplicaciones basadas en microservicios. Wikipedia FaaS es un enfoque muy popular para ejecutar cargas de trabajo en la nube, permitiendo a los desarrolladores centrarse en escribir código. Este artículo muestra cómo desplegar métodos de InterSystems IRIS con un modelo FaaS. Instalación de Kubernetes En primer lugar, instala Kubernetes 1.16. Hay muchos manuales disponibles, por lo que no voy a copiarlos ahora, pero yo uso minikube. Para ejecutar kubernetes con minikube es suficiente con ejecutar este comando: minikube start --kubernetes-version=v1.16.1 Instalación de kubeless Después, instalamos kubeless. kubeless es un framework nativo de Kubernetes, sin servidor, que permite desplegar pequeños bits de código sin preocuparse de la todos los mecanismos de infraestructura necesarios para que funcione. Aprovecha los recursos de Kubernetes para proporcionar auto-escalado, enrolamiento de APIs, monitorización, resolución de problemas, etc. kubectl create ns kubeless kubectl create -f https://github.com/kubeless/kubeless/releases/download/v1.0.8/kubeless-v1.0.8.yaml kubectl get pods -n kubeless El resultado debería ser algo así: NAME READY STATUS RESTARTS AGEkubeless-controller-manager-666ffb749-26vhh 3/3 Running 0 83s También hay que instalar un cliente kubeless (en la misma instancia en la que está kubectl). Puedes obtenerlo aquí. La instalación en Linux es tan simple como: sudo install kubeless /usr/local/bin/kubeless Prueba de kubeless En primer lugar, vamos a desplegar una función de Python sencilla, para comprobar que kubeless funciona. Crea test.py: def hello(event, context): return event['data'] Para saber más sobre el entorno de la función, echa un vistazo aquí. Generalmente la función acepta dos argumentos - "event" y "context" con estos datos: event: data: # Event data foo: "bar" # The data is parsed as JSON when required event-id: "2ebb072eb24264f55b3fff" # Event ID event-type: "application/json" # Event content type event-time: "2009-11-10 23:00:00 +0000 UTC" # Timestamp of the event source event-namespace: "kafkatriggers.kubeless.io" # Event emitter extensions: # Optional parameters request: ... # Reference to the request received response: ... # Reference to the response to send # (specific properties will depend on the function language) context: function-name: "pubsub-nodejs" timeout: "180" runtime: "nodejs6" memory-limit: "128M" Ahora podemos desplegar nuestra función "hello" al especificar nuestro archivo con una función y entorno de ejecución: kubeless function deploy hello --runtime python3.7 --from-file test.py --handler test.hello kubeless function ls hello Y lo probamos: kubeless function call hello --data 'Hello world!' Deberías recibir "Hello World!" como respuesta. Añadir la configuración de IRIS A continuación, tenemos que añadir un gestor de funciones InterSystems IRIS. Para hacerlo, abre la configuración de kubeless para editarla: kubeless get-server-config kubectl get -n kubeless configmaps -o yaml > configmaps.yaml kubectl edit -n kubeless configmaps Añade esta entrada a runtime-images array y guarda: {"ID": "iris","depName": "","fileNameSuffix": ".cls","versions": [{"images": [{"image": "eduard93/kubeless-iris-runtime:latest","phase": "runtime"}],"name": "iris2022.1","version": "2022.1"}]} Reinicia el controlador de kubeless para que tengan efecto los cambios. kubectl delete pod -n kubeless -l kubeless=controller Generar la función CRD de IRIS y publicarla Ahora vamos a escribir nuestra primera función en InterSystems IRIS: Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } A continuación, tenemos que generar una función CRD: Esta es nuestra plantilla: function.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata: name: !name! namespace: default spec: runtime: iris2022.1 timeout: "180" handler: !handler! deps: "" function-content-type: text deployment: spec: template: spec: securityContext: runAsUser: 51773 runAsGroup: 51773 function: | Y tenemos que completar: name: nombre de la función (para kubeless) handler: class.name_method (para InterSystems IRIS) function body: añadir al final (¡no te olvides de los tabuladores!) Así, nuestro CRD se parece a esto: function_demo.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata: name: iris-demo namespace: default spec: runtime: iris2022.1 timeout: "180" handler: User_Test.hi deps: "" function-content-type: text deployment: spec: template: spec: securityContext: runAsUser: 51773 runAsGroup: 51773 function: | Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } Esto se puede automatizar fácilmente. En Linux, ejecuta: sed 's/!name!/iris-demo/; s/!handler!/User_Test.hi/' function.yaml > function_demo.yaml sed 's/^/ /' User.Test.cls >> function_demo.yaml Y en Windows (PowerShell): Get-Content function.yaml | ForEach-Object { $_ -replace "!handler!", "User_Test.hi" -replace "!name!", "iris-demo" } | Set-Content function_demo.yaml " " + [string]((Get-Content User.Test.cls) -join "`r`n ") | Add-Content function_demo.yaml Ahora tenemos que publicar nuestro CRD en kubeless: kubectl apply -f function_demo.yaml Probar la función IRIS En primer lugar, vamos a comprobar que la función está desplegada y lista (puede llevar unos minutos la primera vez): kubeless function ls Y ahora la llamamos: kubeless function call iris-demo --data '{"Text":123}' Si estás en Windows, llama a la función así (igual para otras llamadas con dobles comillas escapadas): kubeless function call iris-demo --data '{\"Text\":123}' En cualquier caso, la respuesta debería ser 456 ya que 123 es un número. Acceso HTTP kubeless también ofrece acceso HTTP. Para probarlo, usa el comando kubectl proxy: kubectl proxy -p 8081 A continuación, envía esta solicitud usando tu cliente API REST preferido: GET http://localhost:8081/api/v1/namespaces/default/services/iris-demo:http-function-port/proxy/ {"Text":111} Así se ve en Postman: Ahora, vamos a publicarlo en internet. Hay dos enfoques. Preferiblemente, configura ingress como se describe aquí. Adicionalmente puedes parchear el servicio: kubectl get svc kubectl patch svc iris-demo -p '{"spec": {"type": "LoadBalancer"}}' kubectl get svc Limpieza Para quitar una función desplegada, llama: kubectl delete -f function_demo.yaml Conclusión Aunque esto es sin duda una prueba de concepto y no una solución para producción, este enfoque muestra que es posible ejecutar cargas de trabajo de InterSystems IRIS usando el enfoque FaaS sin servidor. Enlaces de interés Minikube Kubeless InterSystems IRIS runtime
Artículo
Luis Angel Pérez Ramos · 17 oct, 2022

Cómo cargar datos en InterSystems IRIS desde R usando RJDBC

Acabo de redactar un ejemplo rápido para ayudar a un colega a cargar datos en IRIS desde R usando RJDBC y pensé que sería útil compartirlo aquí para futuras consultas. Fue bastante sencillo, aparte de que a IRIS no le gusta el uso de puntos "." en los nombres de las columnas; la solución alternativa es simplemente renombrar las columnas. Alguien con más conocimientos que yo en R seguramente pueda ofrecer un enfoque más amplio # Es necesario un valor válido para el JAVA_HOME antes de cargar la librería (RJDBC) Sys.setenv(JAVA_HOME="C:\\Java\\jdk-8.0.322.6-hotspot\\jre") library(RJDBC) library(dplyr) # Conexión a IRIS – se requiere la ruta a la librería JAR de InterSystems JDBC JAR de tu instalación drv <- JDBC("com.intersystems.jdbc.IRISDriver", "C:\\InterSystems\\IRIS\\dev\\java\\lib\\1.8\\intersystems-jdbc-3.3.0.jar","\"") conn <- dbConnect(drv, "jdbc:IRIS://localhost:1972/USER", "IRIS Username", "IRIS Password") dbListTables(conn) # Para mayor confusión, cargar el dataset de IRIS:) data(iris) # A IRIS no le gustan los puntos "." en el nombre de las columnas, así que los renombramos. (Probablemente se pueda codificar de una forma más genérica, pero no soy muy bueno con R.) iris <- iris %>% rename(sepal_length = Sepal.Length, sepal_width = Sepal.Width, petal_length = Petal.Length, petal_width = Petal.Width) # dbWriteTable/dbGetQuery/dbReadTable funcionan dbWriteTable(conn, "iris", iris, overwrite = TRUE) dbGetQuery(conn, "select count(*) from iris") d <- dbReadTable(conn, "iris")
Anuncio
Esther Sanchez · 18 oct, 2022

Ganadores del 1er Ideatón (Maratón de Ideas) de InterSystems

¡Hola Comunidad! El 1er Ideatón (Maratón de ideas) de InterSystems ha terminado. Se han publicado 75 brillantes ideas – ¡ha sido un éxito absoluto! 🤩 ¡Muchísimas gracias a todos los que habéis participado con ideas y/o contribuido con votos y comentarios! Ya podemos anunciar los ganadores... Premio de los Expertos 🏆 Change Management for Editors inside of Portal enviada por @Scott.Roth Premio de la Comunidad Hemos recibido tantas ideas, que hemos decidido aumentar el premio de la Comunidad y premiar varias ideas brillantes: 🌟 Nodejs with IRIS a dynamic platform enviada por @Sharafat.Hussain 🌟 E-learning for job enviada por @Andre.LarsenBarbosa 🌟 Code snippets library enviada por @Danny.Wijnschenk Todos los ganadores recibirán uno de estos premios: Figura R2-D2™ de Star Wars™, de LEGO / Sleepbuds™ II, de BOSE / Altavoz Bluetooth SoundLink Flex inalámbrico, de BOSE. 🔥 Además de las ideas ganadoras, queremos resaltar todas las brillantes ideas que hemos recibido. Son estas: Desplegar listado Modernize terminal Use the built-in feature engineering in AutoML to transform datasets Add a wizard similar to the SOAP wizard to generate a REST client from OpenAPI specification New reward: IRIS developer license IRIS and ZPM(Open Exchange) integration Bare minimum start of IRIS for docker build New rewards BPL, DTL, Business Rule Editor in VSCode Articles and answered questions recommendations RPMShare - Database solution for remote patient monitoring (RPM) datasets of high density vitals Move users, roles, resources, user tasks, Mappings (etc) to a seperate Database, other than %SYS, so these items can be mirrored Create a UI for convenient and easy transfer of projects (classes, globals, applications, users, roles, privileges, grants, namespace mapping, SQLgateways, libraries, etc.) to other system instances for fast deployment. InterSystems Ideas - Long Term Cloud Service Starter Kit PM platform Tool to convert legacy dot syntax code to use bracket syntax Add basic tutorial of Docker or point to a Docker tutorial in Documentation Better handle whitespace in Management Portal Text entry Reserve licenses Improve Production Migration From TST to PRD Data Analyzer Create front-end package based on CSS and JS to be used in NodeJS and Angular projects Expose Global Masters Badges VS Code: Index local workspace folder Add a chatbot to the Global Masters hub PDF reports for IRIS BI Sample code share opportunity Common Data Modelling CI/CD support Journal file analysis/visualization A Dynamic Cheat Sheet to lookup for Common Core Functions for Reusability Version History for Classes Visual programming language Interoperability Wizard Connectivity of DeepSee with External Database Better unicode support Dark Mode for Studio! HealthShare Patient Unmerge Ooopses Editing category of the idea after adding it Group events for people outside the community TTTC Embedded Python: Add a built-in variable to represent class Create a new model type option for IRIS database: blockchain Add the option to call class parameters in Embedded Python A client to export codes from specified packages from IRIS/Cache Reagent Consumption Module - Auto Consumption of Lab Machine Reagents Cache Journal Switch Schedule Colour Background on Ward / Clinical Areas Floorplans Production Audit Report Run Jasperreports from ObjectScript and IRIS Adapter Business Operation Testing mode per namespace Do not change formatting when compiling through GUI File Service class to allow multiple instances to share access to one directory Native RPC API for ObjectScript change data chapture Expose internal code elements (classes, routines etc) through SFTP, CIFS/SMB or similar established protocol LDAP Authentication method by default on Web Applications Monitoring and Programatic way of Starting/Stoping Gateways Improve journal display in IRIS admin portal Adapting tools for people with special needs and/or disabilities 🌐🔰🦽🦼♿ Backup button before importing Add wizard to create class with its properties Create query builder Linux: iris session [command line] get commands from a file String format to numeric values in ZEN.proxyObject The ability to export current settings to a %Installer Manifest Linking I service to JIRA system I service Flags Patient Initiated Follow Up - Adding a document to an ROPWL Mirror Async Member Time Delay in Applying Journals Please add google oauth authorization to login to the management portal Todos los participantes en el Ideatón recibirán una camiseta con el logo de InterSystems. ¡ENHORABUENA A TODOS LOS GANADORES! ¡Y A TODOS LOS PARTICIPANTES! Y muchísimas gracias por vuestras valiosas contribuciones 💥 Nota importante: Los premios están en producción. Contactaremos con todos los premiados y participantes cuando estén listos para ser enviados.
Anuncio
Jose-Tomas Salvador · 28 abr, 2023

Ya está disponible IKO (InterSystems Kubernetes Operator) 3.5

La versión 3.5 de InterSystems Kubernetes Operator (IKO) ya está disponible de manera general (GA). IKO 3.5 añade nuevas funcionalidades significativas, así como la corrección de algunos errores. A destacar: Configuración simplificada de TLS en Web Gateway, ECP, Mirroring, Super Server y IAM Capacidad de ejecutar contenedores sidecars junto a nodos de computación o de datos – perfecto para escalar web gateways con nodos de cómputo Los cambios en el CPF configmap y el IRIS key secret son procesados automáticamente por las instancias de IRIS cuando se usa IKO 3.5 con IRIS 2023.1 y posteriores El initContainer ahora es configurable tanto con la UID/GID como con la imagen IKO es compatible con topologySpreadConstraints, lo que permite controlar más fácilmente la programación de pods Campo compatibilityVersion para soportar una mayor variedad de instancias de IRIS Escalado automático de nodos de cómputo (Experimental) IKO ahora está disponible para ARM Seguid la Guía de Instalación para orientaros sobre cómo descargar, instalar y empezar con IKO. La documentación completa sobre IKO 3.5 ofrece más información sobre IKO y su uso con InterSystems IRIS e InterSystems IRIS for Health. IKO se puede descargar en la página de descargas del Centro de Soporte Internacional (WRC), buscando Kubernetes. El contenedor está disponible en el Registro de Contenedores de InterSystems. IKO simplifica el trabajo de InterSystems IRIS e InterSystems IRIS for Health en Kubernetes al ofrecer una sencilla definición del recurso irisCluster. Consultad la documentación para conocer la lista completa de funcionalidades, incluyendo sharding sencillo, mirroring y configuración de ECP.
Artículo
Fabiano Sanches · 26 abr, 2023

Recibe alertas, avisos e información de productos directamente de InterSystems

¡Hola Comunidad! ¿Sabéis que podéis estar en contacto con InterSystems y recibir alertas, avisos y otras noticias rápidamente? El proceso es muy sencillo: Haced clic en este enlace: https://www.intersystems.com/support/product-alerts-advisories/ Completad el formulario con vuestros datos de contacto ¡Y listo! Como podéis ver, lleva menos de un minuto estar al tanto de las novedades de InterSystems!
Anuncio
Esther Sanchez · 6 mar, 2023

Concurso de Artículos Técnicos en Inglés: Tutoriales de InterSystems IRIS

¡Hola Comunidad! En la Comunidad de Desarrolladores no se para... ¡Ya está en marcha un nuevo Concurso de Artículos Técnicos en inglés! ✍️ Concurso de Artículos Técnicos en inglés: Tutoriales de InterSystems IRIS ✍️ El objetivo del concurso es escribir un artículo que pueda ser considerado un Tutorial para los programadores de InterSystems IRIS de cualquier nivel: principiante / medio / senior. 🗓️ Duración: del 1 al 31 de marzo 🎁 Premios para todos: Todas las personas que participen en el concurso recibirán un par de regalos 🏆 Premios principales: Cada uno de los ganadores podrá elegir entre dos premios Premios 1. Todos los participantes ganan en el concurso de artículos técnicos de InterSystems! Cualquier miembro de la Comunidad que participe en el concurso, recibirá estos premios: 🎁 Bolsa de tela orgánica con el logo de InterSystems 🎁 Cuaderno Moleskine 2. Premios de los Expertos – los artículos ganadores de esta categoría serán elegidos por expertos de InterSystems: 🥇 1er puesto: Altavoz inalámbrico Mars Pro / Auriculares Apple AirPods Max 🥈 2º puesto: Auriculares Apple AirPods Pro con estuche de carga / Altavoz inalámbrico JBL Pulse 4 🥉 3er puesto: Teclado Magic Keyboard Folio para iPad / Altavoz inalámbrico Bose Soundlink Micro O como alternativa, cualquier ganador puede elegir un premio de una categoría inferior a la suya. 3. Premio de la Comunidad de Desarrolladores – artículo con el mayor número de "Me gusta". La persona que gane, podrá elegir uno de estos premios: 🎁 Teclado Magic Keyboard Folio para iPad 🎁 Altavoz inalámbrico Bose Soundlink Micro Notas: El autor solo puede ganar un premio de cada categoría (en total, un autor puede ganar dos premios: uno en la categoría Expertos y otro en la categoría de la Comunidad) En caso de empate, el número de votos de los expertos a los artículos empatados será considerado criterio de desempate ¿Quién puede participar? Cualquier miembro registrado en la Comunidad de Desarrolladores, excepto los empleados de InterSystems. Regístrate aquí en la Comunidad si aún no tienes una cuenta. Duración del concurso 📝 Del 1 al 31 de marzo: Publicación de artículos y fase de votación. Publicad vuestro artículos durante ese período. Los miembros de la Comunidad de Desarrolladores pueden ir votando los artículos que les gustan haciendo clic en "Me gusta" debajo de cada artículo. Truco: Cuanto antes publiquéis vuestros artículos, más tiempo tenéis para conseguir más votos de los Expertos y de la Comunidad. Requisitos ❗️ Cualquier artículo escrito durante el período de duración del concurso y que cumpla los siguientes requisitos entrará automáticamente en la competición:: El artículo debe ser un Tutorial* sobre InterSystems IRIS. Puede ser para desarrolladores principiantes, medios o senior. El artículo debe estar escrito en inglés. El artículo debe ser 100% nuevo (puede ser la continuación de un artículo ya publicado). El artículo no puede ser la traducción de un artículo publicado en otras Comunidades de Desarrolladores de InterSystems. El artículo debe incluir la etiqueta Tutorial. Tamaño del artículo: 400 palabras mínimo (los enlaces y el código no cuentan en el cálculo de caracteres). Se permiten un máximo de 3 artículos de una misma persona. Se permiten artículos con el mismo tema pero con distintos ejemplos, de autores diferentes. * Los Tutoriales ofrecen instrucciones paso a paso que un desarrollador puede seguir para completar una tarea específica o un conjunto de tareas específicas. 🎯 BONUS EXTRA Hemos añadido varios bonus para ayudaros a ganar los premios! Son los siguientes: Bonus Puntos Detalles Bonus por tema 5 Si un artículo trata sobre un tema incluido en la lista de Temas propuestos (ver más abajo), recibirá un bonus de 5 Votos Expertos. Bonus por vídeo 3 Formato de presentación del contenido del artículo: si además de publicar el artículo, se realiza un vídeo explicativo. Bonus por comentarios 1 Artículo con los comentarios más útiles, según decida el jurado de expertos. Solo un artículo obtendrá este bonus. Bonus por traducción 1 Por publicar la traducción del artículo en cualquiera de las restantes Comunidades de InterSystems. Más información. Nota: Solo 1 voto por artículo. Bonus por nuevo miembro 3 Si el autor no ha participado en ningún concurso anterior, el artículo obtendrá 3 votos expertos. Temas propuestos Mostramos aquí algunos temas posibles que darán el bonus extra por tema: ✔️ Trabajando con IRIS desde C#✔️ Trabajando con IRIS desde Java✔️ Trabajando con IRIS desde Python✔️ Uso de Python Embebido✔️ Uso de Python API✔️ Uso de SQL Embebido✔️ Uso de ODBC/JDBC✔️ Trabajando con %Query/%SQLQuery✔️ Uso de índices✔️ Uso de disparadores (triggers)✔️ Uso de JSON✔️ Uso de XML✔️ Uso de REST✔️ Uso de contenedores✔️ Uso de Kubernetes ➡️ Uníos al canal de InterSystems en Discord para charlar sobre las reglas, temas y bonus. Así que... Ready. Set. Write! ¡Esperamos vuestros artículos! Buena suerte y que las musas os acompañen ✨ Nota importante: El envío de premios varía de un país a otro y puede que no sea posible realizarse a algunos de ellos. La lista de países con restricciones se puede solicitar a @Liubka.Zelenskaia