Upload
milton-milto
View
9
Download
0
Embed Size (px)
DESCRIPTION
SQL Server 2005 Mobile Edition
Citation preview
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.
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
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
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.
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