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.

172 CAPÍTULO 10. SISTEMA DE RECONCILIAÇÃO SQLICECUBE<br />

init stats<br />

IF c1 THEN<br />

IF c2 THEN<br />

alt. stats 1<br />

COMMIT<br />

ELSE<br />

alt. stats 2<br />

COMMIT<br />

ENDIF<br />

ELSEIF c3 THEN<br />

alt. stats 3<br />

COMMIT<br />

ELSE<br />

ROLLBACK<br />

ENDIF<br />

init stats<br />

IF c1 AND c2 THEN<br />

alt. stats 1<br />

COMMIT<br />

ELSE<br />

ABORT<br />

ENDIF<br />

init stats<br />

IF c1 AND NOT c2<br />

THEN<br />

alt. stats 2<br />

COMMIT<br />

ELSE<br />

ABORT<br />

ENDIF<br />

conjunto or<strong>de</strong>nado <strong>de</strong><br />

alternativas<br />

init stats<br />

IF c3 AND NOT c1<br />

THEN<br />

alt. stats 3<br />

COMMIT<br />

ELSE<br />

ABORT<br />

ENDIF<br />

Figura 10.10: Divisão <strong>de</strong> uma transacção composta por um conjunto <strong>de</strong> instruções if enca<strong>de</strong>adas num<br />

conjunto or<strong>de</strong>nado <strong>de</strong> transacções alternativas.<br />

figuras 10.9 e 10.10 apresentam-se ex<strong>em</strong>plos <strong>de</strong>ste pré-processamento.<br />

• A divisão <strong>de</strong> uma transacção longa num conjunto <strong>de</strong> pequenas transacções associadas num grupo<br />

indivisível e ligadas, se necessário, pela relação pre<strong>de</strong>cessor/sucessor.<br />

O sist<strong>em</strong>a po<strong>de</strong> ainda inferir automaticamente a causalida<strong>de</strong> entre as transacções submetidas por<br />

uma aplicação usando a seguinte regra: se uma transacção ace<strong>de</strong>r (ler ou modificar) a um el<strong>em</strong>ento<br />

<strong>de</strong> <strong>dados</strong> escrito por uma transacção submetida anteriormente, po<strong>de</strong> assumir-se que existe uma relação<br />

pre<strong>de</strong>cessor/sucessor fraco (a segunda transacção <strong>de</strong>ve ser executada após a execução da primeira).<br />

10.6 Observações finais<br />

O sist<strong>em</strong>a SqlIceCube é um sist<strong>em</strong>a <strong>de</strong> reconciliação genérico que aborda o processo <strong>de</strong> reconciliação<br />

como um probl<strong>em</strong>a <strong>de</strong> optimização, aproximação da qual foi pioneiro o sist<strong>em</strong>a IceCube [85]. O sist<strong>em</strong>a<br />

pesquisa o espaço <strong>de</strong> possíveis soluções eficient<strong>em</strong>ente [133, 134] com base numa heurística baseada na<br />

informação s<strong>em</strong>ântica associada às transacções móveis.<br />

Ao contrário dos sist<strong>em</strong>as <strong>de</strong> reconciliação que exig<strong>em</strong> que o programador exponha a s<strong>em</strong>ântica<br />

das operações, o sist<strong>em</strong>a SqlIceCube é o primeiro a incluir um mecanismo <strong>de</strong> inferência automática<br />

que permite extrair a informação s<strong>em</strong>ântica necessária a partir do código das transacções móveis. Esta<br />

aproximação permite simplificar bastante a utilização dum sist<strong>em</strong>a <strong>de</strong> reconciliação baseado na utilização<br />

da informação s<strong>em</strong>ântica. Uma aplicação po<strong>de</strong>, caso o <strong>de</strong>seje, impor relações arbitrárias adicionais entre<br />

as transacções que executa.<br />

Os ex<strong>em</strong>plos apresentados mostram que, caso se tenham alguns cui<strong>dados</strong> na <strong>de</strong>finição das transac-<br />

ções móveis, o sist<strong>em</strong>a SqlIceCube consegue inferir as relações s<strong>em</strong>ânticas esperadas. As extensões<br />

propostas permit<strong>em</strong> eliminar (a maioria) esses cui<strong>dados</strong>.

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

Saved successfully!

Ooh no, something went wrong!