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.

184 CAPÍTULO 11. TRABALHO RELACIONADO<br />

O terceiro tipo <strong>de</strong> aproximação consiste <strong>em</strong> permitir a <strong>de</strong>finição <strong>de</strong> funções que unificam as modifi-<br />

cações concorrentes com base no estado dos objectos. Essas funções po<strong>de</strong>m usar apenas o estado actual<br />

do objecto nas réplicas a sincronizar [87, 66, 115] ou po<strong>de</strong>m usar versões anteriores [24]. A utilização <strong>de</strong><br />

versões anteriores permite (tentar) inferir as modificações executadas <strong>em</strong> cada uma das réplicas (e usar<br />

essa informação no processo <strong>de</strong> reconciliação), mas requer a manutenção da história das modificações.<br />

A r<strong>em</strong>oção <strong>de</strong> um objecto é tratada <strong>de</strong> forma especial nestas aproximações. Assim, para cada objecto<br />

r<strong>em</strong>ovido, mantém-se informação sobre a r<strong>em</strong>oção (<strong>de</strong>ath certificate [38]) 5 .<br />

11.1.9.2 Utilização das operações executadas<br />

Nesta subsecção abordam-se as técnicas <strong>de</strong> reconciliação baseadas na utilização das operações executa-<br />

das. Estas técnicas <strong>de</strong> reconciliação <strong>de</strong>terminam, <strong>em</strong> cada réplica, o modo como se executam as opera-<br />

ções recebidas directamente dos utilizadores e das outras réplicas.<br />

Neste tipo <strong>de</strong> soluções, a aproximação base consiste <strong>em</strong> executar todas as operações por uma <strong>de</strong>ter-<br />

minada or<strong>de</strong>m nas várias réplicas (por ex<strong>em</strong>plo, or<strong>de</strong>m total, or<strong>de</strong>m causal ou s<strong>em</strong> or<strong>de</strong>m). Para tal, cada<br />

operação é, geralmente, i<strong>de</strong>ntificada por um relógio escalar ou por um vector-versão. Na sua versão mais<br />

simples, o algoritmo <strong>de</strong> reconciliação executa <strong>em</strong> cada réplica e <strong>de</strong>termina quais as operações que, <strong>em</strong><br />

cada momento, po<strong>de</strong>m ser executadas respeitando a or<strong>de</strong>m <strong>de</strong>finida.<br />

Na secção 4.1 já se discutiram as técnicas <strong>de</strong> impl<strong>em</strong>entação dos diferentes tipos <strong>de</strong> or<strong>de</strong>nação usando<br />

informação sintáctica (relógios escalares ou vectores-versão) e as suas proprieda<strong>de</strong>s. Relativamente à or-<br />

<strong>de</strong>m total, exist<strong>em</strong> várias aproximações possíveis: utilizar uma réplica primária responsável por or<strong>de</strong>nar<br />

as operações [161, 143]; usar o relógio associado a cada operação para or<strong>de</strong>nar a operação e informa-<br />

ção sobre o estado das outras réplicas para garantir a estabilida<strong>de</strong> da or<strong>de</strong>m [57]; utilizar protocolos <strong>de</strong><br />

eleição para <strong>de</strong>terminar, <strong>em</strong> passos sucessivos, quais as operações a executar <strong>em</strong> cada momento [82].<br />

Relativamente às outras or<strong>de</strong>ns, cada réplica po<strong>de</strong> <strong>de</strong>cidir in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente quais as operações que<br />

po<strong>de</strong> executar usando apenas a informação associada a cada operação.<br />

A execução simples <strong>de</strong> todas as operações por uma <strong>de</strong>terminada or<strong>de</strong>m t<strong>em</strong> várias limitações.<br />

Primeiro, po<strong>de</strong>m existir situações <strong>em</strong> que ainda não é possível <strong>de</strong>terminar a or<strong>de</strong>m final <strong>de</strong> uma<br />

operação. Neste caso, po<strong>de</strong> adoptar-se uma aproximação pessimista <strong>em</strong> que a operação não é executada<br />

enquanto não for possível <strong>de</strong>terminar a sua or<strong>de</strong>m. Assim, o estado do objecto po<strong>de</strong> não reflectir todas<br />

as operações conhecidas.<br />

Uma segunda alternativa consiste <strong>em</strong> adoptar uma aproximação optimista e executar a operação.<br />

Neste caso, o estado do objecto é provisório porque a or<strong>de</strong>m <strong>de</strong> execução po<strong>de</strong> ser incorrecta. Se a<br />

5 Note-se que r<strong>em</strong>over apenas o objecto na réplica a leva a ambiguida<strong>de</strong> aquando da sincronização com uma réplica b, sendo<br />

impossível <strong>de</strong>terminar se o objecto foi criado <strong>em</strong> b ou r<strong>em</strong>ovido <strong>em</strong> a.

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

Saved successfully!

Ooh no, something went wrong!