Dev (Back & Front)ARTIGO

Como vamos de BPEL – Parte 02 – ODE

No artigo anterior escrevi um pouco sobre BPEL. Neste, vou continuar no assunto mas falando de uma implementação de BPEL que é o ODE. O Apache ODE é uma implementação open source 100% aderente a WS-BPEL 2.0 e compatível com BPEL4WS 1.1.

OrchestrationDirectorEngine
é uma implementação muito leve de BPEL, não só pelo fato de o ODE rodar
em Apache Tomcat ou Jetty que são soluções leves para Java.

A solução de BPEL da Apache conta com uma brilhante solução de arquitetura chamada de JACOB.
Essa solução compila o BPEL através de um recurso que pode ser
executado em linha de comando para verificar a syntax e a validade do
BPEL produzido – esse recurso se chama bpelc.

Desta forma, a
solução da Apache em tempo de runtime pode executar um processo
totalmente em memória, que faz com que a performance seja muito boa,
ou utilizar a persistência em banco de dados. Por default o ODE usa o
banco de dados Derby mas você pode mudar essa configuração para utilizar outro banco.

Você pode acessar WebService REST com o ODE através de uma extensão,
esse recurso é bom, mas isso mata a portabilidade do BPEL. A Figura abaixo retirada do site da apache ilustra o desenho geral da boa
arquitetura do ODE.


Arquitetura Geral do ODE

Como
você pode perceber, tudo começa com a compilação do BPEL. Depois disso, o
que foi compilado é feito o deploy para o runtime do ODE, esse deploy
pode ser feito de forma automatizada utilizando a linha de comando,
ant, maven ou o console do ODE.

O ODE por dafault roda os
processos de maneira Statefull. Esse statefull é o mesmo statefull
do EJB, mas o ODE não usa EJB para fazer isso, ele mantém os estados e
cuida da tolerância a falhas com adaptadores de acesso a um Banco de
Dados.

No seu cerne está o JACOB que, utilizando as técnicas de Closures
e Canais, consegue ter auto desempenho em paralelismo e nos abstrair
desse tipo de complexidade. O Acesso aos WebService se dá na sua camada
de integração utilizando outro produto da Apache, o Axis2.

Uma Ferramenta para Design de BPEL

O Pessoal do ODE recomenda o uso do BPEL Designer
que é um plugin do eclipse que, apesar de alguns bugs, é funcional. Esse
projeto ainda se encontra na embarcadoura da eclipse. Mas em resumo
você pode usar qualquer editor de XML por que o ODE, como dito antes, é
aderente aos padrões de BPEL.

Você pode fazer o deploy de um
processo apenas zipando o processo junto do seu descritor, que é um
arquivo xml chamado obrigatoriamente de deploy.xml. Como dito no outro
post esse é um ponto que a especificação de WS-BPEL 2.0 não cobre e nos
deixa na mão. Pois falando da solução da ORACLE, esse mesmo arquivo se
chama bpel.xml e tem outra estrutura.

ODE Embarcado?

ODE
é perfeito para ser embarcado com outras aplicações pois ele é muito
leve e tem poucas dependências em termos de jars. Outra forma de usar a
solução é com a integração que ele possui para JBI, dessa forma você
pode usa-lo como solução de orquestração no ESB da Apache, o ServiceMix.

Você
pode usar o ODE em outros servidores, como o Weblogic, Websphere ou até
mesmo o JBOSS com o mínimo de configurações. Se preferir, pode
distribuir o mesmo no Tomcat ou Jetty, isso vai depender da sua
estratégia e preocupação com manutenção e gerência de configuração.

Em
termos de desenvolvimento é interessante deixar o ODE no Jetty, pois com o uso de Maven pode automatizar o processo de deploy e start/stop
do servidor com o ODE.

Está nos planos do pessoal do ODE em realizar uma integração com SCA usando outro projeto da Apache o Tuscany.

No
próximo post pretendo postar “códigos” de exemplo do uso de ODE e com
uma aplicação cliente que inicia o processo do ODE e obtém o resultado
do processo. Nesse exemplo vou usar o BPEL Designer do eclipse para
fazer o BPEL.

Abraços e até a próxima.

é Técnico em Processamento de Dados e graduando em Ciências da Computação(7º sem.) na Ulbra. Já trabalhou com desenvolvimento de software em VB, ASP, .NET e PHP. Atualmente é Arquiteto de Software criando soluções corporativas em Java. Certificado pela SUN com SCJP 5 e SCWD 5. Mantém o blog (diego-pacheco.blogspot.com).

Ver perfil