Fala Galera,
Sem entrar em detalhes muito tecnicos, gostaria de saber que estrategia voces estao usando para fazer interoperabilidade entre versoes de um mesmo webservice. Por exemplo: Tenho na versao 1.0 do meu software um webservice que prove a comunicacao entre meu cliente 1.0 e meu servidor 1.0. Para a versao 2.0 do software, eu vou adicionar um novo parametro ao metodo e eu gostaria que meu cliente 1.0 fosse capaz de acessar o meu servidor 2.0 e vice versa.
Opcoes pensadas:
- Criar um novo endpoint a cada versao - assim se nao consigo acessar a versao mais nova (2.0) eu tento acessar a versao mais velha (1.0). Questao: Isso nao seria problematico em relacao a redes - esperar um time out para um endpoint pode demorar um tempo excessivo.
- Criar um novo namespace dentro de um mesmo endpoint, assim nao tem time-out. Assim teriamos um novo namespace para cada versao no mesmo endpoint. Isso me parece possivel mas nao tenho certeza - estou usando JEE 5.
- (Nojento) Usar um servico que passa um Object[]<String key,String value> e retorna um Object[]<String key,String value> - passar um atributo versao, assim podemos saber que versao estamos usando. Isso me parece nojento, procedural e trabalhoso - tenho que reconstruir a cada request os objetos outra vez para utiliza-los.
E entao, o que voces tem feito quanto a este problema ?
Me perdoem quanto aos acentos - nao estou no Brasil e aqui nao tem teclado com acentos.
Abracos,
Alan