Você está na página 1de 7

EAI 2

Contedo
O que o EAI 2 .............................................................................................................................. 2 BusinessMessage ...................................................................................................................... 2 Event...................................................................................................................................... 2 Request.................................................................................................................................. 2 ResponseMessage ..................................................................................................................... 2 ReceiptMessage ........................................................................................................................ 3 Conceitos ....................................................................................................................................... 3 Host application e External Applications .................................................................................. 3 Mensagens ................................................................................................................................ 3 Informaes Comuns ............................................................................................................ 3 BusinessMessage Event...................................................................................................... 4 BusinessMessage Request.................................................................................................. 5 ResponseMessage ................................................................................................................. 5 ReceiptMessage .................................................................................................................... 6 Transaes................................................................................................................................. 6 Status ..................................................................................................................................... 6 Rotas.......................................................................................................................................... 6 Tipos de integrao ................................................................................................................... 7 Sncrona ................................................................................................................................. 7 Assncrona ............................................................................................................................. 7

O que o EAI 2
O EAI2 serve para realizar a comunicao entre vrios aplicativos tendo uma forma padro de comunicao utilizando Mensagem nica TOTVS. A Mensagem nica TOTVS estabelece alguns padres que devem ser seguidos por todos os aplicativos que participem da integrao. Estes padres estabelecem alguns tipos de mensagens suportadas bem como informaes obrigatrias que devem fazer parte do seu contedo. O padro de mensagem TOTVS estabelece trs tipos de mensagens:

BusinessMessage
Uma mensagem do tipo BusinessMessage so aquelas que iniciam qualquer processo de troca de mensagens entre os aplicativos. Sempre que um aplicativo A quiser enviar ou solicitar informaes do aplicativo B, ele enviar uma BusinessMessage que ser processada pelo aplicativo destinatrio. As BusinessMessages podem assumir dois tipos: Event: As mensagens de evento so aquelas cujo objetivo notificar outros aplicativos da ocorrncia de um evento. Estas mensagens so normalmente utilizadas para fins de replicao de dados, quando um dos aplicativos (cadastro master) envia para os demais (slaves) sobre a incluso, alterao ou eliminao de um registro. Request: As mensagens de solicitao so utilizadas para consumir um servio de um aplicativo remoto. Pode ser entendido por servio qualquer processamento feito pelo aplicativo chamado com base nas informaes passadas pelo aplicativo chamador. As mensagens de request so normalmente enviadas por aplicativos-clientes aos aplicativosservidores para iniciar um processamento (como a consulta do saldo de um item, por exemplo). A tabela abaixo apresenta um comparativo entre mensagens de evento e de solicitao: Event Request Objetivo Replicao de Dados Compartilhar Lgicas Quem Gera Um (cadastro Master) Vrios (clientes que precisam da (normalmente) lgica) Quem Responde Vrios (cadastros Um (detentor da lgica) (normalmente) replicados) Uso + comum Assncrono (envia e Sncrono (Envia e aguarda) esquece) Exemplo Upsert UnitOfMeasure getCashAvailableOnDate

ResponseMessage
Uma ResponseMessage representa o resultado do processamento de uma BusinessMessage pelo aplicativo que a recebeu e o seu contedo pode variar de acordo com o tipo de mensagem e com o resultado do processamento. Todas as respostas geradas por uma BusinessMessage devem ser associadas mensagem original e mantidas pelo aplicativo-origem, como forma de rastrear quem processou aquela mensagem e qual o resultado do processamento.

ReceiptMessage

Uma ReceiptMessage representa a confirmao de recebimento de uma BusinessMessage pelo aplicativo destino. Diferente da ResponseMessage, uma ReceiptMessage no ir conter qualquer informao relevante sobre o processamento da mensagem, uma vez que entende-se que, se o aplicativo destino retornou um Receipt, ele no processou a mensagem naquele momento (comunicao assncrona). Quando a mensagem for processada pelo aplicativo-destino, uma mensagem de resposta (ResponseMessage) ser gerada e encaminhada ao aplicativo que originou a BusinessMessage.

