Persistência de Objetos em Java

Preview:

DESCRIPTION

Palestra apresentada no SERPRO.

Citation preview

Persistência de Objetos

Formas de Persistência de Objetos em Java Desafios do Mapeamento Objeto-Relacional

Armênio Cardoso

Consultor, Arquiteto de Sistemas e Professor

Agenda

• Fundamentos;• Razões;• Java Database

Connectivity - JDBC;• Java Data Object - JDO;• Hibernate;• Enterprise Java Beans -

CMP;• Elementos de

Comparação;• Conclusões.

Fundamentos

• O Que é Persistência de Objetos?– Objetos Transientes.– Objetos Persistentes.

Fundamentos

• O Que é Persistência de Objetos?– Serialização.– Bancos de Dados.– Fontes de Dados.

Razões

• Aplicações Corporativas

Indústrias

Serviços

Comércio

Agricultura

Razões

• Requisitos Não Funcionais e Escala

DesktopDesktop GrupoGrupo Equipe deEquipe deProjetoProjeto DivisãoDivisão EmpresaEmpresa InternetInternet

101011 100100 1.0001.000 10.00010.000 100.000100.000

Confiabilidade e IntegridadeConfiabilidade e IntegridadeExtensibilidadeExtensibilidade

Segurança e AuditoriaSegurança e AuditoriaCapacidadeCapacidade

DesempenhoDesempenhoDisponibilidadeDisponibilidade

GerenciabilidadeGerenciabilidadeEscalabilidadeEscalabilidade

Razões

• Arquiteturas de Aplicações

IntegraçãoIntegração RecursosRecursosNegócioNegócioApresentaçãoApresentaçãoClienteCliente

Plataforma InferiorPlataforma Inferior

Plataforma SuperiorPlataforma Superior

Plataforma VirtualPlataforma Virtual

AplicaçãoAplicação

Java Database Conectivity

• Seleção de Driver para acesso ao Banco de Dados;

• SQL ANSI ou Proprietário embutido no código;

• Pool de Conexões externo;

• Statement, PreparedStatement, CallableStatement;

• ResultSet;

Java Data Object

• Especificado por comitê;• Os objetos têm que ser

JavaBean (serializ..);• Pode-se escolher como e

onde será feita a persistência - db, dboo, xml;

• Linguagem JDOQL;• Implementações de terceiros:

Kodo JDO, TJDO etc.• Não tem as funções de

agragação (sum, avg).

Hibernate

• Os objetos têm que ser JavaBean (serializ..);

• Persistência de objetos declarativa;

• Pool de Conexões interno;• Uso somente com bancos de

dados relacionais;• Facilidade de integração com

sistemas legados;• Requer reflexão em runtime

Enterprise Java Beans CMP

• Container Managed Persistence;

• Definido por comitê, mas dispõe de “extensões”;

• Sua implementação pode variar conforme o servidor de aplicação;

• Persistência de objetos declarativa;

• Aplicações genuinamente distribuídas;

• Linguagem EJBQL;

Elementos de Comparação

• Free sem código-fonte• Free com código-fonte• Contém ferramenta de mapeamento visual• Persiste classes arbitrárias sem obrigar herança• Requer construção de SQL de forma manual• Suporte a que Bancos de Dados• Suporte a Enterprise Java Beans• O mapeamento suporta agrupamento

http://c2.com/cgi/wiki?ObjectRelationalToolComparison

Elementos de Comparação

• Mapeamento suporta funções de agregação• Mantém identificações únicas para objetos• Resolve identificação circular• Gera o mapeamento ou as classes• Suporte a chaves primárias compostas• Optimistic Locking• Transações tratadas nos objetos

http://c2.com/cgi/wiki?ObjectRelationalToolComparison

Elementos de Comparação

• Clustering• Requer geração de código• Cache de queries• Suporte a associações ternárias• Mapeamento de uma classe em várias tabelas• Mapeamento de várias classes em uma tabela

http://c2.com/cgi/wiki?ObjectRelationalToolComparison

Elementos de Comparação

• Reflexão em runtimeIdentifica a Classe do Objeto em Questão

Monta um array com as propriedades

da classe

Conclusões

• As aplicações têm requisitos diferentes.

• As soluções que se apresentam têm aplicações diferentes.

• Produtividade, desempenho e integração como requisitos de seleção.

Obrigado!

Perguntas?