SlideShare a Scribd company logo
1 of 7
Download to read offline
Torry Harris Business Solutions
SOA – Service Versioning
Best Practices
Table of Contents
1. EXECUTIVE SUMMARY.......................................................................................................................................3
2. WHY VERSIONING?..............................................................................................................................................3
SERVICE VERSIONING OVERVIEW......................................................................................................................................3
SERVICE VERSIONING EXAMPLE........................................................................................................................................3
PROS AND CONS.............................................................................................................................................................4
3. BASELINED SERVICES – NO VERSIONING....................................................................................................5
BASELINED SERVICES OVERVIEW......................................................................................................................................5
BASELINED SERVICES EXAMPLE........................................................................................................................................5
PROS AND CONS.............................................................................................................................................................5
4. BEST PRACTICES..................................................................................................................................................6
Service Versioning Best Practices Company Confidential Page 2 of 7
1. Executive Summary
This document aims at highlighting some of the best practices related to Service Versioning
in SOA. These best practices are based on practical problems that Torry Harris faced when
implementing SOA projects.
Versioning is one of the important aspects of SOA Governance. Few governance strategies
recommend having one baselined version of the service to avoid versioning complexity. On
the other hand, few other governance strategies prefer using multiple versions of the same
service so that changes and enhancements to service interface do not affect existing
consumers. This document aims to highlight the pros and cons of each approach and
proposes best practices that suit both the cases.
Actual technical solution for implementing service versioning is considered as out of scope of
this document as there are several simple and vendor-specific approaches. The focus of this
document is to describe the principle of Service versioning and highlight the best practices.
2. Why Versioning?
Service Versioning Overview
Service Versioning is the approach followed by Service developers to allow multiple
versions of the same service to be operational at the same time. To give an analogy,
any re-usable software API library has multiple versions used by different
applications. The same analogy applies to services.
Service Versioning Example
Web Services are the ideal way to implement SOA services. The following diagram
illustrates the concept of multiple active versions with a view of the services and the
dependency with its consumer applications. In the example, there are two services -
Order Processor Service and Stock Query Service. Multiple active versions exist for
both these services. The diagram shows the dependency path of 7 different
applications using several versions of these two services.
Service Versioning Best Practices Company Confidential Page 3 of 7
Pros and Cons
Pros Cons
Changes and enhancements can be made to
individual services and released as new
versions without causing an impact on the
existing consumer applications
As shown in the diagram above, multiple
versions can quickly lead to lot of
dependency management hassles, thereby
increasing complexity in managing and
tracking them
In an enterprise, consumer applications
would typically be developed and maintained
by different teams. Multiple versioning gives
the flexibility to the team to prioritize and
migrate to the latest version according to
their convenient schedule and budget.
Any bug-fixes/errors discovered at a later
point of time in services would need
appropriate fixing in all applicable versions
of the service. This eventually leads to poor
maintainability of the service code
There is always an easy rollback plan in
place when an application faces an issue
with the new version. It can just continue
interacting with an earlier stable version.
Custom solution would need to be followed
in most cases, requiring to maintenance of
several versioned copies of the WSDL and
schema.
Additional tool / runtime registry is required
to fetch the appropriate endpoint URL based
on the version number
Source code of the services would need to
be carefully controlled using branching so
that multiple versions of binaries are
generated and maintained appropriately.
Service Versioning Best Practices Company Confidential Page 4 of 7
Order Processor Service v1.0
Order Processor Service v1.1
Order Processor Service v1.2
Order Processor Service v1.3
Order Processor Service v1.n
Stock Query Service v 1.0
Stock Query Service v 1.1
Stock Query Service v 1.n
App 1
App 2
App 3
App 4
App 5
App 6
App 7
3. Baselined Services – No Versioning
Baselined Services Overview
The concept of Baselined Services discourages the use of versioning. Only one
finalized version of Service is kept active at any point of time, and all consumer
applications points to one and only version of the service, which is the baselined
version.
Baselined Services Example
The following diagram (adapted from the previous) example illustrates the concept of
baselined services.
Pros and Cons
Pros Cons
The Service Platform represents one single
view of the enterprise service portfolio,
thereby ensuring “re-usability” in its true
sense.
This policy is “too rigid” on several
application consumer teams, where in every
change/enhancement to the service would
require a bit of migration work within the
application
Maintenance is greatly simplified Design of the service would need to be
considered with great care, ensuring forward
and backward compatibility. This could be a
limiting factor in some cases for the business
teams to plan for major service
enhancements
A runtime registry is not needed as Impact analysis procedure should be
Service Versioning Best Practices Company Confidential Page 5 of 7
Order Processor Service Stock Query Service v 1.0
App 1
App 2
App 3
App 4
App 5
App 6
App 7
consumer applications maintain a fixed
endpoint URL
strengthened so that changes are
implemented with great accuracy
Source code management of the services is
greatly simplified as there is only one
version to maintain
Live deployment Rollbacks should be
planned carefully so that there is minimal
impact on the consumer application.
4. Best Practices
Having described both approaches, and their pros/cons listed, it becomes very difficult for
enterprises to choose a particular approach. The pros of the versioned services approach
seems to be ideal compared to the cons of baselined services approach. Hence, the best
practice recommendations for versioning governance strategy are
• Use a mix-and-match of both worlds by following versioned services approach, yet
having control on the versioning nightmares by limiting the maximum active versions
to 3
• Upon launching a new version of the service, only the last two continue to remain
active. All the lower versions should be deprecated and de-commissioned.
• This means, no more than three active versions of a service exist at any point of
time. Policies needs to be established and communicated to the consumer application
teams to ensure that migration is done on time
• The services team will not be responsible for impacts to the consumer application if
the application continues to use a deprecated version of the service.
Service Versioning Best Practices Company Confidential Page 6 of 7
Torry Harris SOA engagement
Service Versioning Best Practices Company Confidential Page 7 of 7

