Processos redesenhados

Documentos relacionados
Manual do Visualizador NF e KEY BEST

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Sistemas Distribuídos

Lógica de Programação

Noções de. Microsoft SQL Server. Microsoft SQL Server

Novidades no Q-flow 3.02

3 SCS: Sistema de Componentes de Software

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Manual de Utilização do Zimbra

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

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

GUIA BÁSICO DA SALA VIRTUAL

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Web Services. Autor: Rômulo Rosa Furtado

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

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

GUIA PRÁTICO DE INSTALAÇÃO

Aplicação Prática de Lua para Web

Página 1 MANUAL DE UTILIZAÇÃO DA FERRAMENTA OFFICE ONLINE WORD ONLINE EXCEL ONLINE POWER POINT ONLINE

Desenvolvendo Websites com PHP

Atualizaça o do Maker

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Manual Administrador - Mídia System

BEM-VINDO AO dhl PROVIEW

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

4 O Workflow e a Máquina de Regras

Engenharia de Software III

Curso de Informática Básica

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

2 de maio de Remote Scan

Ajuda das opções Fiery 1.3 (cliente)

Manual Captura S_Line

Pesquisa e organização de informação

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Processo de Envio de

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Procedimentos para Reinstalação do Sisloc

Guia Sphinx: instalação, reposição e renovação

MANUAL DE UTILIZAÇÃO

ISO/IEC 12207: Gerência de Configuração

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

PROVA DE NOÇÕES DE MICROINFORMÁTICA

UNIVERSIDADE. Sistemas Distribuídos

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Gestão inteligente de documentos eletrônicos

Orientação a Objetos

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

Parte I. Demoiselle Mail

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

American Work Guia de Primeiros Passos

Manual Integra S_Line

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

TCEnet. Manual Técnico. Responsável Operacional das Entidades

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Ajuda das opções Fiery 1.3 (servidor)

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

NetEye Guia de Instalação

ÍNDICE. 16/06/ :48 Leite Júnior

Manual do usuário. Softcall Java. versão 1.0.5

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal.

Guia de instalação do Sugar CRM versão open source no Microsoft Windows XP

Sistema de Controle de Solicitação de Desenvolvimento

Manual de Instalação do Agente Citsmart

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Sistemas Operacionais

Gravando uma Áudio Conferência

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Instalação e utilização do Document Distributor

Programação para Internet Orientada a Objetos com PHP & MySQL Instalando e configurando um ambiente de ferramentas PHP e MySQL. Prof. MSc.

Manual do Painel Administrativo

Banco de Dados Microsoft Access: Criar tabelas

Manual de Instalação


MULTIACERVO - VERSÃO 17.*

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Módulo e-rede OSCommerce v1.0. Manual de. Instalação do Módulo. estamos todos ligados

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Manual do usuário Sistema de Ordem de Serviço HMV/OS 5.0

Extensão ez Open Document Format (ezodf) Documentação. versão 2.0. experts em Gestão de Conteúdo

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Instalando e usando o Document Distributor 1

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Transcrição:

