17
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

Persistência de Objetos em Java

Embed Size (px)

DESCRIPTION

Palestra apresentada no SERPRO.

Citation preview

Page 1: Persistência de Objetos em Java

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

Page 2: Persistência de Objetos em Java

Agenda

• Fundamentos;• Razões;• Java Database

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

CMP;• Elementos de

Comparação;• Conclusões.

Page 3: Persistência de Objetos em Java

Fundamentos

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

Page 4: Persistência de Objetos em Java

Fundamentos

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

Page 5: Persistência de Objetos em Java

Razões

• Aplicações Corporativas

Indústrias

Serviços

Comércio

Agricultura

Page 6: Persistência de Objetos em Java

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

Page 7: Persistência de Objetos em Java

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

Page 8: Persistência de Objetos em Java

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;

Page 9: Persistência de Objetos em Java

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).

Page 10: Persistência de Objetos em Java

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

Page 11: Persistência de Objetos em Java

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;

Page 12: Persistência de Objetos em Java

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

Page 13: Persistência de Objetos em Java

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

Page 14: Persistência de Objetos em Java

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

Page 15: Persistência de Objetos em Java

Elementos de Comparação

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

Monta um array com as propriedades

da classe

Page 16: Persistência de Objetos em Java

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.

Page 17: Persistência de Objetos em Java

Obrigado!

Perguntas?