JBoss BRMS sneak peak,the future is now for your business processes
Eric D. SchabellJBoss Technology Evangelist
http://www.schabell.org@ericschabell
JBoss BRMS OverviewBRMS for BusinessBRMS for DevelopersWhat's new?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.
JBoss Enterprise BRMS
Web-based development tools
Business Analysts
Developers
JBDS, with BRMS plugins
Business ProcessManagerRule EngineEvent ProcessorEnterprise ApplicationWeb ServiceJava Code
Business Users
Business Process DefinitionsRepository
Business Rule & Event Definitions
Business Events
Business Data
Deploy
Interacts with...
Management Console
Operations
Manage & Monitor
DecisionService
Heres 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 weve packed a lot more into JBoss BRMS...
The runtime services include...
BPMN 2.0
OMG specification
Model
Notation
Execution semantics
Understandable by all business users
Process, collaboration, choreography
Extensible
BRMS BPM and BPMN2
Focus on executable processes
Java environment
Native execution
Subset
Common Executable ++
High-level and domain-specific
Minimal custom extensions
JBoss BPMN2 coverage
BPMN2Model
ProcessChoreographyCollaborationServices
WS-BPEL
BRMS (jBPM)SOA-P (RiftSaw)(Savara)SOA-PRulesEventBRMS (Drools)
JBoss BRMS OverviewBRMS for BusinessBRMS for DevelopersWhat's new?
Overview
Business users
Web process designer
Dynamic development / teaming
Adaptive / ad hoc processes
Human tasks
Domain specific processes
Functional administration
Web process designer
One of the bestprocess editorsin existence.
Dynamic development
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 applicationsLeverages JBoss Rules execution engine which has been available for yearsAdds new browser-based Rules Mgmt app, enabling business users to participate in the review, editing, and maintenance of business rule changesAlso adds Repository to provide version management of multiple sets of business rulesSupports the deployment of business rules to JBoss middleware platforms and non-JBoss runtime environments
Processes + Rules + Events
Adaptive Process
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
BusinessUser
Developer
Human Tasks Example
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
Automate generation
Business user generatestask forms from button inweb designer
Generates HTML templates from tasks
Human Task Forms
End User
HR
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
Domain-specific processes
Hide implementation details
Extend palette
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..
Domain-specific Service Repository
Administration Console
JBoss BRMS OverviewBRMS for BusinessBRMS for DevelopersWhat's new?
Overview
Technical users
Core engine / API
Tooling support
Transactions / Events
Easy integration
Service repository
Testing
BRMS BPM core
Core engine is a workflow engine in pure Java
state transitions
lightweight
embeddable
generic, extensible
CoreEngine
ProcessRuntime interface
startProcess(processId)
startProcess(processId, parameters)
signalEvent(type, event)
signalEvent(type, event, instanceId)
abortProcessInstance(instanceId)
getProcessInstance(instanceId)
API is much better than competitors.
Core Engine - BRMS way of working
KnowledgeBaseStatefulKnowledgeSessionProcessDefinition
ProcessInstance
The engineissolid.
BRMS 5.3
tooling support
CoreEngineBPMN2.0XMLJBDS 5 BPMN2 EditorWeb Designer(business users)
jBPM perspective
project wizards
process artifact repository integration
process debugging
development views for human tasks
BRMS 5.3 transaction support
CoreEngineBPMN2.0XMLPersistenceTrans-actionsJPA(runtime, history, services)JTA(command-scoped, user-defined)
BRMS 5.3 event support
CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsHistoryLogManagementConsole
BRMS 5.3 integration support
CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsIntegrationDomain-specificProcessesHuman Task Service(WS-HT)
Architecture
RulesYourServicesCore
EngineArtifactRepositoryJBoss Dev StudioWeb-BasedDesigner
HistoryLog
TaskServiceJBoss Central
YourApplication
Core Services
BusinessAnalyst
Developer
Service repository
Extend palette with domain-specific, declarative service nodes
define input / output parameters
runtime binding
repository
Service Repository Node
[ [ "name" : "JavaNode", "parameters" : [ "class" : new StringDataType(), "method" : new StringDataType(), ], "displayName" : "Java Node", "icon" : "icons/java.gif" ]]
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"); }}
Testing II
public void testProcess2() { // 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("[email protected]", workItem.getParameter("From")); assertEquals("[email protected]", 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");}
JBoss BRMS OverviewBRMS for BusinessBRMS for DevelopersWhat's new?
JBoss BRMS in a Nutshell
BPMN2.0
XMLWeb Designer(business users)JBDS 5 BPMN2 Editor
PersistenceTrans-actions
ManagementConsoleHistoryLog
Events
CoreEngineDomain-specificProcessesHuman Task Service(WS-HT)IntegrationPluggable&Standards
Operations
jBPM Functional / Technical OperationsIntegration with BRM (process artifacts)
Web administration consoleHuman task management
process administration
Pluggable to JBoss Operation Network (JON)alerts long running sessions
knowledge base parameters
view running sessions
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 applicationsLeverages JBoss Rules execution engine which has been available for yearsAdds new browser-based Rules Mgmt app, enabling business users to participate in the review, editing, and maintenance of business rule changesAlso adds Repository to provide version management of multiple sets of business rulesSupports the deployment of business rules to JBoss middleware platforms and non-JBoss runtime environments
What is not in BRMS
Migration tooling
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.
Team is quickto implementsuggestions.
Rewards Demo
https://github.com/eschabell/brms-rewards-demo
Integration and BPM Week - October 15-18
http://www.redhat.com/promo/jboss_integration_week/
Click to edit the title text format
Click to edit the outline text format
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level
Click to edit the title text format
Click to edit the outline text format
Add title here
This is a standard slide for your content
Please dont forget to add your name in the footer otherwise
there will be the placeholder Presenter Name. You can edit the
footer information in the
menu VIEW --> MASTER --> SLIDE MASTER and then click in the
text box below
Top Related