Você está na página 1de 19

10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

Pesquisar

Home Entenda o site Revistas Tecnologias Cursos Loja Virtual Frum Servios Publicar A ssine Compre Crditos

Seja bem-vindo, CA RLOS A LBERTO DA COSTA RA MOS! Fale conosco Meus Servios

2 Curtir 8 0 0
comentrios

revista Java Magazine

Orientao a SOA Parte 2


Neste artigo, estabelecemos um ambiente com ferramentas open
source aderentes implantao dos aspectos que promovem a
integrao orientada a servios. Com estas ferramentas e os
mtodos adequados implantamos um Barramento de Servios.

favoritar marcar como lido inserir nota pessoal

Tipo: Tutorial

Do que se trata o artigo:


Neste artigo, estabelecemos um ambiente com ferramentas open source aderentes
implantao dos aspectos que promovem a integrao orientada a servios. Com
estas ferramentas e os mtodos adequados implantamos um Barramento de
Servios. No exemplo temos a demonstrao de utilizao das ferramentas e o
papel desempenhado por elas. Estas ferramentas devem apoiar a criao de um
alicerce para a implantao de servios. Neste artigo este alicerce tem o objetivo de
proporcionar ao profissional de tecnologia uma percepo mais tangvel da
realizao de um ambiente SOA.

Em que situao o tema til:


Este tema til para profissionais que desejam obter uma viso mais concreta e
tangvel da implementao de um Barramento de Servios, que deve promover e
alavancar um ambiente voltado ao SOA. Tambm para conhecer ferramentas open
source que podem ser utilizadas na construo deste ambiente de arquitetura
orientada a servios.

Orientao a SOA Parte 2:


Neste artigo ilustraremos a implantao do SOA em uma empresa fictcia, definindo
os aspectos de integrao que so de responsabilidade do mediador (conhecido
como Barramento de Servios) nas comunicaes entre consumidores e provedores
de servios. Realizaremos tambm a identificao e levantamento dos potenciais
servios providos pelos sistemas de tecnologia desta empresa, que podem auxiliar
na automatizao dos processos de negcio.

Ser apresentada cada uma das ferramentas empregadas (Mule, JBoss, Active MQ e
MySQL) e o seu papel na implantao do SOA. Definiremos ainda a estrutura do
Barramento de Servios e realizaremos a construo dos fluxos de mensagens de

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 1/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
cada uma das partes da arquitetura deste barramento. Por fim, testaremos a
soluo implantando e executando um servio de exemplo.

A rea de tecnologia est sempre evoluindo para automatizar os processos e


atividades em diferentes ramos de negcio. Na busca para atender com maior eficincia
estas demandas de automatizao, diversas metodologias e ferramentas j foram
concebidas. De fato, a criao de novas ferramentas pode ajudar a rea de tecnologia
no apoio rea de negcio, por isso a evoluo neste ponto importante. Porm,
mais importante do que possuir a ferramenta aplic-la da maneira correta, para que
esta fornea o real benefcio para o qual foi concebida.

Comumente as ferramentas nascem a partir de necessidades que so identificadas em


tarefas estabelecidas dentro de um processo de trabalho, o que justifica a sua
existncia para apoiar tcnicas eficientes na execuo de atividades. No faz sentido
criar uma chave-de-fenda sem antes conhecer a existncia e funo de um parafuso!

importante antes de adquirir ferramentas pensar no problema o qual se quer uma


soluo. Com a viso do problema esclarecido, o prximo passo definir como
possvel resolv-lo, ou seja, qual mtodo empregar. Conhecendo o problema, e qual
mtodo pode-se adotar para resolv-lo, consegue-se com maior eficincia escolher as
ferramentas ideais. Por isso, apenas adquirir ferramentas para implantar o SOA no
significa que estamos atingindo esse objetivo. Devemos conhecer bem o problema
enfrentado atualmente (Alto custo com TI x Baixo benefcio e Arquitetura Centralizada
em Aplicaes?), qual abordagem vamos adotar (Arquitetura com Orientao a
Servios?), para finalmente construir a fundao tecnolgica (Ferramentas) que ir
auxiliar no alcance deste objetivo. O mtodo selecionado deve ajudar a difundir o novo
paradigma, que pode ser a concepo de solues de tecnologia orientada a servios.
No entanto, sem a mudana de comportamento, no ser possvel realizar o uso
correto das ferramentas visando o resultado esperado.

Na primeira parte deste artigo vimos a teoria que define o que este estilo de
arquitetura orientada a servio. H muito mais relao com a mudana na forma de agir
e de pensar, do que somente a aplicao de novas ferramentas e tecnologias, para
atingir os benefcios fundamentados pelo SOA. Na segunda parte do artigo, iremos
conhecer na prtica as categorias de ferramentas e formas de ao que desempenham
um papel de fundao e de apoio implantao deste paradigma de arquitetura.

Implantao da Arquitetura Orientada a


Servios
Em ambientes corporativos comum existir um conjunto de termos orientado pelas
aplicaes, pelos legados, cheia de acrnimos, nomes e codinomes. Neste meio
comum os profissionais de TI utilizarem esta variao de termos, formando frases
como: o M7Y no registrou o ltimo pedido corretamente, o X45 precisa atender
quele novo requisito, o Sistema Central est cadastrando o endereo incorretamente,
verifique porque o Sistema de Distribuio no est enviando o e-mail.

Em um local assim, at mesmo os profissionais de TI precisam de algum tempo, talvez


meses, para entender todo este ambiente e seus acrnimos. Neste cenrio, possvel
imaginar a confuso que a rea de tecnologia para as pessoas de negcio, que
obviamente, so os que a financiam.

Claramente isto demonstra um ambiente formado por ilhas isoladas, que esto
divididas em domnios estabelecidos pelas funes desempenhadas por cada sistema
da empresa. Este um tpico sintoma: as pessoas tanto de TI como de negcio falam
uma lngua composta de nomes de sistemas, siglas, codinomes e outros termos no
associados ao processo de negcio da empresa, o qual ela realiza para gerar lucro.

Para as empresas comporem o fluxo do seu processo de negcio alinhado a estas


ilhas formadas por sistemas, vrios projetos de integrao so realizados, alguns
menos sofisticados (comunicao ponto-a-ponto: integrao via base de dados,
arquivos ou chamadas a procedimentos remotos), outros com uma arquitetura mais
refinada (com um roteador centralizando as integraes ponto-a-ponto: estilo Hub
and Spoke).

