Lợi ích chính của EJB là nó cung cấp cho chúng ta khả năng tạo ra Bean thực thể. Bean thực thể là đối tượng Bean ánh xạ dữ liệu từ môi trường ngoài như các dòng dữ liệu trong bảng (table) dữ liệu chẳng hạn. Nếu Bean thao tác (session bean) chủ yếu thiên về xử lý tính toán và hoàn thành một tác vụ nào đó thì Bean thực thể thiên về thể hiện dữ liệu. Trong bean thực thể, chúng ta có thể có các phương thức tính toán kèm theo, chúng được gọi là các phương thức nghiệp vụ (business method) xử lý dữ liệu của Bean.
Tuy nhiên, chúng ta cũng có thể chỉ dùng Bean thực thể để trình bày dữ liệu. Điểm khác biệt lớn nhất giữa Bean thực thể và Bean thao tác đó là Bean thực thể có khả năng lưu trữ và tái tạo lại bản thân Bean từ cơ sở dữ liệu. Đặc tính này thường gọi là khả năng tồn tại và lưu trữ được (persistence). Có hai loại Bean thực thể: Bean thực thể quản lý (Bean-Managed Persistence) và Bean thực thể quản lý bởi trình chứa
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
(Container-Managed Persistence). Sau đây là những ưu và khuyết điểm của hai loại Bean thực thể:
• Container - Managed Persistence (Bean thực thể được quản lý bởi trình chứa):
Ngoài những lợi ích đã nói ở trên thì nó cũng có một số các khó khăn sau : - Cần phải thành thạo EJB Query Language (Ngôn ngữ truy vấn EJB). - Mỗi trình chứa EJB đều có cách riêng trong việc ánh xạ thực thể và table
trong cơ sở dữ liệu. Thành thạo với việc ánh xạ của trình chứa không phải là chuyện đơn giản.
- Tốc độ chạy sẽ chậm hơn so với việc sử dụng trực tiếp câu lệnh SQL. - Điểm cuối cùng nhưng cũng rất quan trọng đó là debug cũng gặp nhiều
khó khăn, nhất là khi persistence layer không cho phép in ra những câu lệnh SQL do nó tạo ra.
• Sử dụng trực tiếp SQL hay Bean-Managed Persistence (Bean thực thể quản lý) : đòi hỏi sự thành thạo với SQL và rất khó khăn trong việc thay đổi cơ sở dữ liệu. Bên cạnh những khó khăn này nó cũng có những thuận lợi sau:
- Sử dụng SQL tránh được việc phải thành thạo ngôn ngữ truy vấn EJB và cách ánh xạ cho một persistence layer.
- Chạy nhanh hơn và dễ debug hơn.
Một khó khăn thường gặp khi sử dụng trực tiếp SQL là việc cập nhật cơ sở dữ liệu. Làm thế nào chỉ để cập nhật những cột có giá trị thay đổi chứ không phải toàn bộ các cột của một row trong table. May mắn là cũng có giải pháp cho vấn đề này. Cũng giống như việc ngắt kết nối Recorset trong microsoft, JDBC 2.0 cũng có RowSet (cung cấp bởi Sun và có tên là CachedRowSet). CatchedRowSet tự động cập nhật những column thay đổi và người sử dụng không cần phải viết một dòng lệnh SQL nào.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
2.8 ENTERPRISE JAVA BEAN VÀ SỰ HỖ TRỢ CỦA CÁC TRÌNH CHỦ KHÁC
Các trình chủ hổ trợ kiến trúc Enterprise Java Bean hiện có : Weblogic, Inprise Application Server (IAS), Oracle Application Server (OAS), JRun, IPlanet, WebSphere, Jboss… J2EE chỉ là một phần cài đặt của đặc tả EJB. Mỗi trình chủ đều kèm theo trình đóng gói deploytool thích hợp để chúng ta biên dịch, đóng gói và đưa các lớp cần thiết của Bean vào trình chứa. Các công cụ của những trình chủ khác nhau có thể cung cấp cách xây dựng và đóng gói Bean (tập tin .jar) vào những thư mục qui định khác nhau trong trình chủ (chúng ta nên tìm hiểu tài liệu của chúng).
Một ứng dụng thương mại thật sự thường chúng ta không nên dùng J2EE (có sẵn trong bộ Java JDK Enterprise) mà nên tận dụng các tính năng cao cấp cũng như sự hổ trợ từ phía các trình chủ như IAS hay OAS. Chúng là các trình chủ thương mại nên đáp ứng được cụ thể mục đích sử dụng và cách thiết kế chương trình cho khách hàng hơn. Ví dụ IAS (của Inprise) cung cấp cho chúng ta dịch vụ Web kết hợp với xây dựng các ứng dụng phân tầng Java, đóng gói các thành phần Bean, thiết kế Bean thực thể dựa vào cơ sở dữ liệu InterBase, cài đặt đối tượng Corba dựa trên trình môi giới Visio- Broker. Hoặc OAS hoàn toàn dựa trên nền và phong cách xây dựng đối tượng của hệ cơ sở dữ liệu Oracle…
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 3: TỔNG KẾT
CHƯƠNG 3 TỔNG KẾT
Phần này đã giới thiệu với chúng ta về kiến trúc của Enterprise Java Bean (EJB) mà Sun đưa ra từ phiên bản Java 1.2. Đây là mô hình phân tầng và lập trình đối tượng rất hiệu quả cho các ứng dụng mạng Java. Chúng ta xây dựng đối tượng (được gọi là các thành phần Bean) hoạt động bên trong trình chứa (container). Trình chứa đóng vai trò điều khiển và làm trung gian trong giao tiếp giữa Bean và trình khách. Tóm tắt có hai loại Bean : Bean thao tác (Session Bean) và Bean thực thể (Entity Bean). Bean thao tác có thể phi trạng thái (Stateless) hoặc lưu vết trạng thái (Stateful).
Bean thực thể cũng được phân ra làm hai loại đó là Bean thực thể quản lý kết nối dữ liệu (Bean-managed) và Bean thực thể quản lý dữ liệu bởi trình chứa (container- managed Bean). Các bước xây dựng Bean cơ bản gồm có : Xây dựng lớp giao tiếp xa (remote interface) để trình triệu gọi đến Bean, xây dựng lớp giao tiếp chủ (home interface) để trình chứa có thể tham chiếu đến Bean và cuối cùng là xây dựng đối tượng Bean. Ngày nay công nghệ lập trình đã chuyển hướng rất nhanh sang mô hình lập trình mạng đa tầng (multi-tier). Hiểu về Enterprise Java Bean sẽ giúp chúng ta dễ dàng tiến sâu hơn vào thế giới lập trình Java cũng như lập trình mạng sau này.
Cũng như lĩnh vực lập trình phân tán triệu gọi đối tượng từ xa, lập trình trong mô hình phân tầng EJB hiện rất mới mẻ và khá phức tạp đối với hầu hết các lập trình viên (kể cả lập trình chuyên nghiệp).
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 4: ĐẶT VẤN ĐỀ
PHẦN 2 XÂY DỰNG HỆ THỐNG BÁN SÁCH TRỰC TUYẾN ỨNG DỤNG CÔNG NGHỆ EJB
CHƯƠNG 4 ĐẶT VẤN ĐỀ
Áp dụng những công nghệ đã nghiên cứu vào xây dựng ứng dụng Web: ứng dụng thương mại điện tử Book Store. Đây là website cung cấp thông tin để khách hàng có thể liên lạc và biết rõ về sản phẩm và những dịch vụ mà công ty đưa ra. Khách hàng có thể đặt mua, thanh toán và hẹn ngày giao hàng hay nhận sự hỗ trợ về dịch vụ từ nhà cung cấp. Ứng dụng Book Store hỗ trợ việc mua bán sách qua mạng theo hình thức B2B.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 5: ĐẶC TẢ YÊU CẦU HỆ THỐNG
CHƯƠNG 5 ĐẶC TẢ YÊU CẦU HỆ THỐNG
5.1 NGƯỜI SỬ DỤNG HỆ THỐNG