SlideShare uma empresa Scribd logo
Arquitetura Orientada a Serviços e BPM
Cássio C. A. Blaz, Marcelo Balbinot, Roger Ritter
Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS)
Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brazil
cassioblaz@gmail.com, marc.balbinot@gmail.com,
rogersmartlife@gmail.com
Abstract. This article describes a service-oriented architecture in general and
its implementation through web services. Also deals with the execution of
business processes through the BPEL language.
Resumo. Este artigo descreve a arquitetura orientada a serviços de forma
geral e sua implementação via web services. Também trata sobre a execução
de processos de negócios, através da linguagem BPEL.
1. Introdução
A arquitetura orientada a serviços (SOA) é um modelo cada vez mais difundido e
utilizado pelas empresas. Seu principal objetivo, de permitir que componentes ou
funcionalidades de softwares isolados possam ser reutilizados e integrados de maneira
relativamente simples, melhora diversas características de softwares desenvolvidos via
disponibilização e consumo de serviços.
Uma de suas principais implementações são os web services. Esta tecnologia tem como
princípio a integração de uma aplicação com componentes existentes e disponibilizados
de outras, independente de quais plataformas ou linguagens de programação foram
utilizadas para seus desenvolvimentos. Ela utiliza o protocolo SOAP, o qual permite
troca de informações via XML. Também poupa a programação de “baixo nível” para
realizar as conversões e mecanismos necessários à comunicação, ficando transparente
aos desenvolvedores como realmente é realizada a integração.
Já BPM é uma disciplina de administração de negócios, que trata de temas relacionados
à gestão por processos de negócio, envolvendo sua identificação, sua modelagem, sua
implementação, entre outros, tudo sob uma perspectiva organizacional.
Alguns produtos BPM buscam automatizar os processos. Um deles é o BPEL, que
disponibiliza uma linguagem para modelagem de processos de negócios executáveis.
Ele provê uma forma de orquestração para descrever a troca de informação
internamente ou externamente, via consumo e integração com web services.
2. Arquitetura Orientada a Serviços
Há diversas definições de arquitetura orientada a serviços (SOA). Uma delas é: projetar
uma arquitetura que consiste em componentes interoperáveis e reutilizáveis. Há duas
camadas “macros” as quais podemos dividir essa arquitetura: a do fornecedor do serviço
(que implementa o serviço em si, tendo conhecimento sobre o domínio e negócio); e o
consumidor do serviço (ou cliente), o qual localiza e utiliza (executa) serviços de um
fornecedor. Primeiramente, após o desenvolvimento de um serviço, o fornecedor deve
registrá-lo para poder ser encontrado, assim o consumidor pode localizá-lo e executá-lo.
Ainda deve haver uma forma de contrato, o qual contém informações necessárias para o
cliente consumir serviços. A figura 1 exibe esses elementos e suas relações (Erl, 2005).
Figura 1: Elementos de SOA e suas relações
Atualmente as organizações apresentam diversos sistemas independentes, com
tecnologias, frameworks, plataformas e linguagens diferentes. Também devem estar
preparadas a mudanças constantes em seus negócios. Assim SOA permite uma maior
flexibilidade e reutilização dos aplicativos. O baixo acomplamento entre essa idéia
proporciona menores risco e custo em relação às mudanças dos sistemas, já que é
possível modulizar as aplicações (Newcomer, 2002).
Também permite que uma organização utilize serviços externos, sem necessidade de
instalar componentes externos, já que é preciso apenas consumir os serviços de
fornecedores. Exemplos atuais da utilização de SOA nesse sentido são serviços
disponibilizados pelos Correios e por gateways de pagamento (Newcomer, 2002).
Portanto alguns dos maiores benefícios de utilizar esse conceito são: flexibilidade,
manutenabilidade, reusabilidade e integração. Uma das tecnologias que implementa
SOA são os web services, a qual será descrita a seguir (Erl, 2005).
2.1. Web Services
Web services é uma implementação de SOA. Com ela, uma aplicação pode se
comunicar com outra através do consumo de serviços disponibilizados por esta, mesmo
que estejam instaladas em locais diferentes e sejam implementadas em tecnologias e
linguagens distintas (Newcomer, 2002).
Primeiramente, um fornecedor deve disponibilizar um ou mais serviços, os quais serão
consumidos por um cliente. A troca de mensagens entre eles ocorre via XML (os dados
são convertidos para o envio e restaurados para o recebimento), utilizando o protocolo
SOAP (Simple Object Access Protocol, baseado em XML). Os serviços e suas
características (operações, parâmetros, etc.) são descritos via a linguagem WSDL, a
qual descreve o contrato do serviço. Quanto à publicação, pesquisa e descoberta de
serviços, pode ser utilizado o protocolo UDDI (Universal Description, Discovery and
Integration). A figura 2 exibe a integração entre os conceitos e protocolos (Newcomer,
2002).
Figura 2: integração entre conceitos e protocolos de web services
A linguagem XML é essencial para Web Services. Ela descreve desde os contratos dos
serviços, como são publicados e descobertos, até o conteúdo das trocas de mensagens
em si. Para cada uma de suas utilizações, são definidas as estruturas que devem ser
seguidas (Erl, 2009).
Já SOAP é um protocolo que implementa RPC (Remote Procedure Call), que funciona
sobre HTTP, utilizando mensagens em formato XML. Baseia-se em invocações remotas
de métodos, na qual devem ser definidas o endereço do serviço, o nome da
operação/método e seus respectivos parâmetros. Estes dados são formatados em XML
pelo cliente e enviados via HTTP ao fornecedor. Essa conversão para XML ocorre de
forma transparente ao desenvolvedor (é de responsabilidade da API ou biblioteca
utilizada), ficando transparente, assim como a restauração da mensagem pelo
fornecedor. Isso permite a interoperabilidade entre dois sistemas, independentemente
das tecnologias utilizadas, já que SOAP é um protocolo comum de transferência de
dados (Erl, 2009).
WSDL é um padrão que utiliza XML para descrever o contrato de um serviço, ou seja,
quais operações, parâmetros, retornos, etc. um web service possui, além de ser usado
para a validação de suas chamadas. Esse padrão descreve os serviços disponibilizados
via uma semântica XML, fornecendo a documentação necessária para se chamar um
web service e o procedimento necessário à comunicação. Enquanto que o SOAP
especifica a comunicação entre um cliente e um servidor, o WSDL descreve os serviços
oferecidos (Erl, 2009).
O UDDI é um protocolo para organização e registro de nomes e de descrição de
serviços, funcionando como um serviço de diretório onde empresas podem registrar
(publicar) e buscar (descobrir) web services. Disponibiliza três funcionalidades
principais: publicação, descoberta e bind. (Erl, 2009)
3. BPEL (Business Process ExecutionLanguage)
BPEL é uma linguagem utilizada para definir processos de negócios, que surgiu da
união de duas linguagens que possuíam semelhanças entre si: a Web Service Flow
Language (WSFL) e a Web Services for Business Process Design (XLANG), das
empresas IBM e a Microsoft respectivamente (Nunes et. al., 2010).
O BPEL foi criado, principalmente, para orquestrar e coordenar os Web Services de
forma que eles possam atuar no comportamento transacional e colaborativo, sendo uma
linguagem baseada em XML. A especificação BPEL foi enviada para o corpo de
standards OASIS para revisão e eventual designação como um protocolo standard, a fim
de ser disponibilizado e utilizado por qualquer pessoa.
Dentro de uma empresa, o uso do BPEL é indicado para a normalizar a integração das
suas aplicações, assim como integrar sistemas que de outro modo estariam isolados.
Entre empresas, permite uma integração mais fácil entre parceiros de negócios,
estimulando-as a aprofundar a definição dos seus processos de negócio, otimizando
assim a sua organização e a escolha dos processos mais adequados às suas necessidades
(Ribeiro, 2008).
BPEL faz uso do padrão de arquitetura SOA, sendo baseado em uma abordagem de
orquestração, que é representada na Figura 3. A abordagem de orquestração funciona
contendo um controlador central, que recebe (receive) requisições de usuários ou
consumidores, e de acordo com esta requisição, o controlador central invoca (invoke)
um web service, de modo que a web services possa enviar respostas de volta ao
controlador, e por fim, o controlador possa enviar uma resposta (reply) ao consumidor
ou ao usuário (Moreira et. al., 2011).
Figura 3: Abordagem de orquestração.
Em um processo BPEL está explícita a ordem exata em que os serviços serão
executados, de modo sequencial ou em paralelo. Este processo é composto de várias
atividades, que podem servir para o envio, recebimento de respostas entre o controlador
central e consumidores (Nunes et. al., 2010).
Devido a suas características técnicas, como a utilização da estrutura de orquestração, o
BPEL se adapta muito mais rápido as mudanças constantes nas regras de negócios das
organizações. Como a base do BPEL é a utilização de web services, a comunicação com
os parceiros e fornecedores se torna muito mais simplificada, já que não é necessária a
incorporação das regras de negócios dentro dos sistemas da organização (Nunes et. al.,
2010).
A definição de um processo BPEL consiste em dois tipos de arquivos: um arquivo
WSDL que especifica os tipos de ligação entre as interfaces, propriedades, tipo de
portas e operações, mensagens e parte de interesse do processo, incluindo serviços
implementados e invocados pelo processo; arquivos BPEL, que está no formato XML,
contendo a definição do processo, incluindo todas as atividades e principais variáveis
envolvidas (Maldaner, 2010).
References
Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and
Design. Prentice Hall
Erl, T. (2009). Web service contract design & versioning for SOA. Prentice Hall.
Prentice Hall
Marçal, Hugo Alexandre Tavares (2010). Gestão Integrada de Sistemas e Execução de
Processos WS-BPEL
Maldaner, Lucas André; Pasqual, Everton Schonardie (2013). Uma Análise de
Linguagens de Composição de Serviços: A Utilização de BPEL e YAWL
Moreira, Arthur Ministro Pereira; Leão, Felipe Braga Carneiro; Lopes, Sandro Pinheiro;
et. al. (2011). BPEL: Principais Conceitos e Uso Prático
Newcomer, E. (2002). Understanding Web Services: XML, WSDL, SOAP, and UDDI.
Paperback
Nunes, Brauleyn Z.; Junior, Cesar R. de S.; Bastos, Elena D.; et. al. (2010). BPEL:
Modelagem de Processos
Ribeiro, José Luís Vaz (2008). Orquestração e Composição de Serviços Web Usando
BPEL

