XML is an interesting language, but is it a useful one for describing a process?
We have multiple competing standards for workflow and collaboration. We have BPEL, XPDL, SWFL, XRL, XScufl, and custom XML workflow models developed for the XFlow, AntFlow, Agile, YAWL, and OpenWFE tools. (If anyone is looking for a good idea for a masters thesis in Workflow, they should create a comparison of these different languages, catalog features, and create a roadmap for the rest of us).
Just to add to the fun, rather than learn an existing modelling language, I wrote my own for an internal tool I'm working on. Wise? Probably not. In keeping with the philosophy of the project? Yes. Most of the languages I mention above are the creation of committees and have many features designed for multiple vendors to extend the core set. I needed less (features demanded by existing Java projects) and more (features specific to my Microsoft-based solution).
I also needed a language feature that I didn't see anywhere else, including on the workflow patterns homepage: native support for ad-hoc workflow. This means allowing a user the right to change the routing rules in the middle of a workflow process, while the engine maintains managability. No mean feat.
So, inspired by YAWL, and angry at the limitations of the competing partner products that we evaluated, our team wrote another XML based workflow model structure.
I learned a few things that I want to share:
So, XML it is. And for now, I'm still using my proprietary schema for workflow models. Perhaps, someday, I will switch over to BPEL or XPDL. But not this day.