2010-05-11 30 views
16

Aunque esto podría aparecer como un duplicado de Java Web Services, me gustaría saber por dónde empezar y continuar. En el pasado, he invertido tanto tiempo para encontrar dónde empezar, pero No pude. Hay tantas jergas y caos (¡al menos para mí!) Al leer las páginas sobre servicios web. Hay muchos términos, como JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB's como servicio web y otros términos que desconozco. ¿Puede este grupo de usuarios consolidar y ofrecer una visión general de alto nivel de los servicios web de Java, que es fácil de comprender y seguir? Aprecio tu amabilidad y gracias por tu ayuda.Cómo escribir servicios web efectivos en Java

Respuesta

33

De hecho, es un poco jungla para entender los servicios web. La página wikipedia es decente, pero todavía carece de algunos elementos.

He marcado esta respuesta como wiki de la comunidad, así que no dude en actualizarla o corregirla. Es solo una base.

Un término hinchada:

En primer lugar, el servicio web término se utiliza para referirse a muchas cosas. Si bien muchas personas lo usan para referirse al servicio web basado en SOAP, el término puede usarse para denotar cualquier servicio proporcionado a través de una interfaz web; esta es una fuente de confusión.

Implementación y diseño de estilo:

  • a base de jabón - jabón sigue siendo el estándar de facto para los servicios web. SOAP es un protocolo sobre HTTP que describe el intercambio de mensajes y excepciones. SOAP creció de algo simple a algo muy complicado con todos los WS-* standards que se agregaron más tarde. Los más importantes son: WS-Policy, WS-Security, WS-Addressing, WS-Transaction. Otra especificación importante es MTOM para mensajes grandes.
  • RESTful - El término RESTful se relaciona con el hecho de que el servicio es sin estado y toda la información relevante se pasa como parámetro. Además, en lugar de utilizar un protocolo como SOAP, se utilizan los verbos HTTP simples, p. Get, Put, Delete, Update.
  • Sin estado - WS generalmente son apátridas. El procesamiento empresarial a veces se basa en los llamados identificadores de correlación (con WS-Addressing) que se utilizan para unir las solicitudes y la respuesta en conjunto; esta es la misma idea, como almacenar un identificador de sesión en una cookie porque HTTP es sin estado.
  • Stateful - Hay alguna propuesta para tener WS con estado, pero no sé mucho al respecto.

de implementación y la tecnología de pilas:

  • Servlet - La manera más bajo nivel para implementar un WS: básicamente analizar la petición y la respuesta HTTP escupir todo por sí mismo.
  • EJB - Desde EJB3, EJB se puede exponer como servicio web muy fácilmente. Necesita un contenedor EJB, por supuesto.
  • Apache Axis - Solía ​​ser una pila de tecnología popular que está disminuyendo ahora.
  • Apache CXF - Otra opción popular.
  • JBossWS - Otra opción popular.
  • JAX-WS - La pila oficial de servicios web de Sun, muy buena. Hasta ahora sé, este replaces JAX-RPC que simplemente fue renombrado JAX-WS.

conceptos relacionados y jerga:

  • WSDL - Define el contrato/interfaz del servicio web, en caso de WS basado en SOAP.
  • Contrato primero - Se refiere al hecho de que una tecnología puede admitir cualquier WSDL proporcionado por adelantado. Por el contrario, una tecnología de implementación que generará el WSDL basado en la implementación del servicio web, en cuyo caso el WSDL no siempre se puede personalizar según sea necesario
  • Perfil - Para simplificar este desastre, han introducido perfiles que son grupos de especificaciones/capacidades relacionadas que necesitan soporte para la interoperabilidad. El principal es WS-I Basic Profile.
  • UDDI y descubrimiento - Parece que algunas personas pensaban que el servicio web se publicaría en un registro público para ser descubierto por el consumidor potencial. No creo que esta visión haya ganado mucho impulso.
+0

+1 Detallada a la vista general. – CoolBeans

+0

+1 Publicación muy agradable, algo que necesitaba desesperadamente hoy, de manera conveniente. – aperkins

+0

¿Alguien puede compartir los procedimientos de configuración, con eclipse, axis2, tomcat –