Tuesday, October 24, 2006

Early Binding vs Late Binding

I was asked a good question by a reader of my recent developerWorks article today.

The question was about WebSphere Process Server's support for late binding. This is a powerful feature that allows multiple versions of a business process template to be "live" in a system at the same time.

This means that you can deploy a new version of a process (e.g. to change how you handle a special case or to reflect a new offering) without having to worry about whether this will mess up the currently executing processes; they'll continue to run according to the original definition.

The question I was asked was, in essence: "I've tried it and it doesn't work. What gives?"

If you find yourself in a similar position, the trick is to remember that sometimes you don't want late binding.  As soon as you realise this, the solution becomes clear.... if there are two alternatives, there must be a way to specify what you want!

For the sake of brevity, I will assume you are familiar with Process Server and will not explain my terms... the rule of thumb to use is: "if you wire two components together using an SCA wire, you'll get early binding. If you invoke a process using the BPC API, you'll get late binding". Easy :-)

No comments: