Recentemente, decidi começar a aprender sobre serviços web java e quando comecei a pesquisar um tutorial para serviços web java no google, descobri que existem muitos tipos de serviços web baseados em XML, baseados em SOAP, também serviços web RESTful.
Além disso, descobri que há uma especificação JAX-WS para serviços da web baseados em xml e uma especificação JAX-RS para a criação de serviços da web RESTful.
P1) Fiquei confuso, seria ótimo se alguém pudesse me ajudar a entender a diferença entre esses diferentes tipos de serviços da web, para que eu possa decidir qual aprender primeiro.
P2) Além disso, quero aprender mais sobre como criar diferentes tipos de serviços da web em java. Existe algum tutorial ou recursos que podem dar uma visão de cada tipo de serviço da web e uma comparação entre eles.
Q3) com base em quais cenários e condições devo decidir que desejo criar um serviço da web baseado em XML em vez de um serviço SOAP ou devo escolher o serviço RESTful.
fonte
Respostas:
Com a pergunta 3, este artigo afirma que os serviços RESTful são adequados nestes cenários:
Embora SOAP seja o caminho a percorrer quando:
fonte
P1) Aqui estão algumas coisas para ler ou mais no Google:
Principais diferenças entre os serviços da web SOAP e RESTful em java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
Depende de você o que você quer aprender primeiro. Eu recomendo que você dê uma olhada na estrutura CXF . Você pode construir serviços de descanso / sabão.
P2) Aqui estão alguns bons tutoriais para sabonetes (eu os marquei):
http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226
http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/
http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html
A melhor maneira de aprender não é apenas lendo tutoriais. Mas primeiro você passaria por tutoriais para ter uma ideia básica para ver se é capaz de produzir algo (ou não) e isso o deixaria motivado.
SO é uma ótima maneira de aprender uma tecnologia específica (ou mais), as pessoas fazem muitas perguntas estranhas e há respostas cada vez mais estranhas. Mas, no geral, você aprenderá maneiras de resolver problemas de outra maneira. Talvez você não conhecesse esse caminho, talvez não pudesse pensar nisso sozinho.
Assine algumas tags que são interessantes para você e seja persistente, faça boas perguntas e tente dar boas respostas e eu garanto que você aprenderá isso com o passar do tempo (se você for persistente).
Q3) Você terá que responder a esta você mesmo. Primeiro, decidindo o que você vai construir, afinal você vai precisar pensar em algum mini projeto ou algo assim e partir daí.
Se você decidir usar o CXF como sua estrutura para construir os serviços REST / SOAP, recomendo que você consulte este livro
Apache CXF Web Service Development
. É fantástico, não é difícil de ler e também não é muito grande (win win).fonte
O SOAP WS oferece suporte a estilos de integração de chamada de procedimento remoto (ou seja, RPC) e de middleware orientado a mensagem (MOM). O Restful Web Service oferece suporte apenas ao estilo de integração RPC.
O SOAP WS é um protocolo de transporte neutro. Suporta vários protocolos como HTTP (S), Mensagens, TCP, UDP SMTP, etc. O REST é específico do protocolo de transporte. Suporta apenas protocolos HTTP ou HTTPS.
O SOAP WS permite apenas o formato de dados XML. Você define operações, que fazem um túnel através do POST. O foco está em acessar as operações nomeadas e expor a lógica do aplicativo como um serviço. O REST permite vários formatos de dados como XML, dados JSON, texto, HTML, etc. Qualquer navegador pode ser usado porque a abordagem REST usa as operações da Web GET, PUT, POST e DELETE padrão. O foco está em acessar os recursos nomeados e expor os dados como um serviço. REST tem suporte AJAX. Ele pode usar o objeto XMLHttpRequest. Bom para operações CRUD (Criar, Ler, Atualizar e Excluir) sem estado. GET - represent () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()
As leituras baseadas em SOAP não podem ser armazenadas em cache. As leituras baseadas em REST podem ser armazenadas em cache. Apresenta melhor desempenho e escala. SOAP WS oferece suporte a segurança SSL e WS-security, o que adiciona alguns recursos de segurança corporativa, como manter a segurança até o ponto em que é necessário, manter identidades por meio de intermediários e não apenas apontar a ponto SSL apenas, protegendo diferentes partes da mensagem com diferentes algoritmos de segurança, etc. O REST oferece suporte apenas à segurança SSL ponto a ponto. O SSL criptografa toda a mensagem, seja ela confidencial ou não. O SOAP tem suporte abrangente para gerenciamento de transações baseado em ACID para transações de curta duração e gerenciamento de transações baseado em compensação para transações de longa duração. Ele também suporta o commit de duas fases em recursos distribuídos. O REST suporta transações,
O SOAP tem uma lógica de sucesso ou nova tentativa incorporada e fornece confiabilidade de ponta a ponta, mesmo por meio de intermediários SOAP. O REST não tem um sistema de mensagens padrão e espera que os clientes que invocam o serviço lidem com as falhas de comunicação tentando novamente.
fonte http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
fonte
Se seu aplicativo costuma usar o protocolo http, então REST é melhor por causa de seu peso leve, e saber que seu aplicativo usa apenas o protocolo http escolher SOAP não é tão bom porque é pesado. Melhor tomar decisões sobre a seleção de serviço da web com base nos protocolos que usamos em nossas aplicações.
fonte