usar servicios saber restful otro entre ejemplo diferencia cuando como java web-services rest soap

java - servicios - web service soap



¿Cuál es la diferencia entre un servicio web de arriba hacia abajo y un servicio web de abajo hacia arriba? (6)

En Java, ¿cuál es la diferencia entre un servicio web de arriba hacia abajo y un servicio web de abajo hacia arriba? Además, ¿cuál es la diferencia entre un SOAP y un servicio web REST-ful?


Contrato primero versus contrato pasado

De abajo hacia arriba: el enfoque toma una definición de alto nivel del problema y lo subdivide en subproblemas.

es decir , último contrato . Existen las siguientes ventajas para preferir un estilo de desarrollo ascendente.

  • Código primero
  • Etapa inicial muy fácil de desarrollar.

Desventajas:

  • El mantenimiento es muy difícil.
  • Estrechamente acoplado

De arriba hacia abajo: piense en la funcionalidad básica y las piezas que van a necesitar.

es decir, contrato primero . Existen las siguientes razones para preferir un estilo de desarrollo de arriba hacia abajo.

1. Fragilidad El estilo de desarrollo por contrato da como resultado que su contrato de servicio web (WSDL y su XSD) se genere a partir de su contrato de Java (generalmente una interfaz). Si usa este enfoque, no tendrá garantía de que el contrato se mantenga constante a lo largo del tiempo. Cada vez que cambie su código Java y lo vuelva a desplegar, puede haber cambios posteriores en el contrato del servicio web. Además, no todas las pilas SOAP generan el mismo contrato de servicio web de un contrato Java. Esto significa cambiar su pila de SOAP actual por una diferente (por cualquier razón), también podría cambiar su contrato de servicio web. Cuando un contrato de servicio web cambia, los usuarios del contrato deberán recibir instrucciones para obtener el nuevo contrato y posiblemente cambiar su código para adaptarse a cualquier cambio en el contrato. Para que un contrato sea útil, debe permanecer constante el mayor tiempo posible. Si un contrato cambia, deberá ponerse en contacto con todos los usuarios de su servicio y pedirles que obtengan la nueva versión del contrato.

2. Rendimiento Cuando Java se transforma automáticamente en XML, no hay forma de estar seguro de lo que se envía a través del cable. Un objeto puede hacer referencia a otro objeto, que se refiere a otro, etc. Al final, la mitad de los objetos en el montón en su máquina virtual pueden convertirse a XML, lo que dará como resultado tiempos de respuesta lentos. Cuando se usa contrato primero, se describe explícitamente qué XML se envía a donde, asegurándose de que sea exactamente lo que se desea.

3. Reusabilidad La definición de su esquema en un archivo separado le permite reutilizar ese archivo en diferentes escenarios.

4. Control de versiones Aunque un contrato debe permanecer constante el mayor tiempo posible, es necesario cambiarlo a veces. En Java, esto generalmente da como resultado una nueva interfaz Java, como AirlineService2, y una (nueva) implementación de esa interfaz. Por supuesto, el viejo servicio debe mantenerse, porque puede haber clientes que aún no han migrado. Si usamos contrato primero, podemos tener un acoplamiento más flexible entre contrato e implementación. Tal acoplamiento más flexible nos permite implementar ambas versiones del contrato en una clase.

Jerarquía arriba-abajo vs. abajo-arriba

crédito de imagen: imágenes de google


@mad_programmer: te refieres a crear servicios web con un enfoque ascendente o descendente. En el primero, comienza a programar las clases y la lógica de negocios como código java y luego genera el contrato del servicio web (es decir, WSDL) a partir de él. El último enfoque significa lo contrario (generación de fragmentos de clase del WSDL).


Agregar a la respuesta cuando se inicia un proyecto desde el principio El enfoque habitual es crear una interfaz muy básica y luego crear un WSDl a partir de ella. Esto le ahorrará escribir WSDl complejo. Luego podemos agregar operaciones específicas del proyecto en WSDl directamente y una vez que finalice WSDl, podemos seguir adelante con un enfoque de arriba hacia abajo.


Apoyando la respuesta de andersen, me gustaría agregar un punto. Básicamente, la gente tiende a utilizar el enfoque ascendente, porque en la mayoría de los casos, ya habríamos comenzado el proceso de escribir los beans, la lógica de negocios, etc. Luego, en la capa de persistencia, creamos los servicios web, wsdl, etc. como en un nuevo proyecto, donde está construyendo algo desde cero, podemos usar el enfoque descendente, donde simplemente escribimos el wsdl y construir el esqueleto le daría los beans, las implementaciones, las interfaces, etc. Aún así, recuerde que la computadora no puede generar el lógica que quieras Por lo tanto, todavía necesita pasar por todo el proyecto y completar los vacíos.


De arriba hacia abajo significa que comienza con un WSDL y luego crea todos los andamios necesarios en Java hasta el final.

De abajo hacia arriba significa que comienza con un método de Java y genera el WSDL a partir de él.

SOAP significa que la URL es la misma para todas las invocaciones, y solo difieren los parámetros del método de Java. REST significa que la URL más el método HTTP invocado en ella reflejan la operación que se debe realizar.


En la parte superior hacia abajo, defina lo que va a hacer primero. es decir, tu wsdl. Y luego procedes con el desarrollo real. Aunque parece difícil crear wsdl primero, es recomendable (Referir eclipse) ya que a largo plazo simplifica su desarrollo.

Exactamente lo contrario sucede de abajo hacia arriba. Comenzamos con la parte del código y luego usando las herramientas integradas creamos wsdl. Esto puede parecer fácil al principio, pero crea mucha confusión cuando creces con la complejidad de tu código.