Você está na página 1de 99

ESB

TREINAMENTO FUNCIONAL/PRÁTICO
ÍNDICE

• Integrações

• Visão Geral

• Arquitetura de Integrações

• Instalação

• Administração

• Componentes
ENTERPRISE SERVICE BUS

O ESB é o intérprete que permite que


sistemas desenvolvidos em plataformas
distintas possam se integrar de forma ágil
e flexível
ENTERPRISE SERVICE BUS

O conceito chave do ESB é o uso de mensagens, como em arquivos XML


que serão trafegados entre os sistemas

A responsabilidade do ESB é tratar e distribuir as mensagens conforme a


necessidade
CONTEXTUALIZAÇÃO

Integração de Sistemas

• É um campo técnico da Arquitetura Corporativa

• Interconexão de sistemas

• Troca de dados entre produtos

• Ambientes computacionais distribuídos


CONTEXTUALIZAÇÃO

Problemas Comuns

• Integração codificada em meio às regras de negócio

• Pouco reaproveitamento

• Sistemas desenvolvidos em linguagens/plataformas diferentes

• Ambiente confuso

• Rastreabilidade

• Documentação escassa ou inexistente


CONTEXTUALIZAÇÃO

Desafios
• Controlar as integrações entre múltiplos sistemas
• Suportar ambientes heterogêneos
• Reduzir Custos
• Agilizar mudanças
• Novos sistemas constantemente introduzidos
• Garantia de entrega
• Coordenação para vários destinatários
1 INTEGRAÇÕES
COMO INTEGRAR?

Português Chinês
COMO INTEGRAR?

Português Tradutor Mandarim


COMO INTEGRAR?

XSD XSLT XSD

XML XML

Legado WebService ESB WebService Protheus


COMO INTEGRAR?

XSD XSLT XSD

Legado WebService ESB WebService Protheus


WSDL WSDL
INTEGRAÇÃO SIMPLES
INTEGRANDO VÁRIAS APLICAÇÕES
SOLUÇÃO ESB

ENTERPRISE SERVICE BUS


FOCO EM SERVIÇOS

O ESB oferece as funcionalidades necessárias para implementar,


desenvolver e gerenciar uma Arquitetura Orientada a Serviços (SOA)

A principal característica desta arquitetura é a disponibilização de


sistemas na forma de serviços que podem ser consumidos por outras
aplicações

O ESB age como um centralizador, garantindo a comunicação e a


segurança na integração dos sistemas e a agilidade na manutenção dos
processos
FOCO EM SERVIÇOS

• Integração entre tecnologias heterogêneas: ESB realiza o papel de


“tradutor”

• Confiabilidade: a mensagem é armazenada antes de ser encaminhada e


a quantidade de tentativas de envio é configurável

• Operações offline: se o serviço estiver indisponível, a mensagem fica


enfileirada até o retorno do sistema
CAMADAS DE INTEGRAÇÃO

SISTEMA

INTERFACE DE INTEGRAÇÃO

XML SIGNATURE TRANSFORMER ZIP WHEN DOC IDENTIFIER ERROR

HTTP WS FILE FTP MAIL JMS MOCK CUSTOM


2 VISÃO GERAL
VISÃO GERAL

Serviço ESB

Editor Monitor
EDITOR GRÁFICO DE DIAGRAMAS
MONITOR DE INTEGRAÇÃO
XSLT DESIGNER

É um mapeador gráfico que visa facilitar a transformação de uma mensagem


XML para outro XML através de um arquivo especial (formato XSL):
CARACTERÍSTICAS

Multiprotocolos
Pronto para trabalhar em diversos protocolos

Desenvolvimento Acelerado
Criação e manutenção de integrações rápidas
Tarefas comuns deixam de ser escritas em código fonte

Manipulação de Mensagens
Todas as comunicações são feitas através de documentos XML
Agilidade em mudanças

Acompanhamento
Facilidade em acompanhar a movimentação de
mensagens criando alertas de problemas
TECNOLOGIA

Sistema Operacional

Banco de Dados

 File  JMS
Protocolos  FTP  HTTP
 WebServices  Custom
 Java
 WSDL 1.1
Mais Tecnologias  XSLT 1.0 e 2.0
 XPATH
