BMP против CMP
Известно, что CMP, или Container Managed Persistence, является самым простым для разработчиков bean-компонентов, и, как известно, самым сложным для поддержки EJB-серверов. В CMP разработчикам компонентов не нужно писать какую-либо логику доступа к данным; все потребности позаботятся о сервере EJB.
Известно, что BMP, или Bean Managed Persistence, управляет синхронизацией своего состояния с базами данных, задействованной контейнером..
Для разработчика bean-компонента CMP нет необходимости беспокоиться о коде и транзакциях JDBC, поскольку контейнер автоматически обрабатывает все базы данных. Напротив, разработчик BMP будет нести ответственность за транзакции и все базы данных..
Еще одно различие, которое можно заметить между сохранением управляемых контейнеров и управляемым постоянством Bean, заключается в том, что первый использует язык запросов EJB. С другой стороны, разработчик Bean Managed Persistence должен писать код данных либо в EJB, либо в DAO. Ну, в этом случае, это больше вызов для разработчика BMP, чем для разработчика CMP.
Если человек использует CMP, ему потребуется более сложный сервер приложений, чем тот, который необходим для BMP.
Некоторые говорят, что постоянство, управляемое бином, предлагает тактический подход, тогда как постоянство, управляемое контейнером, предлагает более стратегический подход..
В BMP это разработчик, который обрабатывает все. Наоборот, это поставщик, который заботится обо всем в CMP. Еще одна вещь, которую можно увидеть, это то, что человек сможет оптимизировать запросы в BMP, поскольку он использует жестко закодированные запросы. Что ж, человек, использующий CMP, не может оптимизировать производительность, так как обо всем заботится поставщик..
Резюме
1. Для разработчика bean-компонента CMP не нужно беспокоиться о коде и транзакциях JDBC, так как все базы данных автоматически обрабатываются контейнером. С другой стороны, разработчик BMP будет нести ответственность за транзакции и все базы данных..
2. CMP использует язык запросов EJB. BMP записывает код данных в EJB или в формате DAO.
3. Bean Managed Persistence предлагает тактический подход, тогда как Container Managed Persistence предлагает более стратегический подход.
4. Если человек использует CMP, ему потребуется более сложный сервер приложений, чем тот, который необходим для BMP.
5. В BMP это разработчик, который обрабатывает все. Наоборот, это поставщик, который заботится обо всем в CMP.