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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.1. EDITOR MULTI-SÍNCRONO DE DOCUMENTOS 75<br />
Figura 5.4: Cópias <strong>de</strong> substituição na edição <strong>de</strong> um documento estruturado.<br />
tados <strong>em</strong> cor vermelha na janela que apresenta a estrutura do documento. Desta forma, os utilizadores<br />
sab<strong>em</strong> que não estão a observar uma versão completa do el<strong>em</strong>ento.<br />
5.1.4 Edição assíncrona<br />
O editor multi-síncrono permite a edição assíncrona <strong>de</strong> um documento. Assim, cada utilizador po<strong>de</strong><br />
modificar um documento estruturado <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte. O coobjecto documento estruturado base<br />
<strong>de</strong>fine a estratégia <strong>de</strong> reconciliação que se executa para tratar as modificações executadas concorrente-<br />
mente — como se <strong>de</strong>screveu, esta estratégia combina a utilização do componente <strong>de</strong> reconciliação com<br />
o código das operações <strong>de</strong>finidas nos subobjectos.<br />
5.1.5 Edição síncrona<br />
O editor multi-síncrono permite, ainda, que um grupo <strong>de</strong> utilizadores participe numa sessão síncrona<br />
para modificar um documento estruturado. Para tal, utiliza-se a estratégia <strong>de</strong>talhada na secção 4.4.<br />
Assim, qualquer utilizador po<strong>de</strong> iniciar uma sessão síncrona para edição <strong>de</strong> um documento, usando<br />
a sua cópia privada como estado inicial. Novos participantes po<strong>de</strong>m, posteriormente, juntar-se à sessão<br />
obtendo uma cópia do coobjecto.<br />
Para manter o estado das várias cópias do coobjecto sincronamente sincronizadas usa-se o com-<br />
ponente <strong>de</strong> adaptação síncrono. Como se disse, este componente usa uma aproximação pessimista na<br />
propagação das invocações efectuadas: apenas entrega as invocações para execução local após elas te-<br />
r<strong>em</strong> sido or<strong>de</strong>nadas pelo sist<strong>em</strong>a <strong>de</strong> comunicação <strong>em</strong> grupo. Assim, para garantir a consistência das<br />
réplica, usa-se o componente <strong>de</strong> reconciliação simples, o qual se limita a executar as operações assim