bpel: construindo um padrão business processo baseado em web services

72
BPEL: Construindo um padrão Business Processo baseado em Web Services

Upload: sybil

Post on 19-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

BPEL: Construindo um padrão Business Processo baseado em Web Services. Agenda. O que é BPEL? Orquestração x Coreografia Vocabulário BPEL Activities Partners Variables Flow, Link, Correlation Escopo BPEL BPEL e Java technology Open issues of BPEL. O que é BPEL?. Web Service 1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL: Construindo um padrãoBusiness Processo baseado em Web Services

Page 2: BPEL: Construindo um padrão Business Processo baseado em Web Services

Agenda

O que é BPEL? Orquestração x Coreografia Vocabulário BPEL

– Activities– Partners– Variables– Flow, Link, Correlation

Escopo BPEL BPEL e Java technology Open issues of BPEL

Page 3: BPEL: Construindo um padrão Business Processo baseado em Web Services

O que é BPEL?

Page 4: BPEL: Construindo um padrão Business Processo baseado em Web Services

Web Services encontra Business Process

Web Service 1

Web Service 2

Web Service 3

Web Service 4

Web Service 5

Web Service n

Page 5: BPEL: Construindo um padrão Business Processo baseado em Web Services

Necessidade de composição de Web Services

Aplicações de negócio têm que interoperar e integrar;

A resposta moderna para o desafio de integração, é a Arquitetura Orientado à Serviço e a tecnologia orientada à serviço.

Diferentes aplicações de negócio expondo suas funcionalidades através de serviços web.

Desenvolver os serviços web e expor as funcionalidades não é suficiente. Necessita-se um meio de compor estas funcionalidade na ordem correta (Business Process)

Page 6: BPEL: Construindo um padrão Business Processo baseado em Web Services

Examplo Problema

ClientPO Service

Credit Service

Inventory Service

Purchase

Order

Credit

Check

ReserveInventory

Credit

Response

InventoryResponse

Invoice

ConsolidateResults

Page 7: BPEL: Construindo um padrão Business Processo baseado em Web Services

Desafio Business Process

Coordenar comunicação assíncrona entre os serviços

Correlacionar troca de mensagens entre as partes

Implementar ativdades de processamento em paralelo

Implementar lógica de compensação (Undo operations)

. . .

Manipulação/transformação de dados entre parceiros de interações

Suporte para atividades de transações de negócios de longa duração

Manipular exceções Necessidade de modelo

universal de troca Necessidade de troca de

mensagem . . .

Page 8: BPEL: Construindo um padrão Business Processo baseado em Web Services

História Recente Business Process Standards

2000/05

XLang(Microsoft)

2001/03

BPML(Intallio et al)

2001/05

WSFL(IBM)

2001/06

BPSS(ebXML)

2002/03

BPEL4WS 1.0 (IBM, Microsoft)

BPEL4WS 1.1(OASIS)

2002/06 2003/01

WS-Choreography(W3C)

2003/04

WSCI(Sun et al)

WSCL(HP)

2002/08

2004/12 WS-CDL

Page 9: BPEL: Construindo um padrão Business Processo baseado em Web Services

O que é BPEL?

Page 10: BPEL: Construindo um padrão Business Processo baseado em Web Services

Serviço Web (WS) Linguagem de Execução de Processos de Negócio (BPEL) • Versão 1.0 liberado ple IBM, Microsoft e BEA ago/02

– WS-Coordination, WS-Transaction

