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.

8.2. CONCESSÃO E GARANTIA DE RESPEITO PELAS RESERVAS 121<br />

associada não é quebrada por nenhuma outra transacção. Para fazer cumprir estas promessas, ao mesmo<br />

t<strong>em</strong>po que permite aos clientes legados ace<strong>de</strong>r directamente à base <strong>de</strong> <strong>dados</strong> central, as seguintes acções<br />

têm <strong>de</strong> ser executadas na base <strong>de</strong> <strong>dados</strong> (note-se que estas acções são <strong>de</strong>sfeitas para permitir a execução<br />

<strong>de</strong> uma transacção que use uma dada reserva):<br />

• Para cada reserva value-change, cria-se um gatilho (trigger) que impe<strong>de</strong> a modificação do ele-<br />

mento <strong>de</strong> <strong>dados</strong> reservado. O gatilho impe<strong>de</strong> a modificação lançando uma excepção. Neste caso,<br />

diz-se que a modificação foi bloqueada.<br />

• Para cada reserva value-lock, cria-se um gatilho que impe<strong>de</strong> a modificação do el<strong>em</strong>ento <strong>de</strong> <strong>dados</strong><br />

reservado por qualquer transacção, incluindo as transacção submetidas por um cliente que possua<br />

essa reserva. Para tal, ao contrário do que suce<strong>de</strong> com as outras reservas, esta acção não é <strong>de</strong>sfeita<br />

para permitir a execução <strong>de</strong> uma transacção recebida <strong>de</strong> um cliente que possui esta reserva.<br />

• Para cada reserva slot, cria-se um gatilho que impe<strong>de</strong> qualquer transacção <strong>de</strong> inserir, r<strong>em</strong>over ou<br />

modificar registos com os valores referidos na reserva.<br />

• Para cada reserva escrow, actualiza-se o valor dos el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong> fungíveis como explicado<br />

na secção anterior.<br />

• Para as reservas value-use, shared slot e shared value-change não é necessária qualquer acção na<br />

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

Para as reservas value-change e slot existe um opção adicional que po<strong>de</strong> ser usada: o pedido <strong>de</strong><br />

reserva po<strong>de</strong> especificar uma actualização t<strong>em</strong>porária que reflicta a impossibilida<strong>de</strong> <strong>de</strong> modificar o ele-<br />

mento <strong>de</strong> <strong>dados</strong> reservado enquanto a reserva permanecer válida. Por ex<strong>em</strong>plo, consi<strong>de</strong>re-se um registo<br />

que representa um lugar num comboio. Quando um cliente <strong>móvel</strong> obtém uma reserva value-change so-<br />

bre esse registo, o pedido <strong>de</strong> reserva po<strong>de</strong> especificar que se modifique para verda<strong>de</strong>iro o valor da coluna<br />

que indica se o lugar está ocupado. Esta modificação indica que as transacções não garantidas por esta<br />

reserva não <strong>de</strong>v<strong>em</strong> utilizar este lugar. Se apesar <strong>de</strong>sta indicação, uma transacção tentar modificar o valor<br />

do registo, a modificação será bloqueada pelo gatilho criado aquando da concessão da reserva.<br />

O sist<strong>em</strong>a Mobisnap mantém registo <strong>de</strong> todas as reservas concedidas para verificar a possibilida<strong>de</strong> <strong>de</strong><br />

conce<strong>de</strong>r uma nova reserva (face às reservas já existentes) e para verificar a valida<strong>de</strong> da utilização <strong>de</strong> uma<br />

reserva para garantir uma transacção <strong>móvel</strong>. Quando uma reserva expira ou é cancelada explicitamente<br />

pelo cliente, as acções executadas para garantir que a reserva é respeitada são <strong>de</strong>sfeitas. As acções<br />

relativas a uma reserva são igualmente <strong>de</strong>sfeitas (<strong>de</strong> forma t<strong>em</strong>porária) para permitir a execução <strong>de</strong> uma<br />

transacção <strong>móvel</strong> que use essa reserva.

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

Saved successfully!

Ooh no, something went wrong!