BPMN 2.0

One of the issues with earlier versions of BPMN is that they do not include a specific XML schema for describing a process. Version 2 resolves this with the inclusion of an XML schema as part of the standard. So I was really looking forward to BPMN 2, as it would make automated parsing and analysis of a BPMN model much easier and more predictable.

Unfortunately, the tools available for creating BPMN models don’t generally implement that specification just yet. Most BPMN tools claim to implement the BPMN 2 standard, but for the most part they implement the BPMN 2 graphical notation and not much else. Several of them include some variation of the XML standard with tool-specific extensions, which is of no particular help to me — I want to parse the standard to enable maximum portability. A fair number of tools save their models in XML Process Definition Language (XPDL); others use XML Metadata Interchange (XMI). While both of those are good standards for particular uses, neither one is ideal for my purposes. I would really like a design language that is accessible to business analysts, and that generally means a graphical notation.

The one bright spot on the scene is Sparx Enterprise Architect. I’ve used this tool in the past for various projects at work. It is an outstanding tool; unfailingly standards-compliant in my experience. And this time I was not disappointed — not only does the tool create BPMN 2.0 models, but it can actually save them in BPMN 2 XML. And the icing on the cake is that the price is dirt cheap. These days its running about $135 for a personal license; the “all you can eat” version tops out at just over $300. Compared to the thousands the competition charges, it just can’t be beat.

And most importantly (to me), the output is easy to parse. Now I just need to figure out how to add some extensions that will show up in the XML.

A Logical Progression

I have developed an initial service description ontology based on OWL-S. It is an initial version partly because it will doubtless evolve as I learn more from my research, but also because there are some missing pieces. Perhaps the most obvious of these, as I discussed in my presentation last week, is Quality of Service. Part of the reason QoS is missing is because it’s going to be complex to define and I’m not quite sure how to go about it.

I had planned to tackle QoS as the next part of my research; thinking that if I got something in there, no matter how basic, it would be progress. But the other day a thought occurred to me: Measuring and accounting for QoS in service selection is an optimization step — it is not fundamental to being able to compose services together.

So after thinking it over, I decided to take a more logical progression:

  1. Determine how to relate a process model to a service description
  2. Build a capability to do the service selection & matching and then execute the process
  3. Define how to capture quality of service in the service description
  4. Figure out how to optimize service selection with QoS as a factor in the selection

This will give me a chance to get some code running to prove that the basic idea is possible, and it will give me a chance to start generating some results I can use for comparison as I progress.

Now I just need to figure out how to relate a process description to service descriptions. I think I’ll be helped in this by the fact that OWL-S represents a service as a process. This might allow me to assert a certain equivalence between the idea of a service and the idea of a process. I’ll need to work on that.

Two Down

Yesterday afternoon (7/13/11; for some reason this didn’t post when I hit the publish button) I delivered my presentation at the 3rd Annual DoD SOA & Semantic Technology Symposium. I’m certainly in no position to objectively judge, but it seemed to me that it went very well. I had several questions that seemed like they were genuinely curious about the subject.

More importantly, from a purely mercenary point of view, is that this counted as my second publication on the road to completing my dissertation. Two down, and two or three more to go!

Now I need to get to work on the rest of my research. The first thing I need to focus on is probably some measure of Quality of Service. It certainly won’t be fully fleshed out, but I at least need a placeholder. But for now, a good night’s sleep would do me a world of good.

Getting Closer

I haven’t had the time to update this because I’ve swamped with work and with preparing my presentation. My slides have been through many drafts, but a couple of weeks ago I finally got my advisor’s approval. Since then, I’ve run the slides and my notes past some trusted friends for a good sanity check and to make sure I’m covering all the right bases.

In the meantime, I’ve had to navigate the corporate approval process to make sure I don’t run afoul of any restrictions they have. I’m pretty sure this was entirely new territory for them, and they really didn’t know quite how to handle it at first. But they’re good folks and flexible, so they adapted quickly and got me the necessary approvals.

So I’ve spent most of the past two weeks rehearsing and re-rehearsing my presentation for timing and content. I’m not completely happy with it, but then I never am. I think I’ve got it down well enough to get my points across and hopefully generate some thoughts and discussion. I’ll post the slides here after the conference, which begins later this morning. My speaking slot is at 12:30, right before lunch. I’m the first speaker in the “Standards” track; I’m not sure if that’s a good thing or not. I suppose we’ll see how it goes.