540 likes | 694 Views
Workflows and business process modelling for CERN's Electronic Document Handling system . Rostislav Titov , European Organization for Nuclear Research. Business processes. Collection of activities that produce a service or product Can be represented by a graph (WF-net). EDH.
E N D
Workflows and business process modelling for CERN's Electronic Document Handling system RostislavTitov,European Organization for Nuclear Research
Business processes • Collection of activities that produce a service or product • Can be represented by a graph (WF-net)
EDH Electronic Document Handling @ CERN
The Need for EDH • Over 100 official procedures • Used by all CERN personnel • Over 250000 documents per year • Examples: • Purchase orders • Training Request • Holiday Request
e-business Annual Appraisal (MAPS) Automatic Small Order (< 500CHF) Contract Request End of probation period authorization End-of contract authorization Export Formalities request External Training Request Fire Permit Illness declaration Import Formalities declaration Inter-departmental funds transfer Internal Purchase Requisition Invoice authorization Leave Request Official Travel Claim Official Trip On-site Training RequestOpening of Post Request Overtime request Part-time working schedule request Payment to Third Party Pro-forma invoice request Request for an Advance Request to Access Computer Centre Request to Access Restricted Areas Request to Drive CERN vehicle Request to Enable/Disable Alarm Request to Import merchandise (EU or Switzerland) Request to Perform Maintenance Work Request to Purchase from Stores Request to transit the French/Swiss Tunnel Request to use Forklift Truck/Tractor/Crane School fees ReimbursementSkills Inventory Subsistence Claim Sundry Expenses Claim Telephone Subscription Request Temporary Labour request Travel To Home Station “CERN’s EDH enables staff to focus on CORE activities by minimizing the overhead of business processes”
Workflow in Action ********
Workflow in Action AlreadyApproved
Workflow in Action XML Order
Workflow Management System • Software for designing and executing workflows • Workflow engine • Notification management • Visual process designer • Process visualization • Debugging • Error handling and exception management
Workflow Standards BPML (Intallio et al) BPSS (ebXML) WSCI (Sun et al) WS-Choreography (W3C) 2000/05 2001/05 2001/06 2002/03 2002/06 2002/08 2003/01 2003/04 2007/05 2001/03 WSCL (HP) WSFL (IBM) BPEL4WS 1.0 (IBM, Microsoft) XLang (Microsoft) WS-BPEL 2.0 BPEL4WS 1.1(OASIS) BPMN 1.2 (OMG) BPMN 1.0 (BPMI) 2010? 2009/01 2004/05 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…)
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
BPEL • XMLlanguage 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 Definition: OASIS
BPEL Process Example <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 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> send msg to partner; possibly receive response<receive> accept msg from partner<reply> send msg to partner as response to <receive> Other<assign> manipulate variables<wait> for duration / until time<exit> end the process<compensate> run compensation handler of inner scope<throw> exit with fault to outer scope<empty> do nothing
BPEL Engines Evaluation 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 is open source • Widely used / well tested • Fully supports the standards • ActiveVOS Enterprise builds on the OS Engine and adds: • Process versioning • Halt on fault/retry • Clustering • Persistent data is clear XML
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 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
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)
BPMN • Business Process Modelling Notation • Maintained by the OMG consortium (who maintain also UML specs)
BPMN • Graphical representationof a business process • can be used both by developers and business analysts • no standard executable translation • can be translated to BPEL
BPMN Elements Events– something that happens in the system Activities– some work to be done Gateways – split or merge paths depending on conditions Connections– connect elements Swimlanes– used to define roles
BPMN Process Example Source: Wikipedia
BPMN Events Plainevents– usually indicate beginning or end of a process Messageevents – indicate sending or receving a message Timerevents – regularly happening events, time periods and timeouts Errorevents – error generation and handling Cancelevents – cancel a transaction or react to a cancellation Compensationevents – start a compensation process or compensate Conditionalevents – integrate business rules in the process Signalevents – exchange signals between processes Complexevents – choose from multiple events Linkevents – link processes (for example, on multiple pages) Terminateevents – immediately stop all business processes without any error handling or compensation
BPMN Activities Task– a task to be done Task Multiple instance – this task has to be done multiple times for each object Multiple instance ||| Loop activity – do task until the loop condition is met Loop Subprocess – a complex task (a process within process)
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 Inclusive gateway – Choose one or multiple outbound paths. Synchronization: process continues once any inbound path has been completed O 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
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
Basic Workflow Patterns Sequence - First A, then B, then C
Basic Workflow Patterns Parallel Split - B and C start together once A finishes
Basic Workflow Patterns Synchronization (AND-Join) - C starts once A and B finish
Basic Workflow Patterns Choice - If Condition1 then B, if Condition2 thenC, ...
Basic Workflow Patterns Merge - D starts when B ends or when C ends
BPMN Strong Points • Intuitive • Can be used both by developers and business analysts • Bridging the gap between process design and implementation
BPMN weak points • Converting to executable environments is a problem • Informal and partial mapping from BPMN to BPEL
Signature Event Signature event is a task for interacting with people, who are asked to approve or reject an electronic document BPEL4People: “WS-HumanTask”(definition of human tasks and notifications)
Typical signature functions • Find who can sign • Assign signature to a person • Notify chosen person • Interact with signature processing service • Choose another person in case of absence / inactivity • Skip signature if person already signed • Handle forward / postpone • Return a result
Signature Targets • Specific person • - John Doe • Group of people • - leave-admins • Role/Right • - Department Head
Signature Roles • Could be hierarchical (e.g. Group Leader) or nominated (e.g. Safety Officer) • Have target(s) • DepartmentHead(IT) • SafetyOfficer(NICA) • CollaborationLeader(CMS, JINR) • Valid during a period of time • Have a priority
Rights Hierarchy • At CERN, one role can give many rights… • Group leaders are responsible for signing financial documents, signing leave requests of people they supervise, signing personnel action forms etc… • To reduce their workload managers may delegate part of their rights to other persons • For example, a group leader may want that purchase requests were signed by his deputy • A hierarchy of rights is needed to support such partial delegation of rights • May not be a problem for smaller organizations
Signature: Rights hierarchy Role(Group Leader) Personnelrights Financialrights Right to signleave requests Right to signovertime claims Right to signofficial travels Right to signpurchase requests
Rights Management by EDH Roles held by Derek MATHIESON (GS-AIS-EB) Priority Holder Type Target Validity date(s) 0 Derek MATHIESON (AS-IDS) SL GS-AIS-EB 01.01.2009 Profiles held by Derek MATHIESON (GS-AIS-EB) Priority Holder Type Target Validity date(s) 4500 Derek MATHIESON (GS-AIS-EB) LFC(SL) 71101 01.01.2009 700 Derek MATHIESON (GS-AIS-EB) SLSADMIN(SL) GS-AIS-EB 01.01.2009 4500 Derek MATHIESON (GS-AIS-EB) SHIPS(SL) GS-AIS-EB