DIMENSIONAMENTO MÍNIMO

1.000 Mensagens/hora 8 GB
MEMÓRIA RAM
100.000 Mensagens/hora 16 GB

Bits 64 bits
PROCESSADOR
Core Mínimo 2 núcleos

Velocidade Mínimo 7200 RPM

Taxa de transferência Mínimo 1 Gb/s


DISCO
Espaço requerido para instalação 4 GB

O espaço em banco de dados é relativo ao nº de


Espaço requerido para banco de dados
mensagens e à fórmula de limpeza do histórico
3 ARQUITETURA DE INTEGRAÇÃO COM ESB
INTEGRAÇÃO – VISÃO GERAL

Web Services ESB HTTP

XML XML
XML
Origem (Protheus) Destino
TIPOS DE INTEGRAÇÕES

Integração Síncrona

Telefone ocupado, pessoa ocupada, linha picotando...

Integração Assíncrona

Registro Sem garantia de retorno Registro


TIPOS DE INTEGRAÇÕES

Integração Síncrona

Sistema lento, fora do ar, com erros, em manutenção...

Sistema Origem Sistema Destino

Integração Assíncrona
Principal vantagem no uso do ESB

Sem garantia de retorno


Sistema Origem Sistema Destino
Registro Registro
VANTAGENS DO SISTEMA DE MENSAGENS DO ESB

• Melhor adaptado para comunicação remota


• Sistemas podem andar em passos diferentes
• Evita o estrangulamento do sistema emissor
– Principal problema das chamadas remotas
– Sistema de mensagens coloca em fila e o emissor não é afetado

• Ao invés de bloquear o usuário, manda a mensagem e espera pelo retorno


através de uma nova chamada
DESVANTAGENS DO SISTEMA DE MENSAGENS DO ESB

• Programação orientada a eventos é mais complexa de ser projetada e


depurada
• Nem todos os cenários podem ser assíncronos
• Tratar com mensagens causa uma degradação de performance
– Quebrar e juntar mensagens
XML

• Marcações, “parente” do HTML


• Recomendações da W3C: www.w3.org
• Facilidade e flexibilidade para troca de informações

<?xml version=“1.0”?>
<!– Isso é um XML -->
<mensagem>
<texto>Hello World!</texto>
</mensagem>
VISÃO GERAL DE XML

1 2
<?xml version=“1.0” encoding=“UTF-8”?>
<!– Isso é um XML --> 3
4 <totvs:mensagem xmlns:totvs=“http://www.totvs.com.br/ns”
5 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://www.totvs.com.br/ns meuschema.xsd”> 6
<totvs:texto tipo=“alerta”>Hello World!</totvs:texto>
</totvs:mensagem> 7 8

1 2 3 4 5 6 7 8
Declaração Codificação Elemento
Comentário Namespace Schema Atributo Valor
XML XML raiz
REGRAS XML

• Nested – Aninhado
<b>Essa é uma frase <i>com erro </b> de aninhamento</i>

• Apenas um elemento raiz

• Tags vazias precisam ser finalizadas


<vazio tipo="0"/>

• http://www.w3.org/XML
REGRAS XML

• Case-sensitive
<tag> != <TAG> != <Tag>

• Caracteres reservados
&, >, <, Etc..
<![CDATA[<aqui>pode fazer tudo <!-- </aqui>]]>

• Comentários limitados
<!-- Esse comentário --> é inválido -->
XML

• Bem Formado • XSD


– Respeita as regras da especificação XML – XML Schema Definition

– Pode conter qualquer valor – http://www.w3.org/XML/Schema

– Definição de como será o XML, usando XML

• Válido – Possível de ser editado no XML Spy, Stylus,


dentre outras ferramentas gráficas
– Bem formado

– Respeita regras pré-definidas

– DTD (Document Type Definition)

– XML Schema  XSD


XSLT – EXTENSIBLE STYLE LANGUAGE TRANSFORMATIONS

• É um XML, criado originalmente para formatação de página


• Permite a total tradução de um mesmo conteúdo
– Remover, reordenar, filtrar, realizar cálculos, etc.
• Possui saídas configuráveis:
– XML, HTML e texto simples
• Vive em par com XPath
– http://www.w3.org/TR/xpath
– Linguagem que permite buscar conteúdo de XML
– Rápida e fácil de ser utilizada
+ http://www.w3.org/TR/xslt
TRANSFORMAÇÃO COM XSLT