Mais conteúdo relacionado

Mais procurados

SOAP e REST
SOAP e RESTSOAP e REST
SOAP e REST
Geffersonn
 
Soap x rest
Soap x restSoap x rest
Soap x rest
Anderson Ricardo
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
renanwb
 
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTINTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
Rafael Bitencourt
 
Restful Introdução com exemplo - Part 2
Restful Introdução com exemplo  - Part 2Restful Introdução com exemplo  - Part 2
Restful Introdução com exemplo - Part 2
Jeison Barros
 
Ibolt e Procnet
Ibolt e ProcnetIbolt e Procnet
Ibolt e Procnet
Procnet
 
Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)
Ricardo Moreira Milhomem
 
Beehive - Overview
Beehive - OverviewBeehive - Overview
Beehive - Overview
Thiago Gutierri
 

Mais procurados (8)

SOAP e REST
SOAP e RESTSOAP e REST
SOAP e REST
 
Soap x rest
Soap x restSoap x rest
Soap x rest
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTINTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
 
Restful Introdução com exemplo - Part 2
Restful Introdução com exemplo  - Part 2Restful Introdução com exemplo  - Part 2
Restful Introdução com exemplo - Part 2
 
Ibolt e Procnet
Ibolt e ProcnetIbolt e Procnet
Ibolt e Procnet
 
Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)
 
Beehive - Overview
Beehive - OverviewBeehive - Overview
Beehive - Overview
 

Semelhante a Arquitetura Orientada a Serviços e BPM

Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
monicavasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
monicavasconcelos
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
Paulo Vitor Antonini Orlandin
 
Web services
Web servicesWeb services
Web services
Sérgio Rocha
 
SOA
SOASOA
SOA
creuset
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
blogspheregroup
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
Paulo Rezende
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
Leonardo Eloy
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
Leonardo Eloy
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
blogspheregroup
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
Juliana Cindra
 
Arquitetura orientada a serviço
Arquitetura orientada a serviçoArquitetura orientada a serviço
Arquitetura orientada a serviço
cadeirudo
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
Portal_do_Estudante_SD
 
Aumentando escalabilidade com SOA
Aumentando escalabilidade com SOAAumentando escalabilidade com SOA
Aumentando escalabilidade com SOA
Hugo Marques
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
Michel Azevedo
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
mdmansur
 
Web services
Web  servicesWeb  services
Web services
Liliana Costa
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
João Abussamra Neto
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
lucasbarsand
 
Webservice
WebserviceWebservice
Webservice
Chromus Master
 

Semelhante a Arquitetura Orientada a Serviços e BPM (20)

Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Web services
Web servicesWeb services
Web services
 
SOA
SOASOA
SOA
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
Arquitetura orientada a serviço
Arquitetura orientada a serviçoArquitetura orientada a serviço
Arquitetura orientada a serviço
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
 
Aumentando escalabilidade com SOA
Aumentando escalabilidade com SOAAumentando escalabilidade com SOA
Aumentando escalabilidade com SOA
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
Web services
Web  servicesWeb  services
Web services
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 
Webservice
WebserviceWebservice
Webservice
 

Mais de Roger Ritter

Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
Roger Ritter
 
Planning Onion
Planning OnionPlanning Onion
Planning Onion
Roger Ritter
 
A importância dos testes não funcionais
A importância dos testes não funcionaisA importância dos testes não funcionais
A importância dos testes não funcionais
Roger Ritter
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
Roger Ritter
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
Roger Ritter
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Roger Ritter
 
Técnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicossTécnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicoss
Roger Ritter
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
Roger Ritter
 

Mais de Roger Ritter (8)

Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
 
Planning Onion
Planning OnionPlanning Onion
Planning Onion
 
A importância dos testes não funcionais
A importância dos testes não funcionaisA importância dos testes não funcionais
A importância dos testes não funcionais
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
 
Desenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em DartDesenvolvimento de aplicações web em Dart
Desenvolvimento de aplicações web em Dart
 
Técnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos EletrônicosTécnicas de Inteligência Artificial em Jogos Eletrônicos
Técnicas de Inteligência Artificial em Jogos Eletrônicos
 
Técnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicossTécnicas de inteligência artificial em jogos eletrônicoss
Técnicas de inteligência artificial em jogos eletrônicoss
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
 

