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

10 CAPÍTULO 2. PRINCÍPIOS GERAIS j é tp = ∞. Diz-se simplesmente que está desconectado quando está desconectado em relação a todos os outros computadores do sistema. A desconexão de um computador pode ser voluntária (desconexão dos dispositivos de comunicação) ou causada por uma falha (falha na rede). O sistema fornece um serviço de gestão de dados. O serviço de gestão de dados fornece dois tipos de operação: leitura e escrita. Uma operação de leitura permite obter o valor actual dos dados. Diz-se que os dados foram lidos quando foi executada uma operação de leitura. Uma operação de escrita permite modificar o valor dos dados. Diz-se que os dados foram escritos ou modificados quando foi executada uma operação de escrita. Diz-se, genericamente, que os dados foram acedidos quando foi executada uma operação de leitura ou escrita. Os utilizadores usam este serviço (através das aplicações que utilizam) para armazenar a informação que necessitam para as suas actividades. Diz-se que um utilizador submeteu ou executou uma operação de leitura (escrita), quando a aplicação que utiliza invoca uma operação de leitura (escrita) no sistema de gestão de dados. A informação armazenada no sistema de gestão de dados está organizada de acordo com o modelo de dados suportado pelo sistema. No entanto, independentemente do modelo de dados utilizado, pode identificar-se que a informação é composta por um conjunto de unidades de informação indivisíveis para o sistema (do ponto de vista da manipulação dos dados). A estas unidades indivisíveis chamam-se genericamente objectos ou elementos de dados. Por exemplo, para dados organizados segundo o modelo relacional, o valor de uma coluna de uma linha (registo) de uma tabela é uma unidade indivisível que se denomina por objecto ou elemento de dados. O sistema de gestão de dados pode manter várias cópias dos dados. A cada uma das cópias dá-se o nome de réplica. De forma informal, define-se a consistência entre duas réplicas como o número de modificações que as réplicas sofreram desde a última vez que foram sincronizadas. Duas réplicas são fortemente consistentes quando o número de modificações desde a última sincronização tende a ser nulo, i.e., o algoritmo de gestão das réplicas procura que todas as réplicas mantenham sempre o mesmo valor. Duas réplicas são fracamente consistentes quando o número de modificações desde a última sincronização tende a ser não nulo. No resto deste capítulo discutem-se as propriedades fundamentais que um serviço de gestão de dados para permitir o acesso aos dados independentemente da conectividade existente. 2.2 Motivação - algumas aplicações Nesta secção vamos descrever brevemente algumas aplicações que servem de motivação para os princí- pios enunciados neste capítulo.

2.2. MOTIVAÇÃO - ALGUMAS APLICAÇÕES 11 Num sistema de conferência assíncrono 2 existe um espaço de mensagens partilhado entre vários uti- lizadores (semelhante ao serviço de news da Internet). Estas mensagens estão organizadas em temas de discussão. Um utilizador pode inserir uma mensagem como resposta ou adenda a outra mensagem ou iniciar um novo tema de discussão. Um sistema deste tipo pode funcionar mantendo várias cópias do es- paço de mensagens partilhado. Os utilizadores devem poder ler as mensagens conhecidas na réplica que estão a aceder e inserir novas mensagens. Apesar de não ser necessário que todas as réplicas apresentem o mesmo estado, é conveniente que as mensagens sejam apresentadas de forma coerente, respeitando, pelo menos, as dependências entre mensagens (i.e., uma resposta a uma mensagem não deve aparecer antes da mensagem original). Uma agenda partilhada permite coordenar as marcações executadas por múltiplos utilizadores. Exis- tem vários cenários em que uma agenda partilhada pode ser útil, entre os quais: uma agenda pessoal actualizada por mais do que uma pessoa (por exemplo, o próprio e um secretário); uma agenda para um recurso partilhado (por exemplo, uma sala de reunião). Numa agenda partilhada, múltiplos utiliza- dores podem inserir novas marcações e remover marcações existentes (sendo estas operações sujeitas, obviamente, a restrições de controlo de acessos). De preferência, os utilizadores devem ser autorizados a modificar a agenda de forma independente. Estas novas marcações devem ser consideradas provisó- rias [161] até poderem ser confirmadas através de alguma forma automática de consenso global. Quando o solicitem, os utilizadores devem receber a confirmação das suas marcações. Um editor cooperativo assíncrono permite a um grupo de utilizadores editar conjuntamente um do- cumento (por exemplo, um artigo). Os vários utilizadores podem modificar o documento independente- mente 3 (por exemplo, dois utilizadores podem modificar diferentes secções). As modificações concor- rentes devem ser unificadas tendo em consideração todas as modificações produzidas (por exemplo, o documento final deve incluir as novas versões das várias secções). Um aspecto importante a considerar é que a consistência sintáctica [42] deve ser mantida mesmo quando se consideram conflitos semânticos, i.e., o serviço de gestão de dados deve manter os dados estruturalmente consistentes de forma a permitir que a actividade dos utilizadores continue (por exemplo, se dois utilizadores modificam a mesma secção, duas versões dessa secção devem ser criadas e mantidas). Um sistema de reserva de lugares para comboios mantém informação sobre um conjunto de com- boios e respectiva reserva de lugares. Os utilizadores podem consultar as alternativas existentes e inserir uma nova reserva ou remover uma reserva existente. As operações de consulta devem estar disponíveis 2 Assíncrono é aqui tomado no sentido informal, em que o tempo que medeia entre a emissão e a recepção das mensagens pode ser significativo, na ordem dos minutos, horas ou mesmo dias. 3 Para que um trabalho cooperativo seja bem sucedido deve existir alguma coordenação entre os elementos do grupo (neste exemplo, cada utilizador deve saber que secções deve modificar). O problema da coordenação entre os elementos dum grupo cooperativo está fora do âmbito desta dissertação mas foi abordado no âmbito do projecto DAgora [40, 39].

