Inspeção da Ferramenta Oracle BPEL PM



Documentos relacionados
Serviços Web: Arquitetura

Introdução a Web Services

Manual de instalação, configuração e utilização do Enviador XML

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g

Manual do Usuário do Produto EmiteNF-e. Manual do Usuário

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

3 Serviços na Web (Web services)

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

WS-BPEL Web Service Business Process Execution Language

Usando o Conference Manager do Microsoft Outlook

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

Integração Orientada a Serviços

Manual do Usuário. Protocolo

Introdução ao icare 2

MANUAL DA SECRETARIA

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

UFG - Instituto de Informática

Passo a Passo. WebSphere Message Broker. Fluxo como WebService

Manual de Rotinas para Usuários. Advogados da União. Procuradoria da União no Estado do Ceará PU/CE SAPIENS. Sistema da AGU de Inteligência Jurídica

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Colaborativo. Capa. Primeiros passos O Alfresco organiza o conteúdo em sites. Um site é, na verdade, um formato de site com suporte para muitos

Guia do Usuário. idocs Content Server v

Guia de utilização da notação BPMN

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão

Gerenciador de Multi-Projetos. Manual do Usuário GMP Corporation

O Primeiro Programa em Visual Studio.net

Neste tópico, veremos como selecionar e copiar informações entre bancos de dados de empresa no SAP Business One.

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

Conectar diferentes pesquisas na internet por um menu

Integração de livros fiscais com o Microsoft Dynamics AX 2009

2 Conceitos relativos a Web services e sua composição

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

... MANUAL DO MODERADOR SERVIÇOS DE WEB

Manual do Teclado de Satisfação Online WebOpinião

Especificação do Trabalho

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Prof. Ricardo J. Rabelo

NOTIFICANDO USUÁRIOS SOBRE UMA NOVA EDIÇÃO

4 Desenvolvimento da ferramenta

Portal do Projeto Tempo de Ser

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

phpcollab Versão 2.4

MANUAL MOODLE - PROFESSORES

Sistema Integrado de Atendimento

Web Services. Autor: Rômulo Rosa Furtado

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

Tema: Oracle Weblogic Administration 11g

SquidCacheAux para BrazilFW

Do Word 2007 para o Office 365 para empresas

Manual do Usuário CMS WordPress Versão atual: 3.0

Pró-Reitoria de Administração - PRAd Assessoria de Informática - AI SISTEMA DE PUBLICAÇÃO DE LICITAÇÕES. Manual de Procedimentos

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Sumário. Introdução ao Microsoft Project. 1 Microsoft Project, gerenciamento de projetos e você 3. 2 Visão geral do Project 11.

CURSO: Orientações. MÓDULOS: Orientações/Calendário/Links. Curso 3/ Contato com o suporte: Nome.: Empresa.: Data.: / / .

IBM Software Demos The Front-End to SOA

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

Tutorial: Serviços web e suas composições

4 O Workflow e a Máquina de Regras

Monitor de Comercialização Ofertante. Última Atualização 12/11/2015

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

PROJETO DE REDES

2 Engenharia de Software

MINISTÉRIO DA EDUCAÇÃO

CA Nimsoft Monitor Snap

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

Manual de Instalação SIM/SINASC

TERMO DE REFERÊNCIA PROCESSO Nº / Página 1 de 11

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Projeto ECA na Escola - Plataforma de Educação à Distância

Manual do Sistema HDI Online / Worksite (Circulação: Corretoras parceiras da HDI Seguros )

CURSO DESENVOLVEDOR JAVA Edição 2010

Migrando para o Word 2010

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Notas de versão. Versão

DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SETOR DE ESTÚDIO E SUPORTE MANUAL DE UTILIZAÇÃO DO WEBMAIL DA FTC EAD

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

LGTi Tecnologia. Manual - Outlook Web App. Soluções Inteligentes. Siner Engenharia

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

INSTALAÇÃO DO FIREFOX E JAVA PORTÁVEL CUSTOMIZADO PELO TRT DA 13ª REGIÃO

Bem-vindo ao tópico Múltiplas filiais.

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares.

Curso Juventude Brasileira e Ensino Médio Inovador. Manual do ambiente Moodle

Passo a Passo do Cadastro Funcionários no SIGLA Digital

Como criar um blog. Será aberta uma janela onde você deverá especificar o título do blog, o endereço do blog, e o modelo.

