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.

7.1. MODELO GERAL 105<br />

encomenda <strong>de</strong> um produto, propondo duas possíveis alternativas.<br />

A execução <strong>de</strong> uma transacção <strong>móvel</strong> correspon<strong>de</strong> s<strong>em</strong>pre à execução do seu programa numa cópia<br />

da base <strong>de</strong> <strong>dados</strong>. As transacções móveis são executadas imediatamente no cliente produzindo um re-<br />

sultado provisório (e modificando o estado da versão provisória dos <strong>dados</strong>). As transacções móveis são<br />

posteriormente propagadas para o servidor on<strong>de</strong> são reexecutadas. O resultado <strong>de</strong>finitivo <strong>de</strong> uma tran-<br />

sacção <strong>móvel</strong> (e o modo como afecta a cópia principal dos <strong>dados</strong>) resulta da sua execução no servidor.<br />

O mo<strong>de</strong>lo <strong>de</strong> execução das transacções móveis, com o resultado <strong>de</strong>finitivo a ser <strong>de</strong>terminado pela<br />

execução do código da transacção no servidor, permite a <strong>de</strong>finição <strong>de</strong> regras <strong>de</strong> <strong>de</strong>tecção e resolução<br />

<strong>de</strong> conflitos específicas para cada operação. Estas regras <strong>de</strong>v<strong>em</strong> garantir o respeito pelas intenções dos<br />

utilizadores explorando a informação s<strong>em</strong>ântica associada aos tipos <strong>de</strong> <strong>dados</strong> e operações <strong>de</strong>finidas. A<br />

transacção da figura 7.1 ex<strong>em</strong>plifica algumas das estratégias que po<strong>de</strong>m ser utilizadas.<br />

Primeiro, as pré-condições para a execução da operação são especificadas <strong>de</strong> forma exacta (condi-<br />

ções das linhas 8 e 16). Assim, a transacção não é abortada se os valores observados no cliente e no<br />

servidor for<strong>em</strong> diferentes, mas apenas se as condições expressas for<strong>em</strong> violadas. Esta aproximação per-<br />

mite reduzir o número <strong>de</strong> falsos conflitos <strong>de</strong>tectados, quando comparada com as técnicas que forçam a<br />

igualda<strong>de</strong> dos valores lidos no cliente e no servidor (usuais <strong>em</strong> sist<strong>em</strong>as <strong>de</strong> bases <strong>de</strong> <strong>dados</strong>). Segundo,<br />

a transacção especifica várias alternativas. Esta aproximação representa uma forma simples <strong>de</strong> resolver<br />

eventuais conflitos <strong>de</strong>s<strong>de</strong> que uma das alternativas seja possível.<br />

Uma aplicação po<strong>de</strong> submeter transacções móveis que modifiqu<strong>em</strong> <strong>dados</strong> não replicados no cliente.<br />

Neste caso, apesar <strong>de</strong> não ser possível obter um resultado provisório, a transacção po<strong>de</strong> ser propagada<br />

para o servidor on<strong>de</strong> o resultado final é obtido executando o programa da transacção na base <strong>de</strong> <strong>dados</strong><br />

do servidor. Esta aproximação permite aos utilizadores continuar<strong>em</strong> o seu trabalho mesmo quando não<br />

é possível obter uma cópia dos <strong>dados</strong> (como se referiu na secção 2.3.6).<br />

Quando o resultado <strong>de</strong>finitivo <strong>de</strong> uma transacção <strong>móvel</strong> é obtido no servidor, os utilizadores po<strong>de</strong>m<br />

já não estar a utilizar o sist<strong>em</strong>a. Assim, como se referiu na secção 2.3.4, é importante integrar um<br />

mecanismo que possibilite informar os utilizadores sobre os resultados <strong>de</strong>finitivos das suas operações.<br />

No sist<strong>em</strong>a Mobisnap, <strong>de</strong>finiu-se uma função que po<strong>de</strong> ser usada nas transacções móveis para enviar<br />

mensagens aos utilizadores através <strong>de</strong> diferentes transportes. Esta função é processada <strong>de</strong> forma especial<br />

pelo sist<strong>em</strong>a, apenas produzindo efeito na execução <strong>de</strong>finitiva da transacção <strong>móvel</strong>. Adicionalmente, o<br />

sist<strong>em</strong>a encarrega-se <strong>de</strong> garantir a propagação <strong>de</strong>stas mensagens através do transporte indicado.<br />

Reservas A possibilida<strong>de</strong> <strong>de</strong> garantir o resultado <strong>de</strong> uma transacção <strong>móvel</strong> <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte t<strong>em</strong><br />

várias vantagens, como se discutiu na secção 2.3.7. Primeiro, permite suportar <strong>de</strong> forma mais a<strong>de</strong>quada a<br />

operação <strong>em</strong> situações <strong>de</strong> <strong>de</strong>sconexão. Segundo, mesmo quando é possível contactar o servidor, permite<br />

reduzir o t<strong>em</strong>po <strong>de</strong> execução das operações e gerir <strong>de</strong> forma mais eficiente as comunicações entre os

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

Saved successfully!

Ooh no, something went wrong!