Buscar

Limpiar filtro
Artículo
Alberto Fuentes · 14 mayo, 2019

Guía rápida para conectar Apache Spark y Apache Zeppelin con InterSystems IRIS

Hola a todos, me gustaría compartir una guía rápida publicada en el Developer Community sobre cómo conectar Apache Spark + Apache Zeppelin con InterSystems IRIS. Introducción Apache Spark es un framework opensource para computación en cluster. Proporciona una interfaz para desarrollar sobre clusters incluyendo paralelismo y tolerancia a fallos. Por ello es muy utilizado en Big Data. Apache Zeppelin es un bloc de notas, que cuenta con una excelente interfaz de usuario para trabajar con diversos tipos análisis y machine learning. Combinándolo con InterSystems IRIS, el conjunto funciona de tal manera que: IRIS proporciona los datos, Spark los lee y los trabajamos con en un bloc de notas de Apache Zeppelin. Nota: la guía se ha confeccionado ejecutando los pasos sobre Windows 10. Apache Zeppelin Ahora instalaremos los programas necesarios. Antes que nada, descargamos Apache Zeppelin de su sitio oficial. Hemos utilizado zeppelin-0.8.0-bin-all.tgz que incluye Apache Spark, Scala, y Python. Tras descomprimirlo, podemos ejecutar Zeppelin con el script con \bin\zeppelin.cmd, que se encuentra en la raíz de su carpeta Zeppelin. Tras aparecer "Done, zeppelin server started" ya podemos abrir la interfaz http://localhost:8080 en el navegador. Si todo se ejecutó de manera correcta, aparecerá lo siguiente: Apache Spark En la interfaz de Zeppelin, hacemos click en la esquina superior derecha de la pantalla en anonymous > Interpreter. Nos desplazamos hacia abajo y buscamos spark. Hacemos click en el botón edit que aparece junto a spark y nos desplazamos hacia abajo para añadir las dependencias a las librerías jar que necesitamos (se encuentran en el directorio dev\java\lib\JDK de la instalación de IRIS). Comprobar el funcionamiento Vamos a comprobar que funciona. Creamos una nueva nota en Zeppelin, y en un párrafo nuevo escribimos el siguiente código para recuperar datos de una tabla Sample.Person: var dataFrame=spark.read.format("com.intersystems.spark").option("url", "IRIS://localhost:51773/NAMESPACE").option("user", "UserLogin").option("password", "UserPassword").option("dbtable", "Sample.Person").load() // dbtable - pasar el nombre de la tabla a cargar (e.g. Sample.Person) La URL de IRIS tiene la siguiente forma:IRIS://ipAddress:superserverPort/namespace: El protocolo IRIS es una conexión JDBC hecha sobre TCP/IP que ofrece una conexión de memoria compartida con Java. ipAddress — La dirección IP de la instancia InterSystems IRIS. superserverPort — El número de puerto del superservidor para la instancia IRIS (no es el puerto web). Recuerda que para consultar el número puerto del superservidor de IRIS puedes ir al Portal de Administración del sistema System Administration > Configuration > System Configuration > Memory and Startup (SuperServer port) Namespace - Namespace de la instancia al que vamos a conectarnos. Al ejecutarlo, si todo va bien aparecerá como FINISHED Conclusión En esta guía descubrimos cómo hacer que Apache Spark, Apache Zeppelin e InterSystems IRIS trabajen en conjunto. En próximos artículos hablaremos sobre las distintas formas que existen para analizar datos. Enlaces El sitio oficial de Apache Spark Documentos disponibles sobre Apache Spark El protocolo IRIS Cómo utilizar InterSystems Spark Connector 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
David Reche · 24 jul, 2019

Versiones de prueba de InterSystems IRIS e IRIS for Health 2019.3

Ya están disponibles las versiones de prueba de InterSystems IRIS e IRIS for Health 2019.3.La imagen del contenedor está disponible a través de la página de descargas para prueba del Centro de Soporte Internacional (WRC). .El número de compilación de estas versiones es 2019.3.0.302.0Los anuncios oficiales se harán dentro de poco, con anuncios independientes para cada producto. InterSystems IRIS Data Platform 2019.3 es una versión CD (continuous delivery) de InterSystems IRIS. Incluye muchas funcionalidades nuevas:Continuous Delivery Releases of InterSystems IRISInterSystems API ManagerNode-level Architecture for Sharding and SQL SupportInfrastructure and Cloud Deployment ImprovementsPort Authority for Monitoring Port Usage in Interoperability ProductionsX12 Element Validation in Interoperability ProductionsNew Framework for Coding Business Hosts in JavaJava and .NET Gateway Reentrancy InterSystems IRIS for Health 2019.3 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye otras actualizaciones:FHIR STU3 PATCH SupportNew IHE Profiles XCA-I and IUAX12 Element Validation in Interoperability Productions Estas nuevas funcionalidades se detallan en:la versión preliminar de la documentación y las notas de la versión de InterSystems IRIS 2019.3 la versión preliminar de la documentación y las notas de la versión de InterSystems IRIS for Health 2019.3 Al ser una versión CD, solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas. Para más información sobre lo que es una versión CD, revisad por favor el artículo sobre el nuevo plan de versiones (publicado en la Developer Community).Las versiones de prueba permiten a nuestros clientes empezar a trabajar con nuevas funcionalidades y características. Están soportadas cuando se utilicen con fines de desarrollo o pruebas, no en producción.
Artículo
Jose-Tomas Salvador · 2 sep, 2019

Recursos para nuevos desarrolladores (Parte 2): Aprendiendo con InterSystems Open Exchange

