Servicio web

Servicio ofrecido entre dispositivos electrónicos a través de internet

Un servicio web ( WS ) es:

  • un servicio ofrecido por un dispositivo electrónico a otro dispositivo electrónico, comunicándose entre sí a través de Internet , o
  • un servidor que se ejecuta en un dispositivo informático, que escucha solicitudes en un puerto particular a través de una red y sirve documentos web ( HTML , JSON , XML , imágenes). [ cita requerida ]

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 proporciona comúnmente una interfaz web orientada a objetos a 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 asincrónico y XML

Asynchronous JavaScript and XML (AJAX) es una tecnología dominante para los servicios web. Se desarrolló a partir de la combinación de servidores HTTP, clientes JavaScript y Plain Old XML (a diferencia de SOAP y los servicios web W3C), y ahora se usa con frecuencia con JSON y también con XML, o en lugar de este.

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 lo siguiente: REST es una característica distintiva clave de los servicios web:

Podemos identificar dos clases principales de servicios web:

  • Servicios web compatibles con REST , en los que el propósito principal del servicio es manipular representaciones XML de recursos web utilizando un conjunto uniforme de operaciones sin estado ; y
  • servicios web arbitrarios, en los que el servicio puede exponer un conjunto arbitrario de operaciones.
    —  W3C, Arquitectura de servicios web [1]

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 el énfasis se ha movido hacia comunicaciones más simples basadas en transferencia de estado representacional (REST). [2] Las API REST no requieren protocolos de servicios web basados ​​en XML ( SOAP y WSDL) para soportar 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 una manera prescrita por su descripción utilizando 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 propietarias como EDI/B2B. Además de SOAP sobre HTTP, los servicios web también pueden implementarse 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 de servicios contacta a UDDI para averiguar quién es el proveedor de los datos que necesita y luego contacta al proveedor de servicios 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 de servicios utilizando un archivo XSD.

El término "servicio web" describe una forma estandarizada de integrar aplicaciones basadas en la Web utilizando los estándares abiertos XML , SOAP, WSDL y UDDI sobre una estructura 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 que se proporciona en una dirección de red a través de la Web y que está siempre activa, como en el concepto de computación de utilidad.

Muchas organizaciones utilizan varios sistemas de software para la gestión. [ cita requerida ] A menudo, los diferentes sistemas de software 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 los 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 .

Los distintos programas pueden utilizar distintos lenguajes de programación, por lo que es necesario contar con un método de intercambio de datos que no dependa de un lenguaje de programación en particular. Sin embargo, la mayoría de los tipos de programas pueden interpretar etiquetas XML. Por lo tanto, los servicios web pueden utilizar archivos XML para el intercambio de datos.

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

  • Cómo un sistema puede solicitar datos a otro sistema.
  • ¿Qué parámetros específicos se necesitan en la solicitud de datos?
  • ¿Cuál sería la estructura de los datos producidos? (Normalmente, los datos se intercambian en archivos XML y la estructura del archivo XML se valida con un archivo .xsd).
  • Qué mensajes de error mostrar cuando no se respeta una determinada regla de comunicación, para facilitar la resolución de problemas .

Todas estas reglas de comunicación se definen en un archivo llamado WSDL (Web Services Description Language), 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 (Universal Description, Discovery, and Integration) define qué sistema de software debe contactarse para obtener qué tipo de datos. De esta forma, cuando un sistema de software necesita un informe o dato en particular, se dirige al UDDI y busca con qué otros sistemas puede contactarse para recibir esos datos. Una vez que el sistema de software encuentra con qué otros sistemas debe contactarse, se comunica con ese sistema mediante un protocolo especial llamado SOAP (Simple Object Access Protocol). El sistema del proveedor de servicios primero valida la solicitud de datos consultando el archivo WSDL y luego procesa la solicitud y envía los datos según 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. En el caso de los servicios que utilizan WSDL, es posible generar automáticamente WSDL para clases existentes (un modelo ascendente) o generar un esqueleto de clase a partir de WSDL existentes (un modelo descendente).

  • Un desarrollador que utiliza un modelo ascendente primero escribe clases de implementación (en algún lenguaje de programación) y luego utiliza una herramienta de generación de WSDL para exponer los métodos de estas clases como un servicio web. Esto es más sencillo de desarrollar, pero puede ser más difícil de mantener si las clases originales están sujetas a cambios frecuentes. [5]
  • Un desarrollador que utiliza un modelo de arriba hacia abajo escribe primero el documento WSDL y luego utiliza una herramienta de generación de código para producir el esqueleto de la clase, que se completará según sea necesario. Este modelo generalmente se considera más difícil, pero puede producir diseños más limpios y, por lo general, es más resistente al cambio. Mientras los formatos de los mensajes entre el emisor y el receptor no cambien, los cambios en el emisor y el receptor en sí no afectan al servicio web. La técnica también se conoce como contrato primero, ya que el WSDL (o contrato entre el emisor y el receptor) es el punto de partida. [6]
  • Un desarrollador que utiliza un WSDL de subconjunto (SWSDL) [7] (es decir, un WSDL con la operación de subconjunto en el WSDL original) puede realizar pruebas de servicios web y desarrollo de arriba hacia abajo.

