Partager via


Conception d'applications pour utiliser des serveurs de bases de données fédérés

Les vues partitionnées distribuées pouvant être mises à jour prennent en charge les groupes de serveurs SQL Server 2005 qui participent au traitement de la charge de travail des bases de données des plus grands sites Web à plusieurs niveaux. Alors que chaque serveur est administré individuellement, les instances de SQL Server 2005 sur chaque serveur utilisent des vues partitionnées distribuées pour partager le travail. Un groupe de serveurs autonomes se partageant le travail est une fédération.

Vous construisez des serveurs de bases de données fédérés en créant des bases de données sur chaque serveur, puis en partitionnant les tables entre les bases de données. Chaque table initiale est divisée en une table membre sur chaque serveur membre. Chaque table membre a un sous-ensemble des lignes de la table d'origine. La table d'origine est partitionnée horizontalement entre les tables membres. Lorsque vous concevez un système de base de données fédéré, partitionnez toutes les tables de sorte que toutes les données associées se trouvent sur le même serveur membre.

Lors du partitionnement des tables entre un ensemble de serveurs de base de données fédérés, on obtient un ensemble de règles de routage de données. Une application peut faire correspondre un élément de données qu'elle peut déduire à partir des requêtes d'un utilisateur par rapport aux règles de routage de données. Cette opération lui permet de déterminer quel est le serveur membre qui détient la plupart des données requises par les instructions SQL que l'application doit générer pour satisfaire la requête de l'utilisateur. Pour plus d'informations, consultez Création de serveurs de base de données fédérés.

Dans une architecture à plusieurs niveaux, un système est implémenté dans les niveaux suivants :

  • Niveau de services utilisateur. Il s'agit d'un ensemble de clients légers qui se concentre sur la gestion de l'interface utilisateur de l'application. Le niveau de services utilisateur appelle le niveau suivant pour mettre en œuvre les fonctions de gestion requises pour prendre en charge les requêtes des utilisateurs.

  • Niveau des services de gestion. Ensemble de composants COM+ qui encapsule la logique métier de l'organisation. Le niveau des services de gestion utilise le niveau suivant pour tous les stockages de données permanents nécessaires.

  • Niveau des services de données.. Ensemble de composants, notamment les bases de données SQL Server, pouvant stocker des données de manière permanente. Cela s'appelle également la persistance des données.

Le niveau des services de gestion est conçu comme un ensemble de composants COM+ exécutés sur des serveurs d'applications. Ceci permet au composant d'équilibrage de la charge réseau de Microsoft Windows de distribuer les requêtes des utilisateurs de façon uniforme au niveau des services de gestion. Puisqu'une requête utilisateur peut être traitée sur n'importe quel serveur d'applications, les composants de gestion doivent disposer d'un mécanisme permettant d'acheminer au serveur membre approprié les instructions SQL qu'ils génèrent. Les composants de gestion doivent être en mesure de faire correspondre un élément des données reçues du client aux règles de routage de données, afin de déterminer le serveur membre qui devra traiter la requête.

Un mécanisme flexible pour la mise en œuvre du routage des données au niveau des services de gestion consiste à stocker les règles de routage dans un magasin permanent, par exemple SQL Server 2005 ou Windows Active Directory, et à faire en sorte que les composants de gestion les récupèrent au moment de l'exécution. Vous pouvez coder un composant COM+ qui fera correspondre les clés aux règles de routage, afin d'identifier le serveur membre le plus efficace pour traiter la requête. Ce composant de routage COM+ peut ensuite être appelé par un autre composant COM+ du niveau des services de gestion devant accéder aux données partitionnées. Par exemple, dans un système accédant à des données de clients partitionnées sur l'ID de client, vous pouvez procéder comme suit :

  • Créer une table de règles de routage qui enregistre les clés conservées sur chaque serveur membre.

  • Créer un composant de gestion du routage des données qui utilise en entrée une valeur de clé unique ou les clés de début et de fin dans une plage de valeurs de clé. Le composant COM+ lit la table des règles de routage, compare la clé ou la plage de clés d'entrée aux plages de clés enregistrées pour chaque serveur membre, puis retourne le nom du serveur membre présentant la meilleure correspondance au composant ou à l'application d'appel.

  • Coder les composants ou les applications du niveau des services de gestion générale pour appeler toujours le composant de routage de données lors de l'exécution d'une instruction SQL faisant référence à la vue partitionnée. Le composant de gestion utilisera le nom de serveur retourné par le composant de routage des données pour sélectionner la connexion de base de données sur laquelle exécuter l'instruction SQL.

Cette méthode n'impose aucune modification du code de l'application en cas de modification du partitionnement des données. Les règles de routage des données peuvent être modifiées pendant l'exécution des applications.