3.2.4.1. Phân tích đối tượng
a. Các lớp thực thể dữ liệu (Entity EJB) và các lớp Session EJB
Mỗi EJB gồm ít nhất 3 lớp: Interface, Home Interface và Bean. Bean là lớp cài đặt các dữ liệu, xử lý chính của đối tượng, giống như là các đối tượng java bình thường. Lớp Home Interface bao gồm tham chiếu đến phương thức
create() của Bean. Từ các thành phần khác muốn sử dụng Bean thì phải lookup
đến Home Interface của Bean. Từ đối tượng Home này sẽ tạo được đối tượng Bean Interface. Tất cả các dịch vụ do Bean cung cấp đều được thực hiện qua Bean Interface.
b. Các lớp JavaBean
JavaBean được sử dụng làm đối tượng truyền tin giữa Servlet và JSP. Servlet xử lý các yêu cầu, tạo một biến JavaBean và thiết lập các thuộc tính, sau đó truyền đối tượng này cho JSP. JSP truy nhập các thuộc tính của đối tượng này. Để thực hiện được việc đó, lớp này phải tuân thủ một mẫu thiết kế như sau: mỗi thuộc tính có một cặp setter và getter. Các phương thức này phải đặt tên theo đúng quy định: get + Tên thuộc tính. Tên thuộc tính ở đây có chữ cái đầu viết hoa. Ngoài các thuộc tính của đối tượng, thêm thuộc tính message kiểu
c. Các trang/lớp Servlet
Servlet quản lý việc tương tác với dữ liệu người dùng cung cấp. Một lớp httpservlet có hai phương thức là init() và doGet(). Init khởi tạo một tham chiếu
lookup đến Session Bean Home. Phương thức doGet() xử lý dữ liệu đầu vào
bằng các Session Bean và truyền kết quả vào JavaBean, sau đó chuyển điều khiển lại cho trang JSP.
Khi người dùng đăng nhập vào hệ thống thì Servlet hoặc JSP sẽ lưu định danh của người dùng đó vào session. Các biến session sẽ xác định chương trình đang chạy bởi người dùng nào, đang thực hiện công việc gì, cho khách hàng nào, tiến độ thực hiện đến đâu.
e. Các trang JSP
Trang JSP là phần tạo giao diện với người sử dụng. Với hệ thống, JSP đóng vai trò Client, chạy trên Web Container. Các trang này sử dụng các lớp EJB
remote home để kết nối đến máy chủ EJB và sử dụng các dịch vụ từ xa do các
máy chủ EJB cung cấp.
3.2.4.2. Phân tích phương thức
Phần này phân tích các thuộc tính, phương thức chung nhất của các lớp.
a. Các lớp thực thể dữ liệu (Entity EJB)
Hình 3.8: Thuộc tính và phương thức của lớp thực thể dữ liệu
Hình 3.8 biểu diễn các thuộc tính và phương thức của lớp thực thể dữ liệu. Các lớp này truy xuất trực tiếp lên cơ sở dữ liệu, mỗi lớp gắn với một bảng dữ liệu cụ thể. Một thể hiện của lớp trong bộ nhớ chính là dữ liệu tương ứng của một bản ghi trong cơ sở dữ liệu. Lớp này có tính năng tự động đồng bộ giữa dữ
liệu trên cơ sở dữ liệu và dữ liệu trên bộ nhớ. Những thuộc tính của lớp chính là các trường trong bảng tương ứng. Các thuộc tính khác như entityContext,
setEntityContext, unsetEntityContext, ejbCreate, findByPrimaryKey là
hàm/thuộc tính của Entity EJB. Hàm copyFromBean, copyToBean là dùng để chuyển dữ liệu vào/ra từ/đến một JavaBean.
b. Các lớp EJB phiên (Session EJB)
Bean phiên là các lớp xử lý nghiệp vụ. Nó nhận yêu cầu từ client, xử lý thông tin và thông qua Entity Bean để cập nhật, truy xuất lên cơ sở dữ liệu. Hình 3.9 biểu diễn các thuộc tính và phương thức của lớp EJB phiên. Lớp này có các hàm, thuộc tính của Bean phiên: sessionContext, entityHome, setSessionContext,
ejbCreate. Các hàm xử lý nghiệp vụ, thao tác với đối tượng thường thấy chung
trong các lớp được cài đặt với hệ thống này: newObject: tạo bản ghi, đối tượng mới; updateObject: cập nhật dữ liệu; getObject: tìm đối tượng với định danh cụ thể; removeObject: xoá đối tượng khỏi dữ liệu. Tùy từng Bean phiên khác nhau mà có các hàm nghiệp vụ khác nhau ví dụ như tạo báo cáo, tính phí...
Hình 3.9: Thuộc tính và phương thức của lớp EJB phiên
c. Các lớp JavaBean
Các lớp này dùng làm đơn vị dữ liệu để luân chuyển thông tin. Từ client (JSP/Servlet) chuyển thông tin lên server (Session Bean/EJB) qua các lớp này. Bean phiên gọi các Bean thực thể cũng truyền các thông số qua các lớp này. Dữ
liệu chuyển đi chuyển về có thể là một đối tượng (object) của lớp hoặc một danh sách (list) các đối tượng. Có các lớp Java khác dùng để chạy trên client xử lý một số nghiệp vụ đơn giản.
Hình 3.10: Lớp JavaBean
d. Các trang JSP/lớp Servlet
Các trang JSP là phần client chạy trên Web Container. Trang này tạo giao diện người dùng, nhận yêu cầu từ người dùng, gửi yêu cầu lên EJB server, nhận lại các trả lời sau khi xử lý. Phản hồi đó lại được trình bày cho người dùng xem kết quả.
Các trang này được bố trí trong các Web Module. Cấu trúc chung một trang JSP như sau: Phần đầu trang là include các thư viện. Tệp template/header.jsp
vừa bao gồm các thư viện chung và giao diện phần khung đầu trang, menu bên trái. Tiếp sau là các thư viện cần sử dụng ở client.
Phần trọng tâm là nội dung trang. Bao gồm giao diện (HTML), phần xử lý giao diện và thu thập dữ liệu (Java).
Cuối trang có include tệp template/footer.jsp. Tệp này chứa giao diện phần cột phải (nếu có) và phần khung cuối của trang web.