Conceitos
Host application e External Applications
Uma integrao sempre envolve pelo menos 2 aplicativos que trocam mensagens entre s. Se pegarmos como exemplo os aplicativos A e B, A v B como um aplicativo externo, ou seja, algum de fora com quem so trocadas mensagens. Da mesma forma, B v A como um aplicativo externo. J o conceito de Host Application diz respeito a como os aplicativos A e B so referenciados durante a administrao do sistema (A e B, respectivamente). possvel configurar mais de um aplicativo externo no EAI, mas apenas um host application.

Mensagens

As mensagens TOTVS compartilham um conjunto de informaes bsicas que so utilizadas para identificar o seu tipo, verso e origem. Informaes Comuns As mensagens TOTVS possuem um segmento chamado MessageInformation que possui as principais informaes utilizadas para identificao e roteamento da mensagem. O quadro abaixo apresenta um exemplo deste segmento: <MessageInformation version="11.0.0"> <UUID>BranchUp-sert-Even-t000-000000000000</UUID> <Type>BusinessMessage</Type> <Transaction>Branch</Transaction> <StandardVersion>1.0</StandardVersion> <SourceApplication>SourceApplication</SourceApplication> <CompanyId>CompanyId</CompanyId> <Product name="Any" version="Any"/> <GeneratedOn>2001-12-31T12:00:00</GeneratedOn> </MessageInformation> Onde: MessageInformationversion: Identifica qual a verso daquela mensagem de negcio. Uma mensagem de Item, por exemplo, pode sofrer alteraes no decorrer do tempo, sendo que cada uma destas alteraes ir afetar esta informao. UUID: Identificador nico desta mensagem e que no pode ser igual ao UUID de qualquer outra mensagem em qualquer um dos aplicativos participantes da integrao.

Type: Identifica o tipo da mensagem (BusinessMessage, ReceiptMessage ou ResponseMessage). Transaction: Identificador do tipo de transao da mensagem. Esta informao ser utilizada pelos aplicativos para definir como os dados sero processados no recebimento. StandardVersion: Identifica a verso do padro TOTVS, ou seja, do formato utilizado nas reas genricas da mensagem TOTVS. Caso o padro TOTVS seja alterado, este valor ser alterado. SourceApplication: Identifica a instancia dos aplicativos TOTVS que gerou a mensagem. Uma instncia representa uma instalao/configurao daquele aplicativo/produto. Caso duas instancia do mesmo aplicativo participem da mesma integrao, cada um dever ser identificado de forma nica. CompanyId: Identificador da empresa que gerou a mensagem. Esta informao apenas documentacional e no deve ser utilizada para o processamento da mensagem j que no existe garantia da sua existncia na mensagem. Quando a informao da empresa for relevante para o negcio, preciso buscar esta informao do contedo da mensagem de negcio. Product: Identifica o produto e verso que originou a mensagem. Neste caso, o valor pode ser o igual, mesmo em instncias diferentes do mesmo aplicativo. GeneratedOn: Identifica o timestamp de gerao desta mensagem.

BusinessMessage Event As mensagens de eventos de negcio basicamente descrevem o evento ocorrido, como no exemplo abaixo: <BusinessMessage> <BusinessEvent> <Entity>Branch</Entity> <Event>upsert|delete</Event> <Identification> <key name="key1">1</key> <key name="key2">f1</key> </Identification> </BusinessEvent> <BusinessContent> ... </BusinessContent> </BusinessMessage> Onde: Entity: Identifica qual foi a entidade de negcio que sofreu o evento Event: Qual foi o evento associado mensagem (pode ser upsert incluso/alterao ou delete eliminao). Identification/Keys: campos-chave para identificao do registro impactado pela alterao BusinessContent: XML com informaes sobre o evento, normalmente contendo todas as informaes pertinentes quela entidade.

