If you can't read please download the document
Upload
kris-verlaenen
View
8.532
Download
0
Embed Size (px)
Citation preview
PowerPoint Presentation
Kris Verlaenen
jBPM Project LeadJune, 2012
jBPM5: Bringing more Power
to your Business Processes
jBPM,
Open Source BPM
jBPM Overview
jBPM Project
jBPM walkthrough
Roadmap
What is BPM?
A business process is a process that describes
the order in which a series of steps need to be executed,
using a flow chart.
Business Process Management
Why BPM?
Visibility
Monitoring
Higher-level
Continuous improvement
Speed of development
Increased agility
jBPM Project
(Executable) business processeslight-weight, native BPMN2 engine
from embedded to as a service
Entire life cycle
Both developers and business users
Advanced, adaptive processes
Model
Deploy
Execute
Monitor
Life
Cycle
BPM
BusinessAnalyst
Developer
EndUser
SystemAdministrator
RulesYourServicesCore
EngineGuvnorRepositoryEclipse EditorWeb-BasedDesigner
HistoryLog
TaskServicejBPM Console
YourApplication
Core Services
BusinessAnalyst
End User
Developer
Model
Deploy
Execute
Monitor
Key Characteristics
Open-source, lightweight
Native BPMN 2.0
High-level business processes
Business user & developer collaborate
Advanced, adaptive processes
Modularized, pluggable, standards
Advanced, adaptive processes
(One of the) most advanced open-source BPMN2 engine
Adaptive, ad-hoc, dynamic processes
Integration and unification with business rules and complex event processing
jBPM Walkthrough
Core engine
From Workflow to BPM
Extra features
Social, Cloud and Mobile
Core Engine
Core engine is a workflow engine in pure Java
state transitions
lightweight
embeddable
generic, extensible
CoreEngine
Core Engine
KnowledgeBaseStatefulKnowledgeSessionProcessDefinition
ProcessInstance
Java Interface
ProcessRuntime interfacestartProcess(processId)
startProcess(processId, parameters)
signalEvent(type, event)
signalEvent(type, event, instanceId)
abortProcessInstance(instanceId)
getProcessInstance(instanceId)
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
instanceksession.startProcess(com.sample.bpmn.hello);
From Workflow
to BPM
From Workflow to BPM
CoreEngineBPMN2.0XML
BPMN 2.0
System.out.println("Hello World");
System.out.println("Hello World");
jBPM Eclipse Plugin
Developer-focused
Features:Wizards, runtimes, perspective
Graphical editor
Testing and debugging
Service repository, generators
Guvnor integration
Web-based Designer
Business User-focused
FeaturesGraphical Editor
Visual validation
Service repository, generators
Guvnor integration
Based on Oryx DesignerJavaScript, JSON
From Workflow to BPM
CoreEngineBPMN2.0XMLPersistenceTrans-actionsJPAJTA
Persistence and Transactions
Persistence (JPA, pluggable)Runtime persistence
History logging
Services
Transactions (JTA, pluggable)Command-scoped
User-defined
Persistence
Core engine no persistence
Macro transactions
Binary persistence of runtime data
Separation of history information
External servicesusing work items, async
independent task service
startProcess
Task
Service
Tasks
addTask
TaskTaskRuntime1 active d/m/yy hh:mm ...
1 Task1 sales ...
2 Task2 HR ...
Process
EngineProcessInstance
complete
Task
Service
Tasks
complete
TaskTaskRuntime1 active d/m/yy hh:mm ...
1 Task1 sales ...
2 Task2 HR ...
Process
EngineProcessInstance
complete
Task
Service
Tasks
complete
TaskTaskRuntime1 active d/m/yy hh:mm ...
1 Task1 sales ...
2 Task2 HR ...
Process
EngineProcessInstance
From Workflow to BPM
CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsHistoryLogManagementConsoleBAM
Console
Web-based management
Business user
Features
Process instance management
User task lists / forms
Reporting
Console
GWT
Generic BPM consolejBPM integration code
REST API
One embedded sessionPersistence, history logging
Eclipse BIRT reporting: custom reports
From Workflow to BPM
CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsIntegrationDomain-specificProcessesHuman TaskServiceESB
Domain-specific Processes
Extend palette with domain-specific, declarative service nodes
define input / output parameters
runtime binding
Domain-specific Processes
Why?Domain-specific
Declarative
High-level
Context-defined
Other examplesHuman task
Java method
WS, Rest
Email, Twitter
FTP, RSS, Jabber
Finder, Exec, Archive
Google Calendar
YOUR SERVICES !
Repository !
Service Repository
Example: Notification
[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]
[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]
Example: Notification
class NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}
class NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}
Human task service
User task
Human task service (WS-HT)
Task lists
Task life cycle
Task clients
Task forms
Human Task Service
Independent, pure Java implementation
Different underlying technologiesLocal
Apache Mina, HornetQ, JMS
I18N, calendar, deadlines, escalation
UserGroupCallback
SwitchYard
SwitchYard BPM component
Lightweight service delivery framework providing full life cycle support for developing, deploying, and managing service-oriented applications
Extra Features
Extra features
Process instance migration
JUnit testing
Spring
OSGi
Migration from jBPM3(/4)
Installer
Out-of-the-box working environment
Sample process
ComponentsEclipse (jBPM + Drools)
Guvnor + Designer
jbpm-console
Services
H2 DB, human task service, history log
Examples
Evaluation
Examples moduleLooping
Multi-instances
Human tasks (including user / group assignment, delegation, forms, etc.)
Process + rules integration
Social, Cloud
and Mobile
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)
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
Exceptional Control Flow
90%
5%3%2%
Exceptional Control Flow
90%Rule1When...Then...Rule2When...Then...Rule3When...Then...5%3%2%
Example: Clinical DSS
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)
JBoss AS 7
Blazingly fast
Lightweight
Module core
jBPM5 on AS7: Lightning !
OpenShift
Based on Open Source
Innovation
Choice
Java, PHP, Ruby, Python, Perl & more
Express, Flex, Power
Amazon EC2
jBPM Everywhere
Run jBPM5 natively on Android
Roadmap
3.0
Feb'11Jun'11Dec'11Apr'12jBPM 5.0
5.1
5.2
5.3
Eclipse DesignerForm Builder
Service repositoryWeb DesignerAS7
ExamplesDocumentationJUnit test
6.x
Common ExecutableSimulationOpenShiftAs a service
5.x
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
Roadmap: jBPM 5.3
Date: May 21st, 2012
Eclipse Designer
Form Builder
Web Designer
Test and form generators
Eclipse BPMN2 editor
http://eclipse.org/projects/project.php?id=soa.bpmn2-modeler
Eclipse BPMN2 editor
eclipse.org project
Using Eclipse BPMN2 EMF model
Graphical editor for full BPMN2 specification (based on Graphiti)
Target engine + profiles
Custom jBPM editors / extensions
Form Builder
Generate form for process / task
Graphically design process (D&D)
Triggers, validation
Integrated into
Guvnor
Roadmap: jBPM 5.x
Simulation and replay
BPM as a serviceExpose as ...
Session mgmt and HA
Integrate with external services
Cloud
Kris Verlaenen
jBPM Project LeadJune, 2012
jBPM5: Bringing more Power
to your Business Processes
jBPM,
Open Source BPM
Click to edit the title text format