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
180 CAPÍTULO 11. TRABALHO RELACIONADO Na propagação de operações é necessário interceptar e armazenar conjuntamente com os dados as ope- rações executadas. Na propagação do estado apenas é necessário manter a réplica do objecto. Assim, a propagação de operações é mais complexa. Terceiro, deve ter-se em consideração a informação disponível para o processo de reconciliação. A propagação de operações permite que o mecanismo de reconciliação utilize a informação semântica asso- ciada às operações executadas. Em ambos os casos é possível utilizar a informação semântica associada ao tipo de dados. Assim, a propagação de operações permite soluções potencialmente mais eficazes, embora dependa do mecanismo de reconciliação explorar ou não a informação adicional disponível. Nos sistemas apresentados nesta dissertação utilizaram-se as duas aproximação. A propagação de operações (com compressão) é usada para transmitir para os servidores as modificações executadas pelos utilizadores, que se assume serem em pequeno número. Assim, maximiza-se a informação disponível para os mecanismos de reconciliação. A propagação do estado (utilizando objectos tendencialmente de pequenas dimensões) é usada para actualizar as réplicas dos objectos nos clientes. Neste caso, como o número de operações a enviar se assume ser grande é razoável usar esta técnica. No sistema DOORS é possível utilizar também a propagação de operações para actualizar as cópias dos clientes no caso de o número de operações a enviar ser reduzido. No sistema Mobisnap exclui-se esta hipótese por ser muito complexo manter a sequência das operações executadas (que incluem as operações executadas directamente por clientes legados). 11.1.7 Detecção das modificações Para sincronizar duas réplicas é necessário compará-las para determinar se e como foram modificadas. Uma aproximação possível consiste em comparar os seus valores. Como esta operação deve ser eficiente, a comparação integral das réplicas é inaceitável. Assim, é necessário definir um modo de identificar univocamente o valor de uma réplica. Para tal, pode calcular-se um identificador (quase) único a partir do estado do objecto utilizando, por exemplo, uma função de dispersão segura (SHA-1, MD5) 2 . Esta solução permite verificar a igualdade ao nível do conteúdo do objecto, mas não permite inferir qualquer informação sobre a evolução dos objectos. Assim, as soluções usadas nos sistemas de replicação privilegiam a obtenção de informação sobre a evolução das réplicas (em detrimento da informação exacta sobre a igualdade dos seus valores, porque se assume que a probabilidade de duas réplicas evoluirem concorrentemente para o mesmo estado é reduzido). A utilização de relógios escalares (físicos ou lógicos [94]) para identificar os valores de uma réplica (ou operações) permite definir uma ordem total entre esses valores (ou operações) que respeita a causali- 2 Esta aproximação é usada frequentemente para atribuir identificadores únicos a objectos imutáveis [29, 143].
11.1. REPLICAÇÃO 181 dade 3 . Esta técnica permite verificar a desigualdade entre duas réplicas e identificar aquela que pode ser causalmente dependente da outra. No entanto, esta técnica não permite verificar se os valores de duas réplicas foram modificados con- correntemente. Para tal, uma aproximação possível consiste em manter duas estampilhas temporais: a actual e a anterior. Esta aproximação é usada, por exemplo, no sistema Palm HotSync [117]. Esta técnica apenas é exacta quando se usam apenas duas réplicas. A utilização de vectores-versão [119] permite verificar de forma exacta se duas réplicas foram mo- dificadas concorrentemente (quer se use a propagação do estado ou de operações). Esta técnica é usada de forma generalizada nos sistemas de replicação com múltiplas réplicas (por exemplo, nos sistemas Ficus [66], Coda [87], Bayou [161]). Como a dimensão do vector-versão é proporcional ao número de réplicas existentes no sistema 4 , os vectores-versão podem ter dimensões significativas nos sistema de muito larga-escala. Assim, o pro- blema da gestão dos vectores-versão, i.e, como se pode introduzir e remover novos elementos de forma eficiente e sem exigir coordenação global, foi estudada em vários sistemas [5, 140]. No sistema DOORS, cada sequência de operações é identificada no servidor com um relógio lógico que permite definir uma ordem total que respeita a causalidade. A cada sequência de operações é ainda adicionado, no cliente, um vector-versão que identifica o estado do objecto no qual foram produzidas as modficações. Como este vector-versão apenas reflecte as operações recebidas nos servidores, apenas permite traçar de forma exacta a dependência com as operações já executadas num servidor. Nas aplica- ções desenvolvidas, esta aproximação básica revelou-se suficiente. No entanto, este problema e possíveis soluções foram discutidos com maior detalhe na secção 4.1.1. Quando se pretende reconciliar um conjunto de objectos, podem usar-se as técnicas anteriores, as- sociadas ao conjunto de objectos (em vez de associadas a cada um dos objectos) para detectar mo- dificações num nível de granularidade superior. Esta técnica é usada, por exemplo, em sistemas de ficheiros [107, 86] e sistema de bases de dados [137]. 11.1.8 Propagação das modificações: propagar como? A propagação das modificações entre as várias réplicas de um sistema pode ser dividido em dois sub- problemas: a propagação entre as réplicas principais e a propagação entre as réplicas principais e se- cundárias. Dizemos que uma réplica principal está presente num servidor e uma réplica secundária está 3 No caso dos relógios físicos é necessários manter os relógios sincronizados. 4 Note que apenas é necessário manter uma entrada no vector para cada réplica em que são produzidas alterações. Assim, se se assumir que em cada momento apenas existe um pequeno número de réplicas em que são produzidas alterações, mas que a identidade das réplicas varia ao longo do tempo, o problema principal consiste em efectuar a reciclagem automática (garbage-collection) das referências às réplicas que já não são necessárias.
- Page 147 and 148: 8.5. EXEMPLOS 129 1 ------ COMPRA 1
- Page 149 and 150: Capítulo 9 Avaliação do modelo b
- Page 151 and 152: 9.1. APLICAÇÕES 133 1 ------ REMO
- Page 153 and 154: 9.2. RESERVAS 135 dentemente em dif
- Page 155 and 156: 9.2. RESERVAS 137 seguinte forma. P
- Page 157 and 158: 9.2. RESERVAS 139 Commit (% total)
- Page 159 and 160: 9.2. RESERVAS 141 Commit (% total)
- Page 161 and 162: 9.2. RESERVAS 143 Commit (% total)
- Page 163 and 164: 9.2. RESERVAS 145 Commit (% total)
- Page 165 and 166: 9.2. RESERVAS 147 Por exemplo, no c
- Page 167 and 168: Capítulo 10 Sistema de reconcilia
- Page 169 and 170: 10.2. RELAÇÕES ESTÁTICAS 151 10.
- Page 171 and 172: 10.3. ALGORITMO DE RECONCILIAÇÃO
- Page 173 and 174: 10.3. ALGORITMO DE RECONCILIAÇÃO
- Page 175 and 176: 10.3. ALGORITMO DE RECONCILIAÇÃO
- Page 177 and 178: 10.4. OPTIMIZAÇÃO DA RECONCILIAÇ
- Page 179 and 180: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 181 and 182: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 183 and 184: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 185 and 186: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 187 and 188: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 189 and 190: 10.5. EXTRACÇÃO AUTOMÁTICA DE RE
- Page 191 and 192: Capítulo 11 Trabalho relacionado A
- Page 193 and 194: 11.1. REPLICAÇÃO 175 11.1.2 Arqui
- Page 195 and 196: 11.1. REPLICAÇÃO 177 a unidade de
- Page 197: 11.1. REPLICAÇÃO 179 O mecanismo
- Page 201 and 202: 11.1. REPLICAÇÃO 183 e ser propag
- Page 203 and 204: 11.1. REPLICAÇÃO 185 ordem de exe
- Page 205 and 206: 11.1. REPLICAÇÃO 187 execução d
- Page 207 and 208: 11.2. INFORMAÇÃO SOBRE A EVOLUÇ
- Page 209 and 210: 11.3. INTEGRAÇÃO DE SESSÕES SÍN
- Page 211 and 212: Capítulo 12 Conclusões A generali
- Page 213 and 214: 12.1. SUMÁRIO 195 é executado no
- Page 215 and 216: Apêndice A DOORS Este apêndice ap
- Page 217 and 218: A.1. FILIAÇÃO 199 A operação de
- Page 219 and 220: A.1. FILIAÇÃO 201 anterior à de
- Page 221 and 222: A.1. FILIAÇÃO 203 associados e o
- Page 223 and 224: A.1. FILIAÇÃO 205 Actualização
- Page 225 and 226: A.1. FILIAÇÃO 207 • Periodicame
- Page 227 and 228: A.1. FILIAÇÃO 209 estas situaçõ
- Page 229 and 230: A.1. FILIAÇÃO 211 2. Um servidor
- Page 231 and 232: A.2. SINCRONIZAÇÃO EPIDÉMICA 213
- Page 233 and 234: A.2. SINCRONIZAÇÃO EPIDÉMICA 215
- Page 235 and 236: A.2. SINCRONIZAÇÃO EPIDÉMICA 217
- Page 237 and 238: A.2. SINCRONIZAÇÃO EPIDÉMICA 219
- Page 239 and 240: Apêndice B Mobisnap B.1 Transacç
- Page 241 and 242: Bibliografia [1] S. Agarwal, D. Sta
- Page 243 and 244: BIBLIOGRAFIA 225 [22] Michael J. Ca
- Page 245 and 246: BIBLIOGRAFIA 227 [45] Sérgio Duart
- Page 247 and 248: BIBLIOGRAFIA 229 [67] Jörg M. Haak
180 CAPÍTULO 11. TRABALHO RELACIONADO<br />
Na propagação <strong>de</strong> operações é necessário interceptar e armazenar conjuntamente com os <strong>dados</strong> as ope-<br />
rações executadas. Na propagação do estado apenas é necessário manter a réplica do objecto. Assim, a<br />
propagação <strong>de</strong> operações é mais complexa.<br />
Terceiro, <strong>de</strong>ve ter-se <strong>em</strong> consi<strong>de</strong>ração a informação disponível para o processo <strong>de</strong> reconciliação. A<br />
propagação <strong>de</strong> operações permite que o mecanismo <strong>de</strong> reconciliação utilize a informação s<strong>em</strong>ântica asso-<br />
ciada às operações executadas. Em ambos os casos é possível utilizar a informação s<strong>em</strong>ântica associada<br />
ao tipo <strong>de</strong> <strong>dados</strong>. Assim, a propagação <strong>de</strong> operações permite soluções potencialmente mais eficazes,<br />
<strong>em</strong>bora <strong>de</strong>penda do mecanismo <strong>de</strong> reconciliação explorar ou não a informação adicional disponível.<br />
Nos sist<strong>em</strong>as apresentados nesta dissertação utilizaram-se as duas aproximação. A propagação <strong>de</strong><br />
operações (com compressão) é usada para transmitir para os servidores as modificações executadas pelos<br />
utilizadores, que se assume ser<strong>em</strong> <strong>em</strong> pequeno número. Assim, maximiza-se a informação disponível<br />
para os mecanismos <strong>de</strong> reconciliação. A propagação do estado (utilizando objectos ten<strong>de</strong>ncialmente <strong>de</strong><br />
pequenas dimensões) é usada para actualizar as réplicas dos objectos nos clientes. Neste caso, como o<br />
número <strong>de</strong> operações a enviar se assume ser gran<strong>de</strong> é razoável usar esta técnica. No sist<strong>em</strong>a DOORS<br />
é possível utilizar também a propagação <strong>de</strong> operações para actualizar as cópias dos clientes no caso<br />
<strong>de</strong> o número <strong>de</strong> operações a enviar ser reduzido. No sist<strong>em</strong>a Mobisnap exclui-se esta hipótese por ser<br />
muito complexo manter a sequência das operações executadas (que inclu<strong>em</strong> as operações executadas<br />
directamente por clientes legados).<br />
11.1.7 Detecção das modificações<br />
Para sincronizar duas réplicas é necessário compará-las para <strong>de</strong>terminar se e como foram modificadas.<br />
Uma aproximação possível consiste <strong>em</strong> comparar os seus valores. Como esta operação <strong>de</strong>ve ser<br />
eficiente, a comparação integral das réplicas é inaceitável. Assim, é necessário <strong>de</strong>finir um modo <strong>de</strong><br />
i<strong>de</strong>ntificar univocamente o valor <strong>de</strong> uma réplica. Para tal, po<strong>de</strong> calcular-se um i<strong>de</strong>ntificador (quase)<br />
único a partir do estado do objecto utilizando, por ex<strong>em</strong>plo, uma função <strong>de</strong> dispersão segura (SHA-1,<br />
MD5) 2 .<br />
Esta solução permite verificar a igualda<strong>de</strong> ao nível do conteúdo do objecto, mas não permite inferir<br />
qualquer informação sobre a evolução dos objectos. Assim, as soluções usadas nos sist<strong>em</strong>as <strong>de</strong> replicação<br />
privilegiam a obtenção <strong>de</strong> informação sobre a evolução das réplicas (<strong>em</strong> <strong>de</strong>trimento da informação exacta<br />
sobre a igualda<strong>de</strong> dos seus valores, porque se assume que a probabilida<strong>de</strong> <strong>de</strong> duas réplicas evoluir<strong>em</strong><br />
concorrent<strong>em</strong>ente para o mesmo estado é reduzido).<br />
A utilização <strong>de</strong> relógios escalares (físicos ou lógicos [94]) para i<strong>de</strong>ntificar os valores <strong>de</strong> uma réplica<br />
(ou operações) permite <strong>de</strong>finir uma or<strong>de</strong>m total entre esses valores (ou operações) que respeita a causali-<br />
2 Esta aproximação é usada frequent<strong>em</strong>ente para atribuir i<strong>de</strong>ntificadores únicos a objectos imutáveis [29, 143].