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

Arquitetura Orientada a Serviços e BPM

  • 1.
    Arquitetura Orientada aServiç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óso 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çãoentre 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 foicriado, 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