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

asc.di.fct.unl.pt
from asc.di.fct.unl.pt More from this publisher
11.04.2013 Views

194 CAPÍTULO 12. CONCLUSÕES aos dados não replicados localmente, esta aproximação permite ao utilizador decidir as situações em que pode produzir contribuições úteis através da submissão de operações de modificação dos dados. Como estas operações são sujeitas ao mecanismo de reconciliação do sistema, garante-se a sua integração no estado comum dos dados de forma correcta. Os sistemas de gestão de dados apresentados também integram mecanismos de tratamento da infor- mação sobre a evolução dos dados. Este problema é geralmente negligenciado pelos sistemas de gestão de dados, apesar desta informação ter sido identificada como importante para o sucesso de uma activi- dade cooperativa [43, 65, 99]. O mecanismo implementado é igualmente importante na notificação do resultado final das operações executadas por cada utilizador, o qual apenas é conhecido após a execução final do mecanismo de reconciliação. A implementação destas características comuns em cada um dos sistemas de gestão de dados apre- sentados exigiu a sua adaptação e possível extensão de acordo com o modelo de dados usado em cada um dos sistemas. Por exemplo, a implementação da invocação cega no repositório de objectos DOORS, inclui a integração de um mecanismo de criação de cópias de substituição para que se possa observar o resultado provisório das operações submetidas. Além destas características comuns, os sistemas de ges- tão de dados apresentam igualmente um conjunto de características específicas, das quais se resumem de seguida as mais importantes. O DOORS é um repositório de objectos desenhado para suportar a criação de aplicações de trabalho em grupo tipicamente assíncrono. Uma das principais características deste sistema consiste na possibi- lidade de definir soluções específicas de gestão de dados partilhados usando diferentes estratégias em diferentes tipos de dados. Para tal, definiu-se o framework de componentes DOORS, que decompõe o funcionamento de um objecto em vários componentes. Cada componente lida com um aspecto específico da gestão de dados partilhados, entre os quais se destacam, a reconciliação e o tratamento da informação sobre a evolução dos dados e da actividade cooperativa. Os programadores podem criar uma solução global de gestão de dados com base num conjunto de soluções pré-definidas para cada um dos problemas identificados. O framework de componentes definido é uma contribuição original do sistema DOORS. O sistema DOORS propõe igualmente um modelo de integração de sessões de trabalho síncrono de curta duração no âmbito de uma sessão assíncrona de longa duração, no qual se podem usar as técnicas de gestão de dados (por exemplo, reconciliação) adequadas a cada um dos modos. Ao contrário da genera- lidade dos sistemas de suporte ao trabalho cooperativo, este modelo lida explicitamente com o problema da diferença de granularidade entre as operações síncronas e assíncronas em algumas aplicações. O Mobisnap é um sistema de gestão de bases de dados relacional para ambientes de computação móvel. Neste sistema, os utilizadores modificam a base de dados através da submissão de pequenos programas escritos em PL/SQL, a que se chamam transacções móveis. O código das transacções móveis

12.1. SUMÁRIO 195 é executado no cliente e no servidor, o que permite definir regras de detecção e resolução de conflitos que explorem a informação semântica associada à operação (e às intenções do utilizador). O Mobisnap integra um mecanismo de prevenção de conflitos baseado na utilização de reservas. Este mecanismo permite garantir o resultado das transacções móveis de forma independente. Relativamente a propostas anteriores, o mecanismo de reservas apresenta as seguintes contribuições. Primeiro, integra vários tipos de reservas, o que se demonstrou ser fundamental para garantir o resultado de um grande nú- mero de transacções. Segundo, o sistema verifica de forma transparente se é possível garantir o resultado de uma transacção móvel com base no seu código e nas reservas disponíveis localmente. Esta proprie- dade permite explorar todas as reservas para garantir qualquer transacção sem que exista necessidade de modificar a forma como estas são escritas. Terceiro, implementa o mecanismo de reservas num sistema baseado em SQL e de forma integrada com o modelo de execução das transacções móveis, permitindo definir um modelo integrado que combina técnicas de prevenção e resolução de conflitos. Resultados obtidos por simulação mostram que o mecanismo de reservas permite suportar a opera- ção independente numa aplicação de suporte a uma força de vendas móvel. Mesmo usando estratégias simples na obtenção de reservas, é possível garantir, de forma independente, mais de 80% das encomen- das submetidas no pior cenário estudado, em que não existe previsão das encomendas a receber e os vendedores não obtém reservas inicialmente. Nesta dissertação descreve-se ainda um novo sistema genérico de reconciliação de transacções mó- veis, o sistema SqlIceCube. Este sistema é usado quando é necessário executar um conjunto de transac- ções móveis no servidor do sistema Mobisnap. No SqlIceCube, a reconciliação é vista como um pro- blema de optimização que consiste em determinar a melhor sequência de transacções móveis que podem ser executadas com sucesso. Em particular, a reconciliação é vista como um problema de planeamento em vez de um problema de resolução de restrições (binárias), como acontecia no sistema IceCube [134], seu antecessor. Esta aproximação permite lidar de forma correcta com pares de transacções cujos efei- tos se anulam. Esta nova aproximação obrigou a definir um novo conjunto de relações para exprimir a informação semântica em problemas de reconciliação. Este sistema inclui ainda um mecanismo original de extracção automática de informação semântica a partir do código das transacções móveis. Este meca- nismo é o primeiro a inferir automaticamente a informação necessária à reconciliação a partir do código das operações e é fundamental para permitir a submissão de transacções móveis genéricas. A implementação do sistema Mobisnap descrita nesta dissertação, como uma camada de sistema intermédia (middleware), representa uma aproximação evolutiva à computação móvel. Assim, as aplica- ções que executam o sistema Mobsnap podem utilizar as novas funcionalidades enquanto se permite que as aplicações legadas continuem a aceder directamente à base de dados central sem nenhuma modifica- ção. Adicionalmente, os mecanismos de reservas e reconciliação integrados no sistema são totalmente