Otimização do fluxo de trabalho PROGRAMAÇÃO Processos redesenhados Construa ferramentas para gerenciamento do fluxo de trabalho com BPEL. por Michael Kleinhenz jose luis navarro sxc.hu Um funcionário em uma viagem de negócios envia um email com as datas e o lugar de uma central de serviço; alguém do escritório copia esses detalhes em vários portais online de reservas e emite um memorando de confirmação. O funcionário volta da viagem e insere mais uma vez os mesmos dados solicitando reembolso. Algum funcionário mais esperto poderia usar scripts para automatizar esse processo, removendo, assim, a necessidade de inserir informações redundantes, porém, o que aconteceria se a empresa modificasse o processo? Alguém se habilitaria a reescrever todos os scripts customizados? Os desenvolvedores geralmente precisam de modos para modificar processos de negócios sem reinventar a infraestrutura existente. Os processos são a interface entre os departamentos de produção e o de TI. Ao mesmo tempo, desenvolvedores e administradores precisam monitorar todo o sistema e seus processos internos um desafio para arquitetos e designers. O propósito do gerenciamento de sistemas de fluxo de trabalho (WFMS Workflow Management Systems) é modelar operações independentemente de sua implementação. A ideia é fornecer aos usuários as ferramentas básicas para mapear procedimentos de funções de negócios, tais como email, transações de cartões de crédito ou sistemas inventariais sem a necessidade de programas antigos. O XML se presta muito bem a esse tipo de tarefa, mas, devido à dificuldade em editar um arquivo XML somente com um editor, várias ferramentas gráficas estão disponíveis para esse trabalho. O WFMS lê a definição do processo codificada no XML e se refere a ela para coordenar e verificar a instância tangível do processo moldado. Mecanismos de fluxo de trabalho oferecem meios para tratar da cadeia de atividades e sua sequência. Para integrar serviços individuais, a maioria dos mecanismos usa SOA (Arquitetura Orientada a Serviço), uma descrição de função baseada em XML. A SOA permite que a empresa una componentes de diferentes grupos. Por exemplo, é possível empregar sistemas SAP ao departamento Contabilidade e ainda usar um componente próprio baseado em JEE ou Dotnet da Engenharia. Se todos os aplicativos possuírem interfaces SOA, o WFMS pode unir suas funções entre aplicativos e controlar fluxos de trabalho entre os componentes. Serviços web individuais são como instrumentos de uma orquestra: o fluxo de trabalho direciona e integra partes individuais para criar um todo harmônico. Peritos nesse campo referem-se a isso como programação global. O BPEL (Business Process Execution Language ou Linguagem de Execução de Processos de Negócios) é um padrão para o gerenciamento de fluxo de trabalho SOA. IBM, BEA, Microsoft, SAP e outras adotaram o padrão BPEL OASIS, que está agora na versão 2.0 [1]. O BPEL usa documentos XML para descrever processos e depende dos padrões WSDL e SOAP de serviços web. 72 http://www.linuxmagazine.com.br

BPEL PROGRAMAÇÃO Instalar o BPEL O ambiente run-time do ActiveBPEL (quadro 1) vem na forma de um servlet Java e precisa de um servlet container e do JRE 1.5 ou mais recente. O software inclui um script para o Tomcat 5.5, o que simplifica a instalação. Os administradores podem baixar a distribuição do Core do Tomcat [2] e descompactá-la em um diretório de sua escolha. Além disso, é preciso descompactar o ActiveBPEL [3] Community Edition Engine no mesmo diretório e configurar CATA LINA_HOME para o caminho do Tomcat, como mostra o seguinte código: export CATALINA_HOME=$(pwd) /apachetomcat cd activebpel5.0.2./install.sh Depois de ir para o diretório do mecanismo do BPEL e iniciar a instalação, é preciso esperar que o servidor Tomcat inicie: Quadro 1: ActiveBPEL O ActiveBPEL implementa a versão 2.0 do padrão BPEL. O mecanismo possui licença GPLv2. Como um aplicativo web JEE, o BPEL coopera com um servidor como o Apache Tomcat. O editor visual dos processos do BPEL, conhecido como Designer, e é um aplicativo Eclipse RCP. Uma versão gratuita de 30 dias está disponível. É possível obter a licença para o teste, que será enviada pelo fabricante por email, na página de download [5]. Os desenvolvedores podem usar outros designers com o mecanismo ActiveBPEL. Por exemplo, a Eclipse Foundation desenvolveu seu próprio editor, o Active Endpoints, que oferece designers para Windows e Linux como um plugin do Eclipse. O plugin suporta verificação de erros de processos em combinação com o mecanismo, permite que os programadores determinem breakpoints, verifiquem o código e simulem execução de processos. Os processos podem ser distribuídos através de um diretório no disco ou um serviço web. Os desenvolvedores mantêm um fórum online ou suporte comercial para os usuários finais, e o suporte comercial de terceiros também está disponível. Então usa uma das ferramentas de edição para criar um ambiente BPEL isto é, para formular um plano na linguagem de descrição formal. O ambiente Eclipse, por exemplo, oferece paletas de ação de programas BPEL que suportam processos baseados no uso do mouse (figura 1). O BPEL modela um processo como uma seqüência de etapas ou atividades de processamento. Essas atividades são normalmente fornecidas diretamente por serviços web como elementos invocados, ou estão disponíveis como variáveis manipuláveis. Os desenvolvedores podem organizar as atividades individuais como nós em um gráfico. Cada nó contém exatamente um elemento de controle por exemplo, condições cd../apachetomcat/bin./startup.sh O Tomcat normalmente oferece uma interface administrativa na porta 8080. Para isso, ele executa um navegador com http://localhost:8080/ BpelAdmin/. Na configuração padrão, o software utiliza um banco de dados na memória que não salva nenhum dado quando é fechado. A interface de serviço web e um designer adicional possibilitam integrar os processos. Detalhes da configuração e alguns tutoriais estão disponíveis na web [4]. Projetar modelos de processos O designer do processo inicia com um esboço do fluxo de trabalho de forma não técnica, como cadeias de processos de eventos e rascunhos. Figura 1 Em vez de editar manualmente o código XML, o Designer BPEL permite que os usuários modelem os processos com o recurso arrastar e soltar. Linux Magazine #70 Setembro de 2010 73