Crítica

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

También existen preocupaciones sobre el rendimiento debido al uso de XML como formato de mensaje y de SOAP/HTTP en el envoltorio y transporte de los servicios web. [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 de WSDL. Las pruebas de regresión se realizan identificando los cambios realizados para actualizar el software. Las necesidades de pruebas de regresión de servicios web se pueden clasificar de tres formas diferentes, a saber, 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 WSDL de subconjunto, [7] a saber, WSDL de diferencia (DWSDL), WSDL de unidad (UWSDL) y WSDL reducido (RWSDL), respectivamente. Estos tres WSDL de subconjunto se combinan luego para formar WSDL combinado (CWSDL) que se utiliza posteriormente para las 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 en servicios web

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

Descubrimiento y búsqueda de servicios web

Si bien UDDI fue concebido para servir como directorio de servicios y convertirse en el medio para descubrir servicios web, muchos proveedores descontinuaron sus soluciones UDDI o repositorios 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 solo el 63% de los servicios web basados ​​en SOAP disponibles en el momento del estudio estaban realmente activos o podían invocarse. 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 UDDI debido a su complejidad de diseño. [17]

Véase también

Notas

  1. ^ Comparar: Oya 2008, "En el marco de los servicios web actuales, […] los sistemas de las partes interesadas deben seguir las reglas predefinidas para un servicio empresarial en particular, incluidas las relativas a los protocolos empresariales para enviar/recibir mensajes y sobre el funcionamiento del sistema. […] Se desea un mecanismo más flexible en el que los sistemas construidos libremente y que funcionan de forma autónoma puedan intercambiar mensajes empresariales sin reglas estrictas acordadas previamente. Lo llamamos Servicios Web Autónomos (AWS) y propusimos el marco denominado Armonización de Modelos Dinámicos (DMH) con su algoritmo, que ajusta dinámicamente diferentes modelos de procesos empresariales 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). "Servicios Mashup: La nueva generación de aplicaciones web". IEEE Internet Computing . 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 Oya, Makoto; Uda, Ryuya; Yasunobu, Chizuko (eds.). Hacia una sociedad sostenible en redes ubicuas: la octava conferencia de la IFIP sobre comercio electrónico, servicios electrónicos y sociedad electrónica (I3E 2008), del 24 al 26 de septiembre de 2008, Tokio, Japón. Avances de la IFIP en tecnología de la información y la comunicación. Vol. 286. Springer Science & Business Media (publicado en 2008). pág. 139. ISBN 9780387856902. Recuperado el 19 de agosto de 2015 .
  5. ^ "Creación de servicios web de abajo a arriba". 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). Subset WSDL to Access Subset Service for Analysis (WSDL de subconjunto para acceder al servicio de subconjunto para análisis) . 2014 IEEE 6th International Conference on Cloud Computing Technology and Science (6.ª conferencia internacional sobre tecnología y ciencia de la computación en la nube). pág. 688. doi :10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  8. ^ Bray, Tim (28 de octubre de 2004). "WS-Pagecount". TBray.org . Consultado el 22 de abril de 2011 .
  9. ^ Gray, NAB (2005). "Rendimiento del middleware de 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 mayor impacto en el rendimiento relativo de lo que se ha permitido en la mayoría de los estudios anteriores.
  10. ^ ab 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.
  11. ^ Chaturvedi, Animesh; Gupta, Atul (2013). Un enfoque basado en herramientas para realizar pruebas de regresión eficientes de servicios web . 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems. pág. 50. doi :10.1109/MESOCA.2013.6632734. ISBN 978-1-4673-4889-8.
  12. ^ Suite de pruebas de aplicaciones Oracle
  13. ^ Pruebas de servicios web con Oracle Application Testing Suite
  14. ^ Krill, Paul (16 de diciembre de 2005). "Microsoft, IBM y SAP descontinúan el esfuerzo de registro UDDI". InfoWorld . 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 sobre 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.: Association for Computing Machinery. págs. 795–804. doi :10.1145/1367497.1367605. ISBN 978-1-60558-085-2. Número de identificación del sujeto  12570844.
  • Patrón de diseño de mensajería Archivado el 9 de octubre de 2018 en la documentación de Wayback Machine en SOA Patterns
  • La página de Actividad de Servicios Web en el W3C
  • Arquitectura de servicios web, nota del grupo de trabajo del W3C (11 de febrero de 2004)
  • Investigación de servicios web en la World Wide Web, análisis presentado en la conferencia WWW2008
  • Guía de servicios web seguros (SP 800-95) del NIST
Obtenido de "https://es.wikipedia.org/w/index.php?title=Servicio_web&oldid=1248695697"