350 likes | 563 Views
Do & Don’ts of BPM The Full Stack. 13/03/2008 Joram Barrez - Dolmen. About. Software engineer at Dolmen Computer Applications Using jBPM from Monday to Friday Before january ’08 business processes on a small scale
E N D
Do & Don’ts of BPMThe Full Stack 13/03/2008 Joram Barrez - Dolmen
About • Software engineer at Dolmen Computer Applications • Using jBPM from Monday to Friday • Before january ’08 business processes on a small scale • Since january ’08, in a team of 3 people building a large scale back-end using jBPM for process orchestration in a departement of the Flemish governement • Other fields of interest: • Agile development & (J)Ruby on Rails
Goals • jBPM in some real-life action • Demonstration use case: PoC “jBPM orchestration” • Revitalization of mainframe architecture • PoC built to show feasability of project • Using some “cool” technologies (jBPM, ESB, EJB3, …)
Content • CustomerRequirements • JBPM Performance • Proof of Concept • BI/BAM • Demo
Requirements • Every application talks directly to its dependent applications • Mediation required to keep it manageable • Workflow logic is scattered across different applications • Centralisation needed • Reporting functionality is a must • It must be “fast enough”
Why jBPM? • Previous experience • Embeddable • jBPM is “Yet Another Java Library” • jBPM can be used in any application (web, desktop, enterprise, …) on any database • Openness • Extremely extensible, what often is needed in business processes • Convenient for developers
Content • CustomerRequirements • JBPM Performance • Proof of Concept • BI/BAM • Demo
jBPM Performance • We knew jBPM could tackle the workflow requirements • But is it “fast enough”? • Simple measurement used (e.g. no dedicated server) • 2500 runs of an automated jBPM process (jpdl 3.2.2) • Timings are average between start en stoptime of the processes • Intel Core Duo 2 Ghz • 2 GB DDR2 RAM • 5400 rpm SATA HD • MySQL 5.0.45 Database
Some performance numbers (sequential) 2 ms 2 ms 3 ms Non-optimized Hibernate config: 16 ms! From 1.800.000 processes/hour 225 000 processes/hour 5-6 ms
Some performance numbers 12 ms 5 ms
New Report created Check Report type Some reports need manual verification Automatic checking Realistic business process: Handling a hospital report 3 ms Complete & archive report Remove report
Content • CustomerRequirements • JBPM Performance • Proof of Concept • BI/BAM • Demo
Proof of Concept (PoC) • Goal: build a small scale application that proofs the feasibility of the project • But easily can be mapped to a larger scale • Only one business process (“Handling a hospital report”) • Only two applications need communication • Report generator • Client application
Application mediation • Problem: applications talk to each other directly, resulting in a cobweb of dependent applications • Enterprise Application Integration (EAI) problem • Topic on its own • Solution (for this PoC) • Enterprise Service Bus (ESB)
What is an ESB? (without getting too technical) Destination • Best comparison: mailbox “ROUTING” Protocol? Don’t care, as Long as the message Is delivered
What is an ESB? (without getting too technical) Destination “ROUTING” TCP/IP Advantage: applicationsonly need to communicate withthe ESB. They don’t need to use the‘language’ of the destination anymore SOAP(Webservice) Protocol? JMS • Products • Mule ESB (customer pref) • BEA Aqualogic • JBoss ESB* • SOA platform (inc. jBPM) Don’t care, as Long as the message Is delivered * http://parleys.com/display/PARLEYS/JBoss+ESB by Johan Kumps
Proof-of-Concept overview Automatic Report Generation (XML)
Proof-of-Concept overview Automatic Report Generation (XML) TCP MULE ESB
Proof-of-Concept overview Automatic Report Generation (XML) TCP TRANSFORMATION (XSLT) MULE ESB JMS MESSAGE JMS QUEUE
Proof-of-Concept overview Automatic Report Generation (XML) TCP TRANSFORMATION (XSLT) MULE ESB JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB)
Proof-of-Concept overview Automatic Report Generation TCP TRANSFORMATION (XSLT) MULE ESB JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB)
Content • CustomerRequirements • JBPM Performance • Proof of Concept • BI/BAM • Demo
Business Intelligence (BI) / Business Activity Monitoring (BAM) • BI ~ BAM • BAM real-time monitoring/analysing metrics • BI historical monitoring/analysing metrics • e.g. stock trade buy/sell according to metrics • Extracting extra business information for taking “business decisions” • Simple example • Car repair Availability of car history (malfunctions,…) Better judgement when fixing the car
Business Intelligence (BI) / Business Activity Monitoring (BAM) • BI/BAM is an “art” • Tailoring to business is always needed • Research field on its own (even academical) • Data mining, OLAP, KPI, data warehousing, slice/dice analysis, ETL, … • Managers BI/BAM “What you can’t measure, you can’t manage”
BI/BAM & jBPM • BI/BAM often integrated in BPM products • jBPM does not offer such functionality • Discussions about BI/BAM and jBPM can be tracked online, so it will be only a matter of time (hopefully) • So, why should we choose jBPM if BI/BAM is missing? • BI/BAM is extremely business-specific, so there will always be need for custom implementations • Openness of jBPM allows extremely business-specific BI/BAM, which could be impossible with pre-made BI/BAM solutions
PoC: BAM with SeeWhy* • Young & enthousiastic, UK based software company • Extremely well documented (hundreds of pages) • 74 pages “SeeWhy with jBPM” • SeeWhy Community/Enterprise Edition • Realtime metrics, real time alerts, real time actions * http://www.seewhy.com/
SeeWhy workings Event Queue (JMS) Event Calculations/ Aggregations e.g. Show the average number Of reports processed the last hour
Combining jBPM & SeeWhy Send an event to the queue on the SeeWhy server
Business Intelligence with jBPM • All historical data is stored in the database by the jBPM engine • So, BI is a matter of writing “the right queries” • PoC • Simple BI app(JRuby on Rails)
Report Generation PoC : Complete picture (XML) TCP TRANSFORMATION (XSLT) JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB) 11/03/2014 ı 32 BAM BI
DEMO TIME
Lessons learned • jBPM allows us to implement a wide range of business processes, since we have the power of Java at disposal • Business analysts aren’t fond of jBPM at first encounter • Building business processes is not a matter of drag-and-drop! • Business processes can’t be built without programmatic logic! • Transactions, performance, … • BI/BAM sells! • Defining a basic BI/BAM framework for jBPM