
A finales de marzo se lanzó la nueva versión de la plataforma de datos InterSystems IRIS 2020.1. Incluso la pandemia de coronavirus no impidió el lanzamiento.
Entre las novedades más importantes de esta versión se encuentran: el aumento del rendimiento del núcleo, la generación de aplicaciones REST según la especificación OpenAPI 2.0, sharding para objetos, un nuevo tipo de Portal de Gestión, soporte para MQTT, caché universal de consultas, y un nuevo marco para la creación de elementos de productos en Java o .NET. La lista completa de cambios y el Upgrade Checklist en inglés se pueden encontrar en . Más detalles a continuación.
InterSystems IRIS 2020.1 es una versión con soporte extendido. InterSystems lanza dos tipos de versiones de InterSystems IRIS:
- Versiones de entrega continua. Se publican tres o cuatro veces al año en forma de imágenes de Docker. Están destinadas al desarrollo de aplicaciones y a ser desplegadas en la nube o en contenedores Docker.
- Versiones con soporte extendido. Se publican con menos frecuencia, pero reciben versiones con correcciones. Se lanzan en todas las plataformas soportadas por InterSystems IRIS.
Entre las versiones con soporte extendido 2019.1 y 2020.1, solo se lanzaron versiones en imágenes de Docker — 2019.2, 2019.3, 2019.4. Todas las nuevas funciones y correcciones de estas versiones se incluyeron en 2020.1. Algunas capacidades de las enumeradas a continuación aparecieron por primera vez en una de las versiones 2019.2, 2019.3, 2019.4.
Entonces.
Desarrollo de aplicaciones REST según la especificación
Además de , que se soporta desde la versión 2019.1.1, en la versión 2020.1 se añadió la capacidad de generar el esqueleto de código para un servicio REST según la especificación en formato OpenAPI 2.0. Puede encontrar más detalles en la sección de documentación "».
Conversión de instalación de Caché o Ensemble
Esta versión permite convertir la instalación de Caché o Ensemble en InterSystems IRIS durante la instalación. La conversión en sí puede requerir cambios en el código fuente, configuraciones u otros scripts, pero en la mayoría de los casos será simple.
Antes de realizar la conversión, lea la Guía de Conversión In-Place de InterSystems IRIS y la Guía de Adopción de InterSystems IRIS. Estos documentos están disponibles en el sitio web del Centro de Soporte Global de InterSystems en la sección "».
Lenguajes de cliente
InterSystems IRIS Native API para Python
Acceso rápido de bajo nivel desde Python a arreglos multidimensionales en los que InterSystems IRIS almacena datos. Más información en "».
InterSystems IRIS Native API для Node.js
Acceso rápido de bajo nivel desde Node.js a arreglos multidimensionales en los que InterSystems IRIS almacena datos. Más información en "».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Comunicación bidireccional en gateways de Java y .NET
Ahora las conexiones entre .NET y los gateways de Java son bidireccionales. Es decir, un programa en .NET o Java llamado desde IRIS a través del gateway utiliza esta misma conexión para comunicarse con IRIS. Más detalles — «».
Mejoras en la API nativa para Java y .NET
La API nativa de IRIS para Java y .NET soporta listas $LIST y el paso de parámetros por referencia.
Nueva apariencia del Portal de Administración
Esta versión incluye los primeros cambios en el Portal de Administración. Por ahora, se refieren solo a la apariencia y no afectan la funcionalidad.
SQL
Cache universal de consultas. A partir de 2020.1, todas las consultas, incluidas las consultas integradas y las consultas de clases, se almacenarán como consultas en caché. Anteriormente, el uso de consultas integradas requería recompilar el programa para generar un nuevo código de consulta, por ejemplo, si se añadía un nuevo índice o cambiaban las estadísticas de la tabla. Ahora todos los planes de consulta se almacenan en un único caché y se limpian independientemente del programa en el que se utilice la consulta.
Un mayor número de tipos de consultas ahora se paraleliza, incluyendo las consultas DML.
Las consultas a tablas divididas en shards ahora pueden usar un join implícito "->".
Las consultas iniciadas desde el Portal de Administración ahora se ejecutan en segundo plano. Las consultas prolongadas no se caerán por el tiempo de espera de la página web. Las consultas que tardan mucho ahora se pueden cancelar.
Capacidades de integración
Nuevo marco para crear elementos de producto en Java o .NET
Esta versión incluye un nuevo marco PEX (Production EXtension), que ofrece una mayor selección de lenguajes para implementar componentes de producto. En esta versión, PEX soporta Java y .NET para el desarrollo de servicios empresariales, procesos empresariales y operaciones empresariales, así como para adaptadores entrantes y salientes. Anteriormente solo se podían crear servicios empresariales y operaciones empresariales y era necesario llamar al generador de código en el Portal de Administración. El marco PEX proporciona herramientas más flexibles para incluir código en Java y .NET en componentes de producto, a menudo sin necesidad de programar en ObjectScript. El paquete PEX incluye las siguientes clases:
Más detalles — «».
Monitoreo del uso de puertos en producciones.
La herramienta Port Authority supervisa los puertos utilizados por los servicios y operaciones comerciales. Con ella, es posible identificar los puertos disponibles y reservarlos. Más información — «».
Adaptadores para MQTT
Esta versión incluye adaptadores que soportan el protocolo MQTT (Message Queuing Telemetry Transport), que se utiliza frecuentemente en aplicaciones de Internet de las Cosas (IoT). Más información — «».
Sharding
Arquitectura Simplificada
En esta versión, se ha introducido una forma más sencilla y clara de crear un clúster — basándose en servidores individuales (nivel de nodo), en lugar de en áreas, como en versiones anteriores. La nueva API es — . El nuevo enfoque es compatible con el antiguo — clúster basado en áreas (nivel de namespace) — y no requiere cambios en las instalaciones existentes. Más información — «» y «».
Otras mejoras en sharding:
- Ahora se pueden co-shardear (distribuir en los mismos shards las partes más frecuentemente unidas de dos tablas) cualquier par de tablas. Antes, esto solo era posible con tablas que compartían una clave de shard común. A partir de esta versión, la sintaxis COSHARD WITH también se aplica a tablas con Id de sistema. Más información — «» y «».
- Antes, marcar una tabla como clúster solo era posible a través de DDL, ahora también se puede hacer en la descripción de la clase — nueva palabra clave Sharded. Más información — «».
- El modelo objeto ahora soporta sharding. Los métodos %New(), %OpenId y %Save() funcionan con objetos de clase cuyos datos están distribuidos en varios shards. Tenga en cuenta que el código se ejecuta en el servidor al que se conecta el cliente, no en el que se almacena el objeto.
- Se ha mejorado el algoritmo de ejecución de consultas en clúster. El administrador de cola de consultas (Unified Shard Queue Manager) coloca las consultas en cola para que un grupo de procesos las ejecute, en lugar de iniciar nuevos procesos para cada consulta. El número de procesos en el grupo se determina automáticamente, según los recursos del servidor y la carga.
Infraestructura y Despliegue en la Nube.
Esta versión incluye mejoras en la infraestructura y el despliegue en la nube, incluyendo:
- Soporte para Tencent Cloud. InterSystems Cloud Manager (ICM) ahora soporta la creación de infraestructura y el despliegue de aplicaciones basadas en InterSystems IRIS en Tencent Cloud.
- Soporte para volúmenes nombrados (named volumes) en Docker, además del montaje de carpetas (bind mount).
- ICM admite la escalabilidad flexible: las configuraciones ahora pueden ser escaladas, es decir, recreadas con más o menos nodos. Más información — «» y «».
- Mejoras en la creación de contenedores personalizados.
- ICM admite una nueva arquitectura de particionamiento.
- El usuario por defecto en los contenedores ahora no es root.
- ICM admite la creación y el despliegue de redes privadas, donde un nodo bastión conecta la red privada con la red pública, ofreciendo así una protección adicional contra ataques de Denegación de Servicio.
- Soporte para la detección de servicios a través de RPC seguro.
- ICM admite despliegues en múltiples regiones. Esto garantiza una alta disponibilidad del sistema, incluso si toda la región deja de funcionar.
- Capacidad para actualizar ICM y mantener la información sobre los sistemas ya desplegados.
- Modo sin contenedores: ICM ahora puede desplegar configuraciones de clúster directamente en Google Cloud Platform sin contenedores, así como instalar Web Gateway en Ubuntu o SUSE.
- Soporte para la fusión de iris.cpf desde dos archivos. Esto ayuda a ICM a ejecutar InterSystems IRIS con diferentes configuraciones dependiendo del modo en que se esté ejecutando la instalación. Esta característica facilita la automatización y el soporte de diversas herramientas de gestión de configuraciones, como Kubernetes.
Analítica
Reconstrucción selectiva del cubo
A partir de esta versión, InterSystems IRIS Business Intelligence (anteriormente conocido como DeepSee) admite la construcción selectiva de cubos: solo un indicador o dimensión. Se puede modificar la descripción del cubo y reconstruir solo lo que ha cambiado, manteniendo la disponibilidad del cubo completo durante la reconstrucción.
Conector PowerBI
Microsoft PowerBI ahora admite trabajar con tablas y cubos de InterSystems IRIS. El conector se incluye con PowerBI desde el lanzamiento de abril de 2019. Más información — «».
Previsualización de resultados de consultas
En esta versión se introdujo un nuevo modo de previsualización al crear tablas dinámicas en Analyzer. Así se puede evaluar rápidamente la corrección de la consulta sin esperar por los resultados completos.
Otras mejoras
- Recorrer la global con la función $ORDER en orden inverso (dirección = -1) ahora es tan rápido como en orden directo.
- Se mejoró el rendimiento del registro.
- Se añadió soporte para Apache Spark 2.3, 2.4.
- Se añadió soporte para cliente WebSocket. Clase %Net.WebSocket.Client.
- La clase de control de versiones ahora maneja eventos ante cambios en la página de productos.
- Listas blancas para filtrar solicitudes permitidas a CSP, ZEN y REST.
- Soporte para .NET Core 2.1.
- Mejorada la performance de ODBC.
- Registro estructurado para facilitar el análisis de messages.log.
- API para la verificación de errores y advertencias. Clase %SYSTEM.Monitor.GetAlerts().
- El compilador de clases ahora verifica que el nombre del global en la descripción de almacenamiento no exceda la longitud máxima (31 caracteres) y devuelve un error si es así. Anteriormente, el nombre del global se truncaba a 31 caracteres sin advertencia.
Dónde encontrar
Si tienes soporte, descarga el paquete desde la sección del sitio wrc.intersystems.com
Si solo deseas probar InterSystems IRIS,
Aún más fácil con Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
El 7 de abril a las 17:00 hora de Moscú se llevará a cabo un webinar sobre el nuevo lanzamiento. Serán presentados por Jeff Fried (Director de Gestión de Productos) y Joe Lichtenberg (Director de Producto y Marketing Industrial). El webinar será en inglés.
Fuente: habr.com