More Related Content

More from Torry Harris Business Solutions

SOA Offshore Onsite Delivery Model | Torry Harris Whitepaper
SOA Offshore Onsite Delivery Model | Torry Harris WhitepaperSOA Offshore Onsite Delivery Model | Torry Harris Whitepaper
SOA Offshore Onsite Delivery Model | Torry Harris WhitepaperTorry Harris Business Solutions
 
SOA Open Source Implementation | Torry Harris Whitepaper
SOA Open Source Implementation | Torry Harris WhitepaperSOA Open Source Implementation | Torry Harris Whitepaper
SOA Open Source Implementation | Torry Harris WhitepaperTorry Harris Business Solutions
 
Comparison of Cloud Computing Services | Torry Harris Whitepaper
Comparison of Cloud Computing Services | Torry Harris WhitepaperComparison of Cloud Computing Services | Torry Harris Whitepaper
Comparison of Cloud Computing Services | Torry Harris WhitepaperTorry Harris Business Solutions
 
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperEucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperTorry Harris Business Solutions
 
BPM - The Soft Science of Change | Torry Harris Whitepaper
BPM - The Soft Science of Change | Torry Harris WhitepaperBPM - The Soft Science of Change | Torry Harris Whitepaper
BPM - The Soft Science of Change | Torry Harris WhitepaperTorry Harris Business Solutions
 
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris WhitepaperEAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris WhitepaperTorry Harris Business Solutions
 
EAI Test Driven Development WebMethods | Torry Harris Whitepaper
EAI Test Driven Development WebMethods | Torry Harris WhitepaperEAI Test Driven Development WebMethods | Torry Harris Whitepaper
EAI Test Driven Development WebMethods | Torry Harris WhitepaperTorry Harris Business Solutions
 
Web Service Interaction Models | Torry Harris Whitepaper
Web Service Interaction Models | Torry Harris WhitepaperWeb Service Interaction Models | Torry Harris Whitepaper
Web Service Interaction Models | Torry Harris WhitepaperTorry Harris Business Solutions
 
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris Whitepaper
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris WhitepaperStringing the Quartet Cloud SOA BPM and BI | Torry Harris Whitepaper
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris WhitepaperTorry Harris Business Solutions
 

More from Torry Harris Business Solutions (20)

SOA Roadmap and Education | Torry Harris
SOA Roadmap and Education | Torry HarrisSOA Roadmap and Education | Torry Harris
SOA Roadmap and Education | Torry Harris
 
SOA Offshore Onsite Delivery Model | Torry Harris Whitepaper
SOA Offshore Onsite Delivery Model | Torry Harris WhitepaperSOA Offshore Onsite Delivery Model | Torry Harris Whitepaper
SOA Offshore Onsite Delivery Model | Torry Harris Whitepaper
 
SOA Test Methodology | Torry Harris Whitepaper
SOA Test Methodology | Torry Harris WhitepaperSOA Test Methodology | Torry Harris Whitepaper
SOA Test Methodology | Torry Harris Whitepaper
 
SOA for Retail | Torry Harris Whitepaper
SOA for Retail | Torry Harris WhitepaperSOA for Retail | Torry Harris Whitepaper
SOA for Retail | Torry Harris Whitepaper
 
