Process Versioning

Automated upgrading of processes across loosely coupled systems

To change existing process behaviour requires either new services to be introduced or the interactions between the existing services to be changed, or both.

Such changes nearly always result in service behaviour incompatibilities being introduced. Identifying and containing these runtime incompatibilities can be difficult as seldom is it possible to precisely replicate the production environment in a QA test bed. To effectively contain incompatible risk ( see Planning for Change ) requires visibility of actual points of contact where service incompatibility may be introduced.

Additionally, the current methodologies used to introduce new process versions scale poorly when the multiple new services need to be deployed simultaneously and these methodologies do not present as comprehensive solutions for managing compatibility between multiple service versions deployed across a single infrastructure. ( for details please see white paper “Service Versioning Across Distributed Systems” )

The HELIXsystem Service Versioner is designed to address these problems. The HELIXsystem Service Versioner enables the production environment to be seamlessly upgraded to new process versions by eliminating runtime incompatibility risk. This is achieved without the need for extensive recoding,or introducing message brokers to mediate between the existing process and the new service version(s).

The HELIXsystem Service Versioner uses the global descriptions of the existing and the new process versions to identify all the end point descriptions either in use or to be deployed. The end point behavioral descriptions are then either extracted from the global descriptions or derived from the available BPEL process descriptions. These descriptions are then recorded at the Service Registry and used to ensure consumer-to-service compatibility across the network.

Benefits

  • elimination of incompatibility risk across the entire production environment
  • enables the rapid deployment of new process versions
  • accommodates multiple new services deployed simultaneously
  • compatibility assured across multiple service versions deployed onto a single infrastructure
  • implemented without the need to recompile existing consumers
  • does not require changes to the messaging structure or the introduction of additional service interfaces