421 likes | 734 Views
Tìm hiểu EJB. Người trình bày: Nguyễn Quảng Đại. Nội dung. Kiến trúc và thành phần của EJB Các loại EJB Transaction trong EJB EJB 3.0. C á c tầng trong ứng dụng J2EE. Các dịch vụ của J2EE. Component và container. Component Là một đoạn code dùng để triển khai các interface.
E N D
Tìm hiểu EJB Người trình bày: Nguyễn Quảng Đại
Nội dung • Kiến trúc và thành phần của EJB • Các loại EJB • Transaction trong EJB • EJB 3.0
Component và container • Component • Là một đoạn code dùng để triển khai các interface. • Sống trong một môi trường chạy. • Container • Là một chương trình dùng để thực thi và quản lý các component. • Cung cấp các dịch vụ hỗ trợ cho các component.
Enterprise JavaBean • Component phía server • Tuân thủ các quy định về kiến trúc của EJB • Thực hiện nhiều nhiệm vụ • Tương tác với client • Thao tác với cơ sở dữ liệu...
Đặc điểm của EJB • Thực hiện các tác vụ trên dữ liệu của ứng dụng • Được duy trì và quản lý bởi EJB container • Có thể tùy chỉnh các EJB bằng các file cấu hình • Các dịch vụ hỗ trợ được tách biệt với EJB • Client không truy cập trực tiếp tới EJB • EJB có thể triển khai ở các server được phát triển bởi các nhà cung cấp khác nhau • Có thể lắp ráp với các thành phần khác mà không cần thay đổi code hay là biên dịch lại chúng • Các bean được phát triển chỉ với đơn luồng.
EJB Container • Là một chương trình chạy trên server, dùng để thực thi và quản lý các các thể hiện của EJB component • Giúp cho lập trình viên dễ dàng phát triển ứng dụng
Nhiệm vụ của container • Quản lý vòng đời của các component • Quản lý tài nguyên • Quản lý giao dịch (transaction) • Hỗ trợ truy cập từ xa • Điều khiển việc xử lý truy cập đồng thời • Clustering và load balancing
Các thành phần của EJB • Các interface: home interface, component interface • Lớp EJB • Các file cấu hình (deployment descriptor) • EJB deployment descirptor: ejb-jar.xml • Vendor deployment descriptor: jboss.xml, weblogic-ejb-jar.xml
Các bước để phát triển và trển khai • Định nghĩa các component interface: Local hoặc Remote • Định nghĩa home interface: tạo, tìm kiếm, hủy bỏ. • Triển khai các phương thức trong lớp EJB • Tạo các deployment descriptor thích hợp • Biên dịch các lớp và các interface của EJB • Đóng gói các file vừa được biên dịch và các descirptor vào một file JAR • Triển khai EJB vào trong container tương ứng
Session Bean • Tượng trưng cho một cuộc đối thoại giữa client và server • Không trực tiếp biểu diễn dữ liệu trong database. Tuy nhiên nó có thể thao tác cơ sở dữ liệu thay cho client • Có thời gian sống tương đối ngắn, chúng tồn tại cùng với client • Chúng bị hủy khi client muốn, hoặc khi container bị tắt
Các loại session bean • Stateless • Chỉ có một yêu cầu trong chức năng nghiệp vụ • Một thể hiện có thể phục vụ được nhiều client khác nhau • Stateful • Có nhiều lần gửi yêu cầu trong chức năng nghiệp vụ cần lưu trữ thông tin của các yêu cầu trước đó • Một thể hiện chỉ có thể phục vụ được một client
Instance Pool EJB Container Bean Class Client Client Instance Pool
Instance Cache EJB Container Bean Class Client 1 passivate Client 2 Client 3 activate Instance Cache
Entity Bean • Thao tác với cơ sở dữ liệu, tạo ra các đối tượng đại diện cho cơ sở dữ liệu hiện thời • Nhiều client có thể cùng chia sẻ một thể hiện • Thời gian sống lâu dài • Có primary key class • Có thể có quan hệ với các entity bean khác
Các loại Entity Bean • BMP – Bean Managed Persistence • CMP – Container Managed Persistence
CMP • Các phương thức get/set đều là “abstract” • Abstract Persistent Schema • EJB Query Language
CMR - Container Managed Relationships • One – One • One – Many • Many – Many • Unidirectional • Bidirectional
Message driven bean • Giao tiếp không đồng bộ • Nhận và xử lý các JMS message • MDB có thể coi là một JMS comsumer
Message-Driven Bean • Không có các interface
Transaction • Đảm bảo tính toàn vẹn khi thao tác với dữ liệu • Local transaction và distributed transaction • Java Database Connectivity (JDBC) • JMS Session • Java Transaction API (JTA) • Java Transaction Service (JTS)
BMT và CMT • Bean Managed Transaction • Sử dụng JTA và JDBC • Container Managed Transaction • ejb-jar.xml
EJB 3.0 • Không có các home và component interface • Sử dụng các annotation để cấu hình • Dependency injection • Entity
Sử dụng các Annotation “Interface” Session Bean implements PlaceBidBean
JPA Entity và EntityManager • JPA Entity • EntityManager