Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Linhas de comentário: Realmente, Por que Hibernate?

Kevin Sutter, Senior Software Engineer, IBM
Author photo
Kevin Sutter é um Engenheiro de Software Senior no grupo de desenvolvimento do WebSphere Application Server. Atualmente, ele lidera a implementação da Java Persistence API para WebSphere. Kevin é também um administrador de código e um membro do PMC no projeto Apache OpenJPA. As funções passadas de Kevin incluem liderança e arquitetura de soluções WebSphere para a J2EE Connector Architecture (JCA) e ObjectGrid (estrutura de cache).

Resumo:  IBM® WebSphere® Application Server fornece uma solução JPA completa com base no projeto Apache OpenJPA. Apesar de o uso de provedores de JPA alternativos, como Hibernate JPA, ser possível, a questão permanece: "por quê?" Este artigo explica por que o uso continuado da solução WebSphere JPA sempre faz mais sentido. This content is part of the IBM WebSphere Developer Technical Journal.

Data:  17/Mai/2011
Nível:  Introdutório Também disponível em :   Inglês
Atividade:  1015 visualizações
Comentários:  


Você Já Tem a Implementação de JPA Necessária

Tenho respondido a diversas postagens em fóruns, e-mails, mensagens instantâneas e telefonemas recentemente referentes ao uso do Hibernate no ambiente do IBM® WebSphere® Application Server. Como há muito interesse neste tópico, achei que ajudaria àqueles que ainda não tiveram a oportunidade de me perguntar pessoalmente documentar essas informações aqui.

Especificamente, estou fazendo referência ao uso de Hibernate JPA no ambiente do WebSphere Application Server. Há também o modelo de programação original Hibernate, ao qual faço referência como Hibernate "Classic". Como o modelo de programação Hibernate clássico não faz parte do conjunto Java™ EE 5, não é tão pertinente para esta conversa. Há diversas iterações deste artigo que documentam como é possível utilizar o modelo de programação Hibernate "Classic" no ambiente do WebSphere Application Server. Esse uso é basicamente como qualquer outra estrutura de utilitário. É possível empacotá-lo como uma biblioteca (compartilhada) e usá-lo a partir de seu aplicativo, mas não é uma parte integral do tempo de execução geral do servidor de aplicativos.

Este artigo focará o uso de Hibernate JPA no ambiente do WebSphere Application Server -- ou melhor, por que usar Hibernate JPA já que o WebSphere Application Server já fornece uma implementação de JPA líder de mercado?


O que É JPA?

JPA é a Java Persistence API. É a estrutura de persistência padrão apresentada primeiramente como parte da família EJB™ 3.0 de especificações em Java EE 5. Para Java EE 6, JPA 2.0 é graduado para seu próprio JSR. Em seu núcleo, JPA é um recurso de Mapeamento de Objeto/Relacional (O/R), mas evoluiu para incluir diversos outros recursos. Como JPA é uma parte integrante do conjunto Java EE, seus recursos são integrados de forma integral ao contêiner EJB e ao contêiner da Web, assim como gerenciamento de transações, gerenciamento de conexões com o banco de dados e gerenciamento da segurança. Muitas tecnologias foram alimentadas na criação de JPA, como EJB CMP, JDO e Hibernate. Não é de se admirar, então, que tantos usuários existentes de Hibernate desejam continuar a usar essa estrutura no ambiente do WebSphere Application Server.

O uso continuado de Hibernate é possivelmente um objetivo válido, já que ir de um modelo de programação (clássico) para outro (JPA) consome tempo e recursos. Se existir justificação insuficiente para fazer esse investimento, então ficar com o que funciona é o ideal e possivelmente até incentivado.

Mas se estiver planejando migrar para JPA padrão e desfrutar desses benefícios, então, há diversas razões consideráveis para migrar de Hibernate "Classic" para a solução WebSphere JPA.


Soluções e Vantagens do WebSphere JPA

Soluções WebSphere Application Server JPA são desenvolvidas no projeto Apache OpenJPA :

Todas essas entregas utilizam os mesmos binários que estão disponíveis a partir do site de download do OpenJPA e você pode estar assegurado que quaisquer aplicativos escritos com relação ao Apache OpenJPA continuarão a ser executados sem modificação no ambiente do WebSphere Application Server.