• Versão 1.1 submetido para OASIS abr/03 (http://www.oasis-open.org)

– Organization for the Advancement of Structured Information Standards

• Versão 2.0 aprovado abr/2007 (http://bpel.xml.org/about-bpel)

• Linguagem XML para descrever processos de negócio baseado em serviço WEB.

• Convergência de XLANG (Microsoft) e WSFL (IBM)

• Consenso de Indústria• IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel …

Page 11: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL “Concerta” WSDL

WSDL: conjunto de operações desordenadas• Operação é a troca de mensagens

Necessita de regras para ordenar

Page 12: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL é um Web Service Sequencing Language Processos definem um fluxograma de

“coversação”• Conversação consiste na descrição de troca de

mensagens WSDL.

A instância de um processo é um fluxograma em particular

• Sistema de execução pode suportar múltiplos conversações concorrentes.

Page 13: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL é um linguagem orientada a Gráficos A natureza baseada em XML dos processos XML

permite que a lógica dos processos seja editada por ferramentas visuais.

Nós Atividades (Activity Nodes)• Representa a troca de mensagens, operações

internas, pontos de decisão

Arcos (Arcs)

• Ordem de execução• Restrições em processos concorrentes

Gráfico direto acíclico (Directed acyclic graph)

• Parecido com Java Separa erros e manipulação de compensação

Page 14: BPEL: Construindo um padrão Business Processo baseado em Web Services

Exemplo

Fonte: Collaxa BPEL Designer

Page 15: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL é um Web Service Composition Language Consome serviços (invoke) Cria serviços (receive/reply) Agrega serviços densos (fine-grained services) Cria serviços simples (coarser-grained service)

Page 16: BPEL: Construindo um padrão Business Processo baseado em Web Services

Proposta do WS-BPEL

Processos de negócios portável– Construir uma infraestrutura interoperável de

Serviços Web.

Linguagem abrangente de indústria para os processos de negócio

– Conjunto de habilidades comuns e linguagens para os desenvolvedores

Mecanismo de escolha de processos– Padrões permitem uma oferta competitiva

Page 17: BPEL: Construindo um padrão Business Processo baseado em Web Services

Uso do BPEL

Dentro da Corporação (Intranet) Padronizar integração das aplicações corporativas

e estender a integração de sistemas isolados Entre as corporações (Internet)

Possibilitar integração fácil e eficiente entre os parceiros

Page 18: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Extensão Web Services

BPEL é uma tecnologia chave em ambientes onde as funcionalidades já estão ou serão disponibilizados como serviços web.

Com o aumento do uso de serviços web a importância do BPEL crescerá.

Page 19: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Process como Web Service

Page 20: BPEL: Construindo um padrão Business Processo baseado em Web Services

Orquestração x Coreografia

Page 21: BPEL: Construindo um padrão Business Processo baseado em Web Services

Orquestração x Coreografia

Orquestração É um processo de negócio executável descrevendo um

fluxo do ponto de vista de controle (Workflow) BPEL manipula Orquestração

Coreografia (WSDL) A troca de mensagem pública e observável Regras de interação Agregação entre dois ou mais processos de negócio WSDL manipula coreografia. CDL4WS

Page 22: BPEL: Construindo um padrão Business Processo baseado em Web Services

Exemplo Business Process: Ordem de Compra

Exemplo de Ordem de Compra

Requisição de Ordem de Compra

Reconhecimento da ordem de compra

Resposta de Ordem de Compra

Business

“A”

Business “B”

Page 23: BPEL: Construindo um padrão Business Processo baseado em Web Services

Perspectiva da Coreografia

Requisição da Ordem de Compra

Send PO

Receive PO Ack

Receive PO Response

Receive PO

Send PO Ack

Send PO Response

Reconhecimento da Ordem de Compra

Resposta da Ordem de Compra

Coreografia – Observação pública da troca de mensagem

Public Process

Business A

Business B

Page 24: BPEL: Construindo um padrão Business Processo baseado em Web Services

Perspectiva da Orquestração

Send PO

Receive PO Ack

Receive PO Response

Transform

Transform

From ERP

To ERP

Requisição da ordem de compra

Reconhecimento da ordem de compra

Resposta da ordem de compra

Orquestração – A execução do processo de negócio

Private Process

Business A BPEL Workflow

Page 25: BPEL: Construindo um padrão Business Processo baseado em Web Services

Orquestração e Coreografia Juntas

BusinessB

Business Analyst Tool

BusinessA

Send PO

Receive PO Ack

Receive PO Response

Transform

Transform

Business A BPEL Workflow

PO Request

PO Acknowledgement

PO Response

Generate BPEL

Template

Generate BPEL

Template

Receive PO

Send PO Ack

Receive PO Response

Transform

Transform

Business B BPEL Workflow

Dois fluxo de trabalho (workflow) refletindo um tratado de negócio

Page 26: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL - Padrões

Description

HTTP,IIOP, JMS, SMTP Transport

XMLMessage

SOAP

WSDL

UDDI Discovery

Transactions

CoordinationWS-Security

WS-Reliability

Quality of

Service

Orchestration – WS-BPEL

BusinessProcesses

Context

Description

Man

agem

ent

Choreography

Page 27: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Depende de WSDL e Extensões

Service Implementation

Definition

Service Interface Definition

Service

Port

Binding

Port types define Operations

Message

Type

Page 28: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Vocabulário: Activities

Page 29: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Estrutura do Documento<process> <!– Definition and roles of process participants --> <partnerLinks> ... </partnerLinks> <!- Data/state used within the process --> <variables> ... </variables> <!- Properties that enable conversations --> <correlationSets> ... </correlationSets> <!- Exception handling --> <faultHandlers> ... </faultHandlers> <!- Error recovery – undoing actions --> <compensationHandlers> ... </compensationHandlers> <!- Concurrent events with process itself --> <eventHandlers> ... </eventHandlers> <!- Business process flow --> (activities)*</process>

Page 30: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Activities

Um processo BPEL consiste em: Cada passo é chamado de atividade (activity) Existem 2 tipos de atividades BPEL

Atividades Básicas Atividades Estruturadas

Page 31: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Activities

Basic Activities <invoke> <receive> <reply> <assign> <throw> <wait> <empty>

Structured Activities <sequence> <while> <pick> <flow> <scope> <compensate> <switch> <link>

Page 32: BPEL: Construindo um padrão Business Processo baseado em Web Services

Basic Activities

Invoke Permite que os processos ativem uma operação unidirecional ou

de request/response em um portType oferecido por um parceiro.

Receive Permite que os processos executem um bloqueio de espera

esperando uma mensagem chegar. Pode ser um instanciador de um processo.

Reply Permite que os processos enviem uma mensagem em resposta

a mensagem que é recebido através de um <receive> A combinação de <receive> e um <reply> forma uma operação

request-response em um WSDL portType para o processo.

Page 33: BPEL: Construindo um padrão Business Processo baseado em Web Services

Basic Activities

Assign Pode ser utilizada para atualizar valores de variáveis com

novos valores

Throw Gerar um erro/falta em um processo

Wait Permite esperar por um período ou até passar um tempo

Empty Permite inserir uma operação vazia em um processo. É útil para sincronizar atividades concorrentes.

Page 34: BPEL: Construindo um padrão Business Processo baseado em Web Services

Structured Activities

Sequence Permite definir uma coleção de atividades para serem

executados seqüencialmente em uma ordem léxica.

While Permite indicar que uma atividade seja repetida até que

um critério seja alcançado.

Pick Permite bloquear e esperar uma mensagem chegar ou

disparar um alarme para avisar Quando algum gatilho for ativado, a atividade associada é

executada e o pick completa.

Page 35: BPEL: Construindo um padrão Business Processo baseado em Web Services

Structured Activities

Flow Permite especificar um ou mais atividades para executar

concorrentemente. Ligações podem ser utilizadas em atividades concorrentes para definir estruturas de controles arbitrárias.

Scope Permite definir uma atividade aninhada com uma variável

associada, manipulador de erros, exceções e compensações.

Compensate Utilizada para chamar compensação dentro do escopo que

foi completada normalmente. Esta construção pode ser chamada somente dentro de um

manipulador de exceções ou outro compensation handler

Page 36: BPEL: Construindo um padrão Business Processo baseado em Web Services

Structured Activities

Switch Permite um comportamento condicional em um padrão que

acontece com freqüência. A atividade consiste em uma lista ordenada de um ou mais

condições definida com elementos case, seguido por um otherwise.

While Permite repetir uma interação de activityAllows

Page 37: BPEL: Construindo um padrão Business Processo baseado em Web Services

Basic Activities combinado com Structured Activities

Invoke <InventoryService>

Invoke <CreditService>

Reply <Invoice>

Receive <PO>

<sequence>

<flow>

</sequence>

Page 38: BPEL: Construindo um padrão Business Processo baseado em Web Services

Exemplo Activities in BPEL<sequence> <receive partnerLink=“customer” portType=“lns:purchaseOrderPT" operation=“sendPurchaseOrder” variable=“PO” createInstance="yes" /> <flow> <invoke partnerLink=“inventoryChecker” portType=“lns:inventoryPT” operation="checkINV" inputVariable="inventoryRequest" outputVariable="inventoryResponse" />

<invoke partnerLink="creditChecker" portType=“lns:creditPT" operation="checkCRED" inputVariable="creditRequest" outputVariable="creditResponse" /> </flow> ... <reply partnerLink=“customer” portType=“lns:purchaseOrderPT” operation=“sendPurchaseOrder” variable=“invoice"/></sequence>

Page 39: BPEL: Construindo um padrão Business Processo baseado em Web Services

Wait

<wait standard-attributes>

standard-elements

( <for expressionLanguage="anyURI"?>duration-expr</for> |

<until expressionLanguage="anyURI"?>deadline-expr</until> )

</wait>

Page 40: BPEL: Construindo um padrão Business Processo baseado em Web Services

Switch

<switch standard-attributes>

standard-elements

<case>+

<condition expressionLanguage="anyURI"?>

... bool-expr ...

</condition>

activity

</case>

<otherwise>?

activity

</otherwise>

</switch>

Page 41: BPEL: Construindo um padrão Business Processo baseado em Web Services

While

<while standard-attributes>

standard-elements

<condition expressionLanguage="anyURI"?>

... bool-expr ...

</condition>

activity

</while>

Page 42: BPEL: Construindo um padrão Business Processo baseado em Web Services

Switch

<switch standard-attributes>

standard-elements

<case>+

<condition expressionLanguage="anyURI"?>

... bool-expr ...

</condition>

activity

</case>

<otherwise>?

activity

</otherwise>

</switch>

Page 43: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Vobulário: Partner Links

Page 44: BPEL: Construindo um padrão Business Processo baseado em Web Services

Duas formas para BPEL Process interagir com Web Services externos O processo BPEL chama operações de outros

serviços WEB Representados por um partnerLink

O processo BPEL recebe chamadas de clientes Representados por um cliente partnerLink

Estes clientes de processos BPEL parecem outros serviços web.

Quando se define um processo BPEL define-se um novo serviço web que é uma composição de serviços existentes.

Page 45: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL as a Web Service

Page 46: BPEL: Construindo um padrão Business Processo baseado em Web Services

Exemplo

ClientPO Service

Credit Service

Inventory Service

Purchase

Order

Credit

Check

ReserveInventory

Credit

Response

InventoryResponse

Invoice

Consolidate

Results

Page 47: BPEL: Construindo um padrão Business Processo baseado em Web Services

Partner Links Os serviços com os quais um processo

interage são modelados como um partner link. Cada partner link é caracterizado por um

partnerLinkType As regras do processo é indicado por um

atributo myRole e a regra (ROLE) do parceiro é indicado pelo atributo partnerRole.

CreditService

Partner 2

Inventory

Service

Partner 3

Partner 1(the process)

Purchase

Service

Page 48: BPEL: Construindo um padrão Business Processo baseado em Web Services

Partner Link

<partnerLinks> <partnerLink name="ncname" partnerLinkType="qname" myRole="ncname"? partnerRole="ncname"?>+ </partnerLink></partnerLinks>

Page 49: BPEL: Construindo um padrão Business Processo baseado em Web Services

Partner Link<?xml version="1.0" encoding="utf-8"?><process name="insuranceSelectionProcess" targetNamespace="http://packtpub.com/bpel/example/" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ins="http://packtpub.com/bpel/insurance/" xmlns:com="http://packtpub.com/bpel/company/" >

<partnerLinks> <partnerLink name="client" partnerLinkType="com:selectionLT" myRole="insuranceSelectionService"/>

<partnerLink name="insuranceA" partnerLinkType="ins:insuranceLT" myRole="insuranceRequester" partnerRole="insuranceService"/>

<partnerLink name="insuranceB" partnerLinkType="ins:insuranceLT" myRole="insuranceRequester" partnerRole="insuranceService"/>

</partnerLinks>...

Page 50: BPEL: Construindo um padrão Business Processo baseado em Web Services

Partner Link Type

<partnerLinkType name="BuyerSellerLink"

xmlns="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">

<role name="Buyer" portType="buy:BuyerPortType"/>

<role name="Seller" portType="sell:SellerPortType"/>

</partnerLinkType>

Page 51: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Vocabulary: Variables

Page 52: BPEL: Construindo um padrão Business Processo baseado em Web Services

Variables

Mensagens enviadas e recebidas de parceiros Definido em tipos e mensagens WSDL

CustomerService

Process

<A>

<variable> <activity>

<B>

<activity>

PersistPersist/Retrieve

CustomerService

Persist/Retrieve

Persist/Retrieve

<variable>

Page 53: BPEL: Construindo um padrão Business Processo baseado em Web Services

Variables in BPEL

<variables> <variable name=“PO” messageType=“lns:POMessage”/> <variable name=“Invoice” messageType=“lns:InvMessage”/> <variable name=“POFault” messageType=“lns:orderFaultType”/></variables>

<message name=“POMessage”> <part name=“customerInfo” type=“sns:customerInfo”/> <part name=“purchaseOrder” type=“sns:purchaseOrder”/></message><message name="InvMessage"> <part name=“IVC” type=“sns:Invoice”/></message><message name=“orderFaultType”> <part name=“problemInfo” type=“xsd:string”/></message>

Purchase Process WSDL:

BPEL:

Page 54: BPEL: Construindo um padrão Business Processo baseado em Web Services

Como acontece a manipulação de dados?

Utilizando <assign> e <copy>, os dados podem ser copiados e manipulados entre variáveis;

<copy> suporta consultas Xpath para selecionar um dado.<assign> <copy> <from variable="PO" part="customerInfo"/> <to variable=“creditRequest” part="customerInfo"/> </copy></assign>

Page 55: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL Vocabulary: Flow, Links, Corelation

Page 56: BPEL: Construindo um padrão Business Processo baseado em Web Services

<flow> <links> <link name="XtoY"/> <link name="CtoD"/> </links> <sequence name="X"> <source linkName="XtoY"/> <invoke name="A" .../> <invoke name="B" .../> </sequence> <sequence name"Y"> <target linkName="XtoY"/> <receive name="C"/> <source linkName="CtoD"/> </receive> <invoke name="E" .../> </sequence> <invoke partnerLink="D"> <target linkName="CtoD"/> </invoke></flow>

<flow>

</flow>

<Y>

<C>

<E>

<X>

<A>

<B>

<D>

<link CtoD>

Links – Control Flow

<link XtoY>

Page 57: BPEL: Construindo um padrão Business Processo baseado em Web Services

Correlation / Correlação

Customer

• SendPurchase

• ProcessPurchaseResponse

PO

Correlation:<PO_CustId = 10><PO_OrdId = 100>

POResponse

Correlations:<PO_CustId = 10><PO_OrdId = 100>

<Inv_VendId = 20><Inv_InvId = 200>

Seller

• AsynchPurchase

• AsynchPurchaseResponse

initiate=yes

initiate=yes pattern=out

initiate=no pattern=out

initiate=yes

initiate=yes

initiate=no

Page 58: BPEL: Construindo um padrão Business Processo baseado em Web Services

Correlação in BPEL<correlationSets> <correlationSet name="POCorr" properties="cor:custId cor:ordId"/> <correlationSet name="InvoiceCorr" properties="cor:vendId cor:invId"/></correlationSets> ...

<receive partnerLink=“Customer” portType="SP:PurchaseOrderPT"

operation="AsynchPurchase" variable="PO"> <correlations> <correlation set="POCorr" initiate="yes"> </correlations></receive> ...

<invoke partnerLink=“Customer” portType="SP:CustomerPT"

operation=“ProcessPurchaseResponse" inputVariable="POResponse"> <correlations> <correlation set="POCorr" initiate="no" pattern="out">

<correlation set="InvoiceCorr" initiate="yes" pattern="out"> </correlations></invoke> ...

Page 59: BPEL: Construindo um padrão Business Processo baseado em Web Services

Escopo do BPEL

Page 60: BPEL: Construindo um padrão Business Processo baseado em Web Services

Escopo em BPEL

Provê um contexto compartilhado para um conjunto de atividades

Pode conter Manipuladores de Erros Manipuladores de

Eventos Variáveis de

manipulação de compensação

Conjunto de correlações Pode serializar variáveis

de acesso concorrente

<scopevariableAccessSerializable="yes|no“ ...>

<variables></variables>

<correlationSets>? ... </correlationSets>

<faultHandlers></faultHandlers>

<compensationHandler>? ... </compensationHandler>

<eventHandlers></eventHandlers> (activities)*

</scope>

Page 61: BPEL: Construindo um padrão Business Processo baseado em Web Services

Transações de Longa Duração e Compensação (UNDO)

Undo

ReserveInventory

<scope>

</scope>

• ReserveInventory• CancelReserveInv

InventoryService

• CheckCredit• ChargeHoldFee• CancelHoldFee

CreditService

Undo

ChargeHold Fee

Page 62: BPEL: Construindo um padrão Business Processo baseado em Web Services

Manipulação de Compensação BPEL

<scope> <compensationHandler> <invoke partnerLink="Seller" portType="SP:Purchasing" operation="CancelPurchase" inputVariable="getResponse" outputVariable="getConfirmation"> <correlations> <correlation set="PurchaseOrder" pattern="out"/> </correlations> </invoke> </compensationHandler> <invoke partnerLink="Seller" portType="SP:Purchasing" operation="SyncPurchase" inputVariable="sendPO" outputVariable="getResponse"> <correlations> <correlation set="PurchaseOrder" initiate=“yes” pattern="out"/> </correlations> </invoke></scope>

Page 63: BPEL: Construindo um padrão Business Processo baseado em Web Services

Exception Handling in BPEL

<faultHandlers> catch exception

– Based on WSDL port defining fault <faultHandlers> can perform activities upon

invocation<faultHandlers> <catch faultName="lns:cannotCompleteOrder" faultVariable="POFault"> <reply partnerLink="customer" portType="lns:purchaseOrderPT" operation="sendPurchaseOrder" variable="POFault" faultName="cannotCompleteOrder"/> </catch></faultHandlers>

Page 64: BPEL: Construindo um padrão Business Processo baseado em Web Services

Como isso ocorre?

PartnerWSDL 1

ProcessWSDL

PartnerWSDL n

. . .

BPEL Scenario

<process> <partners> <variables> <sequence> <flow> </sequence></process>

1. Compile2. Package3. Deploy

ApplicationServer

BPEL Runtime

CompiledBPEL Scenario

Page 65: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL and Java Technology

Page 66: BPEL: Construindo um padrão Business Processo baseado em Web Services

BPEL e Java

BPEL é uma linguagem de programação genérica como Java, mas não é tão poderosa como Java.

Ordem exata como os participantes dos serviços web devem ser chamados;

Comportamento condicional, Laços, Variáveis ... É simples e adapta-se melhor para definição de

processos de negócio; BPEL não veio para tomar o lugar de Java, mas

como um complemento para Java.

Page 67: BPEL: Construindo um padrão Business Processo baseado em Web Services

O que aconteceu com Java?

JSR 207 – Processo de Definição de Linguagem para Java

Fazer com que os processos de negócio sejam natural para os programadores Java.

MessagingTransactions PoolingNamingSecurity

Application Server

Servlet EJB

Process Definition for Java

Page 68: BPEL: Construindo um padrão Business Processo baseado em Web Services

O que aconteceu com J2EE?

JSR 208 – Java Business Integration Fazer com os processos de negócio sejam

cidadãos de primeira classe nos containers J2EE

Based on JSR 208 Session at JavaOne 2003

. . .RoutingEngine

TransformEngine

BPELEngine

NormalizedMessage

Bus

JSR 208Binding SPI

EDI JCAWeb

Services JMS . . .

Binding Framework

JSR 208Machine SPI

Page 69: BPEL: Construindo um padrão Business Processo baseado em Web Services

Ferramentas Necessárias

IDE – construir seus Web services WSDL authoring – modelar sua interface Schema authoring – modelar mensagens Process modeling – modelar orquestração Empacotamento e implantação Debugging Monitoramento Análise

Page 70: BPEL: Construindo um padrão Business Processo baseado em Web Services

Considerações BPEL

Page 71: BPEL: Construindo um padrão Business Processo baseado em Web Services

Algumas soluções

W3C: WS-Choreography Spec: WS-Transaction Spec: WS-Coordination Spec: WS-Composite Application Framework OASIS: WS-Reliability Spec: ReliableMessaging Spec: WS-Addressing OASIS: WS-Security …

Page 72: BPEL: Construindo um padrão Business Processo baseado em Web Services

Alguns pensamentos

Portabilidade de processos de negócio? Java / J2EE é portável através de servidores de

aplicação BPEL é portável independente de Java

Linguagem de programação em XML? Fornecedores de todos os tamanhos estão

ocupados projetando modelos