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

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.

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.

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

Saved successfully!

Ooh no, something went wrong!