Diseño para escalabilidad
La escalabilidad es la capacidad de una aplicación para atender una carga adicional con un aumento lineal del uso de recursos. La escalabilidad es importante en cualquier aplicación distribuida. Los límites de escalabilidad suelen centrarse en el uso de recursos y las dependencias creadas accidentalmente en el diseño de la aplicación.
En la lista siguiente se describen los problemas de escalabilidad y se sugieren soluciones:
Recursos dentro del equipo. El número de subprocesos y memoria disponibles puede limitar la escalabilidad. Use un modelo de subprocesos que sea más eficaz para la aplicación.
Recursos entre equipos. El número de equipos disponibles para distribuir la carga de trabajo de la aplicación puede afectar a la escalabilidad.
Afinidad de cliente. Una aplicación puede crear accidentalmente dos situaciones de afinidad: una situación en la que la aplicación depende del estado de los datos que envía el cliente con su solicitud; y una situación en la que la aplicación requiere un estado específico del cliente. Evite diseñar dependencias de estado entre el cliente y la aplicación.
Afinidad de servidor. Una aplicación COM+ puede limitar su escalabilidad mediante la creación de una afinidad de servidor, donde la aplicación depende de ir a un equipo servidor determinado para obtener información. Esta afinidad puede producirse con muchas aplicaciones orientadas a bases de datos. La mejor manera de evitar un cuello de botella de afinidad de servidor es particionar los datos en varios equipos servidor. Por ejemplo, divida los datos del cliente entre los servidores por la clave a la que se accede con más frecuencia o abarque una base de datos de clientes en varios servidores mediante el apellido del cliente (por ejemplo, Server1: a-f, Server2: g-m, Server3: n-z).
Nota
La creación de particiones de datos puede agregar una gran complejidad a la lógica de programación y solo debe realizarse después de que se hayan intentado otras opciones para aumentar la escalabilidad.
Duración del objeto. Para ser escalable, una aplicación COM+ debe prestar mucha atención al período de vida de los objetos. Mientras existe un objeto, consume recursos. Es importante asegurarse de que las duraciones de los objetos que contienen recursos costosos se administran cuidadosamente. En el caso de objetos de alta demanda que no consumen recursos costosos, la agrupación de objetos COM+ puede aumentar la escalabilidad, ya que puede ajustar administrativamente los valores de agrupación para aprovechar el hardware que pueda tener. Y es una manera natural de controlar las conexiones: por ejemplo, si tiene una licencia para 20 conexiones SQL, puede dictarlo con la configuración Grupo máximo.
Agrupación de componentes de aplicación. Para mejorar la escalabilidad de una aplicación COM+, los componentes de nivel intermedio deben dividirse en servicios dependientes del tiempo e independientes del tiempo. Esto le permite centrarse en posiblemente usar un servicio de Microsoft Windows para implementar una acción de componente necesaria. Por ejemplo, podría optar por usar un servicio como Message Queuing o componentes en cola de COM+ para controlar tareas asincrónicas independientes del tiempo.
Temas relacionados