
No final de março a nova versão da plataforma de dados InterSystems IRIS 2020.1. Nem mesmo a pandemia de coronavírus impediu o lançamento.
Dentre as principais novidades desta versão estão o aumento do desempenho do núcleo, a geração de aplicações REST de acordo com a especificação OpenAPI 2.0, sharding para objetos, um novo tipo de Portal de Gerenciamento, suporte a MQTT, um cache universal de consultas e um novo framework para criação de elementos de produtos em Java ou .NET. A lista completa de mudanças e o Upgrade Checklist em inglês podem ser encontrados em . Para mais detalhes, continue lendo.
InterSystems IRIS 2020.1 é um lançamento com suporte ampliado. A InterSystems lança dois tipos de versões do InterSystems IRIS:
- Lançamentos de entrega contínua. Saem três a quatro vezes ao ano como imagens Docker. Destinam-se ao desenvolvimento de aplicações e à implantação em nuvem ou contêineres Docker.
- Lançamentos com suporte ampliado. Saem com menos frequência, mas são lançadas atualizações com correções. Disponíveis em todas as plataformas suportadas pelo InterSystems IRIS.
Entre os lançamentos com suporte ampliado 2019.1 e 2020.1, houve lançamentos apenas como imagens Docker — 2019.2, 2019.3, 2019.4. Todas as novas funcionalidades e correções desses lançamentos foram incorporadas na versão 2020.1. Algumas funcionalidades mencionadas abaixo apareceram pela primeira vez em um dos lançamentos 2019.2, 2019.3, 2019.4.
Assim.
Desenvolvimento de aplicações REST de acordo com a especificação
Além de , suportado a partir da versão 2019.1.1, na versão 2020.1 surgiram a capacidade de gerar a estrutura do código para um serviço REST de acordo com a especificação no formato OpenAPI 2.0. Para mais informações, consulte a seção da documentação “».
Conversão de instalação do Caché ou Ensemble
Esta versão permite que, durante a instalação, se convierta uma instalação do Caché ou Ensemble em InterSystems IRIS. A própria conversão pode exigir mudanças no código de programa, nas configurações ou em outros scripts, mas na maioria dos casos será simples.
Antes de converter, leia o InterSystems IRIS In-Place Conversion Guide e o InterSystems IRIS Adoption Guide. Esses documentos estão disponíveis no site do Centro de Suporte Global da InterSystems na seção “».
Linguagens do cliente
InterSystems IRIS Native API para Python
Acesso de baixo nível e rápido do Python a arrays multidimensionais onde o InterSystems IRIS armazena dados. Para mais informações, consulte “».
InterSystems IRIS Native API для Node.js
Acesso de baixo nível e rápido do Node.js a arrays multidimensionais onde o InterSystems IRIS armazena dados. Para mais informações, consulte “».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Comunicação bidirecional em gateways Java e .NET
As conexões entre .NET e os gateways Java agora são bidirecionais. Ou seja, um programa em .NET ou Java invocado pelo IRIS através do gateway utiliza a mesma conexão para se comunicar com o IRIS. Saiba mais — «».
Melhorias na API Nativa para Java e .NET
A API Nativa IRIS para Java e .NET agora suporta listas $LIST e passagem de parâmetros por referência.
Novo visual para o Portal de Gerenciamento
Esta versão inclui as primeiras alterações no Portal de Gerenciamento. Elas dizem respeito apenas à aparência e não afetam a funcionalidade.
SQL
Cache de consultas universal. A partir da versão 2020.1, todas as consultas, incluindo consultas embutidas e de classes, serão armazenadas como consultas em cache. Anteriormente, o uso de consultas embutidas requeria a recompilação do programa para gerar novo código de consulta, por exemplo, se um novo índice fosse adicionado ou se as estatísticas da tabela mudassem. Agora, todos os planos de consulta são armazenados em um único cache e são limpos independentemente do programa em que a consulta é utilizada.
Um maior número de tipos de consultas agora pode ser paralelizado, incluindo consultas DML.
Consultas a tabelas particionadas por shards agora podem usar join implícito "->".
Consultas iniciadas a partir do Portal de Gerenciamento agora são executadas em um processo em segundo plano. Consultas longas não serão mais interrompidas devido ao tempo limite da página web. Consultas demoradas agora podem ser canceladas.
Oportunidades de integração
Novo framework para criação de componentes de produto em Java ou .NET
Esta versão inclui um novo framework PEX (Production EXtension), que oferece uma escolha adicional de linguagem para a implementação de componentes de produto. Nesta versão, o PEX suporta Java e .NET para desenvolver serviços de negócios, processos de negócios e operações de negócios, além de adaptadores de entrada e saída. Anteriormente, apenas serviços de negócios e operações de negócios podiam ser criados, e era necessário chamar o gerador de código no Portal de Gerenciamento. O framework PEX oferece ferramentas mais flexíveis para integrar código em Java e .NET em componentes de produto, muitas vezes sem programação em ObjectScript. O pacote PEX inclui as seguintes classes:
Saiba mais — «».
Monitoramento do uso de portas em produtos.
A ferramenta Port Authority monitora as portas utilizadas pelos serviços e operações comerciais. Com ela, é possível identificar as portas disponíveis e reservá-las. Saiba mais — «».
Adaptadores para MQTT
Esta versão inclui adaptadores que suportam o protocolo MQTT (Message Queuing Telemetry Transport), frequentemente utilizado em aplicações para Internet das Coisas (Internet of Things - IoT). Saiba mais — «».
Sharding
Arquitetura Simplificada
Nesta versão, foi introduzida uma maneira mais simples e clara de criar um cluster — com base em servidores individuais (nível node), em vez de áreas, como nas versões anteriores. A nova API — . A nova abordagem é compatível com a antiga — o cluster baseado em áreas (nível namespace) — e não requer alterações nas instalações existentes. Saiba mais — «” e “».
Outras melhorias em sharding:
- Agora é possível co-shard (distribuir entre os mesmos shards partes duas tabelas frequentemente conectadas) quaisquer duas tabelas. Antes, isso só era possível com tabelas que tinham uma chave shard comum. Com esta versão, a sintaxe COSHARD WITH se aplica também a tabelas com ID de sistema. Saiba mais — «” e “».
- Antes, era possível marcar uma tabela como cluster apenas através de DDL; agora isso pode ser feito também na descrição da classe — nova palavra-chave Sharded. Saiba mais — «».
- O modelo de objeto agora suporta sharding. Os métodos %New(), %OpenId e %Save() funcionam com objetos de classe, cujos dados estão distribuídos entre vários shards. Observe que o código é executado no servidor ao qual o cliente está conectado, e não onde o objeto está armazenado.
- O algoritmo de execução de solicitações em cluster foi aprimorado. O Gerenciador de Filas de Solicitações Unificado coloca as solicitações em fila para execução em um pool de processos, em vez de iniciar novos processos para cada solicitação. O número de processos no pool é determinado automaticamente, com base nos recursos do servidor e na carga.
Infraestrutura e Implantação em Nuvem.
Esta versão trouxe melhorias na infraestrutura e na implantação em nuvem, incluindo:
- Suporte ao Tencent Cloud. O InterSystems Cloud Manager (ICM) agora suporta a criação de infraestrutura e implantação de aplicações baseadas no InterSystems IRIS na Tencent Cloud.
- Suporte a volumes nomeados (named volumes) no Docker, além do montante de pastas (bind mount).
- ICM suporta escalabilidade flexível — as configurações agora podem ser escaladas, ou seja, recriadas com mais ou menos nós. Saiba mais — «” e “».
- Melhorias na criação do seu próprio contêiner.
- ICM suporta uma nova arquitetura de sharding.
- O usuário padrão nos contêineres agora não é root.
- ICM suporta a criação e implantação de redes privadas, onde um nó de bastião conecta a rede privada à rede pública, oferecendo proteção adicional contra ataques de negação de serviço.
- Suporte à descoberta de serviços via RPC protegido.
- ICM suporta implantação em várias regiões. Isso garante alta disponibilidade do sistema, mesmo que toda a região pare de funcionar.
- Possibilidade de atualizar o ICM e manter informações sobre sistemas já implantados.
- Modo sem contêiner — o ICM agora pode implantar diretamente, sem contêineres, configurações de cluster na Google Cloud Platform, além de instalar o Web Gateway no Ubuntu ou SUSE.
- Suporte à fusão de iris.cpf de dois arquivos. Isso ajuda o ICM a executar o InterSystems IRIS com diferentes configurações, dependendo do modo em que a instalação está operando. Essa funcionalidade simplifica a automação e o suporte a várias ferramentas de gerenciamento de configurações, como Kubernetes.
Análise
Reconstrução seletiva de cubo
A partir deste lançamento, o InterSystems IRIS Business Intelligence (anteriormente conhecido como DeepSee) suporta a construção seletiva de cubo — apenas um indicador ou dimensão. É possível alterar a descrição do cubo e reconstruir apenas o que foi alterado, mantendo a disponibilidade de todo o cubo durante a reconstrução.
Conector PowerBI
O Microsoft PowerBI agora suporta a operação com tabelas e cubos do InterSystems IRIS. O conector é fornecido com o PowerBI, a partir do lançamento de abril de 2019. Saiba mais — «».
Pré-visualização dos resultados da consulta
Nesta versão, um novo modo de pré-visualização foi adicionado ao compor tabelas dinâmicas no Analyzer. Assim, é possível avaliar rapidamente a validade da consulta, sem esperar pelos resultados completos.
Outras melhorias
- A travessia de global pela função $ORDER em ordem inversa (direction = -1) agora é tão rápida quanto na ordem direta.
- Desempenho de logging aprimorado.
- Suporte adicionado ao Apache Spark 2.3, 2.4.
- Suporte adicionado ao cliente WebSocket. Classe %Net.WebSocket.Client.
- A classe de controle de versão agora lida com eventos de alterações na página do produto.
- Listas brancas para filtrar solicitações permitidas a CSP, ZEN e REST.
- Suporte ao .NET Core 2.1.
- Desempenho ODBC aprimorado.
- Log estruturado para facilitar a análise de messages.log.
- API para verificação de erros e avisos. Classe %SYSTEM.Monitor.GetAlerts().
- O compilador de classes agora verifica se o nome do global na descrição de armazenamento não ultrapassa o comprimento máximo (31 caracteres) e retorna um erro caso contrário. Antes, o nome do global era truncado para 31 caracteres sem aviso.
Onde encontrar
Se você tiver suporte — baixe o pacote na seção do site wrc.intersystems.com
Se você apenas deseja experimentar o InterSystems IRIS —
Ainda mais fácil pelo Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
No dia 7 de abril às 17:00, horário de Moscovo, ocorrerá um webinar dedicado ao novo lançamento. Será conduzido por Jeff Fried (Diretor de Gestão de Produtos) e Joe Lichtenberg (Diretor de Marketing de Produtos e Indústria). O webinar será em inglês.
Fonte: habr.com
