11.04.2013 Views

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

218 APÊNDICE A. DOORS<br />

processo <strong>de</strong> sincronização numa operação (asksync,...) ou (sync,...) ou é obtido a partir da informa-<br />

ção sobre as operações conhecidas noutros servidores; (3) a informação sobre as operações conhecidas<br />

noutros servidores é igual — quando a informação do parceiro não foi obtida no <strong>de</strong>curso do processo <strong>de</strong><br />

sincronização, consi<strong>de</strong>ra-se que a informação nos dois servidores é igual, se pela informação conhecida<br />

localmente se souber que todos os servidores conhec<strong>em</strong> todas as operações conhecidas localmente. Um<br />

servidor a efectuar uma sincronização completa omite igualmente as operações (asksync,...), se as duas<br />

últimas condições enunciadas anteriormente se verificar<strong>em</strong> (caso o parceiro conheça novas operações,<br />

ele enviará a operação (asksync,...) relativa a esse coobjecto). Esta optimização permite que durante as<br />

sessões <strong>de</strong> sincronização não se troque informação relativa aos coobjectos estáveis, i.e., aos coobjectos<br />

cujas últimas modificações já se encontram diss<strong>em</strong>inadas.<br />

A terceira diferença consiste na omissão dos pormenores relativos ao mecanismo <strong>de</strong> diss<strong>em</strong>ina-<br />

ção apresentado anteriormente. Assim, quando se conclui um processo <strong>de</strong> diss<strong>em</strong>inação completo<br />

(i.e, f ull é verda<strong>de</strong>iro), o servidor j, submete para cada pedido <strong>de</strong> diss<strong>em</strong>inação pen<strong>de</strong>nte a operação<br />

diss<strong>em</strong>inated(uid, j,vi), como se tinha referido. Os valores <strong>de</strong> vi a ser<strong>em</strong> usados são enviados por i a j<br />

no início do protocolo <strong>de</strong> sincronização e mantidos por i até ao fim do protocolo.<br />

Finalmente, omitiram-se os <strong>de</strong>talhes relativos ao restauro <strong>de</strong> coobjectos.<br />

A.2.3 Protocolo <strong>de</strong> propagação epidémica unilateral<br />

No protocolo <strong>de</strong> propagação epidémica unilateral, um servidor, i, envia para outro servidor, j, a infor-<br />

mação que permite a j sincronizar o estado <strong>de</strong> j com o estado <strong>de</strong> i (i.e., o servidor j <strong>de</strong>ve ficar a conhecer<br />

todas as operações conhecidas <strong>em</strong> i). Na figura A.4 apresentam-se as funções usadas no protocolo. O<br />

servidor i executa a função uniE pi<strong>de</strong>mic para enviar as operações que pensa ser<strong>em</strong> <strong>de</strong>sconhecidas <strong>em</strong><br />

j. O servidor j executa a função stepBiE pi<strong>de</strong>mic usada no protocolo bilateral, mas não respon<strong>de</strong> ao<br />

servidor i. Um aspecto merece atenção neste protocolo: a função unknownOb j é usada para estimar se o<br />

servidor a que se <strong>de</strong>stina a comunicação conhece o coobjecto que se está a consi<strong>de</strong>rar (caso não conheça<br />

é necessário enviar o estado do coobjecto <strong>em</strong> vez das operações para sincronizar o estado). A função<br />

apresentada na figura A.4 é muito simples e po<strong>de</strong>ria ser melhorada com o conhecimento sobre o envio<br />

do estado dos novos coobjectos <strong>em</strong> anteriores sessões <strong>de</strong> sincronização unilateral.<br />

A.2.4 Sincronização epidémica durante as mudanças na filiação<br />

O mecanismo <strong>de</strong> entrada e saída do grupo <strong>de</strong> replicadores exige que o servidor que entra ou sai do grupo<br />

<strong>de</strong> replicadores comunique apenas com outro servidor. Enquanto as operações <strong>de</strong> inserção/r<strong>em</strong>oção <strong>de</strong><br />

el<strong>em</strong>entos no grupo <strong>de</strong> replicadores não são propagadas para todos os replicadores do volume (durante as<br />

sessões <strong>de</strong> propagação epidémica), os servidores vão ter uma visão incompleta ou incorrecta dos actuais

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!