web-dev-qa-db-fra.com

J'ai besoin d'apprendre les services Web en Java. Quels sont les différents types qu'il contient?

Récemment, j’ai décidé de commencer à apprendre les services Web Java) et quand j’ai commencé à rechercher un tutoriel pour Java dans google, j’ai découvert que Il existe de nombreux types de services Web basés sur XML, SOAP, ainsi que des services Web RESTful.

J'ai également constaté 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 pouvait m'aider à comprendre la différence entre ces différents types de services Web, afin que je puisse choisir le premier à apprendre.

Q2) En outre, je souhaite approfondir la création de différents types de services Web en Java. Existe-t-il un tutoriel 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 devrais-je décider de créer un service Web basé sur XML plutôt qu'un service SOAP ou devrais-je utiliser un service RESTful?).

91
Rajesh Pantula
  1. Les services Web SOAP sont standard et pris en charge par presque toutes les plates-formes logicielles: ils s'appuient fortement sur XML et prennent en charge les transactions, la sécurité, les messages asynchrones et de nombreux autres problèmes. C’est une norme assez lourde et compliquée, mais elle couvre presque toutes les situations de messagerie. De l'autre côté, services RESTful s'appuie sur le protocole HTTP et les verbes (GET, POST, PUT, DELETE) pour échanger des messages dans n'importe quel format, de préférence JSON et XML. C’est une approche architecturale assez simple et élégante.
  2. Comme dans tous les sujets du monde Java, il existe plusieurs bibliothèques pour créer/utiliser des services Web. Dans le SOAP, vous avez le JAX -WS standard et Apache Axis , et dans REST vous pouvez utiliser Restlets ou Spring REST Installations parmi les autres bibliothèques.

Avec la question 3, cet article indique que les services RESTful sont appropriés dans les scénarios suivants:

  • Si vous avez une bande passante limitée
  • Si vos opérations sont sans état: Aucune information n'est conservée d'une invocation à l'autre et chaque demande est traitée indépendamment.
  • Si vos clients exigent la mise en cache.

While SOAP est la voie à suivre quand:

  • Si vous avez besoin d'un traitement asynchrone
  • Si vous avez besoin d'un contrat formel/d'interfaces
  • Dans votre service, les opérations ont un état: par exemple, vous stockez des informations/données sur une demande et utilisez ces données stockées sur la suivante.
141

Q1) Voici quelques éléments à lire ou à rechercher sur Google:

Principales différences entre SOAP et les services Web RESTful en Javahttp://www.ajaxonomy.com/2008/xml/web-services-part- 1-soap-vs-rest

C'est à vous de décider ce que vous voulez apprendre en premier. Je vous recommande de jeter un coup d'œil au framework CXF . Vous pouvez créer les deux services repos/savon.

Q2) Voici quelques bons tutoriels pour soap (je les ai marqués d'un 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

Le meilleur moyen d’apprendre n’est pas simplement de lire des tutoriels. Mais vous iriez d’abord dans des tutoriels pour vous faire une idée de base afin de vous rendre compte que vous êtes capable de produire quelque chose (ou non) et que cela vous motiverait.

SO est un excellent moyen d’apprendre une technologie particulière (ou plus), les gens posent beaucoup de questions étranges et il ya des réponses de plus en plus étranges. Mais dans l’ensemble, vous apprendrez des moyens de résoudre les problèmes autrement. Peut-être que vous ne le saviez pas, peut-être que vous ne pourriez pas y penser par vous-même.

Abonnez-vous à quelques tags qui vous intéressent et persistants, posez de bonnes questions et essayez de donner de bonnes réponses et je vous garantis que vous apprendrez cela au fil du temps (si vous êtes persistant).

Q3) Vous devrez répondre à cette question 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 le reprendre à 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 (gagnant gagnant).

13
ant

Le SOAP WS prend en charge les styles d’appel d’appel de procédure distante (RPC) et de middle-ware orienté message (MOM). Le service Web de restauration prend en charge uniquement le style d’intégration RPC.

Le SOAP WS est neutre pour le protocole de transport. Prend en charge plusieurs protocoles tels que 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.

Le SOAP WS n'autorise que le format de données XML. Vous définissez les opérations, quels tunnels via le POST. L'accent est mis sur l'accès aux opérations nommées et sur l'exposition de la logique de l'application en tant que service. REST autorise plusieurs formats de données tels que XML, données JSON, texte, HTML, etc. Vous pouvez utiliser n’importe quel navigateur car l’approche REST utilise les méthodes standard GET, PUT, POST et DELETE Web operations. L'accent est mis sur l'accès aux ressources nommées et l'exposition des données en tant que service. REST a AJAX. Il peut utiliser l'objet XMLHttpRequest. Bon 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. REST peuvent être mises en cache. Performes et évolutives. SOAP WS prend en charge 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 moment où cela est nécessaire, en maintenant les identités par des intermédiaires et pas seulement en pointant SSL uniquement, en sécurisant différentes parties du message avec différents algorithmes de sécurité, etc. Le REST ne prend en charge que le point La sécurité SSL chiffre l'ensemble du 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 les compensations) La gestion des transactions basées sur des transactions de longue durée prend également en charge la validation en deux phases sur les ressources distribuées. Le REST prend en charge les transactions, mais il n'est ni conforme à ACID ni ne peut fournir une validation en deux phases sur des ressources transactionnelles distribuées. comme il est limité par son protocole HTTP.

La logique SOAP a une logique de réussite ou de nouvelle tentative intégrée) et offre une fiabilité de bout en bout, même à travers SOAP intermédiaires. REST n'a pas de système de messagerie standard et attend des clients qui invoquent le service qu'ils gèrent les échecs de communication en les réessayant.

source http://Java-success.blogspot.in/2012/02/Java-web-services-interview-questions.html

7
murali

Si votre application utilise souvent le protocole http, alors REST est préférable en raison de son poids léger et sachant que votre application utilise uniquement le protocole http, choisir SOAP n'est pas si bon parce qu’il est lourd, Mieux vaut prendre une décision concernant la sélection du service Web en fonction des protocoles que nous utilisons dans nos applications.