Este cenrio descrito, formado por ilhas de sistemas, composto de um vocabulrio

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 2/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
cheio de siglas, o estado atual da empresa Arkham Company. Esta uma empresa
fictcia de porte mdio que, como tantas, busca automatizar seus processos de
negcio usufruindo da tecnologia. Por isso, durante todos esses anos de sua
existncia, muitos sistemas, ferramentas e integraes foram arduamente adquiridos e
implantados.

O objetivo da empresa no momento promover uma mudana de pensamento no


ambiente de tecnologia, estabelecendo servios como a linguagem de comunicao
entre TI e negcios, atravs da realizao do SOA. As aplicaes obviamente
continuaro existindo, cada qual no seu domnio de responsabilidade, porm iro
expor suas funcionalidades atravs de servios seguindo os princpios da governana
de servios. As integraes, necessrias na composio dos fluxos de processos de
negcios, iro com isso serem efetivadas atravs da execuo de servios. Com esta
arquitetura, a rea de negcio ficar mais isolada e desacoplada da camada de
aplicaes. Desta forma, na viso das pessoas que trabalham com negcio, a rea de
TI fornece servios que viabilizam a automatizao dos seus processos.

A empresa Arkham Company tem por objetivo promover um acoplamento mais baixo
entre as reas de negcio e tecnologia, possibilitando agilidade e flexibilidade aos
negcios para compor seus processos.

Neste processo de mudana de paradigma, os servios so identificados conforme sua


funo dentro do negcio da empresa e expostos em um ponto central no ambiente
corporativo, conhecido como barramento de servios. Este barramento ser
responsvel por viabilizar a comunicao entre os consumidores e os provedores de
servios, alm de fornecer apoio a aspectos de integrao como: transformao,
enriquecimento, orquestrao, mapeamento, segurana e auditoria. Na Tabela 1 estes
aspectos de integrao so explicados.

Tabela 1. Aspectos de integrao fornecidos em um barramento.

Na Figura 1 podemos analisar os servios identificados e expostos pelos sistemas no


ambiente da empresa Arkham. Divididos por cores, os servios esto associados a
seus domnios, que por sua vez esto associados a um sistema, ou a um grupo de
sistemas. No levantamento destes servios, podemos observar que houve a
identificao de um servio composto, representado pela cor preta (Validar Cliente).
Este servio aciona dois outros para fornecer uma nica funo, e para isto o
barramento ter que realizar um dos aspectos de integrao abordado, a
orquestrao.

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 3/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
Figura 1. Identificao dos servios expostos pelos sistemas da empresa.

Defronte a situao atual desta empresa fictcia e seu objetivo de aprimorar o


funcionamento da rea de tecnologia, neste exerccio prtico, iremos em busca da
implementao de uma arquitetura orientada a servios. Para auxiliar este objetivo as
ferramentas que sero utilizadas, e suas respectivas funes, esto descritas na
Tabela 2.

Tabela 2. Ferramentas utilizadas na empresa para a implantao de uma arquitetura


SOA.

Message Oriented Middleware (MOM): Infraestrutura composta de hardware e software


que possibilita a troca de informaes, no formato de mensagem, entre componentes
de sistemas distribudos para a realizao de integraes, principalmente entre
plataformas de tecnologias heterogneas.

O Provedor de Servio
Com base na tarefa realizada de identificao dos servios teis e necessrios
automatizao dos processos de negcio da Arkham Company, temos tambm
identificados quem so, e quais so, os sistemas provedores de servios (Figura 1).

Dentre esses sistemas se encontra o Sistema Central de Informaes (SCI),


responsvel por deter informaes das principais entidades do modelo de negcio da
empresa, como: Cliente, Endereos, Filiais, Gerentes, Moedas e Fornecedores.

Como provedor de uma das funes teis nos processos de negcio da empresa,
iremos selecionar este sistema como provedor do servio: Obter Endereos do Cliente.
Portanto, o SCI ir prover um servio que tem a funo de fornecer uma lista dos
endereos cadastrados para um cliente consultado por CPF.

Este provedor de servio um sistema construdo na plataforma Java EE e instalado


no servidor de aplicao JBoss da empresa. Neste ambiente a equipe responsvel pela
aplicao SCI disponibilizou um servio que fornece a lista de endereos do cliente. O
cdigo da interface deste web service est representado na Listagem 1.

Listagem 1. Web service exposto pelo sistema SCI para obteno de endereos.

package br.ujr.soa.sistema.informacoes.servicos;

import java
import br.ujr.soa.sistema.informacoes.business.
SistemaCentralInformacoesFacade;
import br.ujr.soa.sistema.informacoes.business.
entities.Endereco;

@Stateless
@WebService
public class ServicoCentralInformacoes {

/**
* Objeto de negcio de alto nvel (Faade)
da aplicao SCI
*/
@EJB
SistemaCentralInformacoesFacade facade;

@WebMethod
@WebResult(name="listaEnderecos")
public Set<Endereco> getListaEnderecosCliente
(@WebParam(name="cpf") String cpf) {
return facade.findCliente(cpf).getEnderecos();

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 4/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
}
}

Catlogo dos Servios


O catlogo de servios o local onde sero registrados todos os servios,
identificados e homologados, que podem ser utilizados por toda a corporao na
automao dos seus processos, visando atingir uma integrao orientada a servios.

As funes identificadas passam por um processo de modelagem que tem como


objetivo transform-las em servios. Isto realizado fazendo com que a funo
identificada atenda a caractersticas que a classificar como um servio. Este servio,
ento catalogado, dever representar uma unidade autnoma de regra de negcio til
para a automao dos processos de negcio da empresa. As caractersticas que sero
avaliadas so:

Classificao funcional: descrio funcional do objetivo do servio, qual a sua


funo e a qual domnio de negcio pertence dentro da empresa;

Controle transacional: Necessidade de desfazimento (rollback) caso seja uma


transao de escrita, que precise garantir atomicidade e consistncia nas suas
operaes;

Composio: Definio da granularidade do servio. Uma anlise para verificar se


este formado pela execuo de um ou mais servios que devem combinar e retornar
apenas um resultado final consolidado;

Contrato: Define a interface de comunicao com o servio, conhecida como


contrato. So definidos quais os parmetros de entrada e os valores de retorno na
sua execuo. Este o ponto de contato entre consumidores e provedores. no
contrato que est definido o nvel (baixo ou alto) de acoplamento;

