Workflows and business process modelling for CERN's Electronic Document Handling system Rostislav Titov, GS-AIS-EB Section Leader, CERN EDH Electronic Document Handling @ CERN CERN e Business – Paper Purchase Order CERN e Business – Almost any Procedure CERN e Business – e-business > 270’000 documents in 2010 > 14’000 users from many countries Used by all CERN personnel “CERN’s EDH enables staff to focus on CORE activities by minimizing the overhead of business processes” CERN e Business – Workflow in Action CERN e Business – Workflow in Action CERN e Business – Workflow in Action CERN e Business – Workflow in Action ******** CERN e Business – Workflow in Action Already Approved CERN e Business – Workflow in Action CERN e Business – Workflow in Action CERN e Business – Business processes - Collection of activities that produce a service or product - Can be represented by a graph (WF-net) Start Student passes the exam Result satisfactory? Yes OK! No Schedule the next attempt CERN e Business – No Maximum number of attempts exceeded? Yes Expelled Workflow Management System Software for designing and executing workflows • Workflow engine • Notification management • Visual process designer • Process visualization • Debugging • Error handling and exception management CERN e Business – Workflow Standards 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 2004/05 WSFL (IBM) XLang (Microsoft) WSCL (HP) BPEL4WS 1.0 (IBM, Microsoft) BPMN 1.2 (OMG) BPMN 1.0 (BPMI) BPEL4WS 1.1 (OASIS) 2007/05 2009/01 2011/01 WS-BPEL 2.0 BPMN 2.0 BPEL and BPMN are Industry Standards – Standards based approach ensure longevity of the workflow engine – Supported by the big players in the industry (Microsoft, IBM, SUN, Oracle…) CERN e Business – BPEL • Web Services Business Process Execution Language • Developed by IBM, Microsoft and SAP in 2003 WS-BPEL 2.0 - 2004 BPEL4People and WS-HumanTask - 2007 CERN e Business – BPEL XML language for defining behaviour of a process – that provides web-service(s) – that uses web-services – everything it sees is a web-service • no other external interactions CERN e Business – Definition: OASIS BPEL Process Example CERN e Business – BPEL Process Example CERN e Business – <bpel:assign name="setSignatureParameters"> <bpel:copy> <bpel:from part="documentId" variable="inputVariable"/> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:docId</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from>cern:getExpression('S', '10000M', $budget/ns14:budgetCode, $doctype)</bpel:from> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:expression</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from>3</bpel:from> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:signatureDelay</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from part="exclusionList" variable="inputVariable"/> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:exclusionList</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from>'STD_FIN_UNLIMITED_SIGN_ENG_MSG'</bpel:from> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:engMessage</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from>'STD_FIN_UNLIMITED_SIGN_FRE_MSG'</bpel:from> <bpel:to part="signature" variable="invokeSignature_process_InputVariable"> <bpel:query>ns15:freMessage</bpel:query> </bpel:to> </bpel:assign> BPEL Design IDE CERN e Business – BPEL Activities Structured activities – can contain other activities <sequence> one after the other <flow> in parallel <pick> choose by inbound message <switch> choose by expression evaluation <while> iteration <scope> nest, with declarations and handlers, synchronize Communication <invoke> <receive> <reply> send msg to partner; possibly receive response accept msg from partner send msg to partner as response to <receive> Other <assign> <wait> <exit> <compensate> <throw> <empty> CERN e Business – manipulate variables for duration / until time end the process run compensation handler of inner scope exit with fault to outer scope do nothing BPEL Engines Evaluation Designer Links in designer XPATH tools Open source Java based Halt on fault and retry Debugging Process Web based versioning tools Active BPEL Oracle BPEL IBM WebSphere PXE Cape Clear Parasoft BPEL Maestro Vergil VCAB Twister / Agila BPEL IT Pearl BEA Weblogic workshop CERN e Business – Supported Partly supported Not supported Our Choice: ActiveVOS Robust server with a good track record – One of the first BPEL vendors on the market The core engine was open source – Widely used / well tested – Fully supports the standards ActiveVOS Enterprise builds on the OS Engine and adds: – – – – Persistent data is clear XML CERN e Business – Process versioning Halt on fault/retry Clustering Multi-tenancy Integration with applications Two ways to interface with other applications – Through a Web Service Invocation • • • • • Native to BPEL Creates “noise” in the process More complex to implement Can interface to any language In EDH used for read/write functions – Custom XPath functions • • • • CERN e Business – Not completely standard (part of JAXEN) Lightweight mechanism in Java BPEL engines Can be called in assigns or in the condition statements In EDH used for read only functions BPEL Strong Points BPEL is a standard! – Supported on different platforms – Interfaces to various languages Web Service interface Good integration with Java Easy to integrate in development/deployment environment CERN e Business – BPEL weak points Verbose and heavy language (WSDL interface, technical activities e.g. assign) Loops have to be explicitly declared (links back to already executed steps are not allowed) Rigid process model (even when debugging) Transaction management (currently) CERN e Business – BPMN • Business Process Modelling Notation Maintained by the OMG consortium (they also maintain UML specs) CERN e Business – BPMN Graphical representation of a business process – can be used both by developers and business analysts – no standard executable translation – can be translated to BPEL CERN e Business – BPMN Elements Events – something that happens in the system Activities – some work to be done Gateways – split or merge paths depending on conditions Sequence flow Lane Lane Closed lane CERN e Business – Default flow Swimlanes – used to define roles Lane Pool Lane Conditional flow Connections – connect elements BPMN Process Example Sales Representative Seller Buyer Handle order Send proposal to the client Proposal rejected Receive request Sales Manager Not approved e Business – Inform the client about processing Close the case Change proposal Make proposal CERN Order received Approved Consider proposal Source: Wikipedia BPMN Events Start Intermediate Processing Plain Message End Throwing – usually indicate beginning or end of a process Plain events . – indicate sending or receiving a message Message events – regularly happening events, time periods and timeouts T imer events Timer Error Cancel Compensation Conditional Signal Complex Link Terminate CERN e Business – – error generation and handling E rror events – cancel a transaction or react to a cancellation C ancel events C ompensation events C onditional events S ignal events Complex – start a compensation process or compensate – integrate business rules in the process – exchange signals between processes events – choose from multiple events L ink events – link processes (for example, on multiple pages) T erminate events compensation – immediately stop without error handling or BPMN Activities Task Task – a task to be done Multiple instance Multiple instance – this task has to be done multiple times for each object ||| Loop Loop activity – do task until the loop condition is met Subprocess – a complex task (a process within process) CERN e Business – BPMN Gateways X Exclusive OR (data-based) – Choose one outbound path. Synchronization: process continues once any inbound path has been completed Exclusive OR (event-based) – Choose a path where an event happens. The next element should be an event or an event-handling activity O + Inclusive gateway – Choose one or multiple outbound paths. Synchronization: process continues once any inbound path has been completed Parallel gateway – split a process into parallel branches, all of which run at the same time. Synchronization: wait for all processes to finish and then continue Complex gateway – split or merge the process based on a complex rule CERN e Business – BPMN Connections Sequence Flow – shows the order in which activities are executed Simple Conditional Default Message Flow – shows exchange of messages Associations – logical associations between elements CERN e Business – BPMN Strong Points Intuitive Can be used both by developers and business analysts – Bridging the gap between process design and implementation CERN e Business – BPMN weak points Converting to executable environments is still not obvious CERN e Business – Signature Event Signature event is a task for interacting with people (e.g. ask to approve or reject a document) BPEL4People: “WS-HumanTask” (definition of human tasks and notifications) Approved 2KCHF signature Rejected CERN e Business – Thank You For More Information E-mail: Rostislav.Titov@cern.ch CERN e Business – Basic Workflow Patterns Sequence A B - First A, then B, then C CERN e Business – C Basic Workflow Patterns Parallel Split B B A A C + C - B and C start together once A finishes CERN e Business – Basic Workflow Patterns Synchronization (AND-Join) A + C B - C starts once A and B finish CERN e Business – Basic Workflow Patterns Choice Condition1 true B B A A O C C false CERN e Business – - If Condition1 then B, if Condition2 then C, ... Condition2 Basic Workflow Patterns Merge B A D C - D starts when B ends or when C ends CERN e Business –