Pregunta

Creo que esta pregunta puede terminar siendo un poco subjetiva, así que la estoy marcando como CW.

Mi equipo está interesado en desarrollar un nuevo conjunto de "servicios web" para nuestros proyectos a utilizar. Puse "servicios web" en comillas aéreas ya que el término puede significar muchas cosas diferentes. Lo único que realmente necesitamos es que podamos exponer algún conjunto de API a clientes multiplataforma para consumir nuestros datos y tomar medidas al respecto.

Estoy intentando investigar un poco para entender cuál es el estado actual de la técnica. es cuando se trata de crear servicios para exponer sus datos a muchas otras aplicaciones (internas) e incluso a otros servicios. He estado investigando cosas como Thrift, Protocol Buffers, JAX-WS, RMI, etc., y estoy un poco perdido en cuanto a qué tipo de enfoque deberíamos tomar al diseñar un nuevo conjunto de servicios. Me gustaría que podamos crear esencialmente una "infraestructura". para servicios, por eso estoy haciendo una pequeña encuesta de todos los enfoques actuales.

Para construir servicios web completamente nuevos desde cero, ¿dónde se encuentran las mejores prácticas actuales / estado del arte?

Nuestros únicos requisitos reales son:

  • El formato / codificación de datos debe ser independiente de la plataforma (esto descarta RMI).
  • Los servicios deberían funcionar bien sobre HTTP
  • Escribir los servicios reales del lado del servidor en Java no debería ser un problema.
  • Ser capaz de generar proxies de cliente sería una buena ventaja.
  • Me gustaría que cada servicio fuera ligero, donde pudiéramos implementar servicios para diferentes funcionalidades como implementaciones completamente separadas.

Actualmente utilizamos alguna combinación de servicios SOAP y Axis / JAXRPC y, sinceramente, es un gran problema trabajar con ellos: los mensajes enviados de un lado a otro son enormes y demasiado detallados.

¿Fue útil?

Solución

¿Ha considerado un servicio REST ? Aquí hay una introducción útil de InfoQ .

Funciona a través de HTTP, y utiliza los comandos HTTP estándar de GET / PUT / POST / DELETE para manipular datos (puede consultar utilizando navegadores y los clientes son simples clientes HTTP). El contenido de datos real no es obligatorio ni especificado; a menudo es XML, pero eso no es un requisito.

Puede crear servicios REST trivialmente en Java utilizando Jersey . Debido a que los clientes solo necesitan hablar HTTP, pueden ser independientes del idioma. Los clientes Java pueden escribirse usando HTTPClient .

Otros consejos

Probablemente sea demasiado tarde, pero lo intentaré de todos modos. SOAP ha perdido por mucho tiempo su primera letra (Simple). Nunca se enfrentó a su segundo (Objeto), tampoco.

Es por eso que me estoy inclinando hacia los servicios basados ??en JSON, ya sea REST o JSON-RPC. Ya tienes bastantes recomendaciones para el primero. Para este último, es posible que desee consultar Jabsorb.org . Como ejemplo, el estándar OpenSocial usa ambos con preferencia hacia el JSON-RPC.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top