SOA for Telecom | Torry Harris Whitepaper
SOA for Telecom | Torry Harris WhitepaperSOA for Telecom | Torry Harris Whitepaper
SOA for Telecom | Torry Harris Whitepaper
 
A Guide to SOA Governance | Torry Harris Whitepaper
A Guide to SOA Governance | Torry Harris WhitepaperA Guide to SOA Governance | Torry Harris Whitepaper
A Guide to SOA Governance | Torry Harris Whitepaper
 
SOA Maturity Model | Torry Harris Whitepaper
SOA Maturity Model | Torry Harris WhitepaperSOA Maturity Model | Torry Harris Whitepaper
SOA Maturity Model | Torry Harris Whitepaper
 
SOA Open Source Implementation | Torry Harris Whitepaper
SOA Open Source Implementation | Torry Harris WhitepaperSOA Open Source Implementation | Torry Harris Whitepaper
SOA Open Source Implementation | Torry Harris Whitepaper
 
Migration and Security in SOA | Torry Harris Whitepaper
Migration and Security in SOA | Torry Harris WhitepaperMigration and Security in SOA | Torry Harris Whitepaper
Migration and Security in SOA | Torry Harris Whitepaper
 
Web Services in SOA | Torry Harris
Web Services in SOA | Torry HarrisWeb Services in SOA | Torry Harris
Web Services in SOA | Torry Harris
 
Cloud Catalyst Programme | Torry Harris Whitepaper
Cloud Catalyst Programme | Torry Harris WhitepaperCloud Catalyst Programme | Torry Harris Whitepaper
Cloud Catalyst Programme | Torry Harris Whitepaper
 
Cloud Computing Overview | Torry Harris Whitepaper
Cloud Computing Overview | Torry Harris WhitepaperCloud Computing Overview | Torry Harris Whitepaper
Cloud Computing Overview | Torry Harris Whitepaper
 
Comparison of Cloud Computing Services | Torry Harris Whitepaper
Comparison of Cloud Computing Services | Torry Harris WhitepaperComparison of Cloud Computing Services | Torry Harris Whitepaper
Comparison of Cloud Computing Services | Torry Harris Whitepaper
 
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperEucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
 
BPM - The Soft Science of Change | Torry Harris Whitepaper
BPM - The Soft Science of Change | Torry Harris WhitepaperBPM - The Soft Science of Change | Torry Harris Whitepaper
BPM - The Soft Science of Change | Torry Harris Whitepaper
 
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris WhitepaperEAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
 
EAI Test Driven Development WebMethods | Torry Harris Whitepaper
EAI Test Driven Development WebMethods | Torry Harris WhitepaperEAI Test Driven Development WebMethods | Torry Harris Whitepaper
EAI Test Driven Development WebMethods | Torry Harris Whitepaper
 
Web Service Extensions | Torry Harris Whitepaper
Web Service Extensions | Torry Harris WhitepaperWeb Service Extensions | Torry Harris Whitepaper
Web Service Extensions | Torry Harris Whitepaper
 
Web Service Interaction Models | Torry Harris Whitepaper
Web Service Interaction Models | Torry Harris WhitepaperWeb Service Interaction Models | Torry Harris Whitepaper
Web Service Interaction Models | Torry Harris Whitepaper
 
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris Whitepaper
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris WhitepaperStringing the Quartet Cloud SOA BPM and BI | Torry Harris Whitepaper
Stringing the Quartet Cloud SOA BPM and BI | Torry Harris Whitepaper
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