Orquestrao: Est relacionada aos servios compostos, isto , servios formados


por mais de um servio. necessrio realizar o controle da execuo dos servios que
formam o servio composto para a sua correta realizao, tanto em caso de sucesso
quanto de falha.

Estas e outras caractersticas devem ser analisadas para promover os princpios da


arquitetura orientada a servios no ambiente, antes dos servios serem catalogados. O
repositrio do Catlogo de Servio implementado via banco de dados MySQL. A
estrutura deste repositrio est representada na Figura 2.

Figura 2. Estrutura do repositrio de servios no MySQL.

A funo deste repositrio prover um catlogo central de servios para que eles
estejam disponveis e possam ser descobertos. Este ponto central deve promover o
uso e reuso destes servios, seja para fins funcionais relacionados a funes de
negcio, seja para fins tcnicos, como a correlao de cdigos de entidades em
diferentes sistemas, popularmente conhecida como DE-PARA.

Barramento de Servios
No ncleo das integraes orientadas a servios entre os sistemas do ambiente, ou
para uso em orquestraes de processos de negcio (BPM), est o Barramento de
Servios (ESB). Este componente de arquitetura ir cumprir a funo de alavancar e
estabelecer um ponto central de controle e comunicao entre os elementos que
buscam executar servios (funes de TI), e os que realizam o provimento destes
servios, favorecendo simultaneamente coeso e baixo acoplamento entre os
consumidores e provedores. Para este componente ser utilizado o Mule na sua verso
Community Edition 3.3.

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 5/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

A estrutura do Barramento de Servios, conforme a Figura 3, est dividida em trs


partes:

Barramento de Entrada: o ponto de entrada nico da mensagem no Barramento


de Servios para a execuo de um servio especfico. Neste estgio inicial, alguns
aspectos como segurana, log de entrada, auditoria, transformao, formatao e
validao, podem ser realizados. Aps estas funes, o fluxo da mensagem roteado
para o fluxo do servio especfico requisitado pelo consumidor;

Fluxo do Servio: Neste fluxo, a mensagem direcionada para a execuo efetiva


do servio requisitado pelo consumidor, o qual possui a regra de negcio e
informaes de interesse por parte deste;

Barramento de Sada: Este o ponto nico de sada do Barramento de Servios,


sendo responsvel por rotear a resposta do Fluxo de Servio para o consumidor.
Alguns aspectos necessrios finalizao do fluxo da mensagem no servio podem ser
aqui realizados, como registro de log, formatao, transformao, validao, entre
outros.

Figura 3. Estrutura do Barramento de Servios.

Os fluxos de mensagens no Mule so construdos de forma grfica, dispostos em


formato de fluxograma. Eles so compostos por cones que representam componentes
oferecidos pela ferramenta para realizar diversas funes tcnicas. Estes componentes
esto categorizados como: Endpoint, Scope, Component, Transformer, Filter, Flow
Control, Error Handling e Cloud Connectors.

Para o elemento Endpoint, que fornece o recurso de comunicao nos fluxos de


mensagens, temos disponveis diferentes opes de protocolos, como: Ajax, Banco de
Dados, FTP, Arquivo, HTTP, JMS, POP3, RMI, Servlet, SOAP, TCP. Dentre as opes
disponveis para o componente de nome Components, por sua vez, temos: Java,
JavaScript, REST, Groovy, Python, Ruby, Logger, dentre outros.

Alguns destes componentes do Mule precisaro de configuraes de conexes para


com recursos externos, como bases de dados e filas de mensageria. Estas conexes
so criadas atravs de Elementos Globais nas propriedades de um fluxo de mensagem
no Mule.

Estes elementos globais ficaro disponveis para serem utilizados nos fluxos de
mensagem, durante a configurao de elementos do tipo Endpoints de Fila (JMS) e de
Base de Dados (JDBC). Na Tabela 3, temos a relao destes elementos globais e seus
respectivos atributos.

Tabela 3. Configuraes dos Elementos Globais que sero criados para os fluxos do
Mule.

No Mule, para cada fluxo de mensagem que criamos, temos um objeto associado,
representado por um arquivo com a extenso mflow. Ao abrirmos este objeto temos
acesso rea de trabalho onde os elementos que iro compor um fluxo de mensagem
sero colocados. Esta rea de trabalho est dividida em trs sees, que podem ser
encontradas nas abas disponveis no rodap (Figura 4). A funo de cada uma destas
sees :

Message Flow: local onde construmos o fluxo da mensagem propriamente dito;

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 6/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
Global Elements: rea para configurao dos Elementos Globais;

Configuration XML: rea para visualizar o cdigo construdo em formato XML.

Figura 4. reas de trabalho disponveis em um Fluxo de Mensagem do Mule.

Na rea de trabalho de Elementos Globais iremos criar as configuraes de conexes


que precisaremos informar nos Endpoints dispostos em nossos fluxos de mensagens.
Quando acionamos o boto para criao de um Elemento Global no fluxo, temos
apresentado vrias opes de tipos de elementos. Vamos criar trs elementos com os
seguintes tipos: MySQL Data Source, Database e Active MQ.

Na Tabela 3 temos descritos os valores de configurao que devem ser informados


para cada um destes elementos globais. Na Figura 5 podemos observ-los depois de
criados.

Figura 5. Elementos Globais configurados no Fluxo de Mensagem do Mule.

Com os Elementos Globais criados, iremos desenvolver os fluxos de mensagem no


Mule conforme a estrutura definida para o barramento, ilustrada na Figura 3. Para
cada uma das partes desta estrutura do Barramento de Servios h um fluxo de
mensagem construdo. Desta forma, temos: um fluxo para o Barramento de Entrada,
outro fluxo para o Barramento de Sada, e um fluxo para cada servio exposto no
Barramento de Servios. Assim, para cada novo servio exposto no Barramento,
haver um novo Fluxo, respectivo ao servio, que ir trabalhar a mensagem e rote-la
ao web service que efetivamente ir expor e fornecer a funo requerida. O fluxo do
barramento de entrada e de sada so os mesmos, ou seja, no variam em relao ao
servio solicitado pelo consumidor.

Para compreender como este Barramento de Servios funciona internamente, iremos


analisar a composio e funcionamento de cada um dos Fluxos de Mensagens definidos
para a sua estrutura. Sero trs fluxos, a saber:

1. Barramento de Entrada;

