5
Tecnologias & Produtos > SQL Server Uma comparação técnica entre os recursos de replicação e acesso remoto a dados no SQL Server 2005 Mobile Edition 3.0 Debra Dove Março de 2005 Resumo: compare os conjuntos de recursos das duas soluções de conectividade do Microsoft SQL Server 2005 Mobile Edition 3.0 (SQL Server Mobile), replicação de mesclagem e RDA (acesso remoto a dados), e saiba qual delas pode ser mais vantajosa para o seu projeto. Este artigo também contém links para páginas em inglês (7 páginas impressas). Introdução O Microsoft SQL Server 2005 Mobile Edition 3.0 (SQL Server Mobile) dá suporte a dois métodos de troca de dados com um banco de dados do SQL Server: In í cio da p á gina Conectando o SQL Server Mobile ao SQL Server Quando você usa o RDA ou a replicação, o SQL Server Mobile se conecta ao SQL Server por meio de um servidor IIS (Serviços de informações da Internet) da Microsoft. Como a conectividade com o SQL Server é administrada pelo IIS, o dispositivo só precisa se conectar ao servidor IIS da Web usando o protocolo HTTP ou HTTPS. Isso permite que você execute operações de RDA e replicação em qualquer tipo de conexão de rede que ofereça suporte a HTTP: LANs (redes locais), WANs (redes de longa distância) e conexões com o Microsoft ActiveSync®. Tanto o RDA quanto a replicação são bastante adequados para o transporte sem fio. A compactação é usada para diminuir o tamanho dos dados transmitidos. A criptografia pode ser usada para proteger dados confidenciais do usuário durante a transmissão. O RDA e a replicação oferecem suporte à Autenticação integrada do Windows e à autenticação do SQL Server durante a conexão com o SQL Server. In í cio da p á gina Introdução à replicação de mesclagem A replicação do SQL Server Mobile é baseada na replicação de mesclagem do Microsoft SQL Server. A replicação de mesclagem pode ser implementada por meio de um banco de dados do Microsoft SQL Server 2000 ou do Microsoft SQL Server 2005. Ela é ideal para aplicativos móveis porque permite que os dados sejam atualizados de modo autônomo e independente no dispositivo portátil e no servidor. Os dados no dispositivo e no servidor são posteriormente sincronizados para que seja possível enviar as alterações do cliente ao servidor e receber as novas alterações do servidor. Embora a replicação de mesclagem exija mais configuração e manutenção no servidor do que o RDA, ela Replicação de mesclagem, uma solução robusta e cheia de recursos que permite a um aplicativo móvel fazer alterações autônomas em dados replicados e, posteriormente, mesclar essas alterações com um banco de dados do Microsoft SQL Server e resolver conflitos quando necessário. O RDA (acesso remoto a dados) permite que um aplicativo móvel acesse (receber) e envie dados para/de uma tabela de banco de dados remoto do Microsoft SQL Server e uma tabela de banco de dados local do SQL Server Mobile. O RDA também pode ser usado para emitir comandos SQL em um servidor que esteja executando o SQL Server.

SQL Server 2005 Mobile Edition

Embed Size (px)

DESCRIPTION

SQL Server 2005 Mobile Edition

Citation preview

Page 1: SQL Server 2005 Mobile Edition

Tecnologias & Produtos > SQL Server

Uma comparação técnica entre os recursos de replicação e acesso remoto a dados no SQL Server 2005 Mobile Edition 3.0 Debra Dove

Março de 2005

Resumo: compare os conjuntos de recursos das duas soluções de conectividade do Microsoft SQL Server

2005 Mobile Edition 3.0 (SQL Server Mobile), replicação de mesclagem e RDA (acesso remoto a dados), e

saiba qual delas pode ser mais vantajosa para o seu projeto. Este artigo também contém links para páginas

em inglês (7 páginas impressas).

Introdução

O Microsoft SQL Server 2005 Mobile Edition 3.0 (SQL Server Mobile) dá suporte a dois métodos de troca de

dados com um banco de dados do SQL Server:

Início da página

Conectando o SQL Server Mobile ao SQL Server

Quando você usa o RDA ou a replicação, o SQL Server Mobile se conecta ao SQL Server por meio de um

