Вы находитесь на странице: 1из 21

3

Arquitetura para Replicao de Bases Heterogneas

Neste captulo ser abordada de forma conceitual a arquitetura proposta.


Primeiramente, sero introduzidos os conceitos relacionados com bases
heterogneas. Em seguida, sero listados os principais requisitos para replicao
de bases heterogneas. A seguir, sero listadas as estratgias adotadas neste
trabalho para atender estes requisitos. Logo aps, sero abordados os agentes e
utilitrios que compe a arquitetura e como eles cooperam no uso destas
PUC-Rio - Certificao Digital N 0510977/CA

estratgias. Finalmente, sero detalhadas as camadas que compe um servio de


replicao.
3.1.

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.

Figura 4. Base de dados heterognea

Um servio de replicao deve respeitar estas relaes de referncia de


maneira a impedir que algum mdulo entre em um estado inconsistente. Ao ser

21

replicada, uma base heterognea pode agrupar mdulos de dados vindos de


diversas bases. Alm disso, pode-se desejar replicar apenas alguns mdulos de

PUC-Rio - Certificao Digital N 0510977/CA

uma base.

Figura 5. Base de dados e servio de replicao

3.2.

Servio de Replicao de Bases Heterogneas


Um servio de replicao um processo que atua em background repetindo

as alteraes de uma base de dados mestre em bases de dados escravas. Esta


qualidade intensificada com os seguintes requisitos:

Tolerncia falhas. O servio de replicao deve se manter ativo


mesmo diante de falhas nas bases de dados. Estas falhas podem ser
causadas por problemas como indisponibilidade no servio de rede,
por exemplo. Assim, aps a rede ser restabelecida, o servio de
replicao deve ser capaz de continuar o processo sem interveno
humana.

Integridade transacional. O servio de replicao deve manter as


propriedades atomicidade, consistncia, isolamento e durabilidade
(ACID) das transaes ocorridas nas bases mestres. Assim, uma
seqncia de operaes de uma transao realizada numa base mestre
deve ser aplicada transacionalmente na base escrava.

Integridade referencial. Um servio de replicao deve garantir que


uma base heterognea seja replicada mantendo a sincronia das
atualizaes de cada mdulo de dados. Ou seja, um mdulo de uma

22

base no pode estar mais atualizado que o outro mdulo da mesma


base. Formalmente, a cada instante, se um mdulo de dados M1
referencia um mdulo de dados M2, ento todos os dados de M2
referenciados por M1 devem estar atualizados juntamente com M1.

Continuidade. O servio de replicao deve permitir que o processo


de replicao possa ser interrompido. Em caso de interrupo, as bases
de dados devem se manter a integridade transacional e referencial.
Quando o processo restabelecido, a replicao deve iniciar no ponto
interrompido, sem perda de dados.

Processamento independente. A coordenao dos fluxos deve ser


realizada de forma que a replicao de uma base no interfira na

PUC-Rio - Certificao Digital N 0510977/CA

replicao de outra base. Ou seja, esperado que a replicao de uma


base de dados possa ser executada em paralelo com a replicao de
outras bases sem interferncias.
Este trabalho prope um conjunto de solues com o objetivo de satisfazer
estes requisitos. O mapeamento entre os requisitos e suas respectivas solues
ilustrado na Figura 6. As prximas sees detalharo estas solues.

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

Figura 6. Mapeamento entre os requisitos e as solues

23

3.2.1. Processamento em Ciclos


O processamento de cada base de dados pode ser realizado de forma cclica.
Ou seja, periodicamente uma base de dado mestre consultada. Caso existam
alteraes deste a ltima consulta, estas alteraes so lidas e enfileiradas para
serem processadas.
Se a base de dados estiver indisponvel, o processamento interrompido.
Porm, aps um perodo de espera, o processamento reiniciado, dando
continuidade ao ciclo. Assim, o servio de replicao se mantm ativo, mesmo
diante de falhas temporrias nas bases de dados. Quando uma base de dados
restabelecida, o servio de replicao volta a atuar automaticamente. Apenas
PUC-Rio - Certificao Digital N 0510977/CA

quando estas tentativas excedem um limite tolervel pr-estabelecido, o


administrador do sistema deve ser notificado.

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

3.2.3. Controle dos Estados das Bases


Cada base de dados pode estar em um dos trs estados distintos:

Mestre: base que recebe alteraes da aplicao

Escrava: base que recebe alteraes de servios de replicao e


acessado pela aplicao apenas para leitura

