0
respostas

Diferentes versões de um mesmo serviço

Em relação a parte abstrata e concreta de um wsdl.

Imagine que o governo crie um wsdl padronizado para que as empresas troquem informações bancarias sobre seus correntistas. Todo banco seria um client e um servidor. Afinal, ele poderia consultar outros bancos e poderia ser consultado.

Imagine a parte abstrata:

<portType name="transacoes">
    <operation name="informar">
      // inputs
     // outputs
   </operation>
</portType>

Na parte concreta

eu teria algo similar:

<service name="transacoesEmpresas">
<port name="transacoesPort" binding="tns:transacoes">
   <soap:address location="localhost:8080/transacoes?wsdl" />
</port>
</service>

A principio, tudo certo.

O problema conceitual que eu enfrento é o seguinte.

Após 2 anos, o governo lança uma nova versão desse wsdl fazendo uma melhoria nos dados (messages) e incluindo outras funcionalidades adicionais.

Os dois serviços se mantém vigentes durante um período, ou seja, as empresas teriam as duas versões do serviço online.

Se eu tentar gerar um um server num glassfish ou widlfly da vida, na hora que ele subir os serviços ele vai reclamar primeiro que o nome do service é o mesmo e depois vai reclamar que o portType também é igual.

Eu poderia até mudar o nome para TransacoesEmpresasNovaVersa. E o portType para transacoesPortNovaVersao.

Nesse caso, eu estaria alterando a parte concreta do web service. Ou seja, se alguma empresa fosse consumir o meu serviço, o port e o service name estariam diferentes.

Se toda instituição fizer isso, eu teria x wsdl com a parte concreta diferente. E minha aplicação client teria que alem do endereco especifico de um certo banco, eu teria que mudar o serviceName o port para toda requisicao.

A pergunta que fica é: é certo isso?

Se for errado, a melhor forma de eu disponibilizar servicos com o mesmo nome seria colocar 1 servidor separado para cada versão do serviço?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software