Diseñar aplicaciones para utilizar servidores de bases de datos federadas
Las vistas distribuidas con particiones actualizables permiten tener grupos de servidores SQL Server 2005 que cooperen en el procesamiento de la carga de trabajo de las bases de datos de los sitios Web de varios niveles de mayor tamaño. Aunque cada servidor se administra de manera independiente, las instancias de SQL Server 2005 de cada servidor utilizan vistas distribuidas con particiones para repartirse el trabajo. Un grupo de servidores autónomos que cooperan para compartir el trabajo se denomina federación.
Para obtener servidores de bases de datos federadas, se crean bases de datos en cada servidor y después se crean particiones en las tablas entre estas bases de datos. Cada tabla original se divide en una tabla miembro en cada servidor miembro. Cada tabla miembro contiene un subconjunto de filas de la tabla original; en la tabla original se crean particiones horizontalmente entre las tablas miembro. Al diseñar un sistema de bases de datos federadas, se recomienda crear particiones en todas las tablas de forma que todos los datos relacionados se encuentren en el mismo servidor miembro.
Una de las consecuencias de crear particiones en las tablas entre un conjunto de servidores de bases de datos federadas es un conjunto de reglas de enrutamiento de datos. Una aplicación puede hacer coincidir la parte de los datos que infiere de las solicitudes de los usuarios con las reglas de enrutamiento de datos con el fin de determinar qué servidor miembro contiene la mayoría de los datos requeridos por las instrucciones SQL que la aplicación debe generar para responder a dichas solicitudes. Para obtener más información, vea Diseñar servidores de bases de datos federadas.
En una arquitectura de varios niveles, un sistema se implementa en los siguientes niveles:
- Nivel de servicios del usuario. Es un conjunto de clientes ligeros dedicados a la administración de la interfaz de usuario de la aplicación. El nivel de servicios del usuario llama al siguiente nivel con el fin de realizar las funciones empresariales necesarias para responder a las solicitudes del usuario.
- Nivel de servicios empresariales. Un conjunto de componentes COM+ que encapsula la lógica empresarial de la organización. El nivel de servicios empresariales utiliza el siguiente nivel para almacenar datos de manera permanente.
- Nivel de servicios de datos. Un conjunto de componentes, como las bases de datos de SQL Server, que pueden guardar datos en un medio permanente. También se conoce como almacenamiento de datos.
El nivel de servicios empresariales está diseñado como un conjunto de componentes COM+ que se ejecuta en servidores de aplicaciones. Esto permite que el equilibrio de carga de red de Microsoft Windows distribuya las solicitudes del usuario de manera uniforme en el nivel empresarial. Dado que las solicitudes del usuario se pueden procesar en cualquier servidor de aplicaciones, los componentes empresariales deben disponer de un mecanismo que enrute las instrucciones SQL generadas al servidor miembro correspondiente. Los componentes empresariales deben tener capacidad para hacer coincidir una parte de la información de los datos recibidos del cliente con las reglas de enrutamiento de datos para determinar qué servidor miembro debe procesar la solicitud.
Un mecanismo flexible para implementar el enrutamiento de los datos en el nivel de servicios empresariales es guardar las reglas de enrutamiento en un almacén persistente, como SQL Server 2005 o Active Directory de Windows, y hacer que los componentes empresariales las recuperen en tiempo de ejecución. Se puede codificar un componente COM+ que haga coincidir las claves con las reglas de enrutamiento para determinar qué servidor miembro procesaría más eficazmente la consulta. A partir de ahí, cualquier otro componente COM+ del nivel de servicios empresariales que necesite obtener acceso a los datos con particiones puede llamar a este componente de enrutamiento COM+. Por ejemplo, en un sistema que obtenga acceso a datos de clientes con particiones por Id. de cliente, puede hacer lo siguiente:
- Crear una tabla de reglas de enrutamiento que registre las claves que se mantienen en cada servidor miembro.
- Crear un componente empresarial de enrutamiento de datos que acepte como entrada un único valor clave o las claves inicial y final de un intervalo de valores de clave. El componente COM+ leería la tabla de reglas de enrutamiento, compararía la clave o intervalos de claves de entrada con los intervalos de claves registrados para cada servidor miembro y devolvería el nombre del servidor miembro con la coincidencia más aproximada al componente o a la aplicación que ha llamado.
- Codificar los componentes o las aplicaciones del nivel de servicios empresariales en general de manera que siempre llamen al componente de enrutamiento de datos cuando ejecuten una instrucción SQL que haga referencia a la vista con particiones. El componente empresarial utilizará el nombre de servidor que devuelva el componente de enrutamiento de datos para seleccionar la conexión de base de datos en la que ejecutar la instrucción SQL.
Con este método, no es necesario cambiar el código de la aplicación cuando se modifica la partición de los datos. Las reglas de enrutamiento de datos se pueden cambiar mientras se ejecutan las aplicaciones.