Академический Документы
Профессиональный Документы
Культура Документы
Base Heterognea
Uma base heterognea caracterizada como sendo um conjunto de
diferentes tipos de mdulos de dados. Um mdulo de dados pode ser uma partio
de um banco de dados, um conjunto de documentos XML, planilhas, e-mails e
outros [Anexo A].
Entre dois mdulos de dados pode haver uma relao de referncia. Um
exemplo tpico um campo de uma tabela de um banco de dados que contm o
endereo de um documento que, por sua vez, est armazenado em um
determinado sistema de arquivos.
21
uma base.
3.2.
22
Processamento
em ciclos
Tolerncia
Integridade
Integridade
a falhas
transacional
referencial
Versionamento
Continuidade
Processamento
independente
X
X
Controle dos
estados das
bases
Coordenao
X
por multiservios
Processamento
Assncrono
Operaes
transacionais
23
3.2.2. Versionamento
Uma base heterognea versionada garante que o servio de replicao
manter a consistncia dos dados. Assim, se um mdulo de uma base escrava
possui a mesma verso do mesmo mdulo na base mestre, ento todas as
atualizaes geradas na base mestre foram devidamente aplicadas na base escrava.
Uma estratgia para se versionar os mdulos atravs da marcao de data
e hora de cada atualizao. Contudo, esta estratgia possui o inconveniente de que
as bases mestres e escravas mantenham os relgios sincronizados. Sendo assim,
optou-se por utilizar uma estratgia de versionamento baseada em contadores
inteiros. Se um mdulo est na verso X, deve ser aplicada uma atualizao que o
leva verso X+1. O servio de replicao responsvel por garantir que apenas
atualizaes que respeitem esta regra sejam aplicadas ao mdulo de dados.
Para ilustrar esta regra, seja uma base com os mdulos A, B e C com
versionamento (200, 130, 500). Uma alterao B,131 poder ser efetuada e
levar a base ao versionamento (200, 131, 500). Porm, se logo em seguida o
servio de replicao receber uma atualizao B, 133, ela ser rejeitada, pois
indica que houve perda ou atraso da mensagem B, 132.
24
processo de eleio.
25
26
replicao.
27
Componentes da Arquitetura
A arquitetura proposta neste trabalho define um conjunto de agentes e
28
29
3.3.1. Observador
Um agente observador intercepta as alteraes do mdulo de dados vindas
da aplicao e armazena num registro de alteraes. Para garantir que todas as
alteraes fossem mapeadas foi necessrio identificar um ponto nico por onde
todas as alteraes sempre passam independente da implementao da camada de
persistncia. O ponto nico identificado foi a conexo com o banco de dados.
Assim, foi definida uma implementao proxy de uma conexo com o banco. Este
proxy aplica as alteraes e tambm as armazena no registro de alteraes, numa
nica transao. Por simplicidade e robustez, este registro se localiza fisicamente
no prprio banco, em uma tabela especfica (Figura 12).
Inicialmente o observador tenta executar as alteraes no banco de dados
PUC-Rio - Certificao Digital N 0510977/CA
30
Id
Instante
Tipo
Verso
Alterao
152
12:31:05
SQL
345,20
153
12:31:08
FILE
345,20
C:\temp\f.txt
154
12:32:35
SQL
345,21
155
12:32:41
COMMIT
346,21
3.3.2. Exportador
Um agente exportador responsvel por verificar periodicamente uma base
de dados. Caso existam alteraes, ele deve gerar as mensagens equivalentes e
envi-las para uma fila. Em seguida deve apagar os registros de alteraes para os
quais j foram criadas as mensagens. Cada base mestre deve ser monitorada por
apenas um exportador.
O exportador checa o registro de atualizaes de uma base de dados e gera
as mensagens de atualizao. A leitura do registro realizada em blocos
transacionais. Assim, garante-se que as bases escravas mantenham a consistncia
transacional. Alm disso, evita-se que a memria ocupada pelo exportador cresa
indefinidamente.
Uma exportao realizada pelas as seguintes etapas:
31
32
fila.
3.5.1. Configurador
O configurador tem a misso de tornar fcil e gil o processo de definio
da topologia do ambiente de replicao bem como facilitar os controles de
inicializao e finalizao dos servios. Atravs do configurador ainda possvel
definir parmetros de ajustes de desempenho para o ambiente em questo.
Por definio de topologia entende-se a declarao que quais so as bases de
dados, quais so os mdulos de cada base, e qual dever ser o fluxo. Na
declarao das bases e mdulos de dados so definidos parmetros de
configurao de cada base. J no fluxo so definidos quais mdulos sero
replicados, de qual base mestre para quais bases escravas. Ou seja, so definidos
quais sero os mdulos mestres e escravos.
33
3.5.2. Copiador
Para a criao de um fluxo de replicao so necessrios no mnimo duas
bases de dados. Uma ser a base mestre e a outra escrava. Estas bases podem
manter um nmero diferente de mdulos, mas devem manter os mesmos mdulos
replicveis. Por exemplo, se uma base mestre possui os mdulos M1 e M2 e a
base escrava possui os mdulos M2 e M3, sendo que apenas o mdulo M2
replicvel.
Dessa forma, antes da inicializao do servio de replicao, necessrio
que os mdulos replicveis estejam idnticos. Assim, no processo de gerao da
base escrava, devem-se copiar os mdulos replicveis da base mestre.
34
do estado de uma base de dados. Esta verso congelada pode tambm ser utilizada
como cpias de segurana, tecnicamente conhecidos como backup/restore.
3.5.3. Sincronizador
O utilitrio sincronizador responsvel atualizar uma base mestre com
dados vindos de uma base livre. Ele realiza trabalho semelhante ao servio de
replicao, realizando tarefas similares ao exportador e importador. Entretanto, o
sincronizador difere na inexistncia de troca de mensagens. Tanto a leitura quanto
a execuo de atualizao ocorrem numa nica transao distribuda.
Consequentemente, a checagem de consistncia tambm diferente j que no h
roteamento de mensagens. Alm disso, num processo de sincronizao h uma
inverso nos papis de num fluxo. A base mestre atua recebendo as atualizaes
de uma base livre, que era anteriormente escrava.
35
3.5.4. Analisador
O utilitrio analisador oferece a possibilidade de verificar de forma
automatizada a consistncia de toda a base de dados. Esta consistncia inclui tanto
a verificao de uma nica base quanto a verificao comparativa entre uma base
mestre e uma base escrava. Esta verificao recomendada como pr-
Para verificar que os mdulos de uma mesma base esto consistentes entre
si, o analisador varre toda a base de dados buscando possveis inconsistncias nas
referncias entre os mdulos. Por exemplo, se um banco de dados armazena o
endereo de um arquivo, o analisador verifica que o arquivo existe no caminho
indicado.
J para verificar se as bases escravas esto consistentes com as bases mestre,
o analisador primeiramente compara as verses de cada mdulo. Caso estejam
iguais, o analisador prossegue atravs de uma varredura comparativa.
Aps o processamento, o analisador gera um relatrio indicando as
possveis divergncias entre o esperado e o verificado. As falhas de consistncia
locais indicam que houve manipulao indevida da base, possivelmente
provocadas por erros nas aplicaes que manipulam estas bases. J as
divergncias entre uma base mestre e escrava indicam possveis erros do servio
de replicao. Dessa forma, o analisador atua como suporte no diagnstico de
problemas.
36
3.6.
37
Agentes
Observador
Exportador
Importador
Processamento
em ciclos
Processamento
Assncrono
Operaes
transacionais
Versionamento
Utilitrios
Copiador
Configurador
Analisador
Sincronizador
Controle dos
estados das
bases
Coordenao
por multi-
servios
3.7.
38
39
atualizaes e verificaes.
40