Tuesday, October 26, 2010

jBPM migration strategies (part II) - process definition layer

It has been awhile since this series of articles on jBPM migration strategies was launced with an Introduction. The reason for this was that there was a flurry of activity that included the jBPM5 Request For Comments, jBPM5 Roadmap, and finally the initial jBPM5 Alpha code release. It did not feel right to base these thoughts and ideas on assumptions or trying to guess what would be the final output of these activities. Now that jBPM5 has a real target, real direction and some code to base a migration strategy on, it is time to complete the rest of the articles on jBPM migration strategies.

Background
While the Introduction article laid out several areas of interest that require attention when we position and existing jBPM project for future migration, the process initialization layer, the process definition layer, the process implementation layer, the process interaction layer, and general best practices.
    This article will cover some suggestions to help you position jBPM 3.2.x projects for migration to the coming next generation of jBPM, one that moves you to BPMN. It will also detail the status of jBPM and what will be the focus of a migration project will be explained, validating why we will be focusing on only jBPM 3.2.x initially.

    Status of jBPM
    When we are looking at the products produced by Red Hat that support enterprises we are talking about jBPM 3.2.x. This will be the initial focus of our migration efforts. It is what is supported for the coming years and where most implementations are based on that I have encountered.
    The newest member of the jBPM family is jBPM 5 which will provide tooling to model processes in BPMN. The current jBPM 3.2.x models the process definition layer in jPDL 3 which we will need to map to BPMN. This tooling we will provide for you in the jBPM Migration Tool project. In this project you will find the outline of our plans which eventually will include more than just the process definition layer.

    Processes designed for migration
    When we are looking to migrate a process definition from jPDL 3 to BPMN it would be a good idea to think about how you are defining your processes. The tooling to be provided will map nodes, states, and sub-process node types, but you need to be aware that custom node extensions will not be taken into account. A good strategy would be to ensure that your process steps are designed to do one thing only. A single handler to be pointed to from your nodes and states for example. The more exotic you get with your process designs, the larger the chance that a straight forward conversion will not be possible. Try to keep your process work in the actual nodes and not in the transitions. The more visible it all is in your process definitions (images), the better.

    Keep in mind, these are just guidelines and suggestions. All test cases you can provide to the jBPM migration tool project will be welcome and applied to the tooling to meet your needs.

    jBPM migration tool project
    Maurice de Chateau and myself have started working on the migration tooling we think is needed to take us into the jBPM future. We see a need for two separate parts to achieve our goals:
    • process definition migration
    • mapping API functionality (matrix)
    The first item will be our initial development goal. We are currently evaluating a few possible solutions, but we plan to provide tooling to migrate jPDL 3 to BPMN through the following steps:
    1. take input jPDL 3 file, validate against jPDL XSD
    2. transform jPDL 3 to BPMN
    3. take BPMN file, validate against BPMN XSD
    4. test it against jBPM5 process engine (can is parse this?)
    This tooling will be command line interface (CLI) only, to easily allow for integration into the JBossTools project. We envision developers being able to right click in their IDE and 'convert.' The tooling to migrate jPDL 4 to BPMN will be looked at later or left to the jBPM community as an exercise based on our initial solution.

    We would also like to provide mapping of jBPM 3.2.x API methods to jBPM 5 API methods, but this is something that will need to stabilize in the coming releases. Think along the lines of scanning a code base or project, provide suggested mappings and provide a list of non-mappable calls or calls needing human intervention. More on this in the process implementation layer article to be covered in the near future.

    The tooling will be implemented based on use cases, so you should be able to follow along as the tool evolves. We hope to have you out there supply use cases that won't work for you so we can improve the tooling for all. Let us know if you want to help!

    Wednesday, October 20, 2010

    HowTo deploy jBPM processes in JBoss Developer Studio 4 (sneak preview)

    I was playing with the new 4.0.0.M2 early release of JBoss Developer Studio and noticed something that really confused me for a few days. When opening my process definitions in the jBPM perspective I was used to having a Deployment tab where I could not only select the files from the project to be included in the archive, but also test my server connection and deploy via a button. Now this was gone (see image)!

    Well, after searching the JBoss Jira a bit I could not find anything on the JBoss Developer Studio reporting this bug so I filed one. Silly me, it was already mentioned on the IDE project. I also was give a link to the JBoss Tools what's new page that shows they have come up with something new. There is now a jBPM Menu that appears when you are dealing with a process definition file (I circled the menu in red in image at bottom of this post).

    Amazing how you can stare at a screen and just not see the obvious? Happy jBPM'in! ;-)

    Thursday, October 14, 2010

    JUDCon 2010 impression

    I drove to Berlin, Germany from my home country of Holland, which looked on paper to be about 6 hours drive. Reality was a cold shower when I ran into constant construction and it took over 7 hours (each way). This was the only downside for me on the entire JUDCon experience!

    Below you will find a small selection of picture to give you an impression of JUDCon and the two days. Some of it is not directly conference material, but it helps round out the feel of hanging out in Berlin for two days.


    The location was fantastic, the food great and getting to hang out with all of the JBoss core developer rock stars was again worth the trip. Day one was two tracks that did not pertain to my area of direct interest so I spent most of this day with the jBPM team discussion our presentations for day two and previewing/reviewing the recent jBPM5 first code drop. I did not stay for the evening hack sessions as I had other appointments in town and wanted to see a bit of the city.

    Day two was more my cup of tea with a BPM track and my session kicking off in the morning right behind the core team jBPM5 opening session. The rest of the day was spent following the various BPM session with some really interesting discussions in between as people approached me with jBPM migration tool questions/suggestions.

    I look forward to the next JUDCon and hope I am allowed to attend again. Maybe next year we can demo the jBPM migration tool project in its entirety? See you there!

    JBoss World 2011: jBPM migration tooling - no one is left behind

    The JBoss World 2011 event has opened with the call for papers. From our jBPM migration tool project we have submitted a talk:

    jBPM migration tooling - no one is left behind
     This session will outline the status of our jBPM migration tooling project (as found in the projects repository jBPM SVN). We will take a look at the background of jBPM 3 process projects and how we plan to help you migrate to jBPM5.

    We will start by providing you with a plan for positioning your existing Enterprise jBPM projects for the eventual move towards jBPM5. This will cover the architectural layers involved, a look at the tooling being created for this and steps you can take to ensure a smooth transition moving into your jBPM future.

    Finally we will demo the existing tooling on an actual existing enterprise jBPM project. This will provide you with a real life scenario to take home as an example for your own BPM projects.

    The presenters have over 6 years of combined enterprise jBPM experience and have completed award winning BPM projects in the Netherlands. They initiated the jBPM migration tooling project to assist the community with their migration concerns.

    Monday, October 11, 2010

    Open Source BPM - Survival in the Financial Crisis

    The previously scheduled talk did not happen so it has been rescheduled for this week Wednesday, you can see the abstract and register at the NGI site.

    This talk is based on the award winning chapter from BPM Excellence in Practice 2010. I will post the slides here after the talk.

    Friday, October 8, 2010

    JUDCon 2010 Berlin - Get your BPM ducks in a row slides

    Presented today this talk at JUDCon, got great response, enjoy the presentation: