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.

94 CAPÍTULO 6. NÚCLEO DO SISTEMA DOORS<br />

6.2.5 Recursos associados aos coobjectos<br />

Em cada servidor, o núcleo do sist<strong>em</strong>a gere um conjunto <strong>de</strong> recursos associados a cada coobjecto. Estes<br />

recursos consist<strong>em</strong> num conjunto <strong>de</strong> ficheiros e bases <strong>de</strong> <strong>dados</strong> usados por cada coobjecto para armazenar<br />

o seu estado actual. Cada subobjecto pertencente a um coobjecto t<strong>em</strong> igualmente associado um conjunto<br />

<strong>de</strong> recursos geridos pelo sist<strong>em</strong>a.<br />

O núcleo do sist<strong>em</strong>a é responsável por criar, r<strong>em</strong>over e gerir todos os recursos usados pelos coob-<br />

jectos/subobjectos <strong>de</strong> acordo com os seus pedidos. Para tal, o núcleo do sist<strong>em</strong>a fornece uma interface<br />

que permite manipular estes recursos (por ex<strong>em</strong>plo, ler/gravar uma sequência <strong>de</strong> bytes num ficheiro,<br />

questionar e modificar uma base <strong>de</strong> <strong>dados</strong>).<br />

O estado <strong>de</strong> um coobjecto/subobjecto é transmitido entre servidores ou para um cliente como uma<br />

sequência <strong>de</strong> bytes (opaca para o sist<strong>em</strong>a). Esta sequência é criada por uma função do coobjecto que<br />

codifica o seu estado actual, incluindo todos os recursos a ele associados.<br />

6.2.6 Suporte para múltiplas bases <strong>de</strong> <strong>dados</strong><br />

Para permitir que os coobjectos/subobjectos armazen<strong>em</strong> o seu estado interno numa base <strong>de</strong> <strong>dados</strong>, cada<br />

servidor e cada cliente têm associado um sist<strong>em</strong>a <strong>de</strong> <strong>gestão</strong> <strong>de</strong> bases <strong>de</strong> <strong>dados</strong>. O núcleo do sist<strong>em</strong>a<br />

encarrega-se <strong>de</strong> criar/<strong>de</strong>struir/gerir as bases <strong>de</strong> <strong>dados</strong> no sist<strong>em</strong>a <strong>de</strong> <strong>gestão</strong> <strong>de</strong> base <strong>de</strong> <strong>dados</strong> <strong>de</strong> acordo<br />

com as necessida<strong>de</strong>s dos coobjectos (os quais apenas têm acesso a uma referência que lhes permite<br />

ace<strong>de</strong>r à base <strong>de</strong> <strong>dados</strong> para leitura e escrita).<br />

O protótipo do sist<strong>em</strong>a DOORS permite a utilização <strong>de</strong> três sist<strong>em</strong>a <strong>de</strong> <strong>gestão</strong> <strong>de</strong> bases <strong>de</strong> <strong>dados</strong>:<br />

Hypersonic SQL [71] <strong>em</strong> qualquer plataforma (e usado por omissão); Microsoft Access [104] <strong>em</strong> plata-<br />

formas Windows; e Oracle 8 [113] <strong>em</strong> qualquer plataforma.<br />

Para permitir que <strong>em</strong> vários servidores sejam usadas diferentes bases <strong>de</strong> <strong>dados</strong> <strong>de</strong> forma transparente,<br />

criou-se, para cada base <strong>de</strong> <strong>dados</strong>, uma camada <strong>de</strong> uniformização responsável por fornecer uma visão<br />

uniforme do serviço. Esta camada é responsável por fornecer um método uniforme <strong>de</strong> criar e r<strong>em</strong>over ba-<br />

ses <strong>de</strong> <strong>dados</strong>. Relativamente às instruções <strong>de</strong> acesso à base <strong>de</strong> <strong>dados</strong>, esta camada <strong>de</strong>via limitar-se a filtrar<br />

as operações permitidas, restringido-as a um subconjunto <strong>de</strong> instruções universalmente suportadas (apro-<br />

ximadamente as instruções do SQL92 [76]). Na prática, verificou-se que é necessário efectuar pequenas<br />

modificações nas instruções submetidas à base <strong>de</strong> <strong>dados</strong>, <strong>de</strong> forma a garantir a utilização transparente <strong>de</strong><br />

diferentes bases <strong>de</strong> <strong>dados</strong>. Entre estas modificações <strong>de</strong>stacam-se:<br />

• Introdução/r<strong>em</strong>oção <strong>de</strong> um carácter terminador nas instruções <strong>de</strong> leitura/escrita;<br />

• Conversão dos nomes dos tipos <strong>de</strong> <strong>dados</strong> nas instruções <strong>de</strong> criação <strong>de</strong> novas tabelas;<br />

• Conversão na forma como se <strong>de</strong>fin<strong>em</strong> restrições na criação <strong>de</strong> novas tabelas;

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

Saved successfully!

Ooh no, something went wrong!