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.

132 CAPÍTULO 9. AVALIAÇÃO DO MODELO BÁSICO DO SISTEMA MOBISNAP<br />

1 ------ CANCELA ENCOMENDA: id = 3<br />

2 BEGIN<br />

3 SELECT status,product,qty INTO l_status,l_prod,l_qty FROM or<strong>de</strong>rs WHERE id = 3;<br />

4 IF l_status = ’to process’ THEN<br />

5 UPDATE or<strong>de</strong>rs SET status = ’cancelled’ WHERE id = 3;<br />

6 UPDATE products SET stock = stock + l_qty WHERE id = l_prod;<br />

7 COMMIT;<br />

8 ELSE<br />

9 ROLLBACK;<br />

10 END IF;<br />

11 END;<br />

Figura 9.1: Transacção <strong>móvel</strong> que cancela uma encomenda introduzida anteriormente (o bloco <strong>de</strong> <strong>de</strong>cla-<br />

ração <strong>de</strong> variáveis é omitido).<br />

1. acesso à informação sobre os produtos e clientes;<br />

2. submissão <strong>de</strong> uma nova encomenda;<br />

3. cancelamento <strong>de</strong> uma encomenda submetida anteriormente.<br />

Para permitir o acesso à informação sobre produtos e clientes, o ven<strong>de</strong>dor <strong>móvel</strong> obtém uma cópia<br />

parcial da informação presente na base <strong>de</strong> <strong>dados</strong> central antes <strong>de</strong> se <strong>de</strong>sconectar. Esta cópia parcial<br />

<strong>de</strong>ve incluir, pelo menos, informação sobre o subconjunto <strong>de</strong> clientes que o ven<strong>de</strong>dor se propõe visitar<br />

e os produtos que esses clientes estão interessados. Na aplicação <strong>de</strong>senvolvida [32], os clientes e os<br />

ven<strong>de</strong>dores são agrupados <strong>em</strong> zonas geográficas. A cópia parcial <strong>de</strong> cada ven<strong>de</strong>dor inclui os clientes<br />

da zona que ele visita e os produtos que eles encomendaram anteriormente. O ven<strong>de</strong>dor t<strong>em</strong> ainda a<br />

possibilida<strong>de</strong> <strong>de</strong> seleccionar <strong>dados</strong> adicionais para ser<strong>em</strong> mantidos na sua cópia local.<br />

O ven<strong>de</strong>dor executa as operações <strong>de</strong> submissão e cancelamento <strong>de</strong> uma encomenda usando a interface<br />

gráfica da aplicação. Na submissão <strong>de</strong> uma encomenda o ven<strong>de</strong>dor especifica o produto, quantida<strong>de</strong><br />

e preço máximo aceitável para a encomenda. Adicionalmente, po<strong>de</strong> especificar valores alternativos<br />

caso seja impossível satisfazer o pedido do cliente. No cancelamento <strong>de</strong> uma encomenda, o ven<strong>de</strong>dor<br />

especifica a encomenda aceite pelo sist<strong>em</strong>a que <strong>de</strong>ve ser cancelada.<br />

As operações executadas pelos ven<strong>de</strong>dores são expressas como transacções móveis criadas pela apli-<br />

cação. Para produtos fungíveis, as transacções móveis das figuras 7.1 e 9.1 ex<strong>em</strong>plificam, respectiva-<br />

mente, as operações <strong>de</strong> submissão e cancelamento <strong>de</strong> uma encomenda. A transacção <strong>de</strong> cancelamento<br />

obtém a informação sobre a encomenda a cancelar e, caso a encomenda ainda não tenha sido processada,<br />

efectua as necessárias actualizações. Para produtos não fungíveis, a figura 8.2 ex<strong>em</strong>plifica a operação <strong>de</strong><br />

submissão <strong>de</strong> uma encomenda (o cancelamento <strong>de</strong> uma encomenda é s<strong>em</strong>elhante à operação <strong>de</strong> cancela-<br />

mento para produtos fungíveis). Estas transacções exprim<strong>em</strong> a s<strong>em</strong>ântica dos pedidos efectuados pelos<br />

clientes, verificando se é possível satisfazer as condições expressas. Adicionalmente, seria possível re-<br />

solver eventuais conflitos indicando modificações alternativas no código das transacções móveis.

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

Saved successfully!

Ooh no, something went wrong!