Árvore de páginas

Objetivo



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.

Seus principais objetivos são:

  • Ser o componente responsável por gerenciar e transportar mensagens XML entre os produtos da linha Datasul (host application);
  • Gerenciar a troca de mensagens entre ERPs, tais como: registrar mensagens enviadas e recebidas, rastrear a execução da mensagem dentro do ERP e gerenciar filas de execução de mensagens;
  • Configurar a troca de mensagens, tais como: habilitar determinadas transações, configurar os vários canais de comunicação e configurar os destinos dos outros ERPs.

Matriz de Evolução

Versão / ReleaseFuncionalidade
11.5.0
  • Concepção do EAI 2 e modelo de mensagem única
12.1.1
  • Melhorias na engine do EAI
  • Adição do monitoramento das mensagens no TOTVS Monitor


Objetivos do EAI


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 monitoração de processos e mensagens em tempo real.

Componentes da arquitetura EAI


Abaixo contém os componentes presentes em uma arquitetura, com uma breve descrição e exemplo prático.

ComponenteDescriçãoExemplo
SistemasRefere-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
InterfaceForma de enviar receber dados entre os sistemasWeb services, adaptadores
ComunicaçãoTipo de comunicação a ser utilizada durante a troca de informações entre os sistemasSíncrona ou assíncrona

Aplicativos Integrados


O EAI 2 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, descartando qualquer possibilidade de troca de mensagens diretas entre as external applications.

Cada aplicativo integrado terá filas distintas para entrada e saída de mensagens. Isto significa que caso uma mesma mensagem seja enviada para dois aplicativos, o fato do aplicativo 1 buscar a mensagem não afetará o recebimento da mesma mensagem pelo aplicativo 2.

Da mesma forma, quando os aplicativos externos enviarem mensagens para o EAI eles terão que sinalizar para qual fila/aplicativo estão fazendo o envio, sendo que o EAI não permitirá a entrada de uma mensagem do aplicativo 1 no WebService do aplicativo 2, por exemplo. Esta segmentação permite o processamento paralelo ou um escalonamento das mensagens de acordo com o aplicativo de origem, sem comprometer a consistência dos dados.

Tipos de Integrações


As integrações entre sistemas podem ocorrer de forma síncrona (sync) ou assíncrona (async), dependendo da regra de negócio estabelecida.

Uma integração síncrona funciona da seguinte maneira:

  1. Programa/tela chama adapter de negócio;
  2. Adapter envia mensagem para sistema externo;
  3. O programa/tela de negócio aguarda a resposta do sistema externo;
  4. Adapter de negócio recebe resposta e devolve ao programa/tela.

Esse tipo de integração (síncrona) permite que, caso haja algum problema de negócio no sistema externo, seja possível desfazer o trabalho realizado no programa/tela de negócio, por exemplo.

Em uma integração assíncrona, não há interrupção no processamento do programa/tela de negócio. A integração se dá através dos seguintes passos:

  1. Programa/tela chama adapter de negócio;
  2. Adapter envia mensagem para fila de mensagens do EAI.

Nesse caso, há a participação de um programa do EAI que é rodado no servidor RPW, responsável por enviar/receber mensagens dessa fila.

No caso de uma integração de envio (Host application → External application), as seguintes ações são executadas:

  1. Processo do RPW captura mensagens que não foram enviadas;
  2. Mensagem é enviada ao sistema externo e aguarda resposta;
  3. Resposta é devolvida ao adapter de negócio.

No caso de uma integração de recebimento (External application → Host application), as seguintes ações são tomadas:

  1. Processo do RPW captura mensagens recebidas na fila do EAI;
  2. Mensagem é processada pelo adapter de negócio relacionado, aguardando resposta;
  3. Recibo de processamento é enviado ao sistema externo.

Glossário EAI2


Helper


Fonte responsável por conter as informações da mensagem, como: nome, tipo de entrega, versão etc.

Representa um espelho do .xsd (arquivo de esquema de XML) em uma estrutura de dados em Java ou Progress.

Adapter


Fonte responsável por criar a estrutura de tratamento do envio e recebimento, ou seja, terá uma estrutura Helper da mensagem que fará os gets e os sets.

Para o envio, receberá parâmetros necessários para buscar informações complementares e alimentará a estrutura do Helper. Para recebimento de mensagens EAI, fará manutenção dos dados (inclusão, exclusão e modificação) pelo conteúdo recebido. 

Também será responsável por chamar a função de envio ou será chamado no recebimento automaticamente pelo EAI Engine.

Rota


Representa o caminho definido entre Host application e um External applications (origem/destino).

Pode ser considerado como uma ponte onde faz a conexão entre as transações de um Host Applications com as transações de um External Applications.

Fila


Estrutura de fila das mensagens que são geradas pelos Adapters de Negócio. Esta fila é armazenada em tabela do EAI2 e consumida pelo serviço RPW da engine do EAI.

Contexto