PROGRAMAÇÃO BPEL Quadro 2: Integrar fluxos de trabalho com estruturas Para integrar um componente de fluxo de trabalho com uma infraestrutura já existente, os arquitetos geralmente empregam um sistema de gerenciamento de lista de trabalho além do mecanismo central (figura 2). Quando um processo BPEL atribui uma tarefa a um funcionário específico, ele chama um serviço web. O serviço web envia a tarefa para o gerenciador de lista de trabalho, que aceita a busca e a adiciona à lista de tarefas do funcionário. Quando o funcionário completar a tarefa, o gerenciador de lista de trabalho envia uma mensagem dizendo que ela está completa ao mecanismo BPEL. Sistemas desse tipo estão geralmente ligados a grupos ou a um gerenciador web; outros sistemas usam email. que desencadeiam outras atividades ou fluxos que executam outras atividades em paralelo. Elementos como sequências ou loops também gerenciam o fluxo de controle. Quando armazenadas em um documento XML, essas estruturas representam uma definição de processo BPEL. A definição também contém meta informação e descrição de interface. O designer formula a definição em WSDL e como elementos PartnerLinks. Esses elementos criam uma camada de abstração entre as atividades invoke abaixo de um processo por um lado, e serviços web tangíveis por outro. O BPEL usa o esquema padrão do XML para passar valores; as variáveis podem, então, aceitar estruturas complexas. Manipuladores de falhas detectam erros de execução do processo e responde, digamos, derrubando a conexão do banco de dados. Em contraste, manipuladores de eventos oferecem serviços adicionais além da lógica normal do processo. Controle de sequências O padrão que o planejador usa para organizar sequências é, na verdade, o processo. Apenas quando em um ambiente run-time, o mecanismo BPEL analisa essa descrição e as instâncias do processo são criadas. Figura 2 O mecanismo BPEL executa atividades individuais em uma sequência fornecida por usuários. Cada instância possui seus próprios estados. A instância une sistemas de TI individuais com os empregados envolvidos (quadro 2). Os envolvidos recebem suas próprias conexões de serviços web: para que isso aconteça, o mecanismo envia um email ao funcionário ou adiciona uma tarefa ao grupo da empresa. Processos de negócios podem levar dias, dependendo do aplicativo. Métodos mais antigos, tais como reduzir um banco de dados SQL não conseguem garantir totalmente a integridade dos dados nesse tipo de ambiente: por exemplo, é impossível que o remetente se lembre de uma carta que enviou. Em vez disso, sistemas de fluxo de trabalho dependem de compensação, como uma segunda carta que cancela a reserva de um hotel. A compensação é definida como um processo separado em um contexto BPEL; os desenvolvedores podem usar todas as opções de design do BPEL dentro da compensação. Falante Outro problema acontece com processos longos: a típica abordagem requisição/resposta do HTTPé insuficiente quando a resposta demora muito a chegar. O tempo de uma requisição a um serviço sincronizado como esse se esgotaria antes que o serviço web pudesse responder. Por essa razão, o BPEL define técnicas para comunicações web assíncronas entre o cliente e o servidor. O cliente interrompe a conexão quando uma confirmação de recebimento chega a ele. A requisição usa um cabeçalho replyto (responder à) para definir a URL para a resposta. Quando a tarefa estiver completa, os dois parceiros trocam de papéis, e o antigo servidor envia a resposta ao endereço especificado para que o mecanismo BPEL nesse endereço possa continuar o processo. Se for impossível 74 http://www.linuxmagazine.com.br

