Author |
Message
|
pottas |
Posted: Tue Mar 25, 2008 11:27 pm Post subject: WSDL Versioning |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
I am running WMB 6.1
I have the following issue I need to resolve:
We have the requirement to design a flow that uses SOAP/HTTP as an exposed Web Service. The definition of the WSDL is designed to contain the version within the namespace:
Quote: |
xmlns:cus="http://contracts.it.nednet.co.za/services/customer-services/2007-07-21/Customer |
So, when we get a new version of the WSDL I would like to have the capability to run both versions of the WSDLs at the same time based on who-ever wants to consume this service.
So this is my proposal (and this is where I need assistance, please...):
I'm thinking of having a Compute node in my flow that interrogates the namespace to validate the version and then based on that use the correct WSDL version.
Is this the only option I have or can I handle it a different way?
Thanks in advance
pottas |
|
Back to top |
|
 |
AkankshA |
Posted: Wed Mar 26, 2008 12:04 am Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
So with each incoming message u ll first extract the namespaces and then validate it wrt corresponding wsdl
sound coooool
 _________________ Cheers |
|
Back to top |
|
 |
pottas |
Posted: Wed Mar 26, 2008 1:32 am Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
Yep, I think this will be the way to go AkankshA - unless someone else has a better option??
The other consideration I have to take into account is the matter of 'Regression testing'. This is a swearword in our environment... so when I get a new version of the WSDL, I would like to have the LEAST impact on the existing flow as well as not having to re-test the existing services that is based on the previous versions of the WSDLs.
Any suggestions out there?
Thanks. |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Mar 26, 2008 1:47 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I think you can just deploy all of the WSDLs and let Broker decide which one to validate against, and then use the namespace to find out which one you got. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
pottas |
Posted: Wed Mar 26, 2008 1:55 am Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
So what you are suggesting jeff is to have all the WSDLs deployed in your execution group and have a flow that basically looks like:
Quote: |
HTTPInput --> Compute --> RCD --> HTTPReply |
...where the Compute interrogates the namespace and picks the correct WSDL? |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 26, 2008 2:19 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
I think you can just deploy all of the WSDLs and let Broker decide which one to validate against, and then use the namespace to find out which one you got. |
That would only work if you had a single message set containing all the different WSDLs.
Pottas wants to minimise regression testing, so maybe this would work:
- One message set per WSDL version
- Compute node ( or perhaps Filter / RouteToLabel node? ) selects a processing path or even a subflow for each WSDL version
- Each processing path or subflow contains a Validate node which specifies the message set,
Make sure that you leave 'Parse Timing' set to 'On demand' on the input node, otherwise you will parse the entire message when you only need to parse the root tag ( to discover its namespace ). |
|
Back to top |
|
 |
|