Pesquisar

Limpar filtro
Anúncio
Angelo Bruno Braga · jan 16, 2023

Lançamento do Gerenciador de Pacotes InterSystems versão 0.5.2

Acabamos de lançar uma pequena atualização no gerenciador de pacotes, que foi renomeado de ZPM para IPM, conforme expliquei em Novembro. É puramente uma versão de correção de bug, interpretando corretamente os códigos de retorno ROBOCOPY e corrigindo uma regressão que impedia a instalação de determinados pacotes. Obtenha aqui: https://github.com/intersystems/ipm/releases/tag/v0.5.2
Anúncio
Rochael Ribeiro · Jun. 6, 2022

InterSystems anuncia o Lançamento Geral da versão 2022.1 do InterSystems IRIS, IRIS for Health & HealthShare Health Connect

A InterSystems está grata em anunciar que as versões 2022.1 dos produtos InterSystems IRIS Data Platform, InterSystems IRIS for Health e HealthShare Health Connect estão agora disponíveis. A versão 2022.1 é uma versão de manutenção estendida, significando que as compilações de manutenção ficarão disponíveis por dois anos, seguidos de dois anos de compilações específicas de segurança. Destaques da Versão Atualização das Plataformas Suportadas A Plataforma de Dados InterSystems IRIS 2022.1 expande o suporte às plataformas, incluindo os seguintes novos e atualizados sistemas operacionais para cargas de trabalho de produção: Windows Server 2022 Windows 11 AIX 7.3 Oracle Linux 8 Também estamos felizes em anunciar que tanto os processadores Apple’s M1 quanto Intel são suportados com o MacOS 12 (Monterey) para ambientes de desenvolvimento. Melhor Desenvolvimento Python Nativo – utilize o Python & o ObjectScript dentro do IRIS nativamente Adaptadores de Interoperabilidade para Kafka, AWS S3, AWS SNS & CloudWatch Experiência redesenhada para o Production Extensions (PEX) Velocidade, Escalabilidade & Segurança Rebalanceamento de Shards Online Adaptive SQL Compressão de Journal & Stream TLS 1.3, Suporte OAuth 2 para email Analytics & IA SQL Loader Melhorias de Implantação para o InterSystems Reports Maiores detalhes sobre todas estas funcionalidades podem ser encontradas na documentação do produto: InterSystems IRIS 2022.1: documentação e notas da versão InterSystems IRIS for Health 2022.1: documentação e notas da versão HealthShare Health Connect 2022.1: documentação e notas da versão Como obter As plataformas estão disponíveis tanto em pacotes clássicos de instalação como através de imagens de contêineres. Para uma lista completa de instaladores e imagens de contêineres disponíveis, consultem por favor o documento de Plataformas Suportadas. Pacotes completos de instalação para cada produto são disponibilizados através da página de Distribuição de Software do WRC. Utilizando a opção de instalação Customizada, você poderá selecionar as opções que você precisar, como o InterSystems Studio e o IntegratedML, para ajustar a instalação a suas necessidades. Imagens de contêineres para as Edições Enterprise do InterSystems IRIS e IRIS for Health, assim como todos os componentes correspondentes, estão disponíveis a partir do InterSystems Container Registry utilizando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-arm64:2022.1.0.209.0 Para alista completa de imagens disponíveis, consulte por favor a documentação ICR. Imagens de contêineres para a Edição da Comunidade também podem ser baixadas do InterSystems Container Registry utilizando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-community-arm64:2022.1.0.209.0 O InterSystems IRIS Studio 2022.1 é uma IDE isolada para utilização no Microsoft Windows e pode ser baixada através da página de Download de Componentes do WRC. Ele funciona com o InterSystems IRIS e IRIS for Health das versões 2022.1 e anteriores. A InterSystems também suporta o plugin VSCode-ObjectScript para desenvolvimento de aplicações para o InterSystems IRIS com o Visual Studio Code, que está disponível para Microsoft Windows, Linux e MacOS. Nossas listas correspondentes nos principais marketplaces em nuvem serão atualizados nos próximos dias. O identificador da compilação desta versão é 2022.1.0.209.0.
Artigo
Nikita Savchenko · Out. 26, 2020

Explore os dados de texto com o InterSystems iKnow Entity Browser

