Cuellos de botella en el rendimiento de los Servicios Web
Los Servicios Web pueden encontrar cuellos de botella, debido a las limitaciones de la mensajería subyacente y los protocolos de transporte, dependientes de las tecnologías comunes, ampliamente aceptadas, tales como HTTP y SOAP. Por lo tanto, es importante comprender el funcionamiento de estas limitaciones.
HTTP
HTTP tiende a crear dos problemas principales:
• No hay ninguna garantía de los paquetes entregados en el destino, ni del orden en que llegan.
• Si no hay ancho de banda disponible, los paquetes son simplemente descartados. Muchas aplicaciones asumen cero latencia e infinito ancho de banda.
Aunque recientemente se han diseñado protocolos como HTTPR (Hypertext Transfer Protocol Reliable), BEEP (Blocks Extensible Exchange Protocol) y DIME (Direct Internet Message Encapsulation), su adopción, sobre todo de BEEP y DIME, puede llevar tiempo. Por lo tanto, los diseñadores de aplicaciones que utilizan SW deben tomar en consideración los problemas de rendimiento como la latencia y la disponibilidad.
Dos de las formas de mejorar el rendimiento de los Servicios Web se describen a continuación:
Uso de colas de mensajes asíncronos
Las aplicaciones que dependen de SW remotos pueden utilizar colas de mensajes para mejorar la fiabilidad, pero a costa de tiempo de respuesta. Dichas aplicaciones, dentro de una empresa, pueden utilizar colas de mensajes como JMS (Java Messaging Service) o IBM MQSeries para invocaciones de SW.
Las colas de mensajes ofrecen dos ventajas principales:
Son asíncronas: un proveedor de servicios de mensajería puede enviar mensajes al solicitante a medida que llegan y el solicitante no tiene que esperar para recibirlos.
Son eficaces: un servicio de mensajería puede asegurar que un mensaje se entrega una vez y sólo una vez (idempotencia).
|