¡Hola Desarrolladores!Esta es la segunda publicación sobre recursos para desarrolladores. Esta parte es sobre Open Exchange.Utilizando Open Exchange para avanzar en la tecnología de InterSystemsInterSystems Open Exchange es una galería de herramientas de aplicaciones, conectores y librerías, que los desarrolladores de InterSystems publican para compartir formas de trabajar, enfoques y hacer negocio. Todas las aplicaciones están o construidas con InterSystems Data Platform o pensadas para ser usadas en desarrollos con nuestra tecnología.Si eres un desarrollador principiante en nuestra tecnología, puedes echar un vistazo a las aplicaciones de la categoría Technology Example. Todas las aplicaciones en esa categoría vienen con repositorios con el código fuente, así que podrás ejecutar los ejemplos en un contenedor docker de IRIS, en tu propio equipo servidor, en servidores en la nube o en una sandbox de IRIS en la nube.Ejemplos: Igualmente, echa un vistazo a las categorias Tools y Developer Environment para utilizar herramientas de desarrollador en tecnología IRIS Data Platform. Estas categorías contienen aplicaciones que ayudan a los desarrolladores en su trabajo del día a día, para aumentar la velocidad de su proceso de desarrollo, configurar nuevas formas de gestión de cambio e integración continua.Ejemplos: La categoría Frameworks te ayudará a sacar mejor provecho de las librerías de interoperabilidad con los frameworks más populares para desarrollar más rápido tus soluciones con InterSystems Por ejemplo, puedes utilizar Python, node.js, Laravel, etc. para construir soluciones con IRIS.Ejemplos: Por último, utiliza stars sorting para saber qué aplicaciones son más populares entre los desarrolladores de IRIS.¡No olvides suscribirte al tag OpenExchange para no perderte ningún anuncio de aplicaciones Open Exchange y no dudes en plantear tus preguntas o comentarios a la Comunidad de Desarrolladores!
Anuncio
Esther Sanchez · 26 sep, 2019

Nuevo vídeo: Serialización JSON y XML de datos persistentes en InterSystems IRIS

¡Hola Comunidad! Tenemos un nuevo vídeo en el canal de YouTube de la Comunidad de Desarrolladores en inglés, grabado por @Stefan.Wittmann Serialización JSON y XML de datos persistentes en InterSystems IRIS ¿Tienes que trabajar con JSON o XML? InterSystems IRIS soporta herencia múltiple y ofrece varias herramientas integradas para facilitar la conversión entre XML, JSON y objetos, cuando lo necesites. Descubre más sobre las posibilidades de desarrollo multi-modelo de InterSystems IRIS en nuestra web: learning.intersystems.com. ¡Esperamos que os resulte útil!
Artículo
Estevan Martinez · 22 oct, 2019

Búsqueda de documentación en InterSystems utilizando las tecnologías iKnow y iFind

