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.

11.1. REPLICAÇÃO 175<br />

11.1.2 Arquitecturas e tipos <strong>de</strong> réplicas<br />

Um sist<strong>em</strong>a baseado <strong>em</strong> replicação optimista po<strong>de</strong> ser construído usando diferentes arquitecturas. De<br />

uma forma muito simplificada po<strong>de</strong>m i<strong>de</strong>ntificar-se dois tipos básicos <strong>de</strong> arquitectura: cliente/servidor<br />

e participante-a-participante (peer-to-peer). Enquanto numa arquitectura cliente/servidor, o sist<strong>em</strong>a é<br />

composto por dois tipos <strong>de</strong> el<strong>em</strong>entos com funções distintas (os servidores e os clientes) 1 , numa arqui-<br />

tectura participante-a-participante todos os el<strong>em</strong>entos são idênticos e exerc<strong>em</strong> as mesmas funções.<br />

Num sist<strong>em</strong>a cliente/servidor, os clientes po<strong>de</strong>m ser simples (thin clients [78]) ou estendidos (exten-<br />

<strong>de</strong>d client ou full client [78]). Um cliente simples não mantém nenhuma réplica dos objectos, neces-<br />

sitando <strong>de</strong> contactar um servidor para executar qualquer operação. Desta forma, este tipo <strong>de</strong> sist<strong>em</strong>as<br />

não permite a operação <strong>de</strong>sconectada a menos que um servidor execute na mesma máquina do cliente.<br />

Neste caso, estes sist<strong>em</strong>as têm proprieda<strong>de</strong>s s<strong>em</strong>elhantes às dos sist<strong>em</strong>as participante-a-participante. O<br />

sist<strong>em</strong>a Bayou [161] usa esta aproximação para suportar a operação <strong>de</strong>sconectada.<br />

Um cliente estendido mantém uma réplica (parcial) dos <strong>dados</strong> e executa localmente (um subcon-<br />

junto) das funcionalida<strong>de</strong>s do servidor. As operações submetidas pelas aplicações po<strong>de</strong>m ser executadas<br />

localmente recorrendo à réplica local dos <strong>dados</strong>. Desta forma, po<strong>de</strong> suportar-se a execução <strong>de</strong> operações<br />

durante os períodos <strong>de</strong> <strong>de</strong>sconexão. Os clientes do sist<strong>em</strong>a <strong>de</strong> ficheiros Coda [87] usam esta aproxima-<br />

ção.<br />

Num sist<strong>em</strong>a participante-a-participante todas as máquinas mantêm réplicas dos objectos. A opera-<br />

ção <strong>de</strong>sconectada sobre objectos replicados localmente é permitida. O sist<strong>em</strong>a <strong>de</strong> ficheiros Ficus [66] usa<br />

esta aproximação, com cada máquina a manter uma cópia <strong>de</strong> todos os objectos. O sist<strong>em</strong>a Roam [140]<br />

usa esta aproximação, mas cada máquina mantém apenas um subconjunto dos objectos. O sist<strong>em</strong>a Roam<br />

usa ainda uma organização hierárquica para simplificar a <strong>gestão</strong> da replicação entre um número muito<br />

elevado <strong>de</strong> réplicas: as réplicas agrupam-se <strong>em</strong> conjuntos disjuntos (wards). Em cada ward existe um<br />

réplica eleita, responsável por comunicar com os outros wards.<br />

Num sist<strong>em</strong>a cliente estendido/servidor, po<strong>de</strong>m i<strong>de</strong>ntificar-se dois tipos <strong>de</strong> réplicas [87]. As réplicas<br />

<strong>de</strong> primeira classe nos servidores e as réplicas <strong>de</strong> segunda classe (ou cópias da cache) nos clientes.<br />

Em geral, as réplicas <strong>de</strong> primeira classe são mais completas, disponíveis e seguras — o algoritmo <strong>de</strong><br />

replicação t<strong>em</strong> como missão principal actualizar estas réplicas. As réplicas <strong>de</strong> segunda classe são uma<br />

cópia das réplicas <strong>de</strong> primeira classe, a partir das quais <strong>de</strong>v<strong>em</strong> ser actualizadas regularmente.<br />

O número <strong>de</strong> réplicas principais nos sist<strong>em</strong>as cliente/servidor e o número <strong>de</strong> réplicas nos sist<strong>em</strong>a par-<br />

ticipante-a-participante é geralmente variável. Em geral, a criação <strong>de</strong>ste tipo <strong>de</strong> réplica é uma operação<br />

que <strong>de</strong>ve ser efectuada pelo administrador do sist<strong>em</strong>a [101, 87]. No entanto, exist<strong>em</strong> sist<strong>em</strong>as [172, 86]<br />

que criam novas réplicas automaticamente para manter uma boa qualida<strong>de</strong> <strong>de</strong> serviço.<br />

1 Uma mesma máquina po<strong>de</strong> conter um el<strong>em</strong>ento servidor e um el<strong>em</strong>ento cliente.

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

Saved successfully!

Ooh no, something went wrong!