2. Fluxo do Servio: Buscar Endereos do Cliente;

3. Barramento de Sada.

Barramento de Entrada
Para descrever os componentes e funes contidos no Barramento de Entrada, que
pode ser visto na Figura 6, vamos divid-lo em grupos. Nesta diviso cada grupo
corresponder a uma funo especfica, realizada pelo conjunto de componentes nele
contido.

Figura 6. Fluxo de mensagem do Barramento de Entrada.

Grupo 1

Este grupo do Barramento de Entrada, formado por trs elementos, representa o web

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 7/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
service que recebe a solicitao para execuo de um servio no Barramento. Todos os
elementos dispostos no fluxo so representados graficamente e requerem informaes
de configurao mnimas para funcionarem. Com um duplo clique sobre a
representao grfica do elemento acessamos as suas configuraes em uma janela
com suas propriedades.

Vamos descrever os elementos deste grupo, seguindo a ordem do Fluxo de Mensagem


do Barramento de Entrada, conforme ilustrado na Figura 6:

HTTP (Endpoint HTTP): representa a porta HTTP onde est diposto o web service
do barramento para a entrada das mensagens. A descrio das configuraes deste
elemento se encontra na Tabela 4.

Tabela 4. Configuraes do elemento HTTP do Barramento de Entrada.

SOAP (Endpoint SOAP): Este elemento estabelece o protocolo de comunicao


sobre o elemento anterior no fluxo, o Endpoint HTTP. Neste caso, definido como
protocolo SOAP, para realizar uma comunicao via web services. A descrio das
configuraes deste elemento esto na Tabela 5.

Tabela 5. Configuraes do elemento SOAP do Barramento de Entrada.

InToBus Web Services (Java Component): Implementao da interface do web


service que recebe a mensagem entrante no Barramento de Servios. As configuraes
deste elemento esto descritas na Tabela 6. Este web service define o contrato de
entrada de todas as mensagens no Barramento de Servios.

Tabela 6. Configuraes do elemento SOAP do Barramento de Entrada.

Listagem 2. Interface do web service de entrada para o Barramento de Servios.

package br.ujr.soa.bus;

@XmlSeeAlso(br.ujr.soa.bus.model.Endereco.class)
@WebService
public interface InToBus {

/**
* Operao de entrada no Barramento para
processamento de um Request
*/
@WebMethod
@WebResult(name="MessageResponse")
public MessageResponse processRequest
(@WebParam(name="MessageRequest")
MessageRequest message);
}

Listagem 3. Implementao da interface do web service de entrada para o Barramento


de Servios.

package br.ujr.soa.bus;

@WebService(endpointInterface="br.ujr.soa.bus.InToBus",
serviceName="InToBus")
public class InToBusImpl implements InToBus {

/**
* Processamento da solicitao entrante no Barramento de Servios
*/
public MessageResponse processRequest(MessageRequest request) {
return this.prepareResponse(request);
}

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 8/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

/**
* Preparao da mensagem de resposta solicitao
*/
private MessageResponse prepareResponse(MessageRequest request) {
MessageResponse response = new MessageResponse();

response.getBusInfo().setDate(Calendar.getInstance()
.getTime());
response.getBusInfo().setTimeIn(Calendar.getInstance()
.getTimeInMillis());

response.setMessageRequest(request);
return response;
}
}

Grupo 2

No Grupo 2 do Barramento de Entrada, formado por apenas um elemento, o objetivo


transformar o objeto Java recebido em formato XML. Neste elemento no h
nenhuma configurao especfica por fazer, basta apenas posicionar o elemento neste
ponto do fluxo de mensagem para que ele realize sua funo. O elemento contido
neste grupo o:

Object to XML (Transformer Object to XML): Transformador que recebe um


objeto Java e o converte em uma estrutura XML.

Grupo 3

Neste grupo do Barramento de Entrada, formado tambm por apenas um elemento,


temos uma fila de mensageria. Esta fila ir fazer a conexo com outro fluxo de
mensagem, no caso o Fluxo do Servio, o segundo na estrutura definida para o
Barramento de Servios, ilustrado na Figura 3. Com este elemento ser enviada uma
mensagem de solicitao para a execuo do servio que est no Fluxo do Servio:
Buscar Endereos do Cliente. O elemento contido neste grupo o:

JMS (Endpoint Mensageria): Cliente JMS para envio da mensagem XML para a fila
de entrada do Fluxo do Servio. Este componente Cliente JMS, apesar da caracterstica
padro de comunicao assncrona de filas, est configurado para funcionar no padro
request-response, propocionando assim um modelo de comunicao sncrono sobre
filas. Este modelo de comunicao utilizando mensageria, realiza os seguintes passos
para a sua execuo:

1. O cliente envia uma mensagem (request) para uma fila no servidor;

2. O servidor recepciona a mensagem juntamente com o nome da fila na qual deve


enviar a resposta (response) para o cliente solicitante;

3. O cliente recebe a resposta na fila aguardada conforme a informao enviada no


passo 1 para o servidor.

O envio da resposta pelo Servidor para a Fila designada pelo Cliente acontece
implicitamente no Mule. No necessrio intervir criando cdigos e Filas de Repostas
explcitas, para que este processo se realize. Observe a ilustrao do funcionamento
deste modelo de comunicao na Figura 7.

Neste processo de comunicao sncrona sobre Filas, se faz necessrio criar uma
correlao entre as mensagens de request e response, isto , uma forma de identificar
que a resposta (response) entregue pertence determinada solicitao (request)
anteriormente enviada. Para realizar este mecanismo de relacionamento entre estes
objetos, o CorrelationID da especificao JMS utilizado, criando o elo entre a
mensagem de envio (request) e a mensagem de resposta (response). As configuraes
necessrias a este elemento esto descritas na Tabela 7.

Tabela 7. Configuraes do elemento JMS (Endpoint Mensageria) do Barramento de


Entrada.

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 9/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

Grupo 4

Neste grupo do Barramento de Entrada, temos um elemento que tem como objetivo
transformar o XML recebido como resposta da Fila para o formato de objeto Java. No
necessria nenhuma configurao, somente posicionar o elemento no ponto correto
do fluxo de mensagem para realizar a sua funo. O elemento contido no grupo 4 o:

XML to Object (Transformer XML to Object): Este transformador executa a


