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 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
Razões Arquiteturas de Aplicações Integração Recursos Negócio Apresentação Cliente Plataforma Inferior Plataforma Superior Plataforma Virtual Aplicaçã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 runtime Identifica 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?

Persistência de Objetos em Java

  • 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.
    Agenda Fundamentos; Razões;Java Database Connectivity - JDBC; Java Data Object - JDO; Hibernate; Enterprise Java Beans - CMP; Elementos de Comparação; Conclusões.
  • 3.
    Fundamentos O Queé Persistência de Objetos? Objetos Transientes. Objetos Persistentes.
  • 4.
    Fundamentos O Queé Persistência de Objetos? Serialização. Bancos de Dados. Fontes de Dados.
  • 5.
    Razões Aplicações Corporativas         Indústrias Serviços Comércio Agricultura
  • 6.
    Razões Requisitos NãoFuncionais e Escala 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.
    Razões Arquiteturas deAplicações Integração Recursos Negócio Apresentação Cliente Plataforma Inferior Plataforma Superior Plataforma Virtual Aplicação
  • 8.
    Java Database ConectivitySeleçã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;
  • 9.
    Java Data ObjectEspecificado 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).
  • 10.
    Hibernate Os objetostê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
  • 11.
    Enterprise Java BeansCMP 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;
  • 12.
    Elementos de ComparaçãoFree 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
  • 13.
    Elementos de ComparaçãoMapeamento 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
  • 14.
    Elementos de ComparaçãoClustering 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
  • 15.
    Elementos de ComparaçãoReflexão em runtime Identifica a Classe do Objeto em Questão Monta um array com as propriedades da classe
  • 16.
    Conclusões As aplicaçõestêm requisitos diferentes. As soluções que se apresentam têm aplicações diferentes. Produtividade, desempenho e integração como requisitos de seleção.
  • 17.