440 likes | 605 Views
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. Paper Purchase Order. Almost any Procedure. e -business. > 270’000 documents in 2010
E N D
Workflows and business process modelling for CERN's Electronic Document Handling system RostislavTitov,GS-AIS-EB Section Leader, CERN
EDH Electronic Document Handling @ CERN
e-business • > 270’000 documents in 2010 • > 14’000 users from many countries • Used by all CERN personnel Accelerator Material Storage Annual Appraisal Automatic Small Order (< 500CHF) Change of the local address Contract Request Declaration of family situation Emergency contacts End of probation period authorization End-of contract authorization Export Formalities request External Training Request Fire Permit Identification of Radioactive Waste Illness declaration Import Formalities declaration Induction Interview follow-up Inter-departmental funds transfer Internal Purchase Requisition Invoice authorization Language Training Reimbursement 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 Reception of Goods Reimbursement of Candidate’s Expenses Request for an Advance Request for External Funds 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 Staff Selection Subsistence Claim Sundry Expenses Claim Telephone Subscription Request Temporary Labourrequest Termination check-sheet Tracking of interventions 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
Business processes • Collection of activities that produce a service or product • Can be represented by a graph (WF-net)
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) 2011/01 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 wasopen 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 • Multi-tenancy • 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 (they also maintain 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 Sequence flow Default flow Conditional flow Swimlanes– used to define roles Lane Lane Lane Pool Lane Closed lane
BPMN Process Example Buyer Handle order Order received Inform the client about processing Send proposal to the client Sales Representative Close the case Change proposal Make proposal Seller Proposalrejected Receive request Not approved Approved Consider proposal Sales Manager Source: Wikipedia
BPMN Events Start Intermediate End Processing Throwing Plain events – usually indicate beginning or end of a process . Plain Message events – indicate sending or receiving a message Message T imer events – regularly happening events, time periods and timeouts Timer E rror events – error generation and handling Error C ancel events – cancel a transaction or react to a cancellation Cancel C ompensation events – start a compensation process or compensate Compensation Conditional C onditional events – integrate business rules in the process S ignal events – exchange signals between processes Signal Complex events – choose from multiple events Complex L ink events – link processes (for example, on multiple pages) Link T erminate events – immediately stop without error handling or Terminate 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
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 still not obvious
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
Thank You For More Information E-mail:Rostislav.Titov@cern.ch
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