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.

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

se impedir a execução da operação <strong>de</strong> modificação da estrutura.<br />

O mo<strong>de</strong>lo <strong>de</strong> divisão (escrow) [111] permite dividir o valor <strong>de</strong> uma variável que represente um re-<br />

curso divisível (por ex<strong>em</strong>plo, a existência –stock– <strong>de</strong> um qualquer produto) sujeita a uma dada restrição<br />

(por ex<strong>em</strong>plo, o valor da existência do produto <strong>de</strong>ve ser maior ou igual a zero) por um conjunto <strong>de</strong> en-<br />

tida<strong>de</strong>s (transacções, réplicas). Cada entida<strong>de</strong> po<strong>de</strong> garantir o sucesso das operações que apenas usam a<br />

parte dos recursos que lhe foram atribuídos (garantindo assim que a restrição global permanece válida).<br />

As operações executadas s<strong>em</strong> coor<strong>de</strong>nação po<strong>de</strong>m ser unificadas <strong>de</strong> forma simples porque apenas po<strong>de</strong>m<br />

ser executadas operações comutativas (adição e subtracção) sobre as variáveis partilhadas. Para manipu-<br />

lar estas variáveis, foram introduzidas funções especiais. Este mo<strong>de</strong>lo po<strong>de</strong> ser utilizado para suportar<br />

uma aplicação <strong>de</strong> suporte a uma força <strong>de</strong> vendas num ambiente <strong>de</strong> <strong>computação</strong> <strong>móvel</strong> [90].<br />

O mo<strong>de</strong>lo <strong>de</strong> divisão po<strong>de</strong> ser generalizado explorando a s<strong>em</strong>ântica dos objectos [168]. A i<strong>de</strong>ia con-<br />

siste <strong>em</strong> dividir objectos gran<strong>de</strong>s e complexos <strong>em</strong> fragmentos menores que obe<strong>de</strong>c<strong>em</strong> a certas restrições.<br />

Cada fragmento po<strong>de</strong> ser modificado in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente, <strong>de</strong>s<strong>de</strong> que as restrições associadas não sejam<br />

violadas. A unificação dos fragmentos po<strong>de</strong> ser efectuada usando a informação s<strong>em</strong>ântica disponível.<br />

Esta aproximação e a aproximação usada no sist<strong>em</strong>a Prospero [42] apenas po<strong>de</strong>m ser usadas <strong>de</strong> forma<br />

a<strong>de</strong>quada <strong>em</strong> alguns tipos <strong>de</strong> <strong>dados</strong> e são mais apropriadas para sist<strong>em</strong>as <strong>de</strong> bases <strong>de</strong> <strong>dados</strong> orientadas<br />

para os objectos, nos quais as operações que po<strong>de</strong>m ser executadas para modificar o tipo <strong>de</strong> <strong>dados</strong> são<br />

complexas e estão pré-<strong>de</strong>finidas.<br />

O sist<strong>em</strong>a Mobisnap <strong>de</strong>fine um mo<strong>de</strong>lo <strong>de</strong> prevenção <strong>de</strong> conflitos baseado na utilização <strong>de</strong> reservas.<br />

Este mo<strong>de</strong>lo combina e impl<strong>em</strong>enta um conjunto <strong>de</strong> técnicas <strong>de</strong> prevenção <strong>de</strong> conflitos (entre as quais a<br />

utilização <strong>de</strong> trincos <strong>de</strong> pequena granularida<strong>de</strong> e do mo<strong>de</strong>lo da divisão). Como se mostrou na secção 8.5,<br />

a combinação <strong>de</strong> diferentes técnicas é fundamental para a sua utilida<strong>de</strong> num sist<strong>em</strong>a genérico <strong>de</strong> bases<br />

<strong>de</strong> <strong>dados</strong> relacionais. O sist<strong>em</strong>a Mobisnap verifica, <strong>de</strong> forma transparente, se as reservas disponíveis são<br />

suficientes para garantir uma transacção <strong>móvel</strong>. Esta aproximação permite aos programadores <strong>de</strong>finir<strong>em</strong><br />

as transacções da forma habitual (i.e., s<strong>em</strong> usar<strong>em</strong> funções especiais para manipular el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong><br />

reservados) e utilizar todas as reservas disponíveis (e não apenas aquelas que tenham sido especificadas<br />

no código da transacção).<br />

Além <strong>de</strong> evitar os conflitos é possível diminuir a probabilida<strong>de</strong> da sua ocorrência usando técnicas <strong>de</strong><br />

controlo <strong>de</strong> divergência. Vários métodos <strong>de</strong> <strong>de</strong>finir a divergência entre réplicas foram propostos, assim<br />

como algoritmos para limitar esta divergência [6, 135, 89]. O sist<strong>em</strong>a TACT [173] permite controlar<br />

a divergência entre um conjunto <strong>de</strong> réplicas usando várias métricas <strong>de</strong> divergência. Esta aproximação<br />

permite às aplicações <strong>de</strong>finir<strong>em</strong> a divergência máxima aceitável.<br />

Os mecanismos <strong>de</strong> controlo <strong>de</strong> divergência não po<strong>de</strong>m ser usados para garantir o resultado <strong>de</strong> uma<br />

operação, mas apenas para diminuir a probabilida<strong>de</strong> da ocorrência <strong>de</strong> um conflito que impeça a sua

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

Saved successfully!

Ooh no, something went wrong!