10 CAPÍTULO 2. PRINCÍPIOS GERAIS<br />

j é tp = ∞. Diz-se simplesmente que está <strong>de</strong>sconectado quando está <strong>de</strong>sconectado <strong>em</strong> relação a todos os<br />

outros computadores do sist<strong>em</strong>a. A <strong>de</strong>sconexão <strong>de</strong> um computador po<strong>de</strong> ser voluntária (<strong>de</strong>sconexão dos<br />

dispositivos <strong>de</strong> comunicação) ou causada por uma falha (falha na re<strong>de</strong>).<br />

O sist<strong>em</strong>a fornece um serviço <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong>. O serviço <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong> fornece dois tipos <strong>de</strong><br />

operação: leitura e escrita. Uma operação <strong>de</strong> leitura permite obter o valor actual dos <strong>dados</strong>. Diz-se que<br />

os <strong>dados</strong> foram lidos quando foi executada uma operação <strong>de</strong> leitura. Uma operação <strong>de</strong> escrita permite<br />

modificar o valor dos <strong>dados</strong>. Diz-se que os <strong>dados</strong> foram escritos ou modificados quando foi executada<br />

uma operação <strong>de</strong> escrita. Diz-se, genericamente, que os <strong>dados</strong> foram acedidos quando foi executada uma<br />

operação <strong>de</strong> leitura ou escrita.<br />

Os utilizadores usam este serviço (através das aplicações que utilizam) para armazenar a informação<br />

que necessitam para as suas activida<strong>de</strong>s. Diz-se que um utilizador submeteu ou executou uma operação<br />

<strong>de</strong> leitura (escrita), quando a aplicação que utiliza invoca uma operação <strong>de</strong> leitura (escrita) no sist<strong>em</strong>a <strong>de</strong><br />

<strong>gestão</strong> <strong>de</strong> <strong>dados</strong>.<br />

A informação armazenada no sist<strong>em</strong>a <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong> está organizada <strong>de</strong> acordo com o mo<strong>de</strong>lo<br />

<strong>de</strong> <strong>dados</strong> suportado pelo sist<strong>em</strong>a. No entanto, in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente do mo<strong>de</strong>lo <strong>de</strong> <strong>dados</strong> utilizado, po<strong>de</strong><br />

i<strong>de</strong>ntificar-se que a informação é composta por um conjunto <strong>de</strong> unida<strong>de</strong>s <strong>de</strong> informação indivisíveis<br />

para o sist<strong>em</strong>a (do ponto <strong>de</strong> vista da manipulação dos <strong>dados</strong>). A estas unida<strong>de</strong>s indivisíveis chamam-se<br />

genericamente objectos ou el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong>. Por ex<strong>em</strong>plo, para <strong>dados</strong> organizados segundo o mo<strong>de</strong>lo<br />

relacional, o valor <strong>de</strong> uma coluna <strong>de</strong> uma linha (registo) <strong>de</strong> uma tabela é uma unida<strong>de</strong> indivisível que se<br />

<strong>de</strong>nomina por objecto ou el<strong>em</strong>ento <strong>de</strong> <strong>dados</strong>.<br />

O sist<strong>em</strong>a <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong> po<strong>de</strong> manter várias cópias dos <strong>dados</strong>. A cada uma das cópias dá-se<br />

o nome <strong>de</strong> réplica. De forma informal, <strong>de</strong>fine-se a consistência entre duas réplicas como o número<br />

<strong>de</strong> modificações que as réplicas sofreram <strong>de</strong>s<strong>de</strong> a última vez que foram sincronizadas. Duas réplicas<br />

são fort<strong>em</strong>ente consistentes quando o número <strong>de</strong> modificações <strong>de</strong>s<strong>de</strong> a última sincronização ten<strong>de</strong> a<br />

ser nulo, i.e., o algoritmo <strong>de</strong> <strong>gestão</strong> das réplicas procura que todas as réplicas mantenham s<strong>em</strong>pre o<br />

mesmo valor. Duas réplicas são fracamente consistentes quando o número <strong>de</strong> modificações <strong>de</strong>s<strong>de</strong> a<br />

última sincronização ten<strong>de</strong> a ser não nulo.<br />

No resto <strong>de</strong>ste capítulo discut<strong>em</strong>-se as proprieda<strong>de</strong>s fundamentais que um serviço <strong>de</strong> <strong>gestão</strong> <strong>de</strong> <strong>dados</strong><br />

para permitir o acesso aos <strong>dados</strong> in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente da conectivida<strong>de</strong> existente.<br />

2.2 Motivação - algumas aplicações<br />

Nesta secção vamos <strong>de</strong>screver brev<strong>em</strong>ente algumas aplicações que serv<strong>em</strong> <strong>de</strong> motivação para os princí-<br />

pios enunciados neste capítulo.

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

Saved successfully!

Ooh no, something went wrong!