stringtranslate.com

servicio web

Un servicio web ( WS ) es:

En un servicio web, se utiliza una tecnología web como HTTP para transferir formatos de archivos legibles por máquina, como XML y JSON.

En la práctica, un servicio web comúnmente proporciona una interfaz basada en web orientada a objetos para un servidor de base de datos, utilizada, por ejemplo, por otro servidor web o por una aplicación móvil , que proporciona una interfaz de usuario al usuario final. Muchas organizaciones que proporcionan datos en páginas HTML formateadas también proporcionarán esos datos en su servidor como XML o JSON, a menudo a través de un servicio web para permitir la sindicación . Otra aplicación ofrecida al usuario final puede ser un mashup , donde un servidor web consume varios servicios web en diferentes máquinas y compila el contenido en una interfaz de usuario.

Servicios web (genéricos)

JavaScript y XML asincrónicos

JavaScript y XML asincrónicos (AJAX) es una tecnología dominante para los servicios web. Desarrollado a partir de la combinación de servidores HTTP, clientes JavaScript y XML antiguo (a diferencia de SOAP y servicios web W3C), ahora se usa frecuentemente con JSON además de XML o en lugar de él.

DESCANSAR

La transferencia de estado representacional (REST) ​​es una arquitectura para servicios web de buen comportamiento que pueden funcionar a escala de Internet.

En un documento de 2004, el W3C establece el siguiente REST como una característica distintiva clave de los servicios web:

Podemos identificar dos clases principales de servicios web:

Servicios web que utilizan lenguajes de marcado.

Hay varios servicios web que utilizan lenguajes de marcado:

API web

Una API web es un desarrollo en servicios web donde se ha hecho hincapié en comunicaciones basadas en transferencia de estado representacional (REST) ​​más simples. [2] Las API Restful no requieren protocolos de servicios web basados ​​en XML ( SOAP y WSDL) para admitir sus interfaces.

Servicios web del W3C

En relación con los servicios web del W3C, el W3C definió un servicio web como:

Un servicio web es un sistema de software diseñado para soportar la interacción interoperable de máquina a máquina a través de una red. Tiene una interfaz descrita en un formato procesable por máquina (específicamente WSDL ). Otros sistemas interactúan con el servicio web de la manera prescrita por su descripción mediante mensajes SOAP, generalmente transmitidos mediante HTTP con una serialización XML junto con otros estándares relacionados con la web.

—  W3C, Glosario de servicios web [3]

Los servicios web del W3C pueden utilizar SOAP sobre el protocolo HTTP, lo que permite interacciones menos costosas (más eficientes) a través de Internet que a través de soluciones patentadas como EDI/B2B. Además de SOAP sobre HTTP, los servicios web también se pueden implementar en otros mecanismos de transporte confiables como FTP . En un documento de 2002, el Grupo de Trabajo de Arquitectura de Servicios Web definió una arquitectura de servicios Web, que requiere una implementación estandarizada de un "servicio Web".

Explicación

Arquitectura de servicios web: el proveedor de servicios envía un archivo WSDL a UDDI. El solicitante del servicio contacta a UDDI para averiguar quién es el proveedor de los datos que necesita y luego contacta al proveedor del servicio utilizando el protocolo SOAP. El proveedor de servicios valida la solicitud de servicio y envía datos estructurados en un archivo XML, utilizando el protocolo SOAP. Este archivo XML sería validado nuevamente por el solicitante del servicio utilizando un archivo XSD.

El término "servicio web" describe una forma estandarizada de integrar aplicaciones basadas en web utilizando los estándares abiertos XML , SOAP, WSDL y UDDI a través de una red troncal de protocolo de Internet . XML es el formato de datos utilizado para contener los datos y proporcionar metadatos a su alrededor, SOAP se utiliza para transferir los datos, WSDL se utiliza para describir los servicios disponibles y UDDI enumera los servicios disponibles.

Un servicio web es un método de comunicación entre dos dispositivos electrónicos a través de una red. Es una función de software proporcionada en una dirección de red a través de la Web con el servicio siempre activo como en el concepto de informática de utilidad.

Muchas organizaciones utilizan múltiples sistemas de software para la gestión. [ cita necesaria ] Diferentes sistemas de software a menudo necesitan intercambiar datos entre sí, y un servicio web es un método de comunicación que permite que dos sistemas de software intercambien estos datos a través de Internet. El sistema de software que solicita datos se denomina solicitante de servicios , mientras que el sistema de software que procesaría la solicitud y proporcionaría los datos se denomina proveedor de servicios .

Diferentes software pueden utilizar diferentes lenguajes de programación y, por tanto, existe la necesidad de un método de intercambio de datos que no dependa de un lenguaje de programación particular. Sin embargo, la mayoría de los tipos de software pueden interpretar etiquetas XML. Por tanto, los servicios web pueden utilizar archivos XML para el intercambio de datos.

