Visión general técnica de Sun Java Enterprise System 2005Q4

Dimensión 3: calidad del servicio

Las dos dimensiones arquitectónicas anteriores (dependencias de servicio de infraestructura y capas lógicas) hacen referencia en buena parte a los aspectos lógicos de la arquitectura, es decir, qué componentes son necesarios para interactuar de cierto modo con objeto de ofrecer los servicios a los usuarios finales. No obstante, una dimensión igualmente importante de cualquier solución implementada es la capacidad de ésta para cumplir los requisitos de calidad de servicio.

La dimensión de calidad del servicio de una arquitectura de solución destaca las funciones desempeñadas por los componentes de calidad de servicio de Java ES.

Calidades de servicio

A medida que los servicios de Internet y de comercio electrónico se han hecho más importantes para las operaciones de negocios, el rendimiento, la disponibilidad, la seguridad, la escalabilidad y la facilidad de mantenimiento de estos servicios se han convertido en un requisito fundamental de calidad de servicio para las arquitecturas de implementación de alto rendimiento y de gran escala.

Para diseñar una solución de software con éxito, se deberá determinar los requisitos de calidad de servicios relevantes y diseñar una arquitectura que satisfaga dichos requisitos. Se utiliza un número de importantes calidades de servicios para especificar los requisitos de calidad de servicio. Estas calidades de servicios se resumen en la siguiente tabla.

Tabla 2–2 Calidades de servicio que afectan a la arquitectura de solución

Calidades de servicio del sistema 

Descripción 

Rendimiento

La medición de la latencia y del tiempo de respuesta con relación a las condiciones de carga de usuarios.  

Disponibilidad

Medida de la frecuencia con que los usuarios finales acceden a los servicios y recursos de un sistema (el tiempo de actividad de un sistema).

Seguridad

Combinación compleja de factores que describe la integridad de un sistema y sus usuarios. La seguridad incluye la seguridad física de los sistemas, seguridad de red, seguridad de datos y aplicaciones (autenticación y autorización de usuarios), así como el transporte seguro de la información. 

Escalabilidad

La capacidad de agregar a lo largo del tiempo funciones a un sistema implementado. La escalabilidad normalmente implica agregar recursos al sistema, pero no debería requerir cambios en la arquitectura de implementación. 

Capacidad latente

La capacidad de un sistema para gestionar el uso de carga máxima inusual sin recursos adicionales. 

Capacidad de mantenimiento

La facilidad con que un sistema implementado puede mantenerse, incluidas tareas tales como la supervisión del sistema, la reparación de los problemas que surjan y la actualización de los componentes de hardware y software.  

La dimensión de calidad de servicio influye en gran medida en la arquitectura de despliegue de una solución: cómo se implementan en el entorno físico los componentes de la aplicación y componentes de infraestructura.

Las calidades del servicio que afectan a la arquitectura de implementación están estrechamente interrelacionadas. Los requisitos para una calidad de sistema afectan a menudo al diseño de otras calidades de servicio. Por ejemplo, unos mayores niveles de seguridad podrían afectar al rendimiento, que a su vez podría afectar a la disponibilidad. La integración de equipos adicionales para solucionar problemas de disponibilidad mediante la redundancia a menudo afecta a los costes de mantenimiento (facilidad de mantenimiento).

Al diseñar arquitecturas de implementación que satisfagan las necesidades y las limitaciones de negocios, es importante conocer el modo de interrelación de las calidades del servicio y las concesiones que se deben realizar.

Componentes de calidad del servicio de Java Enterprise System

Varios componentes de Java ES se utilizan principalmente para mejorar la calidad de los servicios proporcionados por los componentes de los servicios del sistema o por los componentes de aplicaciones distribuidas. A menudo, estos componentes de software se utilizan junto con los componentes de hardware como, por ejemplo, equilibradores de carga y servidores de seguridad.

Los componentes de calidad del servicio de Java ES, de los que se realiza una introducción en Componentes de calidad del servicio, se resumen a continuación:

La siguiente tabla muestra los componentes de calidad del servicio de Java ES más importantes desde una perspectiva arquitectónica con las calidades de sistema a las que más afectan.

Tabla 2–3 Componentes de calidad de servicio y calidades de sistema afectadas

Componente 

Calidades de sistema afectadas 

Communications Express

Seguridad

Escalabilidad 

Directory Proxy Server

Seguridad

Escalabilidad

almacén de sesión de alta disponibilidad 

Disponibilidad

Portal Server Secure Remote Access

Seguridad

Escalabilidad

Sun Cluster 

Disponibilidad

Escalabilidad

Web Proxy Server  

Seguridad Rendimiento Capacidad de mantenimiento

Software de Sun Cluster

El software de Sun Cluster proporciona servicios de alta disponibilidad y escalabilidad para los componentes de Java ES y para las aplicaciones a las que proporciona compatibilidad la infraestructura de Java ES.

Un clúster es un conjunto de equipos que no están firmemente acoplados y que, en conjunto, ofrecen una vista de cliente única de los servicios, los recursos del sistema y los datos. Internamente, el clúster utiliza equipos redundantes, interconexiones, almacenamiento de datos e interfaces de red para ofrecer alta disponibilidad en datos y servicios basados en clúster.

El software de Sun Cluster supervisa continuamente el estado de los nodos miembros y de otros recursos del clúster. En caso de fallo, el software de Sun Cluster interviene para iniciar la recuperación de los fallos de los recursos que supervisa y utiliza, por tanto, la redundancia interna para proporcionar un acceso prácticamente continuo a estos recursos.

En la figura que aparece a continuación se representa un clúster de dos nodos que hace posible el uso de servicios de almacén de datos para Messaging Server y Calendar Server.

Figura 2–6 Diseño de disponibilidad usando nodos de Sun Cluster

Diagrama que muestra equipos redundantes, almacenes de datos e interconexiones en el diseño de disponibilidad de Sun Cluster.

Los paquetes de servicios de datos de Sun Cluster (a veces denominados "agentes de Sun Cluster") están disponibles para todos los componentes de los servicios del sistema Java ES. También puede escribir agentes para componentes de aplicaciones personalizados.

Dado el control que permite el software de Sun Cluster, también puede ofrecer servicios escalables. Aprovechando el sistema de archivos global del clúster y la capacidad de que haya varios nodos en un clúster para ejecutar servicios de aplicaciones e infraestructura, la creciente demanda de estos servicios puede equilibrarse en varias instancias simultáneas de los servicios. Por lo tanto, si se configura correctamente, el software de Sun Cluster puede proporcionar alta disponibilidad y escalabilidad en una aplicación de empresa distribuida.

Debido a la redundancia necesaria para poder usar los entornos de Sun Cluster, la inclusión de Sun Cluster en una solución aumenta sustancialmente el número de equipos y vínculos de red necesarios en el entorno físico.

A diferencia de los servicios proporcionados por otros componentes de Java ES, los servicios de disponibilidad de Sun Cluster son servicios "de igual a igual" distribuidos. Por lo tanto, el software de Sun Cluster debe instalarse en cada equipo de un clúster.