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.

124 CAPÍTULO 8. RESERVAS<br />

mesmo caminho <strong>de</strong> execução, mesmo que a alternativa preferida pelo utilizador seja possível.<br />

Uma aplicação po<strong>de</strong> modificar o processamento <strong>de</strong>scrito usando as opções <strong>de</strong>scritas na secção 7.3.2.<br />

Primeiro, é possível abortar a execução da transacção se uma condição não pu<strong>de</strong>r ser garantida. Segundo,<br />

é possível solicitar a execução do melhor caminho possível no servidor, in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente do caminho<br />

garantido no cliente.<br />

A aproximação usada para garantir as instruções if po<strong>de</strong> ser igualmente usada para garantir o valor<br />

<strong>de</strong> outras condições, como por ex<strong>em</strong>plo as condições especificadas nas instruções <strong>de</strong> ciclo.<br />

Resultado da execução Se um programa executa até uma instrução commit, o seu resultado é reserva-<br />

tion commit. Neste caso, diz-se que o resultado da transacção é garantido in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente no cliente.<br />

No entanto, <strong>de</strong>pen<strong>de</strong>ndo das instruções que foi possível garantir, é atribuído um dos seguintes níveis <strong>de</strong><br />

garantias:<br />

• Full (completo), se todas as instruções no caminho <strong>de</strong> execução são garantidas por reservas. Note-<br />

-se que, mesmo neste caso, é incorrecto aplicar, no servidor, o conjunto <strong>de</strong> escrita (write set) obtido<br />

aquando da execução da transacção no cliente, porque os el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong> fungíveis <strong>de</strong>v<strong>em</strong> ser<br />

actualizados usando instruções <strong>de</strong> adição e r<strong>em</strong>oção.<br />

• Read (leitura), se for possível garantir todas as instruções com excepção das instruções <strong>de</strong> escrita.<br />

Neste caso (e nos seguintes), quando a transacção <strong>móvel</strong> é executada no servidor, a execução das<br />

escritas não garantidas po<strong>de</strong> ser bloqueada por uma reserva value-change, value-lock ou slot.<br />

• Pre-condition (pré-condição), se é possível garantir todas as condições que <strong>de</strong>terminam o caminho<br />

<strong>de</strong> execução. Neste caso, o sist<strong>em</strong>a penas garante que a execução do programa <strong>de</strong> uma transacção<br />

seguirá o mesmo caminho <strong>de</strong> execução no servidor.<br />

• Alternative pre-condition (pré-condição alternativa), se, pelo menos, uma condição que <strong>de</strong>termina<br />

o caminho <strong>de</strong> execução não foi garantida. Neste caso, a aplicação po<strong>de</strong> forçar a execução do<br />

mesmo caminho <strong>de</strong> execução ou não no servidor (como se explicou anteriormente).<br />

Como se ex<strong>em</strong>plifica na secção 8.5, uma aplicação <strong>de</strong>ve utilizar informação adicional (do domínio<br />

da s<strong>em</strong>ântica da aplicação) para interpretar o significado dos diferentes níveis <strong>de</strong> garantias. Por ex<strong>em</strong>plo,<br />

os níveis <strong>de</strong> garantia completo e leitura são equivalentes se se souber que é impossível obter uma reserva<br />

que impeça a execução das instruções <strong>de</strong> escrita. Os resultados obtidos <strong>de</strong>v<strong>em</strong> ser apresentados aos<br />

utilizadores utilizando esta informação adicional conhecida.<br />

Se um programa executa até uma instrução rollback, o sist<strong>em</strong>a aborta a execução, <strong>de</strong>sfazendo todas<br />

as modificações efectuadas. O processamento da transacção <strong>móvel</strong> prossegue no segundo passo <strong>de</strong>scrito<br />

no início <strong>de</strong>sta secção.

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

Saved successfully!

Ooh no, something went wrong!