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
24 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS Legenda Servidor Cliente Sub-objecto Aplicação propagação epidémica modificações sub-objectos sub-objectos & modificações modificações sub-objectos sessão síncrona Figura 3.1: Arquitectura do sistema DOORS composta por computadores com diferentes configurações. 3.1 Modelo geral O sistema DOORS é um repositório distribuído de objectos baseado numa arquitectura cliente esten- dido/servidor [78]. O sistema manipula objectos estruturados segundo o modelo de componentes DO- ORS, que se designam por coobjectos. Um coobjecto representa um tipo de dados possivelmente com- plexo, que pode ser formado por uma composição de outros objectos. Estes objectos são agrupados em conjuntos (clusters) de objectos relacionados, que se designam por subobjectos. Por exemplo, um co- objecto pode representar um documento estruturado como esta dissertação. A estrutura do documento e cada um dos elementos básicos (por exemplo, os capítulos desta dissertação) podem ser definidos como subobjectos. Os coobjectos relacionados são agrupados em conjuntos que representam um espaço de trabalho co- operativo (collaborative workspace) e incluem os dados associados a uma sessão de trabalho cooperativo ou a um grupo de trabalho cooperativo. Estes conjuntos de coobjectos são designados por volumes [87]. O sistema DOORS é composto por dois componentes, clientes e servidores, como se representa na figura 3.1. Em geral, os servidores executam em máquinas fixas com boa conectividade. Os clientes podem executar em máquinas fixas ou móveis e a sua conectividade é geralmente variável. Qualquer máquina pode actuar simultaneamente como cliente e servidor. Por vezes, e quando essa designação não cause confusão, também se designa de servidor (cliente) a máquina em que executa o componente servidor (cliente) do sistema DOORS. Para fornecer uma elevada disponibilidade de leitura e escrita, os coobjectos do sistema DOORS são replicados usando um modelo de replicação optimista. Assim, qualquer réplica pode ser modificada de forma independente, maximizando a possibilidade de os utilizadores efectuarem as suas contribuições
3.1. MODELO GERAL 25 para a actividade cooperativa. Cada servidor replica um conjunto de volumes de coobjectos. Para cada volume, replica todos os coobjectos que estão contidos nesse volume. O estado destas réplicas é sincronizado durante sessões de sincronização epidémicas estabelecidas entre pares de servidores. A replicação nos servidores tem por objectivo mascarar as falhas nos servidores e no sistema de comunicação. Os clientes executam um mecanismo de replicação secundária (os caching), mantendo uma cache 1 com cópias parciais de um conjunto de coobjectos. Uma cópia parcial de um coobjecto inclui apenas um subconjunto de todos os subobjectos que compõem um coobjecto. Os clientes sincronizam o estado das cópias locais com os servidores e com outros clientes. A replicação parcial nos clientes tem por objectivo mascarar os períodos de desconexão, permitindo aos utilizadores continuarem a ler e modificar os dados partilhados. As aplicações que utilizam o sistema DOORS executam nos clientes e modificam os coobjectos através da execução de métodos dos subobjectos — os utilizadores cooperam entre si modificando dados partilhados. De seguida, apresenta-se o modelo de acesso aos coobjectos. 3.1.1 Modelo de manipulação dos coobjectos Em geral, as aplicações acedem aos coobjectos usando o modelo de acesso “obtém/modifica local- mente/submete modificações”. Assim, quando uma aplicação solicita o acesso a um coobjecto, o cliente, caso não possua uma cópia local, obtém-na a partir de um servidor (ou, caso tal não seja possível, de outro cliente). De seguida, o cliente cria uma cópia privada do coobjecto e entrega-a à aplicação. Uma aplicação manipula a cópia privada do coobjecto e os seus subobjectos de forma semelhante a um grafo de objectos comuns, i.e., usando os seus métodos para aceder e modificar o estado dos objectos e navegar na estrutura definida. As operações de modificação executadas pelas aplicações são registadas no coobjecto de forma transparente para a aplicação e sem intervenção do cliente do sistema DOORS (ver detalhes na secção 3.2.2.2). Este registo consiste na sequência de invocações de métodos 2 efectuadas pela aplicação. Inicialmente a cópia privada de um coobjecto inclui apenas referências para um (ou vários) subob- jecto raiz. Os subobjectos apenas são instanciados quando necessário (i.e., quando são acedidos). Nesse momento, o cliente cria uma cópia privada do subobjecto 3 e liga-a à cópia privada do coobjecto — todo este processo é transparente para a aplicação. 1 Usa-se o termo cache para designar o espaço usado para guardar réplicas secundárias dos dados, neste caso, réplicas parciais dos coobjectos. 2 A invocação de um método é também denominada de operação. 3 Para tal, o cliente pode ter necessidade de contactar um servidor se a sua cópia parcial do coobjecto não incluir o subobjecto em questão.
- 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 and 34: 2.3. PRINCÍPIOS 15 obter o estado
- Page 35 and 36: 2.3. PRINCÍPIOS 17 sobre a evoluç
- 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: Capítulo 3 Apresentação do siste
- 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
- Page 85 and 86: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
- Page 87 and 88: Capítulo 5 Avaliação do modelo d
- Page 89 and 90: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
- Page 91 and 92: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
24 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS<br />
Legenda<br />
Servidor<br />
Cliente<br />
Sub-objecto<br />
Aplicação<br />
propagação<br />
epidémica<br />
modificações<br />
sub-objectos<br />
sub-objectos &<br />
modificações<br />
modificações<br />
sub-objectos<br />
sessão<br />
síncrona<br />
Figura 3.1: Arquitectura do sist<strong>em</strong>a DOORS composta por computadores com diferentes configurações.<br />
3.1 Mo<strong>de</strong>lo geral<br />
O sist<strong>em</strong>a DOORS é um repositório distribuído <strong>de</strong> objectos baseado numa arquitectura cliente esten-<br />
dido/servidor [78]. O sist<strong>em</strong>a manipula objectos estruturados segundo o mo<strong>de</strong>lo <strong>de</strong> componentes DO-<br />
ORS, que se <strong>de</strong>signam por coobjectos. Um coobjecto representa um tipo <strong>de</strong> <strong>dados</strong> possivelmente com-<br />
plexo, que po<strong>de</strong> ser formado por uma composição <strong>de</strong> outros objectos. Estes objectos são agrupados <strong>em</strong><br />
conjuntos (clusters) <strong>de</strong> objectos relacionados, que se <strong>de</strong>signam por subobjectos. Por ex<strong>em</strong>plo, um co-<br />
objecto po<strong>de</strong> representar um documento estruturado como esta dissertação. A estrutura do documento e<br />
cada um dos el<strong>em</strong>entos básicos (por ex<strong>em</strong>plo, os capítulos <strong>de</strong>sta dissertação) po<strong>de</strong>m ser <strong>de</strong>finidos como<br />
subobjectos.<br />
Os coobjectos relacionados são agrupados <strong>em</strong> conjuntos que representam um espaço <strong>de</strong> trabalho co-<br />
operativo (collaborative workspace) e inclu<strong>em</strong> os <strong>dados</strong> associados a uma sessão <strong>de</strong> trabalho cooperativo<br />
ou a um grupo <strong>de</strong> trabalho cooperativo. Estes conjuntos <strong>de</strong> coobjectos são <strong>de</strong>signados por volumes [87].<br />
O sist<strong>em</strong>a DOORS é composto por dois componentes, clientes e servidores, como se representa na<br />
figura 3.1. Em geral, os servidores executam <strong>em</strong> máquinas fixas com boa conectivida<strong>de</strong>. Os clientes<br />
po<strong>de</strong>m executar <strong>em</strong> máquinas fixas ou móveis e a sua conectivida<strong>de</strong> é geralmente variável. Qualquer<br />
máquina po<strong>de</strong> actuar simultaneamente como cliente e servidor. Por vezes, e quando essa <strong>de</strong>signação<br />
não cause confusão, também se <strong>de</strong>signa <strong>de</strong> servidor (cliente) a máquina <strong>em</strong> que executa o componente<br />
servidor (cliente) do sist<strong>em</strong>a DOORS.<br />
Para fornecer uma elevada disponibilida<strong>de</strong> <strong>de</strong> leitura e escrita, os coobjectos do sist<strong>em</strong>a DOORS são<br />
replicados usando um mo<strong>de</strong>lo <strong>de</strong> replicação optimista. Assim, qualquer réplica po<strong>de</strong> ser modificada <strong>de</strong><br />
forma in<strong>de</strong>pen<strong>de</strong>nte, maximizando a possibilida<strong>de</strong> <strong>de</strong> os utilizadores efectuar<strong>em</strong> as suas contribuições