Récemment, j'ai décidé de commencer à en apprendre davantage sur les services Web Java et lorsque j'ai commencé à rechercher un didacticiel sur les services Web Java dans Google, j'ai découvert qu'il existe de nombreux types de services Web basés sur XML, SOAP, également des services Web RESTful.
De plus, j'ai trouvé qu'il existe une spécification JAX-WS pour les services Web basés sur XML et une spécification JAX-RS pour la création de services Web RESTful.
Q1) Je suis confus, ce serait formidable si quelqu'un peut m'aider à comprendre la différence entre ces différents types de services Web, afin que je puisse décider lequel apprendre en premier.
Q2) De plus, je souhaite en savoir plus sur la création de différents types de services Web en java. Existe-t-il un didacticiel ou des ressources pouvant donner un aperçu de chaque type de service Web et une comparaison entre eux.
Q3) en fonction de quels scénarios et conditions dois-je décider que je souhaite créer un service Web basé sur XML plutôt qu'un service SOAP ou que je devrais utiliser le service RESTful.
la source
Réponses:
Avec la question 3, cet article indique que les services RESTful sont appropriés dans ces scénarios:
Alors que SOAP est la voie à suivre lorsque:
la source
Q1) Voici quelques éléments à lire ou à consulter sur Google:
Principales différences entre les services Web SOAP et RESTful en Java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
C'est à vous que voulez-vous apprendre en premier. Je vous recommande de jeter un œil au framework CXF . Vous pouvez créer les deux services rest / soap.
Q2) Voici quelques bons tutoriels pour soap (je les ai mis en signet):
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
La meilleure façon d'apprendre n'est pas seulement de lire des tutoriels. Mais vous devriez d'abord suivre des tutoriels pour avoir une idée de base afin de voir que vous êtes capable de produire quelque chose (ou pas) et cela vous motiverait.
Le SO est un excellent moyen d'apprendre une technologie particulière (ou plus), les gens posent beaucoup de questions bizarres et il y a des réponses de plus en plus étranges. Mais dans l'ensemble, vous découvrirez des moyens de résoudre les problèmes d'une autre manière. Peut-être que vous ne saviez pas de cette façon, peut-être que vous ne pouviez pas y penser par vous-même.
Abonnez-vous à quelques balises qui vous intéressent et soyez persévérant, posez de bonnes questions et essayez de donner de bonnes réponses et je vous garantis que vous apprendrez cela avec le temps (si vous êtes persévérant).
Q3) Vous devrez répondre à celle-ci vous-même. Tout d'abord, en décidant de ce que vous allez construire, après tout, vous devrez penser à un mini projet ou quelque chose du genre et partir de là.
Si vous décidez d'utiliser CXF comme cadre pour créer des services REST / SOAP, je vous recommande de consulter ce livre
Apache CXF Web Service Development
. C'est fantastique, pas difficile à lire et pas trop gros non plus (win win).la source
SOAP WS prend en charge les styles d'intégration d'appel de procédure distante (c'est-à-dire RPC) et de middleware orienté message (MOM). Le service Web Restful prend uniquement en charge le style d'intégration RPC.
Le SOAP WS est indépendant du protocole de transport. Prend en charge plusieurs protocoles comme HTTP (S), Messagerie, TCP, UDP SMTP, etc. Le REST est spécifique au protocole de transport. Prend en charge uniquement les protocoles HTTP ou HTTPS.
SOAP WS n'autorise que le format de données XML. Vous définissez les opérations, qui passent par le POST. L'accent est mis sur l'accès aux opérations nommées et l'exposition de la logique d'application en tant que service. Le REST autorise plusieurs formats de données tels que XML, données JSON, texte, HTML, etc. N'importe quel navigateur peut être utilisé car l'approche REST utilise les opérations Web standard GET, PUT, POST et DELETE. L'accent est mis sur l'accès aux ressources nommées et l'exposition des données en tant que service. REST prend en charge AJAX. Il peut utiliser l'objet XMLHttpRequest. Idéal pour les opérations CRUD (Créer, Lire, Mettre à jour et Supprimer) sans état. GET - represent () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()
Les lectures basées sur SOAP ne peuvent pas être mises en cache. Les lectures basées sur REST peuvent être mises en cache. Fonctionne et évolue mieux. SOAP WS prend en charge à la fois la sécurité SSL et la sécurité WS, ce qui ajoute des fonctionnalités de sécurité d'entreprise telles que le maintien de la sécurité jusqu'au point où cela est nécessaire, le maintien des identités via des intermédiaires et pas seulement SSL point à point, la sécurisation des différentes parties du message avec différents algorithmes de sécurité, etc. Le REST ne prend en charge que la sécurité SSL point à point. Le SSL crypte tout le message, qu'il soit sensible ou non. SOAP offre une prise en charge complète de la gestion des transactions basée sur ACID pour les transactions de courte durée et de la gestion des transactions basée sur la rémunération pour les transactions de longue durée. Il prend également en charge la validation en deux phases sur les ressources distribuées. Le REST prend en charge les transactions,
SOAP a une logique de réussite ou de nouvelle tentative intégrée et offre une fiabilité de bout en bout, même via des intermédiaires SOAP. REST n'a pas de système de messagerie standard et s'attend à ce que les clients appelant le service traitent les échecs de communication en réessayant.
source http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
la source
Si votre application utilise souvent le protocole http, REST est préférable en raison de son poids léger, et sachant que votre application n'utilise que le protocole http, choisir SOAP n'est pas si bon car il est lourd, mieux vaut prendre une décision sur la sélection du service Web en fonction des protocoles que nous utilisons dans nos applications.
la source