Aplicando Composição e Orquestração de Serviços na
Organização de Sistemas
Silva, Leo Moreira
Centro Federal de Educação Tecnológica do Rio Grande do Norte (CEFET-RN)
CEP 59015-000 – Natal – RN – Brazil
1. Introdução
Atualmente, um grande desafio para empresas de qualquer gênero é a integração de
sistemas heterogêneos e dinâmicos. Para atender essa necessidade, surge a Arquitetura
Orientada a Serviços (SOA, do inglês Service-Oriented Architecture), visando a
interoperabilidade e a reusabilidade de componentes. Em SOA, as funcionalidades são
providas através de serviços em servidores específicos. As principais vantagens da SOA
são:
● Reuso;
●
Baixo acomplamento;
●
Autonomia;
●
Abstração;
●
Contrato de Serviço;
●
Inexistência de Estados.
Com essa nova visão, os recursos e o conhecimento não são mais exclusivos a
departamentos ou setores. Essa junção de esforços trás uma vantagem competitiva.
Mas essa busca por um novo paradigma, acaba fazendo que as empresas utilizem
apenas a tecnologia de Web Services , mudando apenas a forma de implementação de
seus sistemas. Isso é o que se chama de falso SOA. A diferença básica é que SOA
representa um novo paradigma para o desenvolvimento de aplicações corporativas
orientadas a serviços, enquanto Web Services representam a tecnologia para o
desenvolvimento dessas aplicações.
Para auxiliar na solução dessa confusão, surgem alguns padrões que disciplinam e
auxiliam na criação de composições através de linguagens para expressar a lógica de
serviços compostos em processos de negócio. BPEL é uma das principais linguagens
para especificar processos de negócio e o estado dos processos.
Existem duas formas de se realizar composição de serviços: Orquestração e
Coreografia. A orquestração é organizada por coordenador, fazendo verificações de précondições e pós-condições. Já na coreografia, todos auxiliam na fluxo das operações.
O artigo se referiu a um estudo de em sistemas de uma empresa de
telecomunicações que utiliza Web Services para comunicação interna e externa entre
eles. Até o momento de conclusão, a empresa não utilizava o paradigma de orientação a
serviços. O estudo utilizou a ferramenta BPEL para aplicar os conceitos de
orquestração e composição.
2. Objetivos e Metodologias
Como objetivo geral da monografia, foi implementar a orquestração de serviços em um
ambiente real.
Em objetivos específicos, a realização de estudos das tecnologias envolvidas,
bem como as plataformas e ferramentas.
A metodologia aplicada, foi em um primeiro momento, a realização do estudo da
plataforma envolvida e logo após um estudo teórico das tecnologias. Por fim, foi
realizada a implementação do estudo.
3. Fundamentação Teórica
3.1 SOA
A primeira tecnologia abordada no estudo, foi a tecnologia SOA. Basicamente é
demonstrada a definição forma; da tecnologia, mostrando o que cada palavra significa e
como deve ser interpretada. No caso de SOA, as duas primeias palavras ServiceOriented expressam uma metodologia de software, enquanto Architecture seria um
panorama dos componentes do sistemas, como se fosse uma planta arquitetônica.
Também é apresentando o paradigma a qual o SOA é implementado, o findbind-execute. Esse paradigma segue o princípio de publicação de serviços, e
consumidores buscam pelos mesmo. Caso o consumidor encontre o serviço necessário, é
criado um contrato e o mesmo devolve um endereço para utilização do serviço. Abaixo,
a figura ilustra esse paradigma.
Figura 1: Paradigma Find-Bind-Execute
3.1.1 Vantagens do SOA
Segundo o estudo, a grande vantagem da utilização do SOA é a integração entre
aplicações através de serviços. Basicamente, essa integração de serviços é regida por
contratos, onde são definidos o conjunto de mensagens suportadas, seu conteúdo e
políticas(ALVEZ et al., 2006).
3.1.2 Características do SOA
Dentro do estudo, são apontadas algumas características importantes do SOA. Entre
estão:
●
Baixo;
●
Contrato;
●
Autonomia ;
●
Abstração;
●
Reuso;
●
Composição;
●
Estado.
3.2 Web Services
O estudo inicia esse tópico abordando tecnologias que tiveram a iniciativa de
comunicação em ambientes distribuído, como Corba e JAVA RMI. Essas tecnologias
apresentam problemas na sua implementação. Nesse contexto, os Web Services surgiram
para corrigir esses problemas.
É apontado como uma grande vantagem dos Web Services, a utilização de baixo
acoplamento entre sistemas e sua interoperabilidade, além de usar padrões abertos
baseados em XML como WSDL,SOAP .e UDDI
Abaixo é demostrada a arquitetura do Web Service. No estudo, é dado um
destaque para similaridade entre a arquitetura Web Service e SOA, pois a primeira é uma
implementação da segunda.
Figura 2: Arquitetura Web Service
Na continuação do estudo, são apresentados os componentes de um Web
Services. Em resumo, essas são as principais características citadas de cada um:
●
Serviços – é um componente que atende a uma função de negócio específica. Ele
recebe requisições e oculta todo o processamento;
●
WSDL – define como as mensagens devem ser troca entre um consumidor e um
serviço. Tem como objetivo principal, descrever as interfaces dos serviços, sem
ficar preso a nenhuma plataforma;
●
SOAP – é o protocolo de comunicação dos Web Services. Ele utiliza a infraestrutura de rede, navegando sobre o protocolo HTTP, facilitando a
comunicação, pois na maioria das vezes não é barrado por firewalls;
●
UDDI – fornece o mecanismo para localização de serviços. Organiza ponteiros
para descrição de serviços para acomodar o processo de descoberta através de
registro de serviços.
3.3. Camada de Serviços
Após a introdução das tecnologias necessárias para a implementação do serviço,
o estudo apresenta os princípios fundamentais para implementação da tecnologia
orientada a serviços. Em um primeiro momento, é apresentada a camada de serviços,
onde segundo o estudo, é a área onde as características do SOA são mais prevalentes. E
para uma melhora compreensão, é demostrada a divisão dessas camada em 3 partes
como mostra a figura
Figura 3: As 3 principais camadas de serviço
Um resumo das principais características das camadas:
●
Camada de Serviços de Aplicação – provê funções reusáveis relacionadas ao
processamento de dados de um sistema novo ou legado. Os serviços que rodam
nessa camada rodam dentro de uma contexto específico, são genéricos e
reutilizáveis e podem ser usados para atingir uma integração ponto a ponto com
outros serviços de aplicação;
●
Camada de Serviços de Negócio – representam a lógica de negócio da aplicação.
São os serviços base da SOA;
●
Camada de Serviços de Orquestração – impõe uma ordem seqüencial correta na
execução dos serviços.
3.4 Modelagem de Serviços
O estudo apresenta a situação atual das organizações, onde a mentalidade de se buscar
uma melhora em processos individuais está sendo deixado de lado, para uma mentalidade
onde todos os processos se interligam para alcançar um objetivo único. Para
complementar essa informa, são apresentados alguns conceitos de um processo de
negócio.
O primeiro tópico é o processo de negócio em si. Basicamente, é um conjunto de
tarefas que contribuem coletivamente para que uma organização atinja seus objetivos. E
para ajudar no mapeamento dessas tarefas, é apresentado o conceito de workflow, que
nada mais é do que um conjunto de uma ou mais atividades diretamente ligadas , que
realizam coletivamente um objetivo do negócio.
Logo após, é apresentado o conceito de BPM (Business Process Management),
que surgiu da necessidade de se mapear processos além das fronteiras de uma
organização. Com BPM, processos totalmente diferentes começaram a ser mapeados em
função de um objetivo.
O estudo cita que o BPM surge baseada em SOA, e junto com eles, a
necessidade de se compor serviços, ou seja, combinar serviços para que os mesmos
alcancem objetivos que superam suas capacidades individuais. Trazendo essa teoria para
o estudo, essa composição conecta Web Services objetivando criar processos de negócio
de alto nível, com alto valor agregado. A figura abaixo ilustra esse conceito.
Figura 4: Composição de Serviços
E para se atingir essa composição de serviços, o estudo demonstra as principais
técnicas de composição, que são orquestração e coreografia.
No estudo, orquestração é citada como um mecanismo que permite dois ou mais
sistemas se comuniquem, utilizando uma orquestradora central. Sua grande vantagem, é
que não existe a necessidade de se refazer funcionalidades de sistema já existentes,
deixando a cargo da orquestradora central a invocação e retorno das mensagens. A
figura abaixo ilustra o seu funcionamento.
Figura 5: Orquestração de Serviços
Ao contrário da orquestração, na coreografia, os serviços conhecem uns aos outros e
cada um conhece sua função dentro do fluxo do processo. A coreografia é realizada
através da troca de mensagem entre os serviços. Abaixo a figura ilustrando a
coreografia.
Figura 6: Coreografia de Serviços
O estudo também trás um comparativo entre as duas abordagens de composição.
Entre as principais vantagens da orquestração em relação a coreografia, está no fato da
flexibilidade, pois a inserção de um Web Service dentro de um grande processo de
negócio sem a necessidade de apresentar o serviço as todos os Web Service rodando.
Por outro lado, na coreografia, é traçada a correta ordem da sequência de mensagens ,
sem que nenhum deles controle a conversação.
Durante o estudo é citada da linguagem BPEL (Business Process Execution
Language) que serve para especificar o comportamento de um processo de negócio.
BPEL é uma linguagem usada para padronizar a integração de aplicações e para integrar
sistemas isolados.
Para finalizar, são apresentadas ferramentas para composição de serviço. Dentre
as ferramentas se destacam:
●
WebSphere – Utilização de tecnologia J2EE e SOA. Possui uma perspectiva para
modelagem dos processos de negócio utilizando BPEL;
●
Microsoft
BizTalk Server
2006
–
ferramenta
poderosa
para
desenvolvimento,implantação e gerenciamento de processos de negócio.
Possibilidade de modelar regras de negócio;
●
JBoss jBPM – criação de processos de negócio para coordenador
pessoas,aplicações e serviços. Possui um ambiente para fácil programação;
●
NetBeans IDE – possibilita criação,testes e depuração de aplicativos utilizando
XML,BPEL e serviços Web em Java;
●
ActiveBPEL – ferramenta utilizada durante o estudo. É uma ambiente de
execução de processos de negócio baseado no padrão WS-BPEL. Também é
possível gerenciar persistência de dados, filas, alarmes e diversos outros detalhes
inerentes a execução de processos de negócio.
4. Desenvolvimento do Projeto
A parte prática do estudo foi a realização de uma composição através de orquestração,
utilizando os sistemas de uma empresas de telecomunicações. No inicio, são abordadas
as soluções que a empresa provê.
O sistemas da arquitetura pertencem apenas a camada de serviços da aplicação,
ficando de fora dessa implementação a camada de serviço de negócio e a camada de
orquestração. Abaixo é ilustrada uma figura com todos os serviços contemplados pelas
aplicações.
Figura 7: Estrutura dos Sistemas da Plataforma
Logo em seguida, é realizada uma descrição detalhada de cada serviço. Um
detalhe que é bastante frisado no estudo, é que muito dos sistemas que estão rodando
realizam operações em comum, mas cada sistema possui a implementação das operações
separadamente, resultando em excessiva duplicação de código. Para resolver esse
problema, pode-se criar serviços utilitários, como por exemplo, o serviço
manipuladorXML, que nada mais é, do que um serviço que lê dados referentes a
consulta de banco de dados. Esses serviços utilitários também foram utilizados para
compor serviços, resultando em uma performance mais adequada.
Em um primeiro exemplo, ele demonstra como utilizar a composição de 2
serviços, no caso ManipularXML e SalvarGrupo que estão na camada de serviço de
aplicação. Abaixo uma ilustração do serviços.
Figura 8: Serviços ManipularXML e SalvarGrupo na Camada de
Serviço de Aplicação.
Abaixo é mostrado como é executado os 2 serviços interagem para gerar um novo
serviço chamado ServiceSalvarGrupo. BasicamenteO processo inicia-se quando o cliente
requisita a operação, representada pela operação ReceberDoCliente. Após isso, as
variáveis do serviço LerXML são iniciadas e o serviço é invocado. Num passo seguinte,
o processo entra em um condicional if. Se a mensagem de retorno do serviço LerXML
for a string de consulta,o processo continua, senão, uma mensagem é retornada ao
cliente. Caso o processo continue, as variáveis do serviço SalvarGrupo são iniciadas e o
serviço é invocado realizando sua tarefa dentro do processo. Posteriormente, a resposta
do serviço SalvarGrupo é verdadeira. Se o for, a variável de resposta é iniciada e a
mesma é retornada ao cliente. Caso contrário, o processo envia outra mensagem ao
cliente, indicando que o processo falhou.
Figura 9: Processo ServiceSalvarGrupo.
Como o estudo aborda, logo após a composição esse novo serviço fica a
disposição na camada de serviços como ilustra a figura abaixo.
Figura 10: Serviço ServicoSalvarGrupo nas camadas de Aplicação e
Negócios
Na seqüência do estudo, é mostrado outro exemplo de composição de serviços,
mostrando a mesma lógica de desenvolvimento.
Como resultado, foi demonstrado a reusabilidade de serviços e composição dos
mesmo para gerar serviços mais completos.
5. Conclusões
O estudo tira como conclusão principal a combinação de Web Services para gerar
serviços de valor agregado. No exemplo foi ilustrado que não é uma tarefa complexa
como poderia se imaginar.
6. Referências
Silva, Leo Moreira (2007) “Aplicando Composição e Orquestração de Serviços na
Organização
de
Sistemas”,
www.ic.unicamp.br/~beatriz/cursos/mo809/2008/referencias/monografia.pdf, Maio.
Download

Instruções aos Autores de Contribuições para o SIBGRAPI