funo inversa do transformador anterior, isto , recebe o XML de resposta da fila JMS
do Fluxo do Servio e o converte para o objeto Java, que se refere resposta do web
service de entrada no Barramento de Servio. Este mesmo web service de entrada
retorna a resposta ao consumidor do servio, finalizando a transao.

Listagem 4. Estrutura da mensagem XML gerada pelo web service na entrada do


Barramento.

<br.ujr.soa.bus.MessageResponse>
<messageRequest>
<!-- Informaes do consumidor -->
<userId>UALTER</userId>
<pwd>minhasenha</pwd>
<!-- Identificao do servio solicitado pelo consumidor -->
<messageRouting>MF_S001</messageRouting>
<!-- Contedo da mensagem de solicitao, parmetros
de entrada do servio -->
<contentRequest>
<entry>
<string>cpf</string>
<string>8883227110</string>
</entry>
</contentRequest>
</messageRequest>
<!-- Contedo da resposta. Neste momento, ainda vazio durante
o barramento de entrada.
Ser preenchido no prximo fluxo dentro da estrutura
Barramento de Servios -->
<contentResponse/>
<!-- Informaes tcnicas (data, hora de entrada e hora
de sada no Barramento). Podem ser
utilizadas para anlise de requisitos no-funcionais,
como a performance do servio. -->
<busInfo>
<date>2012-09-22 01:13:58.536 UTC</date>
<timeIn>1348276438536</timeIn>
<timeOut>0</timeOut>
</busInfo>
</br.ujr.soa.bus.MessageResponse>

Fluxo do Servio: Buscar Endereos do


Cliente
Seguindo a estrutura definida para o nosso Barramento de Servio, temos nesta etapa
o fluxo do servio propriamente dito, que representa o ncleo desta transao. Este
contm as regras e informaes de interesse do consumidor. Neste exemplo, o Fluxo
do Servio que ser executado o Buscar Endereos do Cliente. Na Figura 7
podemos analis-lo.

Figura 7. Fluxo de mensagem do Servio de Busca de Endereos do Cliente.

Grupo 1

No grupo 1 do Fluxo do Servio, iremos receber a requisio de execuo do servio


de pesquisa dos endereos de um cliente via mensageria. Neste grupo temos duas

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 10/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

funes sendo realizadas, o recebimento da mensagem e a sua transformao para o


formato XML utilizando dois elementos distintos. Segue a descrio da funo dos dois
elementos contidos neste grupo:

MF_S001 (Endpoint Mensageria): Endpoint de messageria que representa a fila


de nome MF_S001, onde recepcionada a solicitao de um consumidor interessado
em obter endereos de um cliente. Este endpoint JMS est configurado no padro
request-response para que, alm de receber a requisio, devolva tambm a resposta
por Fila JMS. As configuraes deste elemento esto descritas na Tabela 8.

Tabela 8. Configuraes do elemento MF_S001 (Endpoint Mensageria) do Fluxo do


Servio.

XML to Java (Transformer XML to Object): Transformador que compe o objeto


Java, MessageResponse (Listagem 4), a partir do XML enviado pelo Barramento de
Entrada.

Grupo 2

Neste grupo temos um elemento que tem a funo de armazenar em uma varivel a
informao recebida no grupo anterior, representada por um objeto Java
(MessageResponse). O elemento deste grupo o:

Set Message Response (Variable): Criao de uma varivel dentro do escopo do


fluxo para armazenar o objeto Java oriundo do elemento anterior. As configuraes
deste elemento esto descritas na Tabela 9.

Tabela 9. Configuraes do elemento Set Message Response (Variable) do Fluxo do


Servio.

Grupo 3

Neste ponto do fluxo iremos buscar o valor que representa a localizao do web
service que fornece efetivamente os endereos do cliente. Segue a descrio deste
elemento:

Localizar Service Endpoint (JDBC): Atravs do catlogo de servios localizado no


MySQL, e utilizando a identificao do servio como chave, requisitamos o seu
endereo de localizao na base de dados para execut-lo. As configuraes deste
elemento esto descritas na Tabela 10.

Tabela 10. Configuraes do elemento Localizar Service Endpoint (JDBC) do Fluxo do


Servio.

Figura 8. Resultado da pesquisa da localizao do servio (endpoint) solicitado pelo


consumidor.

Grupo 4

Neste grupo temos o elemento responsvel por armazenar em uma varivel o valor
obtido na pesquisa da localizao do servio no catlogo. Este valor pode ser
observado na Figura 8. Segue a descrio deste elemento:

Set Service Endpoint (Variable): Realiza o registro do valor do endpoint,


localizado na base de dados, em uma varivel dentro do escopo do fluxo. As
configuraes deste elemento esto descritas na Tabela 11.

Tabela 11. Configuraes do elemento Set Service Endpoint (Variable) do Fluxo do

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 11/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

Servio.

Grupo 5

Seguindo a diviso em grupos dos elementos, realizada para auxiliar na explicao do


Fluxo de Mensagem, temos agora o Grupo 5, que tem como objetivo reunir as
informaes que representam os parmetros de entrada necessrios para a execuo
do servio de busca de endereos do cliente. O elemento contido neste grupo o:

Obter CPF (Script Groovy): Por meio de um script Groovy, buscamos no objeto
armazenado na varivel messageResponse, o valor do parmetro de entrada
necessrio ao web service do servio. As configuraes deste elemento esto descritas
na Tabela 12.

Tabela 12. Configuraes do elemento Obter CPF (Script Groovy) do Fluxo do


Servio.

Grupo 6

O elemento Flow Reference neste grupo tem somente a funo de fazer a referncia a
outro fluxo de mensagem. Este fluxo de mensagem externo ser executado neste
ponto do fluxo de mensagem principal. Aps a execuo do subfluxo, o comando de
execuo retorna ao fluxo de mensagem chamador. Utilizamos esse elemento para
separarmos a execuo da chamada ao servio do provedor em um outro fluxo de
mensagem. Desta forma temos o ponto de execuo do servio fornecido pelo
provedor desacoplado de todo o resto do fluxo.

Grupo 7

Neste grupo temos o Subflow, um fluxo de mensagem auxiliar dentro do fluxo de


mensagem principal que ir executar a chamada ao servio do Provedor de Servio. O
web service do Provedor est exposto, como explicado anteriormente, em um servidor
de aplicao JBoss da prpria empresa Arkham Company. Segue a descrio dos
elementos do Grupo 7:

SOAP (Endpoint SOAP): Este o cliente que executa o web service do sistema SCI
provendo o servio de busca de endereos dos clientes. Para que o Mule consuma o
web service, necessria a criao dos artefatos JAX-WS client, o que pode ser feito
utilizando a ferramenta wsimport. As configuraes deste elemento esto descritas na
Tabela 13.

Tabela 13. Configuraes do elemento SOAP (Endpoint SOAP) do Fluxo do Servio.

HTTP (Endpoint HTTP): Elemento que realiza a execuo do web service via o canal
HTTP. As configuraes deste elemento esto descritas na Tabela 14.

Tabela 14. Configuraes do elemento HTTP (Endpoint HTTP) do Fluxo do Servio.

Grupo 8

Neste momento do fluxo temos o elemento que ir tratar a resposta recebida na


chamada ao web service do servio Buscar Endereos do Cliente. O elemento contido
neste grupo o:

Script (Script Groovy): Neste ponto, como resultado do subflow, a resposta do


web service devolvida com o tipo de dado referente ao domnio do sistema que o
dono do servio, o SCI. A funo deste script Groovy realizar o mapeamento da lista
de endereos contendo objetos do tipo br.arkham.sci.webservices.Endereco para
uma lista de objetos do tipo br.ujr.soa.bus.model.Endereco. Assim, temos o objeto
Endereco padronizado no formato definido pelo modelo cannico da corporao. As
configuraes deste elemento esto descritas na Tabela 15.

Ao final, o script retorna o objeto MessageResponse, aguardado como resposta


solicitao do servio de busca de endereos no Barramento de Servios. Os

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 12/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
endereos esto contidos neste objeto.

Vale observar que o Mule possui um componente especfico (DataMapper) para


mapeamento de dados entre objetos, porm este recurso est disponvel apenas na
verso comercial.

Tabela 15. Configuraes do elemento Script (Script Groovy) do Fluxo do Servio.

Grupo 9

No penltimo grupo deste Fluxo de Mensagem, temos o elemento que ir transformar


o objeto Java que contm a resposta solicitao de execuo do servio para XML.
Este XML ser retornado posteriormente atravs de uma Fila no prximo grupo, o
grupo 10. Segue a descrio do elemento contido neste grupo:

Object to XML (Transformador Object to XML): Transformao do objeto


MessageResponse em estrutura XML para o envio fila do Barramento de Sada,
finalizando assim o Fluxo do Servio Buscar Endereos do Cliente.

Listagem 5. Script Groovy para mapeamento dos objetos recebidos na solicitao do


servio.

import br.ujr.soa.bus.MessageResponse;
import java.util.List;

/* Objeto Endereco pertencente ao modelo cannico */


br.ujr.soa.bus.model.Endereco ender;
/* Leitura da varivel que possui armazenado o objeto
de resposta do web service do Barramento de Servios
(recebido no Grupo 1, armazenado no Grupo 2) */
MessageResponse msgResp = flowVars['messageResponse'];

/* Index para envio da resposta na lista Map do objeto


de resposta*/
def index = 0;

/* Leitura do contedo(payload) da mensagem no fluxo


de mensagem, o qual retornado pelo elemento
anterior (Grupo 7). Esta a resposta do web service
do sistema SCI */
List enderecos = (List)payload;
/* Iterao sobre a resposta e mapeamento dos elementos
para o objeto br.ujr.soa.bus.model.Endereco */
for(br.arkham.sci.webservices.Endereco endereco in enderecos){
ender = new br.ujr.soa.bus.model.Endereco();
ender.setLogradouro(endereco.getLogradouro());
ender.setComplemento(endereco.getComplemento());
ender.setCep(endereco.getCep());
ender.setCidade(endereco.getCidade());
ender.setEnderecoEntrega(endereco.isEnderecoEntrega());
/* Armazenamento do Endereco como contedo da resposta */
msgResp.getContentResponse().put(++index+"",ender);
}
return msgResp;

Grupo 10

O elemento do ltimo grupo do Fluxo de Servio do tipo mensageria. Este elemento


ir enviar a resposta ao Barramento de Sada, que a aguarda em uma Fila. O elemento
deste grupo o:

BUS_OUT (Endpoint Mensageria): Endpoint de mensageria que realiza o envio da


mensagem com a resposta para a fila BUS_OUT. A fila BUS_OUT a porta de entrada
para o Barramento de Sada que ir receber a resposta solicitao do consumidor
contendo a lista de endereos do cliente. Este endpoint JMS est configurado no
padro request-response para que, alm de enviar a requisio, permita tambm

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 13/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
receber a resposta via Fila JMS. As configuraes deste elemento esto descritas na
Tabela 16.

Tabela 16. Configuraes do elemento BUS_OUT (Endpoint Mensageria) do Fluxo do


Servio.

Barramento de Sada
Como prxima etapa dentro da estrutura definida para o nosso Barramento de
Servio, para finalizar a transao, temos o fluxo do Barramento de Sada. Esta parte
ir executar qualquer funo antes de entregar a resposta ao consumidor do servio.
Na Figura 9 vemos o fluxo do Barramento de Sada.

Figura 9. Fluxo de mensagem do Barramento de Sada.

Grupo 1

No primeiro grupo do Barramento de Sada temos a Fila que recepciona a mensagem


contendo a resposta execuo do servio. O elemento contido no grupo o:

BUS_OUT (Endpoint Mensageria): Endpoint de mensageria configurado como uma


Fila, a qual destinada a resposta solicitao de um consumidor para um
determinado servio. Este endpoint JMS est utilizando o padro de comunicao mo-
nica (one-way), para que finalize o ciclo do padro request-response da Fila anterior
(que est no Fluxo do Servio). Desta forma, a Fila anterior recebe implicitamente a
resposta do final deste fluxo de mensagem. Esta comunicao entre os Barramentos
ilustrada na Figura 10. As configuraes especficas deste elemento esto descritas
na Tabela 17.

Tabela 17. Configuraes do elemento BUS_OUT (Endpoint Mensageria) do


Barramento de Sada.

Grupo 2

No segundo grupo do fluxo do Barramento de Sada, temos o elemento que recompe


o objeto Java a partir de um objeto no formato XML recebido na fila BUS_OUT, na
entrada do Barramento de Sada. A seguir temos a descrio deste elemento:

XML to Object (Transformador de XML para Objeto): Recompe o objeto Java


MessageResponse recebido em formato XML.

Grupo 3

Neste ponto executado um transformador, que est implementado atravs de uma


classe Java. O elemento contido o:

