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.

8.4. PROCESSAMENTO DAS TRANSACÇÕES MÓVEIS NO SERVIDOR 125<br />

Quando o resultado <strong>de</strong> uma transacção é reservation commit, o cliente associa automaticamente a<br />

informação sobre a execução do programa (reservas usadas, caminho <strong>de</strong> execução e valores lidos nas<br />

instruções <strong>de</strong> leitura) com a transacção. O cliente propaga esta informação para o servidor, o qual a usa<br />

durante a execução da transacção.<br />

8.4 Processamento das transacções móveis no servidor<br />

A execução <strong>de</strong> uma transacção <strong>móvel</strong> no servidor consiste na execução do programa da transacção <strong>móvel</strong><br />

na base <strong>de</strong> <strong>dados</strong> central.<br />

Transacção não garantida Se o resultado da transacção não foi garantido no cliente, o código da<br />

transacção <strong>de</strong>ve fazer respeitar as intenções do utilizador através da especificação <strong>de</strong> regras <strong>de</strong> <strong>de</strong>tecção<br />

e tratamento <strong>de</strong> conflitos apropriadas.<br />

Durante a execução <strong>de</strong> uma transacção <strong>móvel</strong> no servidor, as escritas bloqueadas por reservas po<strong>de</strong>m<br />

ser tratadas pela transacção (in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente da transacção ter sido garantida no cliente ou não). Para<br />

tal, o código da transacção <strong>móvel</strong> <strong>de</strong>ve apanhar a excepção lançada pelo gatilho que protege os el<strong>em</strong>entos<br />

<strong>de</strong> <strong>dados</strong> reservados. Caso a excepção lançada não seja tratada, a transacção é abortada e as aplicações<br />

po<strong>de</strong>m posteriormente verificar a causa do insucesso. As transacções abortadas po<strong>de</strong>m ser reexecutadas<br />

usando o mecanismo <strong>de</strong> reexecução mencionado na secção 7.3.1.<br />

Transacção garantida Se o resultado da transacção foi garantido no cliente, o interpretador que exe-<br />

cuta o programa da transacção <strong>móvel</strong> <strong>de</strong>ve executar o seguinte conjunto <strong>de</strong> acções adicionais (para que<br />

as garantias fornecidas sejam respeitadas).<br />

Antes <strong>de</strong> executar a transacção, para cada reserva usada para garantir o seu resultado no cliente, é<br />

necessário <strong>de</strong>sfazer t<strong>em</strong>porariamente (até à conclusão da execução da transacção) as acções que garant<strong>em</strong><br />

o respeito por essas reservas. Dois casos especiais exist<strong>em</strong>. Para uma reserva escrow é adicionado ou<br />

subtraído ao valor actual dos <strong>dados</strong> a quantida<strong>de</strong> <strong>de</strong> recursos usados na execução da transacção no cliente.<br />

Como estas reservas são parcialmente consumidas com a execução das transacções, nenhuma acção é<br />

executada no fim do processamento da transacção. Para uma reserva value-use, o valor actual dos <strong>dados</strong><br />

é substituído pelo valor da reserva — após a execução da transacção o valor inicial é reposto.<br />

Durante a execução da transacção, para cada instrução <strong>de</strong> leitura garantida no cliente, o interpretador<br />

<strong>de</strong>volve o valor relativo ao mesmo registo lido no cliente. Assim, esta proprieda<strong>de</strong> estabelece uma or<strong>de</strong>m<br />

no conjunto <strong>de</strong> resultados obtidos na execução <strong>de</strong> uma instrução <strong>de</strong> leitura. No caso <strong>de</strong> a leitura ter sido<br />

garantida por uma reserva value-use, value-change, value-lock ou slot, esta proprieda<strong>de</strong> garante que o<br />

mesmo valor é obtido no cliente e no servidor.

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

Saved successfully!

Ooh no, something went wrong!