The HELIXsystem Service Versioner uses the end point behavioural descriptions of co-operating services to identify and contain service compatibility risk.

The end point behavioural descriptions are either extracted from the HELIXsystem Global Description or derived from an appropriate description language such as BPEL.

Once identified, the end point descriptions are loaded onto the Service Registry and associated with their respective service interfaces. This enables any missing or incorrect end point descriptions to be identified.

Once loaded, a service-consumer will interrogate the Registry for those services, displaying compatible behaviour with which they need to communicate. The Registry identifies the behaviour required by the service-consumer and returns the URL to the most recent service version offering the required behaviour. Once identified, the service-consumer is automatically upgraded to this service version.

This process repeats across the infrastructure enabling the entire service network to be seamlessly upgraded to a new process version without introducing incompatibility risk to long running processes. This is achieved without the need to recompile existing service-consumers, introduce new consumer versions, encode the upgraded services with additional interfaces or compound system complexity by the introduction of message brokers.

The HELIXsystem Service Versioner scales to accommodate the deployment of multiple new services simultaneously, enables multiple service versions, only some of which offer compatible behaviour to the service-consumers, to be introduced across heterogeneous loosely coupled systems without the introduction of incompatibility risk.