Java (Transformer Java): Este transformador uma classe Java que tem o intuito
de realizar funes necessrias no final do fluxo do Barramento de Servios. Funes
que podem variar conforme a necessidade, tais como: logging, auditing,
transformao, enriquecimento, etc. Neste caso, apenas enriquecemos a mensagem
adicionando o tempo em milissegundos da sada da mensagem do ESB. As
configuraes deste elemento esto descritas na Tabela 18.

Tabela 18. Configuraes do elemento Java (Transformer Java) do Barramento de


Sada.

Grupo 4

Aps a execuo do transformador de mensagem Java no Grupo 3, seguimos com a


converso do objeto Java para a estrutura em formato XML. Esta estrutura de

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 14/19
informao ser enviada como mensagem de resposta final solicitao de execuo
de servio no Barramento de Servio. O elemento contido neste grupo o:

Object to XML (Transformador de Java para estrutura XML): Retorna a


estrutura do objeto Java, MessageResponse, para o formato XML, esperado como
resposta.

Grupo 5

Neste ltimo grupo do Barramento de Sada, temos um elemento que no possui total
importncia para o resultado final solicitao de servio pelo consumidor. Apenas
inserimos este elemento para gravar localmente em um arquivo o contedo da
mensagem de resposta retornada ao consumidor. Segue a descrio do elemento
deste grupo:

File (Endpoint File): Este elemento tem como objetivo apenas registrar em um
arquivo a resposta que ser enviada para o consumidor. No h necessidade funcional
deste elemento. Ele apenas cumpre uma caracterstica no-funcional, fazendo o log da
informao que devolvida solicitao de execuo de servio no Barramento. As
configuraes deste elemento esto descritas na Tabela 19.

Tabela 19. Configuraes do elemento File (Endpoint File) do Barramento de Sada.

Listagem 6. Objeto Java transformador, que realiza o tratamento final da resposta do


Barramento de Servios.

package br.ujr.soa.bus;

import java;

public class OutOfBus extends AbstractTransformer {

protected Object doTransform(Object src, String enc)


throws TransformerException {

/* Mensagem recebida pelo Transformador durante o Fluxo.


Neste caso, o nosso objeto de resposta: MessageResponse */
MessageResponse response = (MessageResponse)src;

/* Informaes no-funcionais para adicionar resposta */


long timeOut = Calendar.getInstance().getTimeInMillis();
long total = timeOut - response.getBusInfo().getTimeIn();
SimpleDateFormat sdfTotal = new SimpleDateFormat("mm:ss:SSS");
/* Insero do timestamp de entrada no barramento de sada,
em milissegundos */
response.getBusInfo().setTimeOut(timeOut);
/* Insero do tempo total de execuo, desde a entrada da
solicitao no Barramento de Entrada, at a resposta
no Barramento de Sada (em milissegundos) */
response.getBusInfo().setTimeTotal(sdfTotal.format(total));

return response;
}
}

Figura 10. Comunicao interna entre os fluxos de mensagens no Barramento de


Servios.

Teste do Barramento de Servios


