BMP vs CMP
O CMP, ou persistência gerenciada por contêiner, é conhecido como o mais simples para os desenvolvedores de bean criarem e é o mais complicado para o suporte dos servidores EJB. No CMP, não é necessário que os desenvolvedores de bean gravem qualquer lógica de acesso a dados; todas as necessidades são atendidas pelo servidor EJB.
O BMP, ou Bean Managed Persistence, é conhecido por gerenciar a sincronização de seu estado com os bancos de dados, conforme contratado pelo contêiner.
Para um desenvolvedor de bean CMP, não há necessidade de se preocupar com código e transações JDBC, pois todos os bancos de dados são manipulados automaticamente pelo contêiner. Pelo contrário, um desenvolvedor de BMP terá a responsabilidade das transações e de todos os bancos de dados.
Outra diferença que pode ser notada entre a Persistência Gerenciada por Contêiner e a Persistência Gerenciada por Bean, é que o primeiro usa a linguagem de consulta EJB. Por outro lado, um desenvolvedor de persistência gerenciada de bean precisa escrever o código de dados no EJB ou no DAO. Bem, nesse caso, é mais um desafio para o desenvolvedor do BMP do que para o desenvolvedor do CMP.
Se uma pessoa estiver usando CMP, ela precisaria de um servidor de aplicativos mais sofisticado do que o necessário para um BMP.
Alguns disseram que a persistência gerenciada pelo feijão oferece uma abordagem tática, enquanto a persistência gerenciada por contêiner oferece uma abordagem mais estratégica.
No BMP, é o desenvolvedor que lida com tudo. Pelo contrário, é o fornecedor que cuida de tudo em um CMP. Outra coisa que pode ser vista é que uma pessoa poderá otimizar as consultas no BMP, pois usa consultas codificadas. Bem, uma pessoa que usa o CMP não pode otimizar o desempenho, pois é o fornecedor que cuida de tudo.
Sumário
1. Para um desenvolvedor de bean CMP, não há necessidade de se preocupar com código e transações JDBC, pois todos os bancos de dados são manipulados automaticamente pelo contêiner. Por outro lado, um desenvolvedor de BMP terá a responsabilidade das transações e de todos os bancos de dados.
2. O CMP usa a linguagem de consulta EJB. Um BMP grava o código de dados no formato EJB ou DAO.
3. Persistência Gerenciada por Bean oferece uma abordagem tática, enquanto a Persistência Gerenciada por Contêiner oferece uma abordagem mais estratégica.
4. Se uma pessoa estiver usando CMP, ela precisaria de um servidor de aplicativos mais sofisticado do que o necessário para um BMP.
5. No BMP, é o desenvolvedor que lida com tudo. Pelo contrário, é o fornecedor que cuida de tudo em um CMP.