¿Qué son los servicios web? Architectura, tipos, ejemplo

⚡ Resumen inteligente

Los servicios web proporcionan un medio estandarizado para que las aplicaciones cliente y servidor se comuniquen a través de la World Wide Web. Este recurso explica cómo funcionan los servicios web, sus tipos SOAP y RESTful, los componentes WSDL y UDDI, las funciones de la arquitectura y sus características clave.

  • 🌐 Definición básica: Un servicio web es un módulo de software autónomo que realiza una tarea definida y se comunica entre el cliente y el servidor a través de la web.
  • 📨 Mensajería XML: Los servicios web intercambian datos en formato XML, normalmente encapsulados en mensajes SOAP enviados a través del protocolo HTTP estándar, por lo que cualquier lenguaje puede consumirlos.
  • 🧱 Componentes clave: Un servicio web funcional se basa en SOAP para la mensajería, WSDL para describir el servicio y UDDI para publicarlo y descubrirlo.
  • 👥 ArchiRoles de la arquitectura: La arquitectura define tres roles —Proveedor, Solicitante y Agente— que publican, buscan y vinculan servicios a través de un registro.
  • ⚙️ Características principales: Los servicios web se basan en XML, están débilmente acoplados, admiten llamadas síncronas o asíncronas, permiten llamadas a procedimientos remotos (RPC) y facilitan un rico intercambio de documentos.

Servicios Web Architectura

¿Qué es el servicio web?

servicio web es un medio estandarizado para propagar la comunicación entre las aplicaciones cliente y servidor en la WWW (World Wide Web). Un servicio web es un módulo de software diseñado para realizar un determinado conjunto de tareas.

  • Los servicios web en la computación en la nube se pueden buscar a través de la red y también se pueden invocar en consecuencia.
  • Cuando se invoca, el servicio web podría proporcionar la funcionalidad al cliente, que invoca ese servicio web.

¿Cómo funcionan los servicios web?

Cómo funcionan los servicios web

El diagrama anterior muestra una vista muy simplista de cómo funcionaría realmente un servicio web. El cliente invocaría una serie de llamadas a servicios web mediante solicitudes a un servidor que albergaría el servicio web real.

Estas solicitudes se realizan mediante lo que se conoce como llamadas a procedimientos remotos. Las llamadas a procedimientos remotos (RPC, por sus siglas en inglés) son llamadas a métodos alojados por el servicio web correspondiente.

Como un ejemplo, Amazon proporciona un servicio web que ofrece precios de productos vendidos en línea a través de amazon.com. La interfaz o capa de presentación puede estar en .Net o Javapero cualquiera de los dos lenguajes de programación tendría la capacidad de comunicarse con el servicio web.

El componente principal del diseño de un servicio web son los datos que se transfieren entre el cliente y el servidor, y eso es XML. XML (lenguaje de marcado extensible) Es el equivalente a HTML y un lenguaje intermedio fácil de entender que es compatible con muchos lenguajes de programación.

Así, cuando las aplicaciones se comunican entre sí, lo hacen mediante XML. Esto proporciona una plataforma común para que las aplicaciones desarrolladas en distintos lenguajes de programación puedan comunicarse entre sí.

Los servicios web utilizan algo conocido como SOAP (Protocolo simple de acceso a objetos) para enviar datos XML entre aplicaciones. Los datos se envían a través de HTTP normal. Los datos que se envían desde el servicio web a la aplicación se denominan mensaje SOAP. El mensaje SOAP no es más que un documento XML. Dado que el documento está escrito en XML, la aplicación cliente que llama al servicio web se puede escribir en cualquier lenguaje de programación.

¿Por qué necesitas un Servicio Web?

Las aplicaciones empresariales modernas utilizan una variedad de plataformas de programación para desarrollar aplicaciones basadas en la web. Algunas aplicaciones pueden desarrollarse en Java, otros en .Net, mientras que otros en Angular JS, Node.js, etc.

