Servicios web - Arquitectura
Hay dos formas de ver la arquitectura del servicio web:
- El primero es examinar los roles individuales de cada actor de servicios web.
- El segundo es examinar la pila de protocolos de servicios web emergentes.
Roles de servicios web
Hay tres roles principales dentro de la arquitectura del servicio web:
Proveedor de servicio
Este es el proveedor del servicio web. El proveedor de servicios implementa el servicio y lo pone a disposición en Internet.
Solicitante de servicio
Este es cualquier consumidor del servicio web. El solicitante utiliza un servicio web existente abriendo una conexión de red y enviando una solicitud XML.
Registro de servicios
Este es un directorio de servicios lógicamente centralizado. El registro proporciona un lugar central donde los desarrolladores pueden publicar nuevos servicios o encontrar los existentes. Por lo tanto, sirve como una cámara de compensación centralizada para las empresas y sus servicios.
Pila de protocolo de servicio web
Una segunda opción para ver la arquitectura de servicios web es examinar la pila de protocolos de servicios web emergentes. La pila todavía está evolucionando, pero actualmente tiene cuatro capas principales.
Transporte de servicio
Esta capa es responsable de transportar mensajes entre aplicaciones. Actualmente, esta capa incluye el Protocolo de transporte de hipertexto (HTTP), el Protocolo simple de transferencia de correo (SMTP), el Protocolo de transferencia de archivos (FTP) y protocolos más nuevos como el Protocolo de intercambio extensible de bloques (BEEP).
Mensajería XML
Esta capa es responsable de codificar los mensajes en un formato XML común para que los mensajes se puedan entender en ambos extremos. Actualmente, esta capa incluye XML-RPC y SOAP.
Descripción del servicio
Esta capa es responsable de describir la interfaz pública a un servicio web específico. Actualmente, la descripción del servicio se maneja a través del Lenguaje de descripción de servicios web (WSDL).
Descubrimiento de servicios
Esta capa es responsable de centralizar los servicios en un registro común y proporcionar una funcionalidad de publicación / búsqueda sencilla. Actualmente, el descubrimiento de servicios se gestiona a través de la descripción, el descubrimiento y la integración universales (UDDI).
A medida que evolucionan los servicios web, se pueden agregar capas adicionales y se pueden agregar tecnologías adicionales a cada capa.
El siguiente capítulo explica los componentes de los servicios web.
Pocas palabras sobre el transporte de servicios
La parte inferior de la pila de protocolos de servicios web es el transporte de servicios. Esta capa es responsable de transportar mensajes XML entre dos computadoras.
Protocolo de transferencia de hipertexto (HTTP)
Actualmente, HTTP es la opción más popular para el transporte de servicios. HTTP es simple, estable y ampliamente implementado. Además, la mayoría de los firewalls permiten el tráfico HTTP. Esto permite que los mensajes XMLRPC o SOAP se hagan pasar por mensajes HTTP. Esto es bueno si desea integrar aplicaciones remotas, pero plantea una serie de problemas de seguridad. Se plantean varios problemas de seguridad.
Bloquea el protocolo de intercambio extensible (BEEP)
Esta es una alternativa prometedora a HTTP. BEEP es un nuevo marco de trabajo del Grupo de trabajo de ingeniería de Internet (IETF) para la creación de nuevos protocolos. BEEP se superpone directamente en TCP e incluye una serie de funciones integradas, incluido un protocolo de reconocimiento inicial, autenticación, seguridad y manejo de errores. Con BEEP, se pueden crear nuevos protocolos para una variedad de aplicaciones, incluida la mensajería instantánea, la transferencia de archivos, la sindicación de contenido y la administración de redes.
SOAP no está vinculado a ningún protocolo de transporte específico. De hecho, puede utilizar SOAP a través de HTTP, SMTP o FTP. Por tanto, una idea prometedora es utilizar SOAP sobre BEEP.