Hi Barry,

I'd rather do it in this way. Deploy the two versions of the service as two
separate services in Axis2. But would front Axis2 with a mediation engine,
(you could use Apache Synapse or the WSO2
ESB<http://wso2.org/projects/esb/java>[1] which is built on Apache
Synapse for this purpose). Synapse allows you
to create what is called proxy services. So for this purpose I could create
a proxy service on synapse and give that URL to my customers. Now depending
on some content in the message (either a targetnamespace or a custom SOAP
header or a HTTP Header, choice is yours) you could forward your message to
the correct service. What your essentially doing here is hiding your service
implementation details using synapse. Now your clients have a single URL to
talk to.

BTW synapse is lightweight and high has very good performance hence you need
not worry about a drop in performance in this case.

Thanks,
Keith.

[1] http://wso2.org/projects/esb/java


On Tue, Oct 21, 2008 at 11:27 PM, Barry Alexander <[EMAIL PROTECTED]
> wrote:

> Other than "you're on your own" advice, can you provide some guidelines or
> best practices regarding versioning?
>
>
>
> I thought this was an excellent question and currently of hot discussion
> with my co-workers.
>
>
>
> Some further questions:
>
>
>
> Should message version be embedded as part of SOAP headers using
> WS-Addressing standards?  Or part of the wsdl?
>
> Can end point resolution be used during in-flow phases/handlers to route
> services of various versions end points?
>
> Should versioning be handled as part of a 'mediator'?
>
>
> On Tue, Oct 21, 2008 at 10:12 AM, Deepal jayasinghe <[EMAIL PROTECTED]>wrote:
>
>> Howell, David wrote:
>> >
>> > Hi,
>> >
>> > Is there a recommended or commonly used approach to versioning a
>> > service (SOAP, doc/literal) that is to be deployed on Axis2? I'm
>> > trying to provide some means of not breaking consumers of an existing
>> > service if I have to deploy a new version that isn't backwards
>> > compatible. We're using AXIOM / no data binding for the service
>> > consumers and producers.
>> >
>> Actually we had some discussion on how to do the version support in
>> Axis2 (for service) , but we have not implement that. So only option is
>> to manage service yourself.
>> >
>> > In a lot of cases I think I'll just want to move from deploying
>> > MyService_V1.aar to deploying MyService_V2.aar. V1 can stay deployed
>> > on the Axis2 server until the consumers have all moved on to V2.
>> >
>> > I've been looking at including version information in the target
>> > namespace specified in the WSDL for the service as a mechanism for
>> > consumers to specify which version of the service they want to use.
>> > I'm struggling to understand what my options are for deploying the old
>> > and new versions of my service. Specifically:
>> >
>> > - I don't seem to need to deploy MyService_V1 and MyService_V2 on
>> > different endpoint addresses, but
>> >
>> > - I assume I do have to give them different names in the <service>
>> > element of the wsdl.
>> >
>> > Is this correct?
>> >
>> > Finally, is there any way of using a single endpoint and service name
>> > that accepts requests from consumers that may have different XML
>> > namespaces depending on the version of the service they are using?
>> >
>> > Thanks,
>> >
>> > Dave
>> >
>>
>>
>> --
>> Thank you!
>>
>>
>> http://blogs.deepal.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>


-- 
Keith Chapman
Senior Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://www.keith-chapman.org

Reply via email to