Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Do

on

  • 400 views

 

Statistics

Views

Total Views
400
Slideshare-icon Views on SlideShare
400
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • The goal of this presentation is demonstrating the use of jBPM in a real-life application. The application that is used, is a proof-of-concept which was developped for one of our customers. 11/18/10
  • This is an application architecture which is typically found in companies which have used ICT for quite some time time. In this example, there is a large mainframe machine on which both legacy programs (upper right) and more modern programs (left) are running. Some applications are implemented as terminal programs (the application runs entirely on the server, lower right) and some are outside the mainframe, but they are using some functionality offered by the applications running on the mainframe. Commons for this “organically grown” architectures is a cobweb of dependent applications. Also notice that most of the workflow management logic (WFM) is scattered accross different applications. 11/18/10
  • These are the requirements for the proof-of-concept 11/18/10
  • This slide explains why we chose jBPM to implement the workflow logic 11/18/10
  • Before we start building the proof-of-concept, we first had to make sure that jBPM was “fast enough” 11/18/10
  • For simple sequential actions, the performance of jBPM is very good. The actions don’t have any logic in them (so we only measure the jBPM overhead). Every action has a different handler class, so that no caching can happen between the nodes of the same process. For these setups, we see that jBPM is very fast, what is to be expected since only some Hibernate calls are necessary. 11/18/10
  • Parallel execution paths are more difficult, but as shown on the slide the average running time is in line of expectation (which is very good). 11/18/10
  • This business process is a real-life example. The measurement was done using a report generator thread and a users-mimicing thread so the measuring went automatic. There is an overhead of these threads, but the average running time of 3 ms shows that it is minimal. 11/18/10
  • The core functionality of an ESB is “routing’. In reality, an ESB also has other functionality (transformation, indexation …) Basically this is sending a message to a given destination, using a specific protocol. The application that sends the message however, does not know this protocol (altough it is possible). 11/18/10
  • Change the mailbox with an ESB and the destination with another server/application and the story remains the same. The link on the bottom of the slide is done by a collegue (he is a committer of Jboss ESB). 11/18/10
  • The next slides give a graphical overview of the proof-of-concept. This is important to understand what will be shown in the demo movie on the end. To start, we have an application which constantly generates XML reports 11/18/10
  • These XML reports are sent to a Mule ESB using the low-level TCP protocol. 11/18/10
  • On the ESB, the XML message is transformed using XSLT (the data that is not needed is thrown away). The XML report is now sent to a JMS queue which is running on a Jboss server 11/18/10
  • On the same Jboss server, an EJB 3 MDB (Message Driven Bean) is running. This MDB takes messages from the JMS queue, parses the XML report and calls operations on the BPM service according to the information that is contained in the XML. The BPM service is implemented using the EJB3 Stateless Session Beans technology. This service is in fact a wrapper around the jBPM process, provinding entry/exit methods for this process (=signal methods, data retrieval methods). 11/18/10
  • Graphical animation of the proof-of-concept 11/18/10
  • Since we used the EJB 3 technology, we can cluster (scaling/high availability/fault tolerance) some Jboss servers to cope with high loads/SLA’s 11/18/10
  • To use SeeWhy, we have to sent an event to the SeeWhy event queue. This is easiliy done by using a custom class and attaching it to a jBPM node. The logic in the class will construct the event and sent it to the event queue. 11/18/10

Do Do Presentation Transcript

  • 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
      • 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
    18/11/10 ı
  • 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, …)
    18/11/10 ı
  • Content
    • Customer Requirements
    • JBPM Performance
    • Proof of Concept
    • BI/BAM
    • Demo
    18/11/10 ı
  • Typical architecture 18/11/10 ı
  • 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 ”
    18/11/10 ı
  • 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
    18/11/10 ı
  • Content
    • Customer Requirements
    • JBPM Performance
    • Proof of Concept
    • BI/BAM
    • Demo
    18/11/10 ı
  • 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 stop time of the processes
    18/11/10 ı
    • Intel Core Duo 2 Ghz
    • 2 GB DDR2 RAM
    • 5400 rpm SATA HD
    • MySQL 5.0.45 Database
  • Some performance numbers (sequential) 18/11/10 ı 2 ms 2 ms 3 ms 5-6 ms Non-optimized Hibernate config: 16 ms! From 1.800.000 processes/hour  225 000 processes/hour
  • Some performance numbers 18/11/10 ı 5 ms 12 ms
  • Realistic business process: Handling a hospital report 18/11/10 ı 3 ms Complete & archive report Remove report New Report created Check Report type Automatic checking Some reports need manual verification
  • Content
    • Customer Requirements
    • JBPM Performance
    • Proof of Concept
    • BI/BAM
    • Demo
    18/11/10 ı
  • 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
    18/11/10 ı
  • 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)
    18/11/10 ı
  • What is an ESB? (without getting too technical)
    • Best comparison: mailbox
    18/11/10 ı Destination Protocol? “ ROUTING” Don’t care, as Long as the message Is delivered
  • What is an ESB? (without getting too technical) 18/11/10 ı Destination Protocol? “ ROUTING” Don’t care, as Long as the message Is delivered TCP/IP SOAP(Webservice) JMS
    • Products
    • Mule ESB (customer pref)
    • BEA Aqualogic
    • JBoss ESB*
      •  SOA platform (inc. jBPM)
    * http://parleys.com/display/PARLEYS/JBoss+ESB by Johan Kumps Advantage: applications only need to communicate with the ESB. They don’t need to use the ‘language’ of the destination anymore
  • 18/11/10 ı Automatic Report Generation (XML) Proof-of-Concept overview
  • 18/11/10 ı Proof-of-Concept overview Automatic Report Generation (XML) TCP MULE ESB
  • 18/11/10 ı Proof-of-Concept overview Automatic Report Generation (XML) TCP TRANSFORMATION (XSLT) JMS MESSAGE MULE ESB JMS QUEUE
  • 18/11/10 ı Proof-of-Concept overview Automatic Report Generation (XML) TCP TRANSFORMATION (XSLT) JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB) MULE ESB
  • 18/11/10 ı Proof-of-Concept overview Automatic Report Generation TCP TRANSFORMATION (XSLT) JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB) MULE ESB
  • 18/11/10 ı
  • Content
    • Customer Requirements
    • JBPM Performance
    • Proof of Concept
    • BI/BAM
    • Demo
    18/11/10 ı
  • 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
    18/11/10 ı
    • 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
    Business Intelligence (BI) / Business Activity Monitoring (BAM) 18/11/10 ı “ 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
    18/11/10 ı
  • 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
    18/11/10 ı * http://www.seewhy.com/
  • SeeWhy workings 18/11/10 ı Event Calculations/ Aggregations Event Queue (JMS) e.g. Show the average number Of reports processed the last hour
  • Combining jBPM & SeeWhy 18/11/10 ı 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)
    18/11/10 ı
  • PoC : Complete picture 18/11/10 ı 18/11/10 ı Report Generation (XML) TCP TRANSFORMATION (XSLT) JMS MESSAGE JMS QUEUE EJB 3 MDB BPM Service (EJB 3 SLSB) BAM BI
  • 18/11/10 ı 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
    18/11/10 ı
  • 18/11/10 ı