10 Orquestra..o de Processos de Neg.cio file• É um subset do BPML – Business Process Modeling...
Transcript of 10 Orquestra..o de Processos de Neg.cio file• É um subset do BPML – Business Process Modeling...
1
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Orquestração de Processos de Negócio
Partitura, Libreto, Maqueta
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Ponto de Situação da Arquitectura
• Os Processos de negócio foram levantados e foram descritos– Eventualmente em BPMN
• Os Serviços de Negócio (Business services) foram identificados
• Os Serviços Técnicos foram definidos– Serviços de aplicações herdadas– Serviços externos– Novos serviços necessários
• Questão como integrar os Serviços de Negócio com os Serviços Técnicos?
2
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Mapeamento BPEL
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Business Process Execution Language
• Evolução do XLANG e do WSFL• Objectivo:
– Descrever a interacção entre parceiros de negócio em interacções de longa duração com estado, traduzidas em sequências de mensagens quer síncronas quer assíncronas.
• Permite definir dois tipos de processos:– Abstract Process – protocolo de negócio, define as mensagens – Executable com detalhe dos WS e XML
• É um subset do BPML – Business Process Modeling Language• É importante notar a palavra execution, ao contrário de muitas
linguagens de descrição de processos, visa portanto a geração de código (WSDL e XML) que pode ser directamente interligado ao Web Services
3
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Uma visão dos standards (WfMC, Web Services e BPM)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Elementos do WS-BPEL
• Partner links– Entidades externas que interagem com o processo : parceiros,
serviços– São definidos por: um tipo, papel (o papel irá corresponder a um
serviço diferente no WSDL)• Variables
– Usadas para passar dados entre etapas do processo – Descritas por um documento WSDL
• Activities– Basic – etapas na execução que realizam o trabalho– Structured – organiza a sequência de controlo do processo
4
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Elementos do WS-BPEL
• Correlation sets– Correlacionam múltiplas invocações de serviços, são o
equivalente das referências de objectos que permitem associar instâncias de serviços aos processos de negócio. Um conjunto de tokens são definidos como propriedades partilhadas por todas as mensagens,
• Fault handlers– Tratam as excepções na execução dos processos
• Compensation– Permitem a um processo desfazer acções já executadas
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Estrutura do WS-BPEL (I)
5
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Estrutura do WS-BPEL (II)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Estrutura do WS-BPEL (III)
6
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Oracle BPEL Designer (Eclipse IDE)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
A quick zoom into BPEL
• Designed for behavioural interfaces and implementations• Imperative programming language: scoped variables,
assignment, sequence, while, switch, exception handlers • Constructs specific to WS programming:
– XML typing and XPath, XQuery, or XSLT expressions– receive and send actions (with dynamic references)– correlation of messages based on content (à la MOM)– parallelism and synchronisation: flow and control links– event-action rules (event handlers and event-based choice)– nested transactions with compensation (compensation handlers)– In BPEL 2.0: multiple concurrent executions of a block of code
• XML syntax (but this is irrelevant!)
7
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by Example
• The escalation service of a call centre may receive:– storm alerts from a weather service, or – long waiting time alerts from the queue management service.
• The receipt of an alert triggers an escalation.• Different escalations apply to the different types of alerts. • While an escalation process is running, subsequent storm
or queue saturation alerts are forwarded to a manager but do not trigger new escalations.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by example (cont.)
pickonMessage QueueAlert : (* starts new process instance *)
begin scopeonEvent QueueAlert : forward to manageronEvent StormAlert : forward to manager(* "queue alert" escalation activity goes here *)
end scopeonMessage StormAlert : (* starts new process instance *)
begin scopeonEvent QueueAlert : forward to manageronEvent StormAlert : forward to manager(* "storm alert" escalation activity goes here *)
end scopeend pick
8
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by example (cont.)
A broker service that solicits bids from a set of bidders (not known a priori), and collects responses, keeping track of the lowest bid received. Bids are collected until a time-out.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by example (cont.)
set partner link to the address of the first bidder;send (one-way invoke) first bid request and initialise correlation setwhile (more partners)
set partner link to the address of next bidder;send next bid request;
begin scopeonAlarm timeLimit : throw timeoutFaultcatch timeoutFault : set flag variable to indicate time-outwhile (more bids expected)
receive a bid;update winning bid
end scope(* processing of time-out or winning bid goes here *)
9
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by example
A conference provides redundant services to accept paper submissions.
A submitter service submits the paper via the first service; if no acknowledgement is received within ten seconds, it submits the paper via the second service, and so on.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BPEL by example (cont.)
responseReceived := falsebegin scope
onEvent X :begin scopeonAlarm timeLimit :
begin switchcase (more servers) send a message of type X to myselfotherwise throw allServersTimedOut
end switchcatch allServersTimedOut: do nothing (* terminates scope *)catch responseReceived: do nothing (* terminates scope *)send request to next server and receive response (synchronous invoke);responseReceived := true;throw responseReceived
end scopesend a message of type X to myself
end scope
10
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Impacto do BPMS no ciclo de vida dos processos
Integração, Automatização,
e workflow
MonitorizaçãoActividade
Negócio e Processual
Capacidade ajustardinamicamente regras de negócio e processos
Definir Executar Monitorizar
Modelação gráficaStandard-based (BPEL),
Regras Negócio, Workflow
Criar
Optimizar
Orquestrações
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Arquitectura de um sistema BPM
11
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Integração da arquitectura orientada a serviços (SOA)
• A arquitectura orientada a serviços aplicada num sistema BPM possibilita às organizações o foco na criação de soluções orientadas ao processo
• Benefícios:– Automação e composição (orquestração) de serviços– Criar serviços de negócio colaborativos– Standards ao nível web services (WSDL, SOAP,
BPEL4WS)– Fornecer segurança ao nível das mensagens
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Coreografia
Encenação
12
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Coreografia
• WS- choreography model• Modelo
– Abstract coreography– Portable coreography– Concrete coreography
• Objectivo descrever a forma como interagem as entidades da arquitectura– Independente das plataformas, modelos de programação, etc.
• WS-Choreography Description Language com formalismo baseado do Π – calculus– Não é uma BPEL não tem por objectivo produzir código
executável
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Definição Orquestração e Coreografia
• Coreografia– As mensagens trocadas externamente, regras de interacção e
acordos entre dois ou mais endpoints de processos de negócio– WSCI - Web Services Choreography Interface
• Descreve as mensagens entre web services que colaboraram• Linguagem baseada em XML• Observável externamente
• Orquestração– Um processo executável descrito na perspectiva do fluxo de
execução e sob controlo de um único endpoint.– BPML - Business Process Model Language
• Descreve processos de negócio executáveis• A definição é privada
13
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Um exemplo:Sample Business Process: Purchase Order
Sample Purchase Order
Purchase Order Request
Purchase Order Acknowledgement
Purchase Order Response
Business“A”
Business “B”
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Do ponto de vista da Coreografia
PO RequestSend PO
Receive PO Ack
Receive PO Response
Receive PO
SendPO Ack
Send PO Response
PO Acknowledgement
PO Response
Coreografia – The observable public exchange of messages
Public Process
Business A Business B
14
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Do ponto de vista da Orquestração
Send PO
Receive PO Ack
Receive PO Response
Transform
Transform
From ERP
To ERP
PO Request
PO Acknowledgement
PO Response
Orquestração – A private executable business process (Workflow)
Private ProcessBusiness A BPEL Workflow
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Orquestração e Coreografia em conjunto
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
Two BPEL workflow templates reflecting a business agreement