11.04.2013 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

28 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS<br />

pítulo 2, <strong>em</strong> que diferentes grupos <strong>de</strong> aplicações usam as mesmas estratégias relativamente a diferentes<br />

probl<strong>em</strong>as, como por ex<strong>em</strong>plo a reconciliação e o tratamento da informação <strong>de</strong> awareness. Adicional-<br />

mente, esta aproximação permite aos programadores reutilizar técnicas complexas <strong>de</strong> sist<strong>em</strong>as distribuí-<br />

dos s<strong>em</strong> ter<strong>em</strong> <strong>de</strong> lidar com os <strong>de</strong>talhes <strong>de</strong> impl<strong>em</strong>entação <strong>de</strong>ssas soluções (os quais são encapsulados<br />

nos componentes pré-<strong>de</strong>finidos).<br />

De seguida, apresenta-se o framework <strong>de</strong> componentes DOORS, explicando o modo como é possível<br />

criar um novo coobjecto. Ex<strong>em</strong>plos <strong>de</strong>talhados <strong>de</strong> coobjectos criados no âmbito <strong>de</strong> aplicações coopera-<br />

tivas são <strong>de</strong>scritos no capítulo 5. O núcleo do sist<strong>em</strong>a é <strong>de</strong>talhado no capítulo 6.<br />

3.2 Framework <strong>de</strong> componentes: princípios gerais<br />

O framework <strong>de</strong> componentes DOORS <strong>de</strong>compõe um coobjecto num conjunto <strong>de</strong> componentes, cada<br />

um tratando dum aspecto específico do funcionamento do coobjecto. Os vários componentes interac-<br />

tuam entre si para impl<strong>em</strong>entar uma solução global <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong>. As responsabilida<strong>de</strong>s <strong>de</strong> cada<br />

componente são b<strong>em</strong>-<strong>de</strong>finidas e, tanto quanto possível, isoladas. No entanto, algumas impl<strong>em</strong>entações<br />

<strong>de</strong> um componente po<strong>de</strong>m exigir a impl<strong>em</strong>entação <strong>de</strong> uma dada funcionalida<strong>de</strong> noutro componente,<br />

restringindo as composições possíveis.<br />

De seguida apresenta-se <strong>de</strong> forma breve o framework DOORS e o modo como os vários componentes<br />

interag<strong>em</strong>. Em particular, <strong>de</strong>screve-se o funcionamento <strong>de</strong> um coobjecto composto por um conjunto <strong>de</strong><br />

subobjectos. Na próxima secção <strong>de</strong>talha-se cada um dos componentes do framework e <strong>de</strong>screv<strong>em</strong>-se<br />

alguns dos componentes pré-<strong>de</strong>finidos no protótipo do sist<strong>em</strong>a DOORS.<br />

3.2.1 Subobjectos<br />

Um coobjecto <strong>de</strong>fine um tipo <strong>de</strong> <strong>dados</strong>, possivelmente complexo, especialmente <strong>de</strong>senhado para ser par-<br />

tilhado por vários utilizadores e manipulado concorrent<strong>em</strong>ente — por ex<strong>em</strong>plo, um documento estrutu-<br />

rado. Uma instância <strong>de</strong> um coobjecto mantém uma representação do valor actual do tipo <strong>de</strong> <strong>dados</strong> através<br />

<strong>de</strong> uma composição <strong>de</strong> subobjectos — por ex<strong>em</strong>plo, um subobjecto com a estrutura do documento e um<br />

subobjecto por cada el<strong>em</strong>ento.<br />

Um subobjecto po<strong>de</strong> ser um objecto complexo constituído por um conjunto <strong>de</strong> outros objectos (<strong>de</strong>-<br />

finidos ao nível da linguag<strong>em</strong> <strong>de</strong> programação usada para <strong>de</strong>finir o subobjecto). No entanto, no âmbito<br />

<strong>de</strong> um coobjecto, um subobjecto representa uma “caixa preta” com um estado interno que apenas po<strong>de</strong><br />

ser acedido e modificado através da invocação <strong>de</strong> métodos da interface que impl<strong>em</strong>enta. O subobjecto<br />

constitui a unida<strong>de</strong> <strong>de</strong> manipulação <strong>de</strong>ntro <strong>de</strong> um coobjecto. Os subobjectos são acedidos por navega-<br />

ção a partir <strong>de</strong> um subobjecto base (i.e., apesar <strong>de</strong> internamente os subobjectos ter<strong>em</strong> um i<strong>de</strong>ntificador

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

Saved successfully!

Ooh no, something went wrong!