Livre: base que no est participando do ambiente de replicao

Com essa classificao, o servio de replicao deve garantir que um fluxo


de replicao sempre v de uma base mestre para uma base escrava. Caso uma
base mestre se perca, uma base escrava pode assumir o seu papel, atravs de um

PUC-Rio - Certificao Digital N 0510977/CA

processo de eleio.

Figura 7. Possveis trocas de estados de uma base

Se em um dado instante, um usurio deseje escrever em uma base escrava


esta base dever ter seu estado alterado para livre atravs de um processo de
libertao. Com isso, esta base no est passvel a receber atualizaes vindas do
fluxo de rplica e pode estar inconsistente com a base mestre. Assim, esta base
necessitar ser sincronizada antes de retornar ao seu estado de escrava.
Os processos de libertao e sincronizao so automatizados. Porm, so
disparados somente quando so iniciados por analistas de suporte. J o processo
de eleio definido e executado apenas por analistas de suporte e deve levar em

25

considerao questes como performance da rede, confiabilidade das atualizaes,


tolerncia a atrasos e prioridades nas atualizaes.
3.2.4. Coordenao por Multi-Servios de Replicao
Foram analisadas trs estratgias para coordenao do fluxo de replicao:
um servio centralizado, servios ponto a ponto (P2P) e multi-servios.
Na abordagem de um servio centralizado (Figura 8a), tem-se um nico
responsvel por realizar as replicaes de todas as bases da topologia. Apesar da
simplicidade de implementao, esta abordagem no explora o paralelismo
existente entre as diversas bases de dados. Uma base processada de cada vez.
Para um grande nmero de bases, o atraso na replicao pode ser superior ao
PUC-Rio - Certificao Digital N 0510977/CA

aceitvel. Ou seja, esta soluo no escalvel.


J na estratgia de servios ponto a ponto (Figura 8b), cada base teria seu
respectivo servio, separados fisicamente. Desta forma, pode-se explorar melhor o
paralelismo do problema j que diversas bases independentes podem ser
replicadas simultaneamente. Entretanto, esta abordagem envolve a instalao e
manuteno de um servio em cada ponto, encarecendo o processo de
desenvolvimento e testes.

Figura 8. Estratgias de coordenao de fluxo de replicao

A arquitetura proposta neste trabalho segue uma nova abordagem onde a


coordenao entre os fluxos dividida em diversos ns lgicos, mantendo a
proporo de um servio para cada base. Contudo, os servios podem estar
distribudos em um ou mais ns fsicos. Assim, para um ambiente com N bases de
dados, os servios podem estar concentrados em um nico servidor (Figura 9a) ou

26

distribudos entre dois ou mais servidores (Figura 9b). possvel, inclusive,


configurar N servidores distribudos fisicamente. Esta arquitetura permite, ento,
um equilbrio entre escalabilidade e custo de implementao.
Os servios mantm a comunicao via mensagens. Dessa maneira, as
aplicaes que acessam as bases de dados podem manter o seu trabalho
independente do processamento de rplica. Embora este fluxo assncrono permitir
que as bases replicadas estejam temporariamente atrasadas em relao s bases
originais, as aplicaes no tero seu desempenho afetado pelo processo de

PUC-Rio - Certificao Digital N 0510977/CA

replicao.

Figura 9. Possveis configuraes de uma topologia com multi-servios

A tupla formada por uma base de dados e seu respectivo servio de


replicao foi denominada n de replicao (Figura 10a). Um n de replicao
define a menor unidade de uma topologia de um ambiente de replicao (Figura
10b).

Figura 10. N e topologia

27

3.2.5. Processamento Assncrono


O processamento de uma base de dados pode ser realizado de maneira
assncrona. Toda atualizao gerada por uma aplicao armazenada num registro
de atualizaes. Assim, a aplicao fica livre para realizar novas atualizaes
antes das antigas atualizaes serem devidamente replicadas pelos servios de
replicao.
A comunicao entre servios de replicao tambm pode ser realizada de
maneira assncrona, com troca de mensagens de atualizao para suas respectivas
bases de dados. Isto d maior continuidade a um determinado servio porque

PUC-Rio - Certificao Digital N 0510977/CA

quando um servio interrompido e posteriormente restabelecido, basta continuar


