Conceitos de programação da replicação
Aplica-se a: Instância Gerenciada de SQL do Azure do SQL Server
Antes de desenvolver um aplicativo que utilize funcionalidades de replicação, siga estas etapas de planejamento gerais:
Defina a sua topologia de replicação.
Defina a funcionalidade do aplicativo.
Planeje a segurança.
Escolha um ambiente de desenvolvimento.
Escolha a interface de programação de replicação apropriada.
O restante deste tópico descreverá essas etapas em mais detalhes. Para ajudar ilustrar o processo de planejamento, foi incluído um exemplo.
Definindo a topologia de replicação
A primeira etapa da programação da replicação é definir a topologia de replicação para o seu aplicativo. Se você estiver escrevendo um aplicativo que usará uma topologia de replicação existente, como um aplicativo cliente que acessa dados em um assinante existente, prossiga para a próxima etapa.
Observação
Em alguns casos, implantar a topologia de replicação será o único propósito do aplicativo.
A topologia de replicação definida dependerá de muitos fatores, inclusive os seguintes:
Se os dados replicados precisam ou não ser atualizados, e por quem.
As necessidades da distribuição de dados em relação à consistência, à autonomia e à latência.
O ambiente de replicação, incluindo usuários comerciais, infraestrutura técnica, rede e segurança e características de dados.
Os tipos de replicação e as opções de replicação.
As topologias de replicação e como elas se alinham aos tipos de replicação.
Se você não estiver familiarizado com a replicação do Microsoft SQL Server, consulte Tipos de replicação.
Definindo a funcionalidade do aplicativo
Após a definição da topologia de replicação, decida quais serão as funcionalidades oferecidas pelo seu aplicativo. Essas funcionalidades poderão variar de um script que sincroniza uma assinatura até um aplicativo com uma interface do usuário para a configuração da replicação. A replicação oferece suporte às seguintes tarefas de programação gerais:
Configuração da replicação.
Sincronização de Assinantes.
Manutenção de uma topologia de replicação.
Monitoramento de uma topologia de replicação.
Solução de problemas de replicação.
Também é comum estender seu aplicativo combinando funcionalidades de replicação com outras funcionalidades fornecidas pelo SQL Server. A tabela a seguir realça algumas das funcionalidades estendidas que podem ser oferecidas em seu aplicativo de replicação.
Funcionalidade | Exemplo |
---|---|
Administração de servidor usando SQL Server Management Objects (SMO) | Um aplicativo que permite a um administrador anexar e configurar um banco de dados como um Publicador em uma topologia de replicação. |
Acesso a dados usando ADO.NET | Um aplicativo que permite aos usuários acessar e alterar programaticamente dados de venda replicados em um banco de dados Assinante local em modo offline e então conectar-se a uma assinatura pull e sincronizar com ela clicando em um botão. |
Planejando a segurança
A segurança é importante em qualquer aplicativo e se planejamento deveria ser concluído antes de qualquer código ser escrito. A segurança do aplicativo pode ser dividida em três partes principais: proteção do banco de dados, proteção da replicação e escrita de código seguro.
Os tópicos a seguir oferecem informações sobre segurança:
Escolhendo um ambiente de desenvolvimento
Durante o desenvolvimento de um aplicativo de replicação, existem três ambientes de desenvolvimento básicos a se considerar. Cada ambiente de desenvolvimento tem acesso às mesmas funcionalidades de replicação, com algumas exceções. Os aplicativos de replicação podem ser desenvolvidos em cada um dos ambientes a seguir.
Código gerenciado
Ambiente de desenvolvimento orientado a objetos que aproveita os benefícios da programação do .NET Framework e do CLR (Common Language Runtime) do .NET. O código gerenciado é o ambiente de programação recomendado para aplicativos de desenvolvimento .NET e SQL Server. As interfaces de replicação gerenciadas permitem a programação da administração de replicação de maneira orientada a objetos sem a necessidade de conhecer o Transact-SQL, e também fornecem algumas funcionalidades de retorno de chamada ao executar agentes de replicação que não estão disponíveis em scripts. O código gerenciado é o melhor ambiente para o desenvolvimento de componentes e de aplicativos de interface do usuário reutilizáveis.
Scripts
Aplicativos simples que executam uma série de comandos como procedimentos armazenados do sistema de replicação em scripts Transact-SQL ou comandos em arquivos em lotes. Embora você possa executar scripts em um ambiente gerenciado usando o provedor gerenciado em processo do SQL Server, a mesma funcionalidade pode ser obtida usando interfaces de replicação gerenciadas, que também fornecem funcionalidades de retorno de chamada. A geração de scripts é o melhor ambiente para a execução de tarefas que só serão executadas algumas vezes e onde as funcionalidades de retorno de chamada não serão necessárias, como na instalação de um servidor de replicação.
Código nativo
Ambiente de desenvolvimento orientado a objeto que utiliza acesso direto ao sistema ou a objetos COM como o código que não é gerenciado pelo CLR. As interfaces de replicação do código nativo não estão disponíveis ou foram descontinuadas. Para obter mais informações, consulte Recursos preteridos na Replicação do SQL Server ou Compatibilidade com versões anteriores da replicação.
Escolha a interface de programação de replicação apropriada
A última etapa de planejamento é escolher a interface de programação de replicação apropriada que implementará a funcionalidade de replicação desejada para o ambiente de desenvolvimento escolhido. A tabela a seguir mostra as interfaces de programação de replicação disponíveis.
Interface | Ambiente | Usos |
---|---|---|
Replication Management Objects Concepts | Código gerenciado | Administração, monitoramento e sincronização. |
Microsoft.SqlServer.Replication | Código gerenciado | Sincronização. |
Microsoft.SqlServer.Replication.BusinessLogicSupport | Código gerenciado | Criação de manipuladores de lógica de negócios para integrar lógica personalizada ao processo de sincronização de mesclagem. |
Procedimentos armazenados de replicação (Transact-SQL) | Scripting | Administração e monitoramento. |
Conceitos dos executáveis do Replication Agent | Scripting | Sincronização. |
Exemplo
Na Adventure Works, os dados precisam ser publicados para 200 representantes de vendas em todo o mundo. Os representantes de venda viajam com muita frequência e precisam usar laptops ou PDAs (personal digital assistants) para alterar dados de clientes e para adicionar novos pedidos. As alterações terão de ser sincronizadas com o Publicador quando o representante de vendas conectar o laptop à rede.
Para este aplicativo, as etapas de planejamento poderiam ser as seguintes:
A topologia de replicação para este aplicativo já existe. No entanto, uma nova assinatura pull deverá ser criada no cliente. A publicação deve usar filtros parametrizados para replicar um conjunto de dados exclusivo para cada representante de vendas.
Além do acesso a dados típico exigido para um aplicativo de venda, este aplicativo deve permitir que os vendedores sincronizem a assinatura pull sob demanda clicando em um botão. Uma vez que o representante de vendas instalará e executará o aplicativo, também terá de ser capaz de configurar uma assinatura e de aplicar o instantâneo inicial no cliente. Opcionalmente, o aplicativo usará a infraestrutura fornecida pelo Windows para localizar a conectividade sem-fios e sincronizar a assinatura automaticamente quando uma conexão for detectada.
Siga todas as diretrizes de segurança para replicação, incluindo a utilização da Autenticação de Windows e de uma VPN (rede privada virtual) ao se conectar ao editor. Se você implementar a sincronização da Web, use uma conexão com o protocolo TLS, anteriormente conhecido como protocolo SSL. Para obter mais informações, consulte Configurar sincronização da Web.
Para aproveitar os recursos do .NET Framework, o aplicativo é desenvolvido usando uma linguagem de código gerenciado.
Com base nesses requisitos, a interface gerenciada do RMO (Replication Management Objects) pode oferecer toda a funcionalidade de replicação necessária para este aplicativo.
Este cenário de exemplo foi implementado no aplicativo de exemplo AdventureWorks que pode ser baixado para SQL Server.