Projuris Enterprise Visão Geral da Arquitetura do Sistema

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Transcrição:

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA Relatórios Técnicos do Departamento de Informática Aplicada da UNIRIO n 0016/2009 Inspeção da Ferramenta Oracle BPEL PM Leonardo Guerreiro Azevedo Jairo Francisco de Souza Fernanda Baião Flávia Santoro Departamento de Informática Aplicada UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO Av. Pasteur, 458, Urca - CEP 22290-240 RIO DE JANEIRO BRASIL

Projeto de Pesquisa Grupo de Pesquisa Participante Patrocínio ii

Relatórios Técnicos do DIA/UNIRIO, No. 0016/2009 Editor: Prof. Sean W. M. Siqueira Agosto, 2009 Inspeção da Ferramenta Oracle BPEL PM* Leonardo Guerreiro Azevedo 1,2, Jairo Francisco de Souza 1,3, Fernanda Baião 1,2, Flávia Santoro 1,2 1 Núcleo de Pesquisa e Prática em Tecnologia (NP2Tec) 2 Departamento de Informática Aplicada (DIA) Universidade Federal do Estado do Rio de Janeiro (UNIRIO) 3 Departamento de Ciência da Computação (DCC) Universidade Federal de Juiz de Fora (UFJF) azevedo@uniriotec.br, jairo.souza@ufjf.edu.br, fernanda.baiao@uniriotec.br, flavia.santoro@uniriotec.br Abstract. Services that execute a business flow can be orchestrated in order to deploy a process execution. Service orchestration is a new service that encapsulates the whole logic behind a chain of services invocations. BPEL is the standard language for web services orchestration while Oracle BPEL PM is an important tool for BPEL process design. This work presents the evaluation of Oracle BPEL PM. Keywords: SOA, web services, modeling, Services Orchestration, BPEL, Oracle BPEL PM. Resumo. Serviços que executam passos de um fluxo podem ser orquestrados a fim de expor a execução de um processo. A orquestração de serviços é disponibilizada como um novo serviço, encapsulando toda a lógica de execução do encadeamento dos serviços orquestrados. BPEL é a linguagem padrão para orquestração de web services enquanto que Oracle BPEL PM é uma importante ferramenta para elaboração de processos BPEL. Este trabalho apresenta a avaliação da ferramenta Oracle BPEL PM. Palavras-chave: SOA, web services, modelagem, Orquestração de serviços, BPEL, Oracle BPEL PM. * Trabalho patrocinado pela Petrobras. iii

Sumário 1 Introdução 5 2 BPEL Process Manager 6 2.1 Arquitetura 6 2.2 Disponibilização e teste de processo BPEL 8 2.3 Criação de projeto BPEL 10 2.4 Invocação de serviço 14 2.5 Instalação (Deploy) do processo 17 3 Conclusões 18 4 Trabalhos futuros 18 5 Agradecimentos 20 6 Referências Bibliográficas 20 iv

1 Introdução Colocar web services em funcionamento corresponde a um processo de dois passos. Primeiro publica-se os serviços e então faz-se a composição destes serviços em fluxos de negócio. Publicar um serviço significa colocar uma funcionalidade de uma aplicação ou sistema existente, ou mesmo uma nova funcionalidade, disponível de modo padronizado. Por outro lado, orquestração corresponde à composição de múltiplos serviços em processo de negócio fim-a-fim. Os padrões de web services, tais como WSDL, XML e SOAP têm sido propostos como uma plataforma efetiva e de alta interoperabilidade para publicar serviços. Além disso, frameworks de ligação de grande desempenho têm permitido que empresas acessem sistemas legados e código nativo Java sem necessariamente ter que destrinchá-los em uma interface SOAP. Na composição de serviços, a linguagem BPEL é o padrão de mercado. BPEL (Business Process Execution Language) é um padrão para composição de serviços síncronos e assíncronos em fluxos de processos colaborativos e transacionais. Este relatório tem o objetivo de descrever a inspeção realizada sobre a ferramenta Oracle BPEL Process Manager, apresentando os principais conceitos relacionados à ferramenta. O Oracle BPEL Process Manager facilita o desenvolvimento de aplicações baseadas em SOA pela composição de serviços síncronos e assíncronos em fluxo de processo BPEL. BPEL se beneficia dos mais de 15 anos de pesquisa realizadas em suas linguagens predecessoras (XLANG e WSFL): Web services/wsdl como modelo de componentes XML como modelo de dados (baixo acoplamento de dados) Padrões de troca de mensagens síncrona e assíncrona Coordenação de fluxo determinístico e não determinístico Gerência de exceção hierárquica Unidades de longa duração de trabalho/compensação A especificação BPEL foi submetida em 2003 pela OASIS e tem o apoio dos principais fornecedores de software (tais como Oracle, Microsoft, IBM, SAP, Siebel, BEA e Sun). Segundo seu fornecedor, supostamente a ferramenta Oracle BPEL Process Manager provê uma solução confiável e de fácil uso pelo desenvolvedor para desenhar, disponibilizar e gerenciar processos de negócio BPEL. O objetivo deste relatório é apresentar as principais características do Oracle BPEL PM. Esse relatório está organizado em 6 capítulos, sendo o capítulo 1 a presente introdução. No capítulo 2 são apresentadas as características da ferramenta Oracle BPEL Process Manager além de questões a serem avaliadas na comparação entre o Oracle BPEL PM e o ARIS for SOA. Nos capítulos 3 e 4 são apresentadas nossas conclusões e propostas de trabalhos futuros, respectivamente. RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 5

