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.

3.1. MODELO GERAL 25<br />

para a activida<strong>de</strong> cooperativa.<br />

Cada servidor replica um conjunto <strong>de</strong> volumes <strong>de</strong> coobjectos. Para cada volume, replica todos os<br />

coobjectos que estão contidos nesse volume. O estado <strong>de</strong>stas réplicas é sincronizado durante sessões <strong>de</strong><br />

sincronização epidémicas estabelecidas entre pares <strong>de</strong> servidores. A replicação nos servidores t<strong>em</strong> por<br />

objectivo mascarar as falhas nos servidores e no sist<strong>em</strong>a <strong>de</strong> comunicação.<br />

Os clientes executam um mecanismo <strong>de</strong> replicação secundária (os caching), mantendo uma cache 1<br />

com cópias parciais <strong>de</strong> um conjunto <strong>de</strong> coobjectos. Uma cópia parcial <strong>de</strong> um coobjecto inclui apenas um<br />

subconjunto <strong>de</strong> todos os subobjectos que compõ<strong>em</strong> um coobjecto. Os clientes sincronizam o estado das<br />

cópias locais com os servidores e com outros clientes. A replicação parcial nos clientes t<strong>em</strong> por objectivo<br />

mascarar os períodos <strong>de</strong> <strong>de</strong>sconexão, permitindo aos utilizadores continuar<strong>em</strong> a ler e modificar os <strong>dados</strong><br />

<strong>partilhados</strong>.<br />

As aplicações que utilizam o sist<strong>em</strong>a DOORS executam nos clientes e modificam os coobjectos<br />

através da execução <strong>de</strong> métodos dos subobjectos — os utilizadores cooperam entre si modificando <strong>dados</strong><br />

<strong>partilhados</strong>. De seguida, apresenta-se o mo<strong>de</strong>lo <strong>de</strong> acesso aos coobjectos.<br />

3.1.1 Mo<strong>de</strong>lo <strong>de</strong> manipulação dos coobjectos<br />

Em geral, as aplicações ace<strong>de</strong>m aos coobjectos usando o mo<strong>de</strong>lo <strong>de</strong> acesso “obtém/modifica local-<br />

mente/submete modificações”. Assim, quando uma aplicação solicita o acesso a um coobjecto, o cliente,<br />

caso não possua uma cópia local, obtém-na a partir <strong>de</strong> um servidor (ou, caso tal não seja possível, <strong>de</strong><br />

outro cliente). De seguida, o cliente cria uma cópia privada do coobjecto e entrega-a à aplicação.<br />

Uma aplicação manipula a cópia privada do coobjecto e os seus subobjectos <strong>de</strong> forma s<strong>em</strong>elhante a<br />

um grafo <strong>de</strong> objectos comuns, i.e., usando os seus métodos para ace<strong>de</strong>r e modificar o estado dos objectos<br />

e navegar na estrutura <strong>de</strong>finida. As operações <strong>de</strong> modificação executadas pelas aplicações são registadas<br />

no coobjecto <strong>de</strong> forma transparente para a aplicação e s<strong>em</strong> intervenção do cliente do sist<strong>em</strong>a DOORS<br />

(ver <strong>de</strong>talhes na secção 3.2.2.2). Este registo consiste na sequência <strong>de</strong> invocações <strong>de</strong> métodos 2 efectuadas<br />

pela aplicação.<br />

Inicialmente a cópia privada <strong>de</strong> um coobjecto inclui apenas referências para um (ou vários) subob-<br />

jecto raiz. Os subobjectos apenas são instanciados quando necessário (i.e., quando são acedidos). Nesse<br />

momento, o cliente cria uma cópia privada do subobjecto 3 e liga-a à cópia privada do coobjecto — todo<br />

este processo é transparente para a aplicação.<br />

1 Usa-se o termo cache para <strong>de</strong>signar o espaço usado para guardar réplicas secundárias dos <strong>dados</strong>, neste caso, réplicas<br />

parciais dos coobjectos.<br />

2 A invocação <strong>de</strong> um método é também <strong>de</strong>nominada <strong>de</strong> operação.<br />

3 Para tal, o cliente po<strong>de</strong> ter necessida<strong>de</strong> <strong>de</strong> contactar um servidor se a sua cópia parcial do coobjecto não incluir o subobjecto<br />

<strong>em</strong> questão.

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

Saved successfully!

Ooh no, something went wrong!