o processamento das mensagens restantes.
3.2.6. Operaes Transacionais
As operaes realizadas por um servio de replicao devem ser realizadas
transacionalmente. Cada alterao numa base de dados deve ser realizada
transacionalmente para que em caso de falhas, a base se mantenha consistente.
Alm disso, o processamento de mensagens de atualizao tambm deve ser
transacional para que em caso de falhas, a mensagem no seja perdida. Ou seja,
necessrio manipular dois recursos numa nica transao: a fila de mensagens e a
base de dados.
Para realizar esta tarefa, recomendado o uso do protocolo two-phase
commit [BERNSTEIN, 1987] que garante que uma transao somente finalizada
com sucesso quando todos os recursos confirmam que a transao pode ser
finalizada.
3.3.

Componentes da Arquitetura
A arquitetura proposta neste trabalho define um conjunto de agentes e

utilitrios. Foram modelados trs tipos de agentes:

Observador: monitora as alteraes da aplicao e as guarda num


registro de alteraes.

28

Exportador: l o registro de alteraes de bases mestres e gera as


mensagens adequadas.

Importador: recebe mensagens dos exportadores e aplica as


alteraes nas bases escravas.

Um servio de replicao composto por um agente exportador e um agente


importador. Durante o processo, o agente observador atua juntamente com a
aplicao, monitorando as alteraes na base de dados. O trabalho cooperativo
entre estes agentes suficiente para a realizao de uma replicao.
Contudo, para facilitar o controle e a administrao do ambiente foram
implementados os seguintes utilitrios: configurador, analisador, sincronizador e

PUC-Rio - Certificao Digital N 0510977/CA

copiador. O copiador responsvel pela criao de bases escravas a partir de uma


base mestre. J o configurador responsvel pela manipulao dos servios
definidos para o ambiente de replicao. Por sua vez, o analisador possibilita
verificar a consistncia entre bases mestres e escravas, e tambm verifica a
consistncia entre mdulos de uma mesma base de dados. Finalmente, o
sincronizador permite povoar uma base mestre com alteraes realizadas na base
livre. A Figura 11 mostra uma viso geral destes agentes e utilitrios. Nas
prximas sees, eles sero detalhados.

Figura 11. Viso geral da arquitetura e utilitrios

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

atravs de um driver real. Em caso de sucesso, a instruo de alterao inserida


numa tabela do prprio banco. Assim, o servio de replicao no precisa analisar
os dados reais para identificar as alteraes. Basta ler o registro de alteraes.
Embora seja transparente para aplicao, o observador deve ser distribudo em
conjunto com a mesma.

Figura 12. Driver observador

As alteraes registradas pelo observador variam conforme o tipo de


mdulo de dados. Um mdulo que armazena arquivos pode possuir alteraes
para criao, edio e remoo de arquivos. De forma equivalente, um mdulo
que um banco de dados possui atualizaes SQL e tambm de identificao de
transaes.

30

Id

Instante

Tipo

Verso

Alterao

152

12:31:05

SQL

345,20

insert into ...

153

12:31:08

FILE

345,20

C:\temp\f.txt

154

12:32:35

SQL

345,21

delete from ...

155

12:32:41

COMMIT

346,21

Figura 13. Exemplo de registro de alteraes

A tabela da figura 13 ilustra um exemplo de registro de alteraes. O campo


Id se refere ao identificador de cada registro, garantindo unicidade. Em seguida, o
campo Instante se refere ao instante no qual o registro foi efetuado. Este campo
PUC-Rio - Certificao Digital N 0510977/CA

facilita a deteco de conflitos durante a sincronizao de dados. Logo aps, o


campo tipo representa qual tipo de alterao est sendo registrada. Esta
informao importante para que o servio de replicao saiba como a
atualizao deve ser aplicada na base escrava e como as verses devem ser
verificadas. J o campo verso informa o estado das verses de todos os mdulos
no instante onde a alterao aconteceu. Finalmente, o campo alterao armazena
a atualizao propriamente dita.

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:

Leitura do bloco de atualizaes. Um bloco delimitado pelo fim de


uma transao. Caso mais de um mdulo de dados seja atualizado

31

durante uma transao, sero registradas diversas atualizaes com


seus respectivos versionamentos.

Gerao das mensagens. As atualizaes so encapsuladas em


mensagens, adicionando-se um cabealho contendo informaes de
controle para o roteamento.

Envio das mensagens. Aps serem geradas, as mensagens so


enviadas aos servios que so responsveis por aplic-las. Estas
mensagens so armazenadas em filas at que os importadores as
processem.

Limpeza de atualizaes processadas. Caso as mensagens sejam


enviadas com sucesso, as atualizaes processadas devem ser

PUC-Rio - Certificao Digital N 0510977/CA