12.1. SUMÁRIO 195<br />

é executado no cliente e no servidor, o que permite <strong>de</strong>finir regras <strong>de</strong> <strong>de</strong>tecção e resolução <strong>de</strong> conflitos<br />

que explor<strong>em</strong> a informação s<strong>em</strong>ântica associada à operação (e às intenções do utilizador).<br />

O Mobisnap integra um mecanismo <strong>de</strong> prevenção <strong>de</strong> conflitos baseado na utilização <strong>de</strong> reservas. Este<br />

mecanismo permite garantir o resultado das transacções móveis <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte. Relativamente<br />

a propostas anteriores, o mecanismo <strong>de</strong> reservas apresenta as seguintes contribuições. Primeiro, integra<br />

vários tipos <strong>de</strong> reservas, o que se <strong>de</strong>monstrou ser fundamental para garantir o resultado <strong>de</strong> um gran<strong>de</strong> nú-<br />

mero <strong>de</strong> transacções. Segundo, o sist<strong>em</strong>a verifica <strong>de</strong> forma transparente se é possível garantir o resultado<br />

<strong>de</strong> uma transacção <strong>móvel</strong> com base no seu código e nas reservas disponíveis localmente. Esta proprie-<br />

da<strong>de</strong> permite explorar todas as reservas para garantir qualquer transacção s<strong>em</strong> que exista necessida<strong>de</strong> <strong>de</strong><br />

modificar a forma como estas são escritas. Terceiro, impl<strong>em</strong>enta o mecanismo <strong>de</strong> reservas num sist<strong>em</strong>a<br />

baseado <strong>em</strong> SQL e <strong>de</strong> forma integrada com o mo<strong>de</strong>lo <strong>de</strong> execução das transacções móveis, permitindo<br />

<strong>de</strong>finir um mo<strong>de</strong>lo integrado que combina técnicas <strong>de</strong> prevenção e resolução <strong>de</strong> conflitos.<br />

Resultados obtidos por simulação mostram que o mecanismo <strong>de</strong> reservas permite suportar a opera-<br />

ção in<strong>de</strong>pen<strong>de</strong>nte numa aplicação <strong>de</strong> suporte a uma força <strong>de</strong> vendas <strong>móvel</strong>. Mesmo usando estratégias<br />

simples na obtenção <strong>de</strong> reservas, é possível garantir, <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte, mais <strong>de</strong> 80% das encomen-<br />

das submetidas no pior cenário estudado, <strong>em</strong> que não existe previsão das encomendas a receber e os<br />

ven<strong>de</strong>dores não obtém reservas inicialmente.<br />

Nesta dissertação <strong>de</strong>screve-se ainda um novo sist<strong>em</strong>a genérico <strong>de</strong> reconciliação <strong>de</strong> transacções mó-<br />

veis, o sist<strong>em</strong>a SqlIceCube. Este sist<strong>em</strong>a é usado quando é necessário executar um conjunto <strong>de</strong> transac-<br />

ções móveis no servidor do sist<strong>em</strong>a Mobisnap. No SqlIceCube, a reconciliação é vista como um pro-<br />

bl<strong>em</strong>a <strong>de</strong> optimização que consiste <strong>em</strong> <strong>de</strong>terminar a melhor sequência <strong>de</strong> transacções móveis que po<strong>de</strong>m<br />

ser executadas com sucesso. Em particular, a reconciliação é vista como um probl<strong>em</strong>a <strong>de</strong> planeamento<br />

<strong>em</strong> vez <strong>de</strong> um probl<strong>em</strong>a <strong>de</strong> resolução <strong>de</strong> restrições (binárias), como acontecia no sist<strong>em</strong>a IceCube [134],<br />

seu antecessor. Esta aproximação permite lidar <strong>de</strong> forma correcta com pares <strong>de</strong> transacções cujos efei-<br />

tos se anulam. Esta nova aproximação obrigou a <strong>de</strong>finir um novo conjunto <strong>de</strong> relações para exprimir a<br />

informação s<strong>em</strong>ântica <strong>em</strong> probl<strong>em</strong>as <strong>de</strong> reconciliação. Este sist<strong>em</strong>a inclui ainda um mecanismo original<br />

<strong>de</strong> extracção automática <strong>de</strong> informação s<strong>em</strong>ântica a partir do código das transacções móveis. Este meca-<br />

nismo é o primeiro a inferir automaticamente a informação necessária à reconciliação a partir do código<br />

das operações e é fundamental para permitir a submissão <strong>de</strong> transacções móveis genéricas.<br />

A impl<strong>em</strong>entação do sist<strong>em</strong>a Mobisnap <strong>de</strong>scrita nesta dissertação, como uma camada <strong>de</strong> sist<strong>em</strong>a<br />

intermédia (middleware), representa uma aproximação evolutiva à <strong>computação</strong> <strong>móvel</strong>. Assim, as aplica-<br />

ções que executam o sist<strong>em</strong>a Mobsnap po<strong>de</strong>m utilizar as novas funcionalida<strong>de</strong>s enquanto se permite que<br />

as aplicações legadas continu<strong>em</strong> a ace<strong>de</strong>r directamente à base <strong>de</strong> <strong>dados</strong> central s<strong>em</strong> nenhuma modifica-<br />

ção. Adicionalmente, os mecanismos <strong>de</strong> reservas e reconciliação integrados no sist<strong>em</strong>a são totalmente

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

Saved successfully!

Ooh no, something went wrong!