Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Visando ofertar uma solução do seguimento Agro x BackOffice Protheus mais adequada a necessidade do cliente, foi criado o PIMSConnector com arquitetura responsável por realizar integrações entre PIMS X Protheus.

PIMSConnector

A seguir serão apresentadas seções com as principais visões arquiteturais da aplicação. Cada uma possui um foco distinto e possivelmente um público específico.Image Removed



draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameArquiteturaDiagrama
simpleViewerfalse
width
diagramWidth1066
revision15

Figura 1 - Visão Geral do Modelo de Componentes do PIMSConnector

...

  • Aplicações ERP: são produtos como Protheus, Datasul, que são utilizados pelos clientes e que precisam trocar informações com as aplicações especializadas da TOTVS Agro;
  • Drivers: são os componentes responsáveis pela implementação das regras de validação e integração. Estes podem ser divididos em dois tipos: drivers de coleta de dados (DataDriver) e drivers de processamento de integração (ProcessDriver);
    • DataDriver: um driver de coleta de dados é o componente responsável por obter os dados de uma aplicação em uma das pontas (aplicação PIMS ou ERP) e enviá-los para o PIMSConnector Bridge para serem processados e integrados;
    • ProcessDriver: um driver de processamento de integração que é invocado pelo PIMSConnector Bridge para processar os dados recebidos e enviá-los (integrá-los) à aplicação na outra ponta;
  • Bridge: é responsável por intermediar a comunicação entre drivers do tipo DataDriver e ProcessDriver, identificando os drivers adequados para o processamento das integrações. Este módulo disponibiliza serviços de registro e invocação de integrações (envio de dados) aos drivers;

Considerações Sobre Acoplamento

...

  • ;

Registro de Drivers

Os drivers do tipo ProcessDriver precisam se registrar no módulo PIMSConnector Bridge, informando o nome da integração e a URI que oferece o serviço de processamento, para que sejam encontrados quando houver a necessidade de processamento de uma integração. Já os drivers do tipo DataDriver não precisam se registrar, apenas conhecer os serviços disponibilizados pelo módulo PIMSConnector Bridge que recebem os dados.

Considerações Sobre Tecnologias de Comunicação

Uma das características importantes a considerar neste projeto é que, a comunicação feita pelos drivers com as aplicações a serem integradas, poderão dar-se de diversas formas e com tecnologias distintas. Há integrações feitas através da comunicação direta com bancos de dados, comunicação através de web services SOAP, web services REST, chamadas HTTP, troca de mensagens através de middlewares orientados a mensagens, sockets, e quaisquer outras que possam surgir derivadas das anteriores. É importante que cada driver implementado seja independente da forma de comunicação adotada, para que se possa permitir que a regra de negócio seja a mesma em cada situação, para não haver duplicação. Para isso existe o conceito de Wrapper de Comunicação. Wrappers de Comunicação são componentes responsáveis exclusivamente pela comunicação do driver com as aplicações que precisam ser integradas, ou seja, das quais os drivers recebem os dados e para as quais eles enviam estes dados, após o processamento da integração. 

A ideia é que os Wrappers implementem uma interface que possui um método que possa ser chamado pelos aplicativos envolvidos na integração para a entrega dos dados (obtenção passiva de dados), ou então o Wrapper implementará uma estratégia de recuperação dos dados (obtenção ativa dos dados). Uma vez que tenha obtido os dados, o Wrapper invocará no DataDriver o método responsável por receber os dados e o DataDriver passará os dados adiante, fazendo qualquer alteração necessária. Neste processo o DataDriver será passivo na obtenção dos dados, uma vez que ela é dependente da tecnologia de comunicação. 

EAI PIMSConnector

O EAI PIMSConnector permite a troca de mensagens no formato XML (eXtensible Markup Language), com qualquer produto ou software que disponibilize um WebService para esta finalidade. O EAI PIMSConnector interpreta e gerencia as informações enviadas ou recebidas por aplicativos PIMS ou por outro Software. Após interpretar as informações o EAI PIMSConnector entrega aos Adapters para realizar o processo de validação de negócio. Aos finalizar estas validações o EAI PIMSConnector devolverá ao software que originou as informações um aviso (XML) que identifica se o processamento foi realizado com sucesso ou falha. É importante ressaltar que o EAI PIMSConnector não é responsável por realizar a validação de negócio, apenas envia e recebe mensagens. Ele também é responsável por tentar entregar a mensagem novamente, quando a entrega anterior não foi possível. Desta maneira, erros no processamento da mensagem, problemas na regra de negócio envolvida na integração, problemas com consumo de memória, normalmente são decorrentes da rotina envolvida no processamento da mensagem e não do EAI PIMSConnector.

...

URL2: http://<servidor-PIMSConnector>:<porta-PIMSConnector>/ PIMSConnectorWS/PIMSConnectorWS?wsdl


InternalID

É uma ferramenta utilizada para converter campos de chaves primárias de aplicativos externos para a chave primária do aplicativo interno. Pode ser referenciada como EAI de – para ou depara.

Durante a troca de mensagens, o aplicativo externo pode ter mais, menos ou diferentes campos correspondentes à chave primária. Assim, fica impossível identificar qual registro corresponde aos valores recebidos na mensagem. Isso pode ocorrer com vários aplicativos externos ao mesmo tempo e para a mesma mensagem. Para resolver essa situação, tornando-a invisível para o Helper e o Adapter durante a extração dos dados recebidos, foram criadas as funções do InternalId.

Foi adicionado um código interno (InternalId) no XML da mensagem para identificar os campos chaves do aplicativo externo. Chegando ao destino, os campos são convertidos para os valores locais no corpo da estrutura.