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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2. FRAMEWORK DE COMPONENTES: PRINCÍPIOS GERAIS 29<br />

único, uma aplicação nunca ace<strong>de</strong> a um subobjecto usando directamente este i<strong>de</strong>ntificador). Para tal, os<br />

subobjectos po<strong>de</strong>m manter referências para outros subobjectos.<br />

Embora um coobjecto inclua instâncias <strong>de</strong> vários outros componentes, são os subobjectos que re-<br />

presentam o valor do tipo <strong>de</strong> <strong>dados</strong> que se preten<strong>de</strong> <strong>de</strong>finir — os outros componentes são usados para<br />

controlar os vários aspectos da partilha dos <strong>dados</strong>. Assim, po<strong>de</strong> dizer-se que o estado <strong>de</strong> um coobjecto é<br />

representado pelo estado dos subobjectos que o constitu<strong>em</strong> e que reflect<strong>em</strong> a execução <strong>de</strong> uma <strong>de</strong>termi-<br />

nada sequência <strong>de</strong> operações. No entanto, <strong>de</strong> forma mais exacta, <strong>de</strong>ver-se-ia consi<strong>de</strong>rar que o estado <strong>de</strong><br />

um coobjecto inclui também o estado dos outros componentes.<br />

As aplicações e os subobjectos não mantêm referências directas para um subobjecto. Estas referên-<br />

cias são impl<strong>em</strong>entadas através <strong>de</strong> representantes <strong>de</strong> subobjectos (proxies) que impl<strong>em</strong>entam a mesma<br />

interface dos subobjectos. O uso <strong>de</strong> representantes elimina a necessida<strong>de</strong> <strong>de</strong> interceptar as invocações <strong>de</strong><br />

métodos num subobjecto ao nível do sist<strong>em</strong>a <strong>de</strong> execução dos programas.<br />

Os representantes (proxies) permit<strong>em</strong> executar <strong>de</strong> forma simples as seguintes funcionalida<strong>de</strong>s ne-<br />

cessárias ao funcionamento do sist<strong>em</strong>a DOORS. Primeiro, os representantes permit<strong>em</strong> interceptar as<br />

invocações <strong>de</strong> métodos <strong>de</strong> um subobjecto e criar o necessário registo <strong>de</strong> invocações (esta características<br />

é fundamental num sist<strong>em</strong>a <strong>de</strong> replicação baseado na propagação das modificações como sequências <strong>de</strong><br />

operações). Segundo, os representantes permit<strong>em</strong> que apenas se instanci<strong>em</strong> os subobjectos quando é<br />

necessário executar métodos <strong>de</strong>sses subobjectos. Terceiro, os representantes eliminam a necessida<strong>de</strong> <strong>de</strong><br />

modificar os apontadores usados para referenciar outros subobjectos quando um subobjecto é instanci-<br />

ado 4 . Quarto, os representantes encapsulam os i<strong>de</strong>ntificadores dos subobjectos, os quais não são visíveis<br />

pelas aplicações — o acesso aos subobjectos efectua-se s<strong>em</strong>pre por navegação (a partir <strong>de</strong> um objecto<br />

base), como é normal nas linguagens orientadas para os objectos.<br />

A instanciação <strong>de</strong> um subobjecto é executada pelo gestor <strong>de</strong> subobjectos (cluster manager) apenas<br />

quando necessário. O gestor <strong>de</strong> subobjectos mantém referências para todos os subobjectos presentes <strong>em</strong><br />

m<strong>em</strong>ória <strong>de</strong> forma a garantir que apenas existe uma instância <strong>de</strong> cada subobjecto.<br />

Adicionalmente, o gestor dos subobjectos é responsável por manter referências para o subobjecto<br />

base (ou conjunto <strong>de</strong> subobjectos base) — por ex<strong>em</strong>plo, no documento estruturado, a estrutura principal<br />

do documento é o subobjecto base, o qual permite ace<strong>de</strong>r aos outros subobjectos por navegação na<br />

estrutura do documento. Todos os outros subobjectos são acedidos a partir <strong>de</strong>stes por navegação. O<br />

gestor dos subobjectos é ainda responsável por controlar a persistência dos subobjectos <strong>em</strong> cada um dos<br />

servidores.<br />

4 Nas bases <strong>de</strong> <strong>dados</strong> orientadas para os objectos, este processo chama-se pointer swizzling [171]

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

Saved successfully!

Ooh no, something went wrong!