Diferença entre BMP e CMP

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.