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.

38 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS<br />

Os componentes <strong>de</strong> atributos base foram estendidos para incluir as operações <strong>de</strong> manutenção da<br />

i<strong>de</strong>ntificação <strong>de</strong> uma réplica primária. Estes novos componentes <strong>de</strong>v<strong>em</strong> ser usados s<strong>em</strong>pre que se use<br />

técnicas <strong>de</strong> reconciliação baseadas num sequenciador.<br />

Os atributos específicos <strong>de</strong> cada coobjecto são guar<strong>dados</strong> numa tabela que associa nomes simbólicos<br />

a objectos. A operação <strong>de</strong> modificação utiliza, para cada nome simbólico, uma estratégia <strong>de</strong> “o último<br />

escritor ganha”. Para tal, foi necessário esten<strong>de</strong>r a aproximação “o último escritor ganha” usada para<br />

as operações (secção 3.2.2.5). S<strong>em</strong>pre que esta funcionalida<strong>de</strong> genérica <strong>de</strong> manutenção <strong>de</strong> proprieda<strong>de</strong>s<br />

específicas não seja a<strong>de</strong>quada, um programador po<strong>de</strong> esten<strong>de</strong>r um componente base para <strong>de</strong>finir uma<br />

nova proprieda<strong>de</strong> específica para o coobjecto que cria.<br />

3.3.3 Registo<br />

O componente <strong>de</strong> registo armazena as operações <strong>de</strong> escrita executadas. Em geral, um coobjecto usa<br />

diferentes registos no cliente e no servidor. No cliente, o registo limita-se a armazenar a sequência <strong>de</strong><br />

operações executadas localmente pela aplicação. No servidor, o registo armazena as operações submeti-<br />

das <strong>em</strong> todos os servidores.<br />

O registo é ainda responsável por adicionar a seguinte informação para or<strong>de</strong>nar e traçar as <strong>de</strong>pen-<br />

dências entre as operações, como se <strong>de</strong>talha na secção 4.1.1. No cliente, a cada sequência <strong>de</strong> operações<br />

executadas é adicionado o sumário das operações reflectida no estado actual — este sumário permite <strong>de</strong>-<br />

terminar exactamente as <strong>de</strong>pendências <strong>de</strong> uma operação, e <strong>de</strong>tectar as operações executadas concorren-<br />

t<strong>em</strong>ente. No servidor, a cada sequência <strong>de</strong> operações recebida <strong>de</strong> um cliente é atribuído um i<strong>de</strong>ntificador<br />

único (composto pelo i<strong>de</strong>ntificador da réplica e por uma estampilha t<strong>em</strong>poral).<br />

Componentes pré-<strong>de</strong>finidos No protótipo do sist<strong>em</strong>a DOORS <strong>de</strong>finiram-se componentes base dife-<br />

rentes para o servidor e para o cliente. Como explicado anteriormente, estes componentes base adicionam<br />

às operações informação que permite or<strong>de</strong>nar e traçar as <strong>de</strong>pendências entre as operações.<br />

Para o servidor, criou-se um componente base que gere o conjunto <strong>de</strong> operações recebidas <strong>em</strong> cada<br />

servidor. Criou-se ainda um segundo componente base que gere adicionalmente as operações or<strong>de</strong>nadas<br />

por um sequenciador.<br />

Para o cliente, criou-se apenas um componente base que mantém a lista das operações executadas<br />

pelos utilizadores. Este componente executa um algoritmo <strong>de</strong> compressão <strong>de</strong> operações usando as pro-<br />

prieda<strong>de</strong>s <strong>de</strong>finidas nas mesmas (este algoritmo usa a aproximação <strong>de</strong>scrita na secção 10.4.2).

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

Saved successfully!

Ooh no, something went wrong!