business processes, business rules, complex event processing, the jboss way
TRANSCRIPT
PowerPoint-Prsentation
Business Processes, Business Rules, Complex Event Processing with JBoss
Kris Verlaenen jBPM Project Lead
What is a Business Process?
A business process is a process that describes
the order in which a series of steps need to be executed,
using a flow chart.
What is a Business Rule?
A principle or regulation governing conduct, action, procedure, arrangement, etc.
What is Complex Event Processing?
Event detection
Event correlation
Event abstraction
Processing multiple events from an event cloud with the goal of identifying the meaningful events within the event cloud.
Why?
Visibility
Higher-level
Increased agility
Performance
Monitoring
Speed of development
Processes + Rules + Events
Motivation
A business solution usually involves the interaction between these technologies.Technology overlap
Business overlap
Attribute the same importance to the three complementary business modeling techniques
Business Logic
Events
Processes
Rules
Example: Build Management
Source: Hudson Execution and Scheduling Architecture
Example: Build Management
Source: Hudson Execution and Scheduling Architecture
New
Facts
Reasoning
Inferred
Facts
K
n
o
w
l
e
d
g
e
B
a
s
e
s
CEP
[
Temporal Reasoning
]
Knowledge Based Reasoning
Spatial Reasoning
Vehicle
Event Stream
Aircraft
Event Stream
Traffic Flow
Event Stream
Traffic Incident
Event Stream
Weather
Event Stream
Shipment
Event Stream
Stop
Event Stream
Logistic Company - Solution
Source: E. Tirelli & A. Mollenkopf - ORF2009
Vision
A knowledge-oriented platform for
developers and business users
Some technical detailsfor you developers out there !
Core Engine
Core engine is an engine in pure Java
workflow + expert system
lightweight
embeddable
generic, extensible
CoreEngine
Core Engine
KnowledgeBaseStatefulKnowledgeSessionDefinition
Instance
Java Interface
startProcess(processId)
signalEvent(type, event)
abortProcessInstance(instanceId)
getProcessInstance(instanceId)
insert(data)
update(data)
remove(data)
fireAllRules()
Java Example
// (1) Create knowledge base and add process definitionKnowledgeBuilder kbuilder = ...kbuilder.add( ..., "sample.bpmn", ResourceType.BPMN2);
KnowledgeBase kbase = kbuilder.newKnowledgeBase();// (2) Create
new stateful knowledge sessionStatefulKnowledgeSession ksession
=
kbase.newStatefulKnowledgeSession();// (3) Start a new process
instance
ksession.startProcess(com.sample.bpmn.hello);
Java Example
// (1) Create knowledge base and add process definitionKnowledgeBuilder kbuilder = ...
kbuilder.add( ..., "sample.drl", ResourceType.DRL);KnowledgeBase
kbase = kbuilder.newKnowledgeBase();// (2) Create new stateful
knowledge sessionStatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();// (3) Start a new process
instanceksession.insert(new Person(krisv));
ksession.fireAllRules();
Java Example
// (1) Create knowledge base and add process
definitionKnowledgeBuilder kbuilder = ...kbuilder.add( ...,
"sample.bpmn", ResourceType.BPMN2);kbuilder.add( ..., "sample.drl",
ResourceType.DRL);KnowledgeBase kbase =
kbuilder.newKnowledgeBase();// (2) Create new stateful knowledge
sessionStatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();// (3) Start a new process
instanceksession.insert(new
Person(krisv));ksession.startProcess(com.sample.bpmn.hello);ksession.fireAllRules();
BPMN 2.0 as the new standard
BPMN 2.0
OMG specificationModel
Notation
Execution semantics
Understandable by business users
Extensible
Interoperability between vendors
What we built around that !
Model
Deploy
Execute
Monitor
Life
Cycle
BusinessLogic
BusinessAnalyst
Developer
EndUser
SystemAdministrator
YourServicesCore
EngineGuvnorRepositoryEclipse EditorWeb-BasedDesigner
HistoryLog
TaskServicejBPM Console
YourApplication
Core Services
BusinessAnalyst
Developer
Model
Deploy
Execute
Monitor
Example: Reward System
Reward System
BusinessUser
Developer
Reward System
End User
HR
Ready for the future?
Traditional BPM systems have problems with change, complexity, flexibility, data-intensive applications, etc.
Adaptive Case Management (ACM)
Unstructured, non-lineair or flexible processes
Event-driven BPM (edBPM)
Combining Processes,
Rules and Events
IntegrationFrom loose coupling
To advanced integration
UnificationProcesses and (event) rules are different types of business knowledge assets
Tooling (IDE, repository, management)
Exceptional Control Flow
90%
5%3%2%
Exceptional Control Flow
90%Rule1When...Then...Rule2When...Then...Rule3When...Then...5%3%2%
Example: Clinical DSS
Other Features
Pluggable persistence / transactionsJPA / JTA
Domain-specific servicesService repository
Flexible session architecture
Spring / Camel / OSGi integration
Many, many more ...
Want to get started?
jBPM Installer
Out-of-the-box working environment
Sample process
ComponentsEclipse (jBPM + Drools)
AS7Guvnor
Designer
Console
What, where?
jBPM home page
Drools home page
Source http://github.com/droolsjbpm
Hudson
Blog http://kverlaen.blogspot.com/
#jbpm, #drools on irc.codehaus.org
Roadmap
3.0
Feb'11Jun'11Dec'11Apr'12jBPM 5.0
5.1
5.2
5.3
Eclipse DesignerWeb DesignerForm and test generationForm Builder
Service repositoryWeb DesignerAS7
ExamplesDocumentationJUnit test
6.x
5.x
Simulation and testingOpenshiftMobile, Social and adaptive processes
JBoss SOA-P 5
Full Support (3yrs)Transition (1yr)Maintenance (1yr)
JBoss BRMS 5.3
Full Support (3yrs)Transition (1yr)
3
3.2
5
4
6
7
Enterprise versions provide long-term support, regular releases including fixes, new features, and new platforms certifications.
New community features may be backported to Enterprise versions
JBoss Enterprise Product Delivery ModelExample: jBPM Community and Enterprise Product
While community projects continue to rapidly evolve,
enterprise middleware products focus on long term stability.
Enterprise versions provide long-term support, regular releases including fixes, new features, and new platforms certifications.
jBPM Community
Flow