BMP vs CMP
CMP, hay Container Managed Persistence, được biết đến là cách đơn giản nhất để các nhà phát triển bean tạo ra và được biết là phức tạp nhất đối với các máy chủ EJB hỗ trợ. Trong CMP, không cần các nhà phát triển bean viết bất kỳ logic truy cập dữ liệu nào; tất cả các nhu cầu được chăm sóc bởi máy chủ EJB.
BMP, hay Bean Managed Persistence, được biết là quản lý đồng bộ hóa trạng thái của nó với cơ sở dữ liệu, như được tham gia bởi container.
Đối với một nhà phát triển bean CMP, không cần phải lo lắng về mã và giao dịch JDBC, vì tất cả các cơ sở dữ liệu đều được bộ xử lý tự động xử lý. Ngược lại, một nhà phát triển BMP sẽ có trách nhiệm về các giao dịch và tất cả các cơ sở dữ liệu.
Một sự khác biệt khác có thể nhận thấy giữa Sự tồn tại được quản lý của Container và Sự kiên trì được quản lý của Bean, đó là trước đây sử dụng ngôn ngữ truy vấn EJB. Mặt khác, nhà phát triển Bean Managed Persistence phải viết mã dữ liệu bằng EJB hoặc bằng DAO. Chà, trong trường hợp này, nó là một thách thức đối với nhà phát triển BMP, hơn là nhà phát triển CMP.
Nếu một người đang sử dụng CMP, họ sẽ cần một máy chủ ứng dụng tinh vi hơn so với những gì cần thiết cho BMP.
Một số người đã nói rằng Bean Managed Persistence cung cấp một cách tiếp cận chiến thuật, trong khi đó Persistence Container Managed mang đến một cách tiếp cận chiến lược hơn.
Trong BMP, chính nhà phát triển xử lý mọi thứ. Ngược lại, chính nhà cung cấp sẽ lo tất cả mọi thứ trong CMP. Một điều khác có thể thấy là một người sẽ có thể tối ưu hóa các truy vấn trong BMP, vì nó sử dụng các truy vấn được mã hóa cứng. Chà, một người sử dụng CMP không thể tối ưu hóa hiệu suất, vì đó là nhà cung cấp chăm sóc mọi thứ.
Tóm lược
1. Đối với nhà phát triển bean CMP, không cần phải lo lắng về mã và giao dịch JDBC, vì tất cả các cơ sở dữ liệu đều được bộ xử lý tự động xử lý. Mặt khác, một nhà phát triển BMP sẽ có trách nhiệm về các giao dịch và tất cả các cơ sở dữ liệu.
2. CMP sử dụng ngôn ngữ truy vấn EJB. BMP có thể viết mã dữ liệu bằng EJB hoặc ở định dạng DAO.
3. Bean Managed Persistence cung cấp một cách tiếp cận chiến thuật, trong khi đó, Persistence Container Managed mang đến một cách tiếp cận chiến lược hơn.
4. Nếu một người đang sử dụng CMP, họ sẽ cần một máy chủ ứng dụng tinh vi hơn so với những gì cần thiết cho BMP.
5. Trong BMP, chính nhà phát triển xử lý mọi thứ. Ngược lại, chính nhà cung cấp sẽ lo tất cả mọi thứ trong CMP.