Bài viết khảo sát các công trình nghiên cứu về mẫu thiết kế để phát triển phần mềm doanh nghiệp trong môi trường đám mây, đặc biệt là phần mềm cung cấp như dịch vụ, đồng thời đi sâu vào các khó khăn khi phát triển ứng dụng đa người thuê. Đóng góp chính của bài báo này bao gồm lý do cần nghiên cứu mẫu thiết kế để phát triển phần mềm trong môi trường đám mây. Mời các bạn cùng tham khảo!
Thảo Quốc 2015vềvềĐiện ĐiệnTử, Tử,Truyền TruyềnThông Thông Công TinTin (ECIT 2015) HộiHội Thảo Quốc GiaGia 2015 CôngNghệ NghệThông Thông (ECIT 2015) 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 Ngô Huy Biên Trần Đan Thư Khoa Công Nghệ Thông Tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia thành phố Hồ Chí Minh, Việt Nam Email: nhbien@fit.hcmus.edu.vn, tdthu@fit.hcmus.edu.vn di chuyển ứng dụng truyền thống lên đám mây hay xây dựng hệ thống đám mây thách thức lớn nhà phát triển khác biệt lớn dịch vụ dành cho hàng trăm triệu người sử dụng với ứng dụng cài đặt máy người dùng hay ứng dụng dùng cho vài trăm người công ty Các nhà phát triển cần thiết kế ứng dụng để đáp ứng khả mở rộng, tính sẵn sàng cao lực xử lý thông minh người dùng kết nối Sự tương tác, kết hợp dịch vụ đám mây phức tạp tạo nên ảnh hưởng lẫn ứng dụng nhà phát triển cần xử lý chúng cách khéo léo Abstract— Điện toán đám mây hứa hẹn cách mạng công nghệ kinh doanh cách cung cấp khả tính tốn dịch vụ mơi trường Internet Hầu hết doanh nghiệp ngày dựa hệ thống công nghệ thông tin để vận hành hoạt động kinh doanh phức tạp Việc di chuyển hệ thống 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í xây dựng vận hành hệ thống Các nhà phát triển phát triển ứng dụng dịch vụ điện toán đám mây cách: phát triển ứng dụng dịch vụ tảng phát triển ứng dụng riêng gọi đến dịch vụ điện toán đám mây Dù phát triển ứng dụng đám mây cách thiết kế giai đoạn bỏ qua nhằm đánh giá tính đắn phương pháp giải vấn đề có tài liệu để bên liên quan liên lạc thống với Để thiết kế thành công hệ thống phần mềm đám mây phục vụ doanh nghiệp kiến trúc sư cần trang bị đầy đủ kiến thức kinh nghiệm Mẫu thiết kế phương tiện nhằm chuyển giao giải pháp cho vấn đề lặp lại nhiều lần tính hiệu mẫu thiết kế chứng thực qua thời gian Trong báo khảo sát cơng trình nghiên cứu mẫu thiết kế để phát triển phần mềm doanh nghiệp môi trường đám mây, đặc biệt phần mềm cung cấp dịch vụ, đồng thời sâu vào khó khăn phát triển ứng dụng đa người thuê Đóng góp báo bao gồm (i) lý cần nghiên cứu mẫu thiết kế để phát triển phần mềm môi trường đám mây, (ii) tổng kết trạng cách hệ thống kết nghiên cứu mẫu thiết kế cho ứng dụng môi trường đám mây (iii) câu hỏi nghiên cứu đề xuất cho vấn đề tồn đọng Chúng tơi hy vọng báo góp phần giúp nhà nghiên cứu kỹ nghệ phần mềm mơi trường đám mây có nhìn tổng quan từ xác định hướng nghiên cứu tốn cụ thể cho lĩnh vực dễ dàng Các mẫu thiết kế truyền thống sử dụng để phát triển ứng dụng đám mây, nhiên chúng chưa đủ để đáp ứng nhu cầu ứng dụng điện toán đám mây mà khối lượng xử lý trở nên khổng lồ, kết nối bị cắt đứt đột ngột, dịch vụ tương tác chồng chéo, phụ thuộc vào nhau, chờ đợi kết [56, 70], nhiều khách hàng có yêu cầu khác dùng chung ứng dụng Một ví dụ cụ thể kể đến chế xác thực phân quyền Các mẫu thiết kế Brokered Authentication, RoleBased Access Control [36] sử dụng để xác thực phân quyền cho ứng dụng đám mây Tuy nhiên với ứng dụng đám mây hỗ trợ đa người thuê, người thuê phân thành nhiều cấp khác cần có mẫu thiết kế để xây dựng hệ thống quản lý nhiều người thuê phân cấp đồng thời cung cấp chế xác thực đơn giản cho tất người thuê chế phân quyền linh hoạt mà đảm bảo bảo mật việc truy cập vào tài nguyên Việc chuyển đổi ứng dụng truyền thống lên đám mây khơng có nghĩa loại bỏ chúng, ứng dụng truyền thống tồn song song với ứng dụng đám mây, cần có mẫu thiết kế kết hợp xác thực phân quyền đám mây ứng dụng truyền thống, bảo mật cho người dùng nhiều môi trường qua lần xác thực nhằm giúp họ sử dụng dịch vụ dễ dàng Keywords — thiết kế phần mềm; mẫu thiết kế; điện toán đám mây; đa người thuê; tính biến thiên phần mềm Đ I GIỚI THIỆU iện toán đám mây hứa hẹn cách mạng công nghệ kinh doanh cách cung cấp khả tính tốn dịch vụ môi trường Internet Hầu hết doanh nghiệp ngày dựa hệ thống công nghệ thông tin để vận hành hoạt động kinh doanh phức tạp Việc di chuyển hệ thống 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í xây dựng vận hành hệ thống[18, 44, 60, 75] Một ví dụ khác dịch vụ trao đổi thơng điệp môi trường đám mây, dịch vụ email truyền thống không bảo vệ nội dung điện thư truyền mơi trường mạng, cần có mẫu thiết kế để giải vấn đề bảo mật nội dung liệu trao đổi dịch vụ Rất nhiều vấn đề cần giải xây dựng phần mềm mơi trường điện tốn đám mây làm để xây dựng mơ hình liệu cho phép thay đổi thực thi chương trình, để xử lý quy trình tính toán phức tạp Cho đến thời điểm phần lớn ứng dụng phần mềm dạng truyền thống (on-premise applications) Việc ISBN: 978-604-67-0635-9 212 212 Thảo Quốc 2015 ĐiệnTử, Tử,Truyền TruyềnThông Thông và Công TinTin (ECIT 2015) Hội Hội Thảo Quốc GiaGia 2015 vềvềĐiện CôngNghệ NghệThông Thơng (ECIT 2015) địi hỏi kết hợp nhiều dịch vụ, dịch vụ địi hỏi đầu vào khác trả kết bất tương thích với dịch vụ khác, để hệ thống có khả quay ngược quy trình xử lý tính hệ thống xây dựng cách kết hợp nhiều dịch vụ khác dịch vụ gọi bị lỗi kiếm cho việc xây dựng phần mềm đám mây; phần III giới thiệu vấn đề gặp phải thiết kế phần mềm cung cấp dịch vụ môi trường đám mây; phần IV tập trung vào khó khăn thiết kế phát triển ứng dụng đa người thuê; phần V thảo luận số cơng trình liên quan; cuối chúng tơi tổng kết lại trạng nghiên cứu đưa tầm nhìn tương lại Trong phần chúng tơi giới thiệu số vấn đề mở tồn đọng chủ đề nghiên cứu Đóng góp báo gồm (i) lý cần nghiên cứu mẫu thiết kế để phát triển phần mềm môi trường đám mây, (ii) tổng kết trạng nghiên cứu mẫu thiết kế cho ứng dụng môi trường đám mây (iii) số câu hỏi nghiên cứu đề xuất cho vấn đề tồn đọng Việc phát mẫu thiết kế để giải vấn nảy sinh phát triển hệ thống phần mềm môi trường đám mây, đặc biệt hệ thống 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 đồ dịch trở thành nhu cầu 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 phần mềm mơi trường đám mây Trong báo khảo sát vấn đề gặp phải thiết kế xây dựng phần mềm môi trường đám mây Sơ đồ khái niệm mô tả lĩnh vực mà đề cập mối liên hệ chúng II 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 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 Cũng vật khác, mẫu tồn vĩnh viễn Có mẫu trở nên lỗi thời vấn đề cần giải khơng cịn xuất xuất giải pháp thay khác tốt hơn, công nghệ phát triển làm cho vấn đề tự giải áp dụng công nghệ Khi mẫu lỗi thời khơng nên ứng dụng Để nhận biết mẫu lỗi thời, cập nhập lại mẫu cho hợp thời địi hỏi nghiên cứu lại mẫu cũ hoàn cảnh Do ngồi việc tìm kiếm mẫu ngơn ngữ mẫu mới, nhà nghiên cứu tập trung vào việc tái cấu trúc, sửa chữa, điều chỉnh, mô tả lại mẫu cũ cho phù hợp với Hình Sơ đồ khái niệm lĩnh vực nghiên cứu Sơ đồ thể mẫu phần mềm lĩnh vực kỹ nghệ phần mềm, mẫu thiết kế lĩnh vực mẫu phần mềm Điện toán đám mây lĩnh vực nghiên cứu riêng biệt, phần giao điện toán đám mây kỹ nghệ phần mềm kỹ nghệ phần mềm mơi trường đám mây (bao gồm quy trình, chuẩn hóa, mơ hình phát triển, ứng dụng, vân vân) Việc nghiên cứu để phát hiện, tài liệu hóa áp dụng mẫu thực liên tục với hàng loạt thành tựu 23 mẫu thiết kế nhóm người với mẫu Abstract Factory, Facade, Composite, Template, Strategy [43] áp dụng rộng rãi hệ thống hướng đối tượng; hay mẫu MVC, Layer, Interceptor nhóm người [16] tích hợp vào hầu hết hệ thống khung tại; hay mẫu Data Acess Object, Transfer Object, Business Object, Domain Model, Active Record [5, 40] ứng dụng rộng rãi hầu hết phần mềm doanh nghiệp nay; hay mẫu RoleBased Access Control [36] áp dụng để quản lý phân quyền tất hệ thống Ứng dụng đám mây lĩnh vực điện toán đám mây, ứng dụng đám mây tập trung ba loại ứng dụng quản lý hạ tầng cung cấp dạng dịch vụ, ứng dụng cung cấp tảng dạng dịch vụ ứng dụng nghiệp vụ cung cấp dịch vụ Sự giao mẫu thiết kế ứng dụng đám mây mẫu thiết kế cho ứng dụng đám mây, lĩnh vực nghiên cứu mà báo đề cập miền giao Ứng dụng đa người thuê lĩnh vực nghiên cứu ứng dụng đám mây Sự giao mẫu thiết kế ứng dụng đa người thuê mẫu thiết kế cho ứng dụng đa người thuê, lĩnh vực mẫu thiết kế cho ứng dụng đám mây lĩnh vực mà báo tập trung đề cập nhiều Các nghiên cứu lý thuyết mẫu thực chi tiết [15, 24, 71] Ngồi nhà nghiên cứu cịn đề xuất nhiều mẫu dành riêng cho ngôn ngữ hay hệ thống đặc thù [9, 20 - 23]; tác vụ trình phát triển phần mềm phân tích [39], thiết kế nghiệp vụ [31], kiểm thử đơn vị [64], tích hợp [50], quản lý tài nguyên [53], bảo mật hệ thống [37], quản lý cấu hình [11]; phần mềm đặc thù trang mạng [45], hệ quản trị nội dung [72], hệ thống phân tán [27], phần Phần báo cấu trúc sau: phần II giới thiệu số thành tựu việc nghiên cứu mẫu thiết kế, mục đích giới thiệu lĩnh vực công nghệ phần mềm mà nhà nghiên cứu tập trung tìm kiếm mẫu thiết kế, từ cho thấy mẫu thiết kế cần tiếp tục tìm 213 213 Thảo Quốc Gia 2015vềvềĐiện ĐiệnTử, Tử,Truyền TruyềnThông Thông TinTin (ECIT 2015) HộiHội Thảo Quốc Gia 2015 Công CôngNghệ NghệThông Thông (ECIT 2015) mềm hướng dịch vụ [10, 30] Các kinh nghiệm ứng dụng mẫu cách không đắn nghiên cứu tài liệu hóa lại [13, 28, 58, 79] nghiệp cần ứng dụng vận hành đám mây Thiết kế ứng dụng vấn đề thiết yếu cần giải Xây dựng phần mềm hệ thống (IaaS) tảng (PaaS) cho đám mây trình phức tạp Tuy nhiên sống thay đổi, lĩnh vực xuất ngày nhiều, xây dựng phần mềm lĩnh vực địi hỏi mẫu thiết kế Vấn đề mở việc phát hiện, tài liệu hóa mẫu ngơn ngữ mẫu chuyên biệt cho công nghệ miền ứng dụng đặc thù, ví dụ hệ thống nhúng phân tán theo thời gian thực, tương tác nhóm, phát triển phần mềm hướng mơ hình, phát triển phần mềm hướng khía cạnh, đặc biệt tính tốn dịch vụ điện toán đám mây III Các phần mềm hệ thống cho đám mây cần quản lý máy chủ vật lý, máy ảo, hệ thống lưu trữ vật lý, quản lý thông điệp giao tiếp, cân tải, chống lỗi, theo dõi mức độ sử dụng tài nguyên, hiệu suất hệ thống, cung cấp giao diện người dùng giao diện lập trình ứng dụng [75] Các phần mềm tảng đám mây cần quản lý quản lý ứng dụng, cung cấp môi trường, ngôn ngữ thư viện để phát triển ứng dụng, cung cấp phương pháp lưu trữ cho ứng dụng, vận hành theo dõi ứng dụng MẪU THIẾT KẾ CHO ỨNG DỤNG ĐÁM MÂY Trong [48] tác giả giới thiệu hai mẫu thiết kế để xây dựng hệ thống IaaS PaaS Mẫu Cloud Infrastructure đưa mối quan hệ tĩnh động người thuê với hệ thống điều khiển, máy ảo, máy chủ, tài nguyên với mục đích hỗ trợ việc xây dựng hệ thống IaaS Mẫu Platform-as-a-Service đưa mối quan hệ tĩnh động người dùng với bên cung cấp tảng thành phần thiết yếu hệ thống PaaS nhằm mục đích hỗ trợ xây dựng hệ thống PaaS Tuy nhiên hai mẫu thiết kế cung cấp kiến trúc mức độ tổng quan mà khơng đưa hướng dẫn, phân tích chi tiết việc thực hóa chúng Ngành điện toán ngày trải qua hệ mẫu tính tốn từ điện tốn máy trạm đến điện toán cá nhân, đến điện toán mạng, đến điện toán internet, đến điện toán lưới giai đoạn điện toán đám mây [42] Điện toán đám mây lĩnh vực liên quan chặt chẽ với kỹ nghệ phần mềm Việc nghiên cứu mẫu thiết kế để phát triển phần mềm môi trường điện toán đám mây tập trung vào mẫu thiết kế cho loại phần mềm chính: phần mềm hạ tầng, phần mềm tảng phần mềm cung cấp dịch vụ [17, 42, 61, 77] Một yêu cầu phần mềm hạ tầng khả hợp hệ thống đám mây cần mẫu thiết kế chuẩn để thực yêu cầu Cả loại phần mềm cần sử dụng mẫu thiết kế lưu trữ xử lý liệu lớn, bảo mật mở rộng hệ thống Cả loại phần mềm có nhu cầu tích hợp hệ thống với Việc tích hợp thường thực dựa mẫu thiết kế cho hệ thống tảng trung gian (middleware) hay hệ thống mạch kết nối dịch vụ (enterprise service bus) áp dụng chuẩn chung Đặc biệt loại phần mềm xây dựng mơ hình đa người th Việc xây dựng hệ thống đa người thuê đòi hỏi mẫu thiết kế kiến trúc cho lĩnh vực đặc thù khả xử lý tính biến thiên Hình mơ tả hướng nghiên cứu chúng tơi vừa đề cập Chi tiết cho hướng trình bày phần Vấn đề chưa giải lĩnh vực mẫu thiết kế cho phần mềm hệ thống tảng đám mây phân tích để tìm điểm chưa hồn thiện mơ hình nghiệp vụ phần mềm áp dụng vào hoàn cảnh thực tế; đưa dẫn cụ thể để xây dựng, thực hóa loại phần mềm dạng này; so sánh, đánh giá phần mềm hệ thống phần mềm tảng khác B Mẫu thiết kế cho việc hợp hệ thống đám mây Các đám mây tập trung rải rác số nhà cung cấp lớn Amazon, Google, Microsoft, IBM Rackspace [19] dự đoán tương lai đám mây hợp với để tận dụng nguồn cung cấp dịch vụ nhằm giảm chi phí mở rộng mở rộng khả Các tác giả đưa kịch hợp tài nguyên ảo chia đám mây cung cấp cho người dùng cách liền mạch Các tác giả đề xuất kiến trúc, kỹ thuật công nghệ cần thiết để xây dựng thành phần Đây ý tưởng hấp dẫn, nhiên việc thực hóa đánh giá kiến trúc chưa thực C Mẫu thiết kế lưu trữ truy xuất liệu ứng dụng đám mây Các phần mềm môi trường đám mây cần lưu trữ xử lý khối lượng liệu lớn nhiều khơng có giới hạn Đây đặc điểm đặc thù phần mềm môi trường đám mây nhằm tận dụng khả lưu trữ xử lý không giới hạn đám mây Trong đám mây hầu hết liệu lưu trữ không theo kiểu quan hệ dẫn đến việc lập trình ứng dụng đám mây thay đổi theo Hình – Phát triển phần mềm môi trường đám mây A Mẫu thiết kế cho phần mềm hệ thống tảng đám mây Nhiều doanh nghiệp hay phủ lý bảo mật nhu cầu tích hợp với ứng dụng truyền thống minh, có nhu cầu tồn quyền quản lý ứng dụng hạ tầng cần có đám mây riêng Để xây dựng đám mây riêng doanh Các hệ thống đám mây thường cung cấp hai dịch vụ cho việc lưu trữ truy xuất liệu ứng dụng, đặc biệt khả hỗ trợ ứng dụng làm việc với khối lượng liệu lớn: 214 214 Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) HộiHội Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) Các nhà phát triển gặp nhiều khó khăn việc tích hợp ứng dụng với ứng dụng tảng khác, đặc biệt ứng dụng truyền thống nội doanh nghiệp Trong [32] tác giả giới thiệu mẫu thiết kế “Cloud Component Gateway” giúp ứng dụng tương tác với cách ứng dụng môi trường đám mây tạo giao diện dùng chúng tương tác với ứng dụng truyền thống Các chuyển yêu cầu đến thành phần bên ứng dụng đám mây Tập Tập tin (file) hệ thống để lưu trữ liệu Google File System [44], Hadoop Distributed File System [76] Cơ chế để truy xuất liệu MapReduce [26], Map-Reduce-Merge [86] Một số mẫu thiết kế để truy xuất xử lý liệu lớn repartition join, semi-joins, secondary sort, reservoir sampling, vân vân giới thiệu [51] Tuy nhiên cách xử lý thường áp dụng cho xử lý song song cho kết không theo thời gian thực hệ thống đám mây thường phải tương tác với người dùng theo thời gian thực Việc đưa mẫu thiết kế để giải việc xử lý liệu lớn cho kết gần theo thời gian thực vấn đề cần giải Một vấn đề khác tích hợp ứng dụng khả đảm bảo tính tin cậy tồn vẹn cho quy trình nghiệp vụ, quy trình nghiệp vụ gọi quy trình từ ứng dụng khác Mặc dù có chuẩn để hỗ trợ tin cậy tích hợp dịch vụ WS-Coordination, WSAtomicTransaction WS-BusinessActivity [83] việc thực hóa chuẩn thành hệ thống tảng trung gian để giảm thời gian chi phí cho nhà phát triển việc thực hóa nghiệp vụ doanh nghiệp mơi trường đám mây chưa thực Do cần tìm kiếm mẫu thiết kế để tích hợp ứng dụng theo chuẩn, ví dụ mẫu thiết kế cho chuẩn quản lý giao dịch ứng dụng đám mây nhằm đạt độ tin cậy kết toàn vẹn liệu Các ứng dụng đám mây thường tương tác trao đổi khối lượng lớn liệu với Làm để việc trao đổi tiến hành nhanh chóng với độ tin cậy cao, lỗi xảy nằm kiểm sốt, thơng tin khơng bị hỏng hay dư thừa trình trao đổi vấn đề cần giải Ngồi ứng dụng trình khách thường hạn chế khả lưu trữ tính toán nên việc thiết kế hệ thống cho vừa tận dụng khả lưu trữ cục vừa tận dụng khả lưu trữ không giới hạn đám mây vấn đề cần giải E Mẫu thiết kế cho việc bảo mật ứng dụng Mối quan tâm lớn doanh nghiệp đưa ứng dụng lên đám mây khả bảo mật thông tin môi trường đám mây hệ thống mở với người dùng cuối thông qua giao diện người dùng web hay dịch vụ web Ngoài bảo mật cho ứng dụng mơi trường đám mây thường địi hỏi tuân theo chuẩn nhằm hỗ trợ cho việc tích hợp dịch vụ đám mây Nếu dịch vụ đám mây dịch vụ đa người thuê, bảo mật cho ứng dụng cần đảm bảo cách ly người thuê khác D Mẫu thiết kế cho việc tích hợp ứng dụng cung cấp dịch vụ Mỗi ứng dụng, đặc biệt ứng dụng doanh nghiệp ln thực hóa số quy trình nghiệp vụ đặc thù Các quy trình thường tích hợp với để thực quy trình lớn Việc tích hợp thực hệ thống cách sử dụng ngơn ngữ thực thi quy trình Web Services Business Process Execution Language (BPEL) [83] động xử lý ngơn ngữ thực thi quy trình [55] Việc tích hợp thực hệ thống khác nhau, cụ thể hệ thống cung cấp dạng dịch vụ trong môi trường đám mây Sự tích hợp hệ thống khác đảm bảo việc tận dụng tối đa việc tái sử dụng khả hệ thống Việc tích hợp hệ thống thực nhiều mức độ khác cách sử dụng dịch vụ mạng (web service) hay mashups [75] hay ngơn ngữ thực thi quy trình với hệ thống trung gian Hầu hết ứng dụng sử dụng chế chứng thực đơn giản dễ bị công dạng công nghe trộm mô Dịch vụ mạng công nghệ sử dụng phổ biến Để đảm bảo bảo mật cho dịch vụ web đồng thời giúp dịch vụ web tương tác với nhau, nhiều chuẩn phát triển áp dụng Chuẩn WS-Policy mô tả văn phạm để biểu diễn sách khác dịch vụ web kết hợp chúng WS-Policy tảng để mô tả chuẩn khác Chuẩn WS-Security sử dụng mơ hình bảo mật có sẵn Kerberos [68] X509 Chuẩn đặc tả cách sử dụng mơ hình cho dịch vụ web tương tác đồng với Ở góc độ thiết kế việc tích hợp ứng dụng khác thực dựa vào mẫu thiết kế tích hợp dạng truyền tải thông điệp Message Bus [50] Tuy nhiên mẫu thiết kế tổng quát chưa giải cụ thể yêu cầu đặc thù đám mây đồng hóa liệu ứng dụng di dộng nhiều nơi lưu trữ đám mây, đảm bảo tính tồn vẹn liệu di chuyển đám mây, khả tích hợp khối lượng liệu cự kỳ lớn Trong [62] tác giả đề xuất số mẫu thiết kế đồng hóa liệu cho ứng dụng di động Full Transfer, Timestamp Transfer, Mathematical Transfer Bảo mật xây dựng mối quan hệ tin cậy định nghĩa trước Kerberos bảo mật thành viên tham gia tin tưởng vào trung tâm phân phối khóa (Kerberos Key Distribution Center) Public Key Infrastructure (PKI) [1] bảo mật thành viên tin tưởng vào nhà cấp chứng gốc (Root Certificate Authorities) Chuẩn WS-Trust đưa mơ hình mở rộng để thiết lập kiểm tra mối quan hệ tin cậy dịch vụ web Chuẩn WS-Federation cho phép nhóm tổ chức thiết lập vùng bảo mật ảo Chuẩn WS-SecureConversation xây dựng chuẩn WS-Security, WS-Trust, WS-Policy nhằm cung cấp tương tác trao đổi liệu bảo mật cho dịch vụ web [83] XML Signature bảo vệ phần tài liệu XML khỏi chỉnh sửa trái phép cách sử dụng chữ ký Một khó khăn tích hợp ứng dụng giải vấn đề khơng tương thích, trùng lắp liệu chức ứng dụng Hiện tảng đám mây tập trung rải rác nhiều nhà cung cấp tổ chức khác 215 215 Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) HộiHội Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thơng Tin (ECIT 2015) điện tử Thuật tốn cho chữ ký sử dụng hệ thống bảo mật đối xứng (Triple DES AES) bất đối xứng RSA DSA XML Encryption mã hóa phần tài liệu XML thuê khác, đặc biệt hệ thống vận hành Do để xây dựng hệ thống đa người thuê đáp ứng tốt khả mở rộng nhà thiết kế cần đưa mẫu thiết kế quản lý trạng thái ứng dụng ứng dụng triển khai nhiều cụm máy chủ, mẫu thiết kế theo dõi quản lý việc tăng giảm tài nguyên người thuê hệ thống vận hành Các chuẩn bảo mật cho dịch vụ web thường phức tạp dài dòng gây khó khăn cho kiến trúc sư hay nhà phát triển việc áp dụng kiểm tra chúng Trong [2, 3] tác giả mô tả lại chuẩn dạng mẫu nhằm giúp nhà phát triển hiểu chuẩn cách dễ dàng đồng thời cung cấp khả so sánh kiểm tra xem ứng dụng có đáp ứng chuẩn bảo mật khơng G Mẫu thiết kế cho ứng dụng cung cấp dịch vụ Phần mềm cung cấp dịch vụ mơ hình dịch vụ khả hệ thống cung cấp đến người dùng việc sử dụng trực tiếp ứng dụng nhà cung cấp môi trường đám mây [63] Đăng nhập chứng thực lần nhu cầu thiết yếu sử dụng dịch vụ Chuẩn Security Assertion Markup Language (SAML) đưa tổ chức OASIS giải vấn đề [25] Giao thức OAuth 2.0 [47] giao thức phân quyền mở chuẩn hóa cho phép người dùng cấp quyền cho ứng dụng bên thứ ba truy cập có giới hạn vào tài nguyên nơi lưu trữ Giao thức cho phép cấp quyền mà không chia sẻ thông tin bảo mật lâu dài mật đồng thời cho phép người dùng hủy việc cấp phép cần thiết OAuth 2.0 sử dụng cho việc đăng nhập lần Phần mềm cung cấp dịch vụ xuất từ ngày đầu internet Một số nhà cung cấp ứng dụng dịch vụ (Application Service Provider – ASP) đóng gói sản phẩm mình, cài đặt trung tâm liệu cho phép người dùng truy cập chúng thông qua internet Tuy nhiên sóng ASP thất bại sở hạ tầng cho đường truyền internet chưa đáp ứng nhu cầu người dùng băng thông, người dùng phải sử dụng phương pháp truy cập bàn điều khiển từ xa (remote desktop) để thao tác với ứng dụng giá thành không rẻ nhiều so với ứng dụng truyền thống Các vấn đề chưa giải lĩnh vực thể toàn chuẩn dạng mẫu thiết kế nhằm giúp nhà phát triển dễ dàng áp dụng chúng hệ thống thực hóa chúng cách đắn [54, 78], đồng thời cần thiết đưa mẫu thiết kế nhằm hướng dẫn áp dụng thuật toán bảo mật hoàn cảnh đặc thù nhằm đảm bảo vấn đề bảo mật cho hệ thống Không sóng ASP nhà cung cấp phần mềm dịch vụ hệ Google hay Salesforce sử dụng hoàn toàn kiến trúc tảng web, tận dụng tối đa hạ tầng chung cho nhiều người dùng để giảm giá thành Dưới góc nhìn khách hàng sử dụng phần mềm cung cấp dịch vụ người dùng cần có thẻ ghi nợ (credit card) trình duyệt để đăng ký sử dụng phần mềm Sau người dùng truy cập hiệu chỉnh lại phần mềm theo nhu cầu bắt đầu sử dụng cho cơng việc Điểm nhấn mạnh khách hàng không cần phận chuyên trách cơng nghệ thơng tin để có sản phẩm sử dụng, không lo lắng vấn đề cập nhập bảo trì phần mềm [75] F Mẫu thiết kế kế cho việc mở rộng khả tải ứng dụng Đối với ứng dụng đám mây yêu cầu lực xử lý hệ thống tăng theo số lượng người dùng Vì khả mở rộng (scalabilty) ứng dụng nhằm đảm bảo cho hệ thống hoạt động tốt liệu xử lý tăng lên yêu cầu tiên Hệ thống cần có khả giảm lực xử lý liệu cần xử lý giảm xuống để tiết kiệm chi phí Việc tăng giảm tài nguyên cần thực cách liền mạch để không ảnh hưởng đến hoạt động hệ thống Các giải pháp cung cấp dịch vụ quan tâm chúng mang lại đơn giản việc sở hữu, vận hành bảo trì sản phẩm kèm theo khả giảm chi phí to lớn cho doanh nghiệp so với phần mềm truyền thống [81] Vấn đề chưa giải lĩnh vực đưa mẫu kiến trúc để xây dựng hệ thống SaaS cho miền ứng dụng khác ngân hàng, bệnh viện, bảo hiểm, trường học, học tập điện tử (elearning) Trong [6] tác giả giới thiệu mẫu thiết kế để mở rộng ứng dụng đám mây bao gồm: Single Platform, Shared Platform, Clustered Platform, Multiple Shared Platforms, Multiple Clustered Platforms Các mẫu thiết kế tập trung vào khía cạnh triển khai hệ thống mà khơng tập trung vào khía cạnh thiết kế xây dựng hệ thống IV MẪU THIẾT KẾ CHO ỨNG DỤNG ĐA NGƯỜI THUÊ Để đạt mục tiêu giảm chi phí, giải pháp cung cấp dịch vụ thường thiết kế theo mơ hình đa người th Đa người th mơ hình nhiều doanh nghiệp sử dụng chung tảng, chia sẻ chung nơi lưu trữ liệu có khả cấu hình lại giải pháp [59] Có thể nói mơ hình điểm đặc trưng bật để phân biệt phần mềm môi trường đám mây với phần mềm truyền thống Mơ hình đa người th phân thành nhóm sau [41, 66]: Trong [85] tác giả giới thiệu mẫu thiết kế Horizontally Scaling Compute tập trung vào việc mở rộng tính tốn cách xây dựng cụm tính tốn tự trị phi trạng thái dựa dịch vụ đám mây để giảm phức tạp triển khai quản lý cụm tính tốn Khó khăn xây dựng hệ thống có khả mở rộng quản lý trạng thái ứng dụng cho áp dụng cân tải (load balancing) người dùng truy cập trạng thái ứng dụng phiên làm việc trước Ngoài liệu người thuê cần thiết kế cách hợp lý để mở rộng cho người thuê mà không ảnh hưởng đến người 216 216 Thảo Quốc Gia 2015vềvềĐiện ĐiệnTử, Tử,Truyền TruyềnThông Thông TinTin (ECIT 2015) HộiHội Thảo Quốc Gia 2015 Công CôngNghệ NghệThông Thông (ECIT 2015) Hệ thống khơng có khả cấu hình hệ thống triển khai dùng chung cho nhiều người thuê (single instance service) Hệ thống khơng có khả cấu hình người thuê sử dụng hệ thống triển khai riêng cho (multiple instances service) Hệ thống có khả cấu hình hệ thống triển khai dùng chung cho tất người thuê (single arbitrary arbitrary instance service) Hệ thống có khả cấu hình người th sử dụng hệ thống triển khai riêng cho (multiple configurable instances service) Ngồi kết hợp mơ hình khơng cấu hình với mơ hình cấu hình với để tạo thành mơ hình tự (arbitrary instances service) khách hàng; hệ thống cần thiết kế với khả biến thiên để thỏa mãn yêu cầu liệu quy trình nghiệp vụ khác khách hàng khác nhau; hệ thống cần có khả mở rộng hay thu hẹp cách linh động tùy theo số lượng người thuê nhằm giảm thiểu chi phí phần cứng; hệ thống cần khả vận hành nhiều cụm máy chủ khác khả chuyển đổi cụm xảy cố; hệ thống cần cho phép người thuê đo lường yêu cầu phi chức mà hệ thống cung cấp thời điểm [73] A Mẫu thiết kế kiến trúc cho phần mềm đa người thuê Một khó khăn xây dựng phần mềm đa người thuê kiến trúc tổng thể hệ thống Kiến trúc chìa khóa để thực hóa ứng dụng đa người thuê Mục tiêu kiến trúc để cách ly người thuê với để họ không bị ảnh hưởng mặt liệu, bảo mật, độ tin cậy quy trình nghiệp vụ Nhiều nhà nghiên cứu đề xuất kiến trúc để giải khó khăn Hình mơ tả kiến trúc chung sản phẩm cung cấp dịch vụ cho đa người th dạng có khả cấu hình hệ thống triển khai cho tất người thuê [75] Một sản phẩm cung cấp dịch vụ sử dụng nhiều khách hàng (người thuê) A, B, C Các khách hàng chia sẻ chung mã nguồn Mỗi khách hàng có liệu riêng cấu hình lại hệ thống thơng qua siêu liệu (dữ liệu cấu hình) Các hệ thống đa người thuê giảm tối đa chi phí để sở hữu vận hành hệ thống Một ví dụ cho thấy hệ thống cần nâng cấp tính năng, mơi trường đa người th có mã nguồn liệu triển khai hệ thống phí giảm nhiều so với việc cập nhập nhiều hệ thống cho khách hàng theo cách truyền thống [75] Frederick Chong Gianpaolo Carraro liệt kê thành phần kiến trúc đa người thuê bao gồm tầng lưu trữ, tầng dịch vụ nghiệp vụ, tẩng dịch vụ quy trình, tầng giao diện, tầng dịch vụ bảo mật tầng siêu liệu [41] Guo cộng đề xuất mơ hình để phát triển ứng dụng đa người thuê trong việc việc thực thi quản lý cách ly cách hạn chế người dùng đến phần cấu trúc thư mục mơ hình bảo mật hệ thống đặc thù tảng phát triển [46] Ralph Mietzner giới thiệu đánh giá mẫu thiết kế Single instance service, Single configurable instance service Multiple instances service Các tác giả mô tả làm để dịch vụ người thuê Các mẫu thiết kế áp dụng để thiết kế, phát triển triển khai ứng dụng đa người thuê [66] Ngoài tác giả cịn thể phương pháp tích hợp dịch vụ dựa thông tin người thuê cách truyền thông tin người thuê hành vào thành phần dịch vụ kích hoạt Weissman Bobrowski mô tả thiết kế Force.com, doanh nghiệp tiên phong mơ hình đa người thuê Force.com sử dụng kiến trúc tảng siêu liệu Các siêu liệu dùng để định nghĩa lưu trữ liệu cho ứng dụng đa người thuê [84] Hình – Kiến trúc phần mềm đa người thuê [75] Một kiến trúc sơ cho đa người thuê giới thiệu [12], tác giả cho định danh, cấu hình sở liệu thành phần ứng dụng đa người thuê Mục tiêu hệ thống đa người thuê giảm chi phí cách tối đa hóa việc chia sẻ tài nguyên Khi chia sẻ tài nguyên hệ thống cần đảm bảo liệu người thuê phải bảo mật cách ly; tốc độ thực thi người thuê phải cách ly hay nói cách khác tốc độ sử dụng hệ thống người thuê không ảnh hưởng đến tốc độ sử dụng hệ thống người thuê khác; việc thực thi công việc người thuê phải cách ly hay nói cách khác luồng thực thi người thuê phải độc lập, kết người thuê không ảnh hưởng đến kết người thuê khác [69] Một kiến trúc để thực hóa đa người thuê cho tảng hướng dịch vụ giới thiệu [8] Afkham cộng cho việc cấu hình, phân phối thơng điệp, bảo mật, thực thi dịch vụ truy cập liệu khía cạnh ứng dụng đa người th cần có Việc xây dựng ứng dụng đa người thuê từ đầu địi hỏi nhiều thời gian cơng sức Tập trung vào khía cạnh bảo mật hệ thống [4] giới thiệu kiến trúc quản lý bảo mật đa người thuê cho phép nhà cung cấp dịch vụ tái sử dụng giao diện lập trình bảo mật có sẵn phát triển ứng dụng đa người thuê Kiến trúc cho phép điều chỉnh lại yêu cầu bảo mật “tiêm” (inject) đoạn mã Ngoài xây dựng hệ thống đa người thuê cần đảm bảo hệ thống có khả xử lý liệu lớn nhiều so với hệ thống cho khách hàng; hệ thống cần có khả tích hợp với nhiều hệ thống truyền thống khác 217 217 Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) Hội Hội Thảo Quốc Gia 2015 Điện Tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) nguồn vào ứng dụng thời điểm chạy để thực hóa yêu cầu Các tác giả ứng dụng mẫu thiết kế quản lý đảo ngược (inversion of control) khả lập trình hướng khía cạnh để thực hóa kiến trúc Tính biến thiên cần mơ hình quản lý góc độ vấn đề (hay cụ thể yêu cầu) góc độ giải pháp [74] Các giải pháp cho tính biên thiên tập trung khả cấu hình (configuration), hiệu chỉnh (customization) triển khai hệ thống (provision, deployment) Cấu hình khả thay đổi hành vi hệ thống dựa thiết lập định nghĩa sẵn Cấu hình thực hệ thống vận hành Các thiết lập cho cấu hình xác định trước triển khai hệ thống dựa vào siêu liệu trình vận hành Hiệu chỉnh khả thay đổi hành vi hệ thống dựa việc thay đổi hay thêm số thành phần hệ thống Hiệu chỉnh thực trước hệ thống đưa vào triển khai Việc phân phối tài nguyên đến người thuê cách tối ưu hóa vấn đề cần quan tâm Hệ thống chưa tối ưu hóa người thuê có số người dung 100 phân phối số tài nguyên với người thuê có số người dùng 10000 Trong [34] tác giả trình bày khung ứng dụng cho phép tối ưu hóa phân bổ yêu cầu người thuê đến tài nguyên hệ thống cách sử dụng thuật tốn tơi luyện thép Cấu hình thường sử dụng để hỗ trợ thay đổi thông qua tham số định nghĩa trước cho mơ hình liệu, quy tắc nghiệp vụ hay giao diện Hiệu chỉnh thường sử dụng để hỗ trợ thay đổi phần cốt lõi phần mềm mà khó thực cấu hình So với cấu hình hiệu chỉnh thường tốn nhiều chi phí thời gian thực hóa bảo trì [80] Hình trình bày phân loại tính biến thiên mơi trường đa người thuê Các hệ thống đa người thuê phong phú đa dạng, yêu cầu thay đổi tùy theo tổ chức Ví dụ nhiều tổ chức cần hệ thống quản trị dự án với yêu cầu quy trình đặc thù cho tổ chức mình; nhà cung cấp phần mềm dịch vụ cần xây dựng hệ thống quản trị dự án đa người thuê cho tổ chức Hay nhiều trường đại học cần hệ thống học tập điện tử với yêu cầu đặc thù cho trường; nhà cung cấp phần mềm dịch vụ cần xây dựng hệ thống học tập điện tử đa người thuê cho trường đại học Để xây dựng hệ thống đòi hỏi mẫu thiết kế kiến trúc đa người thuê đặc thù cho lĩnh vực mà tổ chức quan tâm Do thể kiến trúc đa người thuê cho lĩnh vực đặc thù ví dụ hệ thống bảo mật thông điệp, hệ thống quản lý dự án, học tập điện tử, ngân hàng, bảo hiểm, quản lý doanh nghiệp vấn đề cần giải Mơ hình hóa u cầu tính biến thiên hệ thống kỹ thuật quản lý chúng giới thiệu [65] Trong tác giả áp dụng kỹ thuật kỹ nghệ sản phẩm phần mềm dòng để giải vấn đề quản lý yêu cầu biến thiên ứng dụng cung cấp dịch vụ Trong [74] tác giả mô tả quy trình để mơ hình khả cấu hình tính yêu cầu chất lượng hệ thống đám mây cách sử dụng mơ hình tính tăng mở rộng (extended feature model) kỹ nghệ phần mềm dịng B Mẫu thiết kế cho tính biến thiên phần mềm đa người thuê Tính biến thiên nghiên cứu sử dụng nhiều kỹ nghệ phần mềm dịng (software product line engineering) nhiều cơng đoạn khác trình phát triển phần mềm phân tích u cầu, thiết kế, thực hóa, kiểm thử nhiều mức độ trừu tượng khác mơ hình u cầu, mơ hình thiết kế, hệ thống thực hóa, kết kiểm thử [57] Khi xây dựng phần mềm đa người thuê, hệ thống cần phải thỏa mãn yêu cầu khác nhiều người thuê yêu cầu môi trường phát triển đặc thù Amazon1, Azure2 hay Google Application Engine3 Điều đòi hỏi phần mềm cần thiết kế cách linh động, dễ cấu hình, hay nói cách khác phải thỏa mãn yêu cầu khác khách hàng khác Nói cách khác phần mềm đa người thuê cần phải có tính biến thiên Hình – Tính biến thiên môi trường đa người thuê Các giải pháp cho khả cấu hình phần mềm đa người thuê tập trung vào khả thay đổi liệu cho phù hợp với người thuê khác nhau, khả thay đổi chức hay hành vi cho phù hợp với quy trình nghiệp vụ khác Hình trình bày phân loại giải pháp cho tính biến thiên liệu chức môi trường đa người th dựa cấu hình Tính biến thiên phần mềm định nghĩa khả hệ thống hay sản phẩm phần mềm mở rộng, thay đổi, cấu hình hiệu chỉnh cách hiệu để sử dụng hoàn cảnh đặc thù [67] Sự biến thiên phần mềm xảy liệu hệ thống, tính hệ thống, luồng nghiệp vụ, công nghệ sử dụng, mục tiêu chất lượng hệ thống hay môi trường triển khai hệ thống [35] Frederick Chong Gianpaolo Carraro giới thiệu phương pháp để cô lập mở rộng liệu người thuê khác hệ quản trị sở liệu quan hệ bao gồm kỹ thuật sử dụng sơ đồ liệu chung (single schema model) [41] Khi sử dụng sơ đồ liệu chung dòng liệu bảng gắn kết với người thuê định thông qua định danh người thuê, trường mở rộng bảng có http://aws.amazon.com http://www.windowsazure.com/en-us https://appengine.google.com 218 218 Thảo Quốc Gia 2015vềvềĐiện ĐiệnTử, Tử,Truyền TruyềnThông Thông TinTin (ECIT 2015) HộiHội Thảo Quốc Gia 2015 Công CôngNghệ NghệThông Thông (ECIT 2015) thể tập hợp cố định trường định nghĩa trước tập hợp vơ hạn cặp tên giá trị bảng khác Việc thực hóa u cầu biến thiên tính cho ứng dụng đa người thuê thực cách sử dụng kiến trúc dành cho việc phát triển ứng dụng tự điều chỉnh (dynamically adaptive applications) [73] Kiến trúc bao gồm siêu mơ hình để định nghĩa thành phần, ngôn ngữ để diễn tả thành phần động để chạy ứng dụng phát triển dựa kiến trúc Các ứng dụng phát triển dựa khung tự điều chỉnh trạng thái thực thi dựa cấu hình người thuê yêu cầu họ Các yêu cầu khác người thuê định nghĩa dựa cấu hình người thuê Stefan Walraven cộng giới thiệu cách xử lý yêu cầu khác người thuê khác cách kết hợp việc nội xạ phụ thuộc (dependency injection) với hệ thống tảng trung gian hỗ trợ việc cách ly liệu người thuê [82] Việc tùy chỉnh phần mềm theo yêu cầu khác người thuê thực thông qua việc nhận cấu hình người thuê sở liệu, sau thành phần phần mềm cho tính yêu cầu khởi tạo ánh xạ vào phần thực thi hệ thống sử dụng nội xạ phụ thuộc Hình – Các giải pháp cho tính biến thiên liệu chức môi trường đa người thuê Để giải tính biến thiên liệu trình thực thi phần mềm [7] giới thiệu kỹ thuật Chunk Folding, bảng liệu phân thành bảng thông thường chứa liệu chung, đặc thù cho ứng dụng bảng rải rác (chunking) chứa liệu riêng cho người thuê Kỹ thuật thực hóa hệ quản trị sở liệu quan hệ Các tác giả xây dựng ngôn ngữ để truy vấn thông tin sử dụng kỹ thuật Điểm yếu kỹ thuật tính cục (ad-hoc) phức tạp truy vấn thông tin Để ứng dụng kỹ thuật hệ thống phải thay đổi hoàn toàn cách truy cập sở liệu Eddy Truyen cộng giới thiệu cách tùy chỉnh ứng dụng đa người thuê cách sử dụng tính đặc biệt ngơn ngữ lập trình hướng hồn cảnh [49, 80] Tình biến thiên cho yêu cầu triển khai cho người thuê tùy theo điều khoản hợp đồng dịch vụ triển khai phần mềm hiệu chỉnh cho người thuê thực ngôn ngữ thực thi quy trình [32], kỹ nghệ hướng mơ hình [29, 38] Weissman Bobrowski mô tả thiết kế Force.com, doanh nghiệp tiên phong mơ hình đa người thuê Force.com sử dụng kiến trúc tảng siêu liệu Tính biến thiên liệu xử lý cách dùng siêu liệu để mô tả liệu người thuê [84] Tương tự kỹ thuật sử dụng siêu liệu Gautam Shroff mô tả kỹ thuật sử dụng nhiều sơ đồ (multiple schemas) người thuê gắn kết với sơ đồ liệu định Sơ đồ định nghĩa thông tin siêu liệu [75] Các cơng trình giải tính biến thiên số khía cạnh ứng dụng đa người thuê liệu, luồng công việc Tuy nhiên hệ thống đa người thuê thường phân thành nhiều tầng giao diện, nghiệp vụ liệu Sự thay đổi tầng kéo theo thay đổi tầng phụ thuộc Thực yêu cầu mở rộng cách đồng trình thực thi chưa giải triệt để; chưa có mẫu thiết kế giúp đạt tính biến thiên ứng dụng cách đồng thời điểm thực thi nhằm đáp ứng nhu cầu nghiệp vụ khác doanh nghiệp khác Hay nói cách khác chưa có mẫu thiết kế để xây dựng ứng dụng tự điều chỉnh (adaptive SaaS software) Một kỹ thuật khác để xử lý tính biến thiên liệu tận dụng dịch vụ lưu trữ không quan hệ môi trường đám mây (cloud data store) [75] Trong [32] tác giả đề xuất phương pháp thực tính biến thiên liệu cách sử dụng mẫu thiết kế Variable Data Component, liệu thực thể gắn kết với danh sách không định kiểu Mỗi đối tượng danh sách xác định thơng qua khóa Trong trường hợp liệu xử lý không thông qua hàm nhập xuất (tạo, cập nhập, xóa, trả thơng tin), nhà phát triển cần tạo hàm xử lý đặc thù cho chúng V CƠNG TRÌNH LIÊN QUAN Tìm hiểu mẫu thiết kế cho điện toán đám mây thực [33] Trong báo cáo tác giả đề xuất quy trình để tìm kiếm mẫu thiết kế cho điện tốn đám mây, đề xuất cách mơ tả mẫu thiết kế thảo luận số lĩnh vực áp dụng Tuy nhiên tác giả nêu lên vấn đề chung cần giải điện toán đám mây mà chưa sâu vào việc phát triển phần mềm môi trường đám mây; mẫu thiết kế cho vấn đề cụ thể chưa khảo sát; cơng trình khảo sát chưa bao quát đầy đủ lĩnh vực phân loại cách hệ thống; vấn đề nghiên cứu tồn đọng chưa đề cập Để đạt tính biến thiên chức Fehling đề xuất xây dựng chức sau sử dụng ngơn ngữ thực thi quy trình, ví dụ BPEL [55], để gắn chức với [32] Thiết kế thực hóa động thực thi luồng công việc cho đa người thuê giới thiệu [69] Động cho phép nhiều người thuê chạy luồng công việc động Cơng trình sử dụng BPEL làm ngơn ngữ thực thi quy trình 219 219 Hội Hội Thảo Quốc GiaGia 2015 vềvềĐiện CôngNghệ NghệThông Thông (ECIT 2015) Thảo Quốc 2015 ĐiệnTử, Tử,Truyền TruyềnThông Thông và Công TinTin (ECIT 2015) VI KẾT LUẬN VÀ TẦM NHÌN [13] William J Brown, Raphael C Malveau, Hays W McCormick III, and Thomas J Mowbray, AntiPatterns - Refactoring Software, Architectures, and Projects in Crisis.: Wiley, New York, 1998 Trong báo chúng tơi trình bày nguyên nhân cần nghiên cứu mẫu thiết kế cho việc phát triển phần mềm môi trường đám mây Chúng tổng kết nghiên cứu mẫu thiết kế cho việc phát triển phần mềm môi trường đám mây Cụ thể vấn đề mà nhà nghiên cứu công nghệ phần mềm quan tâm phát triển ứng dụng môi trường đám mây xây dựng phần mềm hệ thống phần mềm tảng, xử lý liệu lớn, quản lý bảo mật, xây dựng tích hợp phần mềm cung cấp dịch vụ, phát triển phần mềm đa người thuê, xử lý tính biên cho ứng dụng đa người thuê Chúng tơi sâu vào khó khăn phát triển ứng dụng môi trường đám mây đề xuất vấn đề nghiên cứu cho lĩnh vực Hình 1, 2, cung cấp góc nhìn tổng quan hướng nghiên cứu mà khảo sát [15] Frank Buschmann, Kevlin Henney, and Douglas C Schmidt, PatternOriented Software Architecture: A Pattern Language for Distributed Computing., 2007 [16] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal, Pattern-Oriented Software Architecture: A System of Patterns., 1996 [17] Rajkumar Buyya, James Broberg, and Andrzej Goscinski, Cloud Computing: Principles and Paradigms., 2011 [18] Rajkumar Buyya, Chee Shin Yeo, and Srikumar Venugopal, MarketOriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities., 2008 [19] Antonio Celesti, "How to Enhance Cloud Architectures to Enable CrossFederation," in 2010 IEEE 3rd Int Conf on Cloud Computing, Miami, 2010 Chúng hy vọng báo giúp nhà nghiên cứu kỹ nghệ phần mềm cho đám mây có nhìn tổng quan trạng nghiên cứu, vấn đề nghiên cứu, từ lựa chọn cho tốn cụ thể để tiếp tục giải nhằm góp phần cung cấp kiến thức cho ngành kỹ nghệ phần mềm môi trường đám mây Trong tương lai tập trung khảo sát trạng hướng nghiên cứu liên quan đến mẫu thiết kế môi trường đám mây kỹ nghệ hướng mơ hình, thiết kế phần mềm tự hiệu chỉnh, thiết kế phần mềm mạng lưới internet vạn vật [20] Peter Coad, Object-oriented patterns., 1992 [21] James O Coplien, Advanced C++ Programming Styles and Idioms., 1991 [22] James O Coplien, C++ Idioms., 1998 [23] James O Coplien, Idioms and Patterns as Architectural Literature., 1997 [24] James O Coplien, Software Patterns., 1996 [25] Kelly D Lewis and James E Lewis, "Web Single Sign-On Authentication using SAML 2009.," in IJCSI International Journal of Computer Science Issues, 2009 [26] Jeffrey Dean and Sanjay Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters," in OSDI, San Francisco, 2004 TÀI LIỆU THAM KHẢO [27] Michael Stal, Hans Rohnert and Frank Buschmann Douglas Schmidt, "Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects," , 2000 [1] Carlisle Adams and Steve Lloyd, Understanding PKI Concepts, Standards, and Deployment Considerations Second Edition.: Addison Wesley, 2002 [28] Bill Dudney, Stephen Asbury, Joseph K Krozak, and Kevin Wittkopf, J2EE Antipatterns.: Wiley, 2003 [2] Ola Ajaj and Eduardo B Fernandez, "A pattern for the WSSecureConversation standard for web services," in Pattern Languages of Programs, Tucson, Arizona, 2012 [29] Brandtzæg Eirik, Sébastien Mosser, and Parastoo Mohagheghi, "Towards CloudML, a Model-based Approach to Provision Resources in the Clouds.," in ECMFA, 2012, pp 18-27 [3] Ola Ajaj and Eduardo B Fernandez, "A pattern for the WS-Trust standard of web services," in Asian Conf on Pattern Languages of Programs, Tokyo, 2010 [30] Thomas Erl, SOA Design Patterns., 2009 [31] Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software Boston: Addison Wesley, 2003 [4] Mohamed Almorsy, John Grundy, and Amani S Ibrahim, "TOSSMA: A Tenant-Oriented SaaS Security Management Architecture," in 5th IEEE Conference on Cloud computing, Hawaii, 2012 [32] Christoph Fehling, "An Architectural Pattern Language of Cloud-based Applications," in Pattern Languages of Programs, Portland, 2011 [5] Deepak Alur, John Crupi, and Dan Malks, Core J2EE™ Patterns: Best Practices and Design Strategies., 2001 [33] Christoph Fehling et al., "Capturing Cloud Computing Knowledge and Experience in Patterns," in Proceedings of the 5th IEEE International Conference on Cloud Computing, 2012, pp 726 - 733 [6] Claudio A Ardagna, Ernesto Damiani, Fulvio Frati, Davide Rebeccani, and Marco Ughetti, "Scalability Patterns for Platform-as-a-Service," in 2012 IEEE 5th Int Conf on Cloud Computing (CLOUD), Honolulu, 2012 [34] Christoph Fehling, Frank Leymann, and Ralph Mietzner, "A Framework for Optimized Distribution of Tenants in Cloud Applications," in 3rd International Conference on Cloud Computing, 2010, pp 252-259 [7] Stefan Aulbach, "Multi-Tenant Databases for Software as a Service," in 2008 ACM SIGMOD Int Conf on Management of data, 2008 [35] Bachmann Felix and Len Bass, "Managing Variability in Software Architectures," ACM SIGSOFT Software Engineering Notes, vol 26, no 3, pp 126-132, 2001 [8] Afkham Azeez et al., "Multi-Tenant SOA Middleware for Cloud Computing," in Cloud Computing (CLOUD), 2010 IEEE 3rd International Conference, pages 458 - 465, Miami, FL, 2010 [36] Eduardo B Fernandez, "Patterns for Operating Systems Access Control," in Procs of PLoP 2002, 2002 [9] Kent Beck, Using Pattern Languages for Object-Oriented Programs., 1987 [37] Eduardo B Fernandez, Security Patterns in Practice: Designing Secure Architectures using Software Patterns Chichester: Wiley, 2013 [10] Michael Bell, SOA Modeling Patterns for Service-Oriented Discovery and Analysis., 2010 [38] Nicolas Ferry, Alessandro Rossini, Franck Chauvel, Brice Morin, and Arnor Solberg, "Towards Model-driven Provisioning, Deployment, Monitoring, and Adaptation of Multi-Cloud Systems," in 6th International Conference on Cloud Computing, 2013, pp 887-894 [11] Stephen P Berczuk and Brad Appleton, Software Configuration Management Patterns: Effective Teamwork, Practical Integration., 2002 [12] Cor-Paul Bezemer and Andy Zaidman, "Multi-Tenant SaaS Applications: Maintenance Dream or Nightmare," in IWPSE-EVOL '10 Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE), pages 88 - 92, ACM New York, NY, USA, 2010 [39] Martin Fowler, Analysis patterns: reusable object models., 1997 [40] Martin Fowler et al., Patterns of Enterprise Application Architecture., 2002 [41] Chong Frederick and Carraro Gianpaolo, "Architecture Strategies for 220 220 Thảo QuốcGia Gia2015 2015về Điện Điện Tử, Truyền Thông Thông Tin Tin (ECIT 2015) HộiHội Thảo Quốc Tử, Truyền ThôngvàvàCông CôngNghệ Nghệ Thông (ECIT 2015) Variability Realization Techniques," Software: Practice and Experience, vol 35, no 8, pp 705-754, 2005 Catching the Long Tail," , 2006 [42] Borko Furht and Armando Escalante, Handbook of Cloud Computing New York: Springer, 2010 [68] Clifford B Neuman and Theodore Ts'o, "Kerberos: An Authentication Sewice for Computer Networks," IEEE Communications Magazine, pp 33-38, 1994 [43] Eric Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software.: AddisonWesley, 1994 [69] Milinda Pathirage, Srinath Perera, Indika Kumara, and Sanjiva Weerawarana, "A Multi-tenant Architecture for Business Process Executions," in Web Services (ICWS), 2011 IEEE International Conference, pages 121 - 128, Washington, DC, 2011 [44] Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, "The Google File System," in ACM SIGOPS Operating Systems, 2003 [45] Ian Graham, A pattern language for web usability., 2003 [70] George Reese, Cloud Application Architectures., 2009 [46] Chang Jie Guo, Wei Sun, Ying Huang, Zhi Hu Wang, and Bo Gao, "A framework for native multi-tenancy application development and management," in CEC/EEE 2007, Tokyo, 2007, pp 551 - 558 [71] D Riehle, "Composite Design Patterns," in OOPSLA ’97 Conference Proceedings, published as ACM SIGPLAN Notices, 32(10):218–228, October 1997 ACM Press, 1997 [47] Dick Hardt, "The OAuth 2.0 Authorization Framework," 2012 [72] Andreas Rüping, Where Code and Content Meet: Design Patterns for Web Content Management and Delivery, Personalisation and User Participation., 2009 [48] Keiko Hashizume, "Cloud Service Model Patterns," in Pattern Languages of Programs, Tucson, 2012 [49] Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz, "Contextoriented Programming," Journal of Object Technology, vol 7, no 3, 2008 [73] Julia Schroeter, Sebastian Cech, Sebastian Götz, Claas Wilke, and Uwe Aßmann, "Towards Modeling a Variable Architecture for Multi-Tenant SaaS-Applications," in VaMoS, New York, 2012 [50] Gregor Hohpe and Bobby Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions., 2003 [51] Alex Holmes, Hadoop in Practice.: Manning Publications Co, 2012 [74] Julia Schroeter, Peter Mucha Marcel, and Malte Lochau, "Dynamic Configuration Management of Cloud-based Applications," in 16th International Software Product Line Conference, 2012, pp 171-178 [44] IDC (2015, Sep.) IDC http://www.idc.com/getdoc.jsp?containerId=prUS25732415 [Online] [75] Gautam Shroff, Enterprise Cloud Computing: Technology Architecture Applications.: Cambridge University Press, 2010 [53] Michael Kircher and Prashant Jain, Pattern-Oriented Software Architecture: Patterns for Resource Management., 2004 [76] Konstantin Shvachko, Hairong Kuang, Sanjay Radia, and Robert Chansler, "The Hadoop Distributed File System," in Mass Storage Systems and Technologies (MSST), 2010 IEEE 26th Symposium, Incline Village, 2010 [54] Somorovsky Juraj, Andreas Mayer, Jorg Schwenk, Marco Kampmann, and Meiko Jensen, "On Breaking SAML: Be Whoever You Want to Be," in USENIX Security Symposium, 2012, pp 397-412 [77] Elias Adriano Nogueira da Silva and Daniel Lucredio, "Software Engineering for the Cloud: A Research Roadmap," in Software Engineering(SBES), 2012 26th Brazilian Symposium on Computing & Processing (Hardware and Software), Natal, 2012 [55] Matjaz B Juric, Business Process Execution Language for Web Services.: Packt Publishing, 2006 [56] Matjaz B Juric, Ramesh Loganathan, Poornachandra Sarang, and Frank Jennings, SOA Approach to Integration: XML, Web services, ESB, and BPEL in real-world SOA projects., 2007 [78] San-Tsai Sun and Konstantin Beznosov, "The Devil is in the (Implementation) Details: An Empirical Analysis of OAuth SSO Systems," in ACM conference on Computer and communications security, New York, 2012, pp 378-390 [57] Pohl Klaus, Günter Böckle, and Frank Van Der Linden, Software Product Line Engineering Berlin: Springer, 2005 [79] Bruce Tate, Patrick Linskey, Bob Lee, and Mike Clark, Bitter EJB., 2003 [58] A Koenig, "Patterns and Antipatterns," Journal of Object Oriented Programming, volume 8, number 1, 1995 [80] Eddy Truyen et al., "Context-oriented Programming for Customizable SaaS Applications," in ACM Symposium on Applied Computing, 2012, pp 418-425 [59] Thomas Kwok, Thao Nguyen, and Linh Lam, "A software as a service with multi-tenancy support for an electronic contract management application," in Services Computing, 2008 SCC '08 IEEE International Conference, pages 179 - 186, Honolulu, HI, 2008 [81] Mark Turner, David Budgen, and Pearl Brereton, "Turning Software into a Service," IEEE Computer Society, vol 36, no 10, pp 38 - 44, 2003 [60] Neal Leavitt, "Is Cloud Computing Really Ready for Prime Time?," , 2009 [82] Stefan Walraven, Eddy Truyen, and Wouter Joosen, "A Middleware Layer for Flexible and Cost-Efficient Multi-tenant Applications," in 12th International Middleware Conference, 2011 [61] Zaigham Mahmood, Cloud Computing for Enterprise Architectures., 2011 [83] Sanjiva Weerawarana, Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More.: Prentice Hall PTR, 2005 [62] Zach McCormick and Douglas C Schmidt, "Data Synchronization Patterns in Mobile Application Design," in PLoP, Tucson, 2012 [63] Peter Mell and Timothy Grance, "The NIST Definition of Cloud Computing," 2011 [84] Craig D Weissman and Steve Bobrowski, "The Design of the Force.com Multitenant Internet Application Development Platform," in Proceedings of the 35th SIGMOD international conference on Management of data, pages 889 - 896, Providence, Rhode Island, USA, 2009 [64] Gerard Meszaros, xUnit Test Patterns Refactoring Test Code., 2007 [65] Ralph Mietzner, Andreas Metzger, Frank Leymann, and Klaus Pohl, "Variability Modeling to Support Customization and Deployment of Multi-Tenant-Aware Software as a Service Applications," in PESOS '09 Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems, pages 18 - 25, 2009 [85] Bill Wilder, Cloud Architecture Patterns.: O'Reilly Media, 2012 [86] Hung-chih Yang, Ali, Hsiao, Ruey-Lung Dasdan, and D Stott Parker, "Map-Reduce-Merge: Simplified Relational Data Processing," in SIGMOD '07, New York, 2007 [66] Ralph Mietzner, Tobias Unger, Robert Titze, and Frank Leymann, "Combining Different Multi-Tenancy Patterns in Service-Oriented Applications," in EDOC, 2009 [67] Svahnberg Mikael, Jilles Van Gurp, and Jan Bosch, "A Taxonomy of 221 221 ... 1998 Trong báo trình bày nguyên nhân cần nghiên cứu mẫu thiết kế cho việc phát triển phần mềm môi trường đám mây Chúng tổng kết nghiên cứu mẫu thiết kế cho việc phát triển phần mềm môi trường đám. .. cứu mẫu thiết kế để phát triển phần mềm môi trường đám mây, (ii) tổng kết trạng nghiên cứu mẫu thiết kế cho ứng dụng môi trường đám mây (iii) số câu hỏi nghiên cứu đề xuất cho vấn đề tồn đọng Việc. .. 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 q trình phát triển phần mềm mơi trường đám mây Trong báo khảo sát vấn đề gặp phải thiết kế xây dựng phần mềm môi trường đám