I gave a live demo of BPM Studio at JAX 2010 conference for which I created an example BPMN 2.0 process. Here is my experience. Below follow some tips, if you plan using the tool. For a general introduction of BPM Studio, see BPM Studio intro on this blog
I had all WSDLs and XSDs ready based on work for a BPEL based showcase by OPITZ Consulting. It was a breeze to make the process aware of the data types and WSDLs. To create a process with the respective BPMN activities and the data transformations was considerably faster and more fun than in BPEL Designer. In the latter you spend a lot of time in the BPEL assign wizard, where you to drill down into a sub wizard for each attribute. In BPM Studio you just drag all data you need for one process step from the data section. The following picture is based on an Oracle slide on gives an indication of the experience:
You can see how one single wizard can be used to create the mappings very fast: To create an activity, assign the respective service by choosing a WSDL and assigning the data for input and output is a matter of maybe one to two minutes.
Decisions after a process step are modeled as connectors. The decision rule is an implementation detail of this connection. You can use XPath or a new, more basic syntax: CreditSum = 2000. CreditSum must be a predefined variable. It would be great if you could browse all variables to prevent from typos.
Then I used a sub process to express some implementation details of a process step. You get the idea from this picture, again from an Oracle slide:
This opens an interesting design discussion: In BPEL, this would be a scope or a small BPEL process called by the main process. Now we can embed a small set of coherent activities that belong to a logical process step inside a BPMN sub process. You can drill into or leave it collapsed.
It is worth a more deeply discussion on where to put such details: In a sub process, on SCA level through mediators or in a BPMN process called by the main process (the latter would resemble the way we used to do it with BPEL). Note that on the current release I had some fiddling to position the sub process in order to make it look good both collapsed and expanded, since the size of the lane the sub process resides in is fixed.
SCA and BPMN
It is wise to not bind BPMN activities to concrete services but to Mediator Services. You can use these mediators for ESB functionality as an intermediary between the BPMN process and the concrete service. It is very easy to create such intermediaries and you gain
If you attach concrete WSDLs to activities in BPMN model, the SCA view (in “composite.xml”) gets updated automatically.
Tips for your project
Play with the tool, create a small concrete process from your domain. Discuss it with your peers. Do not start a critical, large BPM project in the first weeks. Instead make sure to stay successful through small iterations of modeling, learning, getting acquainted, putting it in production, let a small group of end users experience with it. Learn from them in order to create workflows that are human friendly and not use them as asynchronous services. Take the objections of your IT peers seriously (“we don’t have the skills?” “How to operate it?”). Manage the expectations from management and business stakeholders. Contact Oracle or partners to understand what you can do now and the roadmap for enhancements.
This is just a start, more to follow.