eliminadas do registro de atualizaes, para evitar mensagens


duplicadas.
3.3.3. Importador
Um agente importador responsvel por coordenar atualizao de uma
base. Cada atualizao recebida atravs de mensagens vindas do exportador.
Inicialmente importador l a mensagem que est no topo da fila, realiza uma
seqncia de verificaes.
Uma importao realizada pelas as seguintes etapas:

Leitura de uma mensagem. O importador processa uma mensagem


de cada vez. Assim, caso existam mensagens na fila, ele inicia o
processamento da primeira mensagem colocada na fila.

Verificao da mensagem. O importador verifica se a mensagem est


devidamente endereada, se a mensagem leva a verso do mdulo
atual da verso X para a verso X+1 e se o estado atual da base
escrava.

Aplicao da atualizao. As atualizaes so aplicadas de acordo


com o tipo de mdulo. Um mdulo que representa um banco de dados
atualizado atravs da execuo de instrues SQL. J um mdulo
que representa um conjunto de arquivos do sistema atualizado
atravs a insero/alterao/remoo dos arquivos.

32

Reenvio da mensagem. Caso haja uma replicao transitiva, ou seja,


uma base A replicada para uma base B que por sua vez replicada
para uma base C, uma mensagem que chega em B deve ser reenviada
a C.

Agradecimento da mensagem. Quando a atualizao de uma


mensagem devidamente aplicada, a mensagem pode ser agradecida,
que resulta na remoo da mensagem da fila. Dessa forma, o
importador pode iniciar o processamento da prxima mensagem da

PUC-Rio - Certificao Digital N 0510977/CA

fila.

Figura 14. Servios de replicao

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

Figura 15. Utilitrio Configurador

Com a topologia definida, o configurador capaz de criar e iniciar os


servios de replicao para cada base. Alm disso, o configurador permite ajustar

PUC-Rio - Certificao Digital N 0510977/CA

cada servio de acordo com parmetros como o intervalo para busca de


atualizaes, limite temporal para as transaes, entre outros. Dessa forma, o
usurio ter a possibilidade de conciliar desempenho do replicador com o
desempenho da infra-estrutura de rede disponvel.

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

Figura 16. Utilitrio copiador

O utilitrio copiador responsvel por copiar os mdulos replicveis de


uma base mestre para uma base escrava. Ele realiza um processo de congelamento
PUC-Rio - Certificao Digital N 0510977/CA

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.

Figura 17. Utilitrio sincronizador

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-

PUC-Rio - Certificao Digital N 0510977/CA

processamento na configurao dos servios de replicao.

Figura 18. Utilitrio analisador

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.

Agentes, Utilitrios e Solues


As solues para os problemas apresentados na seo 3.2 so alcanadas

pela colaborao de um ou mais agentes e utilitrios.


O processamento em ciclos realizado por cada servio de replicao, por
seus agentes exportadores e importadores. Contudo, o configurador atua na
definio do intervalo de durao de um ciclo e do intervalo entre um ciclo e
outro.
O processamento assncrono resolvido em duas etapas. A primeira etapa
consiste na comunicao entre um observador e um exportador e a segunda etapa
ocorre entre um exportador e um importador. A comunicao entre um observador
e um exportador realizada atravs do registro de atualizaes. E a comunicao
PUC-Rio - Certificao Digital N 0510977/CA

entre um exportador e um importador realizada via troca de mensagens.


As operaes transacionais ocorrem no observador, no exportador, no
importador e no sincronizador. No observador, o registro de atualizaes ocorre
na mesma transao onde a atualizao est sendo realizada. No exportador, a
leitura do registro de atualizao, envio de mensagem e limpeza das atualizaes
processadas ocorre numa nica transao. J no importador, numa nica transao
realizado o processamento de uma mensagem e a atualizao da respectiva base.
Finalmente, o sincronizador atua lendo as atualizaes de uma base escrava e
escrevendo numa base de mestre, numa nica transao.
O versionamento utilizado por todos os agentes e utilitrios. Todos estes
componentes da arquitetura avaliam a verso dos mdulos das bases de dados
quando fazem uma leitura e atualizam suas verses quando fazem uma escrita na
base. Em especial, o configurador impede que os servios de replicao se iniciem
se as bases mestre e escrava no estiverem coerentes quanto ao versionamento.
O controle dos estados das bases realizado pelo configurador e
complementado pelo sincronizador. O configurador define quais bases so
mestres e quais so escravas, de acordo com a definio da topologia. J o
sincronizador atua transformando uma base livre numa base escrava para se
restabelecer o processo de replicao. Por fim, o agente importador atua
verificando se possui acesso de escrita na base, de acordo com o seu estado.

