8/28/2003 José Alves Marques
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
8/28/2003 José Alves Marques
Mapeamento BPEL
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
8/28/2003 José Alves Marques
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
8/28/2003 José Alves Marques
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
Departamento de Engenharia Informática
8/28/2003 José Alves Marques
Estrutura do WS-BPEL (II)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
8/28/2003 José Alves Marques
Oracle BPEL Designer (Eclipse IDE)
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
8/28/2003 José Alves Marques
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.)
pickonMessageQueueAlert : (* starts new process instance *)
begin scope
onEventQueueAlert : forward to manager
onEventStormAlert : forward to manager (* "queue alert" escalation activity goes here *)
end scope
onMessageStormAlert : (* starts new process instance *)
begin scope
onEventQueueAlert : forward to manager
onEventStormAlert : forward to manager (* "storm alert" escalation activity goes here *)
end scope end pick
8/28/2003 José Alves Marques
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.
Departamento de Engenharia Informática
BPEL by example (cont.)
set partner linkto the address of the first bidder;send(one-way invoke) first bid request and initialise correlation set while(more partners)
set partner linkto the address of next bidder;
sendnext bid request;
begin scope
onAlarmtimeLimit : throw timeoutFault
catchtimeoutFault : set flag variable to indicate time-out
while(more bids expected)
receivea bid;
updatewinning bid
end scope
8/28/2003 José Alves Marques
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:=false begin scope onEventX : begin scope onAlarmtimeLimit : begin switchcase(more servers) send a message of type X to myself otherwisethrow allServersTimedOut
end switch
catchallServersTimedOut: do nothing (* terminates scope *) catchresponseReceived: do nothing (* terminates scope *)
sendrequest to next server and receiveresponse (synchronous invoke); responseReceived:=true;
throwresponseReceived end scope
senda message of type X to myself end scope
8/28/2003 José Alves Marques
Impacto do BPMS no ciclo de vida dos
processos
Integração, Automatização, e workflow Monitorização Actividade Negócio e Processual Capacidade ajustardinamicamente regras de negócio e processos
Definir Executar Monitorizar
Modelação gráfica Standard-based (BPEL), Regras Negócio, Workflow
Criar
Optimizar
Orquestrações
Departamento de Engenharia Informática
8/28/2003 José Alves Marques
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
8/28/2003 José Alves Marques
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
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
8/28/2003 José Alves Marques
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 Request Send PO Receive PO Ack Receive PO Response Receive PO Send PO Ack Send PO Response PO Acknowledgement PO Response
Coreografia – The observable public exchange of messages Public Process
8/28/2003 José Alves Marques
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 Process
Business A BPEL Workflow
Departamento de Engenharia Informática
Orquestração e Coreografia em conjunto
Business B Business Analyst Tool Business A 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