servidor IIS (Serviços de informações da Internet) da Microsoft. Como a conectividade com o SQL Server é

administrada pelo IIS, o dispositivo só precisa se conectar ao servidor IIS da Web usando o protocolo HTTP

ou HTTPS. Isso permite que você execute operações de RDA e replicação em qualquer tipo de conexão de

rede que ofereça suporte a HTTP: LANs (redes locais), WANs (redes de longa distância) e conexões com o

Microsoft ActiveSync®.

Tanto o RDA quanto a replicação são bastante adequados para o transporte sem fio. A compactação é usada

para diminuir o tamanho dos dados transmitidos. A criptografia pode ser usada para proteger dados

confidenciais do usuário durante a transmissão.

O RDA e a replicação oferecem suporte à Autenticação integrada do Windows e à autenticação do SQL

Server durante a conexão com o SQL Server.

Início da página

Introdução à replicação de mesclagem

A replicação do SQL Server Mobile é baseada na replicação de mesclagem do Microsoft SQL Server. A

replicação de mesclagem pode ser implementada por meio de um banco de dados do Microsoft SQL Server

2000 ou do Microsoft SQL Server 2005.

Ela é ideal para aplicativos móveis porque permite que os dados sejam atualizados de modo autônomo e

independente no dispositivo portátil e no servidor. Os dados no dispositivo e no servidor são posteriormente

sincronizados para que seja possível enviar as alterações do cliente ao servidor e receber as novas

alterações do servidor.

Embora a replicação de mesclagem exija mais configuração e manutenção no servidor do que o RDA, ela

• Replicação de mesclagem, uma solução robusta e cheia de recursos que permite a um aplicativo móvel

fazer alterações autônomas em dados replicados e, posteriormente, mesclar essas alterações com um

banco de dados do Microsoft SQL Server e resolver conflitos quando necessário.

• O RDA (acesso remoto a dados) permite que um aplicativo móvel acesse (receber) e envie dados para/de

uma tabela de banco de dados remoto do Microsoft SQL Server e uma tabela de banco de dados local do

SQL Server Mobile. O RDA também pode ser usado para emitir comandos SQL em um servidor que esteja

executando o SQL Server.

Page 2: SQL Server 2005 Mobile Edition

oferece diversas vantagens, entre as quais se destacam as seguintes:

Para obter informações gerais sobre como funciona a replicação de mesclagem, consulte "How Merge

Replication Works" no SQL Server Books Online (em inglês). Para obter informações específicas de

replicação relacionadas a assinantes do SQL Server Mobile, consulte "How Replication Works" e "Replication

Architecture" no SQL Server Mobile Books Online (em inglês).

Início da página

Introdução ao RDA (acesso remoto a dados)

O RDA permite que aplicativos móveis acessem dados de uma tabela de banco de dados remoto do SQL

Server e os armazene em uma tabela de banco de dados local do SQL Server Mobile. O aplicativo poderá,

então, ler e atualizar a tabela do banco de dados local do SQL Server Mobile. Também existe a opção de o

SQL Server Mobile controlar todas as alterações que são feitas na tabela local. Posteriormente, o aplicativo

poderá atualizar os registros alterados da tabela local de volta na tabela do SQL Server.

No SQL Server Mobile, a propagação de dados da tabela do SQL Server para uma tabela local do SQL

Server Mobile é chamada de recepção de dados. A propagação das alterações feitas na tabela local do SQL

Server Mobile de volta para a tabela do SQL Server é chamada de envio de dados.

O RDA é apropriado quando a funcionalidade completa da replicação de mesclagem do SQL Server Mobile,

incluindo a resolução de conflitos, não é necessária.

A decisão entre usar o RDA e a replicação no aplicativo SQL Mobile depende da finalidade, da função, da

escala e dos requisitos do aplicativo móvel. Cada solução de conectividade de dados apresenta suas

próprias vantagens e desvantagens. Essas vantagens e desvantagens são analisadas nas próximas seções.

Início da página

Comparação de recursos

Esta seção faz uma pequena análise das diferenças de suporte de recursos comparáveis entre a replicação e

o RDA. O objetivo desta seção não é descrever cada recurso disponível para replicação ou RDA, mas apenas

mostrar as diferenças dos recursos que podem ser comparados. Por exemplo, existem vários recursos

