Persistência de Objetos  Formas de Persistência de Objetos em Java  Desafios do Mapeamento Objeto-Relacional Armênio Cardo...
Agenda <ul><li>Fundamentos; </li></ul><ul><li>Razões; </li></ul><ul><li>Java Database Connectivity - JDBC; </li></ul><ul><...
Fundamentos <ul><li>O Que é Persistência de Objetos? </li></ul><ul><ul><li>Objetos Transientes. </li></ul></ul><ul><ul><li...
Fundamentos <ul><li>O Que é Persistência de Objetos? </li></ul><ul><ul><li>Serialização. </li></ul></ul><ul><ul><li>Bancos...
Razões <ul><li>Aplicações Corporativas </li></ul>         Indústrias Serviços Comércio Agricultura
Razões <ul><li>Requisitos Não Funcionais e Escala </li></ul>Desktop Grupo Equipe de Projeto Divisão Empresa Internet 10 1 ...
Razões <ul><li>Arquiteturas de Aplicações </li></ul>Integração Recursos Negócio Apresentação Cliente Plataforma Inferior P...
Java Database Conectivity <ul><li>Seleção de Driver para acesso ao Banco de Dados; </li></ul><ul><li>SQL ANSI ou Proprietá...
Java Data Object <ul><li>Especificado por comitê; </li></ul><ul><li>Os objetos têm que ser JavaBean (serializ..); </li></u...
Hibernate <ul><li>Os objetos têm que ser JavaBean (serializ..); </li></ul><ul><li>Persistência de objetos declarativa; </l...
Enterprise Java Beans CMP <ul><li>Container Managed Persistence; </li></ul><ul><li>Definido por comitê, mas dispõe de “ext...
Elementos de Comparação <ul><li>Free sem código-fonte </li></ul><ul><li>Free com código-fonte </li></ul><ul><li>Contém fer...
Elementos de Comparação <ul><li>Mapeamento suporta funções de agregação </li></ul><ul><li>Mantém identificações únicas par...
Elementos de Comparação <ul><li>Clustering </li></ul><ul><li>Requer geração de código </li></ul><ul><li>Cache de queries <...
Elementos de Comparação <ul><li>Reflexão em runtime </li></ul>Identifica a Classe do Objeto em Questão Monta um array com ...
Conclusões <ul><li>As aplicações têm requisitos diferentes. </li></ul><ul><li>As soluções que se apresentam têm aplicações...
Obrigado!  Perguntas?
Próximos SlideShares
Carregando em…5
×

Persistência de Objetos em Java

3.037 visualizações

Publicada em

