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.

186 CAPÍTULO 11. TRABALHO RELACIONADO<br />

<strong>de</strong> uma nova operação ou <strong>de</strong> nenhuma operação. O sist<strong>em</strong>a usa estas regras para tratar as ope-<br />

rações executadas concorrent<strong>em</strong>ente (e <strong>de</strong>finir a sequência final <strong>de</strong> operações a executar). Uma<br />

característica interessante <strong>de</strong>ste sist<strong>em</strong>a é a possibilida<strong>de</strong> <strong>de</strong> as regras <strong>de</strong> resolução <strong>de</strong> conflitos <strong>de</strong><br />

um objecto po<strong>de</strong>r<strong>em</strong> ser <strong>de</strong>finidas como a composição das regras <strong>de</strong> resolução dos objectos que<br />

o compõ<strong>em</strong>. Uma aproximação s<strong>em</strong>elhante foi usada para um sist<strong>em</strong>a <strong>de</strong> ficheiros [138]. Neste<br />

caso, um sist<strong>em</strong>a <strong>de</strong> prova, baseado num conjunto <strong>de</strong> regras algébricas que <strong>de</strong>fin<strong>em</strong> o resultado<br />

da combinação <strong>de</strong> duas operações executadas concorrent<strong>em</strong>ente, é usado para produzir uma or-<br />

<strong>de</strong>m canónica. As operações com conflitos que não po<strong>de</strong>m ser resolvidos não são incluídas na<br />

sequência <strong>de</strong> operações a executar (os utilizadores po<strong>de</strong>m posteriormente resolver estes conflitos<br />

manualmente).<br />

• Optimizar a sequência <strong>de</strong> operações que po<strong>de</strong>m ser executadas, or<strong>de</strong>nando as operações <strong>de</strong> acordo<br />

com as suas proprieda<strong>de</strong>s/efeitos. Em [123], os autores propõ<strong>em</strong> que as transacções executadas<br />

provisoriamente num cliente <strong>móvel</strong> sejam integradas numa qualquer posição da história da réplica<br />

principal (impl<strong>em</strong>entando uma forma mais fraca <strong>de</strong> snapshot isolation). O algoritmo mantém uma<br />

sequência <strong>de</strong> versões da base <strong>de</strong> <strong>dados</strong> e integra uma transacção nesta sequência (criando uma<br />

nova versão da base <strong>de</strong> <strong>dados</strong>) <strong>de</strong> forma óptima. Para tal, cada transacção inclui uma função <strong>de</strong><br />

resolução <strong>de</strong> conflitos (que especifica o resultado da execução da transacção numa dada versão da<br />

base <strong>de</strong> <strong>dados</strong>) e uma função <strong>de</strong> custo (que especifica o custo <strong>de</strong> executar a transacção numa dada<br />

versão da base <strong>de</strong> <strong>dados</strong>).<br />

No sist<strong>em</strong>a IceCube [85], a or<strong>de</strong>nação das operações é vista como um probl<strong>em</strong>a <strong>de</strong> optimização, no<br />

qual se procura maximizar as operações que po<strong>de</strong>m ser executadas com sucesso usando informação<br />

s<strong>em</strong>ântica associada às operações. O sist<strong>em</strong>a SqlIceCube, apresentado nesta dissertação, esten<strong>de</strong><br />

esta aproximação através da extracção automática <strong>de</strong> informação s<strong>em</strong>ântica a partir do código das<br />

transacções (usando técnicas <strong>de</strong> análise estática <strong>de</strong> programas [49]).<br />

• Transformar as operações <strong>de</strong> forma a preservar as intenções dos utilizadores. As operações sub-<br />

metidas concorrent<strong>em</strong>ente têm <strong>de</strong> ser executadas sequencialmente, pelo que, quando se executa<br />

uma operação, o estado do objecto po<strong>de</strong> ser diferente do estado observado aquando da submissão<br />

da operação. A transformação <strong>de</strong> operações [46, 159, 118] é usada para modificar as operações <strong>de</strong><br />

forma a que o resultado da sua execução seja o esperado aquando da sua submissão. Esta técnica<br />

é usada geralmente na edição síncrona <strong>de</strong> documentos e folhas <strong>de</strong> cálculo (e parece especialmente<br />

indicada para lidar com a modificação <strong>de</strong> parâmetros que indicam a posição <strong>de</strong> um el<strong>em</strong>ento que<br />

po<strong>de</strong> ser modificada através <strong>de</strong> operações <strong>de</strong> inserção e r<strong>em</strong>oção). Convém realçar que, como se<br />

referiu anteriormente, a transformação <strong>de</strong> operações po<strong>de</strong> ser usada igualmente para permitir a

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

Saved successfully!

Ooh no, something went wrong!