Trong đó, công nghệ Struts giải quyết vấn đề thiết kế hướng đối tượng cho ứng dụng Web; công nghệ Hibernate giải quyết vấn đề tổ chức lưu trữ dữ liệu lâu bền cho các hệ thống hướng đối t
Trang 1- 6 -
TÌM HIỂU VÀ VẬN DỤNG MỘT SỐ CÔNG NGHỆ TIÊN TIẾN TRONG
PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG
Thực hiện: Trương Công Ái (0122259)
Nguyễn Phương Chính (0122260)
Giáo viên hướng dẫn: ThS.Đặng Đức Hạnh
1 Mở đầu
Xây dựng phần mềm theo phương pháp hướng
đối tượng là một kỹ thuật tiên tiến để phát triển hệ
thống Phương pháp này phù hợp cho các hệ
thống lớn, phức tạp và đã được cụ thể hóa trong
nhiều quy trình phát triển phần mềm (tiêu biểu là
RUP) Tuy nhiên khi áp dụng phương pháp này
vào các loại ứng dụng trên nền Web cũng như các
ứng dụng đòi hỏi nhu cầu truy cập dữ liệu lớn,
chúng ta sẽ gặp phải các khó khăn trong vấn đề
thiết kế Hiện này, đây là những lớp ứng dụng rất
quan trọng và phổ biến Do đó đòi hỏi phải có
công nghệ chuyên sâu giải quyết vấn đề này Một
trong số các công nghệ này là Struts và Hibernate
Trong đề tài này, chúng tôi tập trung vào việc
tìm hiểu nội dung và khả năng vận dụng của công
nghệ Struts và Hibernate Trong đó, công nghệ
Struts giải quyết vấn đề thiết kế hướng đối tượng
cho ứng dụng Web; công nghệ Hibernate giải
quyết vấn đề tổ chức lưu trữ dữ liệu lâu bền cho
các hệ thống hướng đối tượng
2 Nội dung
2.1 Struts – Giải pháp cho ứng dụng Web
Quá trình chuyển từ phân tích sang thiết kế là
bước quan trọng trong việc xây dựng phần mềm
hướng đối tượng Hoạt động chủ yếu của giai
đoạn này là làm mịn các đối tượng thuộc mô hình
phân tích, và chuyển chúng thành các lớp thiết kế
có thể cài đặt trên một kiến trúc nào đó Việc xây
dựng các ứng dụng trên kiến trúc Web có những
điểm khác biệt so với việc xây dựng trên các kiến
trúc khác
Kiến trúc Web làm việc theo cơ chế hoạt động
của CGI (Common Gateway Interface) tỏ ra
không phù hợp cơ chế hoạt động các hệ thống
hướng đối tượng là truyền thông điệp
Có nhiều giải pháp được đưa ra để giải quyết vấn đề của CGI trong đó có một số công nghệ được sử dụng khá phổ biến như ASP (Active Server Page), JSP (Java Server Page), hay Servlet nhưng tất cả đều có những nhược điểm nhất định
Do đó đòi hỏi phải có một mô hình mới ra đời phù hợp quy trình xây dựng các ứng dụng cho Web theo hướng đối tượng Struts là một mô hình như vậy
Structs được thiết kế với mục đích cung cấp một khung làm việc mã nguồn mở nhằm tạo ra những ứng dụng Web có khả năng dễ dàng tách rời tầng trình diễn và cho phép nó trừu tượng hoá
so với các tầng thực thi và dữ liệu
Struts cài đặt trên mẫu thiết kế MVC bao gồm các thành phần :
− Model: Miêu tả các đối tượng dữ liệu Model là những cái đang được tính toán
và đưa ra cho người dùng
− View: Là các dịch vụ như màn hình hiển thị của Model Nó là những đối tượng đưa
ra những trạng thái hiện tại của các đối tượng dữ liệu
− Controller: Xác định cách mà giao diện người dùng phản ứng lại thông tin vào Thành phần Controller là đối tượng tính toán Model hoặc đối tượng dữ liệu
2.2 Hibernate – Giải pháp cho vấn đề tổ chức lưu trữ lâu bền
Trong các ứng dụng ngày nay vấn đề truy cập
và duy trì dữ liệu có ý nghĩa rất quan trọng và nó cũng tiêu tốn rất nhiều thời gian của các nhà phát triển Ngoài ra với các ứng dụng được thiết kế theo phương pháp hướng đối tượng, việc duy trì các đối tượng vào trong các bảng của cơ sơ dữ liệu quan hệ gặp rất nhiều khó khăn Hibernate là công nghệ ánh xạ đối tượng tới quan hệ, nó cho phép làm giảm tới 95% các câu lệnh trong việc
Trang 2- 7 -
duy trì dữ liệu Bằng cách kết hợp các lớp Java
với các miêu tả XML, Hibernate cung cấp một
khung nhìn hướng đối tượng của một cơ sơ dữ
liệu quan hệ
a Tổ chức thông tin ánh xạ
Để ánh xạ các lớp trong Java tới các bảng
trong cơ sơ dữ liệu Hibernate sử dụng một tệp ánh
xạ có tên trùng với tên lớp và có phần mở rộng là
*.hbm.xml Hibernate sử dụng các thẻ để xác định
các bảng tương ứng với các lớp bền vững, các cột
tương ứng với các thuộc tính của lớp Ngoài ra
Hibernate còn định nghĩa các ràng buộc giữa các
lớp và tự động cập nhật vào các bảng trong cơ sơ
dữ liệu
b Quản lý liên kết
Quản lý các liên kết giữa các lớp và mối quan
hệ giữa các bảng là trọng tâm của Hibernate Phần
lớn các vấn đề khó mắc phải khi thi hành giải
pháp để giải quyết việc quản lý các liên kết
Hibernate cung cấp đầy đủ các giải pháp để
xây dựng các liên kết, từ các liên kết một chiều
đơn giản như liên kết một-nhiều đến các liên kết
hai chiều như nhiều-nhiều
c Quản lý dữ liệu
Hibernate cung cấp một giao diện cho
phép quản lý các dữ liệu lâu bền, nó gồm các
dịch vụ sau:
− Các hành động cơ bản CRUD (Create,
Read, Update, Delete)
− Sự thi hành các truy vấn
− Điều khiển sự thực thi
− Quản lý các mức thực thi
Trong Hibernate chúng ta sử dụng HQL
(Hibernate Query Language) để truy vấn các đối
tượng, nó là một ngôn ngữ truy vấn hướng đối
tượng HQL rất dễ học với những người đã biết
về SQL HQL không phải là ngôn ngữ thi hành dữ
liệu như SQL, nó chỉ sử dụng cho việc lấy về các
đối tượng mà không dùng cho việc cập nhật, thêm
hay xóa dữ liệu
2.3 Áp dụng công nghệ Struts và Hibernate vào bài toán xây dựng khung chương trình
Bài toán được phân tích thiết kế dựa trên phương pháp hướng đối tượng sử dụng UML kết hợp với Rational Rose Bài toán là ứng dụng được xây dựng trền nền web cho phép người dùng tạo
ra các khung chương trình đào tạo Trong quá trình dựng ứng dụng Struts được sử dụng vào quá trình tạo ra các khung nhìn với người dùng, tạo các điểu khiển của chương trình Hibernate được
sử dụng để duy trì các dữ liệu vào trong các bảng của cơ sơ dữ liệu
3 Kết luận
Việc áp dụng phương pháp phân tích hướng đối tượng trong xây dựng bài toán mang lại lợi ích: nâng cao khả năng tái sử dụng, tận dụng được sức mạnh của phân mềm Rose trong quá trình phân tích và sinh mã Áp dụng công nghệ Struts giúp thiết kế những khung nhìn tách rời khỏi các điều khiển khiến bài toán trở nên rõ ràng hơn khi cài đặt và thuận tiện hơn trong bảo trì, sử dụng phần mềm Ứng dụng Hibernate làm đơn giản quá trình duy trì dữ liệu, thuận tiện trong việc truy cập
và xử lý dữ liệu, nâng cao hiệu quả của chương trình
Tuy nhiên bài toán đưa ra còn khá đơn giản, chưa thể hiện được tất cả khía cạnh của công nghệ Trong quá trình phát triển ứng dụng còn gặp phải một số khó khăn nhất định
4 Tài liệu tham khảo
[1] Christian Bauer & Gavin King, Hibernate in Action, 2003
[2] James Elliott Hibernate A Developer’s Notebook, O’Reilly, 2004
[3] Chuck Cavaness, Jakarta struts,
O’reilly, 2002
[4] James Goodwill, Mastering Jakarta Struts,
Willey, Canada, 2002
[5] Will Iverson, Hibernate.A J2EE Developers Guide, Addison Wesley, 2004