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.

72 CAPÍTULO 5. AVALIAÇÃO DO MODELO DO SISTEMA DOORS<br />

nenhuma informação é perdida. Segundo, quando um utilizador move um el<strong>em</strong>ento que é r<strong>em</strong>ovido<br />

concorrent<strong>em</strong>ente. Neste caso, a referência é r<strong>em</strong>ovida 2 , pelo que o subobjecto não reflecte o efeito da<br />

operação que move a referência. Esta situação é s<strong>em</strong>elhante à r<strong>em</strong>oção da referência <strong>de</strong> um el<strong>em</strong>ento bá-<br />

sico concorrent<strong>em</strong>ente com a sua modificação: a modificação per<strong>de</strong>-se porque o subobjecto é r<strong>em</strong>ovido.<br />

Para diminuir a probabilida<strong>de</strong> <strong>de</strong>stas situações, o editor força a r<strong>em</strong>oção <strong>de</strong> um el<strong>em</strong>ento <strong>em</strong> dois<br />

passos que <strong>de</strong>v<strong>em</strong> ser executados explicitamente pelos utilizadores. Num primeiro passo, o utilizador<br />

po<strong>de</strong> pré-r<strong>em</strong>over um el<strong>em</strong>ento — a operação <strong>de</strong> pré-r<strong>em</strong>oção é submetida. No segundo passo, o utili-<br />

zador po<strong>de</strong> r<strong>em</strong>over um subobjecto pré-r<strong>em</strong>ovido — a operação que r<strong>em</strong>ove a referência do el<strong>em</strong>ento é<br />

submetida na lista <strong>de</strong> referências respectiva. Relativamente a subobjectos pré-r<strong>em</strong>ovidos, o editor apenas<br />

permite executar duas operações: r<strong>em</strong>over e restaurar.<br />

O coobjecto documento estruturado base é um coobjecto comum baseado na cápsula simples (os<br />

componentes utilizados estão <strong>de</strong>scritos na secção 3.3).<br />

No servidor, é necessário usar um componente <strong>de</strong> reconciliação optimista que execute as operações<br />

por or<strong>de</strong>m total (neste caso, utiliza-se o componente baseado na verificação da estabilida<strong>de</strong> da or<strong>de</strong>m),<br />

<strong>de</strong> forma a garantir a convergência das várias réplicas e permitir a observação do efeito <strong>de</strong> todas as<br />

operações conhecidas (ainda que <strong>de</strong> forma provisória). Relativamente aos componentes <strong>de</strong> adaptação e<br />

registo usam-se as impl<strong>em</strong>entações mais simples para o servidor.<br />

No cliente, usam-se as impl<strong>em</strong>entações mais simples para o componente <strong>de</strong> reconciliação e <strong>de</strong> re-<br />

gisto. Na execução normal, usa-se o componente <strong>de</strong> adaptação que executa as operações localmente.<br />

Como se <strong>de</strong>talha mais tar<strong>de</strong>, durante a execução síncrona usa-se um componente <strong>de</strong> adaptação especial<br />

(<strong>de</strong>scrito na secção 4.4). Para permitir a substituição do componente <strong>de</strong> adaptação numa instância do<br />

coobjecto, é necessário indicar a valida<strong>de</strong> da substituição numa operação <strong>de</strong>finida na cápsula do coob-<br />

jecto — para tal, criou-se uma nova cápsula <strong>de</strong>rivada da cápsula simples a usar no coobjecto documento<br />

estruturado.<br />

Relativamente à informação <strong>de</strong> awareness, usa-se o componente que mantém essa informação como<br />

uma lista das mensagens produzidas pela execução das operações. As operações <strong>de</strong>finidas nos subob-<br />

jectos produz<strong>em</strong> mensagens simples indicando quais as alterações executadas. O editor permite aos<br />

utilizadores consultar a lista <strong>de</strong> modificações <strong>de</strong> forma a tomar<strong>em</strong> conhecimento da evolução do docu-<br />

mento 3 .<br />

Para criar um tipo <strong>de</strong> documento específico é necessário <strong>de</strong>finir quais os tipos <strong>de</strong> el<strong>em</strong>entos básicos<br />

permitidos e a sua possível configuração.<br />

2 Existe uma excepção no caso <strong>de</strong> se mover a referência para outro subobjecto e essa operação ser executada primeiro.<br />

3 Esta informação po<strong>de</strong> ser tratada pelo editor <strong>de</strong> forma diferente — por ex<strong>em</strong>plo, po<strong>de</strong> usar cores diferentes para representar<br />

os el<strong>em</strong>entos que foram modificados recent<strong>em</strong>ente (a esta forma <strong>de</strong> apresentar a informação <strong>de</strong> awareness é usual chamar-se<br />

consciência partilhada (shared feedback) [43]).

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

Saved successfully!

Ooh no, something went wrong!