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
16 CAPÍTULO 2. PRINCÍPIOS GERAIS inferir quais as operações executadas a partir do novo estado do objecto (por comparação com o estado inicial). Quando se propagam as operações é possível associar a cada operação informação semântica usada durante a reconciliação. Por exemplo, podem incluir-se regras de detecção e resolução de conflitos. Assim, e para maximizar a informação semântica que pode ser usada durante a reconciliação, as soluções apresentadas nesta dissertação são baseadas na propagação de operações. 2.3.4 Informação sobre a evolução dos dados e da actividade cooperativa Quando se permite que múltiplos utilizadores modifiquem concorrentemente dados partilhados, é muitas vezes importante fornecer informação sobre a sua evolução. No exemplo do editor cooperativo apre- sentado anteriormente, um utilizador pode estar interessado em saber quais as alterações efectuadas ao documento recentemente. O acesso a este tipo de informação é importante para o sucesso das actividades cooperativas, como foi reconhecido na literatura de trabalho cooperativo há algum tempo [47, 65, 43]. A esta informação dá-se o nome de informação de awareness 5 . Num sistema baseado em replicação optimista é necessário reconciliar modificações conflituantes. Assim, é comum que o resultado final duma operação (i.e., o modo como a operação afecta o estado “oficial” dos dados) apenas seja definitivamente conhecido após a reconciliação das várias réplicas. Das características anteriores resultam três factos importantes. Primeiro, os utilizadores não têm geralmente conhecimento imediato do resultado das operações que submetem. Este facto sugere a ne- cessidade de existir um mecanismo que permita notificar os utilizadores do resultado final das operações. Por exemplo, na agenda partilhada os utilizadores devem ser informados do resultado definitivo das suas marcações. Segundo, a informação sobre a evolução dos dados apenas pode ser criada aquando do processo de reconciliação porque apenas neste momento é determinado o resultado final da operação. Assim, a criação da informação deve estar integrada com o mecanismo de reconciliação. Finalmente, os utilizadores podem não estar a usar o computador ou a aplicação em que executaram as operações quando o resultado final destas é determinado. Assim, se se pretender informar imediata- mente o utilizador do resultado das suas operações, pode não ser suficiente propagar o resultado para a máquina em que foram executadas, porque esta máquina pode estar desligada/desconectada ou o utiliza- dor pode não estar a utilizá-la. Actualmente, com o uso generalizado de telefones móveis, é geralmente possível enviar informação para os utilizadores através de mensagens curtas (por exemplo, o serviço SMS nas redes GSM). Assim, o sistema deve usar os meios disponíveis para propagar a informação 5 O termo inglês awareness é, por vezes, traduzido pelos termos consciência, conhecimento ou sensibilização. No entanto, por se considerar que a utilização destas traduções não incluem o sentido completo do termo original, obscurecendo o texto, decidiu-se utilizar o termo inglês em itálico.
2.3. PRINCÍPIOS 17 sobre a evolução dos dados para os utilizadores, mesmo aqueles que podem ser considerar exteriores ao sistema. Dos exemplos apresentados, é necessário realçar que não existe um modo único de fornecer infor- mação sobre a evolução dos dados. Nuns casos, esta informação deve ser apresentada quando se acede aos dados — o editor cooperativo é um exemplo. Noutros casos é necessário propagar a informação directamente para os utilizadores — a agenda partilhada é um exemplo. Assim, o modo como esta infor- mação é tratada pelo sistema deve ser definida em função das características específicas da aplicação (e muitas vezes dentro de uma mesma aplicação é necessário adaptar o modo de tratamento à situação e ao utilizador). Embora as características apresentadas anteriormente sejam comuns à generalidade dos sistemas que suportam operação desconectada [115, 85, 59, 161, 79, 87], o problema de fornecer informação sobre a evolução dos dados é geralmente negligenciada. Este facto leva os programadores a implementar soluções ad-hoc sem o conveniente suporte por parte do sistema. Nesta dissertação apresentam-se soluções em que a criação e o tratamento da informação sobre a evolução dos dados estão completamente integrados no sistema. Todas as operações efectuadas pelos utilizadores podem gerar informação e o modo como esta informação é tratada pode depender da aplica- ção ou situação. O sistema fornece suporte para a propagação da informação para os utilizadores através de mecanismos exteriores ao sistema. O sistema também permite que esta informação seja mantida com os dados para posterior acesso pelos utilizadores. Alguns sistemas de suporte ao trabalho coope- rativo [16, 44, 97] incluem este tipo de mecanismos. No entanto, nesta dissertação apresenta-se uma nova aproximação através da integração destes mecanismos ao nível dos tipos de dados e das operações definidas. 2.3.5 Replicação secundária parcial A replicação dos dados em vários servidores não garante a disponibilidade dos dados durante os períodos de desconexão. Para tal, é comum recorrer a um mecanismo de replicação secundária (caching) para manter cópias parciais dos dados nos computadores portáteis. No sistema Coda [87], bem como noutros sistemas de ficheiros distribuídos, a unidade de replicação secundária é o ficheiro. Esta aproximação permite uma semântica simples e clara de acesso aos ficheiros: ou é possível aceder ao ficheiro completo ou não é possível aceder a nenhuma parte do ficheiro (quando não existe uma cópia local). Quando os ficheiros são muito longos, pode ser impossível a um dispositivo móvel com recursos limitados manter cópias de ficheiros completos. Adicionalmente, o tempo necessá- rio para transmitir uma cópia total dum ficheiro pode ser inaceitável — este problema acentua-se para dispositivos móveis que utilizam redes de comunicação sem fios com reduzida largura de banda.
- Page 1 and 2: Universidade Nova de Lisboa Faculda
- Page 3: Agradecimentos Para a realização
- Page 7 and 8: Abstract The widespread use of mobi
- Page 9 and 10: Conteúdo 1 Introdução 1 1.1 Moti
- Page 11 and 12: CONTEÚDO xi 5 Avaliação do model
- Page 13 and 14: CONTEÚDO xiii 10 Sistema de reconc
- Page 15 and 16: Lista de Figuras 3.1 Arquitectura d
- Page 17 and 18: Lista de Tabelas 8.1 Tabela de comp
- Page 19 and 20: Capítulo 1 Introdução Os avanço
- Page 21 and 22: 1.2. SISTEMAS DISTRIBUÍDOS DE GEST
- Page 23 and 24: 1.3. VISÃO GERAL E CONTRIBUIÇÕES
- Page 25 and 26: 1.3. VISÃO GERAL E CONTRIBUIÇÕES
- Page 27 and 28: Capítulo 2 Princípios gerais No c
- Page 29 and 30: 2.2. MOTIVAÇÃO - ALGUMAS APLICAÇ
- Page 31 and 32: 2.3. PRINCÍPIOS 13 garantir a disp
- Page 33: 2.3. PRINCÍPIOS 15 obter o estado
- Page 37 and 38: 2.3. PRINCÍPIOS 19 2.3.6 Invocaç
- Page 39 and 40: 2.3. PRINCÍPIOS 21 solúveis). As
- Page 41 and 42: Capítulo 3 Apresentação do siste
- Page 43 and 44: 3.1. MODELO GERAL 25 para a activid
- Page 45 and 46: 3.1. MODELO GERAL 27 Aplicação At
- Page 47 and 48: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 49 and 50: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 51 and 52: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 53 and 54: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 55 and 56: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 57 and 58: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 59 and 60: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 61 and 62: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 63 and 64: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 65 and 66: 3.4. FRAMEWORK DE COMPONENTES: IMPL
- Page 67 and 68: 3.4. FRAMEWORK DE COMPONENTES: IMPL
- Page 69 and 70: Capítulo 4 Descrição das funcion
- Page 71 and 72: 4.1. RECONCILIAÇÃO 53 Segundo, um
- Page 73 and 74: 4.1. RECONCILIAÇÃO 55 4.1.3 Ordem
- Page 75 and 76: 4.1. RECONCILIAÇÃO 57 4.1.4.2 Ver
- Page 77 and 78: 4.1. RECONCILIAÇÃO 59 No decurso
- Page 79 and 80: 4.3. INVOCAÇÃO CEGA 61 4.3 Invoca
- Page 81 and 82: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
- Page 83 and 84: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
2.3. PRINCÍPIOS 17<br />
sobre a evolução dos <strong>dados</strong> para os utilizadores, mesmo aqueles que po<strong>de</strong>m ser consi<strong>de</strong>rar exteriores ao<br />
sist<strong>em</strong>a.<br />
Dos ex<strong>em</strong>plos apresentados, é necessário realçar que não existe um modo único <strong>de</strong> fornecer infor-<br />
mação sobre a evolução dos <strong>dados</strong>. Nuns casos, esta informação <strong>de</strong>ve ser apresentada quando se ace<strong>de</strong><br />
aos <strong>dados</strong> — o editor cooperativo é um ex<strong>em</strong>plo. Noutros casos é necessário propagar a informação<br />
directamente para os utilizadores — a agenda partilhada é um ex<strong>em</strong>plo. Assim, o modo como esta infor-<br />
mação é tratada pelo sist<strong>em</strong>a <strong>de</strong>ve ser <strong>de</strong>finida <strong>em</strong> função das características específicas da aplicação (e<br />
muitas vezes <strong>de</strong>ntro <strong>de</strong> uma mesma aplicação é necessário adaptar o modo <strong>de</strong> tratamento à situação e ao<br />
utilizador).<br />
Embora as características apresentadas anteriormente sejam comuns à generalida<strong>de</strong> dos sist<strong>em</strong>as que<br />
suportam operação <strong>de</strong>sconectada [115, 85, 59, 161, 79, 87], o probl<strong>em</strong>a <strong>de</strong> fornecer informação sobre<br />
a evolução dos <strong>dados</strong> é geralmente negligenciada. Este facto leva os programadores a impl<strong>em</strong>entar<br />
soluções ad-hoc s<strong>em</strong> o conveniente suporte por parte do sist<strong>em</strong>a.<br />
Nesta dissertação apresentam-se soluções <strong>em</strong> que a criação e o tratamento da informação sobre a<br />
evolução dos <strong>dados</strong> estão completamente integrados no sist<strong>em</strong>a. Todas as operações efectuadas pelos<br />
utilizadores po<strong>de</strong>m gerar informação e o modo como esta informação é tratada po<strong>de</strong> <strong>de</strong>pen<strong>de</strong>r da aplica-<br />
ção ou situação. O sist<strong>em</strong>a fornece suporte para a propagação da informação para os utilizadores através<br />
<strong>de</strong> mecanismos exteriores ao sist<strong>em</strong>a. O sist<strong>em</strong>a também permite que esta informação seja mantida<br />
com os <strong>dados</strong> para posterior acesso pelos utilizadores. Alguns sist<strong>em</strong>as <strong>de</strong> suporte ao trabalho coope-<br />
rativo [16, 44, 97] inclu<strong>em</strong> este tipo <strong>de</strong> mecanismos. No entanto, nesta dissertação apresenta-se uma<br />
nova aproximação através da integração <strong>de</strong>stes mecanismos ao nível dos tipos <strong>de</strong> <strong>dados</strong> e das operações<br />
<strong>de</strong>finidas.<br />
2.3.5 Replicação secundária parcial<br />
A replicação dos <strong>dados</strong> <strong>em</strong> vários servidores não garante a disponibilida<strong>de</strong> dos <strong>dados</strong> durante os períodos<br />
<strong>de</strong> <strong>de</strong>sconexão. Para tal, é comum recorrer a um mecanismo <strong>de</strong> replicação secundária (caching) para<br />
manter cópias parciais dos <strong>dados</strong> nos computadores portáteis.<br />
No sist<strong>em</strong>a Coda [87], b<strong>em</strong> como noutros sist<strong>em</strong>as <strong>de</strong> ficheiros distribuídos, a unida<strong>de</strong> <strong>de</strong> replicação<br />
secundária é o ficheiro. Esta aproximação permite uma s<strong>em</strong>ântica simples e clara <strong>de</strong> acesso aos ficheiros:<br />
ou é possível ace<strong>de</strong>r ao ficheiro completo ou não é possível ace<strong>de</strong>r a nenhuma parte do ficheiro (quando<br />
não existe uma cópia local). Quando os ficheiros são muito longos, po<strong>de</strong> ser impossível a um dispositivo<br />
<strong>móvel</strong> com recursos limitados manter cópias <strong>de</strong> ficheiros completos. Adicionalmente, o t<strong>em</strong>po necessá-<br />
rio para transmitir uma cópia total dum ficheiro po<strong>de</strong> ser inaceitável — este probl<strong>em</strong>a acentua-se para<br />
dispositivos móveis que utilizam re<strong>de</strong>s <strong>de</strong> comunicação s<strong>em</strong> fios com reduzida largura <strong>de</strong> banda.