Recientemente, decidí comenzar a aprender sobre los servicios web Java y cuando comencé a buscar un tutorial para servicios web Java en Google, descubrí que hay muchos tipos de servicios web basados en XML, basados en SOAP y también servicios web RESTful.
Además, descubrí que hay una especificación JAX-WS para servicios web basados en xml y una especificación JAX-RS para crear servicios web RESTful.
P1) Me confundí, sería genial si alguien pudiera ayudarme a entender la diferencia entre estos diferentes tipos de servicios web, para que pueda decidir cuál aprender primero.
P2) Además, quiero aprender en profundidad sobre la creación de diferentes tipos de servicios web en java. ¿Existe algún tutorial o recurso que pueda dar una idea de cada tipo de servicio web y una comparación entre ellos?
Q3) en función de los escenarios y condiciones, debo decidir que deseo crear un servicio web basado en XML en lugar de un servicio SOAP o debo optar por el servicio RESTful.
fuente
Respuestas:
Con la pregunta 3, este artículo establece que los servicios RESTful son adecuados en estos escenarios:
Si bien SOAP es el camino a seguir cuando:
fuente
P1) Aquí hay un par de cosas para leer o buscar más en Google:
Principales diferencias entre los servicios web SOAP y RESTful en java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
Depende de usted qué es lo que quiere aprender primero. Te recomiendo que eches un vistazo al marco CXF . Puede construir ambos servicios de descanso / jabón.
P2) Aquí hay un par de buenos tutoriales para el jabón (los hice marcar como favoritos):
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 mejor manera de aprender no es simplemente leyendo tutoriales. Pero primero deberías ir a través de tutoriales para tener una idea básica para que puedas ver que eres capaz de producir algo (o no) y eso te motivaría.
SO es una excelente manera de aprender tecnología en particular (o más), la gente hace muchas preguntas extrañas y hay respuestas cada vez más extrañas. Pero, en general, aprenderá formas de resolver problemas de otra manera. Tal vez no sabías de esa manera, tal vez no podrías pensar en ello por ti mismo.
Suscríbase a un par de etiquetas que le interesen y sea persistente, haga buenas preguntas e intente dar buenas respuestas y le garantizo que aprenderá esto a medida que pase el tiempo (si es persistente).
P3) Tendrá que responder a esta usted mismo. Primero, al decidir qué vas a construir, después de todo, tendrás que pensar en algún mini proyecto o algo y partir de ahí.
Si decide utilizar CXF como su marco para crear servicios REST / SOAP, le recomiendo que consulte este libro
Apache CXF Web Service Development
. Es fantástico, no es difícil de leer y tampoco demasiado grande (todos ganan).fuente
SOAP WS admite tanto la llamada a procedimiento remoto (es decir, RPC) como los estilos de integración de middleware orientado a mensajes (MOM). Restful Web Service solo admite el estilo de integración RPC.
SOAP WS es un protocolo de transporte neutral. Admite múltiples protocolos como HTTP (S), Mensajería, TCP, UDP SMTP, etc. El REST es específico del protocolo de transporte. Solo admite protocolos HTTP o HTTPS.
El SOAP WS solo permite el formato de datos XML. Usted define las operaciones que atraviesan el POST. La atención se centra en acceder a las operaciones nombradas y exponer la lógica de la aplicación como un servicio. REST permite múltiples formatos de datos como XML, datos JSON, texto, HTML, etc. Se puede usar cualquier navegador porque el enfoque REST usa las operaciones web estándar GET, PUT, POST y DELETE. La atención se centra en acceder a los recursos nombrados y exponer los datos como un servicio. REST tiene soporte AJAX. Puede utilizar el objeto XMLHttpRequest. Bueno para operaciones CRUD (crear, leer, actualizar y eliminar) sin estado. OBTENER - representar () POST - aceptarRepresentación () PONER - storeRepresention () DELETE - eliminarRepresentación ()
Las lecturas basadas en SOAP no se pueden almacenar en caché. Las lecturas basadas en REST se pueden almacenar en caché. Se desempeña y escala mejor. SOAP WS admite tanto la seguridad SSL como la seguridad WS, que agrega algunas características de seguridad empresarial, como mantener la seguridad hasta el punto en que se necesita, mantener las identidades a través de intermediarios y no solo SSL de punto a punto, asegurando diferentes partes del mensaje con diferentes algoritmos de seguridad, etc. REST solo admite seguridad SSL punto a punto. El SSL cifra todo el mensaje, ya sea que sea confidencial o no. El SOAP tiene soporte integral tanto para la gestión de transacciones basada en ACID para transacciones de corta duración como para la gestión de transacciones basada en compensación para transacciones de larga duración. También admite el compromiso de dos fases en los recursos distribuidos. El REST admite transacciones,
SOAP tiene una lógica de éxito o reintento incorporada y proporciona confiabilidad de extremo a extremo incluso a través de intermediarios SOAP. REST no tiene un sistema de mensajería estándar y espera que los clientes que invocan el servicio resuelvan las fallas de comunicación volviendo a intentarlo.
fuente http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
fuente
Si su aplicación usa a menudo el protocolo http, entonces REST es mejor debido a su peso ligero, y saber que su aplicación usa solo el protocolo http, elegir SOAP no es tan bueno porque es pesado. Es mejor tomar una decisión sobre la selección del servicio web en función de los protocolos que usamos. en nuestras aplicaciones.
fuente