É claro que o WebSphere Application Server também tem recursos adicionais além da entrega base do OpenJPA por meio de pontos de plugue definidos para fornecer uma solução JPA muito completa e muito rica.

  • Facilidade de uso

    A solução WebSphere JPA é totalmente integrada às ofertas do WebSphere Application Server. Se seu ambiente usa uma das soluções do pacote de recurso ou o WebSphere Application Server v7, a solução JPA está pronta para ser usada sem configuração ou pacote adicional necessário.

    Devido a essa solução JPA integrada (Figura 1), o WebSphere Application Server é capaz de fornecer extensões funcionais aos binários base do OpenJPA. Algumas das áreas que foram aprimoradas são extensões do IBM DB2® (especificamente otimizações de integração e bloqueio de pureQuery), desempenho, suporte para configuração e administração, suporte para segurança, suporte estendido para rastreamento e criação de log e suporte ao idioma nacional para criação de log de mensagens.



    Figura 1. Arquitetura WebSphere JPA


    As soluções WebSphere Application Server JPA permitem que provedores de JPA alternativos sejam instalados e usados com o tempo de execução do WebSphere Application Server. Por exemplo, o uso de Hibernate JPA é possível, mas nenhuma extensão do WebSphere Application Server estará disponível com o provedor de Hibernate JPA. Além disso, o pacote da solução Hibernate JPA não é trivial (consulte Recursos). Os resultados, portanto, são que o WebSphere Application Server suporta o uso de provedores de JPA alternativos, mas há inconveniente para essa abordagem.

  • Custos de suporte mais baixos

    A solução WebSphere JPA completa tem serviço e suporte integrais para produto IBM, o que significa que quaisquer problemas descobertos serão abordados por meio de canais normais de suporte. A maioria dos membros da equipe de desenvolvimento de JPA são committers ativos no projeto Apache OpenJPA. Problemas serão registrados em log e resolvidos com o projeto Apache OpenJPA. Essas atualizações serão então entregues de forma conveniente como parte do processo de suporte normal do WebSphere.

    Outra grande vantagem de uma solução WebSphere JPA é suporte de compatibilidade de release para release. É importante que migrar de um release do WebSphere Application Server para o próximo - incluindo versões integrais e feature packs – seja o mais fácil possível e toda tentativa seja feita para tornar a migração de JPA sem problemas também. Caso uma nova especificação JPA ou Java EE force que mudanças incompatíveis sejam feitas no produto, documentação e "opções de restauração" para obter o comportamento anterior são geralmente fornecidas. Devido à arquitetura de pacote flexível de OpenJPA, o WebSphere Application Server pode substituir qualquer comportamento não conforme de OpenJPA para tornar a experiência do WebSphere Application Server consistente de release para release.

    Se você usar um provedor de JPA alternativo, como o Hibernate JPA, então o suporte do WebSphere Application Server para no ponto de plugue definido para o provedor de JPA alternativo. Quaisquer problemas descobertos no provedor de JPA alternativo (como mapeamentos de objetos, interação com o banco de dados, interesses no desempenho, etc.) precisarão ser abordados com esse provedor. Isso pode envolver o uso de seus fóruns para suporte ou o estabelecimento de um contrato externo de serviço. Claramente, não é uma conveniência.

  • Melhor desempenho

    Só para registrar, as comparações de desempenho podem ser enganosas. Quaisquer referências de desempenho desenvolvidas e promovidas por um provedor de JPA -- mesmo as chamadas referências "independentes" de JPA que são postadas na Web -- tendem a favorecerem um provedor de JPA com relação aos outros. Incluir interesses de licenciamento e esses tipos de referências de JPA pode ser confuso.

    Por essas e outras razões, a IBM geralmente considera referências padrão de mercado. SpecJEnterprise, por exemplo, leva diversos aspectos do servidor de aplicativos em consideração, mas com foco na estrutura persistência. Estima-se que 75-80% da referência de SpecJEnterprise depende da camada de persistência (ou seja, do provedor de JPA). A comparação de SpecJEnterprise 1Q2010 mostra claramente a liderança do WebSphere nesse espaço, com resultados semelhantes apresentados para 2Q2010 e posterior.

    A IBM compara constantemente a solução WebSphere Application Server JPA com relação a outras por operações primitivas (criar, recuperar, atualizar, excluir), executando referências do segmento de mercado, ou por outros métodos. Muitas variações são medidas para assegurar que a solução WebSphere JPA continue a liderar no desempenho, assim como maximizar a experiência e o benefício geral do WebSphere Application Server.


conclusão

Os resultados são que continuar com a solução WebSphere JPA em vez de ir para Hibernate JPA (ou qualquer outro provedor de JPA) faz sentido para os negócios, faz sentido para o desenvolvimento e faz sentido em geral. Facilidade de uso, custo mais baixo, melhor desempenho e uma experiência transparente não somente maximiza os benefícios recebidos do WebSphere Application Server, mas também ajuda a maximizar os resultados de seus esforços de desenvolvimento.


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Author photo

Kevin Sutter é um Engenheiro de Software Senior no grupo de desenvolvimento do WebSphere Application Server. Atualmente, ele lidera a implementação da Java Persistence API para WebSphere. Kevin é também um administrador de código e um membro do PMC no projeto Apache OpenJPA. As funções passadas de Kevin incluem liderança e arquitetura de soluções WebSphere para a J2EE Connector Architecture (JCA) e ObjectGrid (estrutura de cache).

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere, Tecnologia Java
ArticleID=658354
ArticleTitle=Linhas de comentário: Realmente, Por que Hibernate?
publish-date=05172011
author1-email=sutter@us.ibm.com
author1-email-cc=

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).