BPEL PROGRAMAÇÃO ao mecanismo do processo aceitar respostas, a tarefa segue para outro componente, como um enterprise service bus. Criar estrutura O mecanismo do processo tem a tarefa de alocar uma mensagem de sucesso a uma instância do processo muito tempo depois da requisição correspondente ter sido emitida, e, em alguns casos, muitas instâncias estão ativas ao mesmo tempo no mecanismo. Por exemplo, algumas instâncias de Aprovar viagem podem estar sendo executadas simultaneamente no mecanismo do processo, pois vários membros da equipe planejam visitar uma feira. Se for impossível adicionar um ID de transação à requisição porque a interface foi definida externamente, o WFMS tenta identificar a instância do processo com referência aos parâmetros. No caso de uma viagem de negócios, o nome e a data da viagem provavelmente seriam suficientes. Atributos comparáveis a chaves primárias são chamados de sets de correlação no BPEL. Os escopos na modelagem são parecidos com blocos de código C++ ou Java. Um escopo ou scope, é uma área com variáveis locais, sequências de processos e manipuladores de falhas que permitem que o desenvolvedor mantenha uma definição de processo enxuta, onde estruturas locais e variáveis locais estão disponíveis apenas no scope local. Um exemplo de entrega modelada com o uso de scopes ajudará a ilustrar: uma empresa cobra uma determinada quantia de um cartão de crédito (subscope invoice), mas não consegue entregar a mercadoria, pois o endereço está errado (subscope delivery). O manipulador de falhas correspondente passa o erro para o scope surrounding, que também possui um manipulador de falhas. Figura 3 Quando uma viagem de negócios é reservada, um serviço web decide qual meio de transporte será usado, após o que, o mecanismo de fluxo de trabalho faz uma reserva de trem ou avião. O manipulador de falhas notifica o funcionário que emitiu a ordem e compensa as atividades após ter feito isso, creditando a quantia na conta do cartão de crédito. A vantagem é que o designer do processo pode atribuir manipuladores de erros e contra-medidas localmente para cada passo. Exemplo: reservar uma viagem de negócios Usando o exemplo da viagem descrito no início deste artigo, posso agora modelar e mais tarde iniciar um processo simples. Quando o servidor do aplicativo e o BPEL forem baixados e instalados, o designer modela parte da reserva da viagem de negócios. Esse exemplo simples funciona sem compensação e chamadas assíncronas. O resultado é uma coleção de arquivos XML que o designer pode juntar em um arquivo e transferir para o mecanismo. A entrada para o processo compreende quatro registros: o nome de usuário de quem vai viajar, o trajeto da viagem, a data e o horário. O processo inicia com a seleção de um meio de transporte. Para que isso aconteça, um serviço web se refere à duração da viagem e à identidade do viajante para decidir se reserva uma passagem de trem ou de avião. Os CEOs e engenheiros podem ter uma prioridade de avião, por exemplo. Após tomar essa decisão, o mecanismo do processo reserva a passagem. Os dados da viagem são então enviados ao funcionário (figura 3). Selecionar e clicar O ActiveBPEL Designer [5] é uma interface gráfica que ajuda a converter os passos individuais da modelagem em arquivos XML. O BPEL separa informações de interface de serviços web. A linguagem usa operações, descrições de parâmetros e links parceiros (representações abs- Linux Magazine #70 Setembro de 2010 75

PROGRAMAÇÃO BPEL tratas de verdadeiros endereços de serviços). O próprio modelo define a estrutura, a sequência e o manipulador de exceção. Seguindo com esse exemplo, os novatos do BPEL podem baixar o ActiveBPEL Designer, descompactálo e iniciá-lo da seguinte maneira:./activevos_designer_unix_6_0_2.sh Quando receber o arquivo de licença por email, não há nada que o impeça de instalá-lo. Se preferir não usar a versão de teste, é possível usar qualquer outro designer BPEL. Um assistente instala a versão completa do mecanismo, permitindo que os usuários testem o mecanismo diretamente do editor. Após a instalação, o usuário pode corrigir o problema de codificação com a versão 6.0.2 para o Linux e recodificar o arquivo: cd./designer/designerrecode ibmpc..latin1 jre/lib/i386/jvm.cfg Digite então./designer para iniciar o designer e aceitar o caminho sugerido para o espaço de trabalho. O fechamento da aba fecha a página inicial. Os usuários do Eclipse logo se sentirão em casa. No espaço de trabalho padrão do designer, é possível selecionar File / New / Orchestration Project para criar um novo projeto. O arquivo WSDL, services.wsdl, descreve todas as interfaces. Primeiramente, armazene o arquivo na árvore do projeto abaixo de wsdl; o mesmo se aplica à descrição do processo BPEL, travelbooking.bpel, abaixo de bpel. O descritor de distribuição contém os detalhes do endereço dos serviços. O importante é que as definições achem umas às outras, se o designer produzir algum erro, é preciso conferir as referências WSDL nos arquivos PDD e BPEL. Tentativa e erro Após criar um processo, é possível testá-lo no simulador. Para isso, execute o processo selecionando Run Figura 4 O designer ajuda a compilar o arquivo do processo de negócio dos vários arquivos de modelagem. O arquivo é executado por um servidor como o Tomcat. / Simulate Process no mecanismo interno. Esse comando configura manualmente dados de parâmetro através da aba Process Variables para simular os valores passados por outro serviço web em uso. Se o processo funcionar como projetado, o usuário do BPEL pode então criar um arquivo de distribuição (figura 4). Esse arquivo BPR é um pacote JAR que contém os arquivos necessários para que o processo seja executado no mecanismo. O arquivo é criado selecionando-se File / Export / Orchestration / Business Process Archive File e escolhendo File como tipo de distribuição. Esse passo escreve o arquivo BPR no disco. Como opção, é possível passar a distribuição diretamente para um mecanismo em execução através de um serviço web. Se preferir trabalhar com o Ant e sem o designer mais tarde, é possível criar um arquivo BPRD. Um descritor de distribuição descreve como uma definição de processo chega até o mecanismo de fluxo de trabalho e configura o que antes eram parâmetros abstratos. Esses detalhes são compilados em travelbooking.pdd. O desenvolvedor precisa agora parar o designer e iniciar o Tomcat com o mecanismo ActiveBPEL. Para apresentar o novo processo ao mecanismo, basta copiar o arquivo BPR para o diretório de destribuição bpr abaixo da instalação do Tomcat. Depois de alguns segundos o servlet container identifica o arquivo. É possível monitorar esse processo em http://localhost:8080/ BpelAdmin/deployment_log_detail.jsp, o log de distribuição da interface de administração. O log lista os processos instalados em Deployed Process. Se um usuário iniciar um processo do tipo travelbooking através de uma requisição SOAP, a interface do administrador mostra seu estado 76 http://www.linuxmagazine.com.br

