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

asc.di.fct.unl.pt
from asc.di.fct.unl.pt More from this publisher
11.04.2013 Views

24 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS Legenda Servidor Cliente Sub-objecto Aplicação propagação epidémica modificações sub-objectos sub-objectos & modificações modificações sub-objectos sessão síncrona Figura 3.1: Arquitectura do sistema DOORS composta por computadores com diferentes configurações. 3.1 Modelo geral O sistema DOORS é um repositório distribuído de objectos baseado numa arquitectura cliente esten- dido/servidor [78]. O sistema manipula objectos estruturados segundo o modelo de componentes DO- ORS, que se designam por coobjectos. Um coobjecto representa um tipo de dados possivelmente com- plexo, que pode ser formado por uma composição de outros objectos. Estes objectos são agrupados em conjuntos (clusters) de objectos relacionados, que se designam por subobjectos. Por exemplo, um co- objecto pode representar um documento estruturado como esta dissertação. A estrutura do documento e cada um dos elementos básicos (por exemplo, os capítulos desta dissertação) podem ser definidos como subobjectos. Os coobjectos relacionados são agrupados em conjuntos que representam um espaço de trabalho co- operativo (collaborative workspace) e incluem os dados associados a uma sessão de trabalho cooperativo ou a um grupo de trabalho cooperativo. Estes conjuntos de coobjectos são designados por volumes [87]. O sistema DOORS é composto por dois componentes, clientes e servidores, como se representa na figura 3.1. Em geral, os servidores executam em máquinas fixas com boa conectividade. Os clientes podem executar em máquinas fixas ou móveis e a sua conectividade é geralmente variável. Qualquer máquina pode actuar simultaneamente como cliente e servidor. Por vezes, e quando essa designação não cause confusão, também se designa de servidor (cliente) a máquina em que executa o componente servidor (cliente) do sistema DOORS. Para fornecer uma elevada disponibilidade de leitura e escrita, os coobjectos do sistema DOORS são replicados usando um modelo de replicação optimista. Assim, qualquer réplica pode ser modificada de forma independente, maximizando a possibilidade de os utilizadores efectuarem as suas contribuições

3.1. MODELO GERAL 25 para a actividade cooperativa. Cada servidor replica um conjunto de volumes de coobjectos. Para cada volume, replica todos os coobjectos que estão contidos nesse volume. O estado destas réplicas é sincronizado durante sessões de sincronização epidémicas estabelecidas entre pares de servidores. A replicação nos servidores tem por objectivo mascarar as falhas nos servidores e no sistema de comunicação. Os clientes executam um mecanismo de replicação secundária (os caching), mantendo uma cache 1 com cópias parciais de um conjunto de coobjectos. Uma cópia parcial de um coobjecto inclui apenas um subconjunto de todos os subobjectos que compõem um coobjecto. Os clientes sincronizam o estado das cópias locais com os servidores e com outros clientes. A replicação parcial nos clientes tem por objectivo mascarar os períodos de desconexão, permitindo aos utilizadores continuarem a ler e modificar os dados partilhados. As aplicações que utilizam o sistema DOORS executam nos clientes e modificam os coobjectos através da execução de métodos dos subobjectos — os utilizadores cooperam entre si modificando dados partilhados. De seguida, apresenta-se o modelo de acesso aos coobjectos. 3.1.1 Modelo de manipulação dos coobjectos Em geral, as aplicações acedem aos coobjectos usando o modelo de acesso “obtém/modifica local- mente/submete modificações”. Assim, quando uma aplicação solicita o acesso a um coobjecto, o cliente, caso não possua uma cópia local, obtém-na a partir de um servidor (ou, caso tal não seja possível, de outro cliente). De seguida, o cliente cria uma cópia privada do coobjecto e entrega-a à aplicação. Uma aplicação manipula a cópia privada do coobjecto e os seus subobjectos de forma semelhante a um grafo de objectos comuns, i.e., usando os seus métodos para aceder e modificar o estado dos objectos e navegar na estrutura definida. As operações de modificação executadas pelas aplicações são registadas no coobjecto de forma transparente para a aplicação e sem intervenção do cliente do sistema DOORS (ver detalhes na secção 3.2.2.2). Este registo consiste na sequência de invocações de métodos 2 efectuadas pela aplicação. Inicialmente a cópia privada de um coobjecto inclui apenas referências para um (ou vários) subob- jecto raiz. Os subobjectos apenas são instanciados quando necessário (i.e., quando são acedidos). Nesse momento, o cliente cria uma cópia privada do subobjecto 3 e liga-a à cópia privada do coobjecto — todo este processo é transparente para a aplicação. 1 Usa-se o termo cache para designar o espaço usado para guardar réplicas secundárias dos dados, neste caso, réplicas parciais dos coobjectos. 2 A invocação de um método é também denominada de operação. 3 Para tal, o cliente pode ter necessidade de contactar um servidor se a sua cópia parcial do coobjecto não incluir o subobjecto em questão.

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