Processador
XSLT XML
HTML
XML TXT

XSLT

Como crio?
1. Conhecendo muito bem os layouts 2. Saber as peculiaridades de XSLT
a. Estrutura técnica (tipo e formato) 3. Ter uma ferramenta de apoio!
b. Conhecer a semântica das informações
4 INSTALAÇÃO
DOWNLOAD
INSTALADOR
INSTALADOR
INSTALADOR

1. Database Startup
2. ESB Startup
3. ESB Monitor
PLUG-IN

Utilize uma IDE (TOTVS Developer Studio/Eclipse) para instalar o plug-in do ESB
PLUG-IN

Link para download do plug-in:


http://ds.totvs.com/updates/tds
MÃOS À OBRA!
NOTEPAD++

Faça o download do Notepad++ e do plugin XML Tools

• Notepad++ está disponível para download no site oficial

• O plug-in pode ser obtido pelo Notepad++


– Clique na aba Plugins
– Selecione Plugin Manager  Show Plugin Manager
– Na aba Available, selecione XML Tools e clique no botão Install
EXERCÍCIOS DE FIXAÇÃO - ESB

1. Executar o instalador do ESB

2. Iniciar o banco de dados e o serviço do ESB

3. Instalar a IDE (TDS/Eclipse)

4. Instalar o plug-in do fluig ESB na IDE


5 ADMINISTRAÇÃO
CONFIGURANDO SERVER

Para acessar a administração do


motor é necessário primeiramente
criar e configurar um servidor ESB

Isto significa configurar a conexão


do Studio com o motor previamente
instalado
CONFIGURANDO BANCO DE DADOS

• O ESB armazena as mensagens trafegadas em um banco de dados e


permite utilizar os principais bancos de dados do mercado

• A ferramenta utiliza o banco de dados Derby para a primeira inicialização.


A partir daí é recomendado que se utilize outro banco de dados

• A configuração padrão com o banco de dados Derby é utilizada apenas


para efetuar testes. Não é indicada sua utilização em produção
CONFIGURANDO BANCO DE DADOS

Para visualizar e alterar as configurações


do Banco de Dados, basta acessar o
Studio, conectar o servidor ESB e acessar
a aba “Database Configuration”

As alterações só terão efeito após a


reinicialização do serviço do ESB
LIMPEZA DO BANCO DE DADOS

O ESB permite que a limpeza do Banco de


dados seja programada de tempos em
tempos e também determinar o período
de validade das mensagens
CONFIGURAÇÃO DE E-MAIL

Antes de definir o envio automático de e-


mails nas integrações, deve-se configurar
o servidor de e-mails no ESB
CONFIGURAÇÃO DE LICENÇAS

O ESB enviará uma mensagem de e-mail para


o contato cadastrado quando faltarem 15 dias
para a licença vencer

O Federal ID (CNPJ) é obrigatório para


utilização do ESB com o License Server 2014

Integrações TOTVS X TOTVS não consomem


licença, desde que não sejam utilizados
outros componentes no diagrama
CLIENTES FLUIG ESB

• Atualmente a licença do ESB é comercializada somente junto ao fluig

• Cliente utiliza License Server 2014?


– A licença de uso do ESB será expedida automaticamente

• Cliente utiliza License Server anterior à versão 2014?


– Deverá abrir um chamado para CST solicitando o arquivo da licença

O fluig recomenda a atualização do License Server para a versão 2014


CLIENTES “ANTIGO” ESB

O cliente receberá a licença do antigo ESB


normalmente, de acordo com o License
Server utilizado
CONFIGURAÇÕES DE LOG

A configuração de log do ESB é feita


através da aba Log4j e refere-se ao Log
do sistema

O log do ESB é armazenado na pasta de


instalação, diretório data
NÍVEIS DE LOG

• ERROR - exibe eventos de erro que podem evitar que a aplicação