Palestra apresentada no SERPRO.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
3.037
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
21
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Persistência de Objetos em Java

  1. 1. 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
  2. 2. Agenda <ul><li>Fundamentos; </li></ul><ul><li>Razões; </li></ul><ul><li>Java Database Connectivity - JDBC; </li></ul><ul><li>Java Data Object - JDO; </li></ul><ul><li>Hibernate; </li></ul><ul><li>Enterprise Java Beans - CMP; </li></ul><ul><li>Elementos de Comparação; </li></ul><ul><li>Conclusões. </li></ul>
  3. 3. Fundamentos <ul><li>O Que é Persistência de Objetos? </li></ul><ul><ul><li>Objetos Transientes. </li></ul></ul><ul><ul><li>Objetos Persistentes. </li></ul></ul>
  4. 4. Fundamentos <ul><li>O Que é Persistência de Objetos? </li></ul><ul><ul><li>Serialização. </li></ul></ul><ul><ul><li>Bancos de Dados. </li></ul></ul><ul><ul><li>Fontes de Dados. </li></ul></ul>
  5. 5. Razões <ul><li>Aplicações Corporativas </li></ul>         Indústrias Serviços Comércio Agricultura
  6. 6. Razões <ul><li>Requisitos Não Funcionais e Escala </li></ul>Desktop Grupo Equipe de Projeto Divisão Empresa Internet 10 1 100 1.000 10.000 100.000 Confiabilidade e Integridade Extensibilidade Segurança e Auditoria Capacidade Desempenho Disponibilidade Gerenciabilidade Escalabilidade
  7. 7. Razões <ul><li>Arquiteturas de Aplicações </li></ul>Integração Recursos Negócio Apresentação Cliente Plataforma Inferior Plataforma Superior Plataforma Virtual Aplicação
  8. 8. Java Database Conectivity <ul><li>Seleção de Driver para acesso ao Banco de Dados; </li></ul><ul><li>SQL ANSI ou Proprietário embutido no código; </li></ul><ul><li>Pool de Conexões externo; </li></ul><ul><li>Statement, PreparedStatement, CallableStatement; </li></ul><ul><li>ResultSet; </li></ul>
  9. 9. Java Data Object <ul><li>Especificado por comitê; </li></ul><ul><li>Os objetos têm que ser JavaBean (serializ..); </li></ul><ul><li>Pode-se escolher como e onde será feita a persistência - db, dboo, xml; </li></ul><ul><li>Linguagem JDOQL; </li></ul><ul><li>Implementações de terceiros: Kodo JDO, TJDO etc. </li></ul><ul><li>Não tem as funções de agragação (sum, avg). </li></ul>
  10. 10. Hibernate <ul><li>Os objetos têm que ser JavaBean (serializ..); </li></ul><ul><li>Persistência de objetos declarativa; </li></ul><ul><li>Pool de Conexões interno; </li></ul><ul><li>Uso somente com bancos de dados relacionais; </li></ul><ul><li>Facilidade de integração com sistemas legados; </li></ul><ul><li>Requer reflexão em runtime </li></ul>
  11. 11. Enterprise Java Beans CMP <ul><li>Container Managed Persistence; </li></ul><ul><li>Definido por comitê, mas dispõe de “extensões”; </li></ul><ul><li>Sua implementação pode variar conforme o servidor de aplicação; </li></ul><ul><li>Persistência de objetos declarativa; </li></ul><ul><li>Aplicações genuinamente distribuídas; </li></ul><ul><li>Linguagem EJBQL; </li></ul>
  12. 12. Elementos de Comparação <ul><li>Free sem código-fonte </li></ul><ul><li>Free com código-fonte </li></ul><ul><li>Contém ferramenta de mapeamento visual </li></ul><ul><li>Persiste classes arbitrárias sem obrigar herança </li></ul><ul><li>Requer construção de SQL de forma manual </li></ul><ul><li>Suporte a que Bancos de Dados </li></ul><ul><li>Suporte a Enterprise Java Beans </li></ul><ul><li>O mapeamento suporta agrupamento </li></ul>http://c2.com/cgi/wiki?ObjectRelationalToolComparison
  13. 13. Elementos de Comparação <ul><li>Mapeamento suporta funções de agregação </li></ul><ul><li>Mantém identificações únicas para objetos </li></ul><ul><li>Resolve identificação circular </li></ul><ul><li>Gera o mapeamento ou as classes </li></ul><ul><li>Suporte a chaves primárias compostas </li></ul><ul><li>Optimistic Locking </li></ul><ul><li>Transações tratadas nos objetos </li></ul>http://c2.com/cgi/wiki?ObjectRelationalToolComparison
  14. 14. Elementos de Comparação <ul><li>Clustering </li></ul><ul><li>Requer geração de código </li></ul><ul><li>Cache de queries </li></ul><ul><li>Suporte a associações ternárias </li></ul><ul><li>Mapeamento de uma classe em várias tabelas </li></ul><ul><li>Mapeamento de várias classes em uma tabela </li></ul>http://c2.com/cgi/wiki?ObjectRelationalToolComparison
  15. 15. Elementos de Comparação <ul><li>Reflexão em runtime </li></ul>Identifica a Classe do Objeto em Questão Monta um array com as propriedades da classe
  16. 16. Conclusões <ul><li>As aplicações têm requisitos diferentes. </li></ul><ul><li>As soluções que se apresentam têm aplicações diferentes. </li></ul><ul><li>Produtividade, desempenho e integração como requisitos de seleção. </li></ul>
  17. 17. Obrigado! Perguntas?

×