SOA Service Versioning Best Practices | Torry Harris Whitepaper

  • 1. Torry Harris Business Solutions SOA – Service Versioning Best Practices
  • 2. Table of Contents 1. EXECUTIVE SUMMARY.......................................................................................................................................3 2. WHY VERSIONING?..............................................................................................................................................3 SERVICE VERSIONING OVERVIEW......................................................................................................................................3 SERVICE VERSIONING EXAMPLE........................................................................................................................................3 PROS AND CONS.............................................................................................................................................................4 3. BASELINED SERVICES – NO VERSIONING....................................................................................................5 BASELINED SERVICES OVERVIEW......................................................................................................................................5 BASELINED SERVICES EXAMPLE........................................................................................................................................5 PROS AND CONS.............................................................................................................................................................5 4. BEST PRACTICES..................................................................................................................................................6 Service Versioning Best Practices Company Confidential Page 2 of 7
  • 3. 1. Executive Summary This document aims at highlighting some of the best practices related to Service Versioning in SOA. These best practices are based on practical problems that Torry Harris faced when implementing SOA projects. Versioning is one of the important aspects of SOA Governance. Few governance strategies recommend having one baselined version of the service to avoid versioning complexity. On the other hand, few other governance strategies prefer using multiple versions of the same service so that changes and enhancements to service interface do not affect existing consumers. This document aims to highlight the pros and cons of each approach and proposes best practices that suit both the cases. Actual technical solution for implementing service versioning is considered as out of scope of this document as there are several simple and vendor-specific approaches. The focus of this document is to describe the principle of Service versioning and highlight the best practices. 2. Why Versioning? Service Versioning Overview Service Versioning is the approach followed by Service developers to allow multiple versions of the same service to be operational at the same time. To give an analogy, any re-usable software API library has multiple versions used by different applications. The same analogy applies to services. Service Versioning Example Web Services are the ideal way to implement SOA services. The following diagram illustrates the concept of multiple active versions with a view of the services and the dependency with its consumer applications. In the example, there are two services - Order Processor Service and Stock Query Service. Multiple active versions exist for both these services. The diagram shows the dependency path of 7 different applications using several versions of these two services. Service Versioning Best Practices Company Confidential Page 3 of 7
  • 4. Pros and Cons Pros Cons Changes and enhancements can be made to individual services and released as new versions without causing an impact on the existing consumer applications As shown in the diagram above, multiple versions can quickly lead to lot of dependency management hassles, thereby increasing complexity in managing and tracking them In an enterprise, consumer applications would typically be developed and maintained by different teams. Multiple versioning gives the flexibility to the team to prioritize and migrate to the latest version according to their convenient schedule and budget. Any bug-fixes/errors discovered at a later point of time in services would need appropriate fixing in all applicable versions of the service. This eventually leads to poor maintainability of the service code There is always an easy rollback plan in place when an application faces an issue with the new version. It can just continue interacting with an earlier stable version. Custom solution would need to be followed in most cases, requiring to maintenance of several versioned copies of the WSDL and schema. Additional tool / runtime registry is required to fetch the appropriate endpoint URL based on the version number Source code of the services would need to be carefully controlled using branching so that multiple versions of binaries are generated and maintained appropriately. Service Versioning Best Practices Company Confidential Page 4 of 7 Order Processor Service v1.0 Order Processor Service v1.1 Order Processor Service v1.2 Order Processor Service v1.3 Order Processor Service v1.n Stock Query Service v 1.0 Stock Query Service v 1.1 Stock Query Service v 1.n App 1 App 2 App 3 App 4 App 5 App 6 App 7
  • 5. 3. Baselined Services – No Versioning Baselined Services Overview The concept of Baselined Services discourages the use of versioning. Only one finalized version of Service is kept active at any point of time, and all consumer applications points to one and only version of the service, which is the baselined version. Baselined Services Example The following diagram (adapted from the previous) example illustrates the concept of baselined services. Pros and Cons Pros Cons The Service Platform represents one single view of the enterprise service portfolio, thereby ensuring “re-usability” in its true sense. This policy is “too rigid” on several application consumer teams, where in every change/enhancement to the service would require a bit of migration work within the application Maintenance is greatly simplified Design of the service would need to be considered with great care, ensuring forward and backward compatibility. This could be a limiting factor in some cases for the business teams to plan for major service enhancements A runtime registry is not needed as Impact analysis procedure should be Service Versioning Best Practices Company Confidential Page 5 of 7 Order Processor Service Stock Query Service v 1.0 App 1 App 2 App 3 App 4 App 5 App 6 App 7
  • 6. consumer applications maintain a fixed endpoint URL strengthened so that changes are implemented with great accuracy Source code management of the services is greatly simplified as there is only one version to maintain Live deployment Rollbacks should be planned carefully so that there is minimal impact on the consumer application. 4. Best Practices Having described both approaches, and their pros/cons listed, it becomes very difficult for enterprises to choose a particular approach. The pros of the versioned services approach seems to be ideal compared to the cons of baselined services approach. Hence, the best practice recommendations for versioning governance strategy are • Use a mix-and-match of both worlds by following versioned services approach, yet having control on the versioning nightmares by limiting the maximum active versions to 3 • Upon launching a new version of the service, only the last two continue to remain active. All the lower versions should be deprecated and de-commissioned. • This means, no more than three active versions of a service exist at any point of time. Policies needs to be established and communicated to the consumer application teams to ensure that migration is done on time • The services team will not be responsible for impacts to the consumer application if the application continues to use a deprecated version of the service. Service Versioning Best Practices Company Confidential Page 6 of 7
  • 7. Torry Harris SOA engagement Service Versioning Best Practices Company Confidential Page 7 of 7