adicionais de replicação para os quais o RDA não tem nenhuma funcionalidade comparável, por isso eles

não são examinados neste artigo.

Início da página

Capacidade de invasão do servidor

Os vários recursos de replicação de mesclagem do SQL Server Mobile são derivados dos recursos de

replicação de mesclagem do SQL Server. O SQL Server Mobile se beneficia desses recursos mediante a

assinatura de publicações do SQL Server. Criar uma publicação no servidor é uma operação que adiciona

várias tabelas de sistema ao banco de dados que será publicado e uma coluna de sistema de Identificador

Exclusivo a cada tabela de usuário publicada. Esses objetos de sistema são adicionados ao banco de dados

do servidor para o gerenciamento da replicação. O RDA não requer que nenhuma alteração seja feita no

banco de dados do servidor. Como o RDA não é invasivo em relação ao esquema no servidor, sua

funcionalidade fica limitada e não oferece todos os recursos da replicação, mas permite transferir dados

entre o SQL Server e o SQL Server Mobile sem nenhum trabalho de configuração no servidor. Em algumas

• A replicação oferece recursos internos e personalizados de resolução de conflitos.

• A replicação possibilita sincronizar dados de várias tabelas de uma só vez.

• A replicação oferece opções avançadas de replicação de dados, incluindo:

• Seleção de tipos de artigo e filtragem para melhorar o desempenho

• Gerenciamento do intervalo de identidade

• O Microsoft SQL Server inclui muitas ferramentas para:

• Criar e sincronizar assinaturas do SQL Server Mobile

• Monitorar assinantes de cada publicação

Page 3: SQL Server 2005 Mobile Edition

situações, talvez você não tenha permissão para alterar o esquema no sistema back-end. Nesse caso, o

RDA é uma possível opção de conectividade para transferir alterações de dados entre o SQL Server e o SQL

Server Mobile. Outra opção a ser considerada, se você desejar obter a funcionalidade robusta de replicação

e se o esquema do banco de dados back-end não puder ser alterado, é usar um SQL Server de camada

intermediária como servidor de replicação e, depois, transferir os dados para o sistema back-end utilizando

outra tecnologia não-invasiva, como DTS (Data Transformation Services) ou serviços da Web.

Em resumo, a replicação requer pequenas alterações no esquema do banco de dados do servidor, mas

essas alterações permitem usar um conjunto de recursos bastante robusto; já o RDA não exige alterações

no banco de dados do servidor, porém não é uma solução de conectividade completa.

Início da página

Definição do esquema e dos dados

Conforme já mencionamos neste documento, como preparativo para a replicação, você deve criar uma

publicação no servidor. Os dados e o esquema a serem replicados para o Assinante são especificados no

servidor quando a publicação é criada. O esquema é definido automaticamente no cliente quando a

assinatura é criada pela primeira vez. A publicação define as tabelas (artigos) a serem replicadas para o

Assinante, incluindo filtragem de linha (limitando o fluxo de dados através de uma cláusula WHERE) e

filtragem de coluna (limitando as colunas da tabela a ser replicada). Uma publicação pode conter uma ou

várias tabelas. A definição de publicação inteira, incluindo os dados e o esquema das tabelas que estão

sendo replicadas, é criada no banco de dados do SQL Server Mobile por meio de um método de

sincronização.

Quando o RDA é usado, o cliente controla quais dados são transferidos do servidor, inclusive a definição dos

dados (e a filtragem de linha) e a definição do esquema (e a filtragem de coluna). Ao contrário da

replicação, em que várias tabelas podem fazer parte de uma única sincronização, o RDA limita-se a uma

tabela por processo de recepção de dados.

Em resumo, os dados e o esquema a serem criados inicialmente no banco de dados do SQL Server Mobile

são definidos no servidor com a replicação e no cliente com o RDA. Uma publicação de replicação pode

conter várias tabelas, ao passo que o RDA está limitado a uma tabela por download (processo de recepção

de dados do RDA).

Início da página

Alterações no esquema

Quando a replicação é usada, as alterações feitas no esquema (como adicionar ou eliminar colunas e

restrições, ou ainda modificar uma definição de coluna) podem ser replicadas para o Assinante depois que a

assinatura é criada. Quando uma alteração pendente no esquema precisa ser replicada para um Assinante,

