Monday, October 15, 2007

User Interfaces for Process Tasks

One common criticism of BPM suites is that the tools that they provide for creating front-ends are simplistic. That's generally true... most BPM-suite-generated screens are just simple forms.

What if you want to build a filthy rich front-end to help a user accomplish one-or-more tasks in a process?

A Process Engine generally sees the world as a bunch process definitions, a bunch of services, and some data. Each process definition tells the engine which services to run and what data to pass to those services. It's really rather straight-forward.

Most BPM suites provide "form designer" tools for building the Human Powered Services. As previously mentioned these tools can be rather limited, and it's often difficult to tailor their output to get exactly what you want.

At this point I could launch into a philosphical discussion about "good enough and cheap" user interfaces versus "great but expensive" user interfaces, but I'll resist that urge... We all know that clients can be very demanding and emotional about how a screen looks, and they often don't care how much they are spending to get everything "just right".

So what do you do if you want to replace the BPM suites "dull" forms with your snazzy custom UI?

It all goes back to Service Interfaces. If your custom UI front-end "looks" like an Asynchronous Web Service to the Process Engine, then you can incorporate it into your process. The process engine will pass data to your custom front-end, and when you've completed the task you'll post the results back to the process engine..

I've covered the Anatomy of Human Powered Services in previous posts... There's not a lot of tool support for building them yet, but perhaps some clever programmer out there will rectify that situation.

Here's the caveat... Your BPM suite probably has a task list that shows each user all of the tasks that are assigned to them. In general, from this list you can open the user interface for the task (and presumeably complete the task). If you are providing your own front-end, you probably won't be able to launch the UI from the built-in task list. To the process engine, your custom front-end is just another autonomous service... it won't have any idea how to invoke it.

Hopefully there will someday be conventions for HPS that will allow more seamless integration of external front-ends with BPM suites, but for now this is about as good as it gets.

No comments:

Post a Comment