190 likes | 286 Vues
DBSync4J. Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção. Autores: Ana Carolina Ferreira Lins Rafael Fernandes Gomes Orientador: Fernando Macedo. Cenários. Software em constante evolução; Não ter controle sobre as mudanças;
E N D
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes Gomes Orientador: Fernando Macedo
Cenários • Software em constante evolução; • Não ter controle sobre as mudanças; • Falta de controle nos sub-processos do desenvolvimento; • Problemaa ser solucionado • Mapear e sincronizar diferenças estruturais entre duas bases;
Objetivos • Demonstrar diversas tecnologias de acesso e captura de metadados estruturais de bancos de dados relacionais; • Desenvolver uma ferramenta Open Source utilizando a linguagem Java; • Criar uma alternativa além das soluções proprietárias quando se trata de um problema de falta de sincronia estrutural entre bancos de dados de produção e desenvolvimento. • Promover a conscientização da importância da gestão de configuração.
Problematização • Como sincronizar as bases de dados de um projeto já em andamento que não possui a estrutura desejada de controle de mudanças? • Como minimizar o esforço para sincronizar bases em produção e desenvolvimento? • Como mapear as diferenças estruturais entre duas bases de dados?
Problematização • Como abstrair essas diferenças na estrutura em uma saída com um formato amigável e de fácil compreensão para o desenvolvedor? • Que benefícios à solução proposta neste trabalho provê aos envolvidos no projeto? • Que custo terá a solução proposta neste trabalho?
Conceitos Importantes • O que são metadados? • São dados sobre outros dados. Um item de um metadado pode dizer do que se trata aquele dado. • O que é a API JDBC? • A API JDBC é uma biblioteca Java para acesso virtual de qualquer tipo de dados tabulares. Essa API consiste em um conjunto de classes e interfaces escrito na linguagem de programação Java. • O que é o Schema Crawler? • API que utiliza internamente o JDBC e efetua a captura dos metadados dos bancos de dados relacionais.
Visão Geral DBSync4J • Tecnologias / Ferramentas utilizadas • Eclipse 3.3 Europa; • Plugin JUnit; • API Schema Crawler e JDBC; • API BeanDiff; • Orientação a Objeto; • Design Patterns; • Funcionalidades • Abstração de metadados; • Extração de metadados; • Comparação.
Testes Unitários na Ferramenta DBsync4J • Definição • Teste específico para uma funcionalidade atômica de um método dentro de uma classe; • A importância dos testes para a Ferramenta • Garantir que todas as entidades serão carregadas atualizadas no Banco de Dados; • Credibilidade / Integridade da aplicação; • Redução considerável de erros pós - entrega ao cliente.
Testes Unitários na Ferramenta DBsync4J Testando o carregamento do Schema...
Testes Unitários na Ferramenta DBsync4J Testando o carregamento de Chaves Primárias / Estrangeiras...
Testes Unitários na Ferramenta DBsync4J Schema Crawler X JDBC O erro...Carregamento de Colunas
Testes Unitários na Ferramenta DBsync4J Schema Crawler X JDBC A solução...Carregamento de Colunas
Trabalhos Futuros • Suporte a sincronização de forma transparente; • Remoção da dependência do Schema Crawler; • Implementação de rotinas de geração de scripts DDL; • Melhorar suporte a internacionalização; • Aumentar escopo suportado pela ferramenta;
Trabalhos Futuros • Extração de metadados localmente do computador de um desenvolvedor; • Suportar outras bases de dados; • Melhora na performance durante o carregamento dos metadados; • Criar um plugin para que a ferramenta DBsyn4J se integre com o Eclipse; • Criação/Persistência/Comparação de Snapshot dos metadados estruturais da base.
Análise dos Resultados • Motivação: conhecer profissionais que em algum momento se depararam com problemas de comparação de bancos de dados; • Considerações importantes: • A comparação estrutural de banco de dados uma vez executada manualmente é considerada uma tarefa de grande consumo de tempo. • Desafio alcançado: suavizar grandes diferenças entre SGBD, pois cada um possui sua forma de lidar, armazenar e recuperar seus metadados. • Resultado do Trabalho: ferramenta genérica em fase funcional e open source que realize a tarefa de comparação estrutural entre bancos de dados como contribuição a comunidade.
Onde encontrar a Ferramenta? http://code.google.com/p/dbsync4j/