primeiro ela é replicada e, depois, as alterações delta resultantes são trocadas entre o Editor e o Assinante.

As alterações feitas no esquema do servidor não necessariamente fazem com que o aplicativo seja

modificado e recompilado; por exemplo, se uma coluna tiver sido adicionada ou removida por não estar

sendo utilizada no aplicativo. Pequenas alterações feitas no esquema do banco de dados de assinaturas são

permitidas. Para obter mais informações, consulte "Replication Limitations" no SQL Server Mobile Books

Online (em inglês).

Quando o RDA é usado, não há suporte para as alterações feitas no esquema do servidor. Dependendo da

alteração no esquema, um envio de dados do cliente para o servidor poderá não ser bem-sucedido. Se o

esquema do servidor for alterado, o cliente deverá eliminar a tabela e receber todos os dados do servidor

novamente. Alterações no esquema do servidor podem fazer com que você tenha de modificar e recompilar

seu aplicativo. Pequenas alterações no esquema do cliente são permitidas. Para obter mais informações,

consulte "Remote Data Access (RDA) Limitations" no SQL Server Mobile Books Online (em inglês).

Em resumo, quando a replicação é usada, as alterações que são feitas no esquema do servidor são

permitidas, não havendo perda de dados do Assinante. Entretanto, não há suporte para as alterações no

esquema do servidor quando o RDA é utilizado, e tais alterações podem resultar em perda de dados no

cliente. Pequenas alterações no esquema são permitidas nas tabelas de conectividade do SQL Server Mobile

tanto para a replicação quanto para o RDA.

Colunas de identidade

Page 4: SQL Server 2005 Mobile Edition

Em muitos aplicativos, convém usar um número incremental para gerenciar registros inseridos em um

banco de dados cliente. Por exemplo, se o usuário estiver inserindo novos pedidos em uma tabela, convém

atribuir um número incremental automaticamente para cada pedido. Quando um sistema como esse é

utilizado, não deve haver conflitos de números entre os clientes. A replicação oferece suporte ao

gerenciamento automático do intervalo de identidade para as colunas integer e bigint de publicações e

assinaturas. O uso do gerenciamento automático do intervalo de identidade assegura que não haverá

conflitos de linhas, independentemente do número de clientes que você tiver. Para obter mais informações

sobre como utilizar esse recurso de replicação, consulte "Replicating Identity Columns" no SQL Server

Books Online (em inglês).

Quando o RDA é utilizado, não há suporte para o gerenciamento automático de colunas de identidade. Para

usar essa propriedade de tipo de dados, você deve gerenciar os valores do sistema inteiro manualmente.

Restrições e índices

Como a replicação oferece suporte a várias tabelas na definição da publicação, os índices e as restrições de

integridade referencial são automaticamente replicados do servidor para o banco de dados de assinaturas.

Pelo fato de o RDA oferecer suporte apenas ao recebimento de uma única tabela por vez, as restrições de

integridade referencial não são transferidas, mas os índices podem ser transferidos. Outras definições de

esquema devem ser feitas no cliente.

Troca de alterações de dados controladas

Se você usar a replicação, objetos de sistema serão criados no banco de dados de publicação quando a

publicação for criada e no banco de dados do SQL Mobile quando a assinatura for criada. Esses objetos

possibilitam um modelo de troca de dados bastante robusto entre o SQL Server e o SQL Server Mobile. A

replicação tem como objetivo controlar as alterações nos bancos de dados de publicação e de assinaturas.

Existem dois níveis de controle do fluxo de dados entre o Editor e o Assinante:

Para obter mais informações sobre níveis de controle, consulte "Using Row-Level and Column-Level

Tracking" no SQL Server Mobile Books Online (em inglês) e "Row-Level Tracking and Column-Level

Tracking" no SQL Server Books Online (em inglês).

O RDA usa objetos de sistema no banco de dados do SQL Server Mobile para controlar as alterações feitas

nos dados. Com essas informações, o RDA só envia as alterações, especificamente as linhas alteradas, do

SQL Server Mobile para o SQL Server. Para que o SQL Server Mobile recupere as alterações de dados do

SQL Server, é necessária uma atualização completa dos dados do cliente.

