Visão geral e cenários (Sync Services)

O Microsoft Sync Services for ADO.NET permite a sincronização entre bancos de dados. Ele fornece uma API flexível e intuitiva que permite criar aplicativos designados para cenários offline e de colaboração. O Sync Services permite a sincronização entre dois itens de mesmo nível, como bancos de dados SQL Server ou entre um banco de dados do cliente SQL Server Compact 3.5 SP1 e um banco de dados do servidor ou outra fonte de dados. A API permite usar todos ou apenas alguns dos componentes fornecidos, dependendo da arquitetura e requisitos de um aplicativo.

O Sync Services faz parte do Microsoft Estrutura de sincronização. Para baixar o Sync Services, vá para este site da Microsoft. O Estrutura de sincronização é uma plataforma de sincronização abrangente que permite aos desenvolvedores adicionar recursos de sincronização a aplicativos, serviços e dispositivos. Como o Sync Services faz parte do Estrutura de sincronização, qualquer banco de dados que use o Sync Services também pode trocar informações com outras fontes de dados suportadas pelo Estrutura de sincronização, como serviços Web, sistemas de arquivos ou armazenamentos de dados personalizados.

Cenários de sincronização

A capacidade de oferecer suporte a trabalhadores móveis e remotos está se tornando cada vez mais importante para as organizações. As organizações devem garantir que os trabalhadores tenham acesso às mesmas informações que teriam se estivessem no escritório. Na maior parte dos casos, esses usuários terão um laptop, um desktop no escritório, um smartphone ou um PDA. Nesses dispositivos, muitas vezes os usuários podem acessar dados diretamente usando uma conexão VPN ou algum outro método de conexão direta com a rede corporativa. Para a maioria dos usuários remotos, esta solução não é satisfatória devido às grandes desvantagens nas seguintes áreas:

  • Requisitos de rede

    Para que os usuários possam acessar informações, o dispositivo remoto deve ter uma conexão constante com a rede corporativa durante o acesso aos dados. Para alguns trabalhadores, como os que trabalham de casa, isso talvez não seja um problema. Mas para outros usuários, como os vendedores que estão constantemente em movimento, isso poderia ser mais difícil. Por exemplo, se um vendedor está visitando um cliente e não pode acessar os dados do estoque porque não há conectividade de rede, seu trabalho será prejudicado.

  • Velocidade de acesso aos dados

    Em um típico ambiente corporativo cliente/servidor, os usuários têm redes de alta velocidade que permitem o acesso rápido a informações. Porém, os trabalhadores remotos normalmente se conectam em redes com ou sem fio lentas e não confiáveis. Usando uma solução comum, cada fragmento de dados que um usuário desejar acessar deverá ser baixado sempre que solicitado, pois não é possível manter os dados no dispositivo. Por exemplo, se um vendedor precisar baixar sua lista de produtos toda vez que abrir o aplicativo, o tempo de retardo para popular o aplicativo com as informações poderá ser desanimador.

  • Ponto de falha único

    Com este tipo de solução, todos os usuários dependem de um único servidor. Se esse banco de dados não estiver disponível devido a um período de inatividade planejado ou a falhas do servidor, todos os trabalhadores remotos serão desconectados de seus dados.

  • Escalabilidade de servidor

    À medida que mais pessoas trabalham remotamente, o desempenho dos servidores corporativos é afetado e maior é a necessidade de adição de hardware.

Aplicativos ocasionalmente conectados

Uma alternativa para a solução descrita na seção anterior é a implementação de um aplicativo ocasionalmente conectado. Um aplicativo ocasionalmente conectado permite que um trabalhador remoto continue acessando os dados. No entanto, diferente do cenário anterior no qual o usuário precisava acessar diretamente o banco de dados corporativo para obter as informações desejadas, nesse caso as informações são armazenadas localmente em um dispositivo. Para popular um banco de dados local, um aplicativo ocasionalmente conectado usa, em geral, a sincronização de dados.

A sincronização de dados consiste na capacidade de obter periodicamente as informações armazenadas em um banco de dados do cliente (como o SQL Server Compact 3.5) e em sincronizar as alterações com um banco de dados do servidor (como o SQL Server). Com uma solução baseada em sincronização, o usuário não precisa mais ter uma conexão de rede constante para acessar as informações. Como os dados são armazenados localmente, o usuário tem acesso constante aos dados enquanto o processamento é descarregado a partir do banco de dados central. Além disso, visto que a velocidade da rede não é mais um fator de restrição, o usuário agora pode acessar os dados na velocidade do dispositivo.

As ilustrações a seguir mostram exemplos de aplicativos ocasionalmente conectados nos quais os dados (representados por um banco de dados verde) são mantidos localmente no dispositivo de um trabalhador remoto. O primeiro exemplo mostra um sistema de banco de dados autônomo no qual as informações são armazenadas diretamente no dispositivo do usuário. O segundo exemplo mostra um escritório remoto onde as informações são armazenadas no banco de dados de um grupo de trabalho desse escritório, de modo que vários trabalhadores locais podem acessar os dados. Para obter mais informações sobre a sincronização offline, consulte Cenários offline (Sync Services).

Uma extensão comum deste tipo de aplicativo ocasionalmente conectado é a possibilidade de dar suporte a cenários de colaboração. São cenários nos quais dois bancos de dados podem ser sincronizados ponto a ponto, sem ter que passar por um local central. Como mostrado na ilustração a seguir, um banco de dados remoto pode trocar informações livremente com qualquer outro banco de dados. Esse tipo de solução é útil quando trabalhadores remotos (como auditores financeiros locais) trabalham em equipe em um local remoto. Esses trabalhadores devem compartilhar informações freqüentemente entre si. No entanto, como eles não se conectam ao banco de dados central, devem compartilhar informações por meio de algum tipo de rede ponto a ponto. Para obter mais informações sobre colaboração de dados, consulte Cenários de colaboração (Sync Services).

Consulte também

Conceitos

Sync Services for ADO.NET 2.0