continue funcionando
• WARN - exibe situações potencialmente prejudiciais. Engloba também o
nível ERROR
• INFO - O nível INFO exibe informações referentes ao progresso da
aplicação. Engloba os níveis ERROR e WARN
• DEBUG - O nível DEBUG exibe informações úteis para “debugar” a
aplicação (encontrar possíveis falhas no sistema). Engloba todos os
níveis anteriores
ESB MONITOR

• Visualizar detalhes das mensagens


• Visualizar o status da transação
(Processada, Recebida, Erro)
• Reprocessar mensagens
• Download de uma cópia das mensagens
• Exportar mensagens (Excel e PDF)
ESB MONITOR

Para visualizar o Monitor, pode-se clicar no ícone criado na Área de trabalho ou


acessar: http://<endereço>:<porta>/monitor

Por padrão, o ESB é instalado no endereço: localhost:8085

As credenciais padrão de acesso ao monitor são:


User: esbAdm
Password: adm

A alteração de login/senha do Monitor pode ser feita no arquivo users.xml,


armazenado na pasta <ESB>/conf. A senha deve estar criptografada em MD5
ESB MONITOR

1. Mensagens trafegadas
2. Status das mensagens
1 3. Diagrama utilizado

2 3
ESB MONITOR

1. Reprocessando mensagens
2. Status “Reprocessando”
3. Botão Reprocess

1
5 4 Durante o reprocessamento, o
UniqueID (4) da mensagem
permanece o mesmo, porém o
2 ID (5) é alterado
3
ESB MONITOR

GIF
Em caso de erros no processamento da
mensagem no ESB, esta será marcada
com o status de “ERROR”

O botão View Error permite visualizar


detalhes técnicos. Em geral, o erro
exibe o retorno do Web Service
ADVANCED FILTER
Campo Descrição
ID Identificador original da mensagem
UniqueID Identificador único da mensagem
Senders dos diagramas.
Component
Quando houver um erro na mensagem será exibido em qual componente o erro ocorreu
Xpath: valor de uma tag da mensagem XML que está trafegando, referente ao tipo de arquivo
Document Type
que irá receber a mensagem
Xpath: valor de uma tag da mensagem XML que está trafegando, referente à origem do
From
documento. É apresentado quando se referir ao componente DocIdentifier
Xpath: valor de uma tag da mensagem XML que está trafegando, referente ao destino do
To
documento. É apresentado quando se referir ao componente DocIdentifier
Xpath: valor de uma tag da mensagem XML que está trafegando, referente ao número do
Document Number
documento. É apresentado quando se referir ao componente DocIdentifier
Quando selecionamos a opção Persist de algum componente Sender no diagrama, o monitor
Show Related captura o SourceID de seu Receiver e grava na base de dados para informar o relacionamento
entre as mensagens. A opção Show Related exibe as mensagens relacionadas

Messages Without Out São mensagens que não originaram outras mensagens
MÃOS À OBRA!
EXERCÍCIOS DE FIXAÇÃO - ESB

1. Criar o servidor do fluig ESB na IDE (Eclipse/TDS)

2. Configurar o servidor de licença no fluig ESB

3. Configurar um novo banco de dados e os logs no ESB

4. Criar um projeto ESB no Studio


6 COMPONENTES
NOVO PROJETO ESB

• Acesse a perspectiva do
ESB no TDS/Eclipse

• Todos os campos são


obrigatórios

GIF
NOVO DIAGRAMA ESB

É possível agrupar diagramas


abaixo de novas pastas para
efeito de organização
GIF
ADICIONANDO COMPONENTES

O diagrama criado fica disponível


para configuração dos componentes
da integração através da paleta de
opções à direita

Para adicionar um componente, clica-


se no ícone desejado na paleta lateral
e depois na área do diagrama (.esb)
no editor

GIF
CONCEITOS GERAIS

Transporte

Componentes responsáveis pelo envio e recebimento de mensagens

Transformação

Componentes que efetuam transformações no conteúdo das mensagens

Identificação e Roteamento

Componentes que validam as informações nas mensagens para determinar a rota


COMPONENTES DE TRANSPORTE

SENDERS
São componentes utilizados no envio de mensagens, variando no
protocolo utilizado. Exemplos: File, HTTP, JMS, FTP etc.

RECEIVERS
São componentes utilizados para o recebimento de mensagens.
Um diagrama deverá possuir – obrigatoriamente – um receiver
comunicando-se com algum protocolo externo
RECEIVERS - PARÂMETROS COMUNS

