Bob Carasik, C.U.G. session 1, Ma y 2008 1 Business Process Management and ECM, session 1 Presented to China University of Geosciences Bob Carasik, guest lecturer
Bob Carasik, C.U.G. session 1, May 2008 1
Business Process Management and ECM, session 1
Presented to China University of Geosciences
Bob Carasik, guest lecturer
Bob Carasik, C.U.G. session 1, May 2008 2
欢 迎!上 课!• Our schedule: Three ½ day sessions.
– 15 minute break, 10:15 to 10:30– Homework both nights, some team assignments– Quiz on Friday morning
• Exchange of contact information
Bob Carasik, C.U.G. session 1, May 2008 3
Course Outline
• Day 1, Business Process Modeling– Why do want to Model a Business Process?
– The BPMN Language, and other languages
– How to build a Business Process Model
– Bring the Model to Life with Business Process Management
• Day 2, Enterprise Content Management– The life cycle of electronic information
– Capture, store, search, retrieve, retain/destroy
– Components of Content Management systems
• Day 3, Survey of BPM and ECM tools, case study presentations
Bob Carasik, C.U.G. session 1, May 2008 4
What is Process Modeling?
• What is a business process?– How people and Information systems work together to meet a
demand on their organization– There is a starting event, activity and defined output or outputs
• What is a model?– Formalize the knowledge and rules from IT and workers– Abstract representations of what, and who, makes the process
happen.
• Uses of a Process model– Analysis– Simulation (out of scope for this course)– Process automation with BPEL (day 2)
Bob Carasik, C.U.G. session 1, May 2008 5
Process Modeling, Why?
• Why create a model of a business– Can we learn something about the business?– Can we CHANGE something about the business?
• Competition forces changes– Update products– Improve organization– Provide new services– Regulation and compliance requirements
• How can we use our resources better?
Bob Carasik, C.U.G. session 1, May 2008 6
Goals of Process Modeling
• Enabling change– First, fully understand what the business does
– Use one design language for business and technical staff
– Trials of alternative ways of doing things
– Create workflows from the design
– Identify process measurements and evaluate progress
• Supporting regulatory compliance– Demonstrate adherence to quality standards
Bob Carasik, C.U.G. session 1, May 2008 7
Making a process model
• The “work itself”– plus
• Description of information systems– Equals
• A model
Bob Carasik, C.U.G. session 1, May 2008 8
Three levels of detail
• Process Map: simple flowchart
• Process Description: add information to the map
• Process Model: supports analysis, simulation, and execution
Bob Carasik, C.U.G. session 1, May 2008 9
If we’ve done it right, then …
• Changing processes is easier: “agility”
• Spotting problems is easier: “transparency”
• People are freed up for other work.
What else might work better if we have a model?
Bob Carasik, C.U.G. session 1, May 2008 10
A Reference model, from the Workflow Management Coalition
Process Definition Tools
Administration & Monitoring
Tools
Interface 1
Interface 4Interface 5
Workflow Enactment Service
Workflow API and Interchange formats
Other WorkflowEnactment Service(s)
WorkflowClient
Applications
Interface 3Interface 2
WorkflowEngine(s)
WorkflowEngine(s)
InvokedApplications
Bob Carasik, C.U.G. session 1, May 2008 11
Definition of “workflow”
The defined series of tasks within an organization to produce a final outcome. Workgroup applications allow you to define different workflows for different types of jobs. So, for example, in a publishing setting, a document might be automatically routed from writer to editor to proofreader to production. At each stage in the workflow, one individual or group is responsible for a specific task. Once the task is complete, the workflow software ensures that the individuals responsible for the next task are notified and receive the data they need to execute their stage of the process.
Bob Carasik, C.U.G. session 1, May 2008 12
Workflow model and screen shot
Bob Carasik, C.U.G. session 1, May 2008 13
A workflow task listfrom http://www.skelta.com/products/screenshot-gallery/screens.aspx#TaskList
Bob Carasik, C.U.G. session 1, May 2008 14
What do we express in a modeling language?
• The goal: graphic representation with formal precision
• Business processes
• Functions
• Flow of control
• Flow of information
• Probability
Bob Carasik, C.U.G. session 1, May 2008 15
Business Process Modeling Language (BPMN)
• Why BPMN?– Based on past languages (UML, WSFL, XLANG)
– Now standard, many vendors have implementations
• Components– Events
– Activities
– Sequence Flows
– Gateways
Bob Carasik, C.U.G. session 1, May 2008 16
Summary of BPMN diagram elements
Bob Carasik, C.U.G. session 1, May 2008 17
A simple insurance process
(From Havey book, p. 147)
Bob Carasik, C.U.G. session 1, May 2008 18
Events
• “Occurrence that triggers a business process”
• Have beginning, intermediate, end states
• Types:– Basic, message, timer, rule, exception,
cancellation, compensation, link, multiple, termination
Bob Carasik, C.U.G. session 1, May 2008 19
Activities• A step in a process that performs work.
– Atomic (task) or compound (contains process)– Simple– Compensated– Ad Hoc– Looping– Multiple instances
• Examples: Call a Web service, – Receive a message (wait for input from field representative)– Send a message (update customer contacts)– Manual task (call customer at home)– Script– reference to another task
Bob Carasik, C.U.G. session 1, May 2008 20
Sequence Flows
Normal flow
Default flow; depends on conditions
“Guarded”, depends on rule evaluation
Bob Carasik, C.U.G. session 1, May 2008 21
Gateways• Splits and joins of control flow
Bob Carasik, C.U.G. session 1, May 2008 22
Process patterns: 1
Bob Carasik, C.U.G. session 1, May 2008 23
Process patterns: 2
Bob Carasik, C.U.G. session 1, May 2008 24
Process patterns: 3
Bob Carasik, C.U.G. session 1, May 2008 25
Process patterns: 4
Bob Carasik, C.U.G. session 1, May 2008 26
Process patterns: 5
Bob Carasik, C.U.G. session 1, May 2008 27
Process patterns: 6
Bob Carasik, C.U.G. session 1, May 2008 28
BPMN Modeling constructsThere are 52 graphic objects, 6 connecting objects, 2
grouping objects
But only these few are really common:
•Normal Flow•Task•End Event•Start Event•Pool•Data-Based XOR
•Start Message•Text Annotation•Message Flow•Parallel Fork / Join•Lanes (subdivides Pool)•Gateway•Data-Based XOR
•Sub Process•Association•Data Object•Intermediate Timer•Intermediate Message•End/Terminate
Bob Carasik, C.U.G. session 1, May 2008 29
An example: auto insurance claim
Bob Carasik, C.U.G. session 1, May 2008 30
Our goal: running a BPM model with BPEL
• BPEL language – XML-based scripting language
• Includes WSDL for system interface definitions
– Tools can generate it from BPMN models
Bob Carasik, C.U.G. session 1, May 2008 31
Retailer process, from OnJava
Bob Carasik, C.U.G. session 1, May 2008 32
BPEL code, 11 <process name="Retailer" 2 targetNamespace="http://acm.org/samples" suppressJoinFailure="yes"3 xmlns:tns="http://acm.org/samples" 4 xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"5 xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/ business-process/">67 <!-- some code omitted - ->89 <!-- Mainline process code starts here -->10 <sequence name="main">1112 <!-- Step 1: Consumer sends PO -->13 <receive name="receiveInput" partnerLink="consumer" portType="tns:Retailer" 14 createInstance="yes" operation="sendPO" variable="po">15 <!-- Use the inbound PO message as the basis for correlation -->16 <correlations>17 <correlation set="poset" initiate="yes"/>18 </correlations>19 </receive>20
Bob Carasik, C.U.G. session 1, May 2008 33
BPEL code, 221 <!-- Step 2: Send receipt ack to consumer -->22 <invoke name="callbackClient" partnerLink="consumer" 23 portType="tns:RetailerCallback" operation="poReceipt" 24 inputVariable="po"/>2526 <!-- Step 3: create PO record in internal database -->27 <invoke name="writePOToDB" partnerLink="retailerDB" portType="tns:RetailerDB" 28 operation="createPO" inputVariable="po"/>2930 <!-- Step 4: send PO to warehouse -->31 <invoke name="sendPOToWH" partnerLink="warehouse" portType="tns:Warehouse" 32 operation="sendPO" inputVariable="po"/>3334 <!-- Step 5: wait for warehouse response -->35 <receive createInstance="no" name="receiveWHResponse" partnerLink="warehouse" 36 portType="tns:WarehouseCallback" operation="onResult" 37 variable="poResponse">38 <!-- correlate on identifiers in initial PO -->39 <correlations>40 <correlation set="poset" initiate="no"/>41 </correlations>42 </receive>