stringtranslate.com

Lenguaje de descripción de servicios web

El lenguaje de descripción de servicios web ( WSDL / ˈw ɪ z d əl / ) es un lenguaje de descripción de interfaz basado en XML que se utiliza para describir la funcionalidad ofrecida por un servicio web . [ cita requerida ] El acrónimo también se utiliza para cualquier descripción WSDL específica de un servicio web (también conocido como archivo WSDL ), que proporciona una descripción legible por máquina de cómo se puede llamar al servicio, qué parámetros espera y qué estructuras de datos devuelve. Por lo tanto, su propósito es aproximadamente similar al de una firma de tipo en un lenguaje de programación.

La última versión de WSDL, que se convirtió en una recomendación del W3C en 2007, es WSDL 2.0. El significado del acrónimo ha cambiado desde la versión 1.1, donde la "D" significaba "Definición".

Descripción

Representación de conceptos definidos por los documentos WSDL 1.1 y WSDL 2.0.

El WSDL describe los servicios como colecciones de puntos finales de red o puertos . La especificación WSDL proporciona un formato XML para documentos con este fin. Las definiciones abstractas de puertos y mensajes están separadas de su uso o instancia concreta, lo que permite la reutilización de estas definiciones. Un puerto se define asociando una dirección de red con un enlace reutilizable, y una colección de puertos define un servicio. Los mensajes son descripciones abstractas de los datos que se intercambian, y los tipos de puerto son colecciones abstractas de operaciones admitidas. Las especificaciones concretas de protocolo y formato de datos para un tipo de puerto en particular constituyen un enlace reutilizable, donde las operaciones y los mensajes se vinculan a un protocolo de red y un formato de mensaje concretos. De esta manera, el WSDL describe la interfaz pública del servicio web.

WSDL se utiliza a menudo en combinación con SOAP y un esquema XML para proporcionar servicios web a través de Internet . Un programa cliente que se conecta a un servicio web puede leer el archivo WSDL para determinar qué operaciones están disponibles en el servidor. Todos los tipos de datos especiales utilizados se incorporan al archivo WSDL en forma de esquema XML. El cliente puede utilizar SOAP para llamar a una de las operaciones enumeradas en el archivo WSDL, utilizando, por ejemplo, XML sobre HTTP .

La versión actual de la especificación es 2.0; la versión 1.1 no ha sido aprobada por el W3C pero la versión 2.0 es una recomendación del W3C . [1] WSDL 1.2 fue renombrado WSDL 2.0 debido a sus diferencias sustanciales con WSDL 1.1. Al aceptar la vinculación a todos los métodos de solicitud HTTP (no solo GET y POST como en la versión 1.1), la especificación WSDL 2.0 ofrece un mejor soporte para servicios web RESTful y es mucho más simple de implementar. [2] [3] Sin embargo, el soporte para esta especificación aún es pobre en los kits de desarrollo de software para servicios web que a menudo ofrecen herramientas solo para WSDL 1.1. [ necesita actualización ] [ cita requerida ] Por ejemplo, la versión 2.0 del lenguaje de ejecución de procesos comerciales (BPEL) solo admite WSDL 1.1.

Ejemplo de archivo WSDL

<?xml version="1.0" encoding="UTF-8"?> <descripción xmlns= "http://www.w3.org/ns/wsdl" xmlns:tns= "http://www.tmsws.com/wsdl20sample" xmlns:whttp= "http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap= "http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace= "http://www.tmsws.com/wsdl20sample" >       <documentation>  Este  es  un documento  de muestra  de WSDL  2.0  . </documentation> <!-- Tipo abstracto --> <tipos> <xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema" xmlns= "http://www.tmsws.com/wsdl20sample" targetNamespace= "http://www.example.com/wsdl20sample" > <xs:element name= "solicitud" > ... </xs:element> <xs:element name= "respuesta" > ... </xs:element> </xs:schema> </tipos>                <!-- Interfaces abstractas --> < nombre de interfaz= "Interfaz1" > < nombre de falla= "Error1" elemento= "tns:respuesta" /> < nombre de operación = "Obtener" patrón= "http://www.w3.org/ns/wsdl/in-out" > <etiqueta de mensaje de entrada = "Entrada" elemento= "tns:solicitud" /> < etiqueta de mensaje de salida = "Salida" elemento= "tns:respuesta" /> < /operación > </interfaz>                <!-- Enlace concreto sobre HTTP --> <binding name= "HttpBinding" interface= "tns:Interface1" type= "http://www.w3.org/ns/wsdl/http" > <operation ref= "tns:Get" whttp:method= "GET" /> </binding> <!-- Enlace concreto con SOAP--> <binding name= "SoapBinding" interface= "tns:Interface1" type= "http://www.w3.org/ns/wsdl/soap" wsoap:protocol= "http://www.w3.org/2003/05/soap/bindings/HTTP/" wsoap:mepDefault= "http://www.w3.org/2003/05/soap/mep/request-response" > <operation ref= "tns:Get" /> </binding>                      <!-- Servicio web que ofrece puntos finales para ambos enlaces--> <service name= "Service1" interface= "tns:Interface1" > <endpoint name= "HttpEndpoint" binding= "tns:HttpBinding" address= "http://www.example.com/rest/" /> <endpoint name= "SoapEndpoint" binding= "tns:SoapBinding" address= "http://www.example.com/soap/" /> </service> </description>                