Legenda<br />

Servidor<br />

Cliente<br />

Sub-objecto<br />

Aplicação<br />

propagação<br />

epidémica<br />

modificações<br />

sub-objectos<br />

sub-objectos &<br />

modificações<br />

modificações<br />

sub-objectos<br />

sessão<br />

síncrona<br />

Figura 3.1: Arquitectura do sist<strong>em</strong>a DOORS composta por computadores com diferentes configurações.<br />

3.1 Mo<strong>de</strong>lo geral<br />

O sist<strong>em</strong>a DOORS é um repositório distribuído <strong>de</strong> objectos baseado numa arquitectura cliente esten-<br />

dido/servidor [78]. O sist<strong>em</strong>a manipula objectos estruturados segundo o mo<strong>de</strong>lo <strong>de</strong> componentes DO-<br />

ORS, que se <strong>de</strong>signam por coobjectos. Um coobjecto representa um tipo <strong>de</strong> <strong>dados</strong> possivelmente com-<br />

plexo, que po<strong>de</strong> ser formado por uma composição <strong>de</strong> outros objectos. Estes objectos são agrupados <strong>em</strong><br />

conjuntos (clusters) <strong>de</strong> objectos relacionados, que se <strong>de</strong>signam por subobjectos. Por ex<strong>em</strong>plo, um co-<br />

objecto po<strong>de</strong> representar um documento estruturado como esta dissertação. A estrutura do documento e<br />

cada um dos el<strong>em</strong>entos básicos (por ex<strong>em</strong>plo, os capítulos <strong>de</strong>sta dissertação) po<strong>de</strong>m ser <strong>de</strong>finidos como<br />

subobjectos.<br />

Os coobjectos relacionados são agrupados <strong>em</strong> conjuntos que representam um espaço <strong>de</strong> trabalho co-<br />

operativo (collaborative workspace) e inclu<strong>em</strong> os <strong>dados</strong> associados a uma sessão <strong>de</strong> trabalho cooperativo<br />

ou a um grupo <strong>de</strong> trabalho cooperativo. Estes conjuntos <strong>de</strong> coobjectos são <strong>de</strong>signados por volumes [87].<br />

O sist<strong>em</strong>a DOORS é composto por dois componentes, clientes e servidores, como se representa na<br />

figura 3.1. Em geral, os servidores executam <strong>em</strong> máquinas fixas com boa conectivida<strong>de</strong>. Os clientes<br />

po<strong>de</strong>m executar <strong>em</strong> máquinas fixas ou móveis e a sua conectivida<strong>de</strong> é geralmente variável. Qualquer<br />

máquina po<strong>de</strong> actuar simultaneamente como cliente e servidor. Por vezes, e quando essa <strong>de</strong>signação<br />

não cause confusão, também se <strong>de</strong>signa <strong>de</strong> servidor (cliente) a máquina <strong>em</strong> que executa o componente<br />

servidor (cliente) do sist<strong>em</strong>a DOORS.<br />

Para fornecer uma elevada disponibilida<strong>de</strong> <strong>de</strong> leitura e escrita, os coobjectos do sist<strong>em</strong>a DOORS são<br />

replicados usando um mo<strong>de</strong>lo <strong>de</strong> replicação optimista. Assim, qualquer réplica po<strong>de</strong> ser modificada <strong>de</strong><br />

forma in<strong>de</strong>pen<strong>de</strong>nte, maximizando a possibilida<strong>de</strong> <strong>de</strong> os utilizadores efectuar<strong>em</strong> as suas contribuições

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

Saved successfully!

Ooh no, something went wrong!