Title: How Does BPM Relate to JBI, BPEL and Integration
1How Does BPM Relate to JBI, BPEL and Integration
Tom Baeyens JBoss jBPM
2- BPEL is a clumsy way to support Business
Process Management
3Agenda
- Integration
- Example
- SOA, ESB, JBI and WS-BPEL
- Business Process Management
- Goals
- Process Languages
- Pure-Play BPM
- Conclusions
4Application Integration
- Trend
- enterprise apps
- integrations
- Maintenance nightmare
5Enterprise Service Bus
- Based on async messaging
- One service interface (e.g. WSDL)
- Extra (mgmt, secutity, routing, ...)
Enterprise Service Bus
6Note on Loosely Coupled
- Loosely coupled
- Loose, looser, loosest ?
- Tradeoff
- Tighter
- Refactoring
- Performance
- Easy development
- Easy deployment
- Looser
- Less chance of cascading updates
7Dependency Types
- Remoteness
- Invocation in a thread in one JVM
- Inter Process Communication (IPC)
- Data format
- XML
- Java objects
- ...
- Synchronicity
- Availability
- Scaling
8EAI Example
public interface QuoteService
Quote getQuote(Product p)
- QuoteService qs (QuoteService)
esb.findService(quotes)
- Quote q qs.getQuote(Products.NAPPY)
- order(q.getVendor(), q.getProduct(), 3)
9Example Deployment
nappy
QuotesServer
OurApp
nappy 7/price
10Example Stub Implementation
public class QuoteServiceStub
implements QuoteService public Price get
Quote(Product p) Message quoteMsg createQuo
teMsg(p) sendMsg(quoteMsg) Message priceMs
g receiveMsg() return priceMsg.getPrice()
11Path of Execution
QuotesServer
OurApp
12Stubs Inappropriate for Async
QuoteService qs (QuoteService)
Services.findService(quotes)
Quote q qs.getQuote(Products.NAPPY) order(
q.getVendor(), q.getProduct(), 3)
sendQuoteRequest(Products.NAPPY)
handleQuotesResponse(msg)
13WS-BPEL
- XML Scripting Language
- Express a new service as a function of other
services
- Resolves
- One piece of software
- Persist execution
- WSDL based interfaces
- XML based data
14Java Business Integration
- Environment for
- Java components
- With WSDL interface
- App developer deploys to engines
Normalized Message Router
BPEL engine
XSLT engine
... engine
15Integration Broker Suites
- Type of product
- ESB
- Orchestration engine
- Other extra services
- Consensus around BPEL
16Business Process Management
- A different branch in the line of software
evolution
17Business Process
- A recurring procedure
- in an organisation
- Starts with a goal
- Steps to take to reach the goal
- One time -- ad hoc process
- Recurrence -- business process
18Workflow
- Describing how
- people work together
- for business processes
- Focus on coordination of human tasks
- Sometimes IT systems are included
19Business Process Management
- Making an organisation
- run more efficient
- by analysing and improving
- the business processes
- Analysing business processes
- Finding and removing inefficiencies
- People and systems
- Superset of workflow
20BPM System Goals
- Improve communication
- Business analyst
- Developer
- People and systems
- Express how they work together
- Structure software around business
- Reduce translation to software design
- Create agile business
- Learn by probing
21BPM System Challenges
- Support for long running processes
- Integration with systems
- Human tasks
- Graphical representation
- Common language
22Pure-Play BPM
- Software productsfor workflow and BPM
- Process language for expressing business
processes
- Runtime engine to support long running processes
- No consensus about foundation
23JBoss jBPM
- Example of Pure-Play BPM
- Solid foundations
- Graph Oriented Programming
- Task Management
- Clean Java integration
- Timer service
- Message service (in 3.1)
- Easy
- POJO (JSE) and Enterprise (JEE)
- Any DB, Any appserver
- Scalable
- Standalone, Webapp or .ear
24Required Features for BPM
- Support for long running processes
- Graphical representation
- Task management
- Programming logic
- Application integration
25Conclusions
26Conclusions
- Product types
- Pure-Play BPM
- Integration Broker Suites
- 2 different lines of evolution
- Solved the same problems
- Long running processes
- Graphical representation
- Difference is the interface and data
- jPDL Java and java objects
- BPEL WSDL and XML
27The SOA Level (XML, WSDL SOAP)
BPM
Orchestration
Enterprise Service Bus (ESB)
The Programming Level (Java, C, ...
)
JEE Application Server
Legacy App
.NET App
BPM
28Comparing Process Languages
29QA
- JBoss jBPM http//jbpm.org
- JBoss http//jboss.com
- JBI http//jcp.org JSR 208
- Enterprise Integration Patterns Gregor
Hophe Bobby Woolf