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.

122 CAPÍTULO 8. RESERVAS<br />

Como foi dito anteriormente, uma reserva é t<strong>em</strong>porária (leased) [58], i.e., apenas é válida durante um<br />

período limitado <strong>de</strong> t<strong>em</strong>po. Esta proprieda<strong>de</strong> garante que as restrições impostas às outras transacções,<br />

para fazer cumprir a promessa associada a um reserva, não duram in<strong>de</strong>finidamente, mesmo que o cliente<br />

<strong>móvel</strong>, a qu<strong>em</strong> a reserva foi concedida, seja <strong>de</strong>struído ou fique permanent<strong>em</strong>ente <strong>de</strong>sconectado. Outra<br />

consequência da duração limitada das reservas consiste no facto da garantia fornecida num cliente <strong>móvel</strong><br />

apenas ser válida se a transacção <strong>móvel</strong> for propagada para o servidor antes que as reservas usadas<br />

expir<strong>em</strong>.<br />

8.3 Processamento das transacções móveis no cliente<br />

Um cliente executa uma transacção <strong>móvel</strong> localmente <strong>em</strong> um ou dois passos, como se explica <strong>de</strong> seguida.<br />

No primeiro passo, o cliente executa o programa da transacção para verificar se é possível garantir o<br />

seu resultado usando as reservas disponíveis. Este processo é <strong>de</strong>scrito mais tar<strong>de</strong>. Se for possível garantir<br />

a transacção <strong>móvel</strong>, são actualizadas ambas as versões da réplica local dos <strong>dados</strong>. O processamento<br />

local da transacção termina, sendo a transacção <strong>móvel</strong> armazenada localmente até ser propagada para o<br />

servidor. Caso contrário, o sist<strong>em</strong>a <strong>de</strong>sfaz qualquer modificação executada à base <strong>de</strong> <strong>dados</strong> (abortando a<br />

transacção da base <strong>de</strong> <strong>dados</strong> na qual a transacção <strong>móvel</strong> foi executada) e prossegue para o segundo passo.<br />

No segundo passo, o cliente executa o programa da transacção na versão provisória da réplica local<br />

da base <strong>de</strong> <strong>dados</strong>. O resultado <strong>de</strong>sta execução é consi<strong>de</strong>rado provisório. Se o programa executa até uma<br />

instrução commit ou executa até ao fim do programa, o resultado é tentative commit. Neste caso, as<br />

modificações produzidas reflect<strong>em</strong>-se na réplica provisório dos <strong>dados</strong>. Se o programa executa até uma<br />

instrução rollback, o resultado é tentative abort e qualquer modificação produzida é <strong>de</strong>sfeita.<br />

Se, durante o processamento <strong>de</strong> uma transacção <strong>móvel</strong> (<strong>em</strong> ambos os passos), é necessário algum<br />

el<strong>em</strong>ento <strong>de</strong> <strong>dados</strong> não replicado localmente para prosseguir a avaliação da transacção (por ex<strong>em</strong>plo,<br />

a condição <strong>de</strong> uma instrução if usa o valor <strong>de</strong> uma coluna não replicada), a execução é abortada e o<br />

resultado da execução local é unknown.<br />

8.3.1 Verificação da possibilida<strong>de</strong> <strong>de</strong> garantir uma transacção <strong>móvel</strong><br />

Nesta subsecção <strong>de</strong>screve-se o modo como o interpretador do cliente verifica se uma transacção <strong>móvel</strong><br />

po<strong>de</strong> ser garantida. A i<strong>de</strong>ia base consiste <strong>em</strong> executar o programa da transacção e verificar cada instrução<br />

do caminho <strong>de</strong> execução.<br />

Garantir instruções Durante a execução, o interpretador mantém, para cada variável, além do seu<br />

valor actual, a informação sobre se esse valor é garantido e quais as reservas que o garant<strong>em</strong> (se alguma).

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

Saved successfully!

Ooh no, something went wrong!