• Post Reply Bookmark Topic Watch Topic
  • New Topic

Service Versioning Deployment - Best approach

 
Ashwin Kumar
Ranch Hand
Posts: 78
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am looking for best approach to implement the service versioning. I have existing service which is deployed in production. The new version we added few new operations with schema updates. The new version wsdl and schema has new version of namespaces. Here is the structure and config details..
wsdl/v1 has old files and wsdl/v2 has new files in EAR.
The deployment fails if v2 wsdl's service name is not diffrent from v1 service name. The end point can be same but anyway the end point will be diffrent for v2 service. I wanted to deploy this in one EAR with v1 and v2 WSDL's and keeping the v2 service name as v1. Is this the good approach ?
The future plan would be obselete v1 as we implement v3. PLease suggest. How can the wsdl config support this kind of scenario?.
I am using webspehere 6.1 and here is the error message when deploy with same service name with diffrent end point url for V2:
Error 404: SRVE0190E: File not found: /ProductDefinitionServiceV2
 
Ivan Krizsan
Ranch Hand
Posts: 2198
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi!
First of all, according to the WSDL 1.1 specification, service names must be unique within one WSDL: http://www.w3.org/TR/wsdl#_services

Given that you have added operations, this is to be considered as a compatible change and I feel there is no need to change the namespace.
Reference: http://www.soapatterns.org/compatible_change.php

If you perform modifications to the service that are not compatible changes and/or you still want to introduce versioning using namespaces, a solution is (as I have said here before) to introduce a service facade (mediator node) that examines the namespace of incoming requests and forwards them to the appropriate endpoint.
Best wishes!
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!