A Business Process Management System (BPMS) offers you the capabilities to better manage and streamline your business processes. JBoss continues expanding its vision in this area by offering a lightweight process engine for executing business processes, combined with the necessary services and tooling to support business processes in their entire life-cycles.
This allows not only developers but also business users to manage your business processes more efficiently. A lot has happened in the BPM area over the last few years, with the introduction of the BPMN 2.0 standard, the increasing interest in more dynamic and adaptive processes, integration with business rules and event processing, case management, etc. In this session, we will show you how JBoss BRMS leverages the jBPM project to tackle these challenge and give you an overview of its most important BPMS features.
JBoss BRMS sneak peak, the future is now for your Business Processes
1. JBoss BRMS sneak peak,
the future is now for your business processes
Eric D. Schabell
JBoss Technology Evangelist
http://www.schabell.org
1
@ericschabell
3. JBoss Enterprise BRMS
Business
Events
Interacts
Web-based Decision with... Enterprise
development tools Service Application
Business Analysts Web
Event Processor
Repository Service
Deploy Business Process
Business Business
Process Rule & Manager
Definitions Event
Definitions
Java Code
Rule Engine
JBDS, with BRMS
plugins it or
on
M
&
e
ag
an
M
Business
Developers
Users
Management Business
Console Data
Operations
3
4. BPMN 2.0
• OMG specification
●
Model
●
Notation
●
Execution semantics
• Understandable by all business users
• Process, collaboration, choreography
• Extensible
4
5. BRMS BPM and BPMN2
• Focus on executable processes
●
Java environment
●
Native execution
• Subset
●
Common Executable ++
• High-level and domain-specific
• Minimal custom extensions
5
8. Overview
• Business users
●
Web process designer
●
Dynamic development / teaming
●
Adaptive / ad hoc processes
●
Human tasks
●
Domain specific processes
●
Functional administration
8
20. Overview
• Technical users
●
Core engine / API
●
Tooling support
●
Transactions / Events
●
Easy integration
●
Service repository
●
Testing
20
21. BRMS – BPM core Core
Engine
• Core engine is a workflow engine in pure Java
– state transitions
– lightweight
– embeddable
– generic, extensible
21
22. ProcessRuntime interface
• startProcess(processId)
• startProcess(processId, parameters)
• signalEvent(type, event)
• signalEvent(type, event, instanceId)
• abortProcessInstance(instanceId)
• getProcessInstance(instanceId)
“API is much better than competitors.”
22
23. Core Engine - BRMS way of working
Stateful “The engine
Knowledge is
Knowledge solid.”
Base Session
Process Process
Definition Instance
23
24. BRMS 5.3
tooling support
XML JBDS 5 BPMN2 Editor
● jBPM perspective Core
● project wizards
● process artifact
Engine BPMN
2.0
repository integration
● process debugging
● development views
for human tasks
Web Designer
(business users)
24
26. BRMS 5.3 event support
Persistence
XML
Trans-
History actions
Core
Log Engine BPMN
2.0
Events
Management
Console
26
27. BRMS 5.3 integration support
Persistence
XML
Trans-
actions
Core
Engine BPMN
2.0
Events
Integration
Domain-specific
Processes
Human Task Service
(WS-HT)
27
28. Architecture
Your
Applicati JBoss Central
on
Core Services
Your Core History Task
Services Engine Log Service
Rules
Artifact
Repository
JBoss Dev Web-Based
Studio Designer
Developer Business
Analyst
28
29. Service repository
• Extend palette with domain-specific, declarative service
nodes
– define input / output parameters
– runtime binding
– repository
29
31. Testing I
public class MyProcessTest extends JbpmJUnitTestCase {
public void testProcess() {
// create your session and load the given process(es)
StatefulKnowledgeSession ksession =
createKnowledgeSession("sample.bpmn");
// start the process
ProcessInstance processInstance =
ksession.startProcess("com.sample.bpmn.hello");
// check whether process instance completed successfully
assertProcessInstanceCompleted(processInstance.getId(),
ksession);
// check if given nodes executed during process execution
assertNodeTriggered(processInstance.getId(),
"StartProcess", "Hello", "EndProcess");
}
}
31
32. public void testProcess2() {
Testing II
// create your session and load the given process(es)
StatefulKnowledgeSession ksession = createKnowledgeSession("sample2.bpmn");
// register a test handler for "Email"
TestWorkItemHandler testHandler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Email", testHandler);
// start the process
ProcessInstance processInstance =
ksession.startProcess("com.sample.bpmn.hello2");
assertProcessInstanceActive(processInstance.getId(), ksession);
assertNodeTriggered(processInstance.getId(), "StartProcess", "Email");
// check whether the email has been requested
WorkItem workItem = testHandler.getWorkItem();
assertNotNull(workItem);
assertEquals("Email", workItem.getName());
assertEquals("me@mail.com", workItem.getParameter("From"));
assertEquals("you@mail.com", workItem.getParameter("To"));
// notify the engine the email has been sent
ksession.getWorkItemManager().abortWorkItem(workItem.getId());
assertProcessInstanceAborted(processInstance.getId(), ksession);
assertNodeTriggered(processInstance.getId(), "Gateway", "Failed", "Error");
}
32
34. JBoss BRMS in a Nutshell
Pluggable
& JBDS 5 BPMN2 Editor
Standards Persistence
XML
Trans-
actions
Core
History Engine BPMN
2.0 Web Designer
Log (business users)
Events
Integration Domain-specific
Processes
Management Human Task Service
Console (WS-HT)
34
35. Operations
jBPM Functional / Technical Operations
– Integration with BRM (process artifacts)
– Web administration console
• Human task management
• process administration
– Pluggable to JBoss Operation Network (JON)
• alerts long running sessions
• knowledge base parameters
• view running sessions
35
36. What is not in BRMS
“Team is quick
• Migration tooling to implement
suggestions.”
●
jPDL 3.x → BPMN 2
• Eclipse BPMN2 Editor
●
http://eclipse.org/projects/project.php?id=soa.bpmn2-modeler
• JBPM Forms Builder
●
community jBPM 5.3
• Reporting (BAM) in web console
●
dependency on BIRT
●
see HowToJBoss.com for adding BIRT Reporting and
adding JasperReports. 36
38. Integration and BPM Week - October 15-18
http://www.redhat.com/promo/jboss_integration_week/
38
Editor's Notes
We will start with a discussion of how the BRMS comes to be. We will breeze over the background of BPM, discuss how the project jBPM releases are incorporated into the BRMS product. From there we will examine the interesting points as they apply to a business user, followed by the more technical elements of BRMS that will be of interest to developers. Finally we will summarize in an overview the new BPM components that come from the jBPM project. We will also mention the components that will NOT be included into the BRMS 5.3 product that are in the jBPM project. These are up and coming features that have yet to mature enough for inclusion at this time, but you can expect to appear in future versions of BRMS.
Here’s a sketch of the primary components of JBoss BRMS, and as you can see it comprises the 4 main components we just talked about... But what you might notice is that we’ve packed a lot more into JBoss BRMS... The runtime services include...
JBoss Enteprise BRMS (new in 2009) Enables critical business rules to be managed in a more centralized manner (e.g. Insurance = policy risk assess and pricing; Heathcare = claims processing annual regulatory changes) Avoids need to otherwise re-code business rules redundantly in multiple applications Leverages JBoss Rules execution engine which has been available for years Adds new browser-based Rules Mgmt app, enabling business users to participate in the review, editing, and maintenance of business rule changes Also adds Repository to provide version management of multiple sets of business rules Supports the deployment of business rules to JBoss middleware platforms and non-JBoss runtime environments
One of the main problems if u use bpm system sometimes you cannot implement all your business logic in a business process diagram because then the diagram becomes too complex. We believe there should be flexibility and ability to dynamicall change your process instances on the fly. User should decide what happens...Ad-hoc subprocess meaning that in this case we are defining process fragments – 3 possible options then end user is responsible for deciding which one of those is going to be executed..he can dynamicall add new tasks to this even tho they are not part of the original process definition.. You can combine this paradigm with other things like business rules or event process..a rule could trigger one path depending on some data or some events Not only BPMN ..Use the paradigm to be best suited for you..which could be a combination of processes, rules, event processes
When you start the process you need to specify some info – what employee and a reason HR logs whats going on .. then make a decision
We are going to generate forms (tas forms) one to start the process..and one for HR approval..generated automatically and ran on the jbpm console
Hide complexiti of the business processes – we allow you to create domain-specific nodes that use domain-specific services ..business users or developers can just drag-drop these service nodes and start using them Describe slide..each domain specific nodes and can start using them right away..
JBoss Enteprise BRMS (new in 2009) Enables critical business rules to be managed in a more centralized manner (e.g. Insurance = policy risk assess and pricing; Heathcare = claims processing annual regulatory changes) Avoids need to otherwise re-code business rules redundantly in multiple applications Leverages JBoss Rules execution engine which has been available for years Adds new browser-based Rules Mgmt app, enabling business users to participate in the review, editing, and maintenance of business rule changes Also adds Repository to provide version management of multiple sets of business rules Supports the deployment of business rules to JBoss middleware platforms and non-JBoss runtime environments