290 likes | 434 Views
How Does BPM Relate to JBI, BPEL and Integration. Tom Baeyens JBoss jBPM. BPEL is a clumsy way to support Business Process Management. Agenda. Integration Example SOA, ESB, JBI and WS-BPEL Business Process Management Goals Process Languages Pure-Play BPM Conclusions. n * (n-1)
E N D
How Does BPM Relate to JBI, BPEL and Integration Tom Baeyens JBoss jBPM
Agenda Integration Example SOA, ESB, JBI and WS-BPEL Business Process Management Goals Process Languages Pure-Play BPM Conclusions
n * (n-1) 2 Application Integration • Trend • # enterprise apps • # integrations • Maintenance nightmare
Enterprise Service Bus • Based on async messaging • One service interface (e.g. WSDL) • Extra (mgmt, secutity, routing, ...) Enterprise Service Bus
Note on Loosely Coupled • ‘Loosely coupled’ • Loose, looser, loosest ? • Tradeoff • Tighter • Refactoring • Performance • Easy development • Easy deployment • Looser • Less chance of cascading updates
Dependency Types • Remoteness • Invocation in a thread in one JVM • Inter Process Communication (IPC) • Data format • XML • Java objects • ... • Synchronicity • Availability • Scaling
EAI Example QuoteService qs = (QuoteService) esb.findService(“quotes”); Quote q = qs.getQuote(Products.NAPPY); order(q.getVendor(), q.getProduct(), 3); public interface QuoteService { Quote getQuote(Product p); }
Example Deployment <quote> <item>nappy</item> </quote> OurApp QuotesServer <quote-response> <item>nappy</item> <price>$7</price> </quote-response>
Example Stub Implementation public class QuoteServiceStub implements QuoteService { public Price getQuote(Product p) { Message quoteMsg = createQuoteMsg(p); sendMsg(quoteMsg); Message priceMsg = receiveMsg(); return priceMsg.getPrice(); } }
Tx Tx Tx Path of Execution OurApp QuotesServer
Stubs 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);
WS-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
Java Business Integration • Environment for • Java components • With WSDL interface • App developer deploys to engines Normalized Message Router BPEL engine XSLT engine ... engine
Integration Broker Suites • Type of product • ESB+ • Orchestration engine • Other extra services • Consensus around BPEL
Business Process Management A different branch in the line of software evolution
Business 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
Workflow Describing how people work together for business processes • Focus on coordination of human tasks • Sometimes IT systems are included
Business 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
BPM 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
BPM System Challenges • Support for long running processes • Integration with systems • Human tasks • Graphical representation • Common language
Pure-Play BPM • Software productsfor workflow and BPM • Process language for expressing business processes • Runtime engine to support long running processes • No consensus about foundation
JBoss 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
Required Features for BPM • Support for long running processes • Graphical representation • Task management • Programming logic • Application integration
Conclusions • 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
Java Apps The SOA Level (XML, WSDL & SOAP) Orchestration BPM Enterprise Service Bus (ESB) The Programming Level (Java, C#, ...) Legacy App JEE Application Server .NET App BPM
Q&A • JBoss jBPM http://jbpm.org • JBoss http://jboss.com • JBI http://jcp.org JSR 208 • Enterprise Integration Patterns Gregor Hophe Bobby Woolf