Este artigo apresenta o InterSystems iKnow Entity Browser, uma aplicação web que permite visualizar dados de texto extraídos e organizados obtidos de um grande número de textos, alimentado pela tecnologia InterSystems iKnow, também conhecida como InterSystems Text Analytics no InterSystems IRIS. Sinta-se à vontade para [experimentar a demonstração](https://intersystems-ru.github.io/iknow-entity-browser/) dessa ferramenta ou aprender mais sobre ela no [InterSystems Open Exchange](https://openexchange.intersystems.com/index.html#!/package/iknow-entity-browser). Comecei o desenvolvimento deste projeto no final de 2016. De agora em diante, o [meu](https://nikita.tk/) iKnow Entity Browser é usado em todo o mundo por aqueles que usam a tecnologia InterSystems e por aqueles que fazem extração de texto. Este artigo deveria ter aparecido antes, entretanto, nunca é tarde para contar algo sobre coisas úteis! ## Sobre o que é o InterSystems Text Analytics InterSystems iKnow (ou InterSystems Text Analytics) é uma tecnologia de NLP incorporável que permite extrair dados significativos de textos. Bem, não apenas para extrair esses dados, mas também para coletá-los, vinculá-los, filtrá-los e priorizá-los. Como resultado, o InterSystems iKnow fornece uma base sólida para a construção de aplicações de dados para mineração de dados. Do ponto de vista da programação, o iKnow fornece uma API rica que permite incorporar essa tecnologia a qualquer aplicação, independentemente de sua linguagem de programação. O iKnow Entity Browser usa esta API para visualizar os dados processados na forma de uma árvore de conceitos e relações. Antes do lançamento do InterSystems iKnow Entity Browser, a única solução pronta para uso disponível para exploração de dados era o visualizador incorporado do iKnow, que é enviado junto com os produtos baseados no InterSystems Caché e IRIS. Este visualizador apresenta muitas ferramentas úteis principalmente para pesquisar algo no texto processado (no iKnow é chamado de domínio), enquanto o iKnow Entity Browser é criado também para visualizar e organizar conceitos em um texto. Visualização do Portal de Conhecimento iKnow ## iKnow Entity Browser O iKnow Entity Browser é um projeto de código aberto, o que significa que qualquer pessoa pode contribuir com seu núcleo. Aqui está a lista de recursos que foram desenvolvidos: visualização de conceitos semelhantes e relacionados como uma árvore (diagrama de floco de neve), suporte a ampliação e redução de zoom; ferramentas de edição de gráficos: operações de seleção, exclusão, desfazer e refazer; customização da fonte de dados, que também permite explorar o gráfico em servidores remotos; visualização tabular personalizável de todas as entidades apresentadas em um gráfico, que também pode ser exportada como uma planilha *.csv; interface de usuário responsiva, compatível com toque e dispositivos móveis. Demonstração de gráfico do iKnow Entity Browser Instalação A instalação do iKnow Entity Browser é bastante direta. Baixe a versão mais recente (arquivo XML) da aplicação e importe-a para o namespace habilitado para iKnow (por exemplo, SAMPLES). Isso funciona com todos os lançamentos mais recentes dos produtos InterSystems, incluindo a plataforma de dados InterSystems IRIS. Para importar o arquivo XML, você pode arrastar e soltar o arquivo na janela do Studio (Atelier). Alternativamente, você pode importar o arquivo usando o portal de gerenciamento de sistemas, no explorador de sistemas - classes. Em seguida, abra o seu navegador na página web http://localhost:57772/EntityBrowser/ (altere o host/porta respectivamente para a configuração do seu servidor e lembre-se de colocar uma barra / no final da URL). Para excluir a aplicação, basta excluir o pacote EntityBrowser do Studio/Atelier. A aplicação web instalada será excluída automaticamente da mesma forma que foi criada durante a instalação, se não foi modificada desde então. Atualmente, para usar o iKnow Entity Browser em diferentes namespaces, você precisa importá-lo para cada namespace habilitado para iKnow e configurar manualmente a aplicação web (por exemplo, você pode clonar a aplicação /EntityBrowser e renomeá-la). Nesse caso, altere as configurações dentro da aplicação web para as correspondentes (leia o guia de personalização abaixo). Se você instalou o iKnow Entity Browser no servidor e tornou a aplicação web pública, pode se conectar a esse servidor a partir de qualquer front-end, até mesmo a partir desta aplicação de demonstração, por exemplo. Personalização O menu de configuração da aplicação, localizado no canto superior direito da interface do usuário, permite personalizar a aparência e a fonte de dados. No menu de configurações, você pode especificar o seguinte (veja a imagem abaixo): URL da fonte de dados, que identifica o servidor com o navegador de entidade iKnow instalado (aplicação web /EntityBrowser). Nome do domínio. Ao criar um novo domínio no InterSystems iKnow, você especifica o nome do domínio. Este nome vai para a entrada de nome de domínio. Um conceito que constrói o gráfico. Por padrão, o iKnow Entity Browser constrói o gráfico a partir de conceitos relacionados ao conceito que você especifica, no entanto, você pode alterá-lo para conceitos semelhantes, usando o menu suspenso do lado esquerdo da entrada do conceito ou do menu suspenso menu inferior na visualização principal, se ativado. Se deve ou não colocar a entrada do conceito na visualização principal. Se deve ou não colocar o menu suspenso do tipo de consulta na visualização principal. Se deve ou não mostrar nós ocultos na visualização tabular. Os nós ocultos são aqueles que não são expandidos em uma visualização, mas estão presentes em um resultado de consulta. Colunas que são exibidas em uma visualização tabular. Aqui você pode personalizar o nome da coluna e selecionar um valor que exibe (ID, tipo de borda de entrada, rótulo, pontuação, propagação (spread), frequência, rótulo do conceito pai, ID do conceito pai). Redefinir todas as configurações para os padrões.    Configurações do iKnow Entity Browser O Gráfico Uma vez que o conceito de seed é especificado nas configurações, o iKnow Entity Browser constrói um gráfico de conceitos semelhantes ou relacionados ao conceito de seed. Você pode brincar com este gráfico arrastando seus nós, no entanto, a força física sempre tentará organizá-lo na forma de um diagrama de floco de neve. O gráfico pode ser editado usando os controles na parte inferior da tela. Isso inclui os botões desfazer/refazer, aumentar/diminuir o zoom e redefinir os botões de zoom, redefinir o botão de seleção, desvincular e excluir botões de seleção. Passar o mouse sobre qualquer um desses botões exibe uma dica de ferramenta. Menu com controles Caso precise de uma lista de conceitos selecionados, você pode alternar uma visualização tabular pressionando o botão correspondente no canto superior direito. Tudo o que você faz no gráfico fica sincronizado com a visualização tabular e vice-versa. Na visualização tabular, quando você passa o mouse sobre uma das linhas, o nó correspondente é destacado no gráfico. Se você clicar na linha, a visualização do gráfico se concentra automaticamente no nó correspondente. Assim como no gráfico, você pode clicar nos botões nas linhas da tabela para selecionar/desmarcar os nós. Visualização Tabular Depois de ter uma seleção de nós, você pode exportá-los como uma tabela no formato *.csv. Pressione o botão de visualização tabular no canto superior direito para que a tabela apareça e então você encontrará o botão "Exportar". Isso exportará todos os nós selecionados na forma de uma tabela, a mesma tabela que você tem em uma visualização tabular. Tem Mais iKnow Entity Browser é apenas um dos vários projetos que fiz para a corporação InterSystems. Aqui estão alguns, se você ainda não viu esses projetos: WebTerminal, Visual Editor, Class Explorer, Light Pivot Table, GlobalsDB Admin. Encontre esses e outros projetos relacionados à InterSystems no InterSystems Marketplace. Todos os meus projetos são de código aberto, permitindo que outros contribuam. O código desses projetos está disponível no GitHub. Você também pode usar seu código como um exemplo para construir sua própria aplicação sobre os produtos da InterSystems. Se você der uma olhada mais de perto, descobrirá que a maioria deles são pacotes instaláveis, enviados em um único arquivo XML. Se você está curioso em usar a mesma estratégia para seus pacotes, confira este artigo. Espero que você ache o iKnow Entity Browser e outros projetos úteis! Aproveite!
Anúncio
Angelo Bruno Braga · Nov. 30, 2020

O Advento do Código 2020 com a InterSystems! Inscreva-se para ganhar prêmios!

Olá Desenvolvedores, Vocês estão preparados para participar de nossa competição anual de Dezembro ? Junte-se ao concurso o Advento do Código 2020 da InterSystems, participe em nosso concurso de ObjectScript e ganhe prêmios !!! 🏆 Nosso Placar 🏆 Aqui você consegue ver os participantes do ano passado. 👉🏼 Junte-se ao placar privado de ObjectScript com o código 130669-ab1f69bf. Nota: Você precisa se inscrever para o Advento de Código (ex.: com uma conta GitHub / Google / Twitter / Reddit ) para ver o placar e participar no concurso. Prêmios: 🥇 1° lugar - US$3,000 🥈 2° lugar - US$2,000 🥉 3° lugar - US$1,000 Todos os ganhadores também receberão uma insígnia especial do Global Master. Nota: Funcionários da InterSystems não concorrem a prêmios em dinheiro. Condições para ganhar: Para ganhar nosso prêmio você deverá estar no topo do Placar ObjectScript , fazer o upload de todas as soluções em um repositório público no GitHub e apresentar o código escrito em InterSystems ObjectScript no formulário UDL , como no modelo abaixo: ⬇️ Concurso o Advento do Código 2020 modelo ObjectScript Então! Os primeiros desafios serão desbloqueados dia 1° de dezembro às 02:00 horário de Brasília. Boa sorte a todos !!!
Artigo
Alexey Maslov · Fev. 1, 2021

Processamento Paralelo de Dados Multimodelos no InterSystems IRIS e Caché

Como todos nós sabemos, o InterSystems IRIS possui uma ampla gama de ferramentas para melhorar a escalabilidade dos sistemas de aplicação. Em particular, muito foi feito para facilitar o processamento paralelo de dados, incluindo o uso de paralelismo no processamento de consultas SQL e o recurso mais chamativo do IRIS: o sharding. No entanto, muitos desenvolvimentos maduros que começaram no Caché e foram transportados para o IRIS usam ativamente os recursos de multimodelos deste DBMS, que são entendidos como permitindo a coexistência de diferentes modelos de dados dentro de um único banco de dados. Por exemplo, o banco de dados [HIS qMS](https://openexchange.intersystems.com/package/HIS-qMS) contém modelos de dados semânticos relacionais (registros médicos eletrônicos), relacionais tradicionais (interação com PACS) e hierárquicos (dados de laboratório e integração com outros sistemas). A maioria dos modelos listados é implementada usando a ferramenta qWORD do [SP.ARM](https://openexchange.intersystems.com/company/SP-ARM) (um mini-DBMS que é baseado no acesso direto a globais). Portanto, infelizmente, não é possível usar os novos recursos de processamento de consulta paralela para escalonamento, uma vez que essas consultas não usam o acesso IRIS SQL. Enquanto isso, conforme o tamanho do banco de dados cresce, a maioria dos problemas inerentes a grandes bancos de dados relacionais tornam-se adequados para os não relacionais. Portanto, esse é o principal motivo pelo qual estamos interessados ​​no processamento paralelo de dados como uma das ferramentas que podem ser usadas para escalonamento. Neste artigo, gostaria de discutir os aspectos do processamento paralelo de dados com os quais tenho lidado ao longo dos anos ao resolver tarefas que raramente são mencionadas em discussões sobre Big Data. Vou me concentrar na transformação tecnológica de bancos de dados, ou melhor, em tecnologias de transformação de bancos de dados. Não é segredo que o modelo de dados, a arquitetura de armazenamento e a plataforma de software e hardware geralmente são escolhidos nos estágios iniciais do desenvolvimento do sistema, geralmente quando o projeto ainda está longe de ser concluído. No entanto, algum tempo passará, e é bastante comum quando vários anos após a implantação do sistema, os dados precisem ser migrados por um motivo ou outro. Aqui estão apenas algumas das tarefas comumente encontradas (todos os exemplos são tirados da vida real): 1. Uma empresa está planejando se internacionalizar e seu banco de dados com codificação de 8 bits deve ser convertido para Unicode. 2. Um servidor desatualizado está sendo substituído por um novo, mas é impossível transferir perfeitamente os registros (journals) entre os servidores (usando o espelhamento ou os recursos do sistema Shadowing IRIS) devido a restrições de licenciamento ou falta de recursos para atender às necessidades existentes, como, por exemplo, quando você está tentando resolver uma tarefa (1). 3. Você descobre que precisa alterar a distribuição dos globais entre os bancos de dados, por exemplo, movendo um grande global com imagens para um banco de dados separado. Você deve estar se perguntando o que há de tão difícil nesses cenários. Tudo o que você precisa fazer é parar o sistema antigo, exportar os dados e importá-los para o novo sistema. Mas se você estiver lidando com um banco de dados com várias centenas de gigabytes (ou mesmo vários terabytes) de tamanho e seu sistema estiver funcionando no modo 24x7, você não conseguirá resolver nenhuma das tarefas mencionadas usando as ferramentas IRIS padrão. ## Abordagens básicas para paralelização de tarefas ### Paralelização "Vertical" Suponha que você possa dividir uma tarefa em várias tarefas de componentes. Se você tiver sorte, descobrirá que pode resolver algumas delas em paralelo. Por exemplo, - Preparar dados para um relatório (cálculos, agregação de dados…) - Aplicar regras de estilo - Imprimir relatórios todas podem ser executadas ao mesmo tempo para vários relatórios: um relatório ainda está em fase de preparação, outro já está sendo impresso ao mesmo tempo, etc. Essa abordagem não é nova. É utilizada desde o advento do processamento de dados em lote, ou seja, há 60 anos. No entanto, embora não seja um conceito novo, ainda é bastante útil. Contudo, você só perceberá um efeito de aceleração perceptível quando todas as subtarefas tiverem um tempo de execução comparável, e nem sempre é esse o caso. ### Paralelização "Horizontal" Quando a ordem das operações para resolver uma tarefa consiste em iterações que podem ser executadas em uma ordem arbitrária, elas podem ser executadas ao mesmo tempo. Por exemplo: - Pesquisa contextual no global: - Você pode dividir o global em subglobais ($order pelo primeiro índice). - Pesquisar separadamente em cada um deles. - Reunir os resultados da pesquisa. - Transferir o global para outro servidor por meio de um soquete ou ECP: - Dividir o global em partes. - Passar cada um deles separadamente. Recursos comuns dessas tarefas: - Processamento idêntico em subtarefas (até compartilhar os mesmos parâmetros). - A correção do resultado final não depende da ordem de execução dessas subtarefas. - Há uma conexão fraca entre as subtarefas e a tarefa "pai" apenas no nível de relatório de resultados, onde qualquer pós-processamento necessário não é uma operação que consome muitos recursos. Esses exemplos simples sugerem que o paralelismo horizontal é natural para tarefas de transformação de dados e, de fato, é. A seguir, enfocaremos principalmente nesse tipo de processamento paralelo. ## Paralelização "Horizontal" ### Uma das abordagens: MapReduce [MapReduce](https://pt.wikipedia.org/wiki/MapReduce) é um modelo de computação distribuída que foi introduzido pelo [Google](https://pt.wikipedia.org/wiki/Google). Ele também é usado para executar essas operações, e para processar grandes quantidades de informações ao mesmo tempo. Implementações populares de software livre são construídas em uma combinação do [Apache Hadoop](https://pt.wikipedia.org/wiki/Hadoop) and [Mahout](https://en.wikipedia.org/wiki/Apache_Mahout). Etapas básicas do modelo: Map, distribuição de tarefas entre manipuladores, o processamento atual e Reduce combinar os resultados do processamento. Para o leitor interessado que queira saber mais, posso recomendar a série de artigos de Timur Safin sobre a abordagem dele para a criação da ferramenta MapReduce em IRIS/Caché, que começa com [Caché MapReduce - uma introdução ao BigData e ao conceito MapReduce (Parte 1)](https://community.intersystems.com/post/cach%C3%A9-mapreduce-introduction-bigdata-and-mapreduce-concept). Observe que, devido à "capacidade inata" do IRIS de gravar dados no banco de dados rapidamente, a etapa de Reduce, via de regra, acaba sendo trivial, como na [versão distribuída do WordCount](https://community.intersystems.com/post/cach%C3%A9-mapreduce-putting-it-all-together-%E2%80%93-wordcount-example-part-iii#comment-14196). Ao lidar com tarefas de transformação de banco de dados, isso pode ser completamente desnecessário. Por exemplo, se você usou manipuladores paralelos para mover um grande global para um banco de dados separado, então, não precisamos de mais nada. ### Quantos servidores? Os criadores de modelos de computação paralela, como MapReduce, geralmente o estendem a vários servidores, os chamados nós de processamento de dados, mas em tarefas de transformação de banco de dados, um desses nós geralmente é suficiente. O fato é que não faz sentido conectar vários nós de processamento (por exemplo, via Enterprise Cache Protocol (ECP)), uma vez que a carga da CPU necessária para a transformação dos dados é relativamente pequena, o que não pode ser dito sobre a quantidade de dados envolvidos no processamento. Nesse caso, os dados iniciais são usados ​​uma vez, o que significa que você não deve esperar nenhum ganho de desempenho do cache distribuído. A experiência mostra que geralmente é conveniente usar dois servidores cujas funções são assimétricas. Para simplificar um pouco o conceito: - O banco de dados de origem é montado em um servidor (*DB de origem*). - O banco de dados convertido é montado no segundo servidor (*DB de destino*). - O processamento de dados paralelos horizontais é configurado apenas em um desses servidores. Os processos operacionais neste servidor são também os processos mestres. - Os processos em execução no segundo servidor, são, por sua vez, os processos *escravos*. Quando você usa o ECP, esses são os processos do sistema DBMS (ECPSrvR, ECPSrvW e ECPWork) e, ao usar um mecanismo de transferência de dados orientado por soquete, esses são os processos filhos das conexões TCP. Podemos dizer que esta abordagem de distribuição de tarefas combina paralelismo horizontal (que é usado para distribuir a carga dentro do servidor mestre) com paralelismo vertical (que é usado para distribuir "responsabilidades" entre os servidores mestre e escravo). ## Tarefas e ferramentas Vamos considerar a tarefa mais geral de transformar um banco de dados: transferir todos ou parte dos dados do banco de dados de origem para o banco de dados de destino, enquanto possivelmente executa algum tipo de recodificação de globais (isso pode ser uma mudança de codificação, mudança de agrupamento , etc.). Nesse caso, os bancos de dados antigos e novos são locais em servidores de banco de dados diferentes. Vamos listar as subtarefas a serem resolvidas pelo arquiteto e desenvolvedor: 1. Distribuição de funções entre servidores. 2. Escolha do mecanismo de transmissão de dados. 3. Escolha da estratégia de transferência de globais. 4. Escolha da ferramenta para distribuição de tarefas entre vários processos. Vamos 'dar uma olhada' neles. ### Distribuição de funções entre servidores Como você já está familiarizado, mesmo que o IRIS esteja sendo instalado com suporte a Unicode, ele também pode montar bancos de dados de 8 bits (locais e remotos). No entanto, o oposto não é verdadeiro: a versão de 8 bits do IRIS não funcionará com um banco de dados Unicode e haverá erros inevitáveis de <WIDE CHAR> se você tentar fazer isso. Isso deve ser levado em consideração ao decidir qual dos servidores - de origem ou de destino - será o mestre se a codificação de caracteres for alterada durante a transformação dos dados. Contudo, é impossível aqui decidir sobre uma solução final sem considerar a próxima tarefa, que é a: ### Escolha do mecanismo de transmissão de dados Você pode escolher uma das seguintes opções aqui: 1. Se as versões de licença e DBMS em ambos os servidores permitirem o uso do ECP, considere o ECP como um transporte. 2. Caso contrário, a solução mais simples é lidar com os dois bancos de dados (de origem e de destino) localmente no sistema de destino. Para fazer isso, o arquivo de banco de dados de origem deve ser copiado para o servidor apropriado por meio de qualquer transporte de arquivo disponível, o que, é claro, levará mais tempo (para copiar o arquivo de banco de dados na rede) e espaço (para armazenar uma cópia do arquivo do banco de dados). 3. Para evitar perder tempo com a cópia do arquivo (pelo menos), você pode implementar seu mecanismo de troca de dados entre os processos do servidor por meio de um soquete TCP. Essa abordagem pode ser útil se: - O ECP não pode ser usado por algum motivo, por exemplo, devido à incompatibilidade das versões do DBMS servindo os bancos de dados de origem e destino (por exemplo, o DBMS de origem é de uma versão muito legada). - Ou: É impossível impedir que os usuários trabalhem no sistema de origem e, portanto, a modificação de dados no banco de dados de origem que ocorre no processo de transferência deve ser refletida no banco de dados de destino. Minhas prioridades ao escolher uma abordagem são bastante evidentes: se o ECP está disponível e o banco de dados de origem permanece estático enquanto é transferido – 1, se o ECP não está disponível, mas o banco de dados ainda está estático – 2, se o banco de dados de origem é modificado – 3. Se combinarmos essas considerações com a escolha do servidor mestre, podemos produzir a seguinte matriz de possibilidade: | **O banco de dados de origem está estático durante a transmissão?** | **O protocolo ECP está disponível?** | **Localização do banco de dados de origem** | **Sistema mestre** | | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------- | ------------------ | | Sim | Sim | Remoto, no sistema de destino | Destino | | Sim | Não | Local (cópia) do sistema de destino | Destino | | Não | Não importa, pois usaremos nosso mecanismo para transferir dados por soquetes TCP. | Local (original) no sistema de origem | Origem | ### Escolha da estratégia de transferência de globais À primeira vista, pode parecer que você pode simplesmente passar os globais um a um lendo o Diretório Global. No entanto, os tamanhos dos globais no mesmo banco de dados podem variar muito: Recentemente, encontrei uma situação em que os globais em um banco de dados de produção variavam entre 1 MB e 600 GB. Vamos imaginar que temos os processos de trabalho nWorkers à nossa disposição, e há pelo menos um ^Big global para o qual é verdade: Size(^Big) > (Summary Size of All ^Globals) / nWorkers Então, não importa o quão bem-sucedida a tarefa de transferência dos globais restantes seja distribuída entre os processos de trabalho, a tarefa que acaba sendo atribuída à transferência do ^Big global permanecerá ocupada pelo restante do tempo alocado e provavelmente só terminará a tarefa muito depois dos outros processos terminarem de processar o restante dos globais. Você pode melhorar a situação pré-ordenando os globais por tamanho e iniciando o processamento com os maiores primeiro, mas nos casos em que o tamanho de ^Big se desvia significativamente do valor médio para todos os globais (que é um caso típico do banco de dados MIS qMS): Size(^Big) >> (Summary Size of All ^Globals) / nWorkers Esta estratégia não o ajudará muito, pois leva inevitavelmente a um atraso de muitas horas. Consequentemente, você não pode evitar a divisão de grandes globais em partes para permitir seu processamento usando vários processos paralelos. Desejo enfatizar que esta tarefa (número 3 na minha lista) acabou sendo a mais difícil entre as outras que estão sendo discutidas aqui, e levou a maior parte do meu tempo (ao invés da CPU!) para resolvê-la. ### Escolha da ferramenta para distribuição de tarefas entre vários processos A maneira como interagimos com o mecanismo de processamento paralelo pode ser descrita da seguinte maneira: - Criamos um pool de processos de trabalho em segundo plano. - Uma fila é criada para este pool. - O processo iniciador (vamos chamá-lo de _gerente local_), ter um plano que foi preparado com antecedência na etapa 3, e colocar as _unidades de trabalho_ na fila. Como regra, a _unidade de trabalho_ compreende o nome e os argumentos reais de um determinado método de classe. - Os processos de trabalho recuperam unidades de trabalho da fila e executam o processamento, que se resume a chamar um método de classe com os argumentos reais que são passados ​​para as unidades de trabalho. - Após receber a confirmação de todos os processos de trabalho de que o processamento de todas as unidades de trabalho enfileiradas foi concluído, o gerente local libera os processos de trabalho e finaliza o processamento, se necessário. Felizmente, o IRIS fornece um excelente mecanismo de processamento paralelo que se encaixa perfeitamente neste esquema, que é implementado na classe %SYSTEM.WorkMgr. Vamos usá-lo em um exemplo de execução que exploraremos em uma série planejada de artigos. No próximo artigo, pretendo me concentrar em esclarecer a solução para a tarefa número 3 com mais detalhes. No terceiro artigo, que aparecerá se você mostrar algum interesse na minha escrita, falarei sobre as nuances da resolução da tarefa número 4, incluindo, em particular, sobre as limitações de %SYSTEM.WorkMgr e as formas de superá-las.
Anúncio
Angelo Bruno Braga · Fev. 10, 2021

Bônus Tecnológico para o Concurso de Programação InterSystems Gran Prix

Olá Desenvolvedores! Aqui estão os bônus tecnológicos para o Concurso de Programação InterSystems Grand Prix que irão adicionar pontos à votação. Grupo Bônus Pontos Gerais Docker 2 ZPM 2 Teste Unitário 2 APIs e linguagens APIs REST 2 ODBC/JDBC 2 Uso de Python Embutido 4 APIs Nativas em Java, Python, .NET e node.js 3 Multi-modelo Globais (chave-valor) 2 SQL 2 Objeto 2 Novo Modelo 3 Analytics IRIS BI 2 IRIS NLP 2 InterSystems Reports 3 AI/ML Integrated ML 4 Gateway Python ou Julia 3 Interoperabilidade BPL 3 Adaptador Customizado 2 PEX 4 Mecanismo de Workflow 2 FHIR APIs REST para Servidor FHIR 3 Uso do Esquema FHIR SQL 2 Transformação entre Padrões de Saúde 3 Total 58 Abaixo estão os detalhes e links úteis para todos os bônus tecnológicos. Bônus Gerais Implantação em Pacote ZPM - 2 pontos Você pode ganhar este bônus se você criar e publicar o pacote ZPM (ObjectScript Package Manager) para sua aplicação Full-Stack de forma que ele possa ser implantado com o comando: zpm "install your-multi-model-solution" emu ma plataforma de dados IRIS com o cliente do ZPM instalado. Documentação do cliente ZPM. Uso de contêineres Docker - 2 pontos A aplicação ganha o bônus de ‘Uso de contêineres Docker’ se ela utiliza a plataforma de dados Intersystems IRIS em um contêiner Docker. Aqui você encontra um modelo simples para iniciar. Teste Unitário - 2 pontos Aplicações que possuírem Teste Unitário para o código ObjectScript na plataforma de dados InterSystems ganhará este bônus. Aprenda mais sobre Teste Unitário em ObjectScript na Documentação e na Comunidade de Desenvolvedore. APIs REST InterSystems IRIS Uso de APIs REST InterSystems IRIS- 2 points Você ganhará este bônus se você fizer acesso à plataforma de dados InterSystems IRIS através de APIs REST em sua aplicação Full-Stack.Você pode tanto criar as APIs REST quanto utilizar as disponíveis na plataforma quanto instalar APIs utilizando ZPM. Aprenda mais sobre APIs REST InterSystems IRIS. Uso de Python Embutido - 4 pontos Veja o vídeo relacionado. Informações adicionais serão divulgadas. Uso de APIs Nativas InterSystems - 3 pontos Você ganha este bônus se realizar o acesso aos dados de sua aplicação Full-Stack utilizando qualquer opção de APIs Nativas: .NET, Java, Python, Node.js. Aprenda mais aqui. Uso de InterSystems JDBC - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza um driver JDBC para acesso a seus dados. Você ganha este bônus se realizar acesso aos dados em sua aplicação Full-Stack utilizando SQL e InterSystems JDBC. Bônus Multi-modelo Globais InterSystems (chave-valor) - 2 pontos As Globais InterSystems são arrays multidimensionais esparsos persistentes que são utilizados para armazenar qualquer dado na plataforma de dados InterSystems IRIS. Cada nó de Global pode ser considerado uma chave, que você pode atribuir um valor. A plataforma de dados InterSystems IRIS disponibiliza um conjunto de APIs, comandos ObjectScript e APIs Nativas para manipular as Globais. Ferramentas: Gerenciando Globais no Portal de Administração Documentação: Utilizando o Armazenamento Multidimensional (Globais) Utilizando Globais Artigos: As Globais são Espadas Mágicas para gerenciamento de dados A arte de mapear Globais para Classes Vídeos: Introdução Rápida às Globais Você pode ganhar 2 pontos de bônus utilizando Globais através de comandos ObjectScript ou através de APIs Nativas em sua aplicação. InterSystems SQL - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza acesso SQL aos dados através de ObjectScript, REST API, JDBC. Ferramenta: Ferramentas SQL VSCode DBeaver SQL no Portal de Administração Outras ferramentas SQL Documentação: Acesso SQL Referência SQL InterSystems Artigos: Consultas à Classes no ObjectScript Vídeos: Coisas em SQL que você deveria saber Ganhe 2 pontos de bônus utilizando SQL InterSystems em sua aplicação. Objetos InterSystems - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza uma forma de armazenear e alterar instâncias de objetos em globais através de ObjectScript/APIs REST, APIs Nativas para Java/.NET/Node.js/Python e XEP para Java/.NET. Documentação: Acesso via Objeto Ganhe 2 pontos de bônus utilizando Acesso via Objeto em sua aplicação. Novo Modelo de Dados - 2 pontos A plataforma de dados InterSystems IRIS pode ser utilizada como uma plataforma de dados que expõe APIs para o seu próprio modelo de dados. Você pode utilizar o ObjectScript, APIs REST ou ainda APIs Nativas para expor sua própria API provendo acesso a qualquer modelos de dados especiais como séries temporais, espacial, gráfico, RDF / triplo, armazenamento de colunas ou armazenamento de documentos. Introduza APIs para qualquer um dos novos modelos de dados e ganhe 2 pontos de bônus. Bônus IRIS Analytics InterSystems IRIS BI - 2 pontos O InterSystems IRIS Business Intelligence é uma funcionalidade do IRIS que lhe permite criar cubos de BI e tabelas dinâmicas a partir dos dados persistidos na plataforma de dados InterSystems IRIS e entregar esta informação aos usuários utilizando painéis interativos. Aprenda mais. Este modelo básico modelo iris-analytics contém exemplos de cubos de BI, tabelas dinâmicas e um painel interativo. InterSystems IRIS NLP (iKnow) - 2 pontos O InterSystems NLP, também conhecido como iKnow, é uma funcionalidade da plataforma InterSystems IRIS e também uma biblioteca para Processamento de Linguagem Natural que identifica entidades (frases) e seu contexto semântico em textos em linguagem natural em Inglês, Alemão, Holandês, Francês, Espanhol, Português, Sueco, Russo, Ucraniano, Tcheco e Japonês. Aprenda mais sobre o iKnow no Open Exchange. Exemplos: Navegador de Testos de Covid no iKnow Exemplos de Aviação e mais Use o iKnow para gerenciar os dados não estruturados em sua solução analítica e ganhe 1 ponto de bônus. InterSystems Reports - 3 pontos O InterSystems Reports é uma funcionalidade da plataforma de dados InterSystems IRIS que permite que você contrua relatórios impressos, envie-os por e-mail através de agendamento e entregue relatórios interativos para clientes. O InterSystems Reports é uma reembalagem do Logi Report (chamado anteriormente de JReport®), um produto da Logi Analytics®. Aprenda mais na Documentação. Verifique o repositório Github com exemplos do InterSystems Reports. Também veja vídeo de demonstração do InterSystems Reports e tenha um primeiro contato através do Laboratório de Aprendizagem. Você pode realizar o download do Designer e do Servidor do InterSystems Reports na seção de downloads do WRC download. As chaves de licença para o Designer e Servidor do InterSystems Reports estará disponível no Discord. AI/ML IntegratedML - 3 pontos O IntegratedML é uma funcionalidade da plataforma de dados InterSystems IRIS que expande o SQL com um conjunto de instruções de Machine Learning que permitem que você simplifique e automatize o uso de IA e ML para sua solução. Aprenda mais sobre o IntegratedML. Você precisará de imagens especiais da plataforma de dados InterSystems IRIS para utilizar o IntegratedML, verifique aqui. Exemplos: Um modelo básico de IntegratedML Vários exemplos no Open Exchange O uso do IntegratedML em sua solução de IRIS Analytics lhe garante um ponto extra de bônus. Uso do Gateway Python - 2 pontos O Gateway Python é um addon para a plataforma de dados InterSystems IRIS que lhe permite utilizar a linguagem Python no ambiente InterSystems IRIS: Executar um código Python arbitrário. Transferir dados da plataforma de dados InterSystems IRIS para o Python. Criar processos inteligentes de interoperabilidade com o Adaptador de Interoperabilidade Python. Armazenar, examinar, modificar e restaurar o contexto Python a partir da plataforma InterSystems IRIS. Aprenda mais sobre o Gateway Python. Você pode utilizar o modelo de Gateway Python, que inclui o IntegratedML também. Bônus de Interoperabilidade Uso do Business Process BPL ou de Business Rules - 2 pontos Uma das funcionalidades chave das Produções de Interoperabilidade da plataforma de dados InterSystems IRIS é o Business Process, que pode ser descrito utilizando o BPL (Business Process Language). Aprenda mais sobre o Business Processes na documentação. O Business Rule é uma abordagem no-code/low-code para gerenciamento da lógica de processamento das produções de interoperabilidade.Na plataforma de dados InterSystems IRIS você pode criar os Business Rules visualmente ou através de representação em ObjectScript. Você pode coletar o bônus de uso do Business Process BPL/Business Rule se você criar e utilizar estes components em sua produção de interoperabilidade. Exemplo de Business Rule Aprenda mais sobre Business Rules na documentação Uso de Adaptador de Interoperabilidade Customizado - 2 pontos Uma produção de Interoperabilidade na plataforma de dados InterSystems IRIS pode conter adaptadores de entrada e de saída que são utilizados para realizar a comunicação com sistemas externos através dos Business Services e Operations. Você pode utilizar os vários adaptadores nativos da solução (como para Arquivos, E-mail, SOAP, FTP, etc.) ou criar o seu próprio. Você ganha este bônus se você desenvolver o seu próprio adaptador (de entrada ou saída) e utilizá-lo em sua produção de interoperabilidade. Exemplo de um adaptador Aprenda mais sobre adaptadores Uso do Production EXtension (PEX) - 4 pontos O PEX é um framework para desenvolvimento de componentes da produção de interoperabilidade utilizando as linguagens Java ou .NET. Você ganha este bônus se você utilizar o PEX com JAVA ou .NET em sua produção de interoperabilidade. Demonstração do PEX Aprenda mais sobre o PEX na Documentação Uso do Mecanismo de Workflow - 2 pontos O Mecanismo de Workflow Engine é uma funcionalidade da Interoperabilidade da plataforma de dados InterSystems IRIS que pode ser utilizada para automatizar a distribuição de atividades entre usuários. Você ganha este bônus se você utilizar o Mecanismo de Workflow em sua produção de interoperabilidade. Aprenda mais sobre o Mecanismo de Workflow na Documentação. Existem módulos da comunidade como o WorkflowAPI e o WorkflowUI-ngx que disponibiliza uma agradável camada de IU em Angular para o Mecanismo de Workflow. Bônus FHIR Uso de APIs REST do Servidor FHIR - 3 pontos Você ganha este bônus se você utilizar o endpoint de API REST do Servidor FHIR da plataforma de dados para saúde InterSystems IRIS for Health. Você pode utilizar o modelo IRIS-FHIR que prepara o Servidor FHIR durante a construção da imagem docker. A documentação para a API FHIR 4.0.1 pode ser encontrada aqui. Aprenda mais na Documentação da plataforma InterSystems IRIS for Health. Uso do Esquema SQL FHIR - 2 pontos Você pode ganhar este bônus tecnológico se você utilizar o Esquema SQL FHIR em suas consultas SQL de sua aplicação. Você pode utilizar este esquema, por exemplo, para criar uma solução analítica FHIR. Utilize o HSFHIR_I0001_R para esquema de recursos e o esquema HSFHIR_I0001_S para realizar consultas de recursos em SQL. Verifique os exemplos no modelo. Transformações de Padrões de Saúde - 3 pontos A plataforma de dados para saúde InterSystems IRIS for Health contém módulos de interoperabilidade para saúde que auxiliam na execução de transformações de dados de diferentes padrões de troca de dados em saúde para FHIR e vice-versa. Realize transformações de CDA para FHIR, HL7v2 para FHIR, ou transformações entre qualquer outro padrão de saúde em sua aplicação para ganhar este bônus. Veja exemplos de transformações de HL7v2 para FHIR e CDA para FHIR . Aprenda mais na documentação. Esta lista de bônus está sujeita a mudanças. Fique atento!
Anúncio
Olga Zavrazhnova · Mar. 15, 2021

Desafio Global Masters: Grave um vídeo com seu testemunho sobre o InterSystems IRIS

Olá Desenvolvedores, Um novo e excitante desafio foi disponibilizado para os membros acima ou no nível "Advocate" : nós os desafiamos a gravar um vídeo de 30 a 60 segundos respondendo nossa pergunta: ➥ Qual o benefício que a plataforma de dados InterSystems IRIS lhe proporciona? 🎁 Recompensa de sua escolha para o desafio: US$50 em cartão presente (VISA/Amazon) ou 12.000 pontos! Clique neste link direto para o desafio para maiores informações. Notem que o link irá funcionar apenas para membros do Global Masters de níveis iguais ou acima de "Advocate". Mais informações sobre os níveis no Global Masters aqui. Nós adoraríamos receber a sua opinião! Nos vemos no Global Masters !!!
Artigo
Fernando Ferreira · Mar. 17, 2021

InterSystems IRIS Reports - 3º parte (Criação de relatórios em diversos formatos)

Olá Comunidade, Chegou a hora de iniciarmos o desenvolvimento dos relatórios utilizando o InterSystems IRIS Reports, powered by Logi Analytcs. Lembrando que na primeira parte do artigo falamos o que é o InterSystems IRIS Reports, e como ele vem facilitar a vida dos desenvolvedores na entrega de relatórios, e na segunda parte executamos o procedimento de instalação dos ambientes server e designer e o procedimento para fazer o download dos binários de instalação! Alguns conceitos importantes antes de iniciarmos o desenvolvimento sobre os tipos de relatórios que podemos desenvolver: Estáticos: Os relatórios e seus resultados não podem ser modificados pelo usuário final. O layout e os dados inclusos são definidos pelo desenvolvedor. Dinâmicos: Os relatórios podem ser modificados pelos usuários finais, como no estático o layout e dos dados são inclusos pelo desenvolvedor, porém o usuário final consegue modificá-los em tempo de execução. Ad Hoc – Relatórios e dados são construídos e modificados em tempo de execução pelo usuário final. Também podemos escolher diversos tipos de relatórios como: Padrão Faixa Horizontal Tabela com agrupamento acima Tabela com agrupamento a esquerda Tabela com agrupamento a esquerda acima Tabela com sumarização Gráficos Cruzado Etiqueta Tabular Formatação livre Calma segura a ansiedade, ainda precisamos falar de mais um conceito muito importante. Vamos falar agora do catálogo. O catálogo é o repositório para os relatórios e metadados, todo relatório está relacionado a um catálogo, ele pode ser utilizado por um ou mais relatórios, e sim, é onde fica as configurações com o banco de dados, as querys, fórmulas, parâmetros etc. Vamos iniciar agora então a primeira etapa do desenvolvimento, vamos criar o nosso catálogo, e a conexão com o banco de dados. Criando o catálogo: 1º Ao entrar no Designer vamos ver a tela “Quick Start”. 2º Na opção “Connect” clicar em InterSystems IRIS. 3º Agora vamos escolher a pasta e o nome do catálogo, clicar em “New Catalog”, escolher a pasta e o nome, clicar em OK. 4º Lembra que na instalação já incluímos o Driver JDBC? Por este motivo o campo Driver e porta já vem preenchidos, agora precisamos colocar o nome o IP ou nome servidor, Namespace, usuário e senha. Você pode testar a conexão clicando em “Test Connection “, e tudo estando certo é só clicar em OK. 5º Agora vamos adicionar as tabelas que serão utilizadas no nosso relatório ao catálogo. Você vai perceber algumas opções existentes: “Add Tables”, “Import SQL”, “Add Stored Procedures” e “Add more connection”. Aqui neste artigo vamos utilizar o “Add Tables”. Mas vamos fazer algumas observações importantes: Import SQL à É possível importar scripts SQL existentes para o catálogo. Add Stored Procedures à Você pode adicionar procedures existentes no IRIS. Add more connection à Você pode adicionar mais de um banco de dados IRIS para criação dos relatórios. Vamos continuar com a parametrização do catálogo. Clique em “Add Tables”. Agora podemos escolher as tabelas que vamos trabalhar! Selecione as tabelas e clique em “Add” e em seguida em “Done”. 6º Agora nesta etapa já temos a conexão com o IRIS e as tabelas que vamos trabalhar, chegou a hora de criar a query. Uma observação importante: Existem opções que são possíveis de parametrização conforme sua necessidade, como por exemplo, você pode habilitar/desabilitar as seguintes: Join on foreign Keys. Join on primary key with same name. Join on same name. No nosso tutorial vamos deixar todas as opções habilitadas. Vamos criar enfim a query. Clique com o botão direito na opção “Queries” que fica na aba “Data Source”. Agora clique em “New Query” e de um nome para sua query e em seguida clique em Ok. 7º Na janela seguinte – “Add tables/Views/Queries”, você precisa expandir a conexão JDBC para visualizar as tabelas a serem utilizadas. Uma observação importante! Como deixamos todas as opções de Joins habilitadas, a ordem que as tabelas são adicionadas é a ordem que o ambiente Designer utilizará para posicionar as tabelas à esquerda da clausula WHERE nas JOINS que serem criadas. Selecione as tabelas e clique na seta para adicionar as tabelas na aba: Selected Tabs/Views/Queries, Sim como vocês perceberam aqui é possível adicionar “Views” existentes no IRIS. Agora é só clicar em OK. 8º Chegamos agora no “Query Editor”! Aqui podemos verificar o JOIN criado, escolher os campos, criar fórmulas, criar campos calculados, verificar a sintaxe SQL, modificar a sintaxe SQL e fazer uma pré-visualização dos dados. Agora é só salvar o catálogo, clicando em “Save Catalog”. Pronto catálogo salvo! Vamos agora criar o relatório! Criando o relatório: Como mencionamos anteriormente, temos alguns padrões de relatórios, que podemos criar! Aqui vamos utilizar a opção “Page Report / Table Group Left Above.” 1º clique em “New/Page Report” e vamos escolher o “Table Group Left Above”. 2º Estamos no “Table Wizard!” Vale observar que o catálogo criado anteriormente é carregado automaticamente. Vamos escolher a query que criamos. É só selecionar a query e clicar em Next. 3º A próxima etapa é escolher os campos que serão exibidos no relatório, clicando no campo e na seta para direita, caso tenha escolhido algum campo de forma incorreta, é só clicar na seta para esquerda. Aqui podemos escolher a ordem que os campos irão aparecer no relatório, clicando nas setas para cima e para baixo com o campo selecionado, também podemos mudar o nome do campo que aparecerá no relatório. Essa opção é ótima, pois facilitamos a vida do usuário final trazendo um nome voltado ao negócio, ao invés do nome real do campo. Para alterar o nome clique na coluna “Display name”, seleciona o campo desejado, e digite o novo nome. Agora é só clicar em “Next”. Nesta opção do “Table Wizard” podemos agrupar os campos. É possível fazer um agrupamento em cascata e escolher a ordem, ascendente, descendente ou customizada. No nosso caso vamos deixar ascendente, com os campos escolhidos, clique em “Next”, para a próxima opção, a sumarização! Na sumarização vamos escolher um campo para a agregação que desejamos, que pode ser soma, média etc. vamos utilizar a sumarização para o agrupamento feito na etapa anterior. É possível escolher a posição do sumario, no cabeçalho ou no rodapé e em qual coluna, na de detalhe ou não de sumário! Após escolher as opções é só clicar em “Next.” Temos a opção agora de construir um gráfico junto ao relatório, que não vamos abordar neste artigo, vamos manter a opção “No Chart” selecionar e clicar em “Next”. Na opção “Filter”, podemos aplicar filtros nos campos. Não vamos trabalhar com filtro neste momento, vamos clicar em “Next”. Por fim podemos escolher o estilo do relatório desejado. Aqui vamos escolher o estilo “Commercial”, e clicar em “Finish”. Uma observação importante: Os estilos são 100% customizáveis, é permitido modificar a fonte de cada campo, aplicar condições e atribuir cores para os resultados, importar CSS existentes, importar imagens para o relatório. Pronto temos o relatório! O desenvolvedor pode fazer toda customização desejada no layout do relatório e visualizar o resultado antes de publicar para o usuário final. Para visualizar é só clicar na aba “View.” Nosso relatório está pronto para ser publicado no servidor! Vamos configurar a conexão do Designer com o servidor. Parametrização do Designer com o servidor. 1º Na barra superior clicar no botão “Options” que fica na aba “File”. 2º No menu de opções clicar na opção “Server”. 3º Adicionar na opção Host o IP ou nome do servidor do IRIS Reports Server. 4º Adicionar a porta – Lembrando que a Default é a 8888. 5º Manter o caminho default do Servlet Path que é à /jrserver. 6º Adicionar o usuário e senha, lembrando que o Default é admin/admin. Conexão com o servidor parametrizada, agora vamos publicar o catálogo e o relatório. Publicando o catálogo e relatório: 1º Na barra superior clicar no botão “Publish” que fica na aba File. 2º Selecione a opção “Publish Report to Server.” 3º Como estamos com o relatório e o catálogo abertos, ambos vêm selecionados. Caso não esteja aberto temos de selecionar o catálogo e o relatório salvos em sua pasta. Na opção “Publish Resource to” temos como escolher a pasta a ser publicada no servidor. Aqui vamos manter o default que é o caminho do usuário corrente, no nosso caso, usuário: admin. Clique em OK. 4º Agora temos com adicionar recursos adicionais, aqui vamos manter o estilo escolhido anteriormente: “Commercial.” Clique em OK. 5º Recebemos uma mensagem nos questionando se finalizamos a publicação, como já finalizamos podemos clicar em YES. Pronto temos o nosso relatório publicado no servidor! Agora vamos acessar o servidor via seu Browser. Lembrando que o caminho de acesso é http://ip-servidor:porta. Aqui na nosso tutorial mantivemos a porta padrão que é a 8888. Após digitar o usuário e senha, vamos entrar na opção “Open / My Folder”. Lembrando que o nosso relatório foi publicado no folder do usuário Admin. Ao acessar esta pasta podemos perceber o catálogo e o relatórios publicados. Vamos selecionar o relatório criado, e ao parar com o ponteiro do mouse em cima da seleção vão surgir alguns ícones, o primeiro que vamos usar aqui é o sinal de execução do relatório. Como resultado, o relatório será processado no Browser. No momento da visualização do relatório teremos alguns controladores disponíveis para o usuário, como por exemplo: à Permite exporta o relatório para outros formatos. à Enviar o relatório para ser impresso. à Criar agendamento de execução do relatório. à Aplicar filtro, nos campos disponíveis. Nesta etapa vamos exportar o relatório para formato PDF. Como prometido, agora vamos exportar o relatório que desenvolvemos em diversos formatos. Temos algumas opções de como exportar, uma delas já executamos anteriormente quando geramos o relatório em formato HTML no browser e utilizamos um componente disponível para o usuário onde é possível escolher um formato desejado pelo usuário. Vamos utilizar o processo de agendamento de execução do relatório e escolher o formato. Ao fazer o agendamento podemos escolher salvar o relatório em uma pasta do servidor ou uma pasta que o servidor tenha acesso, disponibilizar o relatório em um FTP ou disparar um e-mail por exemplo, mas também temos como gerar em uma pasta no servidor onde é possível gerar versões dos relatórios executados. Vamos utilizar o versionamento para a demonstração. Gerando relatório em vários formatos, através do agendamento: 1 º Selecione o relatório desejada, irão surgir diversos ícones. 2º Selecionar o ícone de agendamento. 3º Em “Schedule Name”, vamos dar um nome ao nosso agendamento. (não obrigatório). 4º Existem opções avançadas que não vamos tratar neste artigo, então partir para o próximo passo, clique em “Publish”. 5º Ao clicar em “Publish”, temos algumas opções: To Version. To Disk. To E-mail. To Printer. To Fax. To FTP. Vamos utilizar o “To Version”. Clicando em “To Version” vamos ter a opção: “Publish to Versioning System”, vamos habilitar está opção e clicar em “Next”. 6º Agora temos as opções como: Logi Report Result. Page Report Result. HTML. PDF. Exel. Text. RTF. XML. PostScript. Vamos escolher aqui os formatos: PDF / HTML / Excel. 7º A próxima opção é o local onde os arquivos serão gerados, temos: Built-in Version folder à É uma pasta default para armazenamento dos relatórios, quando utilizado a opção de versionamento. My Reports Folder à É a pasta do usuário corrente. Public Reports Folder à São pastas publicas que são disponibilizadas para usuários com permissão de acesso. Vamos manter aqui a “Built-in Version folder”, clique em “Next.” 8º Podemos decidir o horário da execução do relatório, ou executar imediatamente. Vamos utilizar a opção “Run this task immediately”, e clicar em “Finish”. 9º No menu superior podemos visualizar a opção “My Tasks”, vamos clicar lá. Em “My tasks” podemos visualizar os agendamentos a serem executados, os em execução e os já finalizados com seu respectivos status. 10º Clicando na opção “Completed”, clique no agendamento criado para visualizar o relatório gerado em diversos formatos. Nesta parte do artigo criamos o relatório, publicamos no servidor e executamos através da opção de agendamento a exportação do relatório em diversos formatos! Não é o máximo? Lembrando que na próxima parte do artigo vamos fazer a distribuição do relatório via e-mail para diversos destinatários utilizando o mesmo relatório como base! Obrigado e até a próxima parte! ficou muito bom!!! parabéns!!!!! Obrigado!
Anúncio
Evgeny Shvarov · Abr. 22, 2021

Bônus Tecnológico para os Projetos do Concurso de Ferramentas de Desenvolvimento InterSystems!

Olá Desenvolvedores! Disponibilizamos um conjunto de bônus tecnológicos para o Concurso de Ferramentas de Desenvolvimento para o InterSystems IRIS. E aqui você verifica como seu projeto os obteve: Projeto docker zpm Teste Unitário Demonstração Online Qualidade do Código Artigo na Comunidade de Desenvolvedores Vídeo no YouTube Bônus Total Nominal 2 2 2 3 2 2 3 16 Config-API 2 2 2 2 2 10 Server Manager for VSCode 2 2 4 Grafana Plugin for InterSystems 2 2 2 6 SSH for IRIS container 2 2 3 7 IntelliJ InterSystems 2 2 gj :: locate 2 2 3 7 helper-for-objectscript language extensions 2 2 2 2 3 11 IRIS REST Documentation 2 2 4 IRIS-easy ECP workbench 2 2 2 2 3 11 zpm-explorer 2 2 2 3 2 2 3 16 Git for IRIS 2 2 2 6 zapm-editor 2 2 2 6
Anúncio
Angelo Bruno Braga · Ago. 23, 2021

Conheçam os Ganhadores do 1° Concurso de Criação de Artigo Técnico InterSystems !

Olá Comunidade, Nosso primeiro Concurso de Criação de Artigo Técnico InterSystems chegou ao fim. Foram vários conteúdos super interessantes: 23 artigos incríveis 🔥 Um enorme obrigado a todos que participaram de nossa competição! E agora é chegada a hora de anunciar os ganhadores ..... curiosos? Conheçam os ganhadores do 1° Concurso de Criação de Artigo Técnico InterSystems e seus incríveis artigos: ⭐️ Premiação pelos Especialistas – Os ganhadores são selecionados por um grupo de Especialistas da InterSystems: 🥇 1° lugar: BILLIONS - Monetizing the InterSystems FHIR® Accelerator Service with Google Cloud's Apigee Edge escrito por @Ron.Sweeney1582 🥈 2° lugar: Learning Path for beginners escrito por @Yuri.Gomes 🥉 3° lugar: InterSystems IRIS REST Application Patterns escrito por @Yuri.Gomes ⭐️ Premiação da Comunidade – O ganhador é selecionado pelos membros da Comunidade de Desenvolvedores, sendo o artigo com a maior quantidade de likes: 🎉 Ganhador: Let's fight against the machines! escrito por @Henry.HamonPereira ⭐️ Conheçam também os autores que contribuíram com vários artigos para a competição: @Nigel.Salm5021: 3 artigos 🤩 @Francisco.López1549: 3 artigos 🤩 @Oliver.Wilms: 3 artigos 🤩 @Robert.Cemper1003: 2 artigos 🤩 @Yuri.Gomes: 2 artigos 🤩 Uau! E pela sua enorme contribuição gostaríamos de presentear estes autores com uma 🎁 Mochila Nike Utility Speed 🎁! ⭐️ E nossa congratulação final vai para todos os heróis que participaram no community.intersystems.com/contests/1: @Robert.Cemper1003 @Nigel.Salm5021 @Henrique.GonçalvesDias @Dmitry.Maslennikov @Francisco.López1549 @Herman.Slagman7521 @Sergei.Mihaylenko @Irene.Mikhaylova @Oliver.Wilms @Julian.Matthews7786 @Muhammad.Waseem @crys.su9670 MUITO OBRIGADO A TODOS! Vocês fizeram uma incrível contribuição para nossa Comunidade de Desenvolvedores! P.S. Os prêmios se encontram em produção agora. Entraremos em contato com os ganhadores quando eles estiverem prontos para despachar. Fiquem ligados! Então, Incrível nosso 1° Concurso de Criação de Artigo Técnico InterSystems, não é ? Mais uma vez obrigado a TODOS os participantes pela dedicação ao nosso 1° Concurso de Criação de Artigo Técnico InterSystems! O que vem por aí.....? Fiquem atentos às novidades de nosso próximo Concurso de Criação de Artigo Técnico InterSystems 😉
Anúncio
Evgeny Shvarov · Ago. 27, 2021

Bônus Tecnológico para o Concurso InterSystems IRIS Analytics 2021

Olá Desenvolvedores! Aqui estão os bônus tecnológicos para o Concurso InterSystems IRIS Analytics que irão fornecer pontos extras na votação. Uso de Cubos do Adaptive Analytics (AtScale) - 4 pontosO InterSystems Adaptive Analytics fornece a opção de criar e utilizar cubos do AtScale em soluções analíticas. Você pode utilizar o servidor AtScale que disponibilizamos para o concurso (a URL e as credenciais podem ser obtidas através do Canal do Discord) para utilizar os cubos ou criar o seu próprio e conectar com seu servidor IRIS através de JDBC. A camada de visualização para sua solução analítica com o AtScale pode ser construída com o uso do Tableau, PowerBI, Excel ou Logi. Documentação, Documentação do AtScale Treinamento Uso do Tableau, PowerBI ou Logi - 3 pontos Ganhe 3 pontos criando a visualização de sua solução analítica utilizando o Tableau, PowerBI ou Logi - 3 pontos para cada. As visualizações podem ser criadas através de conexão direta com o servidor IRIS BI ou através de conexão com o AtScale. O Logi está disponível através da solução InterSystems Reports - você pode obter o composer no WRC InterSystems. Uma licença temporária pode ser obtida através do canal do discord. Documentação Treinamento Uso do InterSystems IRIS BI - 3 pontos O InterSystems IRIS Business Intelligence é uma funcionalidade do IRIS que lhes dá a opção de criar cubos de BI e tabelas dinâmicas utilizando os dados persistidos no IRIS e fornecer esta informação para usuários através de painéis interativos. Aprenda mais O modelo básico de iris-analytics contém exemplos de cubos, tabelas dinâmicas e painéis do IRIS BI. Aqui está um conjunto de exemplos de soluções construídas no IRIS BI: Exemplos de BI Covid19 analytics Analyze This Game of Throne Analytics Pivot Subscriptions Error Globals Analytics Criando soluções de InterSystems IRIS BI utilizando Docker & VSCode (vídeo em inglês) A liberdade de escolha na visualização: InterSystems BI (vídeo em inglês) InterSystems BI(DeepSee) Visão Geral (curso online) InterSystems BI(DeepSee) Introdução ao Analisador (curso online) Uso do InterSystems IRIS NLP (iKnow) - 3 pontos O InterSystems NLP, também conhecido por iKnow, é uma funcionalidade do InterSystems IRIS e uma biblioteca para Processamento de Linguagem Natural que identifica entidades e seu contexto semântico em textos em Inglês, Alemão, Francês, Espanhol, Português, Sueco, Russo, Ucraniano, Tcheco e Japonês. Aprenda mais sobre o InterSystems NLP no Open Exchange Exemplos: Navegador de Textos iKnow para Covid Exemplos de Aviação e mais. Utilize o iKnow para gerenciar seu dado não estruturado em sua solução analítica e ganhe 1 ponto de bônus. Uso de contêiner Docker - 2 pontos Sua aplicação ganhará um bônus 'contêiner Docker' se a mesma utilizar a plataforma InterSystems IRIS executando em um contêiner docker. Aqui está o modelo mais simples para iniciar a utilização. Implantação em Pacote ZPM - 2 pontos Você ganhará o bônus se você criar e publicar o pacote ZPM(Gerenciador de Pacotes ObjectScript) para sua aplicação Full-Stack de forma que ela possa ser implantada com o comando: zpm "install sua-solução-multi-modelo" no IRIS com o cliente ZPM instalado. cliente ZPM. Documentação. Teste Unitário - 2 pontos Aplicações que possuírem Teste Unitário para o código feito na plataforma InterSystems IRIS ganhará o bônus. Aprenda mais sobre o Teste Unitário para ObjectScript na Documentação e na Comunidade de Desenvolvedores. Demonstração Online de seu projeto - 3 pontosGanhe mais 3 pontos de bônus se você disponibilizar seu projeto na nuvem como uma demonstração online. Você pode utilizar este modelo ou qualquer outra opção de desenvolvimento. Exemplo. Aqui tem um vídeo em inglês de como utilizá-lo. Análise de qualidade do código zero bugs - 2 pontos Inclua a ação Github de qualidade de código para controle de código estático e faça com que sejam retornados 0 bugs para o ObjectScript. Artigo na Comunidade de Desenvolvedores - 2 pontos Poste um artigo na Comunidade de Desenvolvedores que descreva as funcionalidades de seu projeto. Ganhe 2 pontos para cada artigo. Traduções para outras línguas também funcionam. Vídeo no YouTube - 3 pontos Crie um vídeo no Youtube que demonstre seu produto em ação e ganhe 3 pontos de bônus para cada vídeo publicado. Esta lista de bônus está sujeita a alterações. Fiquem ligados!
Anúncio
Angelo Bruno Braga · Ago. 30, 2021

1° Concurso de Criação de Artigo Técnico InterSystems: Queremos sua opinião!

Olá membros da Comunidade de Desenvolvedores, Como poderíamos tornar o Concurso de Criação de Artigo Técnico InterSystems melhor ainda? Queremos saber a opinião de você todos: tanto dos que participaram quanto dos que não conseguiram participar. Respondam por favor algumas questões para nos ajudar a tornar nosso concurso de escrita de artigos ainda melhor. 👉 Pesquisa de 2 minutos: Pesquisa do Concurso de Criação de Artigo Técnico InterSystems Ou se sentir mais a vontade, divida suas ideias e impressões no comentário desta postagem!!!
Artigo
Angelo Bruno Braga · Mar. 7, 2022

Executando o InterSystems IRIS em um modo FaaS utilizando o Kubeless

Function as a service (FaaS) é uma categoria de serviços de computação na nuvem que disponibiliza uma plataforma que permite que os clientes desenvolvam, executem e gerenciem as funcionalidades das aplicações sem que tenham a complexidade de construir e manter a infraestrutura tipicamente associada a se desenvolver e lançar um app. Construir uma aplicação seguindo este modelo é uma das formas de se alcançar uma arquitetura "serverless" e é tipicamente utilizada quando se constroem aplicações baseadas em microsserviços. Wikipedia FaaS é uma abordagem extremamente popular para se executar cargas de trabalho na nuvem, permitindo que os desenvolvedores mantenham o foco na escrita de códigos. Este artigo irá mostrar-lhe como implantar métodos do InterSystems IRIS na forma FaaS. Instale o Kubernetes Primeiramente, instale o Kubernetes 1.16. Existem vários guias disponíveis então eu não os copiarei aqui. Para que vocês saibam, estou usando o minicube. Com o minicube, para executar o kubernetes basta executar este comando: minikube start --kubernetes-versionv1.16.1 Instale o kubeless Em seguida vamos instalar o kubeless. O kubeless é um framework serverless nativo do Kubernetes que permite que você implante pequenos trechos de código sem se preocupar com as questões relacionadas a infraestrutura. Ele aproveita os recursos do Kubernetes para fornecer dimensionamento automático, roteamento de API, monitoramento, solução de problemas e muito mais. 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 A saída deve ser algo assim: NAME READY STATUS RESTARTS AGEkubeless-controller-manager-666ffb749-26vhh 3/3 Running 0 83s Você também precisa instalar um cliente kubeless (na mesma instância onde estiver o kubectl). Você consegue ele aqui. A instalação no Linux é tão simples quanto: sudo install kubeless /usr/local/bin/kubeless Testar o kubeless Primeiramente vamos implantar uma função Python simples para verificar se o kubeless funciona. Crie o test.py: def hello(event, context): return event['data'] Para ler mais sobre funções no kubeless, verifique este documento, geralmente as funções aceitam dois argumentos - evento e contexto com estes dados: event: data: # Dados do evento foo: "bar" # Os dados são analisados como JSON quando solicitados event-id: "2ebb072eb24264f55b3fff" # ID do evento event-type: "application/json" # Tipo de conteúdo do evento event-time: "2009-11-10 23:00:00 +0000 UTC" # Timestamp da origem do evento event-namespace: "kafkatriggers.kubeless.io" # Emissor do evento extensions: # Parâmetros opcionais request: ... # Referência à requisição recebida response: ... # Referência à resposta que deverá ser enviada # (propriedades específicas dependerão da linguagem da função) context: function-name: "pubsub-nodejs" timeout: "180" runtime: "nodejs6" memory-limit: "128M" Agora podemos implantar nossa função "hello" especificando nosso arquivo com a função e um ambiente de tempo de execução: kubeless function deploy hello --runtime python3.7 --from-file test.py --handler test.hello kubeless function ls hello E vamos testá-lo: kubeless function call hello --data 'Hello world!' Você deverá receber Hello World! como resposta. Adicione a configuração IRIS A seguir precisamos adicionar um manipulador de funções InterSystems IRIS, para fazê-lo, abra a configuração do kubeless para editá-la: kubeless get-server-config kubectl get -n kubeless configmaps -o yaml > configmaps.yaml kubectl edit -n kubeless configmaps Adicione esta entrada no array de imagens de runtime e grave: {"ID": "iris","depName": "","fileNameSuffix": ".cls","versions": [{"images": [{"image": "eduard93/kubeless-iris-runtime:latest","phase": "runtime"}],"name": "iris2022.1","version": "2022.1"}]} Reinicie o controller do kubeless para que as alterações passem a funcionar. kubectl delete pod -n kubeless -l kubeless=controller Construa a função CRD IRIS e a publique Agora vamos escrever nossa primeira função no 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 } } Depois precisamos criar uma função CRD: Aqui está nosso modelo: 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: | E precisamos preencher: name: nome da função (para o kubeless) handler: classe.nome do método (para o InterSystems IRIS) function : adicione no final o corpo da função (não esqueça dos tabs!) Desta forma nossa CRD ficará assim: 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 } } Isso pode ser facilmente automatizado. No Linux execute: sed 's/!name!/iris-demo/; s/!handler!/User_Test.hi/' function.yaml > function_demo.yaml sed 's/^/ /' User.Test.cls >> function_demo.yaml E no 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 Agora precisamos publicar nossa CRD no kubeless: kubectl apply -f function_demo.yaml Testar a função IRIS Primeiramente, vamos ver se a função está implantada e pronta (pode levar alguns minutos na primeira vez): kubeless function ls E agora chame ela: kubeless function call iris-demo --data '{"Text":123}' Se você estiver usando o Windows, chame a função assim (será o mesmo para todas as outras chamadas, com aspas duplas escapadas): kubeless function call iris-demo --data '{\"Text\":123}' De qualquer forma, a resposta deverá ser 456 pois 123 é um número. Acesso HTTP O kubeless também disponibiliza acesso HTTP. Para testar, use o comando kubectl proxy: kubectl proxy -p 8081 Em seguida, envie esta requisição utilizando seu cliente preferido de APIs REST: GET http://localhost:8081/api/v1/namespaces/default/services/iris-demo:http-function-port/proxy/ {"Text":111} Aqui está como fica utilizando o Postman: Vamos agora publicar na internet. Existem duas abordagens. Preferencialmente configure o ingress conforme descrito aqui. Adicionalmente você pode corrigir o serviço da função: kubectl get svc kubectl patch svc iris-demo -p '{"spec": {"type": "LoadBalancer"}}' kubectl get svc Limpando Para remover uma chamada da função implantada: kubectl delete -f function_demo.yaml Conclusão Enquanto esta é sem dúvida uma prova de conceito e não uma solução a nível de produção, esta abordagem demonstra que é possível executar cargas de trabalho do InterSystems IRIS utilizando a abordagem serverless FaaS. Links Minicube Kubeless InterSystems IRIS runtime
Anúncio
Rochael Ribeiro · Mar. 7, 2022

InterSystems presente no Hacking Health Camp na França este ano!

Olá Desenvolvedores, Estamos muito animados em fazer este anúncio de que a InterSystems será patrocinador Platinum do Hacking Health Camp - uma grande conferência profissional de HealthTech e também um hackathon, que acontecerá in-loco em Estrasburgo, França, no período de 25 a 27 de Março de 2022. No dia 08 de Março de 2022 @Guillaume.Rongier7183 fará um webinar "Como o FHIR pode ajudá-lo a desenvolver suas aplicações de saúde" (Webinar em Francês). Registre-se aqui. No hackathon, a InterSystems disponibilizará um desafio para os hackers relacionado a utilização dos serviços na nuvem FHIR da InterSystems. Saiba mais no site oficial e junte-se a nós pessoalmente na França!
Anúncio
Evgeny Shvarov · Jul. 7, 2021

Bônus Técnico para o Concurso de Programação de Inteligência Artificial InterSystems

Olá Desenvolvedores! Aqui estão os bônus tecnológicos para o Concurso Programação de Inteligência Artificial InterSystems que irão garantir pontos extras a seus projetos durante a votação. Uso do IntegratedML - 4 pontos Utilize o IntegratedML da InterSystems em sua solução de IA/ML. Aqui está o modelo que o utiliza. Se certifique de que a versão da plataforma de dados InterSystems IRIS que você está utilizando não seja anterior a 2021. As imagens mais recentes do IntegratedML com ZPM são: intersystemsdc/iris-ml-community:2021.1.0.215.0-zpm intersystemsdc/irishealth-ml-community:2021.1.0.215.0-zpm Utilização do R Gateway e do Python gateway - 4 pontos A versão 2021 da plataforma de dados InterSystems IRIS possui duas novas funcionalidades - O gateway para R e o gateway para Python. Aqui está o modelo de como utilizar o gateway para R. E aqui uma pequena demosntração de como utilizá-lo. Uso do Python Incorporado - 4 pontos O Python Incorporado é uma nova funcionalidade da plataforma de dados InterSystems IRIS que lhe dá a opção de utilizar o python como "cidadão de primeira classe" no desenvolvimento da lógica de de negócio no backend com as classes InterSystems. Pequena demonstração do Python Incorporado. O Python Incorporado pode ser utilizado através de imagens sob demanda que são disponibilizadas através do Programa de Acesso Antecipado InterSystems (EAP). Você pode solicitar a participação no programa enviando mensagem para python-interest@intersystems.com. Aqui está o pacote de modelo de como utilizar o Python Incorporado utilizando a implantação via ZPM. Não se esqueça de alterar a imagem do modelo pela imagem que você receberá após solicitar a participação no Programa de Acesso Antecipado InterSystems. Uso de PMML - 4 pontos O PMML - Predictive Modelling Markup Language (formato de intercâmbio de modelos preditivos baseado em XML) pode ser utilizado para construir soluções de IA/ML com a plataforma de dados InterSystems IRIS. Veja mais na documentação. Aqui você encontra um exemplo de como utilizar o PMML no Open Exchange. Uso de contêiner Docker - 2 pontos A sua aplicação ganhará o bônus 'contêiner Docker' se ela utilizar a plataforma de dados InterSystems IRIS em um contêiner docker. Aqui está o modelo mais simples para se utilizar. Implantação com Pacote ZPM - 2 pontos Você ganhará este bônus se você construir e publicar o pacote ZPM(ObjectScript Package Manager) de sua aplicação Full-Stack de forma que ele possa ser implantado através do comando abaixo: zpm "install sua-solução-multi-modelo" em uma plataforma de dados InterSystems IRIS com o cliente ZPM instalado. Documentação do cliente ZPM. Teste Unitário - 2 pontos Aplicações que possuírem Teste Unitário para o código InterSystems IRIS ganharão este bônus. Aprenda mais sobre Teste Unitário para ObjectScript na Documentação e na Comunidade de Desenvolvedores. Demonstração Online de seu Projeto - 3 pontosGanhe 3 pontos de bônus a mais se você disponibilizar seu projeto na nuvem como uma demonstração online. Você pode utilizar este modelo ou qualquer outra forma de implantação. Exemplo. Aqui você encontra o vídeo de como utilizá-lo. Análise de Qualidade de Código com zero defeitos - 2 pontos Inclua a ação do Github de qualidade de código para controle de código estático e faça a mesma retornar 0 erros para o código ObjectScript de sua solução. Artigo na Comunidade de Desenvolvedores - 2 pontos Faça uma postagem de um artigo na Comunidade de Desenvolvedores que descreva as funcionalidades de seu projeto. Ganhe 2 pontos para cada artigo. Traduções para diferentes idiomas também valem !!! Vídeo no YouTube - 3 pontos Faça um vídeo no Youtube que demonstre sua solução funcionando e ganhe 3 pontos. Esta lista de bônus está sujeita a alterações. Fiquem ligados!