Personal tools
You are here: Home Blog Would you like to fly with a spaceship that was assembled by service people?

Would you like to fly with a spaceship that was assembled by service people?

This might never happen, but if we ever build a spaceship based in SOA, I'm not sure if I would like to go on bord. It would probably look very good on paper, but it would definitively not work without some minor or major "hiccups". Once in the deep space, one might run into a SLA violation and you probably would experience some disintegration of your spaceship.

This is, admittedly, a bit of a polemic description, but you can find some grain of truth in this statement. However, why should we build systems that are based on a fuzzy notion like services (see last post) and with heavy weight xml artifacts which difficult to understand (for humans) and even more difficult to use? So far, the tooling is not exactly what one wishes for and the creation of workflows appears to be a tedious and thus error prone task.

A way to look at things is to reason what one wants to do in the first place with services. Well, it's simple: we all wish to invoke a service with some input and expect some output. We want to make decisions, based on some expressions, either to invoke a service or not. The data that we base our decisions on can be the result that we get from other services (output) or user input. We also need some kind of support for the creation of loops and a place to store the result of service invocations (variables).

That's basically it. I'm aware of all those fancy concepts like compensation handling and so on. However, in my opinion this makes things unnecessary complicated and I dare say that some of this appears "academic" and not exactly useable in practice. Yes, there is always space for some PhD thesis that discusses a very specific detail of workflows :-).

What I question is the approach of creating workflows like full fledged languages with heavy semantics and lots of features. In my opinion, we can build workflows with simpler mechanisms and exploit existing script based approaches. The use of Groovy scripts is an example for this (see links)

I'm aware that this might appear to be yet another way of simply embedding service invocations in java (groovy being a super set of java), but it has some advantages over existing workflow approaches. Groovy is a dynamic scripting language which allows run time modifications and don't we all crave for runtime changes based on contextual information :-)? Of course there is much to do, but I think this could be a interesting direction which needs more and deeper investigations.

So would I fly with a spaceship that is programmed in Groovy? Probably not, but one can never know for sure :-).

- Martin Treiber

References/Links

Why BPEL is not the holy grail for BPM

Flow diagrams, turing machines and languages with only two formation rules

Structured Program Theorem

 

 

 

Document Actions
  • Send this
  • Print this
  • Bookmarks

The Plone® CMS — Open Source Content Management System is © 2000-2017 by the Plone Foundation et al.