Em resumo, a replicação oferece suporte à troca de dados bidirecional das alterações delta, pois as

alterações nos dados são controladas no Editor e no Assinante. O RDA oferece suporte apenas à troca de

dados de alterações delta do SQL Server Mobile para o SQL Server e exige uma atualização completa dos

dados para que sejam recebidas as alterações do SQL Server para o SQL Server Mobile, pois as alterações

nos dados são controladas apenas no banco de dados do SQL Mobile.

Início da página

Tipos de tabelas que podem ser propagadas

Ao adicionar uma tabela a uma publicação de replicação, você pode definir propriedades na tabela para

controlar o fluxo de dados. Além de usar as propriedades da tabela para controlar o fluxo de dados entre o

Editor e o Assinante, você pode usá-las para melhorar o desempenho da sincronização. Para obter mais

informações, consulte "Parameterized Row Filters" e "Optimizing Merge Replication Synchronization

Performance with Download-Only Articles" no SQL Server Books Online (em inglês).

• O controle no nível de linha em uma tabela implica que a linha inteira seja transferida durante a

sincronização. Esse nível de controle pode ser mais dispendioso para a transferência de dados,

dependendo da velocidade da conexão, mas requer que menos informações de controle sejam

armazenadas no Editor e no Assinante.

• O controle no nível de coluna diminui o volume de dados transferidos porque controla as alterações no

nível de coluna e de linha e permite que somente os dados de colunas alterados sejam transferidos do

Assinante para o Editor. O Editor sempre enviará toda a linha alterada para o Assinante porque não tem

certeza de que a linha realmente já existe no Assinante.

Page 5: SQL Server 2005 Mobile Edition

O RDA não oferece suporte a nenhuma propriedade de tabela usada para controlar o fluxo de dados ou

melhorar o desempenho. Os dados a serem enviados para o cliente são controlados somente pelo código de

aplicativo no cliente.

Início da página

Conflitos

Quando a replicação é usada como solução de conectividade, os conflitos em potencial incluem dados

alterados por usuários diferentes e linhas que não foram aplicadas devido a um erro. A replicação oferece

suporte integral à resolução e ao gerenciamento de conflitos no servidor, incluindo resolvedores de conflitos

internos e personalizados. Para obter mais informações, consulte "Replication Conflict Detection and

Resolution" no SQL Server Mobile Books Online (em inglês) e "Merge Replication Conflict Detection and

Resolution" no SQL Server Books Online (em inglês).

Quando o RDA é usado, os conflitos só incluem linhas que não foram aplicadas devido a um erro. O RDA

não detecta se um usuário diferente alterou os dados. Por isso, ele sempre tem o comportamento "a última

gravação prevalece" quando envia dados ao servidor. Os conflitos não são gerenciados, mas podem ser

reportados em uma tabela de erros no cliente. Não há suporte para resolvedores de conflitos, uma vez que

os conflitos não são resolvidos.

Início da página

Ferramentas (interface do usuário)

O SQL Server Management Studio inclui um abrangente conjunto de ferramentas que podem ser usadas

para criar e gerenciar assinaturas, inclusive ferramentas de monitoramento utilizadas para gerenciar várias

assinaturas e supervisionar os tempos de sincronização e desempenho.

O RDA só pode ser usado por meio de código; não há ferramentas disponíveis no SQL Server ou no SQL

Server Mobile para enviar e receber alterações ou para monitorar clientes.

Início da página

Conclusão

Neste artigo, você conheceu as principais diferenças entre os recursos mais importantes da replicação de

mesclagem e do RDA. Com essas informações, você pode fazer a escolha certa quanto à solução de

conectividade mais adequada para as suas necessidades de aplicativo do SQL Server Mobile. Por exemplo,

seu aplicativo pode se beneficiar da simplicidade do RDA ou da funcionalidade robusta da replicação de

mesclagem. Em alguns casos, você pode combinar os recursos do RDA e da replicação de mesclagem em

uma única solução para dados não conflitantes no servidor.

Para obter mais informações

Página do produto SQL Server

© 2005 Microsoft Corporation. Todos os direitos reservados. Termos de uso.

Início da página

Fale Conosco

©2007 Microsoft Corporation. Todos os direitos reservados. Nota Legal | Marcas comerciais | Política de Privacidade