Nos capítulos 5 e 6, são apresentados os agradecimentos àqueles que muito contribuíram para a realização deste trabalho e são listadas as referências bibliográficas. 2 BPEL Process Manager 2.1 Arquitetura A arquitetura do BPEL Process Manager é apresentada na Figura 1 [QuickStartTutorial, 2009]: O BPEL designer é a ferramenta gráfica para elaboração dos processos BPEL. Core BPEL Engine provê a implementação de um servidor BPEL. Dehydrate Oracle DB corresponde a um SGBD Oracle simplificado (Oracle Lite Database) responsável por armazenar o estado de processos de longa duração. O built-in integration services disponibiliza recursos avançados de conectividade e transformação. Estes recursos incluem suporte para transformações XSLT e XQuery bem como bindings para sistemas legado através de adaptadores JCA e protocolos nativos. O framework extensível WSDL binding (DOS WSIF 1 - Web Services Invocation Framework) permite conectividade a outros protocolos e formatos de mensagens diferentes de SOAP (JMS, email, JCA, HTTP GET e POST). O WSIF permite ligar de forma direta e transparente a qualquer protocolo backend ou construto de programação. BPEL Console provê a interface para gestão (por exemplo, monitoramento visual da execução de um processo BPEL, auditoria), administração e depuração de processos disponibilizados no servidor BPEL. 1 http://ws.apache.org/wsif/ e http://ws.apache.org/wsif/overview.html RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 6

Figura 1 - Arquitetura do Oracle BPEL PM O Designer anteriormente era disponibilizado como um plug-in do Eclipse [QuickStartTutorial, 2006], agora ele é disponibilizado no JDeveloper [QuickStartTutorial, 2009] e provê wizards para elaborar workflow complexos e interface para definir transformações. O Oracle BPEL Process Manager pode ser executado em servidor de aplicação J2EE bem como em um servidor de aplicação Oracle, Oracle WebLogic, IBM WebSphere ou no servidor de aplicação JBoss. WSIF permite que desenvolvedores interajam com representações abstratas de web services através de suas descrições WSDL ao invés de trabalharem diretamente com APIs SOAP (Simple Object Access Protocol), as quais usualmente são o modelo de programação. Na especificação WSDL, descrições de binding de web services são extensões da especificação. Dessa forma, um binding SOA, por exemplo, é uma maneira de expor a funcionalidade abstrata. Dado que WSIF espelha WSDL, ele também vê SOAP como apenas uma das várias maneiras que pode ser utilizada para expor funcionalidades de software. Portanto, WSDL torna-se uma descrição normalizada de software, e WSIF é um modelo de programação para o cliente. A API WSIF permite clientes invocarem serviços focando na descrição abstrata do serviço a parte do WSDL que cobre port types, operações e troca de mensagens - sem se referir a protocolos reais. A invocação de abstrações funciona porque elas são suportadas por pedaços de protocolo específicos de código chamados de provedores. Um provedor é aquele que conduz a troca de mensagem real de acordo com as especificidades de um protocolo particular, por exemplo, o provedor SOAP que é empacotado com o WSIF usa uma engine SOA específica como Axis para fazer o trabalho real. RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 7

