2012-05-11 14 views
89

Recientemente, decidí comenzar a aprender acerca de los servicios web de Java y cuando comencé a buscar un tutorial para servicios web de Java en Google, descubrí que hay muchos tipos de servicios web basados ​​en XML, basados ​​en SOAP, y también en servicios web RESTful.Necesito aprender Servicios web en Java. ¿Cuáles son los diferentes tipos en él?

Además, encontré que hay una especificación JAX-WS para servicios web basados ​​en xml, y especificación JAX-RS para crear servicios web RESTful.

Q1) Me confundí, sería genial si alguien puede ayudarme a entender la diferencia entre estos diferentes tipos de servicios web, para que pueda decidir cuál aprender primero.

Q2) Además, quiero aprender a fondo sobre la creación de diferentes tipos de servicios web en Java. ¿Hay 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 qué escenarios y condiciones debo decidir si deseo crear un servicio web basado en XML en lugar de un servicio SOAP o si debo ir con el servicio RESTful.

+0

[El Tutorial de Java EE 6] (http://docs.oracle.com/javaee/6/tutorial/doc/) –

+1

Buenas question.thanks – Krishna

Respuesta

138
  1. SOAP Web Services son a base de estándar y con el apoyo de casi todas las plataformas de software: Dependen en gran medida en XML y tiene soporte para transacciones, la seguridad, los mensajes asíncronos y muchos otros temas. Es un estándar bastante grande y complicado, pero cubre casi todas las situaciones de mensajería. Por otro lado, RESTful services se basa en el protocolo HTTP y los verbos (GET, POST, PUT, DELETE) para intercambiar mensajes en cualquier formato, preferiblemente JSON y XML. Es un enfoque arquitectónico bastante simple y elegante.
  2. Como en todos los temas de Java World, existen varias bibliotecas para compilar/consumir servicios web. En el lado SOAP, tiene JAX-WS standard y Apache Axis, y en REST puede usar Restlets o Spring REST Facilities, entre otras bibliotecas.

Con la pregunta 3, this article establece que los servicios REST son apropiado en esta hipótesis:

  • Si usted tiene ancho de banda limitado
  • Si las operaciones no tienen estado: No hay información se conserva entre una invocación a la el próximo, y cada solicitud se trata de manera independiente.
  • Si sus clientes requieren el almacenamiento en caché.

Mientras SOAP es el camino a seguir cuando:

  • Si requiere el procesamiento asincrónico
  • Si necesita contrato/Interfaces formales
  • En sus operaciones de servicio son con estado: Por ejemplo, almacenar información/datos en una solicitud y usar esa información almacenada en la siguiente.
+11

1 por ser tan clara y estableciendo los escenarios :) –

+0

Respuesta nítida y clara. – Krishna

+0

+1 por buena respuesta ... !!! –

13

Q1) Éstos son un par de cosas para leer o Google más:

Main differences between SOAP and RESTful web services in java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

Todo depende de lo que quieres aprender en primer lugar. Te recomendaría que eches un vistazo al marco CXF. Puede construir ambos servicios de descanso/jabón.

Q2) Éstos son par de buenos tutoriales para el jabón (que había ellas marcada):

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

mejor manera de aprender no es sólo lectura tutoriales. Pero primero deberías ir a través de tutoriales para obtener una idea básica para que puedas ver que puedes producir algo (o no) y eso te motivará.

SO es una gran manera de aprender tecnología particular (o más), la gente pregunta muchas cuestiones, y hay respuestas más raras. Pero, en general, aprenderá sobre formas de resolver problemas de otra manera. Tal vez no sabías de esa manera, tal vez no pudiste pensarlo por ti mismo.

Suscríbase a un par de etiquetas que le resulten interesantes y sea persistente, haga buenas preguntas y trate de dar buenas respuestas y le garantizo que aprenderá esto a medida que pase el tiempo (si es persistente).

Q3) 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 así y tomarlo desde allí.

Si decide utilizar CXF como su marco para construir servicios REST/SOAP, le recomiendo que busque este libro Apache CXF Web Service Development. Es fantástico, no es difícil de leer y tampoco demasiado grande (gana).

+1

1 para el libro :) – Saju

7

SOAP WS admite estilos de integración de llamadas a procedimiento remoto (es decir, RPC) y de middleware orientado a mensajes (MOM). Restful Web Service admite solo el estilo de integración RPC.

El SOAP WS es el 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. Admite solo protocolos HTTP o HTTPS.

SOAP WS solo permite el formato de datos XML. Se definen operaciones, que se canalizan a través de POST. El objetivo es acceder a las operaciones nombradas y exponer la lógica de la aplicación como un servicio. El REST permite múltiples formatos de datos como XML, datos JSON, texto, HTML, etc. Se puede utilizar cualquier navegador porque el enfoque REST usa las operaciones web GET, PUT, POST y DELETE estándar. El objetivo es acceder a los recursos nombrados y exponer los datos como un servicio. REST tiene soporte AJAX. Puede usar el objeto XMLHttpRequest. Bueno para operaciones sin estado CRUD (Crear, Leer, Actualizar y Eliminar). GET - representan() Post - acceptRepresention() PUT - storeRepresention() BORRAR - removeRepresention()

jabón a base lee no puede ser almacenado en caché. Las lecturas basadas en REST pueden almacenarse en caché. Realiza y escala mejor. SOAP WS admite tanto seguridad SSL como WS-security, que agrega algunas características de seguridad empresarial como mantener la seguridad hasta el punto donde es necesaria, mantener las identidades a través de intermediarios y no solo punto a punto SSL, asegurando diferentes partes del mensaje con diferentes algoritmos de seguridad, etc. REST solo admite seguridad SSL punto a punto.El SSL encripta todo el mensaje, ya sea que todo sea sensible o no. 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 compensaciones para transacciones de larga ejecución. También es compatible con la confirmación en dos fases en todos los recursos distribuidos. REST admite transacciones, pero no es compatible con ACID ni puede proporcionar una confirmación de dos fases en recursos transaccionales distribuidos ya que está limitado por su protocolo HTTP.

El SOAP tiene una lógica de éxito o reintento integrada y proporciona una fiabilidad 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 invoquen el servicio para tratar las fallas de comunicación reintentando.

fuentehttp://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html

+0

> Restful Web Service admite solo el estilo de integración RPC. REST no es RPC, dice RPC, "define algunos métodos que hacen algo", mientras que REST dice, "define algunos recursos y ellos tendrán estos métodos". http://www.peej.co.uk/articles/rest.html – pmu

0

Si su aplicación a menudo utiliza el protocolo HTTP, REST es mejor debido a su peso ligero, y sabiendo que su aplicación sólo utiliza el protocolo http elegir el jabón no es tan bueno porque pesado, mejor tomar decisiones sobre la selección de servicios web en función de los protocolos que utilizamos en nuestras aplicaciones.

Cuestiones relacionadas