Es necesario definir reglas para la comunicación con diferentes sistemas, tales como:

Todas estas reglas de comunicación están definidas en un archivo llamado WSDL (Lenguaje de descripción de servicios web), que tiene una .wsdlextensión. (Las propuestas de servicios web autónomos ( AWS ) buscan desarrollar servicios web más flexibles que no dependan de reglas estrictas. [a] )

Un directorio llamado UDDI (Descripción, Descubrimiento e Integración Universal) define con qué sistema de software se debe contactar para qué tipo de datos. Entonces, cuando un sistema de software necesita un informe/datos en particular, va al UDDI y descubre con qué otros sistemas puede contactar para recibir esos datos. Una vez que el sistema de software descubre con qué otros sistemas debe contactar, se comunicará con ese sistema utilizando un protocolo especial llamado SOAP (Protocolo simple de acceso a objetos). El sistema del proveedor de servicios primero validaría la solicitud de datos consultando el archivo WSDL y luego procesaría la solicitud y enviaría los datos bajo el protocolo SOAP.

Métodos de diseño automatizados.

Servicios web en una arquitectura orientada a servicios .

Las herramientas automatizadas pueden ayudar en la creación de un servicio web. Para los servicios que utilizan WSDL, es posible generar automáticamente WSDL para clases existentes (un modelo ascendente) o generar un esqueleto de clase dado el WSDL existente (un modelo descendente).

Crítica

Los críticos de los servicios web que no son RESTful a menudo se quejan de que son demasiado complejos [8] y que se basan en grandes proveedores o integradores de software, en lugar de implementaciones típicas de código abierto .

También existen preocupaciones sobre el rendimiento debido al uso de XML por parte de los servicios web como formato de mensaje y SOAP/HTTP para envolver y transportar. [9]

Pruebas de regresión de servicios web.

Las pruebas funcionales y no funcionales de los servicios web se realizan con la ayuda del análisis WSDL. Las pruebas de regresión se realizan identificando los cambios realizados en la actualización del software. Las necesidades de pruebas de regresión de servicios web se pueden clasificar de tres maneras diferentes: cambios en WSDL, cambios en el código y nuevas pruebas selectivas de operaciones. Podemos capturar las tres necesidades anteriores en tres formas intermedias de Subconjunto WSDL, [7] a saber, WSDL de diferencia (DWSDL), WSDL de unidad (UWSDL) y WSDL reducido (RWSDL), respectivamente. Estos tres WSDL de subconjunto se combinan para formar un WSDL combinado (CWSDL) que se utiliza posteriormente para pruebas de regresión del servicio web. Esto ayudará en la gestión automatizada de cambios de servicios web (AWSCM), [10] al realizar la selección de los casos de prueba relevantes para construir un conjunto de pruebas reducido a partir del conjunto de pruebas anterior. [11]

Las pruebas de servicios web también se pueden automatizar utilizando varias herramientas de automatización de pruebas como SoapUI , Oracle Application Testing Suite (OATS), [12] [13] Unified Functional Testing, Selenium, etc.

Gestión de cambios de servicios web.

Trabajo relacionado con la captura y visualización de cambios realizados en un servicio web. La visualización y el cálculo de los cambios se pueden realizar en forma de artefactos intermedios (Subconjunto WSDL). [7] La ​​información sobre el cálculo del impacto del cambio es útil en las pruebas, el desarrollo de arriba hacia abajo y en las pruebas de reducción de regresión. AWSCM [10] es una herramienta que puede identificar operaciones de subconjunto en un archivo WSDL para construir un subconjunto WSDL.

Descubrimiento y búsqueda de servicios web

Si bien UDDI estaba destinado a servir como un directorio de servicios y convertirse en un medio para descubrir servicios web, muchos proveedores discontinuaron sus soluciones o repositorios UDDI entre 2005 y 2008, incluidos Microsoft, SAP, IBM, entre otros. [14] [15] Un estudio clave publicado en la Conferencia WWW2008 (Beijing, China) [16] presentó el estado de los servicios web basados ​​en SOAP y concluyó que sólo el 63% de los servicios web basados ​​en SOAP disponibles en el momento del estudio estaban realmente activos o podían ser invocados. El estudio también encontró que los motores de búsqueda se estaban convirtiendo en una fuente ideal para buscar servicios web en comparación con los registros de servicios como el UDDI debido a su complejidad de diseño. [17]

Ver también