37

Finalmente, a coordenao por multi-servios definida pela estrutura da


arquitetura, onde o configurador atua gerenciando os servios de replicao. Cada
servio de replicao possui um agente exportador e um agente importador.

Agentes
Observador

Exportador

Importador

Processamento
em ciclos
Processamento
Assncrono
Operaes
transacionais

PUC-Rio - Certificao Digital N 0510977/CA

Versionamento

Utilitrios
Copiador

Configurador

Analisador

Sincronizador

Controle dos
estados das

bases
Coordenao
por multi-

servios

Figura 19. Mapeamento entre as solues e os agentes e utilitrios

3.7.

Camadas de um Servio de Replicao


Seguindo a estratgia de projeto orientado a domnio, o servio de

replicao foi projetado utilizando uma arquitetura de camadas. Foram definidas


trs camadas:

Camada de Coordenao: nesta camada esto localizados os agentes


exportador, importado e observadorr.

Camada de Negcio: esta camada define as regras de replicao para


cada tipo de mdulo de dados da base. Nela so definidos os
tratamentos especficos para bancos de dados, arquivos e demais
mdulos de dados da base. Ela tambm especifica a direo dos fluxos
de replicao.

Camada de Fronteira: abstrai a comunicao de um servio de


replicao com os demais integrantes do ambiente.

38

Figura 20. Camadas

PUC-Rio - Certificao Digital N 0510977/CA

Cada uma destas camadas ser apresentada nas prximas sees.


3.7.1. Camada de Fronteira
Um servio de replicao no possui uma camada de apresentao, por se
tratar de uma aplicao que funciona em background. A interao humana ocorre
apenas durante a configurao do servio. Apesar disto, o servio interage com
outras aplicaes atravs da camada de fronteira com o ambiente. Esta a camada
responsvel por efetivar todas as comunicaes com as bases de dados e com
outros servios de replicao.
As bases de dados so acessadas no pacote de persistncia. Atravs dele,
possvel ler as atualizaes registradas pelo observador na base mestre e aplic-las
s bases escravas. Tambm possvel identificar qual a verso de um mdulo de
uma base e alter-la.
A camada de fronteira tambm possui o pacote de ambiente que implementa
a comunicao assncrona com outros servios. Alm disso, ela tambm abstrai
questes relativas s tecnologias utilizadas para comunicao com as bases de
dados.

39

3.7.2. Camada de Negcio


A camada de negcio formaliza as regras que os agentes devem obedecer ao
replicar os mdulos de dados. Este trabalho dividido entre os pacotes topologia,

PUC-Rio - Certificao Digital N 0510977/CA

atualizaes e verificaes.

Figura 21. Classes do pacote topologia

O ambiente de replicao descrito atravs do pacote topologia. Atravs


desta descrio possvel responder qual mdulo deve ser replicado de qual base
mestre para qual base escrava. Esta orientao fundamental para que os agentes
dos servios de replicao saibam quais so seus objetivos.
J o pacote atualizaes define o tratamento adequado para cada tipo de
mdulo de dados, alm de informaes de controle. As principais so:

SQL: representa os comandos de insero, atualizao e remoo em


bancos de dados.

FILE: indica que um arquivo deve ser replicado.

COMMIT: marca o final de uma transao

Finalmente, o pacote verificaes da camada de negcio trata da validao


de pr-condies para a aplicao das mensagens de atualizao. Estas condies
envolvem as estratgias de roteamento de fluxo, transaes, algoritmos que
garantem consistncia, versionamento e performance. Assim, esta camada de

40

domnio concentra as regras de negcio e garante que o sistema tenha


escalabilidade de requisitos.
3.7.3. Camada de Coordenao
Finalmente, a camada de coordenao define o agente exportador e o agente
importador. Alm disso, define as regras envolvidas com o ciclo de vida dos
agentes. Este ciclo de vida envolve a criao dos agentes e define os ciclos de
processamento.
Durante a criao, os agentes so informados sobre a topologia do ambiente.
Assim, eles so capazes de identificar em quais bases devem atuar e com quais
agentes devem se comunicar.
PUC-Rio - Certificao Digital N 0510977/CA

A camada de coordenao tambm prov mecanismos para controle de


inicializao e finalizao dos servios de replicao. Estes recursos so acessados
pelo utilitrio configurador.

Вам также может понравиться