Historia

WSDL 1.0 (septiembre de 2000) fue desarrollado por IBM , Microsoft y Ariba para describir los servicios web para su kit de herramientas SOAP. Se creó combinando dos lenguajes de descripción de servicios: NASSL (lenguaje de especificación de servicios de aplicaciones de red) de IBM y SDL (lenguaje de descripción de servicios) de Microsoft.

WSDL 1.1, publicado en marzo de 2001, es la formalización de WSDL 1.0. No se introdujeron cambios importantes entre 1.0 y 1.1.

WSDL 1.2 (junio de 2003) fue un borrador de trabajo en el W3C, pero se convirtió en WSDL 2.0. Según el W3C: WSDL 1.2 es más fácil y más flexible para los desarrolladores que la versión anterior. WSDL 1.2 intenta eliminar las características no interoperables y también define mejor el enlace HTTP 1.1. WSDL 1.2 no fue compatible con la mayoría de los servidores/proveedores SOAP.

WSDL 2.0 se convirtió en una recomendación del W3C en junio de 2007. WSDL 1.2 pasó a llamarse WSDL 2.0 porque presenta diferencias sustanciales con respecto a WSDL 1.1. Los cambios son los siguientes:

Subconjunto WSDL

Subset WSDL (SWSDL) [4] es un WSDL con las operaciones de subconjunto de un WSDL original. Un desarrollador puede utilizar SWSDL para acceder a Subset Service, y así manejar un subconjunto del código del servicio web. Un Subset WSDL se puede utilizar para realizar pruebas de servicios web y desarrollo descendente. La segmentación de un servicio web se puede realizar utilizando un Subset WSDL para acceder a Subset Service. Subset Service se puede categorizar en capas utilizando SWSDL. Los SWSDL se utilizan para el análisis, prueba y desarrollo descendente de servicios web. AWSCM [5] es una herramienta que puede identificar operaciones de subconjunto en un archivo WSDL para construir un subset WSDL.

Consideraciones de seguridad

Dado que los archivos WSDL son una especificación basada en XML para describir un servicio web, son susceptibles a ataques. [6] Para mitigar la vulnerabilidad de estos archivos, se recomienda limitar el acceso a los archivos WSDL generados, establecer restricciones de acceso adecuadas en las definiciones WSDL y evitar definiciones innecesarias en los servicios web.

Véase también

Referencias

  1. ^ "Web Services Definition Language (WSDL) Version 2.0 Part 1: Core Language" (Lenguaje de definición de servicios web (WSDL), versión 2.0, parte 1: lenguaje básico) . Consultado el 27 de junio de 2007 .
  2. ^ "Lenguaje de definición de servicios web (WSDL) versión 2.0 parte 2: complementos".
  3. ^ "Enlace HTTP WITW WSDL 2.0". Archivado desde el original el 20 de junio de 2012. Consultado el 20 de septiembre de 2007 .
  4. ^ Chaturvedi, Animesh (2014). Subconjunto WSDL para acceder al servicio de subconjunto para análisis . 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. pág. 688. doi :10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  5. ^ Chaturvedi, Animesh (2014). Gestión automatizada de cambios en servicios web AWSCM: una herramienta . 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. pág. 715. doi :10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  6. ^ "Divulgación de WSDL" . Consultado el 31 de mayo de 2017 .

Enlaces externos