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.

112 CAPÍTULO 7. APRESENTAÇÃO DO SISTEMA MOBISNAP<br />

o servidor. Em <strong>ambientes</strong> fracamente conectados, a propagação das transacções po<strong>de</strong> ser efectuada <strong>de</strong><br />

forma assíncrona e incr<strong>em</strong>ental com uma s<strong>em</strong>ântica exactamente uma vez (exactly-once).<br />

Quando um servidor recebe uma transacção <strong>móvel</strong> <strong>de</strong> um cliente, o servidor executa o programa da<br />

transacção <strong>móvel</strong> na réplica principal dos <strong>dados</strong> para obter o seu resultado <strong>de</strong>finitivo. Se a transacção foi<br />

garantida no cliente, o mo<strong>de</strong>lo das reservas garante que não surgirá nenhum conflito inesperado durante<br />

a execução da transacção no servidor, como se <strong>de</strong>talha na secção 8.4.<br />

Por vezes, a existência <strong>de</strong> reservas concedidas a outros utilizadores po<strong>de</strong> levar a que uma transacção<br />

<strong>móvel</strong> falhe <strong>de</strong>snecessariamente. Por ex<strong>em</strong>plo, caso um cliente tenha reservado um lugar num comboio<br />

(para garantir transacções <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte), o servidor garante que, pelo menos, um lugar perma-<br />

nece disponível. Assim, qualquer transacção <strong>de</strong> outro cliente que tente reservar o último lugar disponível<br />

é abortada. Caso o cliente não utilize o lugar reservado, po<strong>de</strong> ter existido uma transacção <strong>móvel</strong> que foi<br />

abortada s<strong>em</strong> necessida<strong>de</strong>.<br />

Para lidar com estas situações, o Mobisnap inclui um mecanismo <strong>de</strong> reexecução. As transacções<br />

móveis abortadas no servidor po<strong>de</strong>m ser reexecutadas após as reservas relevantes expirar<strong>em</strong> ou ser<strong>em</strong><br />

canceladas. Neste sentido, uma reserva po<strong>de</strong> ser vista como uma opção para modificar a base <strong>de</strong> da-<br />

dos <strong>em</strong> primeiro lugar. As aplicações <strong>de</strong>v<strong>em</strong> indicar, quando submet<strong>em</strong> uma transacção <strong>móvel</strong>, se este<br />

mecanismo <strong>de</strong>ve ser usado e qual o prazo para a sua reexecução final.<br />

Exist<strong>em</strong> duas situações <strong>em</strong> que é necessário executar um conjunto <strong>de</strong> transacções no servidor. Pri-<br />

meiro, quando o cliente propaga um conjunto <strong>de</strong> transacções para o servidor. Segundo, quando um<br />

conjunto <strong>de</strong> transacções aguarda a sua reexecução no servidor. Nestas situações, o servidor utiliza o<br />

mecanismo <strong>de</strong> reconciliação <strong>de</strong>scrito no capítulo 10 para optimizar o conjunto <strong>de</strong> transacções não garan-<br />

tidas no cliente que po<strong>de</strong> ser executado com sucesso (as transacções garantidas no cliente são executadas<br />

imediatamente).<br />

O sist<strong>em</strong>a mantém informação sobre as transacções móveis que foram submetidas recent<strong>em</strong>ente<br />

para o servidor numa tabela do sist<strong>em</strong>a (periodicamente, os registos mais antigos são r<strong>em</strong>ovidos). Esta<br />

informação consiste no resultado <strong>de</strong>finitivo da transacção, no caso <strong>de</strong> este já ter sido <strong>de</strong>terminado, ou<br />

na indicação que aguarda reexecução (nas situações explicadas anteriormente). Esta informação permite<br />

aos clientes obter o resultado das transacções submetidas <strong>em</strong> interacções anteriores.<br />

7.3.2 Processamento alternativo<br />

O modo <strong>de</strong> processamento típico <strong>de</strong> uma transacção <strong>móvel</strong>, <strong>de</strong>scrito anteriormente, po<strong>de</strong> ser alterado<br />

através das seguintes opções especificadas aquando da submissão da transacção <strong>móvel</strong>:<br />

Propaga s<strong>em</strong>pre Uma transacção <strong>móvel</strong> é s<strong>em</strong>pre propagada para o servidor, in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente do seu<br />

resultado no cliente (por omissão as transacções que abortaram – i.e., tiveram o resultado tentative

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

Saved successfully!

Ooh no, something went wrong!