BusinessMessage Request As mensagens de request descrevem qual funo se deseja executar e os parmetros necessrios, como no exemplo abaixo: <BusinessMessage> <BusinessRequest> <Operation>getExpectedCashAvailable</Operation> </BusinessRequest> <BusinessContent> ... </BusinessContent> </BusinessMessage> Onde: Operation: Identifica qual a operao que se deseja executar BusinessContent: XML com informaes necessrias para o processamentos, normalmente parmetros de entrada. ResponseMessage As mensagens de resposta contm informaes sobre o resultado do processamento de uma BusinessMessage, como no exemplo abaixo: <ResponseMessage> <ReceivedMessage> <SentBy>client</SentBy> <UUID>getExpec-tedC-ashA-vail-ableRequest0</UUID> <MessageContent><![CDATA[ <TOTVSMessage>...</TOTVSMessage> ]]> </MessageContent> </ReceivedMessage> <ProcessingInformation> <ProcessedOn>2001-12-31T12:00:03</ProcessedOn> <Status>OK</Status> <ListOfMessages> <Message type="WARNING" code="c1">msg1</Message> <Message type="ERROR" code="c2">msg2.</Message> </ListOfMessages> </ProcessingInformation> <ReturnContent> ... </ReturnContent> </ResponseMessage> Onde: ReceivedMessage: Segmento com informaes sobre a mensagem original (BusinessMessage) que deu origem esta resposta. o SentBy: Indica qual foi a instancia que gerou a mensagem original o UUID: Identificador universal da mensagem de origem o MessageContent: XML da mensagem original (opcional). ProcessingInformation: Segmento com informaes sobre o resultado do processamento o ProcessedOn: Timestamp de quando a mensagem foi processada pelo destino o Status: Situao final do processamento (OK ou ERROR)

ListOfMessages: Lista de mensagens (erro ou aviso) retornadas no processamento. ReturnContent: XML com as informaes de negcio retornadas no processamento. o

ReceiptMessage As informaes contidas nas mensagens de recibo so genricas e focam especificamente nos dados de recebimento da mensagem. <ReceiptMessage> <ReceivedMessage> <SentBy>client</SentBy> <UUID>getExpec-tedC-ashA-vail-ableRequest0</UUID> <MessageContent><![CDATA[ <TOTVSMessage>...</TOTVSMessage> ]]> </MessageContent> </ReceivedMessage> <ReceiptData> <ReceivedOn>2001-12-31T12:00:01</ReceivedOn> </ReceiptData> </ReceiptMessage> Onde: ReceivedMessage: Segmento com informaes sobre a mensagem original (BusinessMessage) que deu origem esta resposta. o SentBy: Indica qual foi a instancia que gerou a mensagem original o UUID: Identificador universal da mensagem de origem o MessageContent: XML da mensagem original (opcional). ReceiptData: Segmento com informaes sobre o recebimento da mensagem o ReceivedOn: Timestamp do recebimento da mensagem.

Transaes

Uma transao a troca de mensagem realizada entre um Host Application e um ou mais External Application. Atravs da Mensagem nica Totvs possvel realizar transaes. Status Em uma Transao possvel verificar o status da mensagem se ela pode ser eviada e/ou recebida.

Rotas

o caminho definido entre Host application e um External applications (origem/destino). Pode ser considerado como uma ponte onde faz a conexo entre as transaes de um Host Applications com as transaes de um External Applications.

Tipos de integrao
Sncrona
Na integrao sncrona, o programa de origem envia a mensagem, e s continua executando ao obter o retorno da mesma.

Assncrona
Na integrao assncrona, o sistema envia a mensagem, e em seguida deposita a mensagem na fila, retornando o OK para o sistema. Enquanto esse procedimento efetuado, o programa em questo continua sendo executado. A mensagem enviada permanece na fila aguardando seu processamento.