EAI (do inglês Enterprise Application Integration) é uma referência aos meios computacionais e aos princípios de arquitetura de sistemas utilizados no processo de Integração de Aplicações Corporativas. Os procedimentos e ferramentas de EAI viabilizam a interação entre sistemas corporativos heterogêneos por meio da utilização de serviços.

                                                   

Ampliar o conhecimento sobre o tema integrações

Conhecer as tecnologias envolvidas

Conhecer o padrão TOTVS para integrações







Conceitos gerais de integração

  • Definição de EAI
  • Por que integrar?
  • Formas de integração
  • Elementos de uma integração

Tecnologias

  • XML/SOAP
  • JSON/REST

Mensagem Padronizada

  • Termos e conceitos
  • Anatomia de uma mensagem


Definição de EAI

Enterprise Application Integration


É uma referência aos meios computacionais e aos princípios de arquitetura de sistemas utilizados no processo de Integração de Aplicações Corporativas.

https://pt.wikipedia.org/wiki/EAI

Tem com objetivo alcançar a interoperabilidade e a organização do fluxo de informações entre aplicações heterogêneas

garantir a comunicação entre as diferentes aplicações que constituem o sistema de informação da empresa, incluindo clientes, parceiros ou fornecedores. 

o projeto EAI envolve a implementação de uma arquitetura em que as diferentes aplicações se comuniquem entre si

isso implica no desenvolvimento de conectores (middleware) para a interface das aplicações que utilizam protocolos de comunicações diferentes (geralmente proprietários). 

Por que Integrar?



Os objetivos da arquitetura do EAI são:


  • Integração de aplicações, sistemas de informação e processos de negócio de uma empresa;
  • Integração com aplicações internas e externas da empresa que servem de suporte ao processo de negócio da mesma, como por exemplo processo financeiro, RH, dentre outros;
  • Conjunto de ferramentas de análise e monitoramento de processos e mensagens em tempo real.

Alguns conceitos

Formas de Integração - Modos de Comunicação

SÍNCRONO

Na integração síncrona, o programa de origem envia a mensagem e só prossegue a execução ao obter o retorno da mesma.

ASSÍNCRONO

Na integração assíncrona, o sistema envia a mensagem, e em seguida deposita a mensagem na fila, retornando OK para o sistema.

Enquanto esse procedimento é efetuado, o programa em questão continua sendo executado. A mensagem enviada permanece na fila aguardando seu processamento.




                                                 

Elementos de uma Integração

Componente

Descrição

Exemplo

Sistemas

Refere-se aos sistemas que trocarão informações entre si

Aplicações do módulo de CRM trocando informações com o módulo de faturamento

Dados

Conjunto de dados (layouts de arquivos) que serão trafegados pela arquitetura durante a troca de dados entre os sistemas

XML ou Texto

Interface

Forma de enviar receber dados entre os sistemas

Web services, adaptadores

Comunicação

Tipo de comunicação a ser utilizada durante a troca de informações entre os sistemas

Síncrona ou assíncrona



Integração EAI2

Fluxos de Comunicação

O EAI2 deve permitir que uma mesma instância do aplicativo hospedeiro (Datasul 11 ou superior) possa se integrar com vários aplicativos diferentes, denominados External Applications. Esta capacidade implica na existência de regras de roteamento que irão definir quais mensagens devem ser encaminhadas para cada aplicativo.

Portanto, a regra de roteamento levará em consideração APENAS o fluxo de troca de mensagens entre o host application e os external applications, DESCARTANTO qualquer possibilidade de troca de mensagens diretas entre as external applications.

Componentes da Integração - JOINVILLE

Tecnologias envolvidas na Integração

XML/SOAP



JSON/REST


MÉTODOS (Verbos) HTTP  REST


Mensagem Padronizada (antes conhecida como mensagem única) é o modelo de dados em que todos os produtos da TOTVS devem trabalhar durante troca de informações. Seu objetivo é evitar o processo de transformação de mensagens, fazendo assim com que a mensagem, após definida, torne-se padrão independente de produtos.


Com o modelo de mensagem apresentado, também se torna uniforme seu tratamento pelos produtos, principalmente no que diz respeito à capacidade de rastreamento, pois em seu conteúdo é possível identificar a origem e o tipo.


Além disso, a mensagem única estabelece alguns padrões que devem ser seguidos por todos os produtos que participam de integrações. Esses padrões, por exemplo, definem tipos de mensagens suportadas e informações obrigatórias que farão parte do conteúdo de cada mensagem.  Porém, a composição dessas mensagens será definida em conjunto com especialistas de negócio e não faz parte do escopo deste documento.


A mensagem padronizada é a solução para tornar mais fácil a integração dos vários sistemas adquiridos pela TOTVS.

Uma vez que os produtos TOTVS terão um “idioma” comum para troca de informações, será possível conectar diretamente com vários produtos ao mesmo tempo, trocando informações, sem a necessidade do TOTVS ESB.




No tráfego da integração existem  3 tipos de mensagens, cada uma com uma finalidade.


O padrão de mensagem TOTVS.

Tipos de Entrega (Delivery Type) é a denominação pela qual é referenciado o tipo de comunicação entre os aplicativos. Em determinados modelos de dados, o programa necessita de uma resposta imediata do aplicativo externo. Já em outras vezes, o modelo não necessita de uma resposta ou não naquele determinado momento, economizando o tempo que o programa aguarda durante troca de mensagens.


Síncrono

Sync: o processamento da mensagem do tipo síncrono acontece no momento da execução, ou seja, o aplicativo interno aguarda a resposta do aplicativo externo para continuar a execução.


Normalmente, mas não necessariamente, utiliza-se essa funcionalidade quando são necessárias mais informações no retorno, como dados complementares aos enviados.



Assíncrono

Async: quando enviada uma mensagem do tipo assíncrono, o aplicativo interno não aguarda uma resposta do aplicativo externo para continuar a execução.



O destino recebe a mensagem e coloca em uma fila junto com outras mensagens assíncronas. Posteriormente, o processamento delas é efetuado na ordem em que chegaram. Ou seja, caso a origem necessite de retorno, será feito em um momento futuro e não durante a execução do programa. É comum o uso dessas mensagens para replicação de cadastros simples, onde não envolve processamento complexo.