Notas

  1. ^ Comparar: Oya 2008, "Bajo los servicios web actuales, […] los sistemas de las partes interesadas deben seguir las reglas predefinidas para un servicio comercial en particular, incluidas aquellas sobre protocolos comerciales para enviar/recibir mensajes y sobre el funcionamiento del sistema. […] Un mecanismo más flexible es deseado donde los sistemas construidos libremente y que se ejecutan de forma autónoma puedan intercambiar mensajes comerciales sin reglas estrictas previamente acordadas. Lo llamamos Servicios Web Autónomos (AWS) y propusimos el marco llamado Armonización Dinámica de Modelos (DMH) con su algoritmo, que ajusta dinámicamente diferentes modelos de procesos comerciales. entre sistemas […]." [4]

Referencias

  1. ^ "Arquitectura de servicios web § Relación con la World Wide Web y las arquitecturas REST". W3C . Consultado el 11 de noviembre de 2017 .
  2. ^ Benslimane, D.; Dustdar, S.; Sheth, A. (2008). "Services Mashups: la nueva generación de aplicaciones web". Computación de Internet IEEE . 10 (5): 13-15. doi :10.1109/MIC.2008.110. S2CID  8124905.
  3. ^ "Glosario de servicios web § Servicio web". W3C . 11 de febrero de 2004 . Consultado el 24 de enero de 2017 .
  4. ^ Oya, Makoto (2 de septiembre de 2008). "Servicios web autónomos basados ​​en la armonización de modelos dinámicos". En Oyá, Makoto; Uda, Ryuya; Yasunobu, Chizuko (eds.). Hacia una sociedad sostenible en redes ubicuas: octava conferencia IFIP sobre negocios electrónicos, servicios electrónicos y sociedad electrónica (I3E 2008), 24 al 26 de septiembre de 2008, Tokio, Japón. Avances del IFIP en tecnologías de la información y las comunicaciones. vol. 286. Springer Science & Business Media (publicado en 2008). pag. 139.ISBN 9780387856902. Consultado el 19 de agosto de 2015 .
  5. ^ "Creación de servicios web ascendentes". Eclipse . Consultado el 11 de noviembre de 2017 .
  6. ^ "Creación de servicios web de arriba hacia abajo". Eclipse . Consultado el 11 de noviembre de 2017 .
  7. ^ abc Chaturvedi, Animesh (2014). Subconjunto WSDL para acceder al servicio de subconjunto para análisis . 2014 IEEE Sexta Conferencia Internacional sobre Tecnología y Ciencia de Computación en la Nube. pag. 688. doi : 10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  8. ^ Bray, Tim (28 de octubre de 2004). "WS-Recuento de páginas". TBray.org . Consultado el 22 de abril de 2011 .
  9. ^ Gris, NAB (2005). "Rendimiento del middleware Java: Java RMI, JAX-RPC y CORBA". Universidad de Wollongong : 31–39. Los resultados presentados en este artículo muestran que la naturaleza de los datos de respuesta tiene un impacto mayor en el desempeño relativo de lo que se había permitido en la mayoría de los estudios anteriores.
  10. ^ ab Chaturvedi, Animesh (2014). Gestión automatizada de cambios de servicios web AWSCM: una herramienta . 2014 IEEE Sexta Conferencia Internacional sobre Tecnología y Ciencia de Computación en la Nube. pag. 715. doi : 10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  11. ^ Chaturvedi, Animesh; Gupta, Atul (2013). Un enfoque respaldado por herramientas para realizar pruebas de regresión eficientes de servicios web . 2013 IEEE 7º Simposio Internacional sobre el Mantenimiento y Evolución de Sistemas Orientados a Servicios y Basados ​​en la Nube. pag. 50. doi :10.1109/MESOCA.2013.6632734. ISBN 978-1-4673-4889-8.
  12. ^ Suite de pruebas de aplicaciones de Oracle
  13. ^ Pruebas de servicios web con Oracle Application Testing Suite
  14. ^ Krill, Paul (16 de diciembre de 2005). "Microsoft, IBM y SAP interrumpen el esfuerzo de registro UDDI". InfoMundo . Consultado el 28 de mayo de 2022 .
  15. ^ QuinnRadich (27 de abril de 2021). "Eliminación de servicios UDDI del sistema operativo del servidor: aplicaciones Win32". docs.microsoft.com . Consultado el 28 de mayo de 2022 .
  16. ^ "WWW2008 - WWW 2008: 17ª Conferencia Internacional de la World Wide Web (Bienvenida)". Archivado desde el original el 4 de octubre de 2022 . Consultado el 28 de mayo de 2022 .
  17. ^ Al-Masri, Eyhab; Mahmoud, Qusay H. (21 de abril de 2008). "Investigación de servicios web en la World Wide Web". Actas de la 17ª conferencia internacional sobre la World Wide Web . WWW'08. Nueva York, NY, EE.UU.: Asociación de Maquinaria de Computación. págs. 795–804. doi :10.1145/1367497.1367605. ISBN 978-1-60558-085-2. S2CID  12570844.

enlaces externos