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.

126 CAPÍTULO 8. RESERVAS<br />

Quando o nível <strong>de</strong> garantia <strong>de</strong> uma transacção no cliente foi alternative pre-condition, o interpretador<br />

<strong>de</strong>ve garantir que o caminho <strong>de</strong> execução respeita a opção especificada pela aplicação. Por omissão, o<br />

interpretador executa o mesmo caminho in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente do resultado das condições especificadas<br />

nas instruções if. Como se referiu anteriormente, a aplicação po<strong>de</strong> forçar a execução do melhor caminho<br />

possível.<br />

A execução <strong>de</strong> uma transacção <strong>móvel</strong> consome parcialmente as reservas escrow usadas. Por ex<strong>em</strong>plo,<br />

se o cliente tinha uma reserva que lhe permitia subtrair três unida<strong>de</strong>s ao valor <strong>de</strong> uma variável fungível<br />

e a transacção subtrai uma unida<strong>de</strong>, o cliente fica apenas com o direito <strong>de</strong> subtrair duas unida<strong>de</strong>s a essa<br />

variável. Todas as outras reservas permanec<strong>em</strong> válidas (até expirar<strong>em</strong> ou ser<strong>em</strong> <strong>de</strong>volvidas).<br />

Após executar a transacção, o servidor refaz as acções necessárias ao respeito das reservas que per-<br />

manec<strong>em</strong> válidas.<br />

8.5 Ex<strong>em</strong>plos<br />

Nesta secção apresentam-se ex<strong>em</strong>plos da utilização <strong>de</strong> reservas para garantir o resultado <strong>de</strong> transacções<br />

móveis.<br />

Recursos fungíveis anónimos A figura 8.1 representa uma operação típica executada num sist<strong>em</strong>a <strong>de</strong><br />

suporte a uma força <strong>de</strong> vendas <strong>móvel</strong>: um pedido <strong>de</strong> encomenda. O pedido <strong>de</strong> encomenda é satisfeito se<br />

a existência disponível permite satisfazer o pedido e o preço do produto não é superior ao preço máximo<br />

que o comprador está disposto a pagar.<br />

Na tabela 8.2 apresentam-se as reservas obtidas pelo ven<strong>de</strong>dor <strong>móvel</strong>. Para cada reserva, mantém-se<br />

a seguinte informação: o i<strong>de</strong>ntificador único da reserva, id; o tipo da reserva; as colunas reservadas<br />

nos registos seleccionados na tabela pela condição; o valor do(s) el<strong>em</strong>ento(s) reservado(s); informação<br />

adicional específica para cada tipo <strong>de</strong> reserva (por ex<strong>em</strong>plo, o tipo <strong>de</strong> restrição das reservas escrow);<br />

informação <strong>de</strong> ligação com outra reserva; e data <strong>de</strong> expiração da reserva. A data <strong>de</strong> expiração permite<br />

ao sist<strong>em</strong>a não usar reservas que expir<strong>em</strong> antes do próximo contacto esperado com o servidor. A ligação<br />

permite associar uma reserva a outra, <strong>de</strong> modo a que apenas seja possível usar a primeira se se usar<br />

também a segunda. Neste ex<strong>em</strong>plo, a reserva value-use está ligada à reserva escrow, <strong>de</strong> modo a que o<br />

ven<strong>de</strong>dor <strong>móvel</strong> apenas possa garantir o preço reservado (com a reserva value-use) para as unida<strong>de</strong>s <strong>de</strong><br />

produto reservadas (com a reserva escrow).<br />

Quando a transacção é executada no cliente, é óbvio que as duas reservas são necessárias para garantir<br />

o resultado da condição expressa na instrução if (linha 4). A reserva escrow garante que prd_stock ≥ 10<br />

é verda<strong>de</strong>iro quando a transacção é executada no servidor. Na verda<strong>de</strong>, a reserva é mais geral e permite<br />

garantir a subtracção <strong>de</strong> até quinze unida<strong>de</strong>s ao valor <strong>de</strong> prd_stock com a restrição global prd_stockclt ≥

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

Saved successfully!

Ooh no, something went wrong!