Business Process Modeling, Management and Mining
Business Process Automation
Prof. Cesare Pautasso [email protected]
http://www.pautasso.info @pautasso
1 / 26
Business -- IT Gap
“to-be” process models
Executable process models
modeled by domain experts communicate, prescribe, illustrate
shared understanding between participants
intuitive, abstract, ambiguous, need some interpretation
modeled by IT experts input to a process engine formal executable semantics
explicit, concrete, precise and full of implementation details
2 / 26
©2014 Cesare Pautasso
Automation Goals
Repeatable Processes: processes are executed in the same way, tasks may be manual
Straight through processing: full process and task automation, high throughput
3 / 26
Overview
Process Execution Engine
Process Designer Process Model Process Owner Process Instance Software Activities Human Activities 4 / 26
Reference Architecture
Workflow Enactment Service Workflow API and Interchange formats
Administration & Monitoring Tools Interface 5 Workflow Client Applications Interface 2 Process De"nition Tools Interface 1 Workflow Engine(s) Interface 4 Other Workflow Enactment Service(s) Workflow Engine(s) Interface 3 Invoked Applications W ork !o w Manag ement Coalition, 19 98 5 / 26 Two-level Programming
1. Programming in the large
2. Programming in the small
Process logic de"nes the integration of reusable components (control and data !ow)
Assembly by domain experts (non-programmers)
Component logic implements discrete "ne-grained functions and tasks (interfaces)
Components developed by IT experts (programmers)
6 / 26
SOA = BPM + WS
R. P
eisl
Layers and Integration
APIs are used to access software functionality exposed to be integrated from processes
If APIs are not available, it is always possible to access a system from its user interface, or go directly to its data
UI
DB
Application
Logic
Screen Scraping
Client
API
API Server
Data Scraping
ChoreographyEach participant follows his own process when interacting directly with the other software
systems involved in the choreography
Software Activities Software Activities Software Activities Software Activities Orchestration
The process de"nes the behavior of a centralized
coordinator, which will drive the interaction between all integrated software systems
Process
Software Activities Software Activities Software Activities Software Activities 10 / 26Composition
The process de"nes the behavior of a component that is (recursively) built out of the composition of other components, which remain hidden from the client
Process
Client Software Component Software Component 11 / 26 MegaprogrammingWith a process, every instruction:
Can dynamically select, bind and execute a different external software system
Can timeout and be aborted if it doesn't complete within a deadline
Can be part of a distributed atomic transaction
Is logged persistently so that its execution state can be recovered and monitored
Can be suspended, resumed, canceled or retried by the user
12 / 26
Process-aware Software
Process Execution Engine
Remote Standard Worklist Handler Embedded Adapter Remote Non-Standard Software Activities Human Activities 13 / 26
Worklist Handler - the user interface for notifying users about new tasks to be executed and for notifying the engine that users have completed their tasks
Embedded Software Activities small-grained functions that are embedded ef"ciently into the process execution thread (e.g., automated decision rules, data conversion operators)
Remote, Standard Software invoked through a standardized protocol (HTTP, WS-* SOAP)
Remote, Non-Standard Sofware requires the development of custom adapters before it can be invoked from the process engine
Software Connectors
Remote Procedure Call
Asynchronous Messaging
File Transfer Shared Database
Stream
15 / 26
Connectors and Processes
Remote Procedure Call Asynchronous Messaging File Transfer Str eam
Process
Shared Database Str eamInternal Engine Architecture
Process Navigator
Process
De!nitions InstancesProcess Completed Tasks Pending Tasks Task Dispatcher Available Resources Assigned Tasks
Process Designer Process Monitor
Correlation
Problem: Route incoming messages to the
corresponding existing process instance or start a new process to process an incoming message Solution: Embed process identi"er into
message headers
Alternative Solution: Use message properties and content to identify the process instance
20 / 26
Process Identi!cation
Structured process instance identi"ers allows to group related instances and "nd which process template they execute
Package Process Name Version Instance Counter Replica 21 / 26 Hentrich and Z dun
How long does it take?
Macro"ow long-running business processes (days, months, years) which may include human tasks
Micro"ow short-lived transactional processes (microseconds, seconds, minutes) that involve fully automated tasks
Hentrich and Z
dun
22 / 26
Types of Process Engines
Process Representation:
Generic (Explicit) vs. Hard-Coded (Implicit) Process Modeling Language:
Standard (BPMN, WS-BPEL) vs. Custom Deployment:
Standalone vs. Embedded
Commercial Engines
Open Source Engines
IBM WebSphere Process Server Oracle BPMS
Microsoft BizTalk, Windows Work!ow Foundation SAP NetWeaver BPM
Software AG webMethods Appian BPMS
BizAgi BPM Suite Bosch inubit Suite OpenTex tBPM Perceptive BPMONe Progress Savvion TIBCO ActiveMatrix BPM
Whitestein Living Systems Process Suite
Activiti Camunda Stardust Apache ODE Bonita Intalio BPM JBoss jBPM YAWL JOpera References
Marlon Dumas, Marcello La Rosa, Jan Mendling, Hajo Reijers, Fundamentals of Business Process Management, Chapter 5, Springer, 2013, ISBN 978-3-642-33142-8
Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju, Web Services: Concepts, Architecture and Applications, Springer 2004
Carsten Hentrich, Uwe Zdun, Patterns for Process-Oriented Integration in Service-Oriented Architectures, EPLOP 2006
Gio Wiederhold, Peter Wegner, Stefano Ceri, Toward Megaprogramming, CACM 35(11):89-99, November 1992
Frank DeRemer, Hans Kron, Programming-in-the large versus programming-in-the-small, Proceedings of the international conference on Reliable software, p. 114-221, 1975