Los servicios web son aplicaciones web basadas en estándares abiertos (XML, SOAP, HTTP, etc.) que interactúan con otras aplicaciones web con el fin de intercambiar datos. Los servicios web pueden convertir sus aplicaciones existentes en aplicaciones web.
Las siguientes son las características del servicio web:
Está disponible en Internet o en redes privadas (intranet).
Utiliza un sistema de mensajería XML estandarizado.
No está vinculado a ningún sistema operativo o lenguaje de programación.
Es autodescriptivo a través de una gramática XML común.
Se puede descubrir mediante un sencillo mecanismo de búsqueda.
La plataforma de servicios web básica es XML + HTTP. Todos los servicios web estándar funcionan con los siguientes componentes:
SOAP (Protocolo simple de acceso a objetos)
UDDI (Descripción, descubrimiento e integración universal)
WSDL (lenguaje de descripción de servicios web)
Un servicio web permite la comunicación entre varias aplicaciones mediante el uso de estándares abiertos como HTML, XML, WSDL y SOAP.
Puede crear un servicio web basado en Java en Solaris al que se pueda acceder desde su programa Visual Basic que se ejecuta en Windows.
También puede utilizar C # para crear nuevos servicios web en Windows que se pueden invocar desde su aplicación web que se basa en JavaServer Pages (JSP) y se ejecuta en Linux.
Un servicio web toma la ayuda de XML para etiquetar los datos, formatearlos.
Un servicio web necesita la ayuda de SOAP para transferir un mensaje.
Un servicio web necesita la ayuda de WSDL para describir la disponibilidad del servicio.
Los siguientes son los beneficios de utilizar servicios web:
Exposing the Existing Function on the network- Los servicios web le permiten exponer la funcionalidad de su código existente a través de la red. Una vez que se expone en la red, otra aplicación puede utilizar la funcionalidad de su programa.
Interoperability - Los servicios web permiten que varias aplicaciones se comuniquen entre sí y compartan datos y servicios entre ellas.
Standardized Protocol- Los servicios web utilizan un protocolo estándar de la industria estandarizado para la comunicación. Las cuatro capas (transporte de servicio, mensajería XML, descripción de servicio y capa de descubrimiento de servicio) utilizan protocolos bien definidos en la pila de protocolos de servicios web.
Low Cost of Communication - Los servicios web usan SOAP sobre el protocolo HTTP, por lo que puede usar su Internet de bajo costo existente para implementar servicios web.
Los servicios web permiten que varias aplicaciones se comuniquen entre sí y compartan datos y servicios entre ellas. Otras aplicaciones también pueden utilizar los servicios web. Por ejemplo, una aplicación VB o .NET puede comunicarse con los servicios web Java y viceversa. Los servicios web se utilizan para hacer que la plataforma de aplicaciones y la tecnología sean independientes.
Un consumidor de un servicio web no está vinculado directamente a ese servicio web. La interfaz del servicio web puede cambiar con el tiempo sin comprometer la capacidad del cliente para interactuar con el servicio. Un sistema estrechamente acoplado implica que la lógica del cliente y del servidor están estrechamente vinculadas entre sí, lo que implica que si una interfaz cambia, la otra debe actualizarse. La adopción de una arquitectura poco acoplada tiende a hacer que los sistemas de software sean más manejables y permite una integración más simple entre diferentes sistemas.
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 parámetros de entrada y salida que un servicio web debe admitir.
El desarrollo de componentes a través de Enterprise JavaBeans (EJB) y .NET Components se ha convertido cada vez más en parte de las arquitecturas y las implementaciones empresariales durante los últimos dos años. Ambas tecnologías se distribuyen y son accesibles a través de una variedad de mecanismos RPC.
Un servicio web es compatible con RPC proporcionando servicios propios, equivalentes a los de un componente tradicional, o traduciendo las invocaciones entrantes en una invocación de un componente EJB o .NET.
Los servicios web tienen las siguientes características especiales de comportamiento:
XML-Based - Los servicios web utilizan XML en las capas de representación y transporte de datos.
Loosely Coupled - Un consumidor de un servicio web no está vinculado directamente a ese servicio web.
Coarse-Grained- Las empresas y las interfaces que exponen deben ser generales. La tecnología de servicios web proporciona una forma natural de definir servicios generales que acceden a la cantidad adecuada de lógica empresarial.
Ability to be Synchronous or Asynchronous- Los clientes asíncronos recuperan su resultado en un momento posterior, mientras que los clientes síncronos reciben su resultado cuando el servicio se ha completado. La capacidad asincrónica es un factor clave para habilitar sistemas con acoplamiento flexible.
Supports Remote Procedure Calls(RPCs) - Un servicio web es compatible con RPC proporcionando servicios propios, equivalentes a los de un componente tradicional, o traduciendo las invocaciones entrantes en una invocación de un componente EJB o .NET.
Supports Document Exchange - Los servicios web apoyan el intercambio transparente de documentos para facilitar la integración empresarial.
El uso de XML elimina cualquier enlace de red, sistema operativo o plataforma. Por lo tanto, las aplicaciones basadas en servicios web son aplicaciones altamente interoperables en su nivel principal.
La interfaz del servicio web puede cambiar con el tiempo sin comprometer la capacidad del cliente para interactuar con el servicio. Un sistema estrechamente acoplado implica que la lógica del cliente y del servidor están estrechamente vinculadas entre sí, lo que implica que si una interfaz cambia, la otra debe actualizarse. La adopción de una arquitectura poco acoplada tiende a hacer que los sistemas de software sean más manejables y permite una integración más simple entre diferentes sistemas.
La sincronicidad se refiere a la vinculación del cliente a la ejecución del servicio. En las invocaciones sincrónicas, el cliente bloquea y espera que el servicio complete su operación antes de continuar. Las operaciones asincrónicas permiten que un cliente invoque un servicio y luego ejecute otras funciones.
Hay tres roles principales dentro de la arquitectura del servicio web:
Proveedor de servicio
Solicitante de servicio
Registro de servicios
Este es el proveedor del servicio web. El proveedor de servicios implementa el servicio y lo pone a disposición en Internet.
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.
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.
La pila de protocolos de servicios web todavía está evolucionando, pero actualmente tiene cuatro capas principales:
Transporte de servicio
Mensajería XML
Descripción del servicio
Descubrimiento de servicios
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).
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.
A. 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).
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).
HTTP significa Protocolo de transferencia de hipertexto.
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 XML-RPC o SOAP se hagan pasar por mensajes HTTP.
BEEP son las siglas de Blocks Extensible Exchange Protocol.
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.
XML-RPC es un protocolo simple que usa mensajes XML para realizar RPC.
Las solicitudes se codifican en XML y se envían mediante HTTP POST.
Las respuestas XML están integradas en el cuerpo de la respuesta HTTP.
Las siguientes son las características de XML-RPC:
XML-RPC es un protocolo simple que usa mensajes XML para realizar RPC.
Las solicitudes se codifican en XML y se envían mediante HTTP POST.
Las respuestas XML están integradas en el cuerpo de la respuesta HTTP.
XML-RPC es independiente de la plataforma.
XML-RPC permite la comunicación de diversas aplicaciones.
Un cliente Java puede hablar XML-RPC con un servidor Perl.
XML-RPC es la forma más sencilla de comenzar con los servicios web.
SOAP son las siglas de Simple Access Object Protocol.
SOAP es un protocolo basado en XML para intercambiar información entre computadoras.
Las siguientes son las características de SOAP:
SOAP es un protocolo de comunicación.
SOAP es para la comunicación entre aplicaciones.
SOAP es un formato para enviar mensajes.
SOAP está diseñado para comunicarse a través de Internet.
SOAP es una plataforma independiente.
SOAP es independiente del idioma.
SOAP es simple y extensible.
SOAP le permite sortear los firewalls.
SOAP se desarrollará como estándar W3C.
¡Si!
WSDL son las siglas de Web Services Description Language.
WSDL es un lenguaje basado en XML para describir servicios web y cómo acceder a ellos.
Las siguientes son las características de WSDL:
WSDL fue desarrollado conjuntamente por Microsoft e IBM.
WSDL es un protocolo basado en XML para el intercambio de información en entornos descentralizados y distribuidos.
WSDL es el formato estándar para describir un servicio web.
La definición de WSDL describe cómo acceder a un servicio web y qué operaciones realizará.
WSDL es un lenguaje para describir cómo interactuar con servicios basados en XML.
WSDL es una parte integral de UDDI, un registro de empresas mundial basado en XML.
WSDL es el lenguaje que usa UDDI.
WSDL se pronuncia como 'wiz-dull' y se deletrea como 'WSD-L'.
UDDI son las siglas de Universal Description, Discovery e Integration.
UDDI es un estándar basado en XML para describir, publicar y encontrar servicios web.
Las siguientes son las características de UDDI:
UDDI es una especificación para un registro distribuido de servicios web.
UDDI es un marco abierto, independiente de la plataforma.
UDDI puede comunicarse a través de SOAP, CORBA y el protocolo Java RMI.
UDDI usa WSDL para describir interfaces a servicios web.
UDDI se considera con SOAP y WSDL como uno de los tres estándares fundamentales de los servicios web.
UDDI es una iniciativa de industria abierta que permite a las empresas conocerse entre sí y definir cómo interactúan a través de Internet.
Hay tres problemas de seguridad específicos con los servicios web:
Confidentiality
Authentication
Seguridad de la red
UDDI describe interfaces para servicios web.
WSDL es el lenguaje que usa UDDI.
¡No! XML-RPC es independiente de la plataforma.
¡Si! Como XML-RPC y SOAP se ejecutan principalmente sobre HTTP, HTTP tiene soporte para Secure Socketes Layer (SSL). La comunicación se puede cifrar a través de SSL.
Se pueden considerar las siguientes opciones, pero no existe un consenso claro sobre un esquema de autenticación sólido.
HTTP incluye soporte integrado para la autenticación básica y implícita y, por lo tanto, los servicios se pueden proteger de la misma manera que los documentos HTML están protegidos actualmente.
La firma digital SOAP (SOAP-DSIG) aprovecha la criptografía de clave pública para firmar digitalmente los mensajes SOAP. Permite al cliente o servidor validar la identidad de la otra parte. Compruébelo en http://www.w3.org/TR/SOAP-dsig.
La Organización para el Avance de los Estándares de Información Estructurada (OASIS) está trabajando en el Lenguaje de marcado de afirmaciones de seguridad (SAML).
La capacidad de administración de los servicios web se define como un conjunto de capacidades para descubrir la existencia, disponibilidad, salud, rendimiento, uso, así como el control y la configuración de un servicio web dentro de la arquitectura de servicios web. A medida que los servicios web se vuelven omnipresentes y críticos para las operaciones comerciales, la tarea de administrarlos e implementarlos es imperativa para el éxito de las operaciones comerciales.
Hay dos posibles soluciones:
Filtre todas las solicitudes HTTP POST que establezcan su tipo de contenido en texto / xml.
Otra alternativa es filtrar el atributo de encabezado HTTP SOAPAction.