Arquitetura Orientada a Serviços e BPM

  • 1. Arquitetura Orientada a Serviços e BPM Cássio C. A. Blaz, Marcelo Balbinot, Roger Ritter Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brazil cassioblaz@gmail.com, marc.balbinot@gmail.com, rogersmartlife@gmail.com Abstract. This article describes a service-oriented architecture in general and its implementation through web services. Also deals with the execution of business processes through the BPEL language. Resumo. Este artigo descreve a arquitetura orientada a serviços de forma geral e sua implementação via web services. Também trata sobre a execução de processos de negócios, através da linguagem BPEL. 1. Introdução A arquitetura orientada a serviços (SOA) é um modelo cada vez mais difundido e utilizado pelas empresas. Seu principal objetivo, de permitir que componentes ou funcionalidades de softwares isolados possam ser reutilizados e integrados de maneira relativamente simples, melhora diversas características de softwares desenvolvidos via disponibilização e consumo de serviços. Uma de suas principais implementações são os web services. Esta tecnologia tem como princípio a integração de uma aplicação com componentes existentes e disponibilizados de outras, independente de quais plataformas ou linguagens de programação foram utilizadas para seus desenvolvimentos. Ela utiliza o protocolo SOAP, o qual permite troca de informações via XML. Também poupa a programação de “baixo nível” para realizar as conversões e mecanismos necessários à comunicação, ficando transparente aos desenvolvedores como realmente é realizada a integração. Já BPM é uma disciplina de administração de negócios, que trata de temas relacionados à gestão por processos de negócio, envolvendo sua identificação, sua modelagem, sua implementação, entre outros, tudo sob uma perspectiva organizacional. Alguns produtos BPM buscam automatizar os processos. Um deles é o BPEL, que disponibiliza uma linguagem para modelagem de processos de negócios executáveis. Ele provê uma forma de orquestração para descrever a troca de informação internamente ou externamente, via consumo e integração com web services. 2. Arquitetura Orientada a Serviços Há diversas definições de arquitetura orientada a serviços (SOA). Uma delas é: projetar uma arquitetura que consiste em componentes interoperáveis e reutilizáveis. Há duas camadas “macros” as quais podemos dividir essa arquitetura: a do fornecedor do serviço (que implementa o serviço em si, tendo conhecimento sobre o domínio e negócio); e o consumidor do serviço (ou cliente), o qual localiza e utiliza (executa) serviços de um
  • 2. fornecedor. Primeiramente, após o desenvolvimento de um serviço, o fornecedor deve registrá-lo para poder ser encontrado, assim o consumidor pode localizá-lo e executá-lo. Ainda deve haver uma forma de contrato, o qual contém informações necessárias para o cliente consumir serviços. A figura 1 exibe esses elementos e suas relações (Erl, 2005). Figura 1: Elementos de SOA e suas relações Atualmente as organizações apresentam diversos sistemas independentes, com tecnologias, frameworks, plataformas e linguagens diferentes. Também devem estar preparadas a mudanças constantes em seus negócios. Assim SOA permite uma maior flexibilidade e reutilização dos aplicativos. O baixo acomplamento entre essa idéia proporciona menores risco e custo em relação às mudanças dos sistemas, já que é possível modulizar as aplicações (Newcomer, 2002). Também permite que uma organização utilize serviços externos, sem necessidade de instalar componentes externos, já que é preciso apenas consumir os serviços de fornecedores. Exemplos atuais da utilização de SOA nesse sentido são serviços disponibilizados pelos Correios e por gateways de pagamento (Newcomer, 2002). Portanto alguns dos maiores benefícios de utilizar esse conceito são: flexibilidade, manutenabilidade, reusabilidade e integração. Uma das tecnologias que implementa SOA são os web services, a qual será descrita a seguir (Erl, 2005). 2.1. Web Services Web services é uma implementação de SOA. Com ela, uma aplicação pode se comunicar com outra através do consumo de serviços disponibilizados por esta, mesmo que estejam instaladas em locais diferentes e sejam implementadas em tecnologias e linguagens distintas (Newcomer, 2002). Primeiramente, um fornecedor deve disponibilizar um ou mais serviços, os quais serão consumidos por um cliente. A troca de mensagens entre eles ocorre via XML (os dados são convertidos para o envio e restaurados para o recebimento), utilizando o protocolo SOAP (Simple Object Access Protocol, baseado em XML). Os serviços e suas características (operações, parâmetros, etc.) são descritos via a linguagem WSDL, a qual descreve o contrato do serviço. Quanto à publicação, pesquisa e descoberta de serviços, pode ser utilizado o protocolo UDDI (Universal Description, Discovery and Integration). A figura 2 exibe a integração entre os conceitos e protocolos (Newcomer,
  • 3. 2002). Figura 2: integração entre conceitos e protocolos de web services A linguagem XML é essencial para Web Services. Ela descreve desde os contratos dos serviços, como são publicados e descobertos, até o conteúdo das trocas de mensagens em si. Para cada uma de suas utilizações, são definidas as estruturas que devem ser seguidas (Erl, 2009). Já SOAP é um protocolo que implementa RPC (Remote Procedure Call), que funciona sobre HTTP, utilizando mensagens em formato XML. Baseia-se em invocações remotas de métodos, na qual devem ser definidas o endereço do serviço, o nome da operação/método e seus respectivos parâmetros. Estes dados são formatados em XML pelo cliente e enviados via HTTP ao fornecedor. Essa conversão para XML ocorre de forma transparente ao desenvolvedor (é de responsabilidade da API ou biblioteca utilizada), ficando transparente, assim como a restauração da mensagem pelo fornecedor. Isso permite a interoperabilidade entre dois sistemas, independentemente das tecnologias utilizadas, já que SOAP é um protocolo comum de transferência de dados (Erl, 2009). WSDL é um padrão que utiliza XML para descrever o contrato de um serviço, ou seja, quais operações, parâmetros, retornos, etc. um web service possui, além de ser usado para a validação de suas chamadas. Esse padrão descreve os serviços disponibilizados via uma semântica XML, fornecendo a documentação necessária para se chamar um web service e o procedimento necessário à comunicação. Enquanto que o SOAP especifica a comunicação entre um cliente e um servidor, o WSDL descreve os serviços oferecidos (Erl, 2009). O UDDI é um protocolo para organização e registro de nomes e de descrição de serviços, funcionando como um serviço de diretório onde empresas podem registrar (publicar) e buscar (descobrir) web services. Disponibiliza três funcionalidades principais: publicação, descoberta e bind. (Erl, 2009) 3. BPEL (Business Process ExecutionLanguage) BPEL é uma linguagem utilizada para definir processos de negócios, que surgiu da união de duas linguagens que possuíam semelhanças entre si: a Web Service Flow Language (WSFL) e a Web Services for Business Process Design (XLANG), das empresas IBM e a Microsoft respectivamente (Nunes et. al., 2010).
  • 4. O BPEL foi criado, principalmente, para orquestrar e coordenar os Web Services de forma que eles possam atuar no comportamento transacional e colaborativo, sendo uma linguagem baseada em XML. A especificação BPEL foi enviada para o corpo de standards OASIS para revisão e eventual designação como um protocolo standard, a fim de ser disponibilizado e utilizado por qualquer pessoa. Dentro de uma empresa, o uso do BPEL é indicado para a normalizar a integração das suas aplicações, assim como integrar sistemas que de outro modo estariam isolados. Entre empresas, permite uma integração mais fácil entre parceiros de negócios, estimulando-as a aprofundar a definição dos seus processos de negócio, otimizando assim a sua organização e a escolha dos processos mais adequados às suas necessidades (Ribeiro, 2008). BPEL faz uso do padrão de arquitetura SOA, sendo baseado em uma abordagem de orquestração, que é representada na Figura 3. A abordagem de orquestração funciona contendo um controlador central, que recebe (receive) requisições de usuários ou consumidores, e de acordo com esta requisição, o controlador central invoca (invoke) um web service, de modo que a web services possa enviar respostas de volta ao controlador, e por fim, o controlador possa enviar uma resposta (reply) ao consumidor ou ao usuário (Moreira et. al., 2011). Figura 3: Abordagem de orquestração. Em um processo BPEL está explícita a ordem exata em que os serviços serão executados, de modo sequencial ou em paralelo. Este processo é composto de várias atividades, que podem servir para o envio, recebimento de respostas entre o controlador central e consumidores (Nunes et. al., 2010). Devido a suas características técnicas, como a utilização da estrutura de orquestração, o BPEL se adapta muito mais rápido as mudanças constantes nas regras de negócios das organizações. Como a base do BPEL é a utilização de web services, a comunicação com os parceiros e fornecedores se torna muito mais simplificada, já que não é necessária a incorporação das regras de negócios dentro dos sistemas da organização (Nunes et. al., 2010). A definição de um processo BPEL consiste em dois tipos de arquivos: um arquivo WSDL que especifica os tipos de ligação entre as interfaces, propriedades, tipo de
  • 5. portas e operações, mensagens e parte de interesse do processo, incluindo serviços implementados e invocados pelo processo; arquivos BPEL, que está no formato XML, contendo a definição do processo, incluindo todas as atividades e principais variáveis envolvidas (Maldaner, 2010). References Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and Design. Prentice Hall Erl, T. (2009). Web service contract design & versioning for SOA. Prentice Hall. Prentice Hall Marçal, Hugo Alexandre Tavares (2010). Gestão Integrada de Sistemas e Execução de Processos WS-BPEL Maldaner, Lucas André; Pasqual, Everton Schonardie (2013). Uma Análise de Linguagens de Composição de Serviços: A Utilização de BPEL e YAWL Moreira, Arthur Ministro Pereira; Leão, Felipe Braga Carneiro; Lopes, Sandro Pinheiro; et. al. (2011). BPEL: Principais Conceitos e Uso Prático Newcomer, E. (2002). Understanding Web Services: XML, WSDL, SOAP, and UDDI. Paperback Nunes, Brauleyn Z.; Junior, Cesar R. de S.; Bastos, Elena D.; et. al. (2010). BPEL: Modelagem de Processos Ribeiro, José Luís Vaz (2008). Orquestração e Composição de Serviços Web Usando BPEL