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.

88 CAPÍTULO 6. NÚCLEO DO SISTEMA DOORS<br />

Para garantir estas proprieda<strong>de</strong>s, adicionou-se ao coobjecto <strong>de</strong> filiação uma operação <strong>de</strong> diss<strong>em</strong>ina-<br />

ção e execução, <strong>de</strong>talhada no apêndice A.1.5. Esta operação permite executar uma acção dada como<br />

parâmetro apenas após a réplica do volume num servidor reflectir todas as operações conhecidas num<br />

dado conjunto <strong>de</strong> servidores no momento da submissão da operação <strong>de</strong> diss<strong>em</strong>inação e execução.<br />

O protocolo <strong>de</strong> eliminação <strong>de</strong> um i<strong>de</strong>ntificador, <strong>de</strong>talhado no apêndice A.1.6, é iniciado pelo patro-<br />

cinador da r<strong>em</strong>oção e consiste nos seguintes passos. Primeiro, o patrocinador usa a operação <strong>de</strong> disse-<br />

minação e execução para garantir que nos vários servidores, apenas se inicia o processo <strong>de</strong> eliminação<br />

do servidor após ter<strong>em</strong> sido propagadas todas as operações <strong>de</strong> todos os coobjectos recebidas do servidor<br />

r<strong>em</strong>ovido. Segundo, cada servidor notifica os outros quando verifica que nenhum coobjecto necessita<br />

do i<strong>de</strong>ntificador do servidor r<strong>em</strong>ovido. Terceiro, quando num servidor se verifica que nenhum servidor<br />

activo necessita do i<strong>de</strong>ntificador <strong>de</strong> um servidor, é submetida a operação <strong>de</strong> eliminação do i<strong>de</strong>ntificador.<br />

Protocolo <strong>de</strong> saída forçada do grupo <strong>de</strong> replicadores Em geral, um servidor apenas cessa a repli-<br />

cação <strong>de</strong> um volume por sua iniciativa. No entanto, exist<strong>em</strong> circunstâncias <strong>em</strong> que po<strong>de</strong> ser necessário<br />

forçar a r<strong>em</strong>oção <strong>de</strong> um servidor do grupo <strong>de</strong> replicadores — por ex<strong>em</strong>plo, porque o servidor ficou<br />

danificado e a m<strong>em</strong>ória estável na qual estava armazenado o estado dos coobjectos é irrecuperável.<br />

O protocolo <strong>de</strong> saída forçada do grupo <strong>de</strong> replicadores, <strong>de</strong>talhado no apêndice A.1.7, usa a seguinte<br />

aproximação. Primeiro, qualquer servidor po<strong>de</strong> sugerir a r<strong>em</strong>oção <strong>de</strong> um (ou mais) servidor(es), mas<br />

o processo apenas prosseguirá se todos os outros servidores concordar<strong>em</strong> com a r<strong>em</strong>oção. Segundo,<br />

após eleger um servidor como patrocinador da r<strong>em</strong>oção, é necessário garantir que esse servidor recebe<br />

todas as operações conhecidas provenientes do servidor a r<strong>em</strong>over. Terceiro, o servidor informa todos os<br />

coobjectos do volume da r<strong>em</strong>oção do servidor e, <strong>de</strong> seguida, executa a operação <strong>de</strong> r<strong>em</strong>oção no coobjecto<br />

<strong>de</strong> filiação no âmbito do protocolo local <strong>de</strong> mudança <strong>de</strong> vista.<br />

Protocolo <strong>de</strong> sincronização <strong>de</strong> vistas No sist<strong>em</strong>a DOORS, dois servidores apenas po<strong>de</strong>m comunicar<br />

para sincronizar o estado dos coobjectos se se encontrar<strong>em</strong> na mesma vista. Assim, dois servidores, i<br />

e j, que se encontr<strong>em</strong> <strong>em</strong> vistas diferentes <strong>de</strong>v<strong>em</strong> executar previamente um protocolo <strong>de</strong> sincronização<br />

<strong>de</strong> vistas. Este protocolo consiste na sincronização das operações do coobjecto <strong>de</strong> filiação conhecidas<br />

pelos dois servidores — quando cada um dos servidores recebe o conjunto <strong>de</strong> operações enviadas pelo<br />

parceiro efectua o protocolo local <strong>de</strong> mudança <strong>de</strong> vista. No final do protocolo, conhecidas as mesmas<br />

operações relativas ao coobjecto <strong>de</strong> filiação, os dois servidores encontram-se na mesma vista. Durante<br />

a sincronização das operações conhecidas, cada servidor envia para o parceiro apenas as operações que<br />

sabe que ele não conhece — usando o sumário das operações conhecidas no parceiro (ou à falta <strong>de</strong>ste<br />

sumário) o i<strong>de</strong>ntificador da vista, que é igualmente um sumário das operações <strong>de</strong> inserção e r<strong>em</strong>oção que<br />

o parceiro conhece.

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

Saved successfully!

Ooh no, something went wrong!