Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
8,17 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN NGÔ HUY BIÊN NGHIÊN CỨU ĐỀ XUẤT MẪU THIẾT KẾ CHO VIỆC PHÁT TRIỂN PHẦN MỀM TRONG MƠI TRƯỜNG ĐIỆN TỐN ĐÁM MÂY Chun ngành: Khoa học máy tính Mã số: 62.48.01.01 TĨM TẮT LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH Tp Hồ Chí Minh năm 2017 Cơng trình hồn thành tại: Trường Đại học Khoa học Tự Nhiên-HCM Người hướng dẫn khoa học: PGS TS Trần Đan Thư Phản biện 1: PGS.TS Quản Thành Thơ Phản biện 2: TS Phạm Văn Hậu Phản biện 3: TS Nguyễn An Tế Phản biện độc lập 1: PGS.TS Quản Thành Thơ Phản biện độc lập 2: PGS.TS Nguyễn Tấn Khôi Luận án bảo vệ trước Hội đồng chấm luận án cấp sở đào tạo họp trường Đại học Khoa học Tự Nhiên-HCM vào hồi ngày tháng năm Có thể tìm hiểu luận án thư viện: Thư viện Tổng hợp Quốc gia Tp.HCM Thư viện trường Đại học Khoa học Tự Nhiên-HCM Dẫn nhập Để thiết kế thành công hệ thống phần mềm, đặc biệt phần mềm doanh nghiệp, kiến trúc sư cần trang bị kiến thức lĩnh vực (domain knowledge), phương pháp thiết kế, kinh nghiệm thiết kế thực hóa phần mềm Mẫu thiết kế hướng tiếp cận hiệu cho việc nâng cao chất lượng rút ngắn thời gian thiết kế cách tái sử dụng tri trức kinh nghiệm thiết kế Về mặt kỹ thuật, mẫu thiết kế tài liệu mô tả vấn đề lặp lại thường xuyên thiết kế phần mềm hoàn cảnh đặc thù mơ hình tổng qt chứng minh giải pháp hiệu cho vấn đề đề cập Tính hiệu việc áp dụng mẫu thiết kế cho phần mềm truyền thống chứng thực qua thời gian Hiện nay, hầu hết doanh nghiệp tổ chức dựa hệ thống phần mềm để vận hành hoạt động kinh doanh quy trình nghiệp vụ phức tạp Việc di chuyển hệ thống từ mạng nội (on-premises software) lên môi trường đám mây điều tất yếu lợi ích to lớn việc giảm chi phí mở rộng vận hành hệ thống Ngồi ra, việc xây dựng phần mềm đám mây nhằm đáp ứng nhu cầu nghiệp vụ khác lựa chọn nhiều doanh nghiệp nhà cung cấp phần mềm dễ dàng việc phân phối sản phẩm đến người dùng cuối khả chia sẻ chi phí sở hữu vận hành người dùng với Tuy nhiên, việc thiết kế hệ thống phần mềm, đặc biệt ứng dụng môi trường đám mây thách thức lớn kiến trúc sư Nguyên nhân khác biệt lớn hệ thống phần mềm dành cho hàng ngàn công ty hàng trăm triệu người sử dụng với hệ thống phần mềm dùng vài trăm nhân viên mạng nội công ty hay phần mềm cài đặt máy người dùng Nhu cầu nghiên cứu phát mẫu thiết kế hỗ trợ phát triển hệ thống phần mềm môi trường đám mây, đặc biệt hệ thống phần mềm quản trị ngân hàng, thương mại điện tử, quản trị nhân lực, kết nối, trao đổi thông tin hay đồ trở nên ngày cấp thiết Các mẫu thiết kế giúp bảo đảm chất lượng nâng cao hiệu suất trình phát triển loại phần mềm môi trường đám mây Đã có đề xuất khởi đầu việc nghiên cứu tìm kiếm áp dụng mẫu thiết kế cho việc phát triển phần mềm môi trường đám Tuy nhiên, mẫu thiết kế cho loại phần mềm đặc thù mơi trường đám mây, ví dụ phần mềm doanh nghiệp, phần mềm đa người thuê, chưa phát tài liệu hóa đầy đủ Chi tiết kỹ thuật để xây dựng phần mềm đám mây chưa làm rõ Tiếp tục hướng nghiên cứu luận án nghiên cứu tìm hiểu đề xuất mẫu thiết kế hỗ trợ việc phát triển phần mềm môi trường đám mây Luận án tập trung vào phần mềm đa người thuê, chi tiết kỹ thuật tương đối độc lập giải pháp công nghệ nhà cung cấp dịch vụ đám mây đặc thù Đóng góp luận án bốn mẫu thiết kế nhằm giúp nhà phát triển phần mềm rút ngắn thời gian chi phí thực hóa hệ thống phần mềm môi trường đám mây, đặc biệt phần mềm đa người thuê Ngoài luận án cung cấp nghiên cứu tổng quan trạng mẫu thiết kế hỗ trợ phát triển phần mềm hệ thống điện toán đám mây Chương Mở đầu 1.1 Động nghiên cứu Mục đích luận án tìm hiểu vấn đề phát sinh phát triển phần mềm môi trường đám mây, đặc biệt phần mềm doanh nghiệp cung cấp dạng dịch vụ, đặc thù phần mềm doanh nghiệp đa người thuê; đề xuất giải pháp tổng quát cho vấn đề dạng mẫu thiết kế nhằm mục đích tái sử dụng, đảm bảo chất lượng nâng cao hiệu suất trình xây dựng phần mềm môi trường đám mây Các mẫu thiết kế tri thức tổng quát hóa, tùy biến cho phù hợp với hồn cảnh cụ thể Các mơ hình mẫu thiết kế đóng vai trị kiến trúc tham khảo giúp kiến trúc sư đưa định thiết kế phù hợp xây dựng phần mềm hệ thống điện toán đám mây Các mẫu thiết kế giúp việc xây dựng hay chuyển đổi hệ thống truyền thống lên đám mây đạt chất lượng cao với chi phí thấp hơn, giúp nhà phát triển tăng chất lượng, tiết kiệm thời gian, chi phí xây dựng, triển khai, tích hợp, bảo trì mở rộng phần mềm Đồng thời mẫu thiết kế giúp nhà nghiên cứu liên lạc, trao đổi thảo luận vấn đề phát sinh giải pháp xây dựng ứng dụng đám mây dễ dàng 1.2 Mục tiêu nghiên cứu Từ kết nghiên cứu trạng nhu cầu thực tế tổ chức liên quan luận án đặt mục tiêu phát hiện, tài liệu hóa bốn mẫu thiết kế hỗ trợ phát triển hệ thống doanh nghiệp, đặc biệt phần mềm đa người thuê môi trường đám mây; thử nghiệm rút học kinh nghiệm áp dụng mẫu thiết kế Về mặt nghiệp vụ, luận án tập trung vào mẫu thiết kế cho phần mềm doanh nghiệp Về mặt kỹ thuật, luận án tập trung vào mẫu thiết kế hỗ trợ phát triển hệ thống phần mềm tầng ứng dụng điện toán đám mây Luận án tập trung giải vấn đề kiến trúc tổng quan, tùy biến, tính mở rộng bảo mật hệ thống phần mềm đa người th Hỗ trợ mơ hình đa người th hệ thống phần mềm triển khai môi trường đám mây với mã nguồn sở liệu nhất, sử dụng chung nhiều tổ chức, giải vấn đề hệ thống phần mềm đa người thuê tận dụng dịch vụ điện tốn đám mây thực hóa mẫu thiết kế điểm đặc trưng mẫu thiết kế luận án đề xuất so với mẫu thiết kế truyền thống 1.3 Phương pháp nghiên cứu Luận án thực dựa vào phương pháp nghiên cứu trường hợp (case study research method) tùy biến cho lĩnh vực kỹ nghệ phần mềm Nguồn tri thức sở hay lý thuyết tảng luận án nghiên cứu thực mẫu thiết kế cho việc phát triển phần mềm môi trường đám mây Các vấn đề nghiên cứu, yêu cầu cụ thể câu hỏi nghiên cứu đến từ hệ thống phần mềm đám mây mà phát triển cho tổ chức doanh nghiệp Các hệ thống phần mềm mở thương mại với dự án mà phát triển cơng trình nghiên cứu khoa học thực đối tượng nghiên cứu luận án Kết nghiên cứu luận án mẫu thiết kế trả lời cho câu hỏi nghiên cứu Việc đánh giá mẫu thiết kế đề xuất thực dựa tình thực tế (cases) mà mẫu thiết kế giải Hai tiêu chí lựa chọn để đánh giá tính khả dụng (applicability) tính đắn (correctness) Tính khả dụng mẫu thiết kế đề xuất đánh giá thông qua việc áp dụng mẫu thiết kế vào hệ thống phần mềm thực tế rút học kinh nghiệm Tính đắn mẫu thiết kế đề xuất đánh giá cách kiểm thử hệ thống phần mềm dựa yêu cầu nghiệp vụ đề Ngồi việc đánh giá cịn thực cách phân tích hệ số đặc tính chất lượng khác (ví dụ tính dễ sử dụng, tính tái sử dụng, khả bảo trì, khả chỉnh sửa) dựa mẫu thiết kế truyền thống áp dụng hiệu chỉnh mở rộng mẫu thiết kế đề xuất cho môi trường đám mây Việc áp dụng hiệu chỉnh mở rộng mẫu thiết kế phổ biến kiểm chứng qua thời gian góp phần đảm bảo mẫu thiết kế đề xuất tuân theo nguyên lý thiết kế tổng quát Các mẫu thiết kế viết thành báo khoa học gửi đến hội nghị khoa học quốc tế để thu nhận ý kiến phản biện chuyên gia nhà nghiên cứu nước Các báo khoa học xuất tham chiếu cơng trình nghiên cứu khác Sự hợp lệ khái niệm, hợp lệ bên tin cậy kết nghiên cứu hỗ trợ cách áp dụng chiến lược đề xuất phương pháp nghiên cứu trường hợp 1.4 Đóng góp luận án Thông qua kết đạt được, luận án có đóng góp sau: • Mẫu thiết kế “Người th phân cấp”: hỗ trợ mơ hình hóa người thuê phân cấp, định danh, phân quyền việc truy cập tài nguyên hệ thống đa người thuê phân cấp • Mẫu thiết kế “Hệ thống giao dịch”: hỗ trợ mơ hình kiến thức lĩnh vực cách quán xử lý việc thực thi giao dịch cách bảo mật theo cung cách quán • Mẫu thiết kế “Khung ứng dụng web”: giúp kiến trúc sư nhà phát triển phần mềm đánh giá, lựa chọn xây dựng khung ứng dụng web với khả hỗ trợ đa người thuê, mở rộng mà không bị trùng lắp mã nguồn, tách biệt mối quan tâm, cho phép phát triển tái sử dụng mô đun với khả “cắm-chạy” thực thi • Mẫu thiết kế “Tùy biến giao diện”: hỗ trợ xây dựng tùy biến cho giao diện đồ họa người dùng phần mềm đa người thuê Ngoài luận án cung cấp báo cáo trạng nghiên cứu mẫu thiết kế mơi trường đám mây góp phần hỗ trợ nhà nghiên cứu người quan tâm có nhìn tổng quan thực nghiên cứu mẫu thiết kế mơi trường điện tốn đám mây Các kết đạt công bố xuất hội nghị nước quốc tế Ngoài mẫu thiết kế đề xuất triển khai vào sáu hệ thống đa người thuê thực tiễn với tổng số 3,500 khách hàng (người thuê) 350,000 người dùng 1.5 Nội dung luận án • Chương trình bày động cơ, mục tiêu, phương pháp nghiên cứu đóng góp luận án • Chương trình bày tổng quan tri thức tảng liên quan đến thiết kế phần mềm mẫu thiết kế • Chương trình bày chi tiết động cơ, câu hỏi nghiên cứu, công trình liên quan, giái pháp, đánh giá hướng phát triển mẫu thiết kế người thuê phân cấp • Chương trình bày chi tiết động cơ, câu hỏi nghiên cứu, cơng trình liên quan, giái pháp, đánh giá hướng phát triển mẫu thiết kế hệ thống giao dịch • Chương trình bày chi tiết động cơ, câu hỏi nghiên cứu, cơng trình liên quan, giái pháp, đánh giá hướng phát triển mẫu thiết kế khung ứng dụng web • Chương trình bày chi tiết động cơ, câu hỏi nghiên cứu, cơng trình liên quan, giái pháp, đánh giá hướng phát triển mẫu thiết kế tùy biến giao diện • Chương tổng kết kết nghiên cứu xác định hướng nghiên cứu mở rộng cho luận án Chương Mẫu thiết kế phần mềm 2.1 Thiết kế phần mềm Thiết kế đóng vai trị thiết yếu kỹ nghệ phần mềm hoạt động cầu nối hai giới: giới người với nhu cầu giới thực giới công nghệ với việc thỏa mãn nhu cầu thực tế phần mềm Thiết kế vừa hoạt động mang tính khoa học vửa hoạt động mang tính nghệ thuật sáng tạo Sản phẩm trình thiết kế phần mềm gồm hai loại Một thuật toán, cấu trúc liệu dành cho việc tính tốn Hai kiến trúc phần mềm Một phương pháp kích thích truyền cảm hứng cho sáng tạo việc thiết kế phần mềm áp dụng kinh nghiệm thu khứ hiệu chỉnh lại cho vấn đề Mẫu thiết kế nghiên cứu phương pháp 2.2 Mẫu thiết kế Tài liệu hóa tái sử dụng lại cách giải người khác cho vấn đề hoàn cảnh tương tự cho giải pháp áp dụng cho vấn đề hồn cảnh ý tưởng mẫu thiết kế Mẫu thiết kế chìa khóa để rút ngắn thời gian tăng chất lượng thiết kế cách tái sử dụng giải pháp có sẵn cho vấn đề lặp lại thường xuyên Kết hợp quan niệm mẫu cơng trình nghiên cứu thực đưa quan niệm mẫu thiết kế sử dụng luận án sau: Mẫu thiết kế tài liệu mô tả vấn đề giải pháp lĩnh vực thiết kế phần mềm Vấn đề bao gồm phần (i) hoàn cảnh, (ii) yêu cầu ràng buộc (iii) ví dụ cụ thể lặp lại thường xuyên vấn đề Giải pháp bao gồm phần (i) ý tưởng tổng quát giải pháp, (ii) mơ hình mơ tả, giải thích cho mơ hình để làm rõ nghĩa ý tưởng giải pháp (iii) ví dụ cụ thể trường hợp áp dụng thành công ý tưởng giải pháp để giải vấn đề hệ thống khác Mỗi mơ hình bao gồm phần (i) mơ tả hồn cảnh đưa đến mơ hình, ngun nhân đưa định mơ hình, (ii) thực hóa mơ hình, biến thể (iii) thảo luận thỏa hiệp áp dụng mơ hình 2.3 Mô tả biểu diễn mẫu thiết kế Một số nhà nghiên sử dụng khuôn mẫu (template) với thành phần cố định để mô tả mẫu thiết kế Phát triển ngơn ngữ hình thức để biểu diễn mẫu thiết kế cho phép phát triển công cụ hỗ trợ mẫu nghiên cứu Tuy nhiên, nhiều nhà nghiên cứu cho việc hình thức hóa vấn đề làm cho việc gắn kết mẫu thiết kế với vấn đề đặc thù khó vấn đề đặc thù thường phi hình thức Hình thức hóa giải pháp làm cho việc nắm bắt ý tưởng tổng quát mẫu khó khơng cho phép có biến thể 2.4 Mục đích mẫu thiết kế Mục đích cốt lõi mẫu tái sử dụng tri thức kinh nghiệm thiết kế Ngồi tính tái sử dụng mẫu cịn công cụ giúp chuyển giao tri thức kinh nghiệm thiết kế cách hiệu 2.5 Áp dụng mẫu thiết kế Kỹ nghệ phần mềm nói chung thiết kế phần mềm nói riêng hoạt động phụ thuộc nhiều vào sáng tạo khéo léo người Mẫu thiết kế áp dụng hướng tiếp cận độc lập cho việc thiết kế (pattern-based design) kết hợp với phương pháp thiết kế khác Phát triển công cụ hỗ trợ việc tự động hóa việc khai thác mẫu nhiều nhà nghiên cứu quan tâm 2.6 Phát tài liệu hóa mẫu thiết kế Cơng nghệ phương pháp phát triển phần mềm thay đổi liên tục theo ngày, vấn đề xuất ngày nhiều mẫu thiết kế có sẵn ln giới hạn Do vậy, thường xuyên có nhu cầu mẫu để giải vấn đề vừa nảy sinh Để đưa mẫu địi hỏi cần có đầu tư nghiên cứu mẫu vấn đề nảy sinh, sau tổng kết tài liệu hóa lại giải pháp Ngồi việc tìm kiếm mẫu mới, nhà nghiên cứu tập trung vào việc tái cấu trúc, hiệu chỉnh lại mẫu cũ cho phù hợp với Một số đóng góp cho việc phát tài liệu hóa mẫu thiết kế trình bày Phụ Lục A tồn văn luận án 2.7 Mẫu thiết kế hỗ trợ phát triển phần mềm môi trường đám mây Mẫu thiết kế nghiên cứu nhiều việc phát triển phần mềm truyền thống Tương tự, môi trường đám mây, mẫu thiết kế nhiều nhà nghiên cứu đề xuất hướng tiếp cận cho việc giải vấn đề nảy sinh phát triển phần mềm Tuy nhiên, lĩnh vực điện toán đám mây, tồn số đề xuất khởi đầu cho việc nghiên cứu mẫu thiết kế Các nghiên cứu tập trung phần lớn vào nhà cung cấp dịch vụ đám mây đặc thù, khía cạnh ứng dụng điện tốn đám mây, mơ hình triển khai tổng quát Khía cạnh phần mềm, đặc biệt phần mềm cung cấp dạng dịch vụ mô hình đa người thuê, chưa quan tâm đầy đủ Chi tiết số đóng góp cho việc nghiên cứu mẫu thiết kế hỗ trợ phát triển phần mềm mơi trường đám mây chúng tơi trình bày Phụ lục D toàn văn luận án 2.8 Đánh giá mẫu thiết kế Do đặc tính cố hữu việc thể mẫu thiết kế tài liệu với sơ đồ mô tả (dữ liệu định tính), việc đánh giá mẫu thiết kế dựa nghiên cứu trường hợp nhận xét định tính chuyên gia Bản thân tài liệu đặc tả mẫu thiết kế cần bao gồm mơ tả trường hợp thực tế sử dụng mẫu để giải vấn đề cách thành cơng Ba trường hợp đóng vai trò chứng để chứng minh cho tính khả dụng mẫu Sau tài liệu hóa ứng viên mẫu, mẫu thiết kế thường áp dụng vào trường hợp thực tế theo phương pháp nghiên cứu trường hợp để đánh giá số đặc tính chất lượng tính đắn, tính khả dụng Mẫu thiết kế tài liệu hóa sau gửi đến hội thảo nghiên cứu khoa học để nhận phản hồi đánh giá từ chuyên gia nhà nghiên cứu nhiều kinh nghiệm 2.9 Hạn chế mẫu thiết kế Việc tài liệu hóa mẫu thiết kế tiêu tốn nhiều thời gian Các mẫu thiết kế chưa phải giải pháp chuẩn hay tốt xây dựng hệ thống phần mềm Sự trừu tượng biểu diễn phi hình thức mẫu thiết kế làm cho việc thực hóa mẫu cơng nghệ đặc thù không hỗ trợ hỗ trợ chưa tốt số khái niệm mẫu trở nên khó khăn 2.10 Tóm tắt Chúng tơi vừa giới thiệu tổng quan mẫu thiết kế nhằm làm rõ hoàn cảnh, động phương pháp nghiên cứu luận án Trong chương chúng tơi trình bày đóng góp luận án Chương Mẫu thiết kế người thuê phân cấp 3.1 Động câu hỏi nghiên cứu Các hệ thống phần mềm đa người thuê cần quản lý người thuê liệu Thiết kế người thuê liệu công việc gặp nhiều thử thách, đặc biệt ứng dụng triển khai môi trường đám mây với mã nguồn sở liệu sử dụng chung nhiều khách hàng Vấn đề trở nên phức tạp đòi hỏi phân cấp người thuê phân cấp liệu Hai vấn đề cần giải quản lý người thuê liệu phân cấp (i) vấn đề mơ hình hóa người th liệu phân cấp (ii) vấn đề kiểm soát việc truy cập người thuê vào tài nguyên hệ thống Câu hỏi nghiên cứu 1: Làm để thiết kế hệ thống hỗ trợ người thuê tài nguyên phân cấp, cho phép định danh cách quán cho người dùng cá nhân lẫn người dùng người thuê, hỗ trợ phân quyền truy cập vào tài nguyên hệ thống theo vai trò, người dùng người th? 3.2 Cơng trình liên quan Vấn đề đề cập câu hỏi nghiên cứu liên quan đến nhiều khía cạnh phần mềm đa người thuê mơ hình khái niệm, việc chứng thực phân quyền, tốc độ, khả cấu hình hiệu chỉnh 3.3 Giải pháp 3.3.1 Tổng quan giải pháp Giải pháp mở rộng mẫu Composite nhằm hỗ trợ người thuê phân cấp mở rộng mẫu RoleBased Access Control nhằm hỗ trợ phân quyền theo người thuê Hình 3.4 thể tổng quan giải pháp mẫu thiết kế người thuê phân cấp Một tổ chức Organization chứa số người dùng User Một tổ chức phức hợp Composite Organiazation tổ chức chứa tổ chức đơn lẻ khác tổ chức phức hợp khác Mỗi người dùng hệ thống cung cấp thông tin ủy nhiệm để đăng nhập vào hệ thống Mỗi người dùng đảm nhiệm hay nhiều vai trị Role Một tài ngun Resourse thực thể hệ thống Một tài nguyên phức hợp Composite Resource tài nguyên chứa tài nguyên đơn lẻ khác tài nguyên phức hợp khác Hình 3.4 – Tổng quan mẫu thiết kế người thuê phân cấp Quyền hạn Privilege quyền truy cập vào tài nguyên hệ thống người dùng Quyền hạn thường mức độ truy cập hay hành động truy cập (ví dụ đọc Read, chỉnh sửa Edit, xóa Delete, vân vân) Việc kiểm soát truy cập người dùng thực đối tượng phân quyền Authorization Đối tượng phân quyền kết hợp người dùng User, vai trò Role, tổ chức Organization, tài nguyên Resource quyền hạn Privilege Sử dụng danh sách phân quyền, hệ thống định xem người dùng truy cập hay thực hành động tài nguyên hay khơng 3.3.2 Cấu trúc tĩnh Một mơ hình tiêu biểu cho cấu trúc tĩnh mẫu thiết kế người thuê phân cấp mô tả lược đồ UML hình 3.5 Role +RoleId : Guid +Name : String +Users : List Privilege AccessorType +None +Create +Delete +Read +FullControl * * +member * Organization 1 +decision +Resource : Resource +AccessorType : AccessorType +AccessorId : Guid +Previlege : Previlege +entity * Authorization +UserId : Guid +Username : Guid +Password : String +PrimaryOrganization : Organization +Organizations : List +Roles : List +OrganizationId : Guid +ThemeName : Guid +Name : String +Parent : Organization +privilege User * +container +User +Role +Organization +decision Resource +child * +ResourceId : Guid +Name : String +Parent : Resource +parent +child SingleOrganization CompositeOrganization +parent SingleResource +ChildOrganizations : List CompositeResource +ChildResources : List Hình 3.5 – Cấu trúc tĩnh mẫu thiết kế người thuê phân cấp 3.3.3 Cấu trúc động Hình 3.6 mơ tả quy trình xử lý việc truy cập vào tài nguyên hệ thống người dùng :Client :System :User :AuthorizationDAO :ResourceDAO GetResources(username, password) Create() user GetResources() GetOrganizationAuthorizationList(user) userOrganizationAuthorizationList GetRoleAuthorizationList(user) userRoleAuthorizationList GetUserAuthorizationList(user) userAuthorizationList GetResources(authorizationList) resourceList resourceList resourceList Hình 3.6 – Cấu trúc động mẫu thiết kế người thuê phân cấp 3.4 Đánh giá 3.4.1 Phân tích thảo luận Đối với câu hỏi nghiên cứu mẫu thiết kế người thuê phân cấp hỗ trợ người thuê phân cấp mẫu thiết kế Composite thông qua đối tượng Orgnization, SingleOrgnization CompositeOrgnization; hỗ trợ tài nguyên phân cấp mẫu thiết kế Composite thông qua đối tượng Resource, SingleResource CompositeResource; cho phép định danh cách quán cho người dùng cá nhân lẫn người dùng người thuê thông qua đối tượng User mối liên hệ đối tượng User Orgnization; hỗ trợ phân quyền truy cập vào tài nguyên hệ thống theo vai trò, người dùng người thuê thông qua đối tượng Authorization 3.4.2 Nghiên cứu trường hợp Mẫu thiết kế người thuê phân cấp áp dụng hệ thống phần mềm đa người thuê bao gồm hệ thống thư điện tử bảo mật, hệ thống quản lý dự án, hệ thống quản lý thông tin doanh nghiệp hệ thống quản lý trường học Hệ thống thư điện tử bảo mật hệ thống phần mềm cung cấp dịch vụ gửi thư điện tử với nội dung bảo mật đường truyền nơi lưu trữ cho cá nhân, công ty đại lý Hệ thống hoạt động tương tự thư điện tử truyền thống Điểm khác biệt với thư điện tử truyền thống nội dung thư điện tử mã hóa đường truyền nơi lưu trữ Các người thuê hệ thống phân thành nhiều cấp Một đại lý có nhiều cơng ty Một cơng ty có nhiều cơng ty Một cơng ty có nhiều cơng ty trực thuộc cấp Các liệu dịch vụ hệ thống thư điện tử, thư mục lưu trữ thư điện tử, tập tin đính kèm thư điện tử, vân vân Các liệu có phân cấp Một thư điện tử có nhiều thư điện tử trả lời Một thư mục có nhiều thư mục Một tập tin có nhiều phiên Hệ thống cung cấp nhiều dịch vụ khác gửi thư điện tử bảo mật, gửi thư điện tử bảo mật Outlook Add-in, sử dụng API để gửi thư điện tử bảo mật, xem báo cáo, quản lý công ty con, quản lý người dùng cơng ty, quản lý thơng tin cấu hình công ty, vân vân Mỗi dịch vụ cung cấp dạng mơ đun (Module) Các tính cấu hình mơ đun truy cập thơng qua trang web (Page) Mơ hình nghiệp vụ hệ thống thư điện tử bảo mật mô tả hình 3.7 Các đối tượng đại lý, cơng ty đại lý, người dùng đại lý dịch vụ đại lý lược bỏ để dễ quan sát thuộc Người quản trị hệ thống quản lý quản lý Công ty quản lý thiết lập cấu hình quản lý Người dùng cơng ty Người quản trị công ty truy cập quản lý quản lý quản lý Người quản trị đại lý truy cập Dịch vụ (Trang Mô đun) Người dùng cá nhân Hình 3.7 – Mơ hình nghiệp vụ hệ thống thư điện tử bảo mật Cách tiếp cận việc phân cấp thường áp dụng mẫu thiết kế Composite Tuy nhiên, hạn chế cách tiếp cận không hỗ trợ xử lý thẩm định đối tượng phân cấp hệ thống Mẫu người thuê phân cấp mở rộng mẫu Composite cách thêm đối tượng User để khắc phục hạn chế Cách tiếp cận việc phân quyền thường áp dụng mẫu thiết kế Role-Based Access Control Tuy nhiên, áp dụng cách tiếp cận vào hệ thống phần mềm đa người thuê mơ hình khơng thể phân biệt người dùng cá nhân với nhân viên tổ chức, nhân viên tổ chức với nhân viên tổ chức khác Mẫu người thuê phân cấp khắc phục hạn chế cách sử dụng đối tượng User, Role Organization cho phân quyền thay dùng đối tượng Role mẫu Role-Based Access Control Chương Mẫu thiết kế hệ thống giao dịch 4.1 Động câu hỏi nghiên cứu Tất phần mềm doanh nghiệp cần thực hóa giao dịch giới thực để tự động hóa quy trình nghiệp vụ Một vấn đề khó khăn gặp phải thiết kế hệ thống kiến thức lĩnh vực (domain knowledge) phức tạp Việc thực thi giao dịch cách bảo mật thực cách đặc thù (ad hoc) hệ thống Điều làm cho chi phí thời gian q trình xây dựng hệ thống xử lý giao dịch trở nên tốn Câu hỏi nghiên cứu 2: Làm để thiết kế kiến thức lĩnh vực hệ thống xử lý giao dịch cách quán, tách biệt kiến thức lĩnh vực khỏi công nghệ, đồng thời cho phép giao dịch thực thi cách bảo mật theo cung cách quán? 4.2 Cơng trình liên quan Bernstein Newcomer trình bày nguyên lý việc xử lý giao dịch Mark Grand đề xuất mẫu thiết kế liên quan với (ACID Transaction, Composite Transaction, Audit Trail Two Phase Commit) dành cho việc xử lý giao dịch Eric Evans đề xuất tập mẫu (đặc biệt mẫu Repository mẫu Factory) để xử lý vấn đề phức tạp kiến thức lĩnh vực Các mẫu thiết kế cho bảo mật nghiên cứu Yoder & Barcalow, Schumacher cộng sự, Kanneganti, Chodavarapu Fernandez 4.3 Giải pháp 4.3.1 Tổng quan giải pháp Để trả lời câu hỏi nghiên cứu trước tiên đề xuất kiến trúc dựa thành phần (component-based) cho hệ thống xử lý giao dịch bảo mật đám mây cách tổng hợp kiến trúc doanh nghiệp truyền thống kinh nghiệm từ dự án thực Kiến trúc cung cấp góc nhìn tổng quan thành phần hệ thống xử lý giao dịch chi tiết trình xử lý giao dịch Sau chúng tơi tập trung vào việc thiết kế thành phần kiến trúc đề xuất Đối với khía cạnh phức tạp kiến thức lĩnh vực, đề xuất hình thức biểu diễn kiến thức lĩnh vực cách quán đối tượng Factory, Repository, Persistence ServiceAdapter Giải pháp kết hợp, chi tiết hóa mở rộng mẫu Factory, Repository Data Access Object Để hỗ trợ giao dịch thực thi cách bảo mật, đề xuất quy trình quán bao gồm việc thẩm định, kiểm tra quyền truy cập thực thi sách bảo mật nghiệp vụ Sự quán giúp nhà phát triển hiểu giao dịch hệ thống cách dễ dàng tiết kiệm cơng sức thực hóa thay đổi thực thi giao dịch hệ thống 4.3.2 Kiến trúc hệ thống xử lý giao dịch Kiến trúc hệ thống xử lý giao dịch dựa thành phần thể Hình 4.1 Mục đích kiến trúc liệt kê thành phần hệ thống xử lý giao dịch doanh nghiệp tương tác thành phần Dựa ngữ cảnh kiến trúc mơ hình qn để thiết kế kiến thức lĩnh vực xử lý giao dịch bảo mật hệ thống đề xuất 11 Hình 4.1 – Kiến trúc hệ thống xử lý giao dịch dựa thành phần 4.3.3 Cấu trúc tĩnh Một cấu trúc tĩnh mẫu thiết kế hệ thống giao dịch thể UML hình 4.2 EntityFactory IEntityFactory +CreateNew(in name: string, in description: string, in counterpartName: string, in dependant1Name: string, in dependant2Name: string): Entity +CreateForUpdate(in entity: Entity, in newName: string, in newDescription: string, in newCounterpartName: string): Entity +PrepareForTransaction(in name: string, in description: string, in counterpartId: string, in dependant1Name: string, in dependant2Id: string): Entity Partner * +Id: string +Name: string +Entities: List * Dependant +Id: string +Name: string +Parent: Entity IDependantRepository +Create(in dependant : Dependant) : Dependant +Update(in dependant : Dependant) : Dependant +Delete(in Id : string) : int +Retrieve(in Id : string) : Dependant +List(in page: long, in pageSize: long) : List +DoTransaction(in dependant : Dependant) : Dependant * Entity +Id: string +Name: string +Description: string +Friend: Friend +Dependants: List +Partners: List IEntityRepository ICounterpartRepository +Create(in entity : Entity) : Entity +Update(in entity : Entity) : Entity +Delete(in Id : string) : int +Retrieve(in Id : string) : Entity +List(in page: long, in pageSize: long) : List +DoTransaction(in entity : Entity) : Entity IDependantPersistence +Create(in dependant : Dependant) : Dependant +Update(in dependant : Dependant) : Dependant +Delete(in Id : string) : int +Retrieve(in Id : string) : Dependant +List(in page: long, in pageSize: long) : List DependantPersistence TransactionRequestHandler CounterpartRepository IEntityPersistence +Create(in entity : Entity) : Entity +Update(in entity : Entity) : Entity +Delete(in Id : string) : int +Retrieve(in Id : string) : Entity +List(in page: long, in pageSize: long) : List EntityPersistence ICounterpartPersistence +Create(in counterpart : Counterpart) : Counterpart +Update(in counterpart : Counterpart) : Counterpart +Delete(in Id : string) : int +Retrieve(in Id : string) : Counterpart +List(in page: long, in pageSize: long) : List IServiceAdapter +Invoke(in input : string) : string TransactionClient +Create(in counterpart : Counterpart) : Counterpart +Update(in counterpart : Counterpart) : Counterpart +Delete(in Id : string) : int +Retrieve(in Id : string) : Counterpart +List(in page: long, in pageSize: long) : List +DoTransaction(in counterpart : Counterpart) : Counterpart EntityRepository +Id: string +Name: string +Entity: Entity DependantRepository Counterpart ServiceAdapter CounterpartPersistence SystemUtility Hình 4.2 – Cấu trúc tĩnh mẫu hệ thống giao dịch 12 4.3.4 Cấu trúc động Hình 4.3 mơ tả trình thực thi giao dịch bảo mật để đặt đơn hàng Order, đơn hàng đối tượng nghiệp vụ cụ thể Hình 4.3 – Cấu trúc động mẫu hệ thống giao dịch 4.4 Đánh giá 4.4.1 Phân tích thảo luận Đối với câu hỏi nghiên cứu mẫu thiết kế hệ thống giao dịch cung cấp phương pháp quán để thiết kế kiến thức lĩnh vực Sự quán đạt cách biểu diễn tất đối tượng nghiệp vụ hình thức Mẫu thiết kế hệ thống giao dịch hỗ trợ tách biệt kiến thức lĩnh vực khỏi công nghệ Điều thực cách bao bọc trách nhiệm truy xuất liệu vào đối tượng Persistence bao bọc kiến thức lĩnh vực vào đối tượng Repository Factory Mẫu thiết kế hệ thống giao dịch cho phép giao dịch thực thi cách bảo mật theo cung cách quán Sự quán đạt cách bao bọc công việc đăng nhập đối tượng UserRepository ServiceAdapter, bao bọc công việc phân quyền đối tượng AuthorizationRepository ServiceAdapter, bao bọc việc thực thi sách bảo mật đối tượng nghiệp vụ, ví dụ đối tượng OrderRepository Việc đối tượng mẫu thiết kế hệ thống giao dịch có giao diện (interface) riêng (Hình 4.2) đảm bảo nguyên lý mở đóng (The Open Closed Principle) Việc tách biệt trách nhiệm đối tượng nghiệp vụ thành đối tượng Entity, Factory, Repository, Persistence, Adapter đảm bảo nguyên lý trách nhiệm đơn lẻ (The Single-Responsibility Principle) thiết kế hướng đối tượng Do vậy, mẫu thiết kế hệ thống giao dịch giúp việc chỉnh sửa, mở rộng hệ thống dễ dàng 4.4.2 Nghiên cứu trường hợp Mẫu thiết kế hệ thống giao dịch áp dụng vào hệ thống phần mềm bao gồm hệ thống thư điện tử bảo mật, hệ thống trao đổi tập tin bảo mật cho ngân hàng, hệ thống tương tác quản trị dự án, hệ thống quản lý thông tin tài liệu doanh nghiệp, hệ thống quản lý trường học phổ thông hệ thống quản lý hạ tầng đập nước Hệ thống tương tác quản trị dự án phần mềm cung cấp dạng dịch vụ đa người thuê cho phép quản lý báo cáo thông tin tài nguyên dự án, cho phép thành viên dự án tương tác, liên lạc với qua không gian làm việc chung Đây hệ thống bao gồm nhiều đối tượng với mối 13 quan hệ phức tạp ví Customer, User, Role, Project, Project Template, To-Do List, To-Do, Milestone, File, Message, Comment, Time Log, Risk, vân vân Ngoài hệ thống cho phép thêm đối tượng nghiệp vụ tùy theo nhu cầu khách hàng đặc thù Ví dụ việc quản lý dự án xây dựng đòi hỏi phải thêm đối tượng nghiệp vụ đặc thù Supplier, Contractor, Order, Material, Expense, vân vân Một phần đối tượng nghiệp vụ mối liên hệ đối tượng thể hình 4.4 «enumeration» ProjectStatus +Active = +Paused = +Completed = +Cancel = Company FileCategory +CompanyId : uniqueidentifier +Name : string +ThemeName : string +UserAdded : User +DateAdded : DateTime +FileCategoryId : uniqueidentifier +Project : Project +Name : string +UserAdded : User +DateAdded : DateTime * * Project +ProjectId : uniqueidentifier +Creator : User +Name : string +Description : string +Status : ProjectStatus +Clients : IList +Participants : IList +Tasks : IList +Company : Company * * FilePackage +FilePackageId : uniqueidentifier +Project : Project +Name : string +Description : string +DateAdded : DateTime +UserAdded : User +Authorizations : IList Milestone * +MilestoneId : uniqueidentifier +Project : Project +Name : string +DueDate : DateTime +ResponsiblePerson : User +UserAdded : User +DateAdded : DateTime * 1 * 1* +ToDoListId : uniqueidentifier +Name : string +Project : Project +Description : string +Status : ToDoListStatus +Completion : double +UserAdded : User +DateAdded : DateTime +ToDos : IList * «enumeration» ToDoListStatus +Active = +Completed = +ToDoId : uniqueidentifier +Task : ToDoList +Name : string +Assignee : User +DateAssigned : DateTime +Status : ToDoStatus +MessageId : uniqueidentifier +Project : Project +Category : MessageCategory +DatePosted : DateTime +Subject : string +Body : string +Sender : User «enumeration» ToDoStatus +None +OnHold +Committed +Started +Completed +FileId : uniqueidentifier +ContainerId : uniqueidentifier +Name : string +Path : string +Mime : string +Size : long +Version : uint +DateAdded : DateTime +UserAdded : User * 1 MessageCategory * * ToDo File Message ToDoList +MessageCategoryId : uniqueidentifier +Name : string * Comment +CommentId : uniqueidentifier +Message : Message +DatePosted : DateTime +Subject : string +Body : string +Sender : User Authorization +AuthorizationId : uniqueidentifier +ResourceId : uniqueidentifier +AccessorId : uniqueidentifier +AccessorType : AccessorType +AuthorizationRights : AuthorizationRights «enumeration» AccessorType +Role +User «enumeration» AuthorizationRights +None = +Read = Hình 4.4 – Một số đối tượng hệ thống tương tác quản trị dự án Một cách tiếp cận để thiết kế hệ thống quản trị dự án mô tả sử dụng mẫu thiết kế Transaction Script Một cách tiếp cận khác sử dụng mẫu thiết kế Table Module Tuy nhiên, hai cách tiếp cận làm cho hệ thống trở nên phức tạp số lượng đối tượng nghiệp vụ mối liên hệ hệ thống tăng lên Một cách tiếp cận khác sử dụng trực tiếp đối tượng mơ hình 4.4 để thực tác vụ cần thiết thông qua mẫu thiết kế Domain Model Vấn đề hướng tiếp cận việc truy cập vào liệu đối tượng nghiệp vụ tích hợp vào thân đối tượng nghiệp vụ Điều làm phình to đối tượng nghiệp vụ phức tạp hệ thống tăng lên Một hướng tiếp cận khác áp dụng Domain-Driven Design thông qua mẫu thiết kế Repository Factory Tuy nhiên, hướng tiếp cận không tách biệt đối tượng nghiệp vụ khỏi công nghệ để lưu trữ truy xuất liệu Hướng tiếp cận không hỗ trợ xử lý giao dịch bảo mật cách quán 14 Mẫu thiết kế hệ thống giao dịch khắc phục hạn chế Việc áp dụng mẫu thiết kế hệ thống giao dịch cho thực thể hình 4.4 thể hình 4.5 toàn văn luận án 4.4.3 Bài học kinh nghiệm Qua nghiên cứu trường hợp áp dụng mẫu thiết kế hệ thống giao dịch tổng hợp ý kiến chuyên gia nhận thấy (i) thực thể có độ phức tạp thấp thực hóa cách áp dụng mẫu Transaction Script Table Module Active Record (ii) thực thể có độ phức tạp trung bình thực hóa cách mơ hình hệ thống dựa kiến thức lĩnh vực (iii) thực thể có có độ phức tạp trung bình cao thực hóa mẫu hệ thống giao dịch kết hợp mẫu hệ thống giao dịch hướng tiếp cận Các khái niệm độ phức tạp thấp, trung bình cao phụ thuộc vào số lượng thực thể liên quan đến thực thể cần thiết kế liệu, quy trình nghiệp vụ liên quan đến thực thể cần thiết kế Điều ngụ ý việc thiết kế tất thực thể hệ thống hướng tiếp cận điều bắt buộc Tuy nhiên, mẫu hệ thống giao dịch ln có tác dụng tách biệt kiến thức lĩnh vực khỏi công nghệ ứng dụng Các thực thể thiết kế theo mẫu hệ thống giao dịch thường nhóm lại thành tầng mơ hình nghiệp vụ hệ thống phân biệt với tầng công nghệ đặc thù Dưới số kinh nghiệm mặt kỹ thuật rút thực hóa mẫu thiết kế hệ thống giao dịch hệ thống thực tế: • Các điểm vào dịch vụ nghiệp vụ (hay phương thức đối tượng TransactionRequestHandler) thực hóa mu Faỗade cn cỏc dch v thụ (coarse-grain services) • Các đối tượng lưu trữ thiết kế cách sử dụng mẫu Data Access Object Table Data Gateway Row Data Gateway Data Mapper Tầng thực hóa việc lưu trữ nên tách biệt với tầng nghiệp vụ (hay tầng chứa thực thể) cách sử dụng đối tượng chuyển giao liệu (data transfer objects) • Việc ủy quyền truy cập cho thực thể (trách nhiệm đối tượng AuthorizationRepository) thực hóa mẫu Check Point và/hoặc mẫu RBAC và/hoặc mẫu ABACvà/hoặc mẫu đa người th phân cấp • Các tính chất ACID giao dịch đạt cách sử dụng tính ngơn ngữ hay tảng cơng nghệ (ví dụ thư viện System.Transactions NET Framework) mẫu Unit of Work sử dụng mẫu ACID Transaction • Cơ chế kiểm soát việc truy cập đồng thời hệ thống xử lý giao dịch thực hóa cách sử dụng mẫu Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock Implicit Lock 4.5 Kết luận hướng phát triển Trong phần đề xuất giải pháp để xây dựng hệ thống giao dịch bảo mật cách quán, đặc biệt phần mềm doanh nghiệp đám mây Trong tương lai mở rộng mẫu thiết kế để xử lý giao dịch tổng hợp đảm bảo việc tuân theo chuẩn dịch vụ mạng, phương pháp kiểm soát giao dịch đồng thời khôi phục cố giao dịch bị lỗi Các giao dịch môi trường đám mây thường tiếp nhận xử lý thông qua ứng dụng web Ứng dụng web thường xây dựng dựa khung ứng dụng web Trong phần tiếp theo, giới thiệu giải pháp để xây dựng khung ứng dụng web đa người thuê môi trường đám mây 15 Chương Mẫu thiết kế khung ứng dụng web 5.1 Động câu hỏi nghiên cứu Nhiều khung ứng dụng web phát triển nhằm giảm công sức, thời gian phát triển tăng chất lượng ứng dụng web Tuy nhiên, tồn tài liệu giải thích khung hoạt động nội nhằm hỗ trợ việc lựa chọn khung ứng dụng web phù hợp sử dụng khung ứng dụng web hiệu Đặc biệt chưa tồn tài liệu hỗ trợ việc hiệu chỉnh khung ứng dung web cho mục đích đặc thù hay xây dựng khung ứng dụng từ đầu lý khơng tương thích tích hợp với hệ thống cũ yêu cầu bảo mật lĩnh vực đặc thù Các phần mềm cung cấp dạng dịch vụ tảng cung cấp dạng dịch vụ trở nên hấp dẫn tổng chi phí sở hữu phần mềm giảm xuống cách áp dụng kiến trúc đa người thuê Ứng dụng web thành phần hệ thống đa người thuê Tuy nhiên, khung ứng dụng web chưa hỗ trợ đa người thuê Các nhà phát triển phải tùy biến khung ứng dụng web có sẵn xây dựng khung ứng dụng web hỗ trợ đa người thuê phương pháp đặc thù Câu hỏi nghiên cứu 3: Làm để thiết kế khung ứng dụng web đa người thuê cho phép mở rộng ứng dụng mà không bị trùng lắp mã nguồn, hỗ trợ tách biệt mối quan tâm ứng dụng, cho phép phát triển tái sử dụng mô đun với khả “cắm-chạy” thực thi? 5.2 Công trình liên quan Mẫu thiết kế chúng tơi đề cập chương liên quan đến nhiều lĩnh vực nghiên cứu bao gồm phát triển hệ thống web, mẫu thiết kế kiến trúc đa người thuê 5.3 Giải pháp 5.3.1 Tổng quan giải pháp Giải pháp mở rộng mẫu Model-View-Controller với mô đun “cắm-chạy” phân cấp, mở rộng mẫu Pipe and Filter để hỗ trợ mô đun “cắm-chạy”, mở rộng quy trình xử lý yêu cầu với đối tượng ngữ cảnh người thuê (TenantContext) chứa thông tin người th cho u cầu để hỗ trợ mơ hình đa người thê Hình 5.1 – Tổng quan mẫu thiết kế khung ứng dụng web Mẫu thiết kế sử dụng đối tượng ứng dụng (Application) để xử lý yêu cầu từ trình khách Bên đối tượng ứng dụng Application tạo phương thức mẫu (Template method) để xử lý yêu cầu 16 theo pha thư kiểm tra đầu vào, đăng nhập, kiểm tra quyền truy cập, xử lý nghiệp vụ, vân vân (Hình 5.1) Bên phương thức mẫu sử dụng lọc (Filter) để thực hóa mở rộng tác vụ đặc thù ứng dụng Mỗi yêu cầu xử lý kết hợp mẫu thiết kế Presentation-Abstraction-Control (nhằm hỗ trợ phân cấp) với mẫu thiết kế Model-View-Controller (nhằm hỗ trợ tách biệt mối quan tâm ứng dụng) với liên lạc theo mơ hình Request-Reply 5.3.2 Cấu trúc tĩnh Một sơ đồ lớp tiêu biểu ngôn ngữ UML mẫu thiết kế khung ứng dụng web thể hình 5.2 URI ModulePath UserId RequestParams URI Browser IPAddress HomePage Theme ThemeName LicenseStartDate LicenseEndDate CanManageApplicationSettings CanManageUsers CanManageRoles TenantContext ShoppingCart Username Roles ApplicationContext RequestContext SessionContext PermissionContext UserContext 1 1 ApplicationManager * CurrentController PreviousController PageContext * CustomActionView ActionView * +Render() Model 1 1 Application +ApplicationContext : ApplicationContext +RequestContext : RequestContext +SessionContext : SessionContext +UserContext : UserContext +Filters : List +Run() #Start() #BeginRequest() #AuthenticateRequest() #AuthorizeRequest() #HandleRequest() #EndRequest() #End() Client 1 CustomApplication /Public/Home/Index /Public/Product/Create /Public/Product/Display/10 /Admin/Account/Edit/20 * * Controller +ActionViews : List +Model : Model +Filters : List +ModuleControllers : List +Run() #BeginAction() #Action() #EndAction() #RunModules() CustomController +Index +Create +Display #HandleRequest() HomeController ProductController AccountController «interface» IFilter +Execute() : bool * * «implementation class» CustomFilter AuthenticationFilter AuthorizationFilter VersionFilter LicenseFilter ErrorFilter Hình 5.2 – Cấu trúc tĩnh mẫu thiết kế khung ứng dụng web Tất tài nguyên ứng dụng web sinh trang chủ Mô đun thành phần cắm-chạy quản lý vận hành bên trang chủ Cả trang chủ mô đun tạo thành từ nhiều đối tượng phân cấp mơ hình (model), hiển thị (view) người điều khiển (controller) Cấp độ gốc hay cao bao gồm đối tượng mơ hình trang, hiển thị trang người điều khiển trang Các cấp độ thấp bao gồm đối tượng mơ hình mơ đun, hiển thị mô đun người điều khiển mô đun Đây chìa khóa để tách biệt mối quan tâm ứng dụng 5.3.3 Cấu trúc động Chi tiết tương tác thành phần để xử lý u cầu từ trình khách mơ tả toàn văn luận án 17 5.4 Đánh giá 5.4.1 Phân tích thảo luận Đối với câu hỏi nghiên cứu mẫu thiết kế khung ứng dụng web hỗ trợ mơ hình đa người th đạt cách sử dụng đối tượng ngữ cảnh người thuê (Tenant Context) chứa thông tin người thuê cho yêu cầu; cho phép mở rộng ứng dụng mà không bị trùng lắp mã nguồn cách cho phép lập trình viên mở rộng hệ thống cách kế thừa từ đối tượng Application, Controller View tạo mô đun “cắm” vào q trình thực thi thơng qua giao diện IFilter; hỗ trợ tách biệt mối quan tâm ứng dụng cách tách biệt hiển thị (View) khỏi điều khiển (Controller) mơ hình (Model) mẫu MVC PAC; cho phép phát triển tái sử dụng mô đun với khả “cắm-chạy” thực thi cách áp dụng mẫu Pipes and Filter Việc áp dụng mẫu thiết kế Template Method cho phép mở rộng ứng dụng web cách kế thừa mà không cần thay đổi mã nguồn cũ; việc áp dụng mẫu Strategy hỗ trợ mô đun “cắm-chạy” lọc “cắm-chạy” đảm bảo nguyên lý mở đóng Việc mở rộng mẫu thiết kế MVC hỗ trợ tách biệt hiển thị khỏi điều khiển mơ hình đảm bảo nguyên lý trách nhiệm đơn lẻ thiết kế hướng đối tượng Nhờ đó, mẫu thiết kế khung ứng dụng web cho phép chỉnh sửa, mở rộng hệ thống dễ dàng 5.4.2 Nghiên cứu trường hợp Chúng áp dụng mẫu thiết kế khung ứng dụng web vào hệ thống phần mềm bao gồm hệ thống thư điện tử bảo mật, hệ thống trao đổi tập tin bảo mật cho ngân hàng, hệ thống tương tác quản trị dự án, hệ thống quản lý thông tin tài liệu doanh nghiệp hệ thống quản lý trường học phổ thông Hệ thống thư điện tử bảo mật hệ thống phần mềm cung cấp dịch vụ gửi thư điện tử với nội dung bảo mật đường truyền nơi lưu trữ cho cá nhân, công ty đại lý Một ứng dụng web đa người thuê cung cấp để người dùng tương tác với hệ thống Cách tiếp cận thông thường khung ứng dụng web sử dụng tính kế thừa mẫu thiết kế Template Method Hạn chế cách tiếp cận không tách biệt mối quan tâm ứng dụng (tách biệt hiển thị khỏi điều khiển mơ hình) Điều dẫn đến việc kiểm thử thành phần ứng dụng gặp khó khăn Cách tiếp cận việc tách biệt mối quan tâm khung ứng dụng web thực dựa vào mẫu thiết kế MVC biến thể mẫu thiết kế Hạn chế cách tiếp cận không phân rã tính hệ thống thành mơ đun phân cấp không hỗ trợ mô đun “cắm-chạy” Mẫu thiết kế khung ứng dụng web khắc phục hạn chế Đồng thời mẫu thiết kế khung ứng dụng web giải vấn đề hỗ trợ đa người thuê khung ứng dụng web mà hai cách tiếp cận chưa xử lý Áp dụng mẫu thiết kế khung ứng dụng web thực hóa tính cốt lõi thẩm định, phân quyền, lưu trữ liệu, phục hồi giao dịch mơ hình kiến thức lĩnh vực Chúng tơi thực hóa số lọc lọc phát yêu cầu không hợp lệ, lọc kiểm tra việc thông tin bảo mật người dùng cần nâng cấp Việc áp dụng mẫu khung ứng dụng web tảng ASP.NET cho hệ thống thư điện tử bảo mật thể hình 5.9 tồn văn luận án Để xây dựng ứng dụng web cho hệ thống thư điện tử bảo mật dựa khung thực công việc sau: • Phân rã tính đặc thù hệ thống thư điện tử bảo mật thành trang mơ đun phân cấp • Xác định mối liên hệ bao hàm trang mô đun • Xác định mối liên hệ bao hàm mơ đun cha mơ đun • Tạo lắp ráp trang mô đun sử dụng trang mơ đun có sẵn thực hóa khung ứng dụng 18 • Hiện thực hóa trang mơ đun tùy biến cho tác vụ ứng dụng đặc thù cách tạo lớp kế thừa từ lớp ứng dụng Application, lớp điều khiển Controller lớp hiển thị View • Hiện thực hóa lọc cho tác vụ đặc thù gắn gắn lọc vào trang mô đun thời điểm biên dịch vận hành 5.4.3 Bài học kinh nghiệm Từ trường hợp nghiên cứu tổng hợp ý kiến chuyên gia rút số kinh nghiệm áp dụng mẫu thiết kế khung ứng dụng web Một phiên đơn giản hóa mẫu thiết kế áp dụng để phát triển khung ứng dụng web đơn người thuê cách loại bỏ đối tượng ngữ cảnh người thuê giới hạn số lượng người thuê tổ chức Dưới số kinh nghiệm mặt kỹ thuật rút thực hóa mẫu thiết kế khung ứng dụng web hệ thống thực tế: • Để giảm phức tạp đối tượng ứng dụng đối tượng ngữ cảnh yêu cầu động điều phối đưa vào sử dụng Động gồm nhiều đối tượng chịu trách nhiệm nhận u cầu, phân tích tham số thơng tin yêu cầu, lựa chọn điều khiển tương ứng chuyển yêu cầu đến điều khiển lựa chọn • Việc đăng ký mơ đun (hay plug-ins) lọc tĩnh (đăng ký thời điểm biên dịch) động (đăng ký thời điểm vận hành) • Việc kích hoạt động phương thức hành động mẫu thực hóa cách sử dụng phản chiếu hành vi • Để giảm tải cho máy chủ tăng hành động đồng thời ứng dụng đối tượng giao diện đảm nhiệm chuyển kết giao dịch thành đối tượng mơ hình hiển thị (view model) trả cho trình khách (hay trình duyệt) Trình khách chịu trách nhiệm hiển thị mơ hình giao diện cách sử dụng mơ hình hiển thị (presentation model) 5.5 Kết luận hướng phát triển Trong phần đề xuất mẫu thiết kế để xây dựng khung ứng dụng web đa người thuê Mẫu thiết kế hiệu chỉnh cho hệ thống phần mềm khác nhau, đặc biệt hệ thống phần mềm môi trường hướng dịch vụ đám mây Trong tương lai bổ sung phương pháp xử lý giao dịch đồng thời khôi phục giao dịch gặp lỗi Chúng bổ sung giải pháp cho tính gọi lại (callback) xử lý kiện (event handling) đối tượng Giao diện đồ họa người dùng phần thiết yếu hệ thống phần mềm nói chung ứng dụng web nói riêng Việc tùy biến giao diện đồ họa người dùng cho người thuê yêu cầu phần mềm đa người thuê Trong phần tiếp theo, trình bày việc mở rộng mẫu thiết kế khung ứng dụng web đa người thuê để bổ sung khả hiệu chỉnh, tùy biến giao diện đồ họa người dùng 19 Chương Mẫu thiết kế tùy biến giao diện 6.1 Động câu hỏi nghiên cứu Giao diện đồ họa người dùng thành phần thiết yếu hầu hết hệ thống phần mềm Một vấn đề thường gặp phát triển phần mềm đa người thuê việc hỗ trợ giao diện đồ họa người dùng khác khơng cho tồn hệ thống mà cho người dùng người thuê Yêu cầu áp dụng cho ứng dụng có khả nhận biết hồn cảnh Trong ứng dụng giao diện phù hợp lựa chọn tùy thuộc vào hoàn cảnh người dùng Các yêu cầu tùy biến cho giao diện đồ họa người dùng hệ thống phần mềm phát sinh từ nguồn sau: (i) hỗ trợ trải nghiệm khác tính cho thiết bị hay người thuê hay người dùng hay hoàn cảnh khác nhau, (ii) hỗ trợ nội dung khác tính cho thiết bị hay người thuê hay người dùng hay hoàn cảnh khác nhau, (iii) hỗ trợ trải nghiệm nội dung khác tính cho cho thiết bị hay người thuê hay người dùng hay hoàn cảnh khác Việc tùy biến giao diện thường thực thông qua khung giao diện đồ họa người dùng Hiện tồn nghiên cứu mẫu thiết kế hỗ trợ đánh giá, sử dụng, hiệu chỉnh xây dựng khung giao diện đồ họa người dùng hỗ trợ tùy biến dành cho phần mềm nói chung phần mềm đa người thuê nói riêng Sự thiếu hụt mẫu thiết kế khiến nhà phát triển phải xây dựng khung giao diện đồ họa người dùng hỗ trợ tùy biến phương pháp thử sai Do làm gia tăng công sức thời gian xây dựng bảo trì hệ thống Câu hỏi nghiên cứu 4: Làm để thiết kế khung giao diện đồ họa người dùng đa người thuê với khả tùy biến theo toàn hệ thống theo người dùng theo người thuê, cho phép phát triển biến thể giao diện cách mơ đun hóa, hỗ trợ triển khai kích hoạt biến thể giao diện hệ thống thực thi? 6.2 Cơng trình liên quan Kết nghiên cứu trình bày chương liên quan đến nhiều lĩnh vực nghiên cứu bao gồm thiết kế thực hóa giao diện đồ họa người dùng, tùy biến phần mềm, mẫu thiết kế mơ hình đa người th 6.3 Giải pháp 6.3.1 Tổng quan giải pháp Giải pháp mở rộng mẫu MVC cách (i) phân rã giao diện hệ thống thành hiển thị cửa sổ hiển thị mô đun phân cấp, (ii) thêm đối tượng chủ đề giao diện Theme nhằm lưu trữ tập đối tượng hiển thị (View) cho biến thể giao diện Việc thay đổi giao diện hệ thống thực cách truyền hiển thị khác đến điều khiển (Controller) mẫu Strategy Đồng thời đối tượng TenanContext thêm vào để lưu trữ thông tin người thuê nhằm hỗ trợ lựa chọn giao diện phù hợp với người dùng người thuê (Hình 6.3) Thơng tin cho việc lựa chọn chủ đề giao diện lấy tham số đầu vào, thơng tin cấu hình quy ước Đối với phần mềm đa người thuê, thông tin chủ đề giao diện đồ họa người dùng lấy từ đối tượng ngữ cảnh người thuê Các biến thể hiển thị khác phong cách giao diện (màu sắc, phông chữ), số lượng hiển thị mô đun bên cửa sổ vị trí mô đun bên Về mặt kỹ thuật, biến thể hiển thị phát triển cách áp dụng mẫu thiết kế Decorator 20 Hình 6.3 – Tổng quan mẫu thiết kế tùy biến giao diện 6.3.2 Cấu trúc tĩnh Chi tiết thành phần tham gia vào mẫu tùy biến giao diện trình bày toàn văn luận án 6.3.3 Cấu trúc động Chi tiết tương tác thành phần để hiển thị giao diện cửa sổ hệ thống trình bày tồn văn luận án 6.4 Đánh giá 6.4.1 Phân tích thảo luận Đối với câu hỏi nghiên cứu mẫu thiết kế tùy biến giao diện hỗ trợ mơ hình đa người thuê môi trường đám mây, cho phép tùy biến giao diện theo toàn hệ thống theo người dùng theo người thuê cách thêm đối tượng TenantContext vào trình lựa chọn giao diện; cho phép phát triển biến thể giao diện cách mô đun hóa cách tách chủ đề thành hiển thị khác tách hiển thị thành hiển thị phân cấp sử dụng mẫu Composite, sau sử dụng mẫu Decorator để trang trí cho hiển thị; hỗ trợ triển khai kích hoạt biến thể giao diện hệ thống thực thi cách tạo tập tin hiển thị khác tiêm vào hệ thống thời điểm vận hành mẫu thiết kế Strategy Việc áp dụng mẫu Strategy hỗ trợ kích hoạt biến thể giao diện hệ thống thực thi đảm bảo nguyên lý mở đóng Việc mở rộng mẫu thiết kế MVC hỗ trợ tách biệt hiển thị khỏi điều khiển mơ hình phân loại hiển thị thành hiển thị cửa sổ, hiển thị mô đun hiển thị vùng đảm bảo nguyên lý trách nhiệm đơn lẻ thiết kế hướng đối tượng Nhờ đó, mẫu thiết kế tùy biến giao diện cho phép chỉnh sửa, mở rộng hệ thống dễ dàng 6.4.2 Nghiên cứu trường hợp Mẫu thiết kế tùy biến giao diện áp dụng hệ thống phần mềm bao gồm hệ thống thư điện tử bảo mật, hệ thống quản lý dự án, hệ thống quản lý thông tin doanh nghiệp hệ thống quản lý trường học Hệ thống thư điện tử bảo mật đa người thuê yêu cầu người dùng cơng ty có giao diện đồ họa người dùng khác truy cập vào hệ thống thông qua ứng dụng web Mỗi công ty có chủ đề giao diện riêng kế thừa chủ đề giao diện từ công ty cha Hiện tính tùy biến giao diện chưa đề cập nhiều tài liệu nghiên cứu Cách tiếp cận phổ biến ngành công nghiệp sử dụng tập tin khuôn mẫu (template) định nghĩa thành phần 21 hiển thị cho nhóm hình giao diện có cách đặt (ví dụ gồm phần Header, Content Foooter) thay đổi tập tin (ví dụ thay đổi kích thước, vị trí, phong cách Header, Content Foooter) cần tùy biến Cách tiếp cận giới hạn tùy biến phạm vi cửa sổ hiển thị (không hỗ trợ mô đun), không hỗ trợ phân cấp, khơng cho phép hiệu chỉnh cách trình bày liệu hiển thị không tách biệt mối quan tâm ứng dụng Một cách tiếp cận khác định nghĩa sẵn thuộc tính mô tả phong cách giao diện (màu sắc, phông chữ, vân vân) gán thuộc tính vào đối tượng giao diện cần tùy biến Hạn chế cách tiếp cận hỗ trợ thay đổi phong cách giao diện mà không cho phép tùy biến nội dung hiển thị hay thân tập tin hiển thị cần thiết Một cách tiếp cận khác sử dụng tập tin khuôn mẫu làm hiển thị trực tiếp kết hợp với tập tin định nghĩa thuộc tính mơ tả phong cách hiển thị Hạn chế cách tiếp cận không tách biệt mối quan tâm ứng dụng dẫn đến việc mở rộng bảo trì hệ thống tốn thời gian cơng sức Mẫu thiết kế tùy biến giao diện khắc phục hạn chế Việc áp dụng mẫu thiết kế tùy biến giao diện cho hệ thống thư điện tử bảo mật thể hình 6.8 tồn văn luận án Quy trình xây dựng chủ đề giao diện cho hệ thống thư điện tử bảo mật trình bày tồn văn luận án 6.4.3 Bài học kinh nghiệm Từ trường hợp nghiên cứu tổng hợp ý kiến chuyên gia rút số kinh nghiệm mặt kỹ thuật thực hóa mẫu thiết kế tùy biến giao diện hệ thống thực tế: • Một khung giao diện đồ họa người dùng cần định nghĩa chế để lưu trữ tập tin thông tin cho chủ đề giao diện Cách tiếp cận thông thường (i) sử dụng cấu trúc thư mục (hay quy ước tên tập tin) (ii) sử dụng liệu cấu hình (lưu trữ hệ quản trị liệu tập tin) (iii) kết hợp hai hướng • Các hiển thị định nghĩa cách sử dụng ngôn ngữ đánh dấu (markup language) kết hợp ngôn ngữ đánh dấu ngôn ngữ lập trình • Đối với ứng dụng web, nội hiển thị, vị trí phong cách giao diện tùy biến cho nhiều kích thước hình khác cách áp dụng nguyên tắc thiết kế phản hồi (responsive design) sử dụng truy vấn phương tiện (media query), phân chia kích thước theo phần trăm, vân vân 6.5 Kết luận hướng phát triển Trong phần đề xuất mẫu thiết kế hỗ trợ tùy biến giao diện đồ họa người dùng cho ứng dụng đám mây, đặc biệt phần mềm đa người thuê nhận biết ngữ cảnh Các công việc tương lai bao gồm việc chi tiết hóa làm để kết hợp mẫu thiết kế hỗ trợ tùy biến giao diện đồ họa người dùng với mẫu thiết kế hỗ trợ tùy biến xử lý quy trình nghiệp vụ mẫu thiết kế hỗ trợ tùy biến liệu; thực việc đánh giá chi phí, cơng sức tính dễ sử dụng mẫu thiết kế cách so sánh hệ thống xây dựng mẫu thiết kế đề xuất với hệ thống xây dựng cách tiếp cận khác phát triển hướng mô hình 22 Chương Kết luận 7.1 Các kết đạt Phát triển phần mềm môi trường đám mây, đặc biệt phần mềm đa người thuê xu hướng kỹ nghệ phần mềm đại Qua trình nghiên cứu thực cho luận án, đóng góp chúng tơi luận án bao gồm: • Mẫu thiết kế người thuê phân cấp (chương 3, [CT1]) giải vấn đề mô hình hóa người th phân cấp hệ thống đám mây; hỗ trợ định danh, phân quyền việc truy cập tài nguyên hệ thống Các nhà phát triển hiệu chỉnh lại giải pháp cho phù hợp với nhu cầu phân cấp khác ứng dụng cụ thể, tinh chỉnh lại cấu trúc tĩnh động để bổ sung thêm chế bảo mật đặc thù • Mẫu thiết kế hệ thống giao dịch (chương 4, [CT2]) giải vấn đề phức tạp kiến thức lĩnh vực hệ thống xử lý giao dịch; hỗ trợ mơ hình hóa kiến thức lĩnh vực cách quán; cho phép giao dịch thực thi cách bảo mật theo cung cách quán Các nhà phát triển tái sử dụng toàn giải pháp cho hệ thống xử lý giao dịch đám mây tinh chỉnh lại thành phần cho phù hợp với loại ứng dụng đặc thù • Mẫu thiết kế khung ứng dụng web (chương 5, [CT3]) giải vấn đề xây dựng khung ứng dụng web đa người thuê theo phương pháp đặc thù; cung cấp mơ hình giúp kiến trúc sư nhà phát triển xây dựng, đánh giá lựa chọn khung ứng dụng web đa người thuê Mơ hình hỗ trợ mở rộng ứng dụng cách kế thừa tổng hợp, tách biệt mối quan tâm ứng dụng, cho phép xây dựng mơ đun “cắm-chạy” tích hợp mơ đun vào hệ thống vận hành • Mẫu thiết kế tùy biến giao diện (chương 6, [CT4]) giải vấn đề xây dựng tính tùy biến cho giao diện đồ họa người dùng phần mềm đa người th theo phương pháp đặc thù; cung cấp mơ hình để phát triển, đánh giá lựa chọn khung giao diện đồ họa người dùng đa người thuê Mô hình cho phép xây dựng giao diện khác cách mơ đun hóa, hỗ trợ triển khai kích hoạt giao diện hệ thống vận hành Các nhà phát triển sử dụng tri thức mẫu thiết kế để lựa chọn khung giao diện đồ họa người dùng phù hợp với nhu cầu Ngồi cung cấp nghiên cứu tổng quan trạng mẫu thiết kế hỗ trợ phát triển phần mềm hệ thống điện toán đám mây [CT5] Tính đắn tính khả dụng mẫu thiết kế đề xuất kiểm tra nghiên cứu trường hợp Các mẫu thiết kế đề xuất áp dụng vào hệ thống đa người thuê thực tế đạt kết khả quan Chúng tơi hy vọng cơng trình luận án đóng góp phần kiến thức vào lĩnh vực mẫu thiết kế hỗ trợ phát triển phần mềm môi trường đám mây, tạo cảm hứng đặt thêm móng để nhà nghiên cứu khác tiếp tục nghiên cứu lĩnh vực 23 7.2 Hướng phát triển Bên cạnh kết đạt được, luận án nhiều vấn đề cần nghiên cứu mở rộng Để tiếp tục phát triển hướng nghiên cứu này, định hướng vào cơng việc sau: • Mở rộng mẫu thiết kế đề xuất theo hướng chi tiết mà thảo luận chương 3.5, 4.5, 5.5 6.5 • Thực việc đánh giá định lượng mẫu thiết kế đề xuất dựa vào thực hóa mẫu; • Khảo sát việc áp dụng mẫu thiết kế đề xuất ngành cơng nghiệp phần mềm; • Tiếp tục phát đề xuất mẫu thiết kế khác để giải vấn đề tồn đọng xây dựng phần mềm mơi trường đám mây; ví dụ vấn đề đăng nhập phân quyền cửa cho người thuê dựa vào chuẩn; vấn đề mở rộng, thu hẹp khả tải ứng dụng cho người thuê; vấn đề quản lý liệu lớn người thuê, vân vân; • Xây dựng ngôn ngữ mẫu cho việc phát triển phần mềm mơi trường đám mây; • Xây dựng khung ứng dụng chứa tập thực hóa mẫu thiết kế cho loại phần mềm đám mây đặc thù; • Tạo cơng cụ hỗ trợ sử dụng mẫu thiết kế cho việc phát triển phần mềm môi trường đám mây 24 Danh mục công trình tác giả [CT1] Ngo Huy Bien and Tran Dan Thu, "Hierarchical Multi-Tenant Pattern" in 2014 International Conference on Computing, Management and Telecommunications (ComManTel), Danang, Vietnam, 2014, pp 157-164 [CT2] Ngo Huy Bien and Tran Dan Thu, "Consistent and Secure Transaction System Pattern" in AsianPLoP 2014, Tokyo, Japan [CT3] Ngo Huy Bien and Tran Dan Thu, "Multi-Tenant Web Application Framework Architecture Pattern" in 2015 2nd National Foundation for Science and Technology Development Conference on Information and Computer Science (NICS), Ho Chi Minh, Vietnam, 2015, pp 40-48 [CT4] Ngo Huy Bien and Tran Dan Thu, "Graphical User Interface Variability Architecture Pattern" in SoICT 2015, Hue, Vietnam, 2015, pp 304-311 [CT5] Ngô Huy Biên Trần Đan Thư, "Mẫu Thiết Kế Cho Việc Phát Triển Phần Mềm Trong Môi Trường Đám Mây: Bản Khảo Sát Hiện Trạng", Kỷ yếu Hội thảo Quốc Gia 2015 Điện tử, Truyền thông Công nghệ thơng tin (EECIT 2015), Hồ Chí Minh, Việt Nam, 2015, tr 212-221 25 ... phát triển loại phần mềm môi trường đám mây Đã có đề xuất khởi đầu việc nghiên cứu tìm kiếm áp dụng mẫu thiết kế cho việc phát triển phần mềm môi trường đám Tuy nhiên, mẫu thiết kế cho loại phần. .. nghiên cứu tổng quan trạng mẫu thiết kế hỗ trợ phát triển phần mềm hệ thống điện toán đám mây [CT5] Tính đắn tính khả dụng mẫu thiết kế đề xuất kiểm tra nghiên cứu trường hợp Các mẫu thiết kế đề xuất. .. nghiên cứu nhiều việc phát triển phần mềm truyền thống Tương tự, môi trường đám mây, mẫu thiết kế nhiều nhà nghiên cứu đề xuất hướng tiếp cận cho việc giải vấn đề nảy sinh phát triển phần mềm Tuy