En la mayoría de los casos, estas aplicaciones heterogéneas necesitan algún tipo de comunicación entre sí. Dado que se desarrollan utilizando diferentes lenguajes de programación, resulta muy difícil garantizar una comunicación precisa entre ellas.

Aquí es donde entran los servicios web. Los servicios web proporcionan una plataforma común que permite múltiples aplicaciones creadas en varios lenguajes de programación tener la capacidad de comunicarse entre sí.

Tipos de servicios web

Existen principalmente dos tipos de servicios web:

  1. Servicios web SOAP.
  2. Servicios web RESTful.

Para que un servicio web funcione correctamente, se requieren ciertos componentes. Estos componentes deben estar presentes independientemente del lenguaje de programación utilizado. Analicemos estos componentes con más detalle.

SOAP (Protocolo simple de acceso a objetos)

SOAP es un protocolo de mensajería independiente del transporte. Se basa en la transferencia de datos XML mediante mensajes SOAP. Cada mensaje contiene un documento XML. Solo la estructura del documento XML sigue un patrón específico, pero no su contenido. La principal ventaja de los servicios web y SOAP es que todo se transmite a través de HTTP, el protocolo web estándar.

Esto es en lo que se compone un mensaje SOAP:

  • Cada documento SOAP debe tener un elemento raíz conocido como elemento . El elemento raíz es el primer elemento de un documento XML.
  • El “sobre” a su vez se divide en 2 partes. El primero es el encabezado y el siguiente es el cuerpo.
  • La cabecera contiene los datos de enrutamiento, que son básicamente la información que indica al documento XML a qué cliente debe enviarse.
  • El cuerpo contendrá el mensaje real.

El siguiente diagrama muestra un ejemplo sencillo de la comunicación vía SOAP.

Protocolo SOAP

Discutiremos SOAP en detalle en este tutoriales.

WSDL (servicios web DescriptIdioma de iones)

Un servicio web no se puede utilizar si no se puede encontrar. El cliente que invoca el servicio web debe saber dónde reside realmente dicho servicio.

En segundo lugar, la aplicación cliente necesita saber qué hace realmente el servicio web para poder invocar el servicio web correcto. Esto se hace con la ayuda del WSDL, conocido como Servicios Web. DescriptLenguaje WSDL. El archivo WSDL es un archivo basado en XML que básicamente le indica a la aplicación cliente qué hace el servicio web. Mediante el documento WSDL, la aplicación cliente puede comprender dónde se encuentra el servicio web y cómo utilizarlo.

Ejemplo de servicio web

A continuación se proporciona un ejemplo de servicios web de un archivo WSDL.

<definitions>
   <message name="TutorialRequest">
      <part name="TutorialID" type="xsd:string"/>
   </message>

   <message name="TutorialResponse">
      <part name="TutorialName" type="xsd:string"/>
   </message>

   <portType name="Tutorial_PortType">
      <operation name="Tutorial">
         <input message="tns:TutorialRequest"/>
         <output message="tns:TutorialResponse"/>
      </operation>
   </portType>

   <binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="Tutorial">
         <soap:operation soapAction="Tutorial"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </input>

         <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>
</definitions>

