Is Designer / Process Engine the right tool for me?


I’ve designed (on paper) a process model using concepts from Hohpe’s ‘Enterprise Integration Patterns’.

The process is intended to complete in a matter of seconds, so it seems unlike the kind of business processes used as examples in the WM documentation. However it is a business process (essentially, getting a piece of data from one location to another, transforming, auditing, billing).

It seems as if I could implement this design by directly mapping one process step == one IS service. Two important features I require are:

  • Tolerance for transient errors: (by placing requests that may fail on a Broker queue)
  • Fast user response, even for operations that may take a while: (by returning control to the user as soon as the item is queued)

When I started thinking about how I would wire my EIP-like services together, I realised that although you could hard-code the next step into each service, it would be better to have this in configuration. Soon I had designed (in my head) a configuration file, and a set of services that a service could invoke to route its pipeline to the next step of a process model.

… which, of course, is what Process Engine does. Or so it seems, based on half an hour of reading the Getting Started guide.

Am I right about that? Should I be using Designer and PE?

How does it scale? The guide’s example:

… suggests that it works well for a few long-running business processes, with plentiful pauses while out-of-band activities take place.

What if it was 50 overlapping processes, each of which is expected to complete in a couple of seconds? Is Process Engine designed for this kind of thing?

I think you’re on the right track. Using Designer to put services together to form a process is definitely what Designer and PE are intended to do. IMO, the key is to not put too much logic in the model layer. This makes designing the individual services very important–must find the right level of granularity.

Another tool that you may find helpful is the Fair Isaac Blaze Advisor, the rules engine bundled in the BPM suite. It can be used in a variety of ways. For example, you might have a process that instead of having the process defined in Designer asks the rules engine “what’s next?”

Scaling-wise, it has been a couple of years, but a PRT (the predecessor to PE) was implemented at a relatively large installation. 50 overlapping instances isn’t a problem. The key for that installation was keeping the PRT DB tables purged of old data. In any case, you’ll want to make sure you work through the sizing worksheets that should still be available in the GEAR documents on Advantage.

Good luck!