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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

11.1. REPLICAÇÃO 187<br />

execução das operações por or<strong>de</strong>m diferente nas várias réplicas.<br />

Nenhuma das soluções propostas é óptima <strong>em</strong> todas as situações. Assim, no sist<strong>em</strong>a DOORS, o<br />

framework <strong>de</strong> componentes permite reutilizar diferentes estratégias <strong>de</strong> reconciliação. Cada coobjecto<br />

po<strong>de</strong> seleccionar a solução mais a<strong>de</strong>quada, i.e., aquela que permite impl<strong>em</strong>entar a estratégia <strong>de</strong> resolução<br />

<strong>de</strong> conflitos pretendida <strong>de</strong> forma mais simples.<br />

In<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente da estratégia <strong>de</strong> reconciliação escolhida no sist<strong>em</strong>a DOORS ou da integração do<br />

sist<strong>em</strong>a SqlIceCube no sist<strong>em</strong>a Mobisnap, a execução final das operações no(s) servidor(es) permite que<br />

as operações li<strong>de</strong>m <strong>de</strong> forma específica com os probl<strong>em</strong>as da execução in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> operações, por<br />

ex<strong>em</strong>plo, <strong>de</strong>finindo regras <strong>de</strong> <strong>de</strong>tecção e resolução <strong>de</strong> conflitos.<br />

11.1.10 Prevenção <strong>de</strong> conflitos<br />

A replicação optimista po<strong>de</strong> levar à submissão concorrente <strong>de</strong> modificações que actuam sobre os mesmos<br />

objectos. Nas subsecções anteriores apresentaram-se técnicas <strong>de</strong> reconciliação que permit<strong>em</strong> unificar<br />

as modificações executadas concorrent<strong>em</strong>ente. Devido à possibilida<strong>de</strong> <strong>de</strong> as modificações produzidas<br />

ser<strong>em</strong> conflituantes, apenas é possível <strong>de</strong>terminar o resultado final <strong>de</strong> uma operação após o processo <strong>de</strong><br />

reconciliação. Nesta secção abordam-se técnicas que permit<strong>em</strong> evitar os conflitos e comparam-se estas<br />

técnicas com as impl<strong>em</strong>entadas no sist<strong>em</strong>a Mobisnap.<br />

Os trincos (locks) [60] são a técnica tradicional para evitar conflitos, permitindo que apenas um<br />

utilizador aceda a um objecto <strong>em</strong> cada momento. No entanto, num ambiente <strong>de</strong> <strong>computação</strong> <strong>móvel</strong>, no<br />

qual os dispositivos móveis po<strong>de</strong>m permanecer <strong>de</strong>sconectados durante longos períodos <strong>de</strong> t<strong>em</strong>po, esta<br />

técnica po<strong>de</strong> impor restrições inaceitáveis à concorrência <strong>em</strong> objectos <strong>partilhados</strong> por vários utilizadores:<br />

um dispositivo <strong>de</strong>sconectado impe<strong>de</strong> qualquer acesso a um objecto para o qual possua um trinco.<br />

As versões fracas <strong>de</strong> trincos (por ex<strong>em</strong>plo, tickle locks [64], trincos optimistas [61], trincos probabi-<br />

lísticos [63]) permit<strong>em</strong> que se aceda a um objecto s<strong>em</strong> possuir uma garantia <strong>de</strong> exclusivida<strong>de</strong> <strong>de</strong> acesso.<br />

Estas técnicas optimistas foram propostas para <strong>ambientes</strong> com boa conectivida<strong>de</strong>, nos quais fornec<strong>em</strong><br />

uma razoável probabilida<strong>de</strong> <strong>de</strong> acesso exclusivo. No entanto, <strong>em</strong> situações <strong>de</strong> <strong>de</strong>sconexão, as garantias<br />

que po<strong>de</strong>m oferecer são praticamente nulas.<br />

No sist<strong>em</strong>a Prospero [42], esten<strong>de</strong>u-se a noção <strong>de</strong> trinco <strong>de</strong> forma a restringir a divergência entre<br />

vários fluxos <strong>de</strong> activida<strong>de</strong>. Para tal, os utilizadores especificam uma promessa relativa às operações<br />

que executam e obtém garantias relativas ao estado dos objectos. Estas garantias po<strong>de</strong>m ser usadas para<br />

garantir a inexistência <strong>de</strong> conflitos. Ao contrário dos trincos, as promessas e garantias são especificadas<br />

(indirectamente) <strong>em</strong> termos da execução <strong>de</strong> uma dada operação. Por ex<strong>em</strong>plo, a promessa <strong>de</strong> não modifi-<br />

car a estrutura <strong>de</strong> um documento está associada à não execução da operação <strong>de</strong> modificação da estrutura<br />

do documento. Assim, o utilizador po<strong>de</strong> obter a garantia da manutenção da estrutura do documento se

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

Saved successfully!

Ooh no, something went wrong!