Los aspectos importantes a tener en cuenta sobre los ejemplos de declaración WSDL de servicios web anteriores son los siguientes:

  1. El parámetro `message` en la definición WSDL se utiliza para definir los diferentes elementos de datos para cada operación realizada por el servicio web. En el ejemplo anterior, tenemos dos mensajes que se pueden intercambiar entre el servicio web y la aplicación cliente: uno es la operación `TutorialRequest` y el otro es la operación `TutorialResponse`. `TutorialRequest` contiene un elemento llamado `TutorialID`, que es de tipo cadena. De manera similar, la operación `TutorialResponse` contiene un elemento llamado `TutorialName`, que también es de tipo cadena.
  2. Esto describe la operación que puede realizar el servicio web, que en nuestro caso se llama Tutorial. Esta operación puede recibir dos mensajes: uno de entrada y otro de salida.
  3. Este elemento contiene el protocolo que se utiliza. En nuestro caso, lo definimos para que use HTTP (http://schemas.xmlsoap.org/soap/http). También especificamos otros detalles para el cuerpo de la operación, como el espacio de nombres y si el mensaje debe estar codificado.

En este artículo hablaremos en detalle sobre “WSDL”. tutoriales.

Universal DescriptIón, descubrimiento e integración (UDDI)

UDDI es un estándar para describir, publicar y descubrir los servicios web proporcionados por un proveedor de servicios en particular. Proporciona una especificación que ayuda a alojar la información en servicios web.

Ahora discutimos en el tema anterior sobre WSDL y cómo contiene información sobre lo que realmente hace el servicio web. Pero, ¿cómo puede una aplicación cliente localizar un archivo WSDL para comprender las diversas operaciones que ofrece un servicio web? Entonces, UDDI es la respuesta a esto y proporciona un repositorio en el que se pueden alojar los archivos WSDL. Así, la aplicación cliente tendrá acceso completo a UDDI, que actúa como una base de datos que contiene todos los archivos WSDL.

Así como una guía telefónica tiene el nombre, la dirección y el número de teléfono de una persona en particular, del mismo modo el registro UDDI tendrá la información relevante para el servicio web., para que una aplicación cliente sepa dónde puede encontrarla.

Ventajas de los servicios web

Ya sabemos por qué surgieron los servicios web: para proporcionar una plataforma que permitiera la comunicación entre diferentes aplicaciones. Pero veamos las ventajas de los servicios web y por qué es importante utilizarlos.

  1. Exponiendo la funcionalidad empresarial en la red Un servicio web es una unidad de código administrado que proporciona alguna funcionalidad a las aplicaciones cliente o a los usuarios finales. Esta funcionalidad se puede invocar mediante el protocolo HTTP, lo que significa que también se puede invocar a través de internet. Hoy en día, todas las aplicaciones están en internet, lo que hace que la utilidad de los servicios web sea aún mayor. Esto significa que un servicio web puede estar en cualquier lugar de internet y proporcionar la funcionalidad necesaria según se requiera.
  2. Interoperabilidad entre aplicaciones Los servicios web permiten que diversas aplicaciones se comuniquen entre sí y compartan datos y servicios. Todo tipo de aplicaciones pueden comunicarse entre sí. Por lo tanto, en lugar de escribir código específico que solo pueden entender ciertas aplicaciones, ahora puede escribir código genérico que todas las aplicaciones pueden entender.
  3. Un protocolo estandarizado que todos entienden – Los servicios web utilizan un protocolo estandarizado de la industria para la comunicación. Las cuatro capas (Transporte de servicio, Mensajería XML, Servicio DescriptLas capas de ionización y descubrimiento de servicios utilizan protocolos bien definidos en la pila de protocolos de servicios web.
  4. Reducción del coste de la comunicación. – Los servicios web utilizan SOAP sobre el protocolo HTTP, por lo que puede utilizar su Internet de bajo costo existente para implementar servicios web.

Servicios Web Architectura

Cada framework necesita algún tipo de arquitectura para asegurar que todo el framework funcione como se desea. De manera similar, en los servicios web, la Servicios Web Architectura Consta de tres funciones distintas, como se indica a continuación:

  1. Proveedor – El proveedor crea el servicio web y lo pone a disposición de las aplicaciones cliente que deseen utilizarlo.
  2. Solicitante – Un solicitante no es más que la aplicación cliente que necesita ponerse en contacto con un servicio web. La aplicación cliente puede ser .Net, Javao cualquier otra aplicación basada en lenguaje que busque algún tipo de funcionalidad a través de un servicio web.
  3. Broker – El intermediario no es más que la aplicación que proporciona acceso al UDDI. El UDDI, como se explicó en el tema anterior, permite que la aplicación cliente localice el servicio web.

El siguiente diagrama muestra cómo interactúan entre sí el proveedor de servicios, el solicitante de servicios y el registro de servicios.

Servicios Web Architectura

  1. Publicar – Un proveedor informa al intermediario (registro de servicios) sobre la existencia del servicio web utilizando la interfaz de publicación del intermediario para que el servicio sea accesible a los clientes.
  2. Encontrar – El solicitante consulta al intermediario para localizar un servicio web publicado.
  3. aglutinante – Con la información obtenida del intermediario (registro de servicios) sobre el servicio web, el solicitante puede vincularse o invocar dicho servicio.

Características de los servicios web

Los servicios web tienen las siguientes características especiales de comportamiento:

  1. Están basados ​​en XML Los servicios web utilizan XML para representar los datos en las capas de representación y transporte de datos. El uso de XML elimina cualquier dependencia de red, sistema operativo o plataforma, ya que XML es un lenguaje común que todos entienden.
  2. Débilmente acoplado – Un acoplamiento flexible significa que el cliente y el servicio web no están vinculados entre sí, lo que significa que, incluso si el servicio web cambia con el tiempo, no debería cambiar la forma en que el cliente llama al servicio web. La adopción de una arquitectura de acoplamiento flexible tiende a hacer que los sistemas de software sean más manejables y permite una integración más sencilla entre diferentes sistemas.
  3. SyncFuncionalidad cronológica o asincrónica – SyncLa cronicidad se refiere a la vinculación del cliente a la ejecución del servicio. En las operaciones sincrónicas, el cliente esperará a que el servicio web complete una operación. Un ejemplo de esto es probablemente un escenario en el que se está realizando una operación de lectura y escritura de una base de datos. Si se leen datos de una base de datos y luego se escriben en otra, las operaciones deben realizarse de manera secuencial. Las operaciones asincrónicas permiten que un cliente invoque un servicio y luego ejecute otras funciones en paralelo. Esta es una de las técnicas más comunes y probablemente la más preferida para garantizar que otros servicios no se detengan cuando se realiza una operación en particular.
  4. Capacidad para admitir llamadas a procedimientos remotos (RPC) – Los servicios web permiten a los clientes invocar procedimientos, funciones y métodos en objetos remotos utilizando un protocolo basado en XML. Los procedimientos remotos exponen los parámetros de entrada y salida que debe admitir un servicio web.
  5. Admite el intercambio de documentos – Una de las principales ventajas de XML es su forma genérica de representar no sólo datos sino también documentos complejos. Estos documentos pueden ser tan simples como representar una dirección actual o tan complejos como representar un libro entero.

Preguntas Frecuentes

Los modelos de IA suelen implementarse como servicios web, por lo que las aplicaciones envían datos a través de HTTP y reciben predicciones en formato XML o JSON. La IA también puede monitorizar el tráfico de los servicios web, detectar anomalías y generar automáticamente código cliente, lo que agiliza y mejora la fiabilidad de la integración.

Sí. Las herramientas de IA pueden generar definiciones WSDL, sugerir estructuras de puntos finales, crear casos de prueba y validar respuestas SOAP o REST. Los desarrolladores aún deben revisar la salida para garantizar que latracLas reglas de seguridad y de TS son correctas antes de la implementación.

SOAP es un protocolo de mensajería estricto basado en XML con estándares integrados para seguridad y transacciones. REST es un estilo arquitectónico que utiliza métodos HTTP sencillos y, a menudo, JSON. SOAP se adapta mejor a los sistemas empresariales formales, mientras que REST es más ligero y popular para las API web.

WSDL (servicios web DescriptEl WSDL (Lenguaje de Servicios Web) es un archivo XML que describe qué hace un servicio web, dónde se encuentra y cómo invocarlo. Las aplicaciones cliente leen el WSDL para comprender las operaciones disponibles y los formatos de mensajes.

Resumir este post con: