1 / 72

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

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.

sybil
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. O que é BPEL?

  4. Web Service 1 Web Service 4 Web Service 2 Web Service 5 Web Service 3 Web Service n Web Services encontra Business Process

  5. 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)

  6. CreditCheck CreditResponse Consolidate Results Purchase Order Invoice ReserveInventory InventoryResponse Examplo Problema Credit Service PO Service Client Inventory Service

  7. 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 . . . 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) • . . .

  8. BPML (Intallio et al) BPSS (ebXML) WSCI (Sun et al) WS-Choreography (W3C) 2000/05 2001/03 2001/05 2001/06 2002/03 2002/06 2002/08 2003/01 2003/04 XLang (Microsoft) WSFL (IBM) WSCL (HP) BPEL4WS 1.0(IBM, Microsoft) BPEL4WS 1.1(OASIS) História Recente Business Process Standards 2004/12 WS-CDL

  9. O que é BPEL?

  10. 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 …

  11. BPEL “Concerta” WSDL • WSDL: conjunto de operações desordenadas • Operação é a troca de mensagens • Necessita de regras para ordenar

  12. 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.

  13. 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

  14. Exemplo Fonte: Collaxa BPEL Designer

  15. 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)

  16. 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

  17. 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

  18. 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á.

  19. BPEL Process como Web Service

  20. Orquestração x Coreografia

  21. 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

  22. Exemplo de Ordem de Compra Requisição de Ordem de Compra Business“A” Business “B” Reconhecimento da ordem de compra Resposta de Ordem de Compra Exemplo Business Process: Ordem de Compra

  23. Public Process Business A Business B Send PO Receive PO Requisição da Ordem de Compra Receive PO Ack Send PO Ack Reconhecimento da Ordem de Compra Receive PO Response Send PO Response Resposta da Ordem de Compra Coreografia – Observação pública da troca de mensagem Perspectiva da Coreografia

  24. Private Process Business A BPEL Workflow Transform Send PO Requisição da ordem de compra From ERP Receive PO Ack Reconhecimento da ordem de compra To ERP Receive PO Response Transform Resposta da ordem de compra Orquestração – A execução do processo de negócio Perspectiva da Orquestração

  25. Business Analyst Tool BusinessA BusinessB Generate BPEL Template Generate BPEL Template Business A BPEL Workflow Receive PO Transform Transform Send PO PO Request Send PO Ack Receive PO Ack PO Acknowledgement Receive PO Response Transform Transform Receive PO Response PO Response Dois fluxo de trabalho (workflow) refletindo um tratado de negócio Orquestração e Coreografia Juntas Business B BPEL Workflow

  26. Choreography BusinessProcesses Orchestration – WS-BPEL Transactions Quality ofService Coordination WS-Security WS-Reliability Context Management Discovery UDDI Description Description WSDL SOAP Message XML Transport HTTP,IIOP, JMS, SMTP BPEL - Padrões

  27. Service Implementation Definition Service Port Service Interface Definition Binding Port types define Operations Message Type BPEL Depende de WSDL e Extensões

  28. BPEL Vocabulário: Activities

  29. <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> BPEL Estrutura do Documento

  30. BPEL Activities • Um processo BPEL consiste em: • Cada passo é chamado de atividade (activity) • Existem 2 tipos de atividades BPEL • Atividades Básicas • Atividades Estruturadas

  31. Structured Activities <sequence> <while> <pick> <flow> <scope> <compensate> <switch> <link> BPEL Activities • Basic Activities • <invoke> • <receive> • <reply> • <assign> • <throw> • <wait> • <empty>

  32. 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.

  33. 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.

  34. 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.

  35. 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

  36. 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

  37. <sequence> Receive <PO> <flow> Invoke <InventoryService> Invoke <CreditService> </sequence> Reply <Invoice> Basic Activities combinado com Structured Activities

  38. <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> Exemplo Activities in BPEL

  39. Wait • <wait standard-attributes> • standard-elements • ( <for expressionLanguage="anyURI"?>duration-expr</for> | • <until expressionLanguage="anyURI"?>deadline-expr</until> ) • </wait>

  40. Switch • <switch standard-attributes> • standard-elements • <case>+ • <condition expressionLanguage="anyURI"?> • ... bool-expr ... • </condition> • activity • </case> • <otherwise>? • activity • </otherwise> • </switch>

  41. While • <while standard-attributes> • standard-elements • <condition expressionLanguage="anyURI"?> • ... bool-expr ... • </condition> • activity • </while>

  42. Switch • <switch standard-attributes> • standard-elements • <case>+ • <condition expressionLanguage="anyURI"?> • ... bool-expr ... • </condition> • activity • </case> • <otherwise>? • activity • </otherwise> • </switch>

  43. BPEL Vobulário: Partner Links

  44. 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.

  45. BPEL as a Web Service

  46. CreditResponse CreditCheck Consolidate Results Purchase Order Invoice InventoryResponse ReserveInventory Exemplo Credit Service PO Service Client Inventory Service

  47. Partner 2 Partner 3 Partner 1(the process) PurchaseService InventoryService CreditService 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.

  48. Partner Link • <partnerLinks> • <partnerLink name="ncname" • partnerLinkType="qname" • myRole="ncname"? • partnerRole="ncname"?>+ • </partnerLink> • </partnerLinks>

  49. 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> • ...

  50. 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>

More Related