Partilhar via


Criando aplicativos para usar servidores de bancos de dados federados

As exibições particionadas, distribuídas e atualizáveis oferecem suporte a que se tenham grupos de servidores SQL Server 2005 em cooperação no processo de sobrecarga de banco de dados de sites grandes e com várias camadas. Embora cada servidor seja administrado separadamente, as instâncias do SQL Server 2005 em todos os servidores usam exibições particionadas distribuídas para compartilhar o trabalho. O grupo de servidores autônomos que cooperam para compartilhar trabalho é denominado federação.

Os servidores de bancos de dados federados são montados pela criação de bancos de dados em todos os servidores e pelo particionamento de tabelas pelos bancos de dados. Cada tabela original é dividida em uma tabela membro em cada servidor membro. Cada tabela membro tem um subconjunto de linhas da tabela original; a tabela original é particionada horizontalmente pelas tabelas membro. Ao criar um sistema de banco de dados federado, faça a partição de todas as tabelas, de modo que todos os dados relacionados fiquem localizados no mesmo servidor membro.

Um dos resultados de se particionar tabelas em um conjunto de servidores de bancos de dados federados é um conjunto de regras de roteamento de dados. Um aplicativo pode corresponder a uma parte dos dados dos quais ele pode inferir solicitações de usuário com base nas regras de roteamento de dados. Fazendo isso, ele pode determinar qual servidor membro possui mais dados requeridos pelas instruções SQL que o aplicativo gera para atender à solicitação do usuário. Para obter mais informações, consulte Projetando servidores de banco de dados federados.

Em uma arquitetura de várias camadas, um sistema é implementado nas seguintes camadas:

  • Camada de serviços do usuário. Trata-se de um conjunto de clientes finos concentrados em gerenciar a interface de usuário do aplicativo. A camada de serviços do usuário chama a próxima camada para realizar as funções comerciais necessárias para oferecer suporte às solicitações de usuário.

  • Camada de serviços comerciais. Um conjunto de componentes COM+ que encapsula a lógica comercial da organização. A camada de serviços comerciais usa a próxima camada para qualquer armazenamento de dados permanente que precise ser executado.

  • Camada de serviços de dados. Um conjunto de componentes, como bancos de dados SQL Server, que podem armazenar dados em uma mídia permanente. Isso é também denominado persistência de dados.

A camada de serviços comerciais é criada como um conjunto de componentes COM+ que executam em servidores de aplicativo. Isso permite que o balanceamento de carga de rede do Microsoft Windows distribua as solicitações do usuário de maneira uniforme na camada comercial. Como qualquer solicitação de usuário pode ser processada em um servidor de aplicativo, os componentes comerciais devem ter algum mecanismo para rotear para o servidor membro apropriado as instruções SQL que eles geram. Os componentes comerciais precisam criar correspondência entre algumas partes das informações dos dados recebidos do cliente, com base nas regras de roteamento de dados, para determinar qual servidor membro deve processar a solicitação.

Um mecanismo flexível para implementar roteamento de dados na camada de serviços comerciais é armazenar as regras de roteamento em um armazenamento persistente, como o SQL Server 2005 ou o Windows Active Directory e, em seguida, fazer com que os componentes comerciais recuperem essas regras em tempo de execução. Codifique o componente COM+ que criará a correspondência de chaves segundo as regras de roteamento para determinar qual servidor membro processaria a consulta com mais eficácia. Esse componente de roteamento COM+ pode, portanto, ser chamado por qualquer outro componente COM+ na camada de serviços comerciais que tenha acesso aos dados particionados. Por exemplo, em um sistema com acesso a dados de cliente particionados em ID de cliente é possível fazer o seguinte:

  • Criar uma tabela de regras de roteamento que registre as chaves mantidas em cada servidor membro.

  • Criar um componente comercial de roteamento de dados que tome tanto um valor de chave exclusiva como as chaves de iniciação e de término de um intervalo de valores de chave como entrada. O componente COM+ leria a tabela de regras de roteamento; compararia a chave de entrada ou intervalos de chaves com os intervalos de chaves registrados em todos os servidores membro, depois retornaria o nome do servidor membro que tivesse a melhor correspondência com o componente ou aplicativo de chamada.

  • Codificar os componentes ou aplicativos gerais de camada de serviços comercial para sempre chamar o componente de roteamento de dados ao executar uma instrução SQL que faça referência à exibição particionada. O componente comercial usará o nome do servidor retornado pelo componente de roteamento de dados para selecionar a conexão de banco de dados na qual executará a instrução SQL.

Esse método não requer nenhuma alteração no código do aplicativo caso o particionamento dos dados seja alterada. As regras de roteamento de dados podem ser alteradas com os aplicativos em execução.

Consulte também

Conceitos