El DBMS de InterSystems incorpora una tecnología para trabajar con datos no estructurados (iKnow) y una tecnología de búsqueda de textos completos (iFind). Decidimos profundizar en ambas y hacer algo útil. Como resultado, tenemos DocSearch, una aplicación web para realizar búsquedas en la documentación de InterSystems utilizando iKnow y iFind. Cómo funciona la documentación de Caché La documentación en Caché se basa en la tecnología Docbook. Tiene una interfaz web (que incluye la posibilidad de realizar búsquedas sin utilizar iFind ni iKnow). Los artículos se almacenan en clases de Caché, lo que nos permite realizar consultas de estos datos y, por supuesto, crear nuestra propia herramienta de búsqueda. Qué son iKnow y iFind Intersystems iKnow es una tecnología que se desarrolló para el análisis de datos no estructurados, y proporciona acceso a estos mediante la indexación de frases e instancias en ellos. Para iniciar el análisis, primero necesita crear un dominio, es decir, un almacenamiento para datos no estructurados y subir un texto en él. The iFind technology es un módulo DBMS de Caché para llevar a cabo búsquedas de texto completo en las clases de Caché. iFind utiliza muchas clases de iKnow para realizar búsquedas inteligentes de texto. Para utilizar iFind en sus consultas, debe introducir un índice especial iFind en su clase de Caché. Existen tres tipos de índices iFind, cada uno de los cuales ofrece todas las funciones del tipo anterior, más algunas funciones adicionales: El índice principal (%iFind.Index.Basic): es compatible con la búsqueda y las combinaciones de palabras El índice semántico (%iFind.Index.Semantic): es compatible con la búsqueda de objetos en iKnow La búsqueda analítica (%iFind.Index.Analytic): es compatible con todas las funciones iKnow de la búsqueda semántica, así como con la información sobre las rutas y la proximidad de las palabra Dado que la documentación de las clases se almacena en un namespace separado, si desea que las clases estén disponibles en el nuestro, el programa de instalación también realiza un mapeo de los paquetes y los globals. Código de instalación para el mapeo XData Install [ XMLNamespace = INSTALLER ] { <Manifest> // Specify the name of the namespace <IfNotDef Var="Namespace"> <Var Name="Namespace" Value="DOCSEARCH"/> <Log Text="Set namespace to ${Namespace}" Level="0"/> </IfNotDef> // Check if the area exists <If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=1)'> <Log Text="Namespace ${Namespace} already exists" Level="0"/> </If> // Creating the namespace <If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=0)'> <Log Text="Creating namespace ${Namespace}" Level="0"/> // Creating a database <Namespace Name="${Namespace}" Create="yes" Code="${Namespace}" Ensemble="" Data="${Namespace}"> <Log Text="Creating database ${Namespace}" Level="0"/> // Map the specified classes and globals to a new namespace <Configuration> <Database Name="${Namespace}" Dir="${MGRDIR}/${Namespace}" Create="yes" MountRequired="false" Resource="%DB_${Namespace}" PublicPermissions="RW" MountAtStartup="false"/> <Log Text="Mapping DOCBOOK to ${Namespace}" Level="0"/> <GlobalMapping Global="Cache*" From="DOCBOOK" Collation="5"/> <GlobalMapping Global="D*" From="DOCBOOK" Collation="5"/> <GlobalMapping Global="XML*" From="DOCBOOK" Collation="5"/> <ClassMapping Package="DocBook" From="DOCBOOK"/> <ClassMapping Package="DocBook.UI" From="DOCBOOK"/> <ClassMapping Package="csp" From="DOCBOOK"/> </Configuration> <Log Text="End creating database ${Namespace}" Level="0"/> </Namespace> <Log Text="End creating namespace ${Namespace}" Level="0"/> </If> </Manifest> } El dominio que iKnow requiere se construye sobre la tabla que contiene la documentación. Debido a que utilizamos una tabla como fuente de datos, utilizaremos a SQL.Lister. El campo de contenido tiene el texto de la documentación, así que lo especificaremos como el campo de datos. El resto de los campos se describirán en los metadatos. Código del instalador para crear un dominio ClassMethod Domain(ByRef pVars, pLogLevel As %String, tInstaller As %Installer.Installer) As %Status { #Include %IKInclude #Include %IKPublic set ns = $Namespace znspace "DOCSEARCH" // Create a domain or open it if it exists set dname="DocSearch" if (##class(%iKnow.Domain).Exists(dname)=1){ write "The ",dname," domain already exists",! zn ns quit } else { write "The ",dname," domain does not exist",! set domoref=##class(%iKnow.Domain).%New(dname) do domoref.%Save() } set domId=domoref.Id // Lister is used for searching for sources corresponding to the records in query results set flister=##class(%iKnow.Source.SQL.Lister).%New(domId) set myloader=##class(%iKnow.Source.Loader).%New(domId) // Building a query set myquery="SELECT id, docKey, title, bookKey, bookTitle, content, textKey FROM SQLUser.DocBook" set idfld="id" set grpfld="id" // Specifying the fields for data and metadata set dataflds=$LB("content") set metaflds=$LB("docKey", "title", "bookKey", "bookTitle", "textKey") // Putting all data into Lister set stat=flister.AddListToBatch(myquery,idfld,grpfld,dataflds,metaflds) if stat '= 1 {write "The lister failed: ",$System.Status.DisplayError(stat) quit } //Starting the analysis process set stat=myloader.ProcessBatch() if stat '= 1 { quit } set numSrcD=##class(%iKnow.Queries.SourceQAPI).GetCountByDomain(domId) write "Done",! write "Domain cointains ",numSrcD," source(s)",! zn ns quit } Para buscar dentro de la documentación, utilizamos el índice %iFind.Index.Analytic: Index contentInd On (content) As %iFind.Index.Analytic(LANGUAGE = "en", LOWER = 1, RANKERCLASS = "%iFind.Rank.Analytic"); Donde contentInd es el nombre del índice y content es el nombre del campo que creamos para el índice. El parámetro LANGUAGE = “en” establece el idioma del texto. El parámetro LOWER = 1 desactiva la sensibilidad para diferenciar las mayúsculas y las minúsculas. El parámetro RANKERCLASS = "%iFind.Rank.Analytic" permite que se utilice el resultado del algoritmo de clasificación TF-IDF. Después de añadir y elaborar dicho índice, éste se puede utilizar, por ejemplo, en las consultas SQL. La sintaxis general para utilizar iFind en SQL es: SELECT * FROM TABLE WHERE %ID %FIND search_index(indexname,'search_items',search_option) Después de crear el índice %iFind.Index.Analytic con esos parámetros, se generan varios procedimientos SQL del siguiente tipo: [table_name]_[index name]Procedure name En nuestro proyecto, utilizamos dos de ellos: DocBook_contentIndRank - devuelve el resultado del algoritmo de clasificación TF-IDF para una solicitud. El procedimiento tiene la siguiente sintaxis: SELECT DocBook_contentIndRank(%ID, ‘SearchString’, ‘SearchOption’) Rank FROM DocBook WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’) DocBook_contentIndHighlight - devuelve los resultados de la búsqueda, donde las palabras buscadas se envolvieron en la etiqueta que se especificó: SELECT DocBook_contentIndHighlight(%ID, ‘SearchString’, ‘SearchOption’,’Tags’) Text FROM DocBook WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’) Entraré en más detalles sobre esto más adelante en el artículo. Qué obtenemos al final: Autocompletado en el campo de búsqueda Cuando empiece a introducir texto en el campo de búsqueda, el sistema le sugerirá posibles variantes de la consulta, para ayudarle a encontrar la información necesaria más rápidamente. Estas sugerencias se generan de acuerdo a la palabra (o su inicio) que se escribe. El sistema muestra las diez mejores palabras o frases que coinciden con la búsqueda. Este proceso utiliza iKnow, es decir, el método %iKnow.Queries.Entity.GetSimilar Búsqueda difusa iFind es compatible con la búsqueda difusa, para encontrar palabras que coincidan parcialmente con la cadena de búsqueda introducida. Esto se logra al medir la distancia de Levenshtein que existe entre dos palabras. La distancia Levenshtein es el número mínimo de cambios en un carácter (inserciones, eliminaciones o sustituciones) que son necesarios para convertir una palabra en otra. Esto puede utilizarse para corregir errores tipográficis, pequeñas variaciones en la escritura, diferentes formas gramaticales (por ejemplo, el plural y el singular). En las consultas SQL que se realizan con iFind, el parámetro search_option es responsable de la búsqueda difusa. El parámetro search_option = 3 denota una distancia de Levenshtein de 2. Para establecer una distancia Levenshtein que sea igual a n, es necesario establecer el parámetro search_option en ‘3:n’. En la búsqueda de documentación se utiliza una distancia Levenshtein de 1, así que vamos a demostrar cómo funciona esto: Escribamos "ifind" en el campo de búsqueda. Vamos a realizar una búsqueda difusa poniendo un error tipográfico de forma intencional. Como podemos ver, la búsqueda corrigió el error tipográfico y encontró los artículos necesarios. Búsquedas complejas Gracias a que iFind es compatible con las consultas complejas con corchetes y con los operadores AND OR NOT, pudimos implementar la funcionalidad de búsquedas complejas. Esto es lo que puede especificar en su consulta: una palabra, una combinación de palabras, una de varias palabras, excepciones. Los campos pueden completarse uno por uno, o todos al mismo tiempo. Por ejemplo, vamos a buscar artículos que contengan la palabra “iknow”, la combinación “rest api” y los que tengan “domain” o “UI”. Podemos ver que existen dos artículos de este tipo: Tenga en cuenta que en el segundo artículo se menciona Swagger UI, de modo que podemos modificar la consulta para que excluya los que contengan la palabra Swagger. Como resultado, únicamente encontramos un artículo: Resaltado en los resultados de búsqueda Como se indicó anteriormente, el uso del índice iFind crea el procedimiento DocBook_contentIndHighlight. Utilicemos lo siguiente: SELECT DocBook_contentIndHighlight(%ID, 'search_items', '0', '<span class=""Illumination"">', 0) Text FROM DocBook Para obtener el texto resultante dentro de una etiqueta <span class=""Illumination""> Esto le ayudará a resaltar visualmente los resultados de la búsqueda en el front-end. Clasificación de los resultados de la búsqueda Find es capaz de clasificar los resultados mediante el algoritmo TF-IDF. TF-IDF se utiliza con frecuencia en las tareas para analizar texto y en la búsqueda de datos, por ejemplo, como un criterio de importancia cuando se realiza una consulta de búsqueda en un documento. Como resultado de la consulta SQL, el campo Rank contendrá la importancia de la palabra, la cual será proporcional al número de veces que la palabra se utilizó en un artículo, e inversamente proporcional a la frecuencia con que aparece la palabra en otros artículos. SELECT DocBook_contentIndRank(%ID, ‘SearchString’, ‘SearchOption’) Rank FROM DocBook WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’) Integración con la búsqueda de documentos oficial Después de la instalación, se añadirá el botón “Search using iFind” a la búsqueda de documentos oficial. Si el campo “Search words” está lleno, le llevará a la página de resultados de la búsqueda después de hacer clic en el botón “Search using iFind”. Si el campo está vacío, le llevará a una nueva página de búsqueda. Instalación Descargue la última versión disponible del archivo Installer.xml en la página correspondiente. Importe el archivo Installer.xml hacia el namespace %SYS y realice la compilación. Introduzca el siguiente comando dentro del terminal, en el namespace %SYS: do ##class(Docsearch.Installer).setup(.pVars) Después de eso, la búsqueda estará disponible en la siguiente dirección localhost:[port]/csp/docsearch/index.html Demo Aquí puede ver una demo online sobre cómo se realizan las búsquedas. Conclusión Este proyecto muestra las interesantes y útiles capacidades de las tecnologías iFind e iKnow, que hacen que la búsqueda de datos sea más relevante. Apreciamos mucho cualquier comentario o sugerencia que haga. El código fuente completo con el instalador y la guía de implementación está disponible en GitHub.
Anuncio
David Reche · 14 oct, 2019

Versiones instalables y gratuitas de InterSystems IRIS e IRIS for Health para desarrolladores

¡Hola a tod@s! Hoy anunciamos el lanzamiento de un Área de Descargas para Desarrolladores, con las versiones completas de InterSystems IRIS Community Edition e InterSystems IRIS for Health Community Edition. Están disponibles de forma gratuita para su uso en el desarrollo de aplicaciones. Cualquiera puede usar este área, tan solo debe registrarse, no es necesario ser cliente. Se pueden descargar directamente desde la InterSystems Developer Community eligiendo Download InterSystems IRIS. Esas instancias incluyen una licencia gratuita para utilizar durante 13 meses. Están limitadas a 10GB de datos de usuario, funcionan en equipos de hasta 8 núcleos, soportan 5 conexiones concurrentes y están soportadas para el desarrollo de aplicaciones. Plataformas disponibles: RedHat, Ubuntu, SUSE, Windows y macOS. InterSystems IRIS e InterSystems IRIS for Health también están disponibles en formato contenedor desde el Docker Hub. Para aprender más sobre nuestros productos, puedes visitar nuestra página Getting Started o las páginas de IRIS Data Platform y de InterSystems IRIS for Health en nuestra web. Para profundizar en el desarrollo de software, puedes visitar nuestra página para desarrolladores: Developer resource page. Si ya tienes una cuenta de acceso con InterSystems (para acceder a la Comunidad de Desarrolladores o al Centro de Soporte Internacional WRC, por ejemplo), puedes usar esas credenciales para acceder al nuevo Área de Descargas para Desarrolladores.
Anuncio
Esther Sanchez · 24 oct, 2019

Nuevo vídeo: Desarrollar y gestionar APIs con InterSystems IRIS Data Platform

¡Hola desarrolladores! Ya podéis ver el vídeo completo del webinar que realizaron la semana pasada @David.Reche y @Alberto.Fuentes: Desarrollar y gestionar APIs con InterSystems IRIS Data Platform En el webinar, desarrollan una API REST a partir de especificaciones OpenAPI (Swagger) y explican de forma práctica cómo exponer en formato JSON los objetos que tenemos almacenados en nuestra base de datos. También muestran cómo gestionar APIs tratando aspectos como la gestión de tokens para consumidores de la API, monitorización de la actividad, cómo establecer controles para restringir el uso de la API por tráfico o cómo introducir nuevas versiones. Todo está explicado de la forma más práctica posible, publicando los ejemplos en GitHub y utilizando imágenes Docker y Visual Studio Code También podéis encontrar el vídeo en el canal de YouTube de la Comunidad de Desarrolladores en español >> ¡Esperamos que os resulte interesante! Pssst... ¿De qué os gustaría que trataran los próximos webinars que realizaremos? ¡Nos encantaría ver vuestras propuestas en los comentarios!
Anuncio
David Reche · 7 nov, 2019

Ya están disponibles InterSystems IRIS e IRIS for Health 2019.3

La versión 2019.3 de InterSystems IRIS, IRIS for Health e IRIS Studio ya está disponible. Está disponible a través del Centro de Soporte Internacional, con número de compilación 2019.3.0.311.0. InterSystems IRIS Data Platform 2019.3 incluye muchas funcionalidades nuevas: Support for InterSystems API Manager (IAM) Polyglot Extension (PeX) available for Java Java and .NET Gateway Reentrancy Node-level Architecture for Sharding and SQL Support SQL and Performance Enhancements Infrastructure and Cloud Deployment Improvements Port Authority for Monitoring Port Usage in Interoperability Productions X12 Element Validation in Interoperability Productions Todas estas nuevas funcionalidades se detallan en la documentación y las notas de la versión de InterSystems IRIS 2019.3. InterSystems IRIS for Health 2019.3 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios. FHIR STU3 PATCH Support New IHE Profiles XCA-I and IUA Estas nuevas funcionalidades se detallan en la documentación y las notas de la versión de IRIS for Health 2019.3. InterSystems IRIS Studio 2019.3 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.3 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble. Consulta la documentación de IRIS Studio para más información. 2019.3 es una versión CD (Continuous Delivery, entrega continua), por lo que InterSystems IRIS e IRIS for Health 2019.3 solo están disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 29 oct, 2019

Versiones de prueba de InterSystems IRIS e IRIS for Health 2019.4

¡Hola a tod@s! Ya están disponibles las versiones de prueba de InterSystems IRIS, IRIS for Health e IRIS Studio 2019.4. La imagen del contenedor está disponible a través de la página de descargas para prueba del Centro de Soporte Internacional (WRC). El número de compilación de estas versiones es 2019.4.0.379.0. InterSystems IRIS Data Platform 2019.4 incluye muchas funcionalidades nuevas: Polyglot Extension (PeX) available for .Net ICM support for Tencent Cloud List Class available in the Native API for Java and .Net New CSF (Configuration State File) facility System security, performance, and efficiency enhancements Container and Cloud Deployment improvements InterSystems IRIS for Health 2019.4 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios. Estas nuevas funcionalidades se detallan en: la documentación y las notas de la versión de InterSystems IRIS 2019.4 la documentación y las notas de la versión de IRIS for Health 2019.4 InterSystems IRIS Studio 2019.4 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.4 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble. Al ser una versión CD, solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas.
Artículo
Alberto Fuentes · 10 ene, 2020

Ejemplo: Mostrar Métricas de Monitorización de InterSystems IRIS utilizando la API REST

A continuación veremos cómo mostrar una lista de métricas de ejemplo disponibles a través del servicio `/api/monitor`. En el [artículo anterior](https://es.community.intersystems.com/post/monitorización-de-intersyste...), echamos un vistazo al servicio que expone las métricas de IRIS en formato Prometheus. Veamos cómo configurar y ejecutar [IRIS preview release 2019.4](https://community.intersystems.com/post/intersystems-iris-and-iris-healt...) en un contenedor y listar las métricas disponibles. Asumimos que tienes Docker instalado. Si no es así, descárgalo e instálalo para tu sistema operativo :) Si ya te resulta familiar trabajar con IRIS y contenedores Docker, puedes saltar directamente al **Paso 2. Mostrar métricas**. ### Paso 1. Descargar and ejecutar IRIS en un contenedor Sigue las instrucciones de [Preview Distributions](https://wrc.intersystems.com/wrc/coDistPreview.csp "Preview Distributions") para descargar la **Clave de Licencia Preview** y una **imagen Docker IRIS**. Por ejemplo, yo he escogido **InterSystems IRIS for Health 2019.4**. Sigue las instrucciones de [First Look InterSystems Products in Docker Containers](https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=AF... "Run IRIS in a container instructions"). Este es el proceso que hemos seguido para cargar la imagen Docker. El comando `docker load` tardará algunos instantes en completarse. ``` $ pwd /Users/myhome/Downloads/iris_2019.4 $ ls InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey irishealth-2019.4.0.379.0-docker.tar $ docker load -i irishealth-2019.4.0.379.0-docker.tar 762d8e1a6054: Loading layer [==================================================>] 91.39MB/91.39MB e45cfbc98a50: Loading layer [==================================================>] 15.87kB/15.87kB d60e01b37e74: Loading layer [==================================================>] 12.29kB/12.29kB b57c79f4a9f3: Loading layer [==================================================>] 3.072kB/3.072kB b11f1f11664d: Loading layer [==================================================>] 73.73MB/73.73MB 22202f62822e: Loading layer [==================================================>] 2.656GB/2.656GB 50457c8fa41f: Loading layer [==================================================>] 14.5MB/14.5MB bc4f7221d76a: Loading layer [==================================================>] 2.048kB/2.048kB 4db3eda3ff8f: Loading layer [==================================================>] 1.491MB/1.491MB Loaded image: intersystems/irishealth:2019.4.0.379.0 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE intersystems/irishealth 2019.4.0.379.0 975a976ad1f4 3 weeks ago 2.83GB ``` Por simplicidad, copia la licencia al directorio que utilizaremos como almacenamiento persistente y renómbrala a `iris.key`; ``` $ mkdir -p /Users/myhome/iris/20194 $ cp 'InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey' /Users/myhome/iris/20194/iris.key $ cd /Users/myhome/iris/20194 $ ls iris.key ``` Ejecuta IRIS utilizando el directorio que acabamos de crear para almacenamiento persistente; ``` $ docker run --name iris --init --detach --publish 52773:52773 --volume `pwd`:/external intersystems/irishealth:2019.4.0.379.0 --key /external/iris.key $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 009e52c121f0 intersystems/irishealth:2019.4.0.379.0 "/iris-main --key /e…" About a minute ago Up About a minute (healthy) 0.0.0.0:52773->52773/tcp iris ``` Genial! Ya puedes conectarte al [Portal de Gestión](http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen "Home SMP") del contenedor que tenemos en ejecución. Entraremos con login/password _SuperUser/SYS_; a continuación, el sistema te pedirá que cambies la contraseña por defecto. Dirígete a la configuración de las Aplicaciones Web. `System > Security Management > Web Applications` Verás una aplicación web llamada `/api/monitor`, éste es el servicio que expone las métricas de IRIS. > **No tienes que hacer nada adicional para que el servicio retorne las métrica, simplemente funciona! :)** ### Paso 2. Mostrar métricas En artículos posteriores, emplearemos este endpoint desde Prometheus o SAM para recoger las métricas a intervalos específicos. Pero por ahora, vamos a mostrar la lista completa de métricas disponibles para la instancia. Una forma simple de hacerlo en Linux y OSX es lanzando un HTTP GET a través del comando `curl`; ``` $ curl localhost:52773/api/monitor/metrics : : iris_cpu_usage 0 iris_csp_activity{id="127.0.0.1:52773"} 56 iris_csp_actual_connections{id="127.0.0.1:52773"} 8 iris_csp_gateway_latency{id="127.0.0.1:52773"} .588 iris_csp_in_use_connections{id="127.0.0.1:52773"} 1 iris_csp_private_connections{id="127.0.0.1:52773"} 0 iris_csp_sessions 1 iris_cache_efficiency 35.565 : : Y la lista continúa... ``` Otra forma muy útil de hacerlo es utilizar la aplicación [Postman](https://www.getpostman.com "POSTMAN"). Si tienes instalado Postman, puedes enviar un HTTP GET y examinar las métricas devueltas. ## Resumen Esto es todo por ahora. En el próximo artículo, comenzaremos a recuperar los datos desde _Prometheus_ y veremos un ejemplo de un cuadro de mando de _Grafana_. ### Lista completa de métricas para el contenedor de prueba Un sistema de producción tendrá muchas más métricas disponibles. Como podéis ver por algunas de las etiquetas, por ejemplo `{id="IRISLOCALDATA"}` hay métricas que son definidas por base de datos o por CPU por el tipo de proceso`{id="CSPDMN"}`. ``` iris_cpu_pct{id="CSPDMN"} 0 iris_cpu_pct{id="CSPSRV"} 0 iris_cpu_pct{id="ECPWorker"} 0 iris_cpu_pct{id="GARCOL"} 0 iris_cpu_pct{id="JRNDMN"} 0 iris_cpu_pct{id="LICENSESRV"} 0 iris_cpu_pct{id="WDSLAVE"} 0 iris_cpu_pct{id="WRTDMN"} 0 iris_cpu_usage 0 iris_csp_activity{id="127.0.0.1:52773"} 57 iris_csp_actual_connections{id="127.0.0.1:52773"} 8 iris_csp_gateway_latency{id="127.0.0.1:52773"} .574 iris_csp_in_use_connections{id="127.0.0.1:52773"} 1 iris_csp_private_connections{id="127.0.0.1:52773"} 0 iris_csp_sessions 1 iris_cache_efficiency 35.850 iris_db_expansion_size_mb{id="ENSLIB"} 0 iris_db_expansion_size_mb{id="HSCUSTOM"} 0 iris_db_expansion_size_mb{id="HSLIB"} 0 iris_db_expansion_size_mb{id="HSSYS"} 0 iris_db_expansion_size_mb{id="IRISAUDIT"} 0 iris_db_expansion_size_mb{id="IRISLOCALDATA"} 0 iris_db_expansion_size_mb{id="IRISSYS"} 0 iris_db_expansion_size_mb{id="IRISTEMP"} 0 iris_db_free_space{id="ENSLIB"} .055 iris_db_free_space{id="HSCUSTOM"} 2.3 iris_db_free_space{id="HSLIB"} 113 iris_db_free_space{id="HSSYS"} 9.2 iris_db_free_space{id="IRISAUDIT"} .094 iris_db_free_space{id="IRISLOCALDATA"} .34 iris_db_free_space{id="IRISSYS"} 6.2 iris_db_free_space{id="IRISTEMP"} 20 iris_db_latency{id="ENSLIB"} 0.030 iris_db_latency{id="HSCUSTOM"} 0.146 iris_db_latency{id="HSLIB"} 0.027 iris_db_latency{id="HSSYS"} 0.018 iris_db_latency{id="IRISAUDIT"} 0.017 iris_db_latency{id="IRISSYS"} 0.020 iris_db_latency{id="IRISTEMP"} 0.021 iris_db_max_size_mb{id="ENSLIB"} 0 iris_db_max_size_mb{id="HSCUSTOM"} 0 iris_db_max_size_mb{id="HSLIB"} 0 iris_db_max_size_mb{id="HSSYS"} 0 iris_db_max_size_mb{id="IRISAUDIT"} 0 iris_db_max_size_mb{id="IRISLOCALDATA"} 0 iris_db_max_size_mb{id="IRISSYS"} 0 iris_db_max_size_mb{id="IRISTEMP"} 0 iris_db_size_mb{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 1321 iris_db_size_mb{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 21 iris_db_size_mb{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 209 iris_db_size_mb{id="IRISSYS",dir="/usr/irissys/mgr/"} 113 iris_db_size_mb{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 11 iris_db_size_mb{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 21 iris_db_size_mb{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 1 iris_db_size_mb{id="IRISLOCALDATA",dir="/usr/irissys/mgr/irislocaldata/"} 1 iris_directory_space{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 53818 iris_directory_space{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 53818 iris_directory_space{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 53818 iris_directory_space{id="IRISSYS",dir="/usr/irissys/mgr/"} 53818 iris_directory_space{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 53818 iris_directory_space{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 53818 iris_directory_space{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 53818 iris_disk_percent_full{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 10.03 iris_disk_percent_full{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 10.03 iris_disk_percent_full{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 10.03 iris_disk_percent_full{id="IRISSYS",dir="/usr/irissys/mgr/"} 10.03 iris_disk_percent_full{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 10.03 iris_disk_percent_full{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 10.03 iris_disk_percent_full{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 10.03 iris_ecp_conn 0 iris_ecp_conn_max 2 iris_ecp_connections 0 iris_ecp_latency 0 iris_ecps_conn 0 iris_ecps_conn_max 1 iris_glo_a_seize_per_sec 0 iris_glo_n_seize_per_sec 0 iris_glo_ref_per_sec 7 iris_glo_ref_rem_per_sec 0 iris_glo_seize_per_sec 0 iris_glo_update_per_sec 2 iris_glo_update_rem_per_sec 0 iris_journal_size 2496 iris_journal_space 50751.18 iris_jrn_block_per_sec 0 iris_jrn_entry_per_sec 0 iris_jrn_free_space{id="WIJ",dir="default"} 50751.18 iris_jrn_free_space{id="primary",dir="/usr/irissys/mgr/journal/"} 50751.18 iris_jrn_free_space{id="secondary",dir="/usr/irissys/mgr/journal/"} 50751.18 iris_jrn_size{id="WIJ"} 100 iris_jrn_size{id="primary"} 2 iris_jrn_size{id="secondary"} 0 iris_license_available 31 iris_license_consumed 1 iris_license_percent_used 3 iris_log_reads_per_sec 5 iris_obj_a_seize_per_sec 0 iris_obj_del_per_sec 0 iris_obj_hit_per_sec 2 iris_obj_load_per_sec 0 iris_obj_miss_per_sec 0 iris_obj_new_per_sec 0 iris_obj_seize_per_sec 0 iris_page_space_per_cent_used 0 iris_phys_mem_per_cent_used 95 iris_phys_reads_per_sec 0 iris_phys_writes_per_sec 0 iris_process_count 29 iris_rtn_a_seize_per_sec 0 iris_rtn_call_local_per_sec 10 iris_rtn_call_miss_per_sec 0 iris_rtn_call_remote_per_sec 0 iris_rtn_load_per_sec 0 iris_rtn_load_rem_per_sec 0 iris_rtn_seize_per_sec 0 iris_sam_get_db_sensors_seconds .000838 iris_sam_get_jrn_sensors_seconds .001024 iris_system_alerts 0 iris_system_alerts_new 0 iris_system_state 0 iris_trans_open_count 0 iris_trans_open_secs 0 iris_trans_open_secs_max 0 iris_wd_buffer_redirty 0 iris_wd_buffer_write 0 iris_wd_cycle_time 0 iris_wd_proc_in_global 0 iris_wd_size_write 0 iris_wd_sleep 10002 iris_wd_temp_queue 42 iris_wd_temp_write 0 iris_wdwij_time 0 iris_wd_write_time 0 iris_wij_writes_per_sec 0 ```
Anuncio
David Reche · 12 dic, 2019

Ya están disponibles InterSystems IRIS e IRIS for Health 2019.4

La versión 2019.4 de InterSystems IRIS, IRIS for Health e IRIS Studio ya ha sido lanzada. Está disponible a través del Centro de Soporte Internacional, con número de compilación 2019.4.0.383.0. InterSystems IRIS Data Platform 2019.4 incluye muchas funcionalidades nuevas: New Automatic Configuration Customization System security, performance, and efficiency enhancements including node tables ICM support for Tencent Cloud List Class available in the Native API for Java and .Net Container and Cloud Deployment improvements SQL enhancements InterSystems IRIS for Health 2019.4 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios. Estas nuevas funcionalidades se detallan en: la documentación y notas de la versión de InterSystems IRIS 2019.4 la documentación y notas de la versión de IRIS for Health 2019.4 InterSystems IRIS Studio 2019.4 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.4 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble. 2019.4 es una versión CD (Continuous Delivery, entrega continua), por lo que InterSystems IRIS e IRIS for Health 2019.4 solo están disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 29 ene, 2020

Versiones de prueba de InterSystems IRIS e IRIS for Health 2020.1

¡Hola a tod@s! Ya están disponibles las versiones de prueba de InterSystems IRIS e IRIS for Health 2020.1 Los kits para la instalación y las imágenes del contenedor están disponibles en la página de descargas para prueba del Centro de Soporte Internacional (WRC). El número de compilación de estas versiones es 2020.1.0.199.0 (Nota: número actualizado de 197 a 199 el 12/2/20). InterSystems IRIS Data Platform 2020.1 incluye muchas funcionalidades nuevas: Kernel Performance enhancements, including reduced contention for blocks and cache lines Universal Query Cache - every query (including embedded & class ones) now gets saved as a cached query Universal Shard Queue Manager - for scale-out of query load in sharded configurations Selective Cube Build - to quickly incorporate new dimensions or measures Security improvements, including hashed password configuration Improved TSQL support, including JDBC support Dynamic Gateway performance enhancements Spark connector update MQTT support in ObjectScript (NOTA: esta versión de prueba no incluye las actualizaciones de TLS 1.3 y OpenLDAP, que están planificadas para Disponibilidad General) InterSystems IRIS for Health 2020.1 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye: In-place conversion to IRIS for Health HL7 Productivity Toolkit including Migration Tooling and Cloverleaf conversion X12 enhancements FHIR R4 base standard support Como es una versión EM (Extended Maintenance), podéis comprobar las diferencias entre la versión 2020.1 y la 2019.1. Éstas se detallan en: las notas de la versión de InterSystems IRIS 2020.1 las notas de la versión de IRIS for Health 2020.1 El borrador de la documentación está disponible aquí: Documentación de InterSystems IRIS 2020.1 Documentación de IRIS for Health 2020.1 Las plataformas en las cuales InterSystems IRIS and IRIS for Health 2020.1 están soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas.
Anuncio
David Reche · 1 abr, 2020

Ya están disponibles InterSystems IRIS e IRIS for Health 2020.1

La versión 2020.1 de InterSystems IRIS, IRIS for Health e IRIS Studio ya ha sido lanzada. Los kits para la instalación y los contenedores están disponibles en la página de distribución de software del Centro de Soporte Internacional (WRC), incluyendo las ediciones "community" de InterSystems IRIS e IRIS for Health. El número de compilación de estas versiones es 2020.1.0.215.0. InterSystems IRIS Data Platform 2020.1 incluye muchas funcionalidades nuevas: Mejora en rendimiento del Kernel, incluyendo contención reducida para bloques y lineas cacheadas Universal Query Cache - cada consulta (incluyendo embebidas y de clases) ahora se guardan como cached query Universal Shard Queue Manager - para hacer scale-out de la carga de consultas en configuraciones de shard Construcción de cubos selectiva - para incorporar rápidamente nuevas dimensiones o medidas Mejoras en Seguridad, incluyendo configuraciones para hashed password Soporte a TSQL mejorado, incluyendo el soporte a JDBC Mejoras de rendimiento en el Dynamic Gateway Actualización del conector Spark Soporte de MQTT en ObjectScript InterSystems IRIS for Health 2020.1 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye: Conversión In-place a IRIS for Health HL7 Productivity Toolkit incluyendo Migration Tooling y conversión desde Cloverleaf Mejoras en X12 Soporte base al estándar FHIR R4 Como es una versión EM (Extended Maintenance), podéis comprobar las diferencias entre la versión 2020.1 y 2019.1. Éstas se detallan en: las notas de la versión de InterSystems IRIS 2020.1 las notas de la verisón de IRIS for Health 2020.1 La documentación está disponible aquí: Documentación de InterSystems IRIS 2020.1 Documentación de IRIS for Health 2020.1 InterSystems IRIS Studio 2020.1 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2020.1 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble. Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 16 abr, 2020

Versiones de prueba de InterSystems IRIS e IRIS for Health 2020.2

Ya están disponibles las versiones de prueba 2020.2 de InterSystems IRIS, IRIS for Health e IRIS Studio. El número de compilación de estas versiones es 2020.2.0.196.0. Las imágenes del contenedor, los componentes y las licencias de evaluación están disponibles en la página de descargas para pruebas del Centro de Soporte Internacional (WRC). Los contenedores de la edición Community también pueden obtenerse desde el Docker Store usando los siguientes comandos: docker pull store/intersystems/iris-community:2020.2.0.196.0 docker pull store/intersystems/irishealth-community:2020.2.0.196.0 InterSystems IRIS Data Platform 2020.2 añade soporte para TLS 1.3, lo que ofrece una seguridad mejorada y un mejor rendimiento. También incluye varias mejoras de eficiencia y otras pequeñas mejoras. InterSystems IRIS for Health 2020.2 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye transformaciones de datos bi-direccionales entre FHIR R4 y SDA, soporte para el perfil IHE RMU y otras pequeñas mejoras. Todas estas mejoras se detallan en la: Documentación y notas de la versión de InterSystems IRIS 2020.2 Documentación y notas de la versión de IRIS for Health 2020.2 InterSystems IRIS Studio 2020.2 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2020.2 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché and Ensemble. Al ser una versión CD (Continuous delivery, entrega continua), solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las imágenes para contenedor están disponibles para motores del run-time compatibles con OCI para Linux x86-64 y Linux ARM64, como se detalla en el documento de plataformas soportadas.
Anuncio
Esther Sanchez · 8 mayo, 2020

Nuevo webinar en español: "Implementar integraciones con .NET o Java sobre InterSystems IRIS"

¡Hola a tod@s! Os invitamos a un nuevo webinar en español: "Implementar integraciones con .NET o Java sobre InterSystems IRIS", el 20 de mayo, a las 16:00 CEST. Si eres desarrollador de integraciones con conocimiento en .NET o Java, este webinar te muestra como aumentar aún más la potencia de la plataforma de interoperabilidad InterSystems IRIS, sin necesidad de desarrollar directamente en el framework. Y si ya conoces IRIS, o hasta desarrollas con fluidez nuevos componentes de forma nativa, aprenderás cómo incorporar fácilmente librerías externas Java o .NET para enriquecer rápidamente tus integraciones. ¡Te esperamos! Regístrate aquí >> ¡Recordad! Mañana miércoles 20, webinar gratuito sobre Implementación de integraciones con .NET o Java sobre InterSystems IRIS, a las 16:00 CEST 👍 El webinar empieza en 5 minutos. ¡No os lo perdáis! Podeis verlo en esta página: https://www.youtube.com/watch?v=RocDlHVbS0Y&feature=youtu.be