O Contexto é um filtro opcional para rota, é através do contexto é possível determinar de quais rotas as mensagens devem ser processadas.

Quando não é informado um contexo, isto significa que a mensagem gerada pelo Adapter será padrão. Neste caso a mensagem será enviada para todas as rotas que assinarem esta mensagem.

Síncrona


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íncrona


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.

Aplicação Interna e Externa


Aplicativo é todo o produto instalado em uma determinada máquina que possua os programas de EAI e que consiga realizar a comunicação com qualquer outro Aplicativo.

A aplicação interna é a Aplicação Origem da Integração. Só existe uma aplicação interna para o EAI 2.

Já a aplicação externa é a Aplicação Destino da Integração. Podemos ter várias aplicações externas.

De-Para


Este cadastro tem objetivo de converter os valores e chaves correspondentes entre produtos durante a troca de mensagens.

BusinessMessage


São processos que iniciam a troca de mensagens entre os aplicativos.

Sempre que um aplicativo A enviar ou solicitar informações do aplicativo B, ele enviará uma BusinessMessage que será processada pelo aplicativo destinatário.

As BusinessMessages podem assumir dois tipos, Event e Request, que estão detalhadas abaixo.

Event


As mensagens de evento são aquelas cujo objetivo é notificar outros aplicativos da ocorrência de um evento.

Estas mensagens são normalmente utilizadas para fins de replicação de dados, quando um dos aplicativos (cadastro master) envia para os demais (slaves) sobre a inclusão, alteração ou eliminação de um registro.

Request


As mensagens de solicitação são utilizadas para consumir um serviço de um aplicativo remoto.

Pode ser entendido por serviço qualquer processamento feito pelo aplicativo chamado com base nas informações passadas pelo aplicativo chamador.

As mensagens de request são normalmente enviadas por aplicativos-clientes aos aplicativos-servidores para iniciar um processamento (como a consulta do saldo de um item, por exemplo)

Status das mensagens


StatusQuando ocorreO que acontece
ReceivedQuando uma mensagem é recebida por algum dos canais.Verifica se o formato da mensagem é compatível com alguns dos formatos suportados (TOTVSMessage ou DatasulMessage)
RecognizedA mensagem foi reconhecida como compatível com o EAI.Identifica a origem da mensagem e verifica se a mesma é válida (um dos aplicativos integrados e com assinaturas registradas). Também verifica se a mensagem recebida não duplica (pelo código de identificação) outra que já tenha sido recebida previamente.
ValidatedA mensagem foi considerada válida para o processamento.Mensagem é encaminhada para o processo de entrega.
DeliveringA mensagem está sendo distribuída para o(s) destinatário(s) registrado(s).Os destinatários da mensagem são identificados e a mensagem é encaminhada a cada um. A Mensagem foi gerada, enviada para o EAI2 – consta na FILA do EAI2, porém ainda não foi processada pelo Serviço do EAI “RPW”. Pode ser do tipo Envio ou Recebimento. Neste caso o EAI2 já pode ter retornado um “RECEIPT” para a outra aplicação
DeliveredMensagem entregue a todos os destinatários identificados.Mensagem entregue aos destinatários. Mensagem OK, foi enviada ou recebida com sucesso. Passou por todos os Status, foi processada e finalizada com sucesso.
MalformedA mensagem não foi reconhecida como uma mensagem válida.Mensagem é registrada no histórico mas não é mais processada pelo engine. A Mensagem quando é MALFORMED não entra no EAI2. No envio o EAI2 valida já na criação da mensagem. Quando o Adapter gera a Mensagem e envia para o EAI2 este retorna  ERRO e não coloca esta Mensagem na FILA. No Recebimento o EAI2 valida ao receber e já retorna “Resposta” que a mensagem está MalFORMED.
RefusedA mensagem não foi aceita para processamento porque a origem é desconhecida ou duplica outra mensagem já processada.

Mensagem é registrada no histórico mas não é mais processada pelo engine. A Mensagem foi gerada, enviada ao EAI2, porém esta apresentou algum dos ERROs abaixo:

  • Aplicação Destino não esta cadastrada no EAI 2;
  • O EAI2 Validou a Mensagem “XSD” e esta não foi aprovada.

Uma mensagem “REFUSED” pode ser reprocessada.

BUSINESSERRORA mensagem foi aceita, processada e retornou erro de negócio. Mensagem com ERRO de negócio. A mensagem foi gerada, entrou na fila do EAI2, foi processada, porém o programa de negócio reportou algum ERRO. Neste caso a mensagem pode ser REPROCESSADA. A Mensagem pode ser Arquivada
NotDeliveredNão foram identificados destinatários para a mensagem ou a entrega não foi realizada.

Mensagem é registrada no histórico mas não é mais processada pelo engine. A Mensagem não foi Entregue para aplicação “Destino”. Esta apresentou algum dos ERROs abaixo:

  • Aplicação Destino não esta cadastrada no EAI2.