Usando WSIF, WSDL pode tornar-se a parte central para um framework de integração acessando software executando em diversas plataformas e usando uma grande variedade de protocolos. A única precondição é que é necessário descrever o software usando WSDL, e incluir em sua descrição uma ligação (binding) para o qual o framework WSIF do cliente tenha um provedor. WSIF define e é disponibilizado com provedores para protocolo Java local, EJB, JMS e JCA. Dessa forma, pode-se definir um serviço EJB ou JMS acessível diretamente com binding WSDL e acessá-lo transparentemente usando WSIF, usando a mesma API que se utilizaria para um serviço SOAP ou para uma classe Java local. Portanto, através da API WSIF, o Oracle BPEL PM permite não só orquestrar web services XML, mas também componentes Java/J2EE, portais, interfaces JCA e destinações JMS. O instalador do Oracle BPEL PM 2 corresponde à instalação do próprio Oracle BPEL PM, JDeveloper BPEL Designer, instância stand-alone do Oracle Containers for Java (OC4J), Oracle Lite Database, servidor J2EE e o conjunto de aplicações SOA, incluindo BPEL, ESB e OWSM (Oracle Web Services Manager). As seções a seguir descrevem as principais características da ferramenta de acordo com o que é apresentado em [QuickStartTutorial, 2009]. Contudo, caso deseje uma visão geral das funcionalidades existentes no Oracle BPEL PM, uma boa referência é o BPEL 101 Tutorial (http://www.oracle.com/technology/products/ias/bpel/htdocs/pdf/orabpelbpel101.pdf). 2.2 Disponibilização e teste de processo BPEL Para um serviço ser utilizado, é necessário compilá-lo e instalá-lo (deploy) no servidor BPEL. Isto pode ser feito utilizando a interface do BPEL Designer ou linha comando através de uma task Ant. Para testar um processo BPEL, utilizar o BPEL Console (http://localhost:9700/bpelconsole) (Figura 2). O usuário e senha default são bpeladmin e welcome1, respectivamente. A Figura 3 apresenta a página de testes de um processo disponibilizado no tutorial (processo BPEL CreditRatingService) que tem um parâmetro de entrada payload. Observe que é possível gerenciar o processo, obter o descritor do processo (WSDL do processo), ter acesso à localização do WSDL do processo, incluir sensores para monitoramento do processo, ver o conteúdo do arquivo BPEL correspondente ao processo, especificar conjunto de testes para o processo e emitir relatórios. Após realizar o teste (Figura 4), pode-se ter acesso ao: Fluxo em execução (ou já executado se o processo tiver terminado) (opção Fluxo visual ); Detalhamento textual para auditoria em maiores detalhes (opção Instância de auditoria ), onde pode-se ver mensagens XML transmitidos/recebidos como parte de toda a interação; Depuração em relação ao código BPEL (opção Depurar instância ), podendo visualizar o conteúdo de variáveis 2 http://otn.oracle.com/bpel RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 8

Figura 2 BPEL Console Figura 3 Página de teste do processo BPEL CreditRatingService RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 9

Figura 4 Teste do processo BPEL CreditRatingService 2.3 Criação de projeto BPEL Um projeto BPEL é criado no JDeveloper como um projeto dentro de uma aplicação. A Figura 5 apresenta tela de criação de aplicação. A aplicação deve ser criada sem definir um projeto. Este será definido posteriormente. Ao criar novo projeto na aplicação, escolher BPEL Process Project. O Wizard para criação de projeto BPEL será exibido (Figura 6). Neste momento um esqueleto do projeto é criado com: Código fonte BPEL; Interface WSDL do processo BPEL; Descritor de publicação do BPEL; e, Script Ant para compilar e publicar o processo BPEL. Ao criar um projeto BPEL, pode-se informar se ele será síncrono ou assíncrono (Figura 6). De acordo com o tipo de processo escolhido, elementos essenciais são criados. Por exemplo, na Figura 7, são apresentadas as atividades de receive (cujo nome é receiveinput ) e invoke (cujo nome é callbackclient ). No caso do exemplo da Figura 7, pelo fato do processo ser assíncrono, foi criada uma atividade invoke para invocar o cliente em um fluxo callback. A ferramenta também gera código correspondente ao código BPEL. Na aba Diagram visualiza-se o diagrama correspondente ao código BPEL e, na aba Source, o código correspondente ao diagrama (Figura 7). A cada elemento inserido no diagrama, o código é atualizado e pode-se verificar o que foi alterado olhado diretamente o código BPEL (na aba Source ). Arrastando elementos do painel à direita (Figura 7), edita-se o diagrama BPEL e consequentemente o código BPEL. Por exemplo, movendo-se uma atividade de escopo entre as atividades receiveinput e callbackclient cria-se um escopo BPEL (Figura 8) e pode-se adicionar atividades no escopo expandido o mesmo (Figura 9). Também é gerado código para o WSDL o qual descreve a interface para invocação do processo BPEL. Os arquivos correspondentes ao código BPEL e ao WSDL, no exemplo, são os arquivos CreditFlow.BPEL e CreditFlow.wsdl (Figura 10). Observe que um diagrama também é gerado para o código WSDL (painel da direita da Figura 10). Inicialmente foram gerados: RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 10

Elemento de tipo complexo para mensagem de entrada e para mensagem de saída; Port Types com mensagem one-way para iniciar o processo assíncrono e para invocar o cliente (callback) ao término do processo; PartnerLinkType com as roles para provedor do serviço e requisitante. Os tipos de dados utilizados no processo são especificados em um arquivo XSD ( CreditFlow.xsd, no caso deste exemplo), como apresentado na Figura 11. Observe que o conteúdo do arquivo pode ser visualizado em um diagrama o qual pode ser editado alterando os elementos de dados, ou alterando o código fonte (aba Source ). Ou seja, existe ferramenta para edição de XML Schema. Figura 5 Criação de aplicação no JDeveloper RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 11

Figura 6 Criação de projeto BPEL Figura 7 Projeto BPEL criado RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 12

Figura 8 Criação de uma escopo (a) (b) Figura 9 Inclusão de atividades em um escopo: (a) atividade de escopo; (b) atividade de escopo expandida. Figura 10 Arquivos gerados (painel da esquerda) e desenho do WSDL (painel da RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 13

direita). Figura 11 Arquivo de elementos de dados 2.4 Invocação de serviço De forma semelhante a que ocorre no ARIS for SOA, os passos para invocar um serviço no Oracle BPEL PM são: Criar um PartnerLink. PartnerLinks representam serviços que processos BPEL podem chamar ou interagir. Existe um wizard para criação do PartnerLink que exibe todos os serviços que foram publicados no servidor Oracle BPEL. Para criar um PartnerLink para um serviço que será invocado, clicar na swinlane da direita e na opção Create Partner Link (Figura 12). Deve ser definir o nome do PartnerLink e o serviço a ser invocado, o qual pode ser pesquisado utilizando os botões acima do campo WSDL File ou pode-se informar a URL do serviço, se já souber a mesma. Durante os testes a consulta do serviço (Service Explorer) não funcionou corretamente. No entanto, não houve erro ao informar a URL do WSDL para obter o serviço correspondente. Definir o papel (role) do provedor do serviço e, se for um processo assíncrono, também papel (role) do cliente (Figura 12). Ou seja, qual papel do provedor será usado para invocar o método do provedor e qual papel o cliente utilizará para receber a mensagem de resposta do provedor de forma assíncrona. No caso de processos BPEL assíncronos tipicamente existem duas roles para a interface do cliente: uma para o próprio fluxo BPEL, a qual vai expor a operação de entrada, e uma para o cliente, o qual será chamado de volta de forma assíncrona (fluxo callback). No caso do exemplo, como estamos criando uma chamada síncrona para um serviço, basta definir o Partner Role: Associar uma atividade invoke ao partnerlink criado (Figura 13). Escolher a operação a ser chamada. Especificar variáveis de entrada e variáveis de saída que representam as variáveis passada e recebida do serviço chamado (Figura 14). Pode-se criar novas variáveis ou utilizar variáveis existentes. Para o caso de se ter criado novas variáveis, é necessário incluir no diagrama atividades assign com o RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 14

intuito de realizar as transformações necessárias para copias os dados do processo para as variáveis que serão utilizadas na invocação do serviço. Criar atividade assign para inicializar a variável que está sendo passada para o serviço, utilizando, por exemplo, XPath. Um duplo clique sobre a atividade de assign abre o editor para criar operação de cópia (Figura 15). Dependendo da opção escolhida, abre-se o editor de XPath (Figura 16). Existe um Wizard para especificar o código XPath, o que não existe no ARIS for SOA. Criar atividade assign para receber o resultado da invocação do serviço e atribuir à variável seguinte do processo. Figura 12 Criação de PartnerLink e definição de roles Figura 13 Associação de atividade invoke a um partnerlink RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 15

Figura 14 Especificação de variável de entrada e saída Figura 15 Wizard para criar operação de cópia RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 16

Figura 16 Editor para XPath 2.5 Instalação (Deploy) do processo Para instalar o serviço no BPEL PM ou em um ESB basta clicar com o botão direito no projeto BPEL, em seguida Deploy e depois BPEL Process Deployer. Em seguida, é necessário especificar a conexão com o servidor de integração (Figura 17). Se for uma nova conexão, a opção New exibe um Wizard para defini-la. RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 17

Figura 17 Especificação da conexão com servidor de integração 3 Conclusões Este relatório apresentou os principais conceitos da ferramenta Oracle BPEL Process Manager. Uma visão geral da arquitetura e principais funcionalidades foram apresentadas, tais como instalação e teste de processo BPEL, desenho de processo BPEL assíncrono, criação de atividade de escopo, criação de partner link, criação de atividade invoke, criação de atividade assign. Estas funcionalidades foram avaliadas na prática, utilizando o Oracle BPEL PM versão 10.1.3.1.0, seguindo o [QuickStartTutorial, 2009]. O diagrama BPEL testado foi elaborado no Oracle JDeveloper, mais especificamente na versão 10.1.3.4.0.4270. A ferramenta demonstrou ser de fácil uso, sendo relativamente simples criar um projeto BPEL e publicá-lo. 4 Trabalhos futuros Os testes realizados contemplaram um exemplo simples, mas que foi capaz de evidenciar as funcionalidades mais relevantes para o escopo do projeto. No entanto, caso deseje-se realizar testes mais aprofundados sugerimos: Verificar se a consulta de serviços para definição do PartnerLink para um serviço oferecem recursos de escalabilidade (quando o número de serviços se torna muito grande). Configurar a ferramenta para instalar o processo no servidor BPEL diretamente do JDeveloper. Os testes foram realizados utilizando a task Ant obant, a qual é em linha de comando, sendo mais simples publicar o processo diretamente do JDeveloper. Testar a invocação de um processo BPEL usando SOAP ou Java. Um exemplo é apresentado em [Tutorial 7, 2009]. RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 18

Elaborar um processo mais complexo envolvendo outros tipos de atividades além de tratamento de exceção e falhas e compensação das mesmas. Elaborar expressões para transformações de dados complexas e avaliar quanto a ferramenta auxilia na elaboração das mesmas. Exemplos de manipulações que podem ser avaliadas podem ser encontradas em [Tutorial 3, 2009]. Elaborar um processo de longa duração e testar o armazenamento da sessão no banco de dados, bem como recuperação da sessão e continuação da execução do processo. Um exemplo pode ser encontrado em [Tutorial 6, 2009]. Além disso, [Panda e Maheshwari, 2008] apresentam um conjunto de funcionalidades relacionadas à gestão de processos BPEL que também devem ser analisadas em maiores detalhes: Governança em tempo de execução e ferramenta para publicação do processo: o Avaliar funcionalidades para transição do processo BPEL do ambiente de teste para ambiente de produção; o Verificar o que está disponível para instalação do processo BPEL em engines BPEL adicionais a fim de obter escalabilidade e disponibilidade do sistema; o Verificar a capacidade de automatização do passo-a-passo de publicação do processo BPEL através da elaboração de scripts. Gerência de versões dos processos BPEL: a fim de rastrear mudanças entre diferentes versões de processo BPEL ou retornar o processo a uma versão anterior, além da gerência de versão dos artefatos relacionados ao processo BPEL, tais como WSDL e XML Schema. Monitoramento do processo BPEL e partner links, a fim de atender nível de acordo de serviço (Service-Level Agreement): a fim de verificar desempenho e funcionamento dos partner links que o processo BPEL depende, identificando problemas e maneiras de resolvê-los. Além disso, verificar qual é a capacidade para desenvolvimento e automatização de testes, por exemplo, para verificar disponibilidade e desempenho dos partner links. Pode-se utilizar uma ferramenta específica para isto como, por exemplo, o soapui (http://soapui.org). Monitoramento do processo BPEL na perspectiva do usuário final: isto pode ser realizado através da disponibilização de agentes executando na máquina do usuário ou utilizar funcionalidades disponibilizadas pela ferramenta. Monitoramento de erros e falhas. Monitoramento de cluster de engines BPEL quando mais de um servidor está sendo utilizado para publicar o processo. Monitoramento do engine BPEL: além do status da engine, é importante ter acesso dados estatísticos sobre memória, processamento de CPU, instâncias abertas e fechadas, latência de processos síncronos e assíncronos, e fatores de carga. Além disso, o administrador da ferramenta BPEL deve ser capaz de realizar as seguintes operações, a princípio de forma automatizada através da criação de scripts: o Armazenar informações sobre processos BPEL concluídos; RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 19

o Remover do banco de dados todas as mensagens XML que foram resolvidas e entregues com sucesso; o Apagar instâncias que não têm mais interesse de execução; o Re-executar processos que falharam. Garantia de que a base de dados utilizada para armazenamento de sessões de longa duração (dehydration store) está disponível e com desempenho adequado. Monitoramento de adaptadores. Gerência do servidor de aplicação: a fim de garantir desempenho do servidor de aplicação, bem como de recursos relacionados, por exemplo: fonte de dados JDBC, provedores JMS, conectores JCA, e bibliotecas compartilhadas. Geração de dados estatísticos de monitoramento alinhados com os processos de negócio: deve-se ter uma visão dos fluxos dos processos de negócio que esteja alinhada com os fluxos disponibilizados no servidor BPEL, o que pode ser alcançado com uma ferramenta de gestão BPEL. 5 Agradecimentos Este trabalho não seria possível sem a contribuição de pesquisadores em Sistemas de Informação e da parceria com a Petrobras, principalmente a área TIC/TIC- E&P/GDIEP. Em especial, agradecemos aos professores e alunos que colaboraram nas discussões e desenvolvimento de pesquisas, testes e desenvolvimentos necessários ao projeto. Dentre os agradecimentos à academia, se destaca o papel dos profissionais do NP2Tec 3 que contribuíram, técnica ou administrativamente, para o sucesso de nossas atividades. A condução e os resultados deste trabalho são uma exemplar evidência de como a relação entre as universidades e as empresas pode contribuir para a geração de conhecimento útil e, desta forma, contribuir para nossa sociedade. 6 Referências Bibliográficas Panda, D., Maheshwari, A., Managing Complexity Within a BPEL Environment, SOA Word Magazine, 2008. Disponível em http://soa.sys-con.com/node/744119?page=0,1. Acesso em 23 maio 2009. QuickStartTutorial, Oracle BPEL Process Manager 10.1.2.0.x Quick Start Tutorial, 2009. Disponível em http://download.oracle.com/otndocs/products/bpel/quickstart.pdf. Acesso em 7 fev. 2009. QuickStartTutorial, Oracle BPEL Process Manager 10.1.2.0.x Quick Start Tutorial, 2006. Disponível em http://www.oracle.com/technology/products/ias/bpel/htdocs/pdf/orabpel- QuickStart.pdf. Acesso em 7 fev. 2009. 3 Site do NP2Tec: http://www.uniriotec.br/~np2tec RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 20

Tutorial 3, BPEL Tutorial - Tutorial 3: Manipulating XML Documents in BPEL, disponível em http://www.oracle.com/technology/products/ias/bpel/htdocs/pdf/orabpel- Tutorial3-DataManipulationTutorial.pdf. Acesso em 24 maio 2009. Tutorial 6, BPEL Tutorial - Tutorial 6: Working with the TaskManager Service, disponível em http://www.oracle.com/technology/products/ias/bpel/htdocs/pdf/orabpel- Tutorial6-TaskManagerServiceTutorial.pdf. Acesso em 24 maio 2009. Tutorial 7, BPEL Tutorial - Tutorial 7: Invoking BPEL Processes through SOAP and Java, disponível em http://www.oracle.com/technology/products/ias/bpel/htdocs/pdf/orabpel- Tutorial7-InvokingBPELProcesses.pdf. Acesso em 24 maio 2009. RelaTe-DIA: Inspeção da Ferramenta Oracle BPEL PM 21