BPEL PROGRAMAÇÃO e o conteúdo variável em http:// localhost:8080/bpeladmin/active_processes.jsp. O processo de visualização no front end web é similar ao display do designer. Boas conexões Qualquer cliente SOAP pode fazer uma requisição SOAP; o SoapUI é uma boa escolha para testes rápidos [6]. A definição WSDL para travelbooking() pode então ser carregada diretamente com o mecanismo em execução: http://localhost:8080/activebpel/services/travelbookingpartn erlinkservice? wsdl. Se as definições forem importadas dessa maneira e o endereço do serviço HTTP para o mecanismo for configurado, já é possível integrar o projeto com seus aplicativos. Devido as muitas camadas de abstração, o gerenciamento de fluxo de trabalho com o BPEL não é trivial. Várias abordagens à modelagem de processo nos negócios, noções diferentes, variantes permitidas na implementação do padrão, as múltiplas camadas de um SOA e a variedade de produtos de software dificultam uma solução para os arquitetos de sistema. Literatura especializada no assunto encheria uma pequena biblioteca, mas o livro Business Process Execution Language for Web Services [7] oferece uma abordagem pragmática. Nenhum dos exemplos exige o Designer BPEL, pois os autores trabalham diretamente com XML. Muito trabalho para os desenvolvedores A resposta do BPEL à concorrência é oferecer uma abordagem universal. O BPEL é tão universal que consegue dar conta de quase tudo no fluxo de trabalho de negócios. Isso mantém os desenvolvedores à vontade e significa que eles podem suportar diversos métodos de modelagem. Porém, não subestime a complexidade: um WFMS baseado no BPEL exige do desenvolvedor um grande conhecimento da funcionalidade da tecnologia SOA e um sim certeiro para processar tecnologia das divisões dos negócios. Apesar de toda a padronização, o BPEL possui alguns problemas. Por exemplo, o padrão não é muito claro em algumas áreas, ou há brechas que muitos revendedores de mecanismos BPEL exploram com extensões proprietárias. Apesar de exigir a linguagem XPath para a manipulação de variáveis e valores, por exemplo, é possível o uso de extensões como XQuery ou JavaScript. Essa abordagem pode facilitar a modelagem, mas significa que as definições do processo não são inteligíveis para qualquer mecanismo de fluxo de trabalho. Mais informações A linguagem de descrição não funciona bem como uma ferramenta do departamento de marketing ou para a equipe de gerentes que queira definir fluxo de trabalho de negócios por si mesmos. Ao contrário: o designer do processo precisa entender as sutilezas técnicas do fundamento SOA. Habilidades com o SOAP e grande compreensão do padrão WSDL são úteis. A visão de deixar todo o trabalho com o chefe é uma ilusão. Mas a facilidade para o usuário final nunca foi a meta dessa tecnologia: o BPEL é uma plataforma de integração técnica para qualquer tipo de definição de processo de trabalho. Se houver perseverança na criação de uma estrutura com o BPEL, será possível relaxar e ver o fluxo de trabalho conforme seus processos de negócios forem evoluindo. n [1] OASIS, Web Services Business Process Execution Language Version 2.0. http://docs.oasis open.org/wsbpel/2.0/os/wsbpel v2.0 OS.html [2] Apache Tomcat: http://tomcat.apache.org [3] ActiveBPEL, Edição da Comunidade: http://www.activevos.com/community open source.php [4] Documentação e tutoriais do ActiveBPEL: http://www.activevos.com/community educationcenter.php [5] ActiveBPEL Designer: http://www.active endpoints.com/download trial.php [6] Navegador SoapUI: http://www.soapui.org [7] Juric, Matjaz B., Benny Mathew, e Poomachandra Sarang. Business Process Execution Language for Web Services BPEL and BPEL4WS, 2nd ed. Packt, 2006 Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3842 Linux Magazine #70 Setembro de 2010 77