Estamos arquitetanto um grande sistema distribuido onde vamos definir um protocolo (Mensageria em XML) e esse protocolo será implementado por que for oferecer o sistema.
Definiriamos também a estrutura dos WS com métodos e parametros, porém não posso limitar a implementação a uma determinada tecnologia.
A pergunta é.
É possivel que um WS em Java tenha o mesmo WSDL de um WS em .net e vice-e-versa?
Ou seja, é possivel um Client se conectar agora em um WS java e depois em um WS .net sem que exista a necessidade de se refazer os Stubs?
Entendam que ambos os Webservices serão identicos… com os mesmos métodos e parametros.
Seria viavel criar a conexão na mão (assim como fazemos quando estamos no Android)? Qual é a melhor estratégia?
[quote=kleins]É possivel que um WS em Java tenha o mesmo WSDL de um WS em .net e vice-e-versa?
Ou seja, é possivel um Client se conectar agora em um WS java e depois em um WS .net sem que exista a necessidade de se refazer os Stubs?[/quote]
Com certeza! Esse é o principal propósito do protocolo SOAP sobre XML.
Só precisa ter o cuidado de gerar primeiro o WSDL e depois criar o serviço em ambas as plataformas a partir desse WSDL. Com a interface idêntica os stubs vão funcionar independente da linguagem de implementação do servidor.
Se você deixar que frameworks gerem o wsdl a partir do código (Java ou .NET) a interface pode não sair igual. Por isso opte pela técnica contract-first
Não sei se entendi essa parte da pergunta… fala de implementar a comunicação e conversão de dados do XML manualmente?
A não ser que tenha alguma séria restrição, o melhor é deixar que os stubs gerados pelo framework (ex: JAX-WS) façam esse trabalho.
Estamos arquitetanto um grande sistema distribuido onde vamos definir um protocolo (Mensageria em XML) e esse protocolo será implementado por que for oferecer o sistema.
Definiriamos também a estrutura dos WS com métodos e parametros, porém não posso limitar a implementação a uma determinada tecnologia.
A pergunta é.
É possivel que um WS em Java tenha o mesmo WSDL de um WS em .net e vice-e-versa?
Ou seja, é possivel um Client se conectar agora em um WS java e depois em um WS .net sem que exista a necessidade de se refazer os Stubs?
Entendam que ambos os Webservices serão identicos… com os mesmos métodos e parametros.
Seria viavel criar a conexão na mão (assim como fazemos quando estamos no Android)? Qual é a melhor estratégia?
Um abs e valeuuu
[/quote]
Como assim não pode limitar a implementação a uma determinada tecnologia e Webservices serão identicos? Na prática o que necessita atender?
Não da pra limitar a tecnologia. Vou especificar os WS e vamos passar nosso protocolo em xml no meio.
Os metodos do WS serão metodos simples… tal como a NFe.
O lance terá que ser interoperavel mesmo…
Abs e valeuuu
[/quote]
Só pra entender na pratica, você quer expor um serviço que poderá ser consumido por qualquer cliente (java, .NET, etc.)? Se for isso não precisa de dois WebServices, faz um na tecnologia que avaliar melhor, vai poder ser consumido por qualquer tecnologia cliente que dê apoio a SOAP ou que implemente. Do contrário não consegui ver sentido na prática.
Imagine que alguém vai especificar o protocolo para troca de fundos $$$ entre os bancos.
Vamos determinar as mensagens e vamos passar aos bancos como devem ser as informações.
No Brasil devemos ter mais de 300 bancos.
O que eu quero é que um determinado banco, independente da tecnologia que ele usa, possa se conectar em qualquer dos outros 299 sem se importar se o WS de destino é java ou .net. por que o que fatalmente vai acontecer é que uma parte implementará seus serviços em Java outra em .net e outra em qquer coisa.
Eu gostaria que, independente do WS de destino os clientes funcionassem sem ter que regerar nada só trocando a URL.
Conceitualmente: WSs são feitos exatamente para isso: não importa a implementação, você pode consumí-los sem saber a tecnologia utilizada “por trás dos panos”. Mas como já mencionaram, é legal criar o WSDL primeiro, para evitar problemas de compatibilidade etc. Isso falando de SOAP.
Outra opção seria WSs REST. Também independente de plataforma e bem mais simples.
Existem ferramentas para gerar WSDL, mas geralmente vem em pacotes SOA e são caros, tem-se a opção de escrever na mão não é dificil se você manja da especificação, veja se existe um plugin no Eclipse para tal, não sei …
A opção do Rest pode parecer boa no início, mas se for para vender um produto WSDL é melhor, é mais facil entregar um WSDL para um cliente para fazer o consumo do que um RestService já que este não tem um definição formal do contrato.