Para testar o nosso Barramento de Servios, realizaremos a solicitao da execuo de
um servio no ESB utilizando a verso open source da ferramenta soapUI
(http://www.soapui.org). Com esta ferramenta podemos testar chamadas a web
services sem a necessidade da gerao de artefatos de clientes locais. Podemos fazer
isso atravs da criao automtica pela ferramenta dos envelopes de requisio
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
SOAP. Para isto, basta informarmos ao soapUI a localizao do WSDL do servio, que
automaticamente poder se optar por criar uma requisio para cada operao do web
service informado.

Ao informarmos a localizao do WSDL referente ao web service do Barramento de


Servios (http://localhost:8081/bus?wsdl), temos a criao do envelope SOAP para a
operao processRequest(MessageRequest request) existente. Podemos observar
o envelope SOAP de requisio na Listagem 7.

Listagem 7. Envelope SOAP da solicitao que aciona o Barramento de Servios.

<soapenv:Envelope xmlns:soapenv=
"http://schemas.xmlsoap.org/soap/envelope/
"xmlns:bus="http://bus.soa.ujr.br/">
<soapenv:Header/>
<soapenv:Body>
<bus:processRequest>
<MessageRequest>
<!-- Parmetros de entrada para o servio MF_S001
(Busca Endereos Cliente) -->
<contentRequest>
<entry>
<key>cpf</key>
<value>8883227110</value>
</entry>
</contentRequest>
<!-- Identificao do Servio requerido pelo consumidor -->
<messageRouting>MF_S001</messageRouting>
<!-- Identificao do consumidor -->
<pwd>minhasenha</pwd>
<userId>UALTER</userId>
</MessageRequest>
</bus:processRequest>
</soapenv:Body>
</soapenv:Envelope>

Quando criamos este envelope SOAP de requisio pela ferramenta, os valores dos
parmetros so apresentados por padro com um sinal de interrogao no local.
Substitumos estes sinais de interrogao pelos reais valores dos parmetros que
iremos utilizar para chamar o servio. Na Listagem 7 podemos visualizar o envelope
SOAP com os valores dos parmetros j digitados em negrito, necessrios nossa
chamada teste.

Na Listagem 8 podemos observar a resposta chamada desta operao no web


service do Barramento de Servio.

Listagem 8. Envelope SOAP de resposta chamada do servio MF_S001 no


Barramento de Servios.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<mule:header xmlns:mule="http://www.muleumo.org/providers/soap/1.0">
<mule:MULE_CORRELATION_ID>ID:ujrserver.local-53666-1348292434964-
1:1:12:1:1</mule:MULE_CORRELATION_ID>
<mule:MULE_CORRELATION_GROUP_SIZE>-1
</mule:MULE_CORRELATION_GROUP_SIZE>
<mule:MULE_CORRELATION_SEQUENCE>-1
</mule:MULE_CORRELATION_SEQUENCE>
</mule:header>
</soap:Header>
<soap:Body>
<ns1:processRequestResponse xmlns:ns1="http://bus.soa.ujr.br/">
<!-- Objeto que encapsula a resposta
solicitao de servio no ESB -->
<MessageResponse>
<!-- Informaes no-funcionais, tempo de entrada e
sada no Barramento -->
<busInfo>

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 16/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111
<date>2012-09-22T02:40:51.507-03:00</date>
<timeIn>1348292451507</timeIn>
<timeOut>1348292452453</timeOut>
<timeTotal>00:00:946</timeTotal>
</busInfo>
<!-- Contedo da Resposta solicitao de servio
MF_S001 no ESB. No caso, uma lista de endereos
do cliente com cpf 8883227110 -->
<contentResponse>
<entry>
<key>2</key>
<value xsi:type="ns3:Endereco"
xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xmlns:ns3=
"http://bus.soa.ujr.br/">
<logradouro>LA 11 Street</logradouro>
<complemento>Home</complemento>
<cep>7655765</cep>
<cidade>Los Angeles</cidade>
<enderecoEntrega>true</enderecoEntrega>
</value>
</entry>
<entry>
<key>1</key>
<value xsi:type="ns3:Endereco"
xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance"
xmlns:ns3="http://bus.soa.ujr.br/">
<logradouro>Fith Avenue</logradouro>
<complemento>Business</complemento>
<cep>0123311</cep>
<cidade>New York</cidade>
<enderecoEntrega>false</enderecoEntrega>
</value>
</entry>
</contentResponse>
<!-- Objeto que encapsula a solicitao
enviada da resposta do servio -->
<messageRequest>
<contentRequest>
<entry>
<key>cpf</key>
<value>8883227110</value>
</entry>
</contentRequest>
<messageRouting>MF_S001</messageRouting>
<pwd>minhasenha</pwd>
<userId>UALTER</userId>
</messageRequest>
</MessageResponse>
</ns1:processRequestResponse>
</soap:Body>
</soap:Envelope>

Com este teste realizado via soapUI, podemos analisar o comportamento e o resultado
do processamento da mensagem na solicitao de consumo do servio de Busca de
Endereos do Cliente, no Barramento de Servios da empresa fictcia Arkham
Company. Os consumidores podem agora utilizar o ESB para executar os servios
disponveis no Catlogo de Servios da empresa.

Alguns aspectos tcnicos neste Barramento no foram integralmente ou nem mesmo


parcialmente implementados, tendo em vista o objetivo de simplificar a demonstrao e
explicao dos pontos funcionais mais relevantes nos Fluxos de Mensagens. Portanto,
no foram abordados aspectos como: tratamento de segurana, logging, auditing,
tratamento de erros, excees, dentre outros. De qualquer forma, todos estes
aspectos podem ser realizados por componentes existentes no ESB Mule.

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 17/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

Concluso
Na busca por um ambiente orientado a servios vrios desafios devero ser
transpostos para atingir alguns dos benefcios propostos por este estilo de
arquitetura. H sempre uma maior dificuldade quando se trata de mudana de hbito e
de ideias relacionadas a uma escola de pensamento que a um longo tempo est
estabelecida nos ambientes de negcio e tecnologia. Muitas vezes percebida em forma
de vcios.

O comprometimento das reas de negcio e tecnologia importante para ajudar a


quebrar certos comportamentos que no auxiliam na implantao de uma mentalidade
orientada ao uso de servios. Os profissionais que possuem forte influncia e comando
na empresa devem contribuir para a mudana de hbito quando o assunto for
integrao, deixando de pensar isoladamente e apenas em solues imediatistas, como
por exemplo, na resoluo de uma conexo do sistema A com o sistema B. Nestes
casos, deve haver um incentivo e mtodo sensato para realizar a abstrao desta
velha forma de resolver estes cenrios de integrao. Isto feito com o objetivo de
analisar o que est sendo na verdade realizado defronte ao processo de negcio, e
assim verificar o que o sistema A deve realmente fornecer de valor ao ambiente, em
formato de servio, para que o sistema B possa realizar a automatizao do processo
que lhe cabe. E no somente conectar o ponto A ao ponto B.

Com o uso de ferramentas adequadas, dentro do mtodo de incentivo considerado


ideal para o estilo de arquitetura orientado a servio, junto com o estabelecimento de
um Centro de Excelncia na empresa, possvel demonstrar na prtica de que forma o
SOA deve ser inserido no ambiente para alcanar os benefcios almejados de maneira
gradual. Este Centro de Excelncia, formado por um grupo de profissionais
experientes de diferentes perfis, ter a responsabilidade de conduzir atividades de
liderana, estabelecer boas prticas, colaborao, promoo, apoio e implantao do
SOA.

Links
Definies de termos adotados na orientao a servios.
http://www.soaglossary.com

Introduo e abordagem a vrios aspectos do SOA. Site de Thomas Erl,


um dos mais conhecidos experts no assunto.
http://www.whatissoa.com/

Introduo aos princpios que regem o SOA, por Thomas Erl.


http://www.soaprinciples.com

Lista com os mais conhecidos modelos de maturidade para avaliao do


nvel de implantao do SOA.
http://soablueprint.com/maturity_models

Livros
Escrito pelo especialista no assunto Thomas Erl, descreve conceitos,
fundamentos, origens, tecnologia e casos de estudos relacionados
abordagem deste estilo de arquitetura.
Service-Oriented Architecture: Concepts, Technology and Design, Thomas Erl,
Prentice Hall, 2005

Ualter Otoni Azambuja Junior


Atua como profissional na rea de tecnologia h dezessete anos, dos quais dez dedicados a plataforma Java e solues
de Arquitetura de Aplicao/Integrao. Trabalha como Arquiteto de Sistema para o Banco Ita S/A, ps-graduado em
Tecnologia Orientada a Objetos e possui as certificaes: SCJP, SCW...

0 COMENTRIO

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 18/19
10/01/13 Orientao a SOA Parte 2 - Revista Java Magazine 111

Ne nhum com e ntrio foi postado - se ja o prim e iro a com e ntar!

cursos relacionados posts em sequncia ltimos do autor

C urso online: Introduo ao desenvolvimento para celulares com J2ME

C urso online: Padres de Projeto em Java

C urso online - Desenvolvendo uma aplicao completa com Struts 2

Introduo ao Ruby on Rails

Administrao do Firebird/InterBase

[Ver todos]

DevMedia no Facebook
Curtir 5.546

5,546 pessoas curtiram DevMedia.

DevMedia | Anuncie | Fale conosco


Hospedagem web por Porta 80 Web Hosting

Islon F abio Digo M ay ara Kelv in Jeser A lexandre P aulo M arcell


2013 - Todos os Dire itos R e se rvados a web-03 P lug-in social do F acebook

www.devmedia.com.br/orientacao-a-soa-parte-2-revista-java-magazine-111/26811 19/19

Você também pode gostar