BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
HUỲNH HỒNG LONG
NGHIÊN CỨU MƠ HÌNH CHỢ ỨNG DỤNG
ĐA ĐÁM MÂY
Ngành: Hệ thống thơng tin
Mã số: 9480104
TĨM TẮT LUẬN ÁN TIẾN SĨ HỆ THỐNG THÔNG TIN
Hà Nội – 2022
Cơng trình được hồn thành tại:
Trường Đại học Bách khoa Hà Nội
Người hướng dẫn khoa học:
1. TS. Nguyễn Hữu Đức
2. PGS.TS Lê Trọng Vĩnh
Phản biện 1:
Phản biện 2:
Phản biện 3:
Luận án được bảo vệ trước Hội đồng đánh giá luận án tiến sĩ cấp
Trường họp tại Trường Đại học Bách khoa Hà Nội
Vào hồi …….. giờ, ngày ….. tháng ….. năm ………
Có thể tìm hiểu luận án tại thư viện:
1. Thư viện Tạ Quang Bửu - Trường ĐHBK Hà Nội
2. Thư viện Quốc gia Việt Nam
DANH MỤC CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ CỦA
LUẬN ÁN
1.
Huỳnh Hoàng Long, Nguyễn Hữu Đức, Lê Trọng Vĩnh, Lê Đức
Hùng, “Hướng đến chợ ứng dụng cho hạ tầng đa đám mây”, Hội thảo quốc
gia lần thứ XVIII: Một số vấn đề chọn lọc của Công nghệ thông tin và
truyền thông-TP HCM, Trang 100-105, 11/2015.
2. Hoang-Long Huynh, Van-Dang Tran, Huu-Duc Nguyen, Zhenjiang
Hu, Trong-Vinh Le, Quyet-Thang Huynh, “Auto-updating Portable
Application Model of Multi-cloud Marketplace through Bidirectional
Transformations System”, In Proceedings of the International Conference
on Intelligent Software Methodologies, Tools, and Techniques (SOMET
2019), pp. 11-24, Malaysia, September 2019. Doi:10.3233/FAIA190035.
(SCOPUS Indexed)
3. Hoang-Long Huynh, Huu-Duc Nguyen, Trong-Vinh Le,
“Matchmaking for Multi-cloud Marketplace Application”, Journal of
Research and Development on Information and Communication
Technology, Ministry of Information and Communications, Vietnam, Vol
2019(1),
pp.
31-42,
September
2019.
ISSN1859-3534.
DOI:10.32913/MIC-ICT-RESEARCH.V2019.N1.854.
4. Hoang-Long Huynh, Huu-Duc Nguyen, Trong-Vinh Le, Thi-Nhan
Vu, Quyet-Thang Huynh, “An approach for auto-repairing cloud
application on Multi-cloud Marketplace”, In Proceedings of the 22th
Vietnam National Conference: Selected issues of information technology
and communication, pp. 17-22, Thai Binh, June 2019.
5. Hoang-Long Huynh, Huu-Duc Nguyen, Trong-Vinh Le, QuyetThang Huynh, “CAM-D: A description method for Multi-cloud
Marketplace Application”, Journal of Research and Development on
Information and Communication Technology, Ministry of Information and
Communications, Vietnam, Vol 2020(2), pp. 51-61, December 2020. ISSN
1859-3534. DOI:10.32913/MIC-ICT-RESEARCH.V2020.V2.943.
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1. Mở đầu
Nhìn chung, hầu hết các phần mềm dịch vụ (SaaS) đều bị giới hạn trong
cơ sở hạ tầng kỹ thuật của đơn nhà cung cấp, điều này dẫn đến vấn đề trói
buộc người tiêu dùng và nhà phát triển ứng dụng vào các cơ sở hạ tầng độc
quyền của hệ sinh thái đám mây. Đây là nguyên nhân gây ra vấn đề khóa
độc quyền. Các nhà cung cấp dịch vụ đám mây với khóa độc quyền đến
khách hàng theo một số cách: (i) thiết kế một hệ thống khơng tương thích
với phần mềm do các nhà cung cấp khác phát triển; (ii) sử dụng các tiêu
chuẩn độc quyền hoặc kiến trúc riêng thiếu khả năng tương tác với các ứng
dụng ngoài hệ sinh thái; (iii) cấp phép cho ứng dụng đám mây theo các điều
khoản độc quyền. Do đó, khóa độc quyền ngăn cản các tổ chức áp dụng
công nghệ đám mây. Theo quan điểm của chúng tơi, có thể phát triển mơ
hình chợ ứng dụng đa đám mây và mơ hình ứng dụng đa đám mây để giảm
khóa độc quyền nếu tận dụng hiệu quả các ưu điểm của môi trường đa đám
mây.
1.2. Vấn đề nghiên cứu
Hầu hết các nhà cung cấp đám mây đã và đang xây dựng các nền tảng
cung cấp phần mềm dịch vụ độc quyền, nơi các ứng dụng chỉ được lưu trữ
triên nền tảng của chủ sở hữu và thiết lập một loạt sự bảo hộ cho các nền
tảng đám mây của họ. Do đó, các nền tảng độc quyền này ngăn không cho
các ứng dụng được cung cấp bởi các nhà cung cấp ứng dụng khác nhau
không thể dễ dàng chạy trên các nền tảng của nhà cung cấp khác. Phần
mềm đám mây được phát triển sẽ phụ thuộc trên nền tảng các thư viện lập
trình đơn nhà cung cấp dịch vụ đám mây. Điều này là nguyên nhân của vấn
đề: khóa độc quyền (vendor lock-in). Kết quả là, các nhà phát triển đám
mây bị trói buộc trong các hệ sinh thái công nghệ cụ thể. Mục tiêu chính
của các nghiên cứu của chúng tơi là phát triển một mơ hình chợ ứng dụng
đa đám mây mới có cơ chế đặc biệt để giảm sự phụ thuộc vào nhà cung cấp
và mơ hình ứng dụng đám mây đa thành phần kết hợp, trong đó ứng dụng
1
đám mây được tạo thành từ các thành phần độc lập và phân tán trên nhiều
đám mây. Để đạt được mục tiêu này, cần phải phải nghiên cứu một số vấn
đề như sau: Mơ hình thị trường đa đám mây, Mơ hình ứng dụng đa đám
mây, Phương pháp ghép hợp ứng dụng đa đám mây, Tính di động của ứng
dụng đa đám mây, Phương pháp tự động sửa chữa ứng dụng đa đám mây,
Đảm bảo chất lượng dịch vụ, Bảo mật, v.v.
1.3. Các đóng góp của luận án
Các đóng góp chính của luận án như sau:
1. Đề xuất mơ hình chợ ứng dụng đa đám mây O-Marketplace.
2. Định nghĩa mô hình ứng dụng đa đám mây kết hợp (Composable
Application Model).
Trên cơ sở mơ hình chợ ứng dụng đa đám mây O-Marketplace và mơ
hình ứng dụng đa đám mây kết hợp, một số bài toán trong điện toán
đám mây được tập trung giải quyết:
Đề xuất phương thức ghép hợp dịch vụ ứng dụng đa đám mây,
một giải pháp hiệu quả cho kết hợp các thành phần ứng dụng với
nhóm các dịch vụ nền tảng trong ngữ cảnh chợ ứng dụng đa đám
mây.
Đề xuất cách tiếp cận mới để nâng cao tính di động của ứng dụng
đa đám mây.
Đề xuất cách tiếp cận để tự động sửa chữa ứng dụng đa đám mây.
Chương 2 giới thiệu các công nghệ và các cơng việc liên quan. Đóng
góp chính của luận án là các chương 3,4. Chương 5 là chương kết luận.
2
CHƯƠNG 3: O-Marketplace
3.1. Giới thiệu
Hầu hết các nhà cung cấp dịch vụ đám mây có riêng chợ ứng dụng như
Amazone, IBM, Google,… và các dịch vụ đám mây chỉ có thể hoạt động
trên hạ tầng của mỗi nhà cung cấp. Việc phụ thuộc vào đơn nhà cung cấp
đang trói buộc người tiêu dùng và nhà phát triển vào hệ sinh thái cơng nghệ
độc quyền. Đây là ngun nhân của khóa độc quyền.
Ở khía cạnh khác, mơi trường đa đám mây hỗ trợ phối hợp hợp các dịch
vụ đám mây trong chia sẻ khối lượng công việc, ứng dụng đám mây có thể
được trải rộng trên các nhà cung cấp dịch vụ khác nhau. Để tận dụng những
lợi thế của môi trường đa đám mây nhằm giảm khóa độc quyền và tạo môi
trường tự do cho các nhà phát triển đám mây, chúng tơi đề xuất một mơ
hình chợ ứng dụng đa đám mây được gọi là O-Marketplace. Nó là một
thực thể độc lập với các nhà cung cấp đám mây và được điều hành bởi một
bên thứ ba. O-Marketplace không chỉ là trung tâm mơi giới mà cịn hỗ trợ
tích hợp các thành phần phần mềm đám mây được phát triển riêng trên các
nền tảng đám mây khác nhau để tạo ra một phần mềm đám mây hoàn chỉnh
nhằm mang lại nhiều lợi ích cho người tiêu dùng các ứng dụng đa đám
mây.
3.2. Mơ hình chợ ứng dụng đa đám mây OMarketplace
3.2.1. Phương thức cung cấp dịch vụ đa đám mây
Để giải quyết các hạn chế của các phương thức cung cấp hiện vụ hiện có
và tận dụng ưu điểm của môi trường đa đám mây, chúng tôi đề xuất phương
thức cung cấp dịch vụ đa đám mây. Các khác biệt chính như sau:
Thơng tin dịch vụ minh bạch
3
Tạo ra sự cạnh tranh trực tiếp để thúc đẩy các nhà cung cấp dịch vụ
phải phát triển các dịch vụ nền tảng để đáp ứng cho các ứng dụng đám
mây được phát triển độc lập bởi các nhà phát triển.
Giảm khóa độc quyền, mang lại giá trị cho người tiêu dùng và nhà phát
triển.
Cung cấp ứng dụng đa đám mây, hỗ trợ người tiêu dùng triển khai và
quản lý ứng dụng đa đám mây.
3.2.2. Cấu trúc tổng thể chợ ứng dụng O-Marketplace
Trên cơ sở mơ hình cung cấp dịch vụ đa đám mây đã đề xuất, chúng tôi
xây dựng mơ hình chợ ứng dụng đa đám mây O-Marketplace. OMarketplace cung cấp cho khách hàng danh mục gói phần mềm đám mây
và gói dịch vụ tài nguyên đám mây với thông tin chi tiết về chức năng, giá
cả, v.v. của các dịch vụ đám mây được cung cấp bởi các nhà cung cấp đám
mây và nhà cung cấp / phát triển phần mềm đám mây.
Đặc biệt, điểm mới của O-Marketplace là cung cấp ứng dụng đám mây
có thể được phân phối trên nhiều đám mây khác nhau. Do đó, chỉ với một
ứng dụng, khách hàng có thể sử dụng các dịch vụ đám mây khác nhau do
các nhà cung cấp khác nhau cung cấp.
Để thể hiện ý tưởng này, chúng tơi phác thảo mơ hình O-Marketplace
có thành phần chính chính được mơ tả trong Hình 3.6 như sau:
(i). Graphical User Interface là một cổng thông tin tạo điều kiện cho
người tiêu dùng tiếp cận ứng dụng đám mây. Đây là danh mục các
dịch vụ đám mây, phần mềm đám mây và các thành phần phần mềm
đám mây được cung cấp bởi các bên thứ ba như nhà cung cấp ứng
dụng đám mây, nhà phát triển và nhà cung cấp dịch vụ đám mây.
(ii). O-Marketplace Repository chứa phần mềm đám mây (tạo tác, các
đặc tả thành phần phần mềm, các đặc tả tổ hợp phần mềm) và các
các đặc tả dịch vụ nền tảng đám mây (IaaS và PaaS).
(iii). O-Marketplace Electronic Commerce Platform kế thừa từ mơ hình
chợ ứng dụng điện tử.
(iv). O-Marketplace Runtime Platform bao gồm các chức năng chính
như: Đặc tả, Triển khai, Cấu hình, Di trú và Giám sát.
4
Đặc biệt, chợ ứng dụng đa đám mây O-Marketplace có sự khác biệt so với
mơ hình chợ ứng dụng hiện tại:
Cung cấp ứng dụng đám mây nhiều thành phần. Phần mềm đám mây
và dịch vụ nền tảng được cung cấp tách biệt. Một ứng dụng đám mây là
một sự kết hợp của các thành phần phần mềm được phát triển độc lập
có khả năng thích ứng nhiều loại dịch vụ hạ tầng khác nhau.
Hỗ trợ phát triển các thành phần phần mềm theo chiều sâu và có thể
chạy trên nhiều loại nền tảng khác nhau.
Figure 3.6 Proposed Method for delivering service through OMarketplace.
Sự khác biệt O-Marketplace mang lại trong cung cấp phần mềm dịch vụ
là cơ chế cạnh tranh trực tiếp. Đặc biệt sự tách biệt giữa phần mềm đám
mây và nền tảng bên dưới là cơ sở để tránh khóa độc quyền.
3.2.3. Cơ chế hoạt động của O-Marketplace
Có 4 chủ thể trong mơ hình chợ ứng dụng O-Marketplace: Khách hàng,
nhà cung cấp dịch vụ đám mây, nhà phát triển và nhà quản trị với vai trò là
trung gian. Các hoạt động của các chủ thể này có mối quan hệ chặt chẽ với
nhau trong tiến trình giao dịch. Trong đó, O-Marketplace là một trung tâm
mơi giới, cung cấp phương thức môi giới công khai để cung cấp ứng dụng
đám mây đến khách hàng.
5
3.3. Mục tiêu của mơ hình chợ ứng dụng OMarketplace
Mơ hình chợ ứng dụng đa đám mây O-Marketplace hướng đến những
ưu điểm khác biệt nổi bật như sau:
Tạo ra cơ chế cạnh tranh giữa các bên tham gia vào chợ ứng dụng đám
mây nhằm mang lại lợi ích cho người tiêu dùng.
Hướng đến thị trường ứng dụng đa dạng nơi nhà phát triển là hoa tiêu
của phát triển ứng dụng đá mây.
Tạo thuận lợi cho nhà phát triển sáng tạo các ứng dụng độc lập và
không bị ràng buộc vào nhà cung cấp ứng dụng đám mây.
Hỗ trợ phân tán ứng dụng đám mây trên nhiều nhà cung cấp dịch vụ.
Khơng có giải pháp lỗi thời vì ứng dụng đám mây ln được cập nhật
và phát triển bởi cộng đồng nhà phát triển.
Mỗi ứng dụng đám mây là sự kết hợp nhiều thành phần được phát triển
chuyên sâu. Do đó, thúc đẩy sự hợp tác trong phát triển ứng dụng đám
mây.
Mỗi nhà cung cấp có những sản phẩm chủ đạo có chất lượng tốt. Người
tiêu dùng có thể lựa chọn cho các nhu cầu của họ.
Người tiêu dùng hoàn toàn chủ động về phí dịch vụ phải trả.
Tóm lại, chợ ứng dụng đa đám mây O-Marketplace không chỉ là một hệ
sinh thái trung lập với nhà cung cấp, giảm khóa độc quyền, mà còn là một
hệ sinh thái kinh doanh hấp dẫn các ứng dụng đám mây cũng như tạo ra
cộng đồng năng động cho người tiêu dùng đám mây, nhà cung cấp và nhà
phát triển đám mây.
6
CHƯƠNG 4: MƠ HÌNH ỨNG DỤNG ĐA ĐÁM
MÂY KẾT HỢP
4.1. Giới thiệu
Theo quan điểm của chúng tôi, ứng dụng đám mây nên được thiết kế sử
dụng nhiều loại tài nguyên khác nhau do các nhà cung cấp dịch vụ đám
mây cung cấp. Chúng tơi đề xuất Mơ hình ứng dụng đa đám mây kết
hợp (Composable Application Model), một mơ hình ứng dụng đám mây
được tạo thành từ các thành phần phần trong đó phần mềm đám mây của
chợ đa đám mây được cấu tạo từ các thành phần phần mềm, mỗi thành
phần có thể được phát triển độc lập bởi các nhà phát triển khác nhau và có
cư trú trong các đám mây khác nhau. Do đó, sự phát triển của phần mềm
đám mây không thể bị ràng buộc với bất kỳ hệ sinh thái công nghệ của nhà
cung cấp đám mây nào.
4.2. Khái niệm mơ hình ứng dụng đa đám mây kết
hợp
Theo cách tiếp cận của chúng tôi, việc phát triển phần mềm đám mây
không nên bị ràng buộc với bất kỳ nhà cung cấp đám mây cụ thể nào. Một
phần mềm đám mây có thể triển khai trên các nền tảng đám mây tương
thích để tạo thành một hệ thống ứng dụng đám mây mà không cần phải tái
thiết kế hoặc phát triển lại. Từ đó, ứng dụng đám mây được phân tách thành
hai phần riêng biệt: phần mềm đám mây và nền tảng thực thi được cung
cấp bởi các nhà cung cấp đám mây cụ thể.
Kế
t nối
h
T
nhph
à
ầ n
h ầ n mể
p
m
2
0
..
Tà
hnhp
hầ
n
hn
p
ầ mể m
n -1
Thà nh ph
ần t ổh ợp
Thà
nhp
hầ
n
hầ
p
n mể m
n
Th
à h
nphầ
n
phầ
n mể m
n+
1
r iể
T
nk
ha i
...
hn
T
à hph
ầ n
h ầ n mể
p
m
1
0
T ri ể
nk ha i
hà
T
nhp
hn
ầ n
ề n tả
ng
1
0
T ri ể n k h a
i
hà
T
nh
ph
ầ nề
nn
t ả
ng
n
r iể n k h
T
a i
hà n
T
hh
pầ
nnề
n tả n
g
n+ 1
N ền tả ng th ực th i
Hình 4.1. Mơ hình ứng dụng đa đám mây kết hợp.
7
Chúng tơi định nghĩa khái niệm mơ hình ứng dụng nhiều thành phần
trong đó phần mềm đám mây được phân tách thành các thành phần riêng
biệt, mỗi thành phần trong số chúng có thể được lưu trữ trên các nền tảng
đám mây khác nhau. Mơ hình ứng dụng đám mây được đặt tên là Mơ hình
ứng dụng đa đám mây kết hợp (Hình 4.1).
4.2.1. Ứng dụng đám mây
Ứng dụng đám mây được xem như là một phần mềm dịch vụ bao gồm
một phần mềm đám mây hoạt động trên một nền tảng địch vụ đám mây.
Trên cơ sở này, ý tưởng của chúng tơi là ứng dụng đám mây có thể được
cấu trúc như là một hệ thống phân tán, các thành phần của ứng dụng
đám mây là các thành phần mềm đám mây được triển khai trên nhiều
nhà cung cấp dịch vụ. Ứng dụng đám mây được chia thành hai phần riêng
biệt: phần mềm đám mây nhiều thành phần và nền tảng thực thi (là một
hoặc một nhóm các nền tảng thực thi) như minh họa trong Hình 4.1. Thành
phần phần mềm có thể được phát triển riêng biệt với các nền tảng đám mây
bên dưới. Tất cả các phụ thuộc giữa phần mềm đám mây và nền tảng đám
mây phải được mơ tả rõ ràng vì chúng sẽ được sử dụng để kiểm tra tính
tương thích tại thời điểm triển khai. Có hai loại ứng dụng đám mây: ứng
dụng đám mây đơn nền tảng và ứng dụng đám mây đa nền tảng.
4.2.2. Phần mềm đám mây
Phần mềm đám mây: là một tập hợp các tạo tác (tức là mã nguồn và
dữ liệu) được nhóm thành một gói phần mềm theo một định dạng
chuẩn. Có một số loại phần mềm đám mây. Ở dạng đơn giản nhất, phần
mềm đám mây chỉ là một thành phần duy nhất có thể nằm trong một
nền tảng đám mây duy nhất. Phức tạp hơn, phần mềm đám mây là một
tổ hợp các thành phần phần mềm có thể được phân phối trên nhiều nền
tảng đám mây. Các nhà phát triển có thể xây dựng một ứng dụng chỉ
bằng cách tích hợp các thành phần hiện có vào giải pháp phần mềm của
riêng họ. Điều này sẽ giúp tăng khả năng tái sử dụng của các thành
phần phần mềm.
8
Thành phần Phần mềm Đám mây là một thành phần cơ bản của
CAM. Các thành phần phầm mềm được sử dụng để xây dựng phần
mềm đám mây phức tạp hơn. Bên cạnh code và dữ liệu, định nghĩa của
một thành phần phải chỉ rõ các điều kiện cần thiết để thành phần được
tích hợp với những thành phần khác và được triển khai trên một nền
tảng và/hoặc một nhóm nền tảng cụ thể. Một thành phần có thể là một
thành phần đơn hoặc là sự kết hợp của nhiều thành phần. Các thành
phần phần mềm đám mây được phân thành ba loại sau:
Thành phần phần mềm kiểu giản đơn là thành phần đơn lẻ dùng
cho xây dựng cho phần mềm đám mây. Một thành phần đơn giản
đóng gói mã và dữ liệu của nó cùng với các yêu cầu cần thiết để
chạy đúng cách. Nó cũng xác định rõ ràng các khả năng mà các
thành phần khác có thể cần khi kết hợp với nhau.
Ngăn xếp phần mềm: là một loại tổ hợp đa thành phần đặc biệt. Nó
xác định một chuỗi các thành phần phần mềm đám mây trong đó
một thành phần ở phía trên sử dụng các dịch vụ phần mềm được
cung cấp bởi các thành phần ngay dưới theo trình tự và đồng thời
nó thiết lập mơi trường cần thiết cho các thành phần trước đó trong
trình tự.Đặc điểm riêng là một ngăn xếp chỉ có thể được triển khai
trên một nền tảng duy nhất.
Tổ hợp phần mềm: là một dạng tổng quát hơn của tổ hợp nhiều
thành phần phần mềm đám mây. Khác với ngăn xếp phần mềm
đám mây, chỉ có thể được triển khai trên một nền tảng duy nhất,
một tổ hợp thành phần phần mềm đám mây có thể lưu trữ các thành
phần của nó trên nhiều nền tảng (có thể từ các nhà cung cấp đám
mây khác nhau). Sự phụ thuộc giữa các thành phần phần mềm phải
được thỏa mãn theo đặc điểm kỹ thuật mỗi thành phần.
4.2.3. Thành phần dịch vụ nền tảng
Thành phần dịch vụ nền tảng đám mây là một loại hệ thống thực thi
được cung cấp bởi các nhà cung cấp đám mây để chạy các thành phần
phần mềm đám mây. Chúng tôi cũng đề cập đến thuật ngữ nền tảng
đám mây như một mơ hình cung cấp IaaS (Cơ sở hạ tầng như một dịch
vụ) hoặc PaaS (Nền tảng như một dịch vụ). Nhiều nhà cung cấp dịch
9
vụ đám mây khác nhau có thể phát triển và cung cấp cùng một loại dịch
vụ nền tảng đám mây, nhưng khác nhau giá cả, chất lượng dịch vụ,
dung lượng tài ngun, chính sách, v.v.
4.3. Định nghĩa cơ bản mơ hình ứng dụng đa đám
mây kết hợp
4.3.1. Định nghĩa sự kết hợp
Để mô tả mối quan hệ của các thành phần trong ứng dụng đám mây
được mơ hình hóa bởi CAM, chúng tôi chỉ định hai loại phụ thuộc trong
mô hình ứng dụng đa đám mây: phụ thuộc phần mềm và phụ thuộc nền
tảng. Sự phụ thuộc phần mềm biểu thị sự liên kết giữa hai thành phần phần
mềm. Sự phụ thuộc vào nền tảng biểu thị khả năng triển khai của một cặp
thành phần phần mềm hoặc một cặp thành phần phần mềm và nền tảng đám
mây. Chúng tôi xác định hai yếu tố để tạo nên sự phụ thuộc: nhu cầu và
năng lực đáp ứng. Chúng tôi định nghĩa nhu cầu (reqs), năng lực đáp
ứng (caps) và điều kiện kết hợp các thành phần như sau:
Nhu cầu: biểu thị sự phụ thuộc của một thành phần vào một thành
phần khác. Nó đặt ra các điều kiện cần thiết để thành phần thực hiện
chức năng và thuộc tính hoạt động. Các giao diện và thuộc tính của
một thành phần được đóng gói trong đặc tả kỹ thuật của đặc tả nhu
cầu. Chúng tôi cụ thể hai loại nhu cầu: nhu cầu phần mềm và nhu cầu
nền tảng. Nhu cầu phần mềm (sreq) là một ràng buộc về chức năng và
thuộc tính hoạt động của một thành phần khác. Nhu cầu nền tảng
(preg) là một ràng buộc về môi trường và công nghệ của một thành
phần khác.
Năng lực đáp ứng: biểu thị khả năng hiện có có thể đáp ứng nhu cầu
từ bên ngồi. Chức năng và thuộc tính hoạt động của nó được thực
hiện khi nó thỏa mãn điều kiện từ một thành phần bên ngoài khác. Các
giao diện và thuộc tính được phản hồi của một thành phần được đóng
gói trong đặc tả năng lực đáp ứng. Chúng tôi chỉ định hai loại năng
lực đáp ứng: năng lực đáp ứng phần mềm và năng lực đáp ứng nền
tảng. Khả năng phần mềm (scap) cung cấp các chức năng và thuộc
10
tính hoạt động của một thành phần. Năng lực đáp ứng nền tảng (pcap)
cung cấp môi trường và công nghệ của một thành phần Trong cách
tiếp cận của chúng tôi, chúng tôi áp dụng thành phần.
Điều kiện kết hợp: chúng tôi xác định sự phụ thuộc giữa hai thành
phần là hợp lệ nếu nhu cầu của một thành phần phù này hợp với năng
lực đáp ứng của thành phần kia.
4.3.2. Định nghĩa mơ hình ứng dụng đa đám mây kết
hợp
Mục tiêu tiên quyết của chúng tôi là phát triển một mơ hình trừu tượng
của của mơ hình ứng dụng đa đám mây kết hợp (Hình 4.1), trong đó chúng
tơi bỏ qua các chi tiết triển khai của các thành phần mà tập trung vào mối
quan hệ giữa các thành phần bên trong một thành phần phần mềm và mối
quan hệ giữa một thành phần với các nền tảng cơ bản của nó.
4.3.2.1. Mơ hình phần mềm đám mây nhiều thành phần
Thành phầncơ s
ở
is- a
Thànhphần giảnđơ n top
is-a
Thànhphần ngănxếp
components
*
is- a
Thà
nh phần
phầnm ềm
1
base
Hình 4.3. Mơ tả cấu trúc của phần mềm đám mây đa thành phần.
Chúng tơi định nghĩa mơ hình phầm mềm đám mây đa thành phần là
một cấu trúc lồng nhau trong đó mỗi thành phần có thể là một thành phần
của các thành phần khác (Hình 4.3). Một số trong số chúng lại có thể là
thành phần của các thành phần nhỏ hơn khác. Cách tiếp cận này giúp tăng
mức độ tái sử dụng vì việc triển khai một thành phần phức tạp có thể được
sử dụng lại trong các tổ hợp phần mềm đám mây khác.
11
4.3.2.2. Mơ hình thành phần cơ sở
Thành phần cơ sở như miêu tả trong Hình 4.4, ba loại thành phần phần
mềm được mơ hình hóa dưới dạng các loại cấp độ của thành phần cơ sở.
Định nghĩa hình thức này cho phép chúng tôi xem xét các thành phần thuộc
các loại khác nhau một cách thống nhất như là các dạng đặc biệt của thành
phần cơ sở, mỗi thành phần có thuộc tính riêng của nó. Chúng tơi sử dụng
ký hiệu dấu chấm để tham chiếu đến thuộc tính của một thành phần.
Một thành phần phải có ít nhất các thuộc tính sau: (1) mơ tả các dịch vụ
phần mềm được cung cấp bởi thành phần (năng lực đáp ứng phần mềm scap), (2) thiết lập môi trường thực thi cung cấp cho các thành phần bên
trên theo cách thức ngăn xếp (năng lực đáp ứng nền tảng - pcaps), (3) mô
tả các dịch vụ phần mềm bổ sung cần thiết để chạy thành phần đúng cách
(nhu cầu phần mềm - sreqs), (4) và các nhu cầu cần thiết đối với nền tảng
bên dưới để lưu trữ thành phần phần mềm (nhu cầu nền tảng - preqs). Các
đặc tả kỹ thuật của các thành phần, tức là, mô tả các thuộc tính của thành
phần, được sử dụng để xác thực sự chính xác của thành phần tổ hợp và để
kiểm tra tính tương thích giữa thành phần và các nền tảng bên dưới của nó.
Các đặc tả kỹ thuật này được viết bởi các nhà phát triển và chúng không
cần thiết phải đối chiếu việc triển khai thực tế của các thành phần. Thay vào
đó, các nhà phát triển có thể chọn các nhu cầu và năng lực đáp ứng của
một thành phần từ một tập hợp các thuật ngữ đã được xác định trước.
Lưu ý rằng một thành phần có thể được lưu trữ trên nhiều nền tảng đám
mây từ các nhà cung cấp đám mây khác nhau. Các nhu cầu đáp ứng nền
tảng phải được cụ thể chi tiết cho từng nền tảng. Chúng tôi gọi cấp độ của
một thành phần là tổng số nền tảng thực thi để lưu trữ thành phần. Do đó,
các nhu cầu nền tảng cho nền tảng i được định nghĩa là preqs [i].
12
pcaps
sca ps
pr eqs [0]
T hàn h ph ần cơ sở
..
sr eqs
pr eqs[ d- 1]
Hình 4.4 Mơ tả thành phần cơ sở
Để thuận tiện, chúng tôi dùng các công thức như dưới đây:
preqs: là tập hợp các nhu cầu nền tảng.
reqs: là tập hợp tất cả các nhu cầu của phần mềm và nền tảng.
caps: là tập hợp tất cả năng lực đáp ứng của phần mềm và nền tảng.
4.3.2.3. Mô hình thành phần giản đơn
Thành phần giản đơn là hạt nhân của các thành phần trong mơ hình ứng
dụng đa đám mây kết hợp. Trong một định nghĩa đầy đủ, một thành phần
đơn giản phải cụ thể mã và dữ liệu của nó cũng như các đặc tả nhu cầu và
năng lực đáp ứng cần thiết. Một thành phần giản đơn được lưu trữ trên một
nền tảng duy nhất, tức là, (cấp độ = 1). Nếu tập hợp các nhu cầu của một
thành phần giản đơn trống (regs = ∅), thì thành phần đó có thể đại diện cho
một phần mềm đám mây hoàn chỉnh. Trong các trường hợp chung, một
thành phần giản đơn có thể kết hợp với các thành phần khác để tạo thành
một thành phần phức tạp hơn (tức là một ngăn xếp hoặc một tổ hợp).
13
4.3.2.4. Mơ hình thành phần ngăn xếp
Thành phần ngăn xếp phần mềm đám mây: hay gọi tắt là ngăn xếp
(Hình 4.5), biểu thị một chuỗi các thành phần đơn giản được triển khai
chồng lên nhau theo chiều dọc. Để đơn giản, chúng tôi định nghĩa một ngăn
xếp theo cách lồng nhau. Mỗi ngăn xếp có hai phần tử: (1) phần tử trên
cùng là một thành phần đơn giản nằm trên cùng của ngăn xếp, (2) và phần
tử cơ sở là một thành phần đơn giản hoặc một ngăn xếp khác đại diện cho
các thành phần còn lại trong chuỗi. Tương tự như thành phần giản đơn,
ngăn xếp phần mềm chỉ có thể được triển khai trên một nền tảng duy nhất
(cấp độ = 1).
pc a p
s
Thành phầ
n
i ảnđơn
g
( xế
p tr ên)
s re q s
c h y
ạ t rê n c ơ s ở
b ê n d ưới
s c a
ps
Thành phầ
n
ngăn x
ếp
(cơ sở)
p re q s
Hình 4.5 Mơ tả thành phần ngăn xếp.
Bên cạnh ưu điểm về khả năng tái sử dụng, việc kết hợp nhiều thành
phần vào một dạng ngăn xếp duy nhất sẽ giúp chúng tơi giảm chi phí triển
khai và quản lý bằng cách kết hợp các hoạt động tương ứng từ các phần tử
của ngăn xếp. Khi tạo một ngăn xếp, nhà phát triển phải chỉ định phần tử
trên cùng và phần tử cơ sở. Nhà phát triển cũng phải chỉ định các nhu cầu
và năng lực đáp ứng của ngăn xếp (tức là sreqs, preqs, scaps và pcaps),
giống như những nhu cầu và năng lực đáp ứng được đề cập trong thành
phần cơ sở. Sự kết hợp đúng của một ngăn xếp S phải thỏa mãn các luật
xác thực sau:
14
4.3.2.5. Mơ hình thành phần tổ hợp
Thành phần tổ hợp phần mềm đám mây: hay viết tắt là tổ hợp, biểu thị
một tập hợp các thành phần phần mềm được kết hợp trong một dạng thành
phần duy nhất để làm mờ đi sự phức tạp của các sự phụ thuộc bên trong của
chính nó. Thành phần phần mềm được coi là một đồ thị có hướng mà đỉnh
của nó là một thành phần giản đơn hoặc một ngăn xếp. Một cạnh từ thành
phần A đến thành phần B trong một tổ hợp biểu thị thành phần A sử dụng
các dịch vụ do thành phần B cung cấp tại thời điểm thực thi.
scaps
Th ành p hầ n
g iả n đơ n
(f i r st)
preqs[ 0]
Kết nối
..
Th ành phầ n
g iả n đơ n
( secon d)
sreq s
pr eqs[ d-1 ]
Hình 4.6. Mơ tả thành phần tổ hợp
Tương tự với ngăn xếp, chúng tôi áp dụng cấu trúc lồng nhau để định
nghĩa các tổ hợp. Mỗi tổ hợp bao gồm một tập hợp các thành phần và một
số trong số chúng có thể là các loại tổ hợp khác. Để đơn giản, chúng tơi xác
định một tổ hợp có hai phần tử (Hình 4.6): phần tử thứ nhất và phần tử thứ
hai. Sự phụ thuộc lẫn nhau của một thành phần được giới hạn trong sự phụ
thuộc phần mềm của thành phần thứ nhất vào thành phần thứ hai. Cấp độ
của thành phần được tính bằng tổng cấp độ của cấp độ thành phần thứ nhất
và cấp độ thành phần thứ hai. Khi tạo một tổ hợp, các nhà phát triển cần chỉ
định các nhu cầu và khả năng đáp ứng ra bên ngồi của nó. Hiện tại, chúng
tơi khơng cho phép các thành phần bên ngồi nằm trên một tổ hợp. Vì vậy,
thuộc tính pcaps phải trống. Các luật xác thực sau đây nên được áp dụng để
xác thực tính đúng đắn của tổ hợp C:
15
4.3.2.6 Mơ hình thành phần nền tảng
Thành phần nền tảng đám mây: hay viết tắt là nền tảng (Hình 4.7), được
sử dụng để mơ hình hóa dịch vụ nền tảng đám mây trong thị trường đám
mây. Đặc tả kỹ thuật của một nền tảng P phải mô tả các năng lực của nó
(pcaps) để phù hợp với các nhu cầu nền tảng của các thành phần phần mềm
đám mây nhằm triển khai trên đó. Trên thực tế, đặc tả kỹ thuật của nền tảng
được cung cấp bởi nhà cung cấp đám mây hoặc nhà môi giới dịch vụ như
chợ đám mây. Trong trường hợp này, các nhà phát triển và nhà cung cấp
đám mây nên đồng ý về cùng một tập hợp các điều khoản (terms) được xác
định trước về các nhu cầu và năng lực của nền tảng thực thi.
Thành phầ n nề n tảng
Ca ps
Hình 4.7. Mơ tả thành phần nền tảng.
Một tổ hợp phần mềm đám mây có thể nhu cầu nhiều hơn một nền tảng.
Chúng tơi xác định nhóm nền tảng là tập hợp các nền tảng đám mây được
sắp xếp theo thứ tự và nhóm nền tảng tương thích là nhóm nền tảng đáp
ứng các nhu cầu nền tảng của một thành phần. Các vị từ sau được sử dụng
để kiểm tra thuộc tính này:
16
Trong phần này, chúng tơi đã định nghĩa mơ hình ứng dụng đa đám mây
kết hợp về cơ bản. Ở các phần tiếp theo, chúng tôi xây dựng phương pháp
đặc tả cho mơ hình ứng dụng đa đám mây kết hợp.
4.4. Đặc tả ứng dụng đa đám mây kết hợp (CAM-D)
Với mục tiêu chuẩn hóa đặc tả ứng dụng đa đám mây, chúng tôi dề xuất
một phương pháp mô tả khơng chỉ có khả năng thể hiện các trạng thái vận
hành và thuộc tính của nó trong các mẫu mơ tả được tiêu chuẩn hóa mà cịn
đáp ứng các tính chất đa đám mây và của chợ ứng dụng đa đám mây OMarketplace. Để đạt được mục tiêu này, công việc của chúng tôi tập trung
vào việc phát triển các mẫu đặc tả cho CAM và các thành phần của nó. Đặc
tả của ứng dụng CAM được xây dựng từ các đặc tả riêng lẻ dựa trên các
luật kết hợp. Bởi vì CAM được định nghĩa là một cấu trúc lồng nhau, do
đó, phương pháp đặc tả phải thể hiện tính năng đặc biệt này. Các mẫu đặc
tả
đề
xuất
được
đăng
tải
theo
đường
dẫn:
/>
4.5. Thực nghiệm mơ hình ứng dụng đa đám mây kết
hợp
Để chứng minh tính khả thi mơ hình ứng dụng đa đám mây kết hợp, chúng
tôi chuyển đổi CAM-D sang đặc tả kỹ thuật TOSCA vì TOSCA là một tiêu
chuẩn phổ biến hiện nay để đặc tả ứng dụng đám mây. Tuy nhiên, TOSCA
chưa được phát triển để đặc tả ứng dụng đám mây nhiều thành phần. Quy
trình được tiến hành theo hai bước:
1. Làm phẳng script đặc tả của CAM-D thành tổ hợp đặc tả có cấu
trúc phẳng.
2. Chuyển đổi tổ hợp có cấu trúc phẳng sang đặc tả TOSCA.
17
4.6. Một số ứng dụng của mơ hình ứng dụng đa đám
mây kết hợp trong ngữ cảnh của chợ ứng dụng
đa đám mây O-Marketplace
4.6.1. Phương thức ghép hợp dịch vụ trên chợ ứng
dụng đa đám mây O- Marketplace
4.6.1.1. Đề xuất cách tiếp cận cho giải pháp ghép hợp dịch
vụ đa đám mây
Các nghiên cứu trước đây về kết hợp dịch vụ đám mây còn tồn tại một
số hạn chế: (i) tính tương thích và sự phụ thuộc giữa các thành phần trong
ứng dụng đám mây đa thành phần chưa chựa xem xét; (ii) các giải pháp kết
hợp chưa được định nghĩa đầy đủ theo một mẫu chuẩn ứng dụng đa đám
mây, (iii) chưa có nghiên cứu nào đề cập đến việc ghép hợp phần mềm đám
mây nhiều thành phần với các nền tảng thực thi được cung cấp bởi các nhà
cung cấp khác nhau.
Để giải quyết vấn đề này, chúng tơi đề xuất cách tiếp cận xác định chính
xác các ràng buộc công nghệ giữa các thành phần phần mềm và giữa thành
phần phần mềm với nền tảng thực thi bởi các luật kết hợp để xác thực tính
chính xác của các tổ hợp phần mềm và triển khai. Bên cạnh đó, chúng tơi
phát triển một giải thuật ghép hợp để tìm kiếm một nhóm các nền tảng thực
thi tương thích của một ứng dụng đám mây theo các tiêu chí được yêu cầu
từ người tiêu dùng dịch vụ đám mây.
18
4.6.1.2. Ngữ cảnh ghép hợp dịch vụ đa đám mây
Theo định nghĩa của mơ hình ứng dụng đa đám mây kết hợp, các thành
phần phần mềm được phát triển bởi các nhà phát triển độc lập, phát hành
trên chợ ứng dụng đa đám mây và có khả năng triển khai trên các nền tảng
tương thích được đề nghị bởi chợ ứng dụng. Có nhiều nền tảng thực thi có
khả năng cung cấp mơi trường thích hợp cho thành phần phần mềm đám
mây. Để phát triển tính năng gợi ý của của chợ ứng dụng, dựa trên mơ hình
ứng dụng đa đám mây kết hợp, chúng tôi phát triển một phương thức ghép
hợp, giải thuật đề xuất hỗ trợ hiệu quả người tiêu dùng tìm các nền tảng
thực thi tương thích cho phần mềm đám mây bằng cách kết hợp nhu cầu
nền tảng thực thi với năng lực đáp ứng nền tảng của các nền tảng thực thi.
4.6.1.3. Giải thuật ghép hợp
Chúng tôi giả định rằng một giài pháp nền tảng thực thi cho một phần
mềm đám mây là một tập hợp các nền tảng thực thi tương thích (PG) của
một thành phần phần mềm (C). Có thể có nhiều hơn một giải pháp cùng
loại nền tảng ở một vài nhà cung cấp dịch vụ đám mây (khác giá và chất
lượng). Lựa chọn một giải pháp tôi ưu nghĩa là cần phải tạo sự so sánh giữa
các giải pháp dựa trên hàm giá Cost(PG) được đề xuất cho một giải pháp
nền tảng thực thi. Một vài ví dụ cho hàm giá như sau:
Hàm giá này giúp người tiêu dùng lựa chọn một giải pháp nền tảng thực
thi với giá tốt nhất.
Hàm giá này giúp người tiêu dùng lựa chọn một giải pháp nền tảng thực
thi với số lượng nền tảng thực thi là ít nhất.
Trên cơ sở hàm giá này chúng tôi phát triển giải thuật ghép hợp để đề
xuất giải pháp nền tảng thực thi tương thích, mã giả của giải thuật được
trình bày như dưới đây:
00. Algorithm Matchmaking(C, PS);
01. Input:
02. - A cloud software component C
19
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
- A set of cloud platforms PS
Output:
- A compatible platform group PG to the component C whose
members are selected
from PS.
Begin
d := C.degree;
For i := 0 to d – 1 do
Begin
CPL[i] := ;
For each P PS do
If compatibleWithReqs(P, C.preqs[i])
Then CPL[i] := CPL[i] {P};
End
min_cost := INFINITY;
best_solution := NULL;
For each PG in (CPL[0] x CPL[1] x … x CPL[d - 1]) do
If Cost(PG) < min_cost
Then
Begin
min_cost := Cost(PG);
best_solution := PG;
End;
Return PG;
End;
4.6.2. Áp dụng CAM nâng cao tính di dộng của ứng
dụng đám mây
4.6.2.1. Đề xuất cách tiếp cận để nâng cao tính di động của
ứng dụng đa đám mây
Theo cách tiếp cận của chúng tôi, Bản thiết kế chi tiết (Blueprint) là các
kế hoạch điều phối ứng dụng đám mây; nó là cơ sở để triển khai và cấu
hình một ứng dụng đa đám mây. Nếu có sự thay đổi trong dịch vụ nền tảng
thực thi, Bản thiết kế chi tiết phải được sửa đổi các tham số theo đặc tả nền
tảng thực thi mới. Bản thiết kế chi tiết cập nhật được sử dụng để triển khai
lại một hoặc một số thành phần phần mềm và thiết lập lại các kết nối liên
quan. Để đảm bảo rằng Bản thiết kế chi tiết được cập nhật chính xác, các
phép biến đổi hai chiều (BX) là một cách tiếp cận hiệu quả để đồng bộ hóa
chính xác.
20
4.6.2.2. Phương thức cập nhật tự động Bản thiết kế chi tiết
ứng dụng đa đám mây
Ý tưởng của chúng tôi là cung cấp và công cụ hỗ trợ để cập nhật mơ
hình ứng dụng đa đám mây. Nền tảng này nhằm mục đích cập nhật mơ hình
ứng dụng với các tham số mới từ các đặc tả kỹ thuật của nền tảng thực thi
mới. Cách tiếp cận này có khả năng đáp ứng với đa số công nghệ và sự
chuyển đổi xu hướng công nghệ. Các cách tiếp cận khác khơng thể hỗ trợ
nhiều nền tảng thực thi.
Hình 5.3 Tiến trình tự động cấp nhật Bản thiết kế chi tiết của ứng dụng
đám mây.
4.6.3. Áp dụng CAM cho tự động sửa lỗi ứng dụng đa
đám mây
4.6.3.1. Đề xuất cách tiếp cận sửa lỗi tự động ứng dụng đa
đám mây
Chúng tôi đề xuất một cách tiếp cận có tính khả thi để tự động sửa chữa các
thành phần ứng dụng đám mây bị lỗi theo hai bước: tự động phát hiện lỗi và tái
triển khai. Các quy trình này dựa trên việc sử dụng Bản thiết kế chi tiết
(Blueprint) của ứng dụng đa đám mây là đặc tả của mơ hình ứng dụng đa đám
mây kết hợp. Do đó, ứng dụng đám mây được tự động sửa chữa bằng cách
triển khai lại thành phần bị lỗi và thiết lập lại kết nối ứng dụng để hoạt động
của ứng dụng đám mây như trạng thái ban đầu.
4.6.3.2. Tiến trình sửa lỗi tự động ứng dụng đa đám mây
Tiến trình tự sửa lỗi hoạt động trên cơ sở Bản thiết kế chi tiết, nó mơ tả các
quan hệ giữa các thành phần của ứng dụng đa đám mây. Tiến trình gồm 3 bước
như sau:
21
Bước 1: Bộ phát hiện lỗi giám sát hoạt động của các thành phần dịch vụ
dựa trên trạng thái hoạt động của các thành phần và trạng thái kết nối theo các
đặc tả trong Bản thiết kế chi tiết.
Bước 2: Nếu phát hiện lỗi, bộ phát hiện lỗi gửi yêu cầu đến công cụ triển
khai đa đám mây.
Bước 3: Công cụ triển khai ứng dụng đa đám mây phân tích yêu cầu từ bộ
phát hiện lỗi để tái triển khai và tái thiết lập các kết nối bên trong.
Hình 5.10 Tiến trình tự động sửa lỗi phần mềm đa đám mây.
4.7. Thảo luận về mơ hình ứng dụng đa đám mây kết
hợp
Mơ hình ứng dụng đa đám mây kết hợp là nền tảng lõi của các giải pháp
liên quan đến sự phát triển của O-Marketplace. Nó cũng đóng một vai trò
quan trọng trong việc phát triển ứng dụng đám mây.
4.5.1. Vai trị của mơ hình ứng dụng đa đám mây kết
hợp trong mơ hình chợ ứng dụng đa đám mây OMarketplace
Mơ hình ứng dụng đa đám mây kết hợp làm thay đổi vai trò của các nhà
cung cấp để tăng giá trị cho người sử dụng và nhà phát triển vì cấu trúc của
nó hỗ trợ giảm bớt khóa độc quyền.
Về phía nhà phát triển, CAM có vai trị quan trọng trong việc phát triển
ứng dụng đa đám mây. Thay vì phụ thuộc vào các nhà cung cấp như trước
đây, các nhà phát triển trở thành hoa tiêu cho sự phát triển. Họ có thể tự do
phát triển ứng dụng đám mây tách biệt với hệ sinh thái công nghệ của nhà
22