Services and Versioning

Author(s)

Business Relationship Manager - Product Lifecycle Management, Chevron Corporation

Service-oriented architectures offer many important advantages to the enterprise in terms of agility, flexibility, consistency, reuse, integration and others. But of course, there’s no free lunch. And one of the costs of these advantages is the increase complexity of service lifecycle management and versioning.

Once a service has its first consumer, we have bought off on having to maintain and support that service for an agreed upon period of time. As we evolve the service to enhance functionality or support additional consumers, we introduce new versions of the service, but we still need to support the earlier versions. Like it or not, this is the way SOA works.

Typically, version numbers will have a structure such as: MM.mm.pp consisting of three parts where:

M = Major versionm = Minor versionp = Patch version

Versions are governed by policies which described the rules for:

  • Updating major version
  • Updating minor version
  • Updating patch version
  • Backward compatibility
  • Support and expiry time for past major versions

Typically, minor changes that are backward compatible require changing the minor version number. Any non-compatible change requires changing the major version number. Bug fixes that do not affect the interface or version require changes in the patch version number. So for, so good? But service versioning can quickly become complicated when we examine the different aspects of a service that can (or should) be versioned. These include:

  • The overall service, including all aspects of interface and implementation
  • The service interface
  • Interface documents or messages
  • Schema forming the basis for documents
  • The service implementation

One goal of versioning is to keep the consumer of a service from being affected by changes to a service’s contract or behavior. In other words, any change that is incompatible with the existing version of a service requires that a new version number be created and the old version supported. But, although compatible changes do not necessarily require a new version number for the sake of the consumer, they do require a different version number for other purposes. Some different concerns for versioning policies are:

  • Change management – How we track and manage the overall deployment of IT resources, and specifically services. Any change to any aspect of the service requires an update to the overall version number of a service. The version number of the service is essentially a combination of the version number of all the individual aspects of the service.
  • Consumer compatibility – How we decouple the lifecycle of the service consumer from the lifecycle of the consumer provider. Any change to interface, interface document, or behavior of the service will require an update to the interface version. The customer is not be concerned with the overall service version, but only the interface version number. The interface version number is a combination of the interface signature, and the documents that are passed through the interface.
  • Information management – How we manage shared semantics across services. Any change to an interface document will require an update to both the document version number and the interface version number. Backward compatible changes will be a minor update whereas incompatible changes will require a major update. Remember that documents are based on an underlying semantic schema (information model). Although there are scenarios where the underlying schema can change without affecting the document, for simplicity, we usually require that any change to the schema requires an update to the version number, and a corresponding update to the document version numbers.

The table below illustrates how changes in internal versions affect the overall service version. Normal text indicates that the explicit change (italicized) in another version number (in the same row) has a ripple effect on that version number. For example, notice that a change in any of the internal versions (interface, document or implementation) will cause a change in overall service version.

Figure 1

Unfortunately, despite the fundamental importance of versioning to real SOA implementations, few of the SOA infrastructures (ESB, etc.) provide adequate support for versioning. This is an area that consumers should be pushing vendors to support. Until then though, you’ll have to do it yourself. But don’t worry, the benefits of SOA are worth the effort.

Similar Resources

Enhancing Your Team’s BPM Capabilities: The Value of External Expertise

Enhancing Your Team’s BPM Capabilities: The Value of External Expertise

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Enhancing Your Team's BPM Capabilities: The Value of External Expertise In today’s dynamic business environment, managing and improving business processes is critical for any organization aiming to maintain a competitive edge. Many companies consider handling Business...

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+ Introduction In the evolving landscape of Business Process Management (BPM), the introduction of Shared Data Model Notation (SDMN) marks a significant advancement. As businesses increasingly seek to...

Embracing the Future: Low-Code and No-Code Platforms in BPM+

Embracing the Future: Low-Code and No-Code Platforms in BPM+

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Embracing the Future: Low-Code and No-Code Platforms in BPM+ Introduction In the realm of business process management (BPM), low-code and no-code platforms have emerged as transformative tools, reshaping how organizations develop applications and manage workflows....

Featured Certificate: BPM Specialist

Everyone starts here.

You're looking for a way to improve your process improvement skills, but you're not sure where to start.

Earning your Business Process Management Specialist (BPMS) Certificate will give you the competitive advantage you need in today's world. Our courses help you deliver faster and makes projects easier.

Your skills will include building hierarchical process models, using tools to analyze and assess process performance, defining critical process metrics, using best practice principles to redesign processes, developing process improvement project plans, building a center of excellence, and establishing process governance.

The BPMS Certificate is the perfect way to show employers that you are serious about business process management. With in-depth knowledge of process improvement and management, you'll be able to take your business career to the next level.

Learn more about the BPM Specialist Certificate

Courses

  •  

 

Certificates

  • Business Process Management Specialist
  • Earning your Business Process Management Specialist (BPMS) Certificate will provide you with a distinct competitive advantage in today’s rapidly evolving business landscape. With in-depth knowledge of process improvement and management, you’ll be able to take your business career to the next level.
  • BPM Professional Certificate
    Business Process Management Professional
  • Earning your Business Process Management Professional (BPMP) Certificate will elevate your expertise and professional standing in the field of business process management. Our BPMP Certificate is a tangible symbol of your achievement, demonstrating your in-depth knowledge of process improvement and management.

Certification

BPM Certification

  • Make the most of your hard-earned skills. Earn the respect of your peers and superiors with Business Process Management Certification from the industry's top BPM educational organization.

Courses

 

Certificates

  • Operational Excellence Specialist
  • Earning your Operational Excellence Specialist Certificate will provide you with a distinct advantage in driving organizational excellence and achieving sustainable improvements in performance.
 

 

OpEx Professional Certificate

  • Operational Excellence Professional
  • Earn your Operational Excellence Professional Certificate and gain a competitive edge in driving organizational excellence and achieving sustainable improvements in performance.

Courses

Certificate
  •  

  • Agile BPM Specialist
  • Earn your Agile BPM Specialist Certificate and gain a competitive edge in driving business process management (BPM) with agile methodologies. You’ll gain a strong understanding of how to apply agile principles and concepts to business process management initiatives.  
 

Business Architecture

 

Certificates

  • Business Architecture Specialist
  • The Business Architecture Specialist (BAIS) Certificate is proof that you’ve begun your business architecture journey by committing to the industry’s most meaningful and credible business architecture training program.

  • Business Architecture Professional
  • When you earn your Business Architecture Professional (BAIP) Certificate, you will be able to design and implement a governance structure for your organization, develop and optimize business processes, and manage business information effectively.

BA CertificationCertification

  • Make the most of your hard-earned skills. Earn the respect of your peers and superiors with Business Architecture Certification from the industry's top BPM educational organization.

Courses

 

Certificates

  • Digital Transformation Specialist
  • Earning your Digital Transformation Specialist Certificate will provide you with a distinct advantage in today’s rapidly evolving business landscape. 
 

 

  • Digital Transformation Professional
  • The Digital Transformation Professional Certificate is the first program in the industry to cover all the key pillars of Digital Transformation holistically with practical recommendations and exercises.

Courses

Certificate

  • Agile Business Analysis Specialist
  • Earning your Agile Business Analysis Specialist Certificate will provide you with a distinct advantage in the world of agile software development.

Courses

Certificate
  • DAS Certificate
  • Decision Automation Specialist
  • Earning your Decision Automation Certificate will empower you to excel in the dynamic field of automated decision-making, where data-driven insights are pivotal to driving business innovation and efficiency.