4. Business Process Model and Notation
Graphical representation for specifying business processes.
Providing a notation that is intuitive to business users :-)
Maintained by OMG (Object Management Group).
Similar to Activity Diagrams from UML.
Provides a mapping between
the graphics of the notation
and the underlying constructs
of execution languages (BPEL).
Shows the flow of data (messages),
but it is not a data flow diagram.
4
5. Example Diagram
Business Process BPMN
Activity2
FirstLine
Activity1
StartEvent1 EndEvent1
Activity3
SecondLine
Activity4
Use Case1
(from Use Case)
5
6. Elements
Flow objects
̶ Activity
̶ Event
̶ Gateway
Connecting object
̶ Sequence flow
̶ Message flow
̶ Association
Swim lanes
̶ Pool
̶ Lane
Artifacts
̶ Data object
̶ Group
6
15. Drools/JBoss BRMS
Drools Guvnor: A centralised repository for Drools
Knowledge Bases. The repository component is
where you can store versions of rules, models,
functions, processes etc.
Drools Expert: A forward chaining rule engine based
on Rete algorithm.
jBPM: A light-weight, extensible workflow engine
written in pure Java that allows to execute business
processes using the latest BPMN 2.0 specification.
15
18. Knowledge Base
Contains a reference to all the relevant process definitions.
Can be shared across sessions.
Usually is only created once (at the start of the application).
Can be dynamically changed (add/remove process at runtime).
KnowledgeBuilder kBuilder =
KnowledgeBuilderFactory
.newKnowledgeBuilder();
kBuilder.add(ResourceFactory
.newClassPathResource("hello.bpmn"),
ResourceType.BPMN2);
KnowledgeBase kBase =
kBuilder.newKnowledgeBase();
18
19. Session
Can be created based on a knowledge base.
Are used to execute processes and interact with engine.
Multiple sessions can be created (independency, scalability).
Is relatively lightweight.
StatefulKnowledgeSession session =
kBase.newStatefulKnowledgeSession();
ProcessInstance process =
session.startProcess(
"com.adastracorp.jbpm.hello");
19
20. Events
Session can register listeners.
ProcessEventListener listens to process-related events.
KnowledgeRuntimeLoggerFactory adds logger to session.
̶ console logger
̶ file logger
20
23. Process Node Types
Events: They are used to model the occurrence of a particular
event.
Activities: These define the different actions that need to be
performed during the execution of the process.
Gateways: Can be used to define multiple paths in the
process.
23
24. Events
Start Event: The start of the process.
End Events
̶ End Event: The end of the process.
̶ Throwing Error Event: Can be used to signal
an exceptional condition in the process.
Intermediate Events
̶ Catching Timer Event: A timer that can trigger
one or multiple times after a given period of
time.
̶ Catching Signal Event: Can be used to
respond to internal or external events during
the execution of the process.
24
25. Gateways
Diverging Gateway
̶ AND (parallel)
̶ XOR (exclusive)
̶ OR (inclusive)
Converging Gateway
̶ AND
̶ XOR
25
26. Activities
Script Task: A script that should be executed in this
process. Can access any variables and globals.
Service Task: An (abstract) unit of work that should
be executed in this process (work that is executed
outside the process engine).
User Task: An (atomic) task that need to be
executed by human actors.
Reusable Sub-process: An invocation of another
process from within this process.
Business Rule Task: A set of rules that need to be
evaluated. Rules are defined in separate files using
the Drools rule format.
26
27. Activities
Embedded Sub-process: A Sub-
Process is a node that can contain
other nodes so that it acts as a node
container. If you use a terminating
event node inside a sub-process, you
are terminating the top-level process
instance, not just that sub-process.
Mulit-instance Sub-process: Allows you
to execute the contained process
segment multiple times, once for each
element in a collection.
27
29. Human Tasks
Based on the WS-HumanTask specification.
An atomic task that needs to be executed by a human actor.
Can be assigned to
̶ one specific user
̶ one or more groups
Can be used in combination with swimlanes to assign multiple
human tasks to the same actor.
Human task service
̶ manages the life cycle of the tasks (creation, claiming, completion, etc.)
̶ stores the state of all the tasks
̶ supports features like internationalization, calendar integration, different
types of assignments, delegation, deadlines, etc.
29
33. Debugging
Process Instance(s) View shows the currently running process
instances.
Human Task View can connect to a running human task
service and request the relevant tasks for a particular user.
Audit View is a log of all events that were logged from the
session.
33
34. What has been omitted
Rule Tasks
Persistence
Transactions
Domain-specific processes
Process (Knowledge) repository
Business Activity Monitoring
Flexible Processes
34