Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
512,56 KB
Nội dung
TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SỐ 11 - 2007 ÁP DỤNG MẪU THIẾT KẾ HƯỚNG ĐỐI TƯỢNG TRONG PHÁT TRIỂN PHẦN MỀM WEB Trần Đan Thư, Huỳnh Thụy Bảo Trân Trường Đại Học Khoa Học Tự Nhiên, ĐHQG-HCM (Bài nhận ngày 20 tháng 05 năm 2007, hoàn chỉnh sửa chữa ngày 08 tháng 09 năm 2007) TÓM TẮT: Các ứng dụng mơi trường Web ngày đóng vai trò quan trọng thay dần phần mềm truyền thống nhằm hỗ trợ tốt hoạt động đa dạng đời sống xã hội Trong năm gần đây, việc xây dựng phát triển ứng dụng Web quan tâm mức giới công nghiệp nhà nghiên cứu Sự phát triển phương pháp luận công nghệ kỹ thuật hướng đối tượng tạo nhiều điều kiện thuận lợi để phát triển phần mềm Web nhờ sử dụng lại lớp đối tượng xây dựng sẵn Trong báo này, chúng tơi trình bày kết nghiên cứu việc vận dụng phát triển mẫu thiết kế hướng đối tượng tiến trình xây dựng phát triển phần mềm chạy phân bố mơi trường Web Từ khóa: Kỹ thuật hướng đối tượng, Mẫu thiết kế, Ứng dụng Web, Ứng dụng phân bố 1.GIỚI THIỆU Trong năm gần đây, phần mềm ứng dụng chạy Web ngày sử dụng rộng rãi ưa chuộng xuất phát từ tính tiện dụng rộng khắp hệ thống mạng Internet toàn cầu Phần mềm Web có giao diện đẹp dễ sử dụng, khơng cần cài đặt khai thác nơi có sẵn Internet Hơn nữa, phần mềm Web – xuất phát từ chất công nghệ chúng – giải nhiều vấn đề chia sẻ phân phối tài nguyên chung vấn đề truy cập khai thác tài nguyên xa Việc phát triển ứng dụng chạy Web ngày chiếm tỉ lệ cao so với phát triển phần mềm truyền thống Các hợp đồng gia công phần mềm Web ngày gia tăng đáng kể Về mặt công nghệ, nhiều kỹ thuật hỗ trợ phát triển ứng dụng Web đề xuất: khởi đầu trang Web tĩnh HTML, trang Web động DHTML, sau ngôn ngữ script JavaScript VBScript cho phép lập trình trang HTML, trang PHP, JSP, ASP hay ASP.NET [14,10,18,23] Đặc biệt, đời ngôn ngữ XML (Extensible Markup Language [26]) tạo bước ngoặc quan trọng cho kỹ thuật biểu diễn văn phức hợp đối tượng phân bố Công nghệ AJAX (Asynchronous JavaScript and XML [5,13]) đề xuất: cơng nghệ góp phần cải tiến giao diện người dùng ứng dụng Web, tạo điều kiện thuận lợi để người sử dụng khai thác ứng dụng Web dễ dàng Tuy nhiên, phát triển đa dạng công nghệ với nhu cầu lớn số lượng ứng dụng Web làm nảy sinh số vấn đề xây dựng phần mềm Web [10] Nguyên vấn đề sử dụng công nghệ cụ thể với hạn chế định, kỹ sư phần mềm hay lập trình viên không đầu tư thời gian (hoặc áp lực lớn hạn định giao nộp không cho phép họ có thời gian) để thiết kế tốt kiến trúc ứng dụng, phát triển “chương trình sạch” (clean code) dễ bảo trì, tái sử dụng mở rộng Các kỹ sư phần mềm thường chọn giải pháp cứu cánh trước mắt để khắc phục hạn chế công nghệ mà hướng tới mục tiêu đáp ứng hạn định giao nộp Rất nhiều ứng dụng Web lớn, Trang Science & Technology Development, Vol 10, No.11 - 2007 xây dựng vận hành, lâm vào tình trạng khó bảo trì mở rộng Chúng nghiên cứu tổng hợp vấn đề nảy sinh đề xuất kỹ thuật để hạn chế, khắc phục vấn đề với mục đích hỗ trợ cho người phát triển ứng dụng Web Về mặt phương pháp luận, phương pháp phân tích thiết kế hướng đối tượng [22] phát triển mạnh mẽ góp phần đáng kể vào việc cải tiến chất lượng phần mềm nhờ vào khả xây dựng lớp đối tượng có tính tái sử dụng cao, dễ bảo trì mở rộng Ngơn ngữ UML (Unified Modeling Language [17]) đề xuất để sử dụng ngơn ngữ chuẩn để mơ hình hóa thành tố phần mềm q trình phân tích thiết kế hướng đối tượng Một số tác giả nghiên cứu vận dụng phương pháp hướng đối tượng, cụ thể hóa phương pháp để phù hợp với tiến trình xây dựng ứng dụng Web [3,7,10] Tuy nhiên, phương pháp hướng đối tượng tập trung chủ yếu vào hoạt động tổng thể tiến trình phát triển phần mềm hướng đối tượng Những phương pháp thường không giải vấn đề chi tiết nảy sinh trình thiết kế phần mềm Để bổ sung cho phương pháp hướng đối tượng, mẫu thiết hướng đối tượng (mẫu thiết kế GoF, Gamma cộng [12]) tiếp cận độc đáo, đề xuất để giải vấn đề nảy sinh trình thiết kế phần mềm hướng đối tượng Các mẫu GoF có tầm quan trọng ảnh hưởng lớn giới nghiên cứu giới công nghiệp phần mềm Rất nhiều cơng trình đặc sắc khác mẫu thiết kế hướng đối tượng đề xuất để giải nhiều vấn đề đặc thù cho lĩnh vực ứng dụng phần mềm [2,4,11,21] Chúng quan tâm đến việc nghiên cứu mẫu thiết kế hướng đối tượng để áp dụng trình phát triển phần mềm hướng đối tượng, đặc biệt giải vấn đề cài đặt giao diện người dùng vấn đề liên quan đến ứng dụng phân bố Internet [6,24,25] Trong báo này, chúng tơi trình bày việc nghiên cứu áp dụng mẫu thiết kế hướng đối tượng trình xây dựng ứng dụng Web Xuất phát từ đặc điểm công nghệ của môi trường Web, mẫu thiết kế cần phải vận dụng phát triển cách thích hợp Phần báo phân tích cơng nghệ phát triển ứng dụng Web vấn đề nảy sinh xuất phát từ hạn chế công nghệ Trong phần 3, giới thiệu mẫu thiết kế thường sử dụng cho ứng dụng Web để giải vấn đề nảy sinh Kế đến minh họa việc sử dụng mẫu thiết kế phần Sau cùng, phần 5, tổng kết đề xuất hướng phát triển cho chủ đề nghiên cứu tương lai 2.CÔNG NGHỆ WEB VÀ CÁC VẤN ĐỀ NẢY SINH Phần tóm tắt trạng công nghệ việc thiết kế thực ứng dụng Web Các mơ hình cơng nghệ, ngơn ngữ lập trình mơi trường hỗ trợ tiến hóa liên tục để nâng cao hiệu suất lao động lập trình viên cải tiến chất lượng ứng dụng Web xây dựng Tuy nhiên, số vấn đề định nảy sinh hạn chế chất số công nghệ cụ thể Mặc dù có nhiều giải pháp cơng nghệ đề xuất để giải vấn đề này, giải pháp phương pháp luận ln đóng vai trò quan trọng, vận dụng để bổ sung hỗ trợ lúc cho giải pháp công nghệ 2.1.Đặc điểm công nghệ xây dựng ứng dụng web Công nghệ Web khởi đầu với trang HTML tĩnh, nhằm mục đích trình bày thơng tin quảng bá công ty hay tổ chức Những trang đặt máy chủ Web (Web servers) cho phép truy cập thông qua Internet Việc giao tiếp với người sử dụng chủ yếu nhờ liên kết trang: từ trang Web đến trang khác nhờ lựa chọn liên kết trang Do tính tiện dụng rộng khắp mạng Internet tồn cầu, nhà sản xuất phần mềm có ý tưởng phát triển hệ thống phần mềm vận hành Internet Ý tưởng độc Trang TAÏP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SỐ 11 - 2007 đáo thực thành công với hệ thống thư tín điện tử Web Sau hệ thống bán hàng, kinh doanh bất động sản, đặt vé tàu, quản lý tài khoản ngân hàng… Internet Với nhu cầu ngày cao khách hàng, hãng sản xuất phần mềm nỗ lực nâng cao chất lượng hệ thống Web nhằm mục đích đạt ứng dụng Web hoạt động phần mềm thông thường với nhiều chức giao tiếp đa dạng với người sử dụng gói gọn liên kết trang Nỗ lực khởi đầu với chương trình Perl, Common Gateway Interface (CGI) C chạy Web server; công nghệ phát triển ứng dụng Web, chẳng hạn như: JavaScript, VBScript, PHP, JSP, ASP… Hình trình bày kiến trúc tổng thể ứng dụng Web Về mặt kỹ thuật, người sử dụng truy cập đến địa WWW thông qua trình duyệt Web (Web browser) chạy máy khách (client computer), yêu cầu gởi đến máy chủ Web Đối với trường hợp trang Web tĩnh yêu cầu đáp ứng cách gởi trở lại trang HTML cho máy khách Trường hợp trang Web động: máy chủ Web chạy chương trình thích hợp để thực số thao tác định nhằm phát sinh trang HTML, sau trang gởi đến máy khách W eb b row ser Request Response (c lie n t s id e ) S e r v e r E n g in e s (fo r P H P , J S P , ASP… ) HTM L pages E x e c u ta b le C o d e , S c rip t P ro g m s … D a ta b a ses Server pages (P H P , JS P , ASP… ) S e r v e r s id e Hình Kiến trúc tổng thể ứng dụng Web Có dạng cho chương trình máy chủ Web để phát sinh trang HTML: chương trình script (script program) hay trang server (server page) - Chương trình script: chương trình bình thường lập trình theo giao thức HTTP (Hyper Text Transfer Protocol), sử dụng lệnh dạng chuỗi để phát sinh trang HTML theo yêu cầu Trong thực tế, script CGI Script hay JavaServlet, chương trình bất kỳ, lập trình giao thức HTTP, dịch thành mã thực thi cài đặt máy chủ Web - Trang server: chương trình cấu trúc cách nhúng mã script vào trang HTML dự kiến trả Khi có yêu cầu từ máy khách, đoạn mã script thực để Trang Science & Technology Development, Vol 10, No.11 - 2007 phát sinh trang HTML thực gởi trình duyệt Web chạy máy khách Ví dụ cho dạng cơng nghệ PHP, ASP, JSP Hai dạng chương trình nói có lợi hạn chế riêng loại Các chương trình script thiên xử lý yêu cầu thực tính tốn; người lập trình cực nhọc sử dụng dạng chương trình nhiều để thực việc bố trí, định dạng kiểu cách trang HTML Ngược lại, trang server thuận lợi cho việc định dạng trang HTML; người lập trình chèn tùy tiện mã script vào trang HTML đưa đến nhiều vấn đề khó khăn việc bảo trì phát triển hệ thống sau Đối với ứng dụng Web có chức lưu trữ quản lý liệu, tùy theo mức độ mà sử dụng hệ thống tập tin máy chủ sở liệu thực Hệ thống liệu truy xuất cập nhật thơng qua chương trình script trang server (xem hình 1) Khi dùng hệ thống tập tin máy chủ, tùy trường hợp người thiết kế tổ chức tập tin cấu trúc Trong năm gần đây, tập tin dạng XML thường chọn để lưu trữ liệu có cấu trúc phức hợp Việc tổ chức sở liệu thực tùy theo qui mô ứng dụng Đối với ứng dụng nhỏ: quản lý tập trung hệ quản trị sở liệu Tuy nhiên, với ứng dụng Web có qui mơ lớn liệu quản lý tập trung hay phân tán nhiều máy chủ khác Bên cạnh đó, việc thực truy xuất liệu cần coi trọng Ví dụ như, truy vấn SQL nhúng trực tiếp vào trang PHP, có thay đổi thiết kế sở liệu phải tìm sửa lại tồn câu truy vấn 2.2.Các vấn đề nảy sinh trình thiết kế thực ứng dụng Web Từ đặc điểm nêu công nghệ hỗ trợ xây dựng ứng dụng Web cộng với thiếu định hướng phương pháp luận tiến trình phát triển ứng dụng, nhiều vấn đề nảy sinh dẫn đến ứng dụng cồng kềnh, khó bảo trì, khó mở rộng Trong phần này, chúng tơi hệ thống lại vấn đề quan trọng dựa nghiên cứu, quan sát phân tích theo quan điểm phát triển công nghệ phần mềm cách bền vững [2, 10, 11, 24] • Mã hóa cứng (hard coding) đoạn mã nguồn dùng lần, tái sử dụng hay mở rộng để dùng cho tình tương tự có thay đổi chút Mã hóa cứng gây trở ngại cho việc mở rộng hay nâng cấp hệ thống sau này; • Trùng lặp mã nguồn (code duplication): kết việc chép vật lý đoạn mã, sửa lại tên hay giá trị biến Trường hợp xảy lập trình viên chép trang HTML (có chèn mã nguồn) để sửa lại theo yêu cầu Các hệ thống phần mềm trùng lắp mã nguồn khó bảo trì chỉnh sửa; • Trộn lẫn mã nguồn nghiệp vụ ứng dụng với mã nguồn phát sinh trang Web: không tách biệt tính trừu tượng nghiệp vụ với chi tiết kỹ thuật liên quan đến công nghệ dùng để xây dựng ứng dụng Hệ thống khó sửa đổi có yêu cầu mở rộng mặt nghiệp vụ ứng dụng phát triển • Nhúng trực tiếp câu lệnh SQL vào trang server: cách làm gắn chặt trang server với mơ hình sở liệu ứng dụng Một sửa đổi nhỏ mơ hình liệu có khả đưa đến việc sửa nhiều trang server ứng dụng phát triển • Chèn trực tiếp cơng thức tính toán, biểu thức kiểm tra điều kiện ràng buộc liệu vào trang server: ràng buộc nghiệp vụ ứng dụng trộn lẫn với việc trình bày trang HTML Việc thay đổi nghiệp vụ ứng dụng dẫn đến sửa đổi nhiều trang Web Về mặt phương pháp luận, người phát triển ứng dụng phải làm cách để tránh vấn đề nói Để làm họ cần phải hỗ trợ kỹ thuật thiết kế ứng Trang TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SỐ 11 - 2007 dụng, tổ chức chương trình script, thiết lập trang server cho không gặp phải vấn đề 2.3.Phương pháp hướng đối tượng phát triển ứng dụng Web Một số phương pháp hướng đối tượng hỗ trợ tiến trình xây dựng ứng dụng Web [3,7] đề xuất Ngôn ngữ UML mở rộng (Web Application Extension for UML – WAE) để mơ hình hóa thành phần ứng dụng Web sản sinh q trình phân tích thiết kế Các hoạt động tham gia vào pha xây dựng phần mềm tiến trình RUP (Rational Unified Process) vận dụng để phát triển ứng dụng Web Các phương pháp góp phần đáng kể vào việc nâng cao chất lượng ứng dụng Web, giải phần vấn đề nảy sinh trạng công nghệ Web Tuy nhiên, phương pháp hướng đối tượng cho ứng dụng Web hỗ trợ bước tổng thể cần phải thực tiến trình thiết kế Các phương pháp không hỗ trợ nhiều cho việc giải vấn đề cụ thể nảy sinh thiết kế thực ứng dụng Web 3.VẬN DỤNG MẪU THIẾT KẾ TRONG TIẾN TRÌNH XÂY DỰNG ỨNG DỤNG WEB Trong phần này, chúng tơi trình bày kỹ thuật sử dụng mẫu thiết kế hướng đối tượng để giải vấn đề nảy sinh trạng công nghệ xây dựng ứng dụng Web Trước tiên, nhắc lại mẫu GoF [12] mẫu sở cho phát triển phần mềm hướng đối tượng nói chung, sử dụng hiệu phát triển ứng dụng Web Kế đến chúng tơi trình bày mẫu thiết kế tiêu biểu cho ứng dụng Web Sau số thư viện lớp cho ứng dụng Web giới thiệu Những thư viện lớp phát triển dựa tảng mẫu thiết kế 3.1.Mẫu thiết kế hướng đối tượng GoF Gamma cộng đề xuất 23 mẫu thiết kế sở (thường gọi mẫu GoF [12]) Mỗi mẫu GoF giải vấn đề cụ thể tiến trình xây dựng phần mềm hướng đối tượng Trong thực tế, nhóm mẫu GoF thường sử dụng phối hợp để giải vấn đề thiết kế Những mẫu giới công nghiệp sử dụng hiệu để thiết lập mơ hình cơng nghệ phục vụ cho việc xây dựng phần mềm Các kỹ sư phần mềm vận dụng thường xuyên mẫu trình thiết kế phần mềm Đa số mẫu thiết kế có nguồn gốc từ mẫu GoF, dạng biến thể mẫu GoF phối hợp cách hợp lý mẫu GoF để giải vấn đề thiết kế hướng đối tượng Bởi chương trình Web viết ngôn ngữ script, kỹ thuật cài đặt mẫu GoF khơng hồn giống hướng dẫn Gamma tài liệu tham khảo [12] Trong phạm vi báo chúng tơi tóm tắt lại ý nghĩa ứng dụng mẫu GoF tiêu biểu thường sử dụng xây dựng ứng dụng Web • Sự phát triển đa dạng công nghệ Web đưa đến nhiều hệ thống thư viện lớp khác phục vụ cho mục đích, đoạn mã nguồn sử dụng trực tiếp lớp thư viện cụ thể dùng lại cách độc lập với thư viện Mẫu Adapter dùng để tạo giao diện lập trình khơng phụ thuộc thư viện lớp cụ thể • Mẫu State thường dùng để cài đặt đối tượng Web có hành vi thay đổi theo trạng thái chúng, hoạt động đối tượng điều khiển cách thay đổi trạng thái thích hợp • Mẫu Brigde sử dụng để tách biệt tính trừu tượng mặt nghiệp vụ khỏi chi tiết kỹ thuật cài đặt phụ thuộc cơng nghệ Web Nói chung, mẫu dùng hiệu Trang Science & Technology Development, Vol 10, No.11 - 2007 nhằm tách biệt (không trộn lẫn) phạm trù tương đối độc lập nhau, chẳng hạn: giao diện người dùng xử lý mặt nghiệp vụ, trình bày liệu biểu diễn liệu… • Mẫu Singleton nhằm cài đặt lớp có đối tượng, ngăn ngừa việc tạo đối tượng thứ hai trở (nếu có tạo trả đối tượng tạo rồi) Mẫu thường dùng ứng dụng Web cần thiết cài đặt lớp đối tượng việc tạo nhiều đối tượng khơng cần thiết hao tốn nhớ • Các ứng dụng Web thường dùng mẫu Strategy để giải việc lựa chọn hình thức hiển thị khác (nhưng giống cấu trúc) trang Web, chẳng hạn việc hỗ trợ nhiều ngôn ngữ đơn vị tiền tệ cho trang Web Ngồi mẫu GoF nói trên, số mẫu khác Prototype (đối tượng chép; cloning), Composite (đối tượng phức hợp), Template method (phương thức khuôn, xử lý tổng quát) thường sử dụng xây dựng ứng dụng Web Tuy nhiên, mẫu hỗ trợ đương nhiên ngôn ngữ lập trình script cơng nghệ Web tiên tiến 3.2.Mẫu thiết kế cho ứng dụng web Mẫu thiết kế tiêu biểu đóng vai cho quan trọng công nghệ phát triển ứng dụng Web mẫu MVC (Model-View-Controller [10, 11, 19]) Mẫu có ý tưởng xuất phát từ mẫu Observer Gamma cộng [12] Thực từ cuối năm 70, trước mẫu GoF công bố, ý tưởng triển khai thành công cho thư viện đồ họa ngơn ngữ lập trình Smalltalk Tuy nhiên, mẫu Observer đề xuất để giải việc trình bày liệu cho ứng dụng truyền thống máy đơn, mẫu MVC dùng để thiết lập kiến trúc ứng dụng Web Mơ hình tổng thể mẫu MVC trình bày hình Chú ý mũi tên đứt nét có ý nghĩa “có thể truy xuất” “biết thông tin về”: View Controller truy xuất lẫn nhau, biết thông tin Model; nhiên Model truy xuất đến View Controller Theo mơ hình này, thành phần ứng dụng Web tổ chức tách biệt thành phần: Model (mô hình bên trong), View (hiển thị bên ngồi), Controller (bộ điều khiển nhập xuất cập nhật phần hiển thị) Nhờ tách biệt ba khía cạnh mà mẫu MVC giải nhiều vấn đề nảy sinh phát triển ứng dụng Web View Controller Model Hình Mơ hình tổng thể mẫu MVC [10, 11] - Mơ hình (Model): đối tượng biểu diễn thơng tin nghiệp vụ bên ứng dụng xây dựng Đối tượng bao bọc thành phần liệu phương thức liên quan đến ứng xử Khi phát triển lớp đối tượng này, người lập trình quan tâm cài đặt xử lý hay tiến trình tác nghiệp ứng dụng mà khơng cần quan tâm đến chúng hiển thị thiết bị xuất hay lấy vào từ thiết bị nhập Trang 10 TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SỐ 11 - 2007 - Hiển thị bên (View): thành phần liên quan đến giao diện người dùng Người sử dụng “thấy” đối tượng nghiệp vụ bên ứng dụng nhờ phần hiển thị (tức View) Đối tượng hiển thị dạng trang HTML, hộp chọn (listbox), hay danh sách chọn dạng (tree view)… - Bộ điều khiển (Controller): đảm nhiệm việc cập nhật phận hiển thị (View) cần thiết Bộ điều khiển nhận liệu nhập từ người dùng, truy xuất thơng tin cần thiết từ mơ hình (Model), cập nhật thích hợp phần hiển thị (View) Giao diện với người sử dụng phần mềm thiết lập nhờ tương tác qua lại giữ View Controller: hai phận phần trình bày bên đối tượng biểu diễn bên Người sử dụng biết đối tượng bên thông qua phần bên ngồi View Controller Trong mơ hình MVC, tách biệt phần trình bày (View Controller) khỏi phần biểu diễn (Model) yếu tố quan trọng góp phần nâng cao chất lượng thiết kế phần mềm Yếu tố khắc phục vấn đề thảo luận phần trước: tách biệt mã nguồn liên quan đến nghiệp vụ ứng dụng mã nguồn giao diện người dùng, tạo chế để tránh mã hóa cứng trùng lặp mã nguồn, sửa đổi mơ hình khơng ảnh hưởng dây chuyền đưa đến việc sửa đổi nhiều phần giao diện người dùng bên ngồi Ứng dụng phát triển mở rộng: với mô hình có nhiều hình thức giao tiếp bên ngồi với người sử dụng (trình duyệt Web, giao tiếp dòng lệnh, hiển thị đồ họa…) Hầu hết công nghệ hỗ trợ phát triển ứng dụng Web đại sử dụng mơ hình MVC để định hướng cho người phát triển phần mềm Web thiết kế ứng dụng dễ mở rộng bảo trì sau Hình trình bày thể mơ hình MVC cho cơng nghệ JSP, mũi tên hình hướng thơng điệp hay liệu Chu yêu cầu từ máy khách bao gồm bước sau Browser 1) Request Controller Servlet 5) Response 3) Forward 2) Create View (JSP) 4) Extract Model Beans Data Hình Thể mẫu MVC cơng nghệ JSP [10] • Bước (Request): từ máy khách, người sử dụng thực thao tác phát sinh yêu cầu đến điều khiển (Controller servlet) máy chủ Web ; Trang 11 Science & Technology Development, Vol 10, No.11 - 2007 • Bước (Create): điều khiển (Controller servlet) tạo hay nhiều đối tượng JavaBean ; • Bước (Forward): điều khiển (Controller servlet) chuyển điều khiển đến hiển thị (View – JSP) ; • Bước (Extract): hiển thị (View – JSP) trích thơng tin từ đối tượng JavaBean ; • Bước (Response): hiển thị (View – JSP) gởi thông tin (trang HTML) máy khách để hiển thị trình duyệt Web Trong bước bước 5, đối tượng JavaBean giao tiếp với hệ thống lưu trữ liệu (hệ thống tập tin sở liệu máy chủ Web) để truy cập thông tin cần thiết Mẫu MVC thể nhiều cách khác tùy thuộc vào người thiết kế tùy thuộc vào u cầu thực tiễn Hình mơ tả mẫu Page controller [11] Bộ điều khiển trang (Page controller) sử dụng giao thức HTTP (trực tiếp hay gián tiếp) để chọn đối tượng nghiệp vụ (Model) hiển thị thích hợp (View), hiển thị sử dụng thơng tin từ đối tượng nghiệp vụ để tạo trang HTML gởi máy khách Mẫu Page controller cài đặt cách dùng chương trình script (như CGI script hay servlet) trang server Page Controller Model Đối tượng nghiệp vụ ứng dụng Dùng giao thức HTTP để chọn model view View Hiển thị dạng HTML Hình Mẫu Page controller [11] Handler Abstract Command doGet doPost Execute( ) Command concrete Command concrete Execute( ) Execute( ) Hình Mẫu Front controller [11] Trường hợp điều khiển cần phải xử trí nhiều yêu cầu đa dạng cho trang Web, mẫu Front controller [11] thường sử dụng (xem hình 5) Mẫu cấu trúc gồm phần: thẻ Web (web handler) lệnh thay đổi vào lúc thực thi Thẻ Web đón nhận yêu cầu từ máy chủ Web, tùy theo yêu cầu mà định lệnh thực (nhờ tận dụng chế đa hình) Mẫu Front controller cài đặt lớp đối tượng thay dùng trang server Các mẫu nói trên, đặc biệt mẫu MVC, sử dụng thông dụng mức độ thiết lập kiến trúc ứng dụng Web Một số nhóm nghiên cứu khác [1, 8, 9, 15] đề xuất mẫu giải vấn đề cụ thể hơn, xuất trình xây dựng ứng dụng Web Chẳng hạn mẫu Abstract form [1] đề xuất mơ hình tổng quát cho bảng nhập liệu, sử dụng để tạo bảng nhập liệu cho nhiều ứng dụng khác Mẫu Remote Authenticator/Authorizer [9] cung cấp chế kiểm tra quyền truy cập hệ thống hợp lệ Đặc biệt, nhóm nghiên cứu [16, 20] tiến hành đề án xây dựng thư viện mẫu thiết kế giao diện người dùng cho ứng dụng Web nhằm mục đích hỗ trợ việc phát triển ứng dụng Web 3.3.Thư viện lớp cho ứng dụng web dựa mẫu thiết kế Một số hệ thống thư viện lớp (được gọi class framework) phát triển dựa kiến trúc MVC nhằm hỗ trợ cho người phát triển ứng dụng Web Bảng giới thiệu số Trang 12 TAÏP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SỐ 11 - 2007 framework tiêu biểu cho công nghệ phát triển Web Java Hầu hết hệ thống mã nguồn mở, tải để sử dụng Tác giả N Ford trình bày cách súc tích hệ thống hóa cách khai thác framework để xây dựng ứng dụng Web [10] Bảng 1.Các framework cho ứng dụng web [10] Framework Struts Địa http://jakarta.apache.org/struts Velocity http://jakarta.apache.org/velocity Tapestry http://jakarta.apache.org/tapestry WebWork http://sourceforge.net/projects/open symphony Turbine http://jakarta.apache.org/turbine Mô tả Một framework mã nguồn mở, thiết kế chủ yếu cho việc xây dựng ứng dụng theo Model Là engine mẫu dựa ngôn ngữ Java Framework cho phép sử dụng ngôn ngữ template để tham chiếu đến đối tượng định nghĩa mã nguồn Là framework chọn để thay cho JavaServer Pages Thực thay phát sinh script đoạn mã nguồn mơ hình đối tượng thành phần hồn chỉnh Đây dự án chung xây dựng theo qui trình mã nguồn mở, nhằm cung cấp cơng cụ framework cho việc xây dựng website thời gian ngắn để dễ dàng hiểu bảo trì Là framework lớn, mã nguồn mở, framework dựa dịch vụ cho việc xây dựng ứng dụng web lớn, site e-commerce 4.MỘT TRƯỜNG HỢP NGHIÊN CỨU ĐIỂN HÌNH Trong phần chúng tơi trình bày tóm tắt ví dụ điển hình xây dựng ứng dụng WChat để trao đổi thông điệp Web (Web chat) Mục đích ví dụ để minh họa nghiên cứu vận dụng mẫu thiết kế hướng đối tượng trình thiết kế cài đặt ứng dụng Web Vì chúng tơi tập trung vào nghiên cứu kỹ lưỡng việc thiết kế kiến trúc cho hệ thống này, nhằm thực bước mục tiêu xây dựng phương pháp luận triển khai ứng dụng Web Sau cài đặt ứng dụng thử nghiệm, thiết kế xem xét trở lại để phân tích, đánh giá, chỉnh sửa để có thiết kế tốt Cách làm thực cho nhiều hệ thống khác Tư tưởng mượn việc triển khai hệ thống để nghiên cứu thực tiễn qui trình thiết kế hướng đối tượng cho ứng dụng Web dựa sở mẫu thiết kế User * friends has chatHistory * name, passw, email addr sender offlineMsgs * Message content: String UsrStatus « transient » state strMsg belong at: Time TextMessage VoiceMessage Hình Mơ hình liệu quản lý “chat user” Hình trình bày sơ đồ lớp UML để mơ hình hóa hệ thống quản lý người sử dụng hệ thống WCHAT Mơ hình liệu hồn tồn độc lập với phần trình bày bên ngồi cho người dùng, mơ hình lưu trữ bên cài đặt máy chủ Web Đây thiết kế khởi đầu cho ứng dụng thử nghiệm: thiết kế phân tích chỉnh sửa trình triển Trang 13 Science & Technology Development, Vol 10, No.11 - 2007 khai hệ thống Thiết kế chi tiết phận quản lý thông điệp trạng thái người dùng trình bày sơ đồ lớp hình Trong sơ đồ lớp (hình hình 7): đối tượng lớp hiểu lưu sở liệu (tức persistent objects), lớp có giải mở rộng đối tượng chúng đối tượng tạm nhớ (tức transient objects) bị hủy người sử dụng thoát khỏi hệ thống WCHAT Một số điểm lưu ý sau việc áp dụng mẫu thiết kế Web ví dụ này: • Ý tưởng mẫu MVC sử dụng để tách rời phần giao tiếp với người dùng (tầng presentation bao gồm View Controller) khỏi tầng biểu diễn bên đối tượng (Model) thể sơ đồ lớp hình ; • Mẫu State Gamma [12] sử dụng để quản lý trạng thái người sử dụng hệ thống WCHAT: lớp UsrStatus phân cấp theo quan hệ kế thừa tương ứng với trạng thái khác (online, offline, Idle…) người sử dụng ; • Dạng biến thể mẫu Composite [12] sử dụng thiết kế này: người dùng (đối tượng lớp User) trạng thái online (lớp OnlineStatus) có nhiều nói chuyện thông điệp (TalkSections tập hợp Dialogue), nói chuyện lại liên quan đến người bạn nói chuyện (Friend): người bạn thể lớp User Như thể lớp User dạng đối tượng phức hợp, thiết kế khơng hồn tồn giống mẫu Composite – GoF loginUser Server side User « persistent » pState UsrStatus « transient » IsOnline() UpdateState() Friend strMsg Dialogue « transient » Presentation M essage « transient » (Controller) (View) Browser window « transient » * msgStream Server page for a chatter « transient » TalkSections * OnlineStatus « transient » OfflineStatus « transient » bindingPC IdleStatus « transient » … HostInfo « transient » IPAddress * Client side (browser windows) Hình Sơ đồ lớp cho hệ thống quản lý hiển thị thông điệp trao đổi hệ thống “chat” Trong thiết kế cài đặt chi tiết, cần phải ánh xạ lớp đối tượng vào sở liệu cụ thể ngôn ngữ script hay trang server công nghệ phát triển ứng dụng Web cụ thể Tùy trường hợp lựa chọn hệ quản trị sở liệu mà cần phải sử dụng số kỹ thuật hay mẫu chuyển đổi Ví dụ chọn MySQL phải giải việc ánh xạ lớp đối tượng vào sở liệu quan hệ Đối với công nghệ Web, chọn PHP phải giải thêm vấn đề liên quan đến thừa kế đa hình; cịn chọn PHP thuận tiện PHP ngơn ngữ hướng đối tượng hỗ trợ sẵn khả lập trình hướng đối tượng Trang 14 TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SOÁ 11 - 2007 5.KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Do đặc điểm công nghệ, việc xây dựng phần mềm Web đối diện với nhiều vấn đề nảy sinh khác Trong phạm vi báo này, giới hạn vấn đề xoay quanh nỗ lực bảo đảm nguyên lý công nghệ phần mềm trình phát triển phần mềm Web Trong thực tế nhiều vấn đề quan trọng thách thức khác kể mặt công nghệ mặt nghiên cứu phương pháp luận Chẳng hạn vấn đề bảo mật ứng dụng Web, việc phân tích mã nguồn script để dị tìm lỗ hỗng bảo mật, nâng cao chất lượng giao diện người dùng máy khách (chẳng hạn công nghệ phát triển AJAX [5,13] nỗ lực quan trọng cho khía cạnh này), giải vấn đề liên quan đến sở liệu… Để phát triển hướng nghiên cứu này, định hướng vào công việc sau: • Nghiên cứu tiếp mẫu thiết kế giải vấn đề khác phát triển ứng dụng Web, hệ thống hóa phân loại để định hướng áp dụng ; • Áp dụng cách hệ thống mẫu thiết kế vào việc triển khai thử nghiệm hệ thống phần mềm Web để rút nguyên tắc phương pháp luận cần thiết cho việc vận dụng mẫu ; • Về việc ứng dụng mẫu thiết kế sử dụng framework xây dựng sẵn hay công nghệ Một số framework công nghệ Web cài đặt hỗ trợ sẵn mẫu thiết kế, vấn đề tình cụ thể vận dụng Chẳng hạn công nghệ AJAX, mẫu thiết kế đóng vai trị nào… • Xây dựng cơng cụ cần thiết nhằm tích hợp hỗ trợ việc sử dụng mẫu thiết kế trình phát triển phần mềm Web APPLYING OBJECT-ORIENTED DESIGN PATTERNS TO DEVELOP WEB-BASED APPLICATIONS Tran Dan Thu, Huynh Thuy Bao Tran University of Natural Sciences, VNU-HCM ABSTRACT: Web-based applications are more and more important in supporting a great deal of business processes In recent years, researchers as well as industrial developers have invested much effort in contribution of development methods and infrastructural environment for web-based applications Moreover, the advances in object techniques, especially the emergence of object-oriented design patterns, favorize the construction of webbased applications.In this paper, we present certain results in applying design patterns in the development process of web-based applications Keywords: Object-Oriented Technique, Design Pattern, Web Application, Distributed Application Trang 15 Science & Technology Development, Vol 10, No.11 - 2007 TÀI LIỆU THAM KHẢO [1] D Bonura, R Culmone, E Merelli, Patterns for web applications, ACM International Conference Proceeding Series, Vol 27, p 739 - 746, (2002) [2] F Buschmann, Pattern-oriented Software Architecture - A System of Patterns, John Wiley & Sons, (1996) [3] J Conallen, Building Web Applications with UML, Addison-Wesley, (2002) [4] J W Cooper, The design patterns Java companion, Addison-Wesley, (1998) [5] D Crane, E Pascarello, D James, Ajax in Action, Manning Publications, (2005) [6] DONG T B Thuy and TRAN D Thu, User Interface Design by Applying Object – Oriented Design Patterns, Addendum Contributions to the 4th IEEE International Conference on Computer Sciences - Research, Innovation & Vision for the Future, February 12-16, Hochiminh City, Vietnam (RIVF 2006) [7] P Eeles, K Houston, W Kozaczynski, Building J2EE Applications with the Rational Unified Process, Addison-Wesley, (2002) [8] M Ewiss, ‘Patterns for Web Applications’, Pattern Languages of Programs conference 2003 (PLoP 2003) [9] E B Fernandez et al., Remote Authenticator /Authorizer, Pattern Languages of Programs conference 2003 (PLoP 2003) [10] N Ford, Art of Java Web Development, Manning Publications, (2004) [11] M Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, Pearson Education, (2003) [12] E Gamma, R Helm, R Johnson and J Vlissides, Design Patterns: Elements of Reusable Object-oriented Software, Addison-Wesley Longman, (1995) [13] J J Garrett, ‘Ajax: A New Approach to Web Applications’, Adaptive Path 2005, available at http://www.adaptivepath.com/publications/essays/archives/000385.php [14] A.Gutmans, S S Bakken, D Rethans, PHP Power Programming, Prentice Hall, (2004) [15] V Hays, M Loutrel, and E B Fernandez, The Object Filter and Access Control Framework, Pattern Languages of Programs conference 2000 (PLoP 2000) [16] D Hong and K Snow, ‘Web Design Pattern Library Feature Requirements’, Center for Document Engineering Technical Report (CDE2006-TR08), April 24, (2006) [17] Jacobson, G Booch, J Rumbaugh, The Unified Software Development Process, Addison Wesley Longman, Inc, (1999) [18] P Kimmel, Advanced C# Programming, McGraw-Hill, (2002) [19] A Leff, J T Rayfield, Web-application development using the Model/View/Controller design pattern, Proc of the 5th IEEE International Conf on Enterprise Distributed Object Computing Conference (EDOC 2001), 4-7 Sept., (2001) [20] M Marks and K Snow, Methodology for Developing Web Design Patterns, Center for Document Engineering Technical Report (CDE2006-TR06), April 24, (2006) [21] F Marinescu, EJB Design Patterns, John Wiley & Son, (2002) [22] Rumbaugh, I Jacobson, and G Booch, The Unified Modeling Language Reference Manual, Addison Wesley Longman, Inc, (1999) Trang 16 TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 10, SOÁ 11 - 2007 [23] M Stiefel, R J Oberg, Application Development Using C# and NET, Prentice Hall PTR, (2001) [24] Trần Đ Thư Huỳnh T B Trân, Mẫu thiết kế hướng đối tượng cho ứng dụng phân bố, Báo cáo Hội thảo Một số vấn đề chọn lọc Công nghệ thông tin truyền thông, Đà lạt, (06/2006) [25] Tran D Thu, Huynh T.B Tran, A composite design pattern for object frameworks, 2nd IEEE International Workshop on Software Architectures and Component Technologies, July 23-27, (2007), Beijing (SACT 07, in conjunction with the IEEE COMPSAC 2007) [26] W3C, Extensible Markup Language (XML), http://www.w3.org/XML Trang 17