• Interval: intervalo (em segundos) para a verificação de


novas mensagens

• Error Interval: intervalo (em segundos) que o sistema


deve aguardar, caso ocorra algum erro, para verificar
novamente a existência de novas mensagens
RECEIVER
Não é permitido que um mesmo diagrama possua mais de
um receiver
SENDERS – PARÂMETROS COMUNS

• Error interval: indica o intervalo (em segundos) que o


sistema deve aguardar, caso ocorra algum erro, para
verificar novamente a existência de novas mensagens

• Persist: Grava um registro da execução do sender no


banco do ESB
SENDER
• Tries: número de vezes que o sistema deve tentar enviar
a mensagem antes de notificar o erro ao usuário. O valor
mínimo deve ser 1, caso contrário, este não será
executado
FILE

Faz com que a mensagem seja enviada pelo ESB através de um


arquivo em um diretório específico.
FILE

Faz com que a mensagem seja recebida pelo ESB através de um


arquivo em um diretório específico.

Possibilita enviar diversos arquivos contidos dentro de um diretório


FILE
para um Web Service ou um e-mail, por exemplo.
WS SENDER X WS CHANNEL SENDER

A finalidade de ambos é disponibilizar as mensagens no ESB


para que um dispositivo externo recupere-as via Web Service
WS
Contudo, o WS Sender faz com que o ESB invoque um Web
Service (tanto interno quanto externo) para enviar as
informações que foram geradas, ao contrário do WS Channel
Sender que cria um serviço passivo e aguarda conexões
WS CHANNEL
externas para buscar estas informações
SENDER
WS RECEIVER X WS CHANNEL RECEIVER

A finalidade de ambos é receber as mensagens enviadas de um


dispositivo externo para o ESB via Web Service
WS
Contudo, o WS Receiver invoca um Web Service para colher as
informações das quais necessita, ao contrário do WS Channel
Sender que cria um serviço passivo, aguardando outros
sistemas se conectarem a ele para buscar as informações
WS CHANNEL
RECEIVER
WS NOTIFIER

A finalidade desse componente é enviar uma mensagem


de retorno ao Web Service, caso este esteja
funcionando de forma síncrona (necessita de uma WS
resposta para que continue seu ciclo) NOTIFIER
HTTP X HTTP CHANNEL

HTTP Sender e Receiver conectam-se ativamente à


sistemas externos através de uma conexão HTTP para
HTTP HTTP enviar/buscar informações

HTTP Channel Sender e Receiver criam um serviço passivo


e aguardam a conexão de sistemas externos via HTTP para
obter ou distribuir informações WS CHANNEL WS CHANNEL
RECEIVER SENDER
MAIL E MAIL NOTIFIER

Faz com que a mensagem seja recebida pelo ESB por intermédio de uma
caixa de e-mail, que é periodicamente verificada.
MAIL Quando houver uma nova mensagem, ela será armazenada dentro do ESB

Faz com que a mensagem seja enviada pelo ESB diretamente para uma
conta de e-mail, previamente configurada
MAIL

Semelhante ao MailSender, notifica determinado usuário por e-mail caso


ocorra erro na integração. Contudo, só pode ser ligado a componentes do
MAIL tipo OnError
MOCK

A finalidade deste componente é simular ações que podem


ser realizadas em um determinado Web Service

MOCK Quando o Mock Receiver for configurado como síncrono, é MOCK


necessário utilizar um Mock Sender, pois este irá esperar
uma resposta à sua requisição
CUSTOM

Permite que o usuário crie um componente Receiver com uma lógica


CUSTOM específica a partir de classes customizadas (codificação em Java)

Permite que o usuário crie um componente Sender com uma lógica


CUSTOM específica a partir de classes customizadas (codificação em Java)
TOTVS

• Componente de envio/recebimento utilizado nas integrações


padrões da TOTVS

• Ao selecionar o produto nas propriedades do componente


serão habilitadas as propriedades específicas
– Protheus, Datasul, RM, TSS, WebEnsino, ESB, WEEB, PIMS, Paradigma,
Saúde Ocupacional, TSA
COMPONENTES DE IDENTIFICAÇÃO

