January 30, 2007
BPMN for Modeling Web Services
I’m currently working on a service design method with Brenda Michelson. Our goal is to take a pragmatic business driven approach to incremental (ie – project driven) SOA design and implementation. We plan to use standard modeling techniques and tools where ever feasible. The status of this project is that we have now defined the process and design artifacts, and our next task is to model out a case study and see if it holds water and to find the holes.
Our first question was how to define the process in the case study. Brenda’s first instinct was to story board. OK, she has one of those cool tablet computers where she can just draw stuff right on the computer. That might argue for me getting a new computer, but instead I argued that it was time for business and IT to start speaking the same language, and we should start off with BPMN right from the start.
To prove out this point I downloaded TIBCO’s Business Studio, which has the wonderful benefit of being free. This link is helpful, as the links from TIBCO’s home page all seem to be broken at the present time.
Eager to start modeling out our case study, I was a bit stymied at first. HOW do I even begin a project? Luckily TIBCO provided some tutorials, but unfortunately these links did not work either. The online documentation did help however.
Once I actually started modeling the process, the first problem I had was an BPMN problem. BPMN does not handle model human to computer interactions. We knew that going in, so I wanted to just define one of the “activities” as a sub-process which would actually be an interaction. But in TIBCO Business Studio while a sub-process can be “re-used” you can’t just click on a sub-process and further model it. I would need to go out of the process I’m working on, create a new process, model that, and then “re-use” it as a sub-process. Intuitively, I wanted a drill down capability, not just a pointer.
The next problem I encountered was in defining different types of events. BPMN defines 3 types of events: events that start a process, intermediate events, and events that terminate processes. TIBCO only defines start and end events. We are taking an event driven approach to design, and those intermediary events are important to our model.
BPMN itself defines a rich array to different types of events, including basic events, message events, timers, rules, exceptions, cancellations, compensation, links that link to a sibling process, multiple events – for example at the end of an activity several different types of messages must be sent. TIBCO’s tool does not support any of these types of events. Intermediate events can be used to define alerts for BAM tools and all kinds of management notifications. Perhaps this disconnect is because TIBCO does not consider BAM part of BPM. They have a totally different toolset for event processing. However, for our purposes this is a fatal flaw and won’t allow us to fully describe what we need to.
Guess it’s on to the next tool, and in the meantime, Brenda definitely has a leg with her cool tablet computer. We have until Friday to get our first set of models done. Will let you know how it goes.
In the meantime, is anyone using a modeling tool that sounds like it will fit the bill? Would greatly appreciate your suggestions.
Posted by bethgb in
SOA Design
| Permalink
| Comments (5)
|