Business processes, business rules, complex event processing, the JBoss way

Embed Size (px)

Citation preview

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