jboss brms sneak peak, the future is now for your business processes

Download JBoss BRMS sneak peak, the future is now for your Business Processes

If you can't read please download the document

Upload: eric-d-schabell

Post on 16-Apr-2017

6.748 views

Category:

Technology


0 download

TRANSCRIPT

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