Permite identificar valores de tags no XML para realizar um determinado

IDENTIFIER roteamento

Permite extrair valores das mensagens para facilitar a identificação das

DOC IDENTIFIER mesmas no monitor ESB

Permite criar decisões lógicas no roteamento das mensagens


WHEN
COMPONENTES DE IDENTIFICAÇÃO

Acionado quando nenhuma condição do componente When é atendida


OTHERWISE

Permite definir ações a serem tomadas quando ocorrer algum erro na

ON ERROR integração

Permite fazer a validação de um documento XML, para verificar se o XML está


corretamente estruturado (bem formado) e ainda possibilita a validação
XML VALIDATOR contra um schema XSD
COMPONENTES DE TRANSFORMAÇÃO

Permite que mensagens no formato TXT ou XML sejam agregadas em


AGGREGATOR uma única unidade de envio

Permite que um documento TXT ou XML seja dividido em várias

SPLITTER
unidades de envio

Permite efetuar transformações na mensagem XML trafegada através


de arquivos XSLT, por exemplo, inserir, remover ou editar valores das
TRANSFORMER
tags XML.

Permite converter um arquivo TXT para XML por meio de um arquivo

TCL TRANSFORMER TCL (Text Converter Language)


COMPONENTES DE TRANSFORMAÇÃO

Permite criptografar ou descriptografar a informação trafegada no ESB


CIPHER

Permite compactar a informação trafegada no ESB, utilizando o


algoritmo ZIP ou GZIP, podendo também fazer a leitura de arquivos
ZIP
compactados ZIP

Permite assinar digitalmente documentos XML.


XML SIGNATURE
MÃOS À OBRA!
EXERCÍCIOS DE FIXAÇÃO - ESB

1. Criar um diagrama ESB que irá ler as informações de um arquivo TXT e


salvar estas mesmas informações em um outro arquivo TXT

2. Criar um diagrama (ou alterar o existente) utilizando o componente


Splitter para ler um arquivo TXT que contém duas ou mais linhas e
gerar mais dois arquivos TXT (uma linha correspondente a um arquivo)
EXERCÍCIOS DE FIXAÇÃO - ESB

3. Criar um diagrama usando o componente WS Receiver que irá consultar


um Web Service. Seu resultado deverá ser salvo em um arquivo XML

4. Ler o arquivo XML do exercício anterior e utilizar os componentes


necessários para que quando a tag <adminUser> possui valor igual a
false o XML seja salvo com o nome ${uniqueID}_UserComum.xml, por
exemplo, e os demais como ${uniqueID}_userAdm.xml
EXERCÍCIOS DE FIXAÇÃO - ESB

5. Criar um diagrama que irá ler um arquivo texto com os valores


necessários para utilizar o método “createColleague” (apresentado em
sala pelo SoapUI).
– Utilizar os componentes para realizar a transformação de TXT para TCL e depois
para XML e chamar o serviço em questão via WebService

6. Alterar o exercício anterior para que ao invés de ler um arquivo texto


ele irá receber uma chamada HTTP POST com os valores necessários
para utilizar o método “createColleague”
EXERCÍCIOS DE FIXAÇÃO - ESB

7. Criar um diagrama que lê um arquivo texto e que envia a mensagem


para o diagrama do exercício anterior

8. Criar uma pasta chamada Custom no projeto e incluir o arquivo JAR


disponibilizado

9. Criar um diagrama que será integrado com o e-mail


SUPORTE ESB
CANAIS DE COMUNICAÇÃO FLUIG

• Site: fluig.com • Blog: fluig.com/blog

• Documentação: dev.fluig.com • YouTube: youtube.com/fluigplatform

• Guia de Relacionamento: • SlideShare: pt.slideshare.net/fluig

• Suporte: suporte.fluig.com • Scribd: scribd.com/fluigplatform

• Comunidade DEV fluig:


Acompanhe os canais sociais de fluig: OBRIGADO!
/fluigplatform pt.scribd.com/fluigplatform /fluigplatform FLUIG EDUCATION CENTER
E-mail: fluig.education.center@fluig.com
/company/fluig pt.slideshare.net/fluig /fluig.com/blog Fone: (11) 2099-7337

www.fluig.com
0800 882 9191

Você também pode gostar