Carasik BPM ECM

Preview:

DESCRIPTION

tutorial given at C.U.G. in May 2008

Citation preview

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>

Recommended