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
36 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS Escrita Indica que a operação modifica o estado do coobjecto. Estas operações devem ser registadas e propagadas para todas as réplicas. Sistema As operações de sistema são usadas no funcionamento interno do coobjecto. Estas operações não são reflectidas no sumário das operações invocadas e são executadas numa réplica assim que são recebidas. Último escritor ganha Indica que, independentemente da política de reconciliação geral usada, apenas deve ser executada uma invocação deste método, caso não tenha sido executada anteriormente uma invocação posterior (na ordem total definida pelos identificadores das operações) 10 . Caso tenha sido executada uma operação posterior, a execução deste método é equivalente à execução da operação nula (i.e., não modifica o estado do coobjecto). Este atributo é geralmente usado apenas com as operações de sistema. Remota Indica que a operação deve ser executada imediatamente num servidor. Sem desfazer-refazer Indica que a operação só deve ser executada uma vez, mesmo que o mecanismo de reconciliação use técnicas de desfazer-refazer (undo-redo) [17]. Silencioso e local Estes atributos são usados para controlar o funcionamento do mecanismo de invoca- ção cega, descrito em detalhe na secção 4.3. Os componentes do coobjecto responsáveis pelo processamento de uma invocação devem ter em conta estes atributos. 3.3 Framework de componentes: componentes Nesta secção detalham-se os vários componentes do framework DOORS. Para cada um, descreve-se a sua funcionalidade e discutem-se algumas das possíveis implementações, focando os componentes pré-definidos no protótipo do sistema DOORS. 3.3.1 Atributos do sistema Os atributos do sistema mantêm as propriedades fundamentais para a manipulação de um coob- jecto/subobjecto pelo núcleo do sistema. Existe um componente de atributos do sistema associado ao coobjecto e a cada um dos subobjectos. 10 Para implementar esta propriedade, o pré-processador adiciona ao código da operação: a gravação do identificador da (última) invocação executada; e a verificação se a invocação a executar é posterior à última executada.
3.3. FRAMEWORK DE COMPONENTES: COMPONENTES 37 Estas propriedades incluem a identificação do coobjecto que contém o código necessário para instan- ciar o coobjecto/subobjecto 11 (caso não pertença a um dos tipos básicos do sistema DOORS) e o nome da classe a usar como fábrica. Esta informação permite ao núcleo do sistema criar e manipular qualquer tipo de coobjecto de forma uniforme. Os atributos do sistema mantém ainda um sumário das operações executadas. Para os atributos do sistema associados a um coobjecto, este valor reflecte as operações executadas em qualquer subobjecto. Para os atributos do sistema associados a um subobjecto, este valor reflecte as operações executadas que modificaram (directa ou indirectamente) esse subobjecto — este sumário é actualizado durante a execução das operações. Adicionalmente, os atributos do sistema incluem uma lista de identificadores únicos que indicam coobjectos e subobjectos que devem ser replicados conjuntamente durante a replicação prévia. Para um coobjecto, esta lista inclui identificadores de coobjectos. Para um subobjecto, esta lista inclui identifica- dores de subobjectos. Ao contrário de todos os outros componentes de um coobjecto que podem ter uma implementação es- pecífica (desde que implementem a interface do componente), os atributos do sistema têm uma definição fixa para permitir ao sistema obter o tipo do coobjecto. 3.3.2 Atributos O componente de atributos mantém um conjunto de propriedades do coobjecto. O sistema DOORS fornece uma função que permite às aplicações aceder a este componente (e ao componente de atributos do sistema) para leitura de forma “leve”, i.e., sem terem de obter uma cópia do coobjecto. Existem dois tipos de propriedades. Primeiro, as propriedades do sistema, usadas pelo sistema DO- ORS no seu funcionamento — por exemplo, os sumários das operações conhecidas localmente e nos outros servidores, a informação sobre o estado de remoção do coobjecto, etc. Segundo, as propriedades específicas para cada tipo de coobjecto. Estas propriedades são definidas livremente pelos programa- dores que implementam o coobjecto e devem representar características fundamentais do coobjecto, às quais pode ser interessante aceder sem criar uma cópia do coobjecto. Componentes pré-definidos No protótipo do sistema DOORS definiram-se dois componentes de atri- butos base, cuja diferença reside no espaço usado (O(n) e O(n 2 ), com n o número de servidores que replicam o coobjecto) para registar a informação relativa às operações conhecidas nos outros servido- res (as duas técnicas são detalhadas na secção 6.2.2). A interface do componente de atributos define operações que permitem manipular esta informação de forma uniforme. 11 O sistema DOORS define um tipo básico de coobjectos para manter o código de outros coobjectos. As instâncias deste coobjecto são imutáveis.
- 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 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: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- 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
- Page 93 and 94: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
- Page 95 and 96: 5.2. AGENDA PARTILHADA 77 Figura 5.
- Page 97 and 98: 5.2. AGENDA PARTILHADA 79 de awaren
- Page 99 and 100: Capítulo 6 Núcleo do sistema DOOR
- Page 101 and 102: 6.1. COOBJECTOS 83 o mesmo estado i
- Page 103 and 104: 6.2. SERVIDORES 85 global a associa
3.3. FRAMEWORK DE COMPONENTES: COMPONENTES 37<br />
Estas proprieda<strong>de</strong>s inclu<strong>em</strong> a i<strong>de</strong>ntificação do coobjecto que contém o código necessário para instan-<br />
ciar o coobjecto/subobjecto 11 (caso não pertença a um dos tipos básicos do sist<strong>em</strong>a DOORS) e o nome<br />
da classe a usar como fábrica. Esta informação permite ao núcleo do sist<strong>em</strong>a criar e manipular qualquer<br />
tipo <strong>de</strong> coobjecto <strong>de</strong> forma uniforme.<br />
Os atributos do sist<strong>em</strong>a mantém ainda um sumário das operações executadas. Para os atributos do<br />
sist<strong>em</strong>a associados a um coobjecto, este valor reflecte as operações executadas <strong>em</strong> qualquer subobjecto.<br />
Para os atributos do sist<strong>em</strong>a associados a um subobjecto, este valor reflecte as operações executadas<br />
que modificaram (directa ou indirectamente) esse subobjecto — este sumário é actualizado durante a<br />
execução das operações.<br />
Adicionalmente, os atributos do sist<strong>em</strong>a inclu<strong>em</strong> uma lista <strong>de</strong> i<strong>de</strong>ntificadores únicos que indicam<br />
coobjectos e subobjectos que <strong>de</strong>v<strong>em</strong> ser replicados conjuntamente durante a replicação prévia. Para um<br />
coobjecto, esta lista inclui i<strong>de</strong>ntificadores <strong>de</strong> coobjectos. Para um subobjecto, esta lista inclui i<strong>de</strong>ntifica-<br />
dores <strong>de</strong> subobjectos.<br />
Ao contrário <strong>de</strong> todos os outros componentes <strong>de</strong> um coobjecto que po<strong>de</strong>m ter uma impl<strong>em</strong>entação es-<br />
pecífica (<strong>de</strong>s<strong>de</strong> que impl<strong>em</strong>ent<strong>em</strong> a interface do componente), os atributos do sist<strong>em</strong>a têm uma <strong>de</strong>finição<br />
fixa para permitir ao sist<strong>em</strong>a obter o tipo do coobjecto.<br />
3.3.2 Atributos<br />
O componente <strong>de</strong> atributos mantém um conjunto <strong>de</strong> proprieda<strong>de</strong>s do coobjecto. O sist<strong>em</strong>a DOORS<br />
fornece uma função que permite às aplicações ace<strong>de</strong>r a este componente (e ao componente <strong>de</strong> atributos<br />
do sist<strong>em</strong>a) para leitura <strong>de</strong> forma “leve”, i.e., s<strong>em</strong> ter<strong>em</strong> <strong>de</strong> obter uma cópia do coobjecto.<br />
Exist<strong>em</strong> dois tipos <strong>de</strong> proprieda<strong>de</strong>s. Primeiro, as proprieda<strong>de</strong>s do sist<strong>em</strong>a, usadas pelo sist<strong>em</strong>a DO-<br />
ORS no seu funcionamento — por ex<strong>em</strong>plo, os sumários das operações conhecidas localmente e nos<br />
outros servidores, a informação sobre o estado <strong>de</strong> r<strong>em</strong>oção do coobjecto, etc. Segundo, as proprieda<strong>de</strong>s<br />
específicas para cada tipo <strong>de</strong> coobjecto. Estas proprieda<strong>de</strong>s são <strong>de</strong>finidas livr<strong>em</strong>ente pelos programa-<br />
dores que impl<strong>em</strong>entam o coobjecto e <strong>de</strong>v<strong>em</strong> representar características fundamentais do coobjecto, às<br />
quais po<strong>de</strong> ser interessante ace<strong>de</strong>r s<strong>em</strong> criar uma cópia do coobjecto.<br />
Componentes pré-<strong>de</strong>finidos No protótipo do sist<strong>em</strong>a DOORS <strong>de</strong>finiram-se dois componentes <strong>de</strong> atri-<br />
butos base, cuja diferença resi<strong>de</strong> no espaço usado (O(n) e O(n 2 ), com n o número <strong>de</strong> servidores que<br />
replicam o coobjecto) para registar a informação relativa às operações conhecidas nos outros servido-<br />
res (as duas técnicas são <strong>de</strong>talhadas na secção 6.2.2). A interface do componente <strong>de</strong> atributos <strong>de</strong>fine<br />
operações que permit<strong>em</strong> manipular esta informação <strong>de</strong> forma uniforme.<br />
11 O sist<strong>em</strong>a DOORS <strong>de</strong>fine um tipo básico <strong>de</strong> coobjectos para manter o código <strong>de</strong> outros coobjectos. As instâncias <strong>de</strong>ste<br />
coobjecto são imutáveis.