5 NOU 2004:7 Statens
7.3 Viktige tverrgående hensyn som
A sincronização em ambientes móveis pode ser denida como o ato de estabelecer equivalência entre duas coleções de dados, entre cliente e servidor, após a ocorrência de alteração nos registros armazenados. Depois da sincronização de dados cada elemento de dados em uma coleção é mapeado por um elemento de dados em outra, sendo que seus dados são equivalentes [35]. Para que essa sincronização ocorra é necessário a replicação de dados.
2.5.1 Replicação de Dados
A replicação é o processo no qual transações executadas em um banco de dados são propagadas para um ou mais bancos de dados de forma serial, ou seja, signica que as transações, assim como todas as operações, são replicadas na mesma ordem na qual elas foram solicitadas. Caso isto não aconteça, podem ocorrer inconsistências entre a unidade móvel e o servidor em um ambiente móvel. As operações que serão replicadas das unidades móveis podem ser armazenadas em um banco de dados local até que sejam propagadas para o servidor, no momento da sincronização, pois algumas vezes a conexão se torna impossível [36] [27].
A replicação é necessária para sincronizar os dados e as operações no banco de dados. Essa replicação pode ser parcial ou total. Na replicação parcial apenas uma parte dos dados de um banco de dados são replicados para outros bancos, já na replicação total todos os dados são replicados de um banco para outro [27] [18].
Com a replicação total, se pelo menos uma das cópias estiver disponível, a conabi- lidade aumenta, uma vez que o usuário não depende apenas dos dados disponibilizados
em uma única localidade. No caso de acontecer algum problema no sistema, a réplica dos dados é solicitada pelo usuário [27].
2.5.2 Tipos de Sincronização
Segundo Palazzo [37], os tipos de sincronização são classicados em one-way e two-way. Cada um destes tipos é descrito a seguir.
One-Way
A sincronização one-way é um processo de transferência de atualizações de dados que ocorre em sentido único. Este tipo de sincronização pode ser aplicada partindo-se tanto do cliente móvel para o servidor, quanto do servidor para o cliente móvel. O processo ocorre da seguinte forma: um elemento de rede estabelece a conexão entre a unidade móvel e o servidor, submetendo todas as atualizações efetuadas na unidade móvel, de maneira sincronizada e pré-denida, para o servidor ou vice-versa.
Quando se parte do cliente móvel, todas as alterações são submetidas ao servidor xo não retornando nenhuma conrmação ou ação por parte do servidor xo, cabendo ao ser- vidor gerenciar e resolver conitos. Partindo-se do servidor, a sincronização disponibiliza na unidade móvel os dados atualizados no banco consolidado.
Two-Way
A transmissão das modicações ocorre nos dois sentidos, tanto do cliente como do servidor. A iniciativa neste caso é por parte do cliente móvel que submete os novos dados ou os atualizados para o servidor. O servidor identica e trata os conitos existentes retornando ao cliente os dados corretos. No nal, o cliente e o servidor possuem os mesmos dados.
2.5.3 Protocolos de Sincronização
Um protocolo de sincronização dene o uxo de trabalho para a comunicação durante uma seção de sincronização de dados quando o dispositivo móvel é conectado à rede xa. Ele deve dar suporte a identicação de registros, comandos de protocolo comuns para sincronização de dados local e de rede, e pode apoiar a identicação e resolução de conitos de sincronização [38].
Existem diversos produtos de sincronização de dados que utilizam protocolos de sin- cronização que funcionam apenas para transportes especícos implementados para alguns dispositivos. A proliferação de tecnologias de sincronização não-interoperáveis diculta as tarefas de usuários, fabricantes de dispositivos, provedores de serviços e desenvolvedores de aplicações. A falta de um protocolo de sincronização de dados comum pode impedir o crescimento do uso de dispositivos móveis, restringindo a habilidade de usuários para ter acesso a dados e limitando a entrega de operações realizadas sobre dados móveis [38].
Aplicações que reconciliam e solucionam mudanças em dados entre duas fontes dis- tintas são amplamente utilizadas por empresas de desenvolvimento de softwares para ambientes móveis. Porém, a maioria dessas aplicações consistem em soluções proprietá- rias múltiplas, que não satisfazem todo o espectro de funcionalidades e o suporte requerido
aos dispositivos pela maioria das organizações. Muitas organizações não estão dispostas a desenvolver múltiplos canais e a implementar várias soluções de sincronização para permi- tir o acesso de múltiplos dispositivos a um único banco de dados devido à complexidade e o custo de manutenção requerido [38]. Por isso, deseja-se protocolos de sincronização que suportam diversos tipos de transportes implementados para vários tipos de dispositivos de diferentes marcas.
Um protocolo necessita ser interoperável, sincronizar dados da rede com qualquer dis- positivo móvel e sincronizar dados de um dispositivo móvel com qualquer rede. Isto inclui um espaço de mercado onde os dispositivos móveis têm recursos reduzidos de processa- mento e de memória, e são empregados servidores de rede capazes de executar uma lógica de sincronização sosticada.
2.5.3.1 Protocolo de Sincronização Interoperável
Devido às diferenças estruturais em um sistema móvel e a imprevisibilidade de movi- mentação dos usuários ao longo das diferentes redes sem o, o ambiente computacional passa a ser altamente dinâmico. Nesse contexto, a transmissão adequada de certas in- formações, como grácos e guras, exige uma capacidade que pode ser inviável para o sistema gerir, pois um ambiente computacional dinâmico requer um projeto de aplicações com capacidade de interoperabilidade ao longo de diferentes ambientes de acesso sem o. Pontos chaves no projeto de tais aplicações são: capacidade de identicação das condições do ambiente, adaptabilidade do modo de apresentação das informações e continuidade da prestação do serviço ao longo das mudanças entre diferentes redes sem o.
Um protocolo de sincronização comum tem que trabalhar sobre as redes usadas por dispositivos móveis. As várias redes wireless comumente usadas por dispositivos móveis exigem muito de um protocolo, pois compartilham características comuns como:
• Alta latência de rede: é a demora introduzida quando um pacote é momentanea- mente armazenado, analisado e então remetido de um ponto a outro da rede [39]. Redes wireless, com alta latência requerem um protocolo de sincronização robusto. • Largura de banda limitada: para minimizar requerimentos de largura de banda e as demandas de processo associadas, o protocolo deve permitir alternativas como técnicas de codicação binárias para os dados e os comandos de sincronização. O Wap Binary eXtensible Markup Language (WBXML), padrão adotado pelo Wireless Application Protocol 6 (WAP6) e submetido ao Word Wide Web Consortium (W3C) faz uso da técnica de codicação binária para ambientes de largura de banda limitada [39].
• Custo de pacotes relativamente alto: o protocolo tem que minimizar o número de iterações de request-response entre o dispositivo e os dados da rede. Um ótimo protocolo geraria um único par de request-response de mensagens. Nesse modelo, um pedido de um dispositivo móvel poderia conter todas as atualizações para seus dados locais. A mensagem de resposta proveria as atualizações, com conitos já identicados e possivelmente resolvidos.
• Baixa conabilidade de dados e conectividade: o protocolo tem que suportar desco- nexões inesperadas durante o procedimento de sincronização. Mesmo na ocorrência
de uma desconexão, deve assegurar que os dados do dispositivo e do repositório da rede permaneçam consistentes, e continuar a operação quando a conexão for restabelecida.
Com a utilização de um protocolo interoperável, um usuário pode ter acesso e mani- pular o mesmo conjunto de dados de dispositivos diferentes e dispositivos móveis podem suportar mais tipos de dados, como por exemplo, dados geográcos. Para que isto seja possível, o protocolo precisa das seguintes características:
• Operar efetivamente sobre redes sem o; • Suportar diferentes protocolos de transporte; • Tolerar dados arbitrários de rede;
• Possibilitar o acesso a dados por diversas aplicações; • Suportar as limitações de recurso do dispositivo móvel;
• Assistir implementações para internet e tecnologias de rede existentes. 2.5.3.2 O Protocolo SyncML
O SyncML é um protocolo padrão de sincronização de dados, independente de plata- forma, dispositivo e rede. Ele é baseado em tecnologia eXtended Markup Language (XML) e mantido pela Open Mobile Alliance (OMA), uma aliança entre várias empresas para a criação de um protocolo comum para a sincronização de dados [40] [41].
Pode ser considerada como uma linguagem padrão para sincronizar diferentes disposi- tivos e aplicações sobre qualquer rede. Com o SyncML qualquer tipo de informação pode ser sincronizada para manter a informação consistente e atualizada.
O protocolo SyncML é baseado no modelo de comunicação móvel cliente - servidor e é dividido em: protocolo de representação e protocolo de sincronização. O protocolo de representação tem como foco a organização dos conteúdos dos dados da sincronização. Dene o formato dos dados, faz a restauração (refresh), a deleção (delete), a substituição (replace), o arquivamento (archive) e etc. O protocolo de sincronização tem como foco a administração das operações de sincronização. Dene uxo de mensagens entre um SyncML cliente e um servidor durante a sessão de sincronização de dados [40] [41].
As vantagens do protocolo SyncML são [40] [41] :
• Por ser baseado no XML, fornece um formato padrão para a descrição de dados estruturados o que gera resultados mais signicativos para consultas em diferentes plataformas;
• Possui autenticação entre um cliente SyncML e um servidor SyncML; • Suporta uma variedade de protocolos de transporte;
• Suporta uma variedade de base de dados;
• Funciona bem em redes com pouca banda porque os dados que serão sincronizados passam por uma técnica de codicação chamada WBXML gerando um formato
binário do XML que possui um tamanho bem menor do que o original. Além disso, o protocolo possui um baixo número de interações pedido-resposta entre o cliente SyncML e o servidor SyncML para realizar a sincronização;
• É construído sob uma tecnologia de internet e web existentes; • É um protocolo de sincronização livre.
Há sete tipos diferentes de sincronização denidas pelo SyncML, dependendo de como é inicializada pelo cliente ou servidor e a transferência de informação entre eles [40] [41]: 1. Two-Way Sync: este tipo de sincronização é o mais comum e largamente usado onde o servidor e o cliente trocam somente os dados modicados no nal. Cliente é sempre esperado para começar a sincronização mandando as modicações primeiro. 2. Slow Sync: este tipo de sincronização pode ser considerada como uma forma de sincronização two-way com uma exceção de que o cliente envia o banco de dados inteiro ao invés de somente as modicações, pedindo ao servidor para preparar a análise da sincronização para os dados entre cliente e o servidor. O servidor retorna sempre as modicações requeridas pelo cliente.
3. One-Way Sync from Client only: somente durante este tipo de sincronização, o cliente envia todas as modicações para o servidor, mas não espera nenhuma modi- cação do servidor.
4. Refresh Sync from Client only: este é um tipo especial de One-Way Sync from Client, onde o cliente exporta todos os dados do banco de dados para o servidor. É esperado do servidor repor os dados existentes com o banco de dados recebido do cliente.
5. One-Way Sync from Server only: este tipo de sincronização envia todos os dados modicados do servidor para o cliente e não espera qualquer modicação do cliente. 6. Refresh Sync from Server only: este é um tipo especial de sincronização One-Way Sync from Server, onde o servidor exporta todos os dados do banco de dados para o cliente. É esperado do cliente repor os dados existentes com o banco de dados recebido do servidor.
7. Server Alert Sync: o servidor alerta o cliente para preparar uma sincronização. Ele também diz ao cliente qual dos tipos de sincronização acima será usada entre eles.