JSON, REST, SOAP, WSDL y SOA: Cómo se vinculan


Actualmente estoy haciendo algunos exámenes y estoy luchando a través de algunos conceptos. Todos estos han sido "mencionados" en mis notas realmente, pero realmente no entendía cómo se vinculaban. En lo que a mi entender es:

SOA - una solución para hacer que los consumidores/proveedores de servicios se comuniquen. (por lo que entiendo, este es el término general para todo lo demás)

WSDL - Un lenguaje que describe el servicio del proveedor.

SOAP - Un 'wrapper' de protocolo XML utilizado por los servicios para enviar mensajes. Funciona en conjunto con WSDL como para proporcionar parámetros?

REST-Un patrón de diseño que es similar a SOAP en función pero evita el XML? (realmente no estoy seguro acerca de este)

JSON - ¿Una alternativa a XML que usa javascript? (no estoy seguro acerca de este tampoco)

Mirando alrededor en internet no parece haber una definición clara de lo que todos estos son y cómo se entrelazan.

Author: John Saunders, 2013-05-18

2 answers

Imagine que está desarrollando una aplicación web y decide desacoplar la funcionalidad de la presentación de la aplicación, porque ofrece mayor libertad.

Usted crea una API y permite que otros implementen sus propios front-ends sobre ella también. Lo que acabas de hacer aquí es implementar una metodología SOA, es decir, usar servicios web.

Los servicios web hacen que los bloques de construcción funcionales sean accesibles a través de estándares Protocolos de Internet independientes de plataformas y lenguajes de programación.

Por lo tanto, se diseña un mecanismo de intercambio entre el back-end (servicio web) que hace el procesamiento y generación de algo útil, y el front-end (que consume los datos), que podría ser cualquier cosa. (Una aplicación web, móvil o de escritorio, u otro servicio web). La única limitación aquí es que el front-end y el back-end deben " hablar "el mismo"idioma".


Ahí es donde entra el JABÓN y el DESCANSO. Son formas estándar que elegirías comunicarse con el servicio web.

JABÓN:

SOAP utiliza internamente XML para enviar datos de ida y vuelta. Los mensajes SOAP tienen una estructura rígida y el XML de respuesta necesita ser analizado. WSDL es una especificación de qué peticiones se pueden hacer, con qué parámetros, y qué devolverán. Es una especificación completa de su API.

RESTO:

REST es un concepto de diseño.

La World Wide Web representa la mayor implementación de un sistema conforme al RESTO del estilo arquitectónico.

No es tan rígido como el JABÓN. Los servicios web RESTful usan URI y métodos estándar para realizar llamadas al servicio web. Cuando solicita un URI, devuelve la representación de un objeto, sobre el que puede realizar operaciones (por ejemplo, GET, PUT, POST, DELETE). No se limita a elegir XML para representar datos, puede elegir cualquier cosa realmente (JSON incluido)

La API REST de Flickr va más allá y te permite devolver imágenes también.


JSON y XML, son funcionalmente equivalentes, y pueden ser elegidos. Se considera que XML es demasiado detallado y más difícil de analizar, por lo que muchas veces los datos se representan de forma más adecuada utilizando JSON. (Por ejemplo, serialización)

Sin embargo, es una elección.

 244
Author: Anirudh Ramanathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:44

WSDL: Significa Web Service Description Language

En SOAP(simple object access protocol), cuando utiliza un servicio web y agrega un servicio web a su proyecto, su aplicación cliente no conoce las funciones del servicio web. Hoy en día es algo antiguo y para cada tipo de cliente diferente tienes que implementar diferentes archivos WSDL. Por ejemplo, no puede usar el mismo archivo para el cliente .Net y php. El archivo WSDL tiene algunas descripciones sobre el servicio web función. El tipo de archivo es XML. SOAP es una alternativa para REST.

REST: Siglas de Representational State Transfer

Es otro tipo de servicio API, es realmente fácil de usar para los clientes. No necesitan tener una extensión de archivo especial como los archivos WSDL. La operación CRUD puede ser implementada por diferentes HTTP Verbs (GET para Lectura, POST para Creación, PUT o PATCH para Actualización y DELETE para Borrar el documento deseado), Se basan en HTML protocolo y la mayoría de las veces la respuesta está en formato JSON o XML. Por otro lado, la aplicación cliente tiene que llamar exactamente al HTTP Verb relacionado a través de nombres y tipos de parámetros exactos. Debido a que no tiene un archivo especial para la definición, como WSDL, es un trabajo manual que utiliza el punto final. Pero no es un gran problema porque ahora tenemos una gran cantidad de complementos para diferentes IDE para generar la implementación del lado del cliente.

SOA: Significa Servicio Orientado Arquitectura

Incluye toda la programación con conceptos y arquitectura de servicios web. Imagine que desea implementar una aplicación a gran escala. Una práctica puede ser tener algunos servicios diferentes, llamados micro-servicios y todo el mecanismo de aplicación sería llamar al servicio web necesario en el momento adecuado. Tanto REST como SOAP los servicios web son una especie de SOA.

JSON : Significa javascript Object Notation

Cuando se serializa un objeto para javascript, el tipo de formato de objeto es JSON. imagina que tienes la clase humana:

class Human{
 string Name;
 string Family;
 int Age;
}

Y tienes algunas instancias de esta clase:

Human h1 = new Human(){
  Name='Saman',
  Family='Gholami',
  Age=26
}

Cuando se serializa el objeto h1 a JSON, el resultado es:

  [h1:{Name:'saman',Family:'Gholami',Age:'26'}, ...]

javascript puede evaluar este formato mediante la función eval() y hacer una matriz asociativa a partir de esta cadena JSON. Este es un concepto diferente en comparación con otros conceptos que describí anteriormente.

 25
Author: Saman Gholami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-04 20:43:24