Tải bản đầy đủ (.pdf) (129 trang)

Kết hợp khai phá dữ liệu và phương pháp hình thức cho bài toán tổ hợp và kiểm chứng dịch vụ web

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.38 MB, 129 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA

HUỲNH TẤN KHẢI

KẾT HỢP KHAI PHÁ DỮ LIỆU VÀ PHƯƠNG PHÁP HÌNH THỨC
CHO BÀI TỐN TỔ HỢP VÀ KIỂM CHỨNG DỊCH VỤ WEB

LUẬN ÁN TIẾN SĨ KỸ THUẬT

TP. HỒ CHÍ MINH NĂM 2018


ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA

HUỲNH TẤN KHẢI

KẾT HỢP KHAI PHÁ DỮ LIỆU VÀ PHƯƠNG PHÁP HÌNH THỨC
CHO BÀI TỐN TỔ HỢP VÀ KIỂM CHỨNG DỊCH VỤ WEB

Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 62.48.01.01

Phản biện độc lập 1: GS. TS. Nguyễn Thanh Thủy
Phản biện độc lập 2: PGS. TS. Hồ Bảo Quốc

Phản biện 1: PGS. TS. Đỗ Phúc
Phản biện 2: PGS. TS. Trần Mạnh Hà
Phản biện 3: PGS. TS. Dương Tuấn Anh


NGƯỜI HƯỚNG DẪN KHOA HỌC
1. PGS. TS. Quản Thành Thơ
2. PGS. TS. Bùi Hoài Thắng


LỜI CAM ĐOAN
Tác giả xin cam đoan đây là công trình nghiên cứu của bản thân tác giả. Các kết quả
nghiên cứu và các kết luận trong luận án này là trung thực, và không sao chép từ bất kỳ
một nguồn nào và dưới bất kỳ hình thức nào. Việc tham khảo các nguồn tài liệu (nếu
có) đã được thực hiện trích dẫn và ghi nguồn tài liệu tham khảo đúng quy định.

Tác giả luận án

Chữ ký

Huỳnh Tấn Khải

i


TÓM TẮT LUẬN ÁN
Tái sử dụng thành phần được xem là phương pháp phát triển nhanh phần mềm có nhiều
ưu điểm và được sử dụng rộng rãi. Kiến trúc hướng dịch vụ (SOA) là kiến trúc phần
mềm giúp xây dựng các hệ thống CNTT thông qua các thành phần được đóng gói dưới
dạng các dịch vụ. Do vậy, có thể nói phương pháp phát triển phần mềm dựa trên tái sử
dụng được áp dụng trong SOA. Dịch vụ Web là dịch vụ mà chúng hoạt động và giao tiếp
sử dụng các giao thức Internet. Một dịch vụ Web cung cấp hồn chỉnh một chức năng
nào đó. Tuy nhiên, một dịch vụ đơn lẻ khơng phải lúc nào cũng có thể đáp ứng được các
yêu cầu người dùng. Do đó, tổ hợp dịch vụ Web là vấn đề hết sức quan trọng của trong
kiến trúc hướng dịch vụ.

Tổ hợp dịch vụ Web là bài tốn có độ phức tạp hàm mũ. Để giảm độ phức tạp tính tốn,
chúng ta cần sàng lọc dịch vụ ứng viên ở mỗi bước tổ hợp bằng các kỹ thuật khai phá
dữ liệu và ứng dụng phương pháp tìm kiếm dựa trên heuristic. Ngồi ra, để tổ hợp thỏa
các loại ràng buộc khác nhau, đặc biệt là ràng buộc quan hệ thời gian giữa các dịch vụ,
thì phương pháp hình thức cần được áp dụng, do các phương pháp truyền thống như lập
kế hoạch không thể kiểm tra các ràng buộc này.
Các đóng góp chính của luận án được tóm tắt như sau:
i.

Luận án đề xuất một khung thức tổng quát cho bài toán tổ hợp thành phần phần mềm
nói chung và tổ dịch vụ Web nói riêng một cách tự động.

ii. Luận án đề xuất cách đặc tả hình thức cho dịch vụ Web và mơ hình hóa thư viện
dịch vụ dưới dạng mơ hình LTS4WS. Do đó, việc tổ hợp và kiểm chứng được thực
hiện theo phương pháp kiểm tra mơ hình.
iii. Tiếp theo, luận án đưa ra giải pháp kiểm soát vấn đề bùng nổ khơng gian trạng thái
của bài tốn tổ hợp bằng cách áp dụng phương pháp tìm kiếm heuristic và lập chỉ
mục dựa trên bit nhị phân.
iv. Luận án đưa ra phương pháp gom cụm các dịch vụ Web dựa trên luận lý nhằm hỗ
trợ truy xuất đúng các dịch vụ cần cho việc tổ hợp.
v. Cuối cùng, luận án đã xây dựng cơng cụ hồn chỉnh tên là WSCOVER cho việc tổ
hợp và kiểm chứng tổ hợp dịch vụ Web tự động.
Từ khóa: Tổ hợp dịch vụ Web, kiểm chứng tổ hợp dịch vụ Web, gom cụm dịch vụ Web,
WSCOVER, tìm kiếm tổ hợp dịch vụ Web dựa trên heuristic.
ii


ABSTRACT
Components Reuse is considered a method of the rapid software development approach
that has many advantages and is widely used. Service-Oriented Architecture (SOA) is a

software architecture that helps build information technology systems through
components that are packaged as services. Thus, it can be said that component-based
software development method are reused in SOA. Web services are services which
operate and communicate using Web protocols. A Web service provides complete
functionality. However, a single Web service is unlikely to meet the user requirements.
Therefore, Web Service Composition is a very important issue in SOA.
Web service composition is a exponential complexity problem. To reduce the
complexity, we need to filter the candidate services at each composition step by using
data mining techniques and applying the heuristic-based searching method. In addition,
in order to the composition satisfies different kinds of constraints, especially the temporal
relationship constraint between services, the formal methods should be applied. Because
the traditional approaches such as planning can not check these constraints.
The main contributions of the thesis are summarized as follows.
i.

The thesis proposes a general framework for software component composition in
general and Web service composition in particular.

ii. The thesis proposes a formal specification for Web services and formalize the Web
service repository as an LTS4WS model. Based on this model, the Web service
composition and verification is done by using the model checking technique.
iii. Next, the thesis presents a solution to control the state space explosion problem of
composition problem by applying the heuristic-based searching method and the
bitwise-based indexing technique.
iv. The thesis proposes a logic-based Web services clustering method to support the
filtering of candidate services needed for the composition process.
v. Finally, the thesis has built a complete tool called WSCOVER for composing and
verifying the Web service composition automatically.
Keywords: Web service composition, Web service verification, Web clustering,
WSCOVER, and Heuristic-based Web service composition searching.

iii


LỜI CẢM ƠN
Đầu tiên, tôi xin được gởi lời tri ân sâu sắc nhất đến PGS. TS. Quản Thành Thơ và TS.
Bùi Hồi Thắng, hai thầy đã tận tình hướng dẫn, định hướng và động viên tôi trong suốt
thời gian học tập, nghiên cứu và thực hiện luận án này.
Tôi xin chân thành cảm ơn Hiệu trưởng, Ban giám hiệu, phòng Sau đại học, Khoa Khoa
học và Kỹ thuật Máy tính, Bộ mơn Cơng nghệ phần mềm và đồng nghiệp ở Trường Đại
học Bách Khoa Tp. Hồ Chí Minh đã hỗ trợ tơi trong q trình học tập, thực hiện và bảo
vệ luận án.
Cuối cùng, tơi muốn bày tỏ lịng biết ơn sâu sắc đến Cha, Anh Chị, Vợ và các con ln
là điểm tựa vững chắc, đã chăm sóc và tiếp thêm nghị lực giúp tơi có thể hồn thành tốt
luận án này.

Tp. HCM, tháng 9 năm 2017
Tác giả luận án

iv


MỤC LỤC
LỜI CAM ĐOAN ......................................................................................................... i
TÓM TẮT LUẬN ÁN .................................................................................................ii
ABSTRACT .............................................................................................................. iii
LỜI CẢM ƠN ............................................................................................................ iv
MỤC LỤC ................................................................................................................... v
DANH MỤC CÁC HÌNH ẢNH ................................................................................. ix
DANH MỤC CÁC BẢNG BIỂU ................................................................................ x
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................. xi

CHƯƠNG 1 GIỚI THIỆU ........................................................................................ 1
Bối cảnh nghiên cứu ....................................................................................... 1
1.1.1 Vấn đề tái sử dụng thành phần .................................................................. 2
1.1.2 Bài toán tổ hợp dịch vụ Web..................................................................... 3
Phát biểu vấn đề .............................................................................................. 7
Câu hỏi nghiên cứu ......................................................................................... 8
Mục tiêu nghiên cứu ....................................................................................... 8
Những đóng góp chính của nghiên cứu ........................................................... 9
Tầm quan trọng của nghiên cứu .................................................................... 11
Giới hạn của nghiên cứu ............................................................................... 12
Bố cục của luận án ........................................................................................ 12
CHƯƠNG 2 TÌNH HÌNH NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG ............. 14
Tình hình nghiên cứu .................................................................................... 14
2.1.1 Giới thiệu về kiến trúc hướng dịch vụ ..................................................... 14
2.1.2 Tổ hợp các dịch vụ Web ......................................................................... 15
2.1.3 Kiểm chứng việc tổ hợp dịch vụ Web ..................................................... 19
2.1.4 Các đề xuất và định hướng cho nghiên cứu ............................................. 21
Kiến thức nền tảng ........................................................................................ 22
2.2.1 Các phương pháp hình thức .................................................................... 22
2.2.2 Khai phá dữ liệu ..................................................................................... 26
2.2.3 Tìm kiếm dựa trên heuristic .................................................................... 28
Kết chương ................................................................................................... 31

v


CHƯƠNG 3 KHUNG THỨC TỔNG QUÁT TỔ HỢP THÀNH PHẦN PHẦN MỀM
TỰ ĐỘNG ......................................................................................... 32
Đặc tả hình thức cho thành phần phần mềm .................................................. 32
3.1.1 Đặc tả thành phần dựa trên luận lý bậc nhất ............................................ 32

3.1.2 Tính độ tương tự giữa các thành phần dựa trên luận lý bậc nhất.............. 33
3.1.3 Tổ hợp thành phần dựa trên lập kế hoạch trí tuệ nhân tạo ....................... 34
Khung thức tổ hợp thành phần phần mềm đề xuất ......................................... 35
3.2.1 Thành phần xử lý giao diện người dùng .................................................. 35
3.2.2 Chức năng tổ hợp thành phần ................................................................. 36
3.2.3 Chức năng lựa chọn thành phần .............................................................. 36
3.2.4 Thư viện đặc tả thành phần phần mềm .................................................... 37
Thí nghiệm minh họa .................................................................................... 37
Kết chương ................................................................................................... 39
CHƯƠNG 4 TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH VỤ WEB DỰA TRÊN
KIỂM TRA MƠ HÌNH....................................................................... 41
Ví dụ động cơ ............................................................................................... 41
Xây dựng mơ hình ........................................................................................ 43
4.2.1 Đặc tả hình thức cho dịch vụ Web .......................................................... 43
4.2.2 Quản lý các thuộc tính chất lượng dịch vụ .............................................. 48
4.2.3 Tổ hợp và kiểm chứng dịch vụ dựa trên kiểm tra mơ hình ...................... 49
Áp dụng thực nghiệm .................................................................................... 51
4.3.1 Minh họa thí nghiệm............................................................................... 51
4.3.2 Kết quả thực nghiệm ............................................................................... 52
Kết chương ................................................................................................... 55
CHƯƠNG 5 KIỂM SỐT BÙNG NỔ KHƠNG GIAN TRẠNG THÁI CHO BÀI
TOÁN TỔ HỢP DỊCH VỤ WEB ....................................................... 56
Tìm kiếm heuristic cho bài tốn tổ hợp dịch vụ Web..................................... 56
5.1.1 Tìm kiếm trong kiểm tra mơ hình ........................................................... 56
5.1.2 Các hàm xử lý tính tốn .......................................................................... 57
5.1.3 Đánh giá hàm heuristic ........................................................................... 59
5.1.4 Trường hợp thí nghiệm ........................................................................... 60
Lập chỉ mục dịch vụ Web dựa trên bit nhị phân ............................................ 60
5.2.1 Giới thiệu................................................................................................ 60
vi



5.2.2 Phương pháp thực hiện ........................................................................... 61
5.2.3 Trường hợp thí nghiệm ........................................................................... 66
Kết quả thực nghiệm ..................................................................................... 68
Kết chương ................................................................................................... 70
CHƯƠNG 6 GOM CỤM CÁC DỊCH VỤ WEB DỰA TRÊN LUẬN LÝ .............. 71
Ví dụ động cơ ............................................................................................... 71
Gom cụm dịch vụ Web dựa trên luận lý ........................................................ 76
6.2.1 Biểu diễn luận lý của dịch vụ Web.......................................................... 76
6.2.2 Độ tương tự giữa các dịch vụ Web dựa trên luận lý ................................ 76
6.2.3 Gom cụm dịch vụ Web dựa trên luận lý .................................................. 80
6.2.4 Hướng tiếp cận gom cụm kiểm soát chất lượng cụm dịch vụ Web .......... 85
Kết quả thực nghiệm ..................................................................................... 87
6.3.1 Điều chỉnh tham số cho việc gom cụm.................................................... 88
6.3.2 Đánh giá về chất lượng của các phương pháp gom cụm .......................... 89
6.3.3 Đánh giá hiệu suất của bài toán tổ hợp và kiểm chứng dịch vụ Web ....... 90
6.3.4 Tác động của chất lượng gom cụm lên kết quả tổ hợp dịch vụ Web ........ 92
Kết chương ................................................................................................... 92
CHƯƠNG 7 CÔNG CỤ TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH VỤ WEB
TỰ ĐỘNG WSCOVER...................................................................... 94
Chức năng của WSCOVER .......................................................................... 94
7.1.1 Tổ hợp và kiểm chứng theo cách on-the-fly ............................................ 94
7.1.2 Tổ hợp dịch vụ Web có sự định hướng heuristic ..................................... 95
7.1.3 Gom cụm các dịch vụ Web dựa trên luận lý............................................ 95
Kiến trúc của WSCOVER ............................................................................. 96
7.2.1 Tầng tiền xử lý........................................................................................ 96
7.2.2 Tầng xử lý tổ hợp và kiểm chứng ........................................................... 97
7.2.3 Tầng giao diện người dùng ..................................................................... 97
So sánh WSCOVER với các công cụ hiện có ................................................ 98

Minh họa cơng cụ WSCOVER.................................................................... 101
7.4.1 Ví dụ minh họa ..................................................................................... 101
7.4.2 Kết quả thực nghiệm và so sánh với các công cụ khác .......................... 102
Kết chương ................................................................................................. 103

vii


CHƯƠNG 8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................................... 104
Kết luận ...................................................................................................... 104
Hướng phát triển ......................................................................................... 105
8.2.1 Xử lý vấn đề ngữ nghĩa của dịch vụ Web dựa trên ontology ................. 105
8.2.2 Khai thác thư viện dịch vụ Web với các phương pháp khai phá dữ liệu
khác ...................................................................................................... 105
8.2.3 Áp dụng mơ hình xác suất và học máy trong việc xử lý thư viện dịch vụ
Web ...................................................................................................... 106
8.2.4 Cho phép đặc tả yêu cầu người dùng dưới dạng ngôn ngữ tự nhiên....... 106
8.2.5 Một số hướng nghiên cứu mở rộng khác ............................................... 106
DANH MỤC CƠNG TRÌNH ĐÃ CƠNG BỐ .......................................................... 107
CÁC ĐỀ TÀI NGHIÊN CỨU KHOA HỌC ĐÃ THAM GIA THỰC HIỆN............ 109
TÀI LIỆU THAM KHẢO ....................................................................................... 110

viii


DANH MỤC CÁC HÌNH ẢNH
Hình 1-1. Quy trình tái sử dụng thành phần ................................................................. 2
Hình 1-2. Quá trình tổ hợp thành phần tổng qt ......................................................... 6
Hình 1-3. Khơng gian trạng thái tổ hợp dịch vụ ........................................................... 7
Hình 2-1. Sơ đồ cộng tác giữa các đối tượng trong kiến trúc hướng dịch vụ [9] ......... 14

Hình 2-2. Minh hoạ phương pháp tổ hợp dịch vụ Web theo cách phân đoạn [33] ...... 16
Hình 2-3. Kiểm chứng dịch vụ Web tổ hợp BPEL sử dụng timed automata [41]........ 20
Hình 2-4. Vị trí và chức năng của kiểm tra mơ hình trong kiểm tra hệ thống [51] ...... 24
Hình 3-1. Kiến trúc tổng qt của khung thức [CT6] ................................................. 36
Hình 3-2. Ví dụ minh họa làm việc của khung thức khi tổ hợp hàm thư viện [CT6] ... 39
Hình 4-1. Kết quả tổ hợp dịch vụ Web đặt chuyến du lịch ......................................... 42
Hình 4-2. Ví dụ trực quan của một hệ thống chuyển trạng thái có gán nhãn – LTS .... 45
Hình 4-3. Ví dụ trực quan về mơ hình LTS4WS [CT8] .............................................. 47
Hình 4-4. Khơng gian trạng thái tìm kiếm khi tổ hợp dịch vụ [CT7] .......................... 51
Hình 4-5. Kết quả tổ hợp dịch vụ Web đặt chuyến du lịch ......................................... 51
Hình 4-6. Biểu đồ so sánh trực quan về số trạng thái được mở rộng........................... 53
Hình 4-7. Biểu đồ so sánh trực quan về số trạng thái được duyệt ............................... 54
Hình 4-8. Biểu đồ so sánh trực quan về thời gian xử lý (ms) ...................................... 55
Hình 5-1. Ví dụ minh hoạ về việc tính tốn các giá trị chi phí G1, G2, H, F ................ 58
Hình 5-2. So sánh kết quả tổ hợp khi có và khơng có áp dụng tìm kiếm heuristic ...... 60
Hình 5-3. Thể hiện trực quan kết quả về kiểm sốt bùng nổ khơng gian trạng thái ..... 69
Hình 6-1. Mơ hình và khơng gian trạng thái của bài toán tổ hợp dịch vụ Web [CT2] . 73
Hình 6-2. Minh họa về cơ chế hoạt động của các phương pháp gom cụm [CT2] ........ 87
Hình 6-3. So sánh trực quan về thời gian xử lý khi thay đổi số lượng cụm k .............. 89
Hình 6-4. So sánh trực quan giữa các phương pháp gom cụm .................................... 90
Hình 6-5. So sánh trực quan về kết quả tổ hợp với các trường hợp gom cụm ............. 91
Hình 6-6. Tác động của phương pháp gom cụm lên bài toán tổ hợp dịch vụ Web ...... 92
Hình 7-1. Kiến trúc của cơng cụ WSCOVER [CT8], [CT10] ..................................... 96
Hình 7-2. Giao diện công cụ WSCOVER – phiên bản chạy cục bộ trên máy tính ...... 98
Hình 7-3. Giao diện cơng cụ WSCOVER – phiên bản chạy trực tuyến ...................... 99
Hình 7-4. So sánh trực quan giữa các công cụ tổ hợp dịch vụ Web .......................... 103

ix



DANH MỤC CÁC BẢNG BIỂU
Bảng 1-1. Thư viện các dịch vụ Web hỗ trợ đặt chuyến du lịch trực tuyến ................... 4
Bảng 1-2. Các yêu cầu về đặt chuyến du lịch của người dùng ...................................... 4
Bảng 2-1. Cơng thức tính tốn cho từng thuộc tính QoS và từng trường hợp tổ hợp .. 17
Bảng 2-2. Các tiêu chí phân loại các phương pháp tổ hợp dịch vụ Web [28] .............. 19
Bảng 2-3. Ưu và nhược điểm của các hướng tiếp cận tổ hợp [28] .............................. 19
Bảng 2-4. Các phép toán liên kết thời gian trong LTL [17] ........................................ 25
Bảng 4-1. Tập dữ liệu thực nghiệm ............................................................................ 52
Bảng 4-2. Kết quả thực nghiệm về số trạng thái được mở rộng .................................. 53
Bảng 4-3. Kết quả thực nghiệm về số trạng thái được duyệt ...................................... 54
Bảng 4-4. Kết quả thực nghiệm về thời gian xử lý (ms) ............................................. 54
Bảng 5-1. Vector nhị phân đầu vào và đầu ra của các dịch vụ Web trong Bảng 1-1 ... 62
Bảng 5-2. Các vector nhị phân thể hiện yêu cầu của người dùng................................ 62
Bảng 5-3. Bảng chỉ mục kết quả của các dịch vụ Web trong Bảng 1-1 ....................... 63
Bảng 5-4. Danh sách các dịch vụ Web ứng viên tại bước đầu tiên ............................. 66
Bảng 5-5. Danh sách các dịch vụ được chọn sau khi gọi thực thi dịch vụ CS ............. 66
Bảng 5-6. Danh sách các dịch vụ Web được chọn sau khi tổ hợp dịch vụ CH ............ 67
Bảng 5-7. Danh sách các dịch vụ Web được chọn sau khi tổ hợp dịch vụ HP ............ 67
Bảng 5-8. Kết quả thực nghiệm về kiểm sốt bùng nổ khơng gian trạng thái ............. 68
Bảng 6-1. Các tình huống đặt chuyến du lịch của người dùng .................................... 72
Bảng 6-2. Kết quả gom cụm dựa trên luận lý của các dịch vụ Web trong Bảng 1-1 ... 85
Bảng 6-3. Kết quả thực nghiệm khi điều chỉnh giá trị số lượng cụm (k) ..................... 88
Bảng 6-4. So sánh chất lượng và thời gian xử lý giữa các phương pháp gom cụm ..... 90
Bảng 6-5. Kết quả thực nghiệm khi áp dụng phương pháp gom cụm k-means............ 91
Bảng 6-6. Tác động của phương pháp gom cụm lên bài toán tổ hợp dịch vụ Web ...... 92
Bảng 7-1. So sánh các công cụ tổ hợp và kiểm chứng dịch vụ Web ........................... 98
Bảng 7-2. Các yêu cầu minh họa và kết quả tương ứng [CT10] ............................... 101
Bảng 7-3. Kết quả thực nghiệm so sánh giữa các công cụ ........................................ 102

x



DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Viết đầy đủ

Ý nghĩa

AI

Artificial Intelligence

Trí tuệ nhân tạo

BPEL

Business Process Execution
Language

Ngơn ngữ thực thi tiến trình nghiệp vụ

CNPM

Cơng nghệ phần mềm

Cơng nghệ phần mềm

FOL


First-Order Logic

Luận lý bậc nhất

FSP

Finite State Process

Tiến trình trạng thái hữu hạn

GA

Genetic Algorithm

Giải thuật di truyền

GPA

Grade Point Average

Điểm trung bình

HAC

Hierarchical Agglomerative
Clustering

Giải thuật gom cụm tích tụ có phân
cấp


HPN

Higher-level Petri Net

Mạng Petri cấp cao hơn

HTML

HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản

HTTP

Hypertext Transfer Protocol

Giao thức truyền tải siêu văn bản

JSON

JavaScript Object Notation

Kiểu dữ liệu ký hiệu đối tượng sử
dụng Javascript

LTL

Linear Temporal Logic

Luận lý thời gian tuyến tính

LTS


Labelled Transition System

Hệ thống chuyển trạng thái có gán
nhãn

LTS4WS

Labelled Transition System
for Web Service

Hệ thống chuyển trạng thái có gán
nhãn cho dịch vụ Web

NLP

Natural-Language
Programming

Lập trình ngôn ngữ tự nhiên

OWL-S

Web Ontology Language for
Services

Ngôn ngữ mô tả Ontology cho dịch vụ
Web

OWLS-TC


OWL-S Test Collection

Bộ dữ liệu kiểm tra dịch vụ dựa trên
ngôn ngữ OWL-S

PAT

Process Analysis Toolkit

Công cụ phân tích quy trình (Bộ kiểm
tra mơ hình PAT)

PDDL

Planning Domain Definition
Language

Ngơn ngữ định nghĩa miền lập kế
hoạch

PN

Petri Net

Mạng Petri

xi



QoS

Quality of Service

Chất lượng dịch vụ

REST

Representational State
Transfer

Truyền tải trạng thái đại diện

RSDL

RESTful Service Description
Language

Ngôn ngữ mô tả dịch vụ Web REST

SOAP

Simple Object Access
Protocol

Giao thức truy cập đối tượng đơn giản

URI

Uniform Resource Identifier


Bộ định danh tài nguyên thống nhất

WSC

Web Service Composition

Tổ hợp dịch vụ Web

WSCOVER Web Service COmposition
and VERification

Tổ hợp và kiểm chứng dịch vụ Web

WSDL

Web Services Description
Language

Ngôn ngữ mô tả dịch vụ Web

XML

eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng

xii


CHƯƠNG 1


GIỚI THIỆU

Bối cảnh nghiên cứu
Trong những năm qua, dữ liệu thuộc hầu hết các lĩnh vực đều tăng lên nhanh chóng [1].
Với sự gia tăng một cách bùng nổ của dữ liệu toàn cầu, thuật ngữ Big Data (dữ liệu lớn)
được sử dụng để mô tả về các thư viện dữ liệu với kích thước rất lớn [2]. Cơng nghệ
phần mềm (CNPM) cũng nằm trong ngữ cảnh của Big Data vì nhiều lý do [3]. Trong
đó, chúng ta có thể chia ra thành hai khía cạnh chính:
 Khía cạnh vật lý: Số lượng các thành phần phần mềm nói chung được tạo ra ngày
càng nhiều, làm cho kích thước của các thư viện phần mềm trở nên rất lớn. Bên cạnh
đó, số lượng người dùng đối với một phần mềm nói chung ngày càng tăng, làm cho
lượng dữ liệu tương tác cũng trở nên vơ cùng lớn, ví dụ như dữ liệu của các mạng xã
hội, dữ liệu trong các tập tin nhật ký (log file) của các phần mềm nói chung.
 Khía cạnh luận lý: Bên cạnh số lượng thành phần lớn, bản thân độ phức tạp trong mã
lệnh chương trình cũng tạo ra độ phức tạp tính toán lớn. Vấn đề này càng đặc biệt
trong bài toán phân tích chương trình. Khi đó, số lượng trạng thái sinh ra của một
chương trình nhỏ cũng sẽ là rất lớn. Ví dụ, một đoạn mã nhỏ nhưng với vài điều kiện
rẽ nhánh hoặc vịng lặp lồng nhau thì số lượng trường hợp xử lý cũng trở nên rất lớn.
Xu hướng của CNPM hiện nay là khai thác dữ liệu từ các kho Big Data. Một trường hợp
điển hình của xu hướng này là phát triển phần mềm bằng cách khai thác mã nguồn từ
các thư viện có sẵn như GitHub [4], BitBucket [5]. Xu hướng này được gọi là lập trình
với “Big Code” [6]. Để khai thác và sử dụng các thư viện này, chúng ta cần có cơ chế
tổ hợp và tái sử dụng các đoạn mã nói riêng hay các thành phần phần mềm nói chung.
Một xu hướng khác của CNPM hiện nay là viết mã như là lập trình ngơn ngữ tự nhiên
[7]. Đây là phương pháp viết mã bằng cách sử dụng các ngôn ngữ gần với ngơn ngữ tự
nhiên, sau đó tinh chế dần thành các đặc tả. Sau khi có được bản đặc tả, quá trình phát
triển phần mềm là quá trình tìm kiếm, lắp ghép, tổ hợp các thành phần phù hợp lại với
nhau. Nghiên cứu trong luận án này được xây dựng dựa trên ý tưởng kết hợp hai xu
hướng nêu trên. Đó là phát triển phần mềm dựa trên việc tổ hợp thành phần trong bối
cảnh kho thành phần quy mơ lớn. Trong đó, u cầu của người dùng lẫn thành phần tái


1


sử dụng được đặc tả hình thức. Luận án tập trung giải quyết loại thành phần phổ biến
hiện nay là các dịch vụ Web trong kiến trúc hướng dịch vụ.
1.1.1 Vấn đề tái sử dụng thành phần
Bên cạnh nguồn dữ liệu cần phải xử lý lớn, môi trường hoạt động của các phần mềm
ngày nay cũng có sự thay đổi nhanh chóng. Các sản phẩm phần mềm nói chung phải có
tốc độ hồn thiện nhanh và đáp ứng tốt các yêu cầu đa dạng của người dùng. Theo E. C.
Foster [8], phương pháp tái sử dụng thành phần được xem là phương pháp phát triển
nhanh phần mềm có nhiều ưu điểm và được sử dụng rộng rãi nhất. Cũng theo E. C.
Foster, để sử dụng phương pháp tái sử dụng thành phần thì chúng ta phải giải quyết hai
vấn đề chính là: làm thế nào để nhanh chóng tìm ra thành phần phù hợp để tái sử dụng;
và tính tốn, đánh giá mức độ phù hợp của tổ hợp kết quả với yêu cầu của người dùng.
Hai vấn đề này rõ ràng có sự ảnh hưởng rất lớn trong bối cảnh Big Data, khi mà số lượng
thành phần bùng nổ và các thành phần càng phức tạp làm cho độ phức tạp tính tốn
trong q trình tổ hợp, tái sử dụng là rất lớn. Với sự phức tạp cả về khía cạnh vật lý (số
lượng thành phần lớn) lẫn khía cạnh luận lý (độ phức tạp tính tốn) như vậy, rõ ràng
việc tìm kiếm và tái sử dụng thành phần khó có thể thực hiện thủ cơng mà phải được
thực hiện một cách tự động.
Các thành phần
phần mềm
tái sử dụng

Khung thức
tổ hợp
thành phần

Phần mềm/

nguyên mẫu
phần mềm

Yêu cầu
của người dùng

Hình 1-1. Quy trình tái sử dụng thành phần
Hình 1-1 mơ tả quy trình tái sử dụng thành phần để phát triển nhanh phần mềm, đáp ứng
yêu cầu của người dùng. Trong đó, khung thức tổ hợp thành phần đóng vai trị rất quan
trọng, thực hiện chức năng tìm kiếm các thành phần phù hợp u cầu của người dùng,
tính tốn các khả năng tổ hợp cũng như đánh giá mức độ phù hợp của tổ hợp kết quả với
yêu cầu người dùng. Rõ ràng khung thức này cần phải được thực hiện tự động ở một
mức độ nào đó. Ngồi ra, các thành phần phần mềm tái sử dụng và yêu cầu của người
dùng cũng cần phải được đặc tả hình thức ở một mức độ nào đó để máy tính (khung thức
tổ hợp) có thể hiểu được, thực hiện việc tổ hợp và tái sử dụng một cách tự động.
2


1.1.2 Bài toán tổ hợp dịch vụ Web
Kiến trúc hướng dịch vụ (Service Oriented Architecture – SOA) là kiến trúc phần mềm
giúp xây dựng các hệ thống CNTT thông qua các thành phần được đóng gói dưới dạng
các dịch vụ. Ngày nay, các dịch vụ hầu hết được cung cấp dưới dạng các dịch vụ Web.
Các dịch vụ Web là các dịch vụ mà chúng hoạt động và giao tiếp thông qua môi trường
mạng, sử dụng các giao thức Internet như HTTP và SOAP [9]. Một dịch vụ Web cung
cấp hồn chỉnh một hoặc một số chức năng nào đó. Các dịch vụ Web hiện nay được
phân thành hai loại [10]:
 Dịch vụ Web SOAP (SOAP Web service): Là dịch vụ Web hoạt động dựa trên giao
thức SOAP – giao thức truyền thông điệp dựa trên XML. Dịch vụ Web SOAP được
mô tả bằng một ngôn ngữ mô tả dịch vụ, chẳng hạn như OWL-S [11], WSDL [12].
 Dịch vụ Web REST (RESTful Web service): Là ứng dụng Web hoạt động theo kiến

trúc REST [10]. Trong đó, dịch vụ được cung cấp dưới dạng một tài nguyên có định
danh URI và được truy cập thông qua các phương thức HTTP như GET, POST, ...
Các dịch vụ Web REST cho phép truy cập trực tiếp vào dịch vụ thông qua URI và
cho phép sử dụng nhiều định dạng dữ liệu khác nhau như chuỗi văn bản thô, định
dạng JSON, HTML hoặc XML. Gần đây, J. Robie và cộng sự đã đề xuất ngôn ngữ
RSDL [13]. Đây là ngôn ngữ dựa trên XML giúp chúng ta mô tả chức năng của dịch
vụ Web REST giống như các ngôn ngữ WSDL, OWL-S của dịch vụ Web SOAP.
Tổ hợp dịch vụ Web (Web Services Composition – WSC) là một vấn đề rất quan trọng
của SOA [14]. WSC là quá trình tạo ra các dịch vụ Web phức hợp từ các dịch vụ Web
thành phần. WSC là một trong những vấn đề thách thức trong những năm gần đây [15],
khi số lượng dịch vụ Web thành phần được cung cấp ngày càng tăng và các yêu cầu tổ
hợp từ người dùng càng trở nên phức tạp. Theo M. Chen và cộng sự [16], ngoài các ràng
buộc về chức năng, người dùng còn quan tâm đến các ràng buộc phi chức năng của dịch
vụ, gồm có ràng buộc về chất lượng và ràng buộc quan hệ thời gian giữa các dịch vụ.
Có nhiều thuộc tính có liên quan đến chất lượng dịch vụ (Quality of Service – QoS),
chẳng hạn như thời gian đáp ứng, chi phí cho việc gọi thực thi, hay tính sẵn sàng của
dịch vụ. Do đó, việc lựa chọn một cách tổ hợp thỏa mãn các ràng buộc về chất lượng
cũng là một yêu cầu hết sức cần thiết trong vấn đề tổ hợp dịch vụ Web.

3


Chúng ta hãy xem xét ví dụ sau: Giả sử chúng ta có một thư viện gồm có 10 dịch vụ
Web hỗ trợ cho việc đặt chuyến du lịch trực tuyến, các dịch vụ này có các thuộc tính
chức năng (đầu vào, đầu ra), thuộc tính chất lượng về thời gian đáp ứng (respTime) và
tính sẵn sàng của dịch vụ (Avai) được trình bày như trong Bảng 1-1.
Bảng 1-1. Thư viện các dịch vụ Web hỗ trợ đặt chuyến du lịch trực tuyến
#
1
2

3
4
5
6
7
8
9
10

Tên dịch vụ
HotelReserveService (HR)
CityHotelService (CH)
HotelCityService (HC)
HotelPriceService (HP)
SightseeingCityService(SC)
SightseeingCityHotelService(SCH)
CitySightseeingService(CS)
ActivityBeachService(ABS)
AreaWeatherService(AWS)
CityWeatherService (CWS)

Đầu vào
Dates, Hotel
City
Hotel
Hotel
Sightseeing
Sightseeing
City
Activity

Area
City, Dates

Đầu ra
RespTime (s) Avai (%)
HotelReservation
5
100
Hotel
3
100
City
3
100
Price
10
95
City
2
90
City, Hotel
16
80
Sightseeing
4
90
Beach
5
85
Weather

5
90
Weather
5
90

Giả sử người dùng có u cầu là họ sẽ cung cấp thơng tin về địa danh (Sightseeing) và
khoảng thời gian sẽ đi du lịch (Dates). Họ muốn biết các thông tin về giá th phịng
(Price) cũng như thơng tin về thủ tục đặt phòng (HotelReservation) của các khách sạn
gần địa điểm du lịch của họ. Bên cạnh những yêu cầu về mặt chức năng nêu trên, người
dùng cũng có một số yêu cầu nhất định về chất lượng dịch vụ. Họ muốn tổng thời gian
đáp ứng (respTime) của dịch vụ/ tổ hợp dịch vụ khơng được vượt q 30 giây (s). Ngồi
ra, người dùng cũng muốn lấy thông tin về giá (Price) trước các thơng tin về đặt phịng
(HotelReservation) vì giá là tiêu chí quan trọng để chọn khách sạn. Yêu cầu này thể hiện
ràng buộc quan hệ thời gian giữa các dịch vụ. Các yêu cầu của người dùng được trình
bày trong Bảng 1-2. Trong đó, biểu thức G(¬HotelReservation U Price) là một biểu thức
luận lý thời gian [17], với G là phép toán Globally, U là phép toán Until (được trình bày
chi tiết trong Chương 2), có ý nghĩa là “khơng bao giờ có thơng tin về HotelReservation
cho đến khi có thơng tin về Price”, hay nói cách khác, thơng tin về Price phải ln có
trước thơng tin về HotelReservetion.
Bảng 1-2. Các yêu cầu về đặt chuyến du lịch của người dùng
Loại ràng buộc
Ràng buộc chức năng:

Giá trị
Đầu vào: Dates, Sightseeing
Đầu ra: Price, HotelReservation
Ràng buộc chất lượng:
RespTime ≤ 30 ∧ Avai ≥ 80
Ràng buộc quan hệ thời gian: G(¬HotelReservation U Price)


4


Với thư viện dịch vụ Web như trong Bảng 1-1 và yêu cầu người dùng như trong Bảng
1-2, các bước tổ hợp được diễn ra như minh họa trong Hình 1-2. Ở mỗi bước tổ hợp,
mỗi trạng thái sẽ có 10 nhánh rẽ tương ứng với 10 khả năng tổ hợp dịch vụ. Giả sử chúng
ta có được kết quả tổ hợp và thứ tự thực thi các dịch vụ là {SC ● CH ● HP ● HR} (với
● là phép toán tổ hợp nối tiếp giúp các dịch vụ), chúng ta phải trải qua ít nhất là 4 bước
tổ hợp và số trạng thái cần phải xử lý là 104 trạng thái.
Như vậy, với ví dụ minh họa trên thì bài tốn tổ hợp dịch vụ Web có thể phát biểu một
cách tường minh như sau:
Cho một tập hợp các dịch vụ Web S, trong đó mỗi dịch vụ Web Wi có tập các thuộc tính
đầu vào và tập các thuộc tính đầu ra, được gọi là các thuộc tính chức năng của Wi, ký
hiệu là func(Wi). Ngồi ra, mỗi dịch vụ cịn có các thuộc tính chất lượng dịch vụ, hay
cịn gọi là các thuộc tính phi chức năng của Wi, ký hiệu là non-func(Wi).
Một yêu cầu G là một tập các ràng buộc trên các thuộc tính chức năng (func(G)) và các
thuộc tính phi chức năng (non-func(G)). Một tổ hợp dịch vụ Web Γ thỏa mãn G sẽ là
một chuỗi thực thi các dịch vụ Γ={W1 ● W2 ● ... ● Wk}, trong đó Wi là một dịch vụ
thuộc tập S. Khi đó, Γ cũng được xem là một dịch vụ Web (dịch vụ Web phức hợp) và
cũng có tập thuộc tính chức năng (func(Γ)) và tập thuộc tính phi chức năng (non-func(Γ))
được tính tốn từ các dịch vụ Web thành phần Wi. Điều kiện để một tổ hợp Γ thỏa mục
tiêu G là tập thuộc tính chức năng của Γ phải thỏa mãn các ràng buộc trên tập thuộc tính
chức năng của G (func(Γ) ⊨ func(G)) và tập thuộc tính phi chức năng của Γ phải thỏa
các ràng buộc trên tập thuộc tính phi chức năng của G (non-func(Γ) ⊨ non-func(G)).
Đối với một yêu cầu G, một lời giải Σ là một tập gồm có k tổ hợp, Σ = {Γ , Γ , … , Γ }.
 Lời giải Σ được coi là đúng đắn nếu tất cả các tổ hợp Γ trong Σ đều thỏa mãn G.
 Lời giải Σ được coi là đầy đủ nếu Σ chứa tất cả các tổ hợp có thể thỏa mãn G.
 Ngồi ra, thời gian tính tốn để có lời giải Σ cũng là một tiêu chí quan trọng để đánh
giá chất lượng lời giải này.

Bài toán tìm ra lời giải Σ như trên được gọi là bài toán Tổ hợp dịch vụ Web. Bài toán
này hướng đến mục tiêu là tìm tất cả các tổ hợp dịch vụ Web đáp ứng yêu cầu của người

5


dùng. Mỗi tổ hợp dịch vụ Web có thể biểu diễn dưới dạng một cấu trúc danh sách liên
kết, trong đó mỗi nút là một dịch vụ Web.
Khi đó, khơng gian trạng thái của bài toán này sẽ là một cấu trúc cây với mỗi nút ứng
với một trạng thái khi một dịch vụ Web được gọi thực thi. Nút gốc của cây này ứng với
trạng thái khởi đầu theo giá trị khởi tạo trong mục tiêu của người dùng (G). Hình 1-2
mơ tả một cây tổng qt được tạo ra trong q trình tìm kiếm trên khơng gian trạng thái.
Khi tìm kiếm trên khơng gian trạng thái biểu diễn bởi cây T, lời giải Σ cho một mục tiêu
G sẽ là một cây con
gốc đến từng nút lá của

với nút gốc của

trùng với nút gốc của T và đường đi từ nút

ứng một cách tổ hợp thỏa mãn mục tiêu G. Hình 1-3 mơ tả

cây con ứng với lời giải Σ trong ví dụ đã nêu. Chú ý rằng trong Hình 1-3, các nút lá đã
được gom lại thành một nút duy nhất là nút kết thúc, hay trạng thái kết thúc.
Bài tốn tổ hợp dịch vụ Web nói riêng và bài toán tổ hợp, tái sử dụng thành phần nói
chung là bài tốn có độ phức tạp hàm mũ. Giả sử chúng ta có được kết quả tổ hợp là một
lược đồ có m thành phần từ một thư viện có kích thước là n. Như vậy, khơng gian trạng
thái chúng ta phải xử lý là nm, đây là kết quả xử lý theo các hướng tiếp cận lập kế hoạch
truyền thống [18], [19]. Bài toán với độ phức tạp hàm mũ sẽ làm bùng nổ không gian
trạng thái, điều này làm tăng độ phức tạp trong quá trình xử lý cũng như làm cho bài

tốn tổ hợp dịch vụ trở thành một bài toán trong bối cảnh Big Data [20].
Trong khi đó, khơng gian trạng thái thực sự cần phải khảo sát của bài toán này chỉ là 11
trạng thái như trong Hình 1-3. Trong đó, đường nét đứt thể hiện các cách tổ hợp thỏa
mãn theo các ràng buộc chức năng dịch vụ, đường nét liền thể hiện kết quả cuối cùng
của tổ hợp thỏa mãn tồn bộ các ràng buộc như trong Bảng 1-2.















Hình 1-2. Quá trình tổ hợp thành phần tổng quát

6


Hình 1-3. Khơng gian trạng thái tổ hợp dịch vụ
Để giảm thiểu không gian trạng thái phải khảo sát, chức năng tổ hợp cần có cơ chế sàng
lọc dịch vụ và kiểm tra ngay các nhánh tổ hợp được tạo ra ở mỗi bước tổ hợp. Để sàng
lọc các dịch vụ Web ứng viên, một cách tiếp cận được cộng đồng nghiên cứu áp dụng
rộng rãi là sử dụng các kỹ thuật khai phá dữ liệu [21] như gom cụm dữ liệu [22] để gom

cụm các dịch vụ Web có trong thư viện. Bên cạnh đó, để kiểm tra và loại bỏ ngay những
nhánh tổ hợp không thỏa các ràng buộc, nhất là ràng buộc quan hệ thời gian thì phương
pháp hình thức, mà cụ thể là phương pháp kiểm tra mơ hình [23] cần được áp dụng, do
các phương pháp truyền thống như lập kế hoạch không thể kiểm tra loại ràng buộc này.
Như vậy, để đảm bảo tính đúng trong các xử lý, đồng thời để đối phó với vấn đề bùng
nổ dữ liệu, xu hướng của CNPM hiện nay là kết hợp phương pháp hình thức với các kỹ
thuật khai phá dữ liệu [24]. Nghiên cứu của luận án này cũng nằm trong xu hướng này.
Phát biểu vấn đề
Vấn đề cần phải giải quyết của luận án là việc tái sử dụng hiệu quả các thành phần phần
mềm. Cụ thể hơn, chúng tôi tập trung vào một loại thành phần phần mềm đặc biệt trong
kiến trúc SOA, đó là các dịch vụ Web. Để tái sử dụng các dịch vụ Web thì trước hết
chúng ta phải tạo ra các tổ hợp dịch vụ Web từ một kho các dịch vụ Web có sẵn. Kết
quả tổ hợp dịch vụ Web được tạo ra phải thỏa mãn mục tiêu của người dùng trên các
loại ràng buộc khác nhau (đảm bảo tính đúng). Ngồi ra, lời giải của bài tốn tổ hợp này
phải đảm bảo tính đầy đủ, nghĩa là chúng ta khơng bỏ sót bất kỳ kết quả tổ hợp nào mà
nó đáp ứng được yêu cầu của người dùng. Tính hiệu quả trong việc giải quyết vấn đề
được tính tốn dựa trên chi phí tài ngun (thời gian thực thi và bộ nhớ sử dụng) cần
thiết để tạo ra các kết quả tổ hợp. Như đã phân tích trong phần trên, để tổ hợp các dịch
vụ Web một cách hiệu quả, luận án cần phát triển một phương pháp tổ hợp mới, kết hợp
giữa việc sử dụng phương pháp hình thức với kỹ thuật khai phá dữ liệu.
7


Câu hỏi nghiên cứu
Vấn đề kết hợp giữa phương pháp hình thức và khai phá dữ liệu là đề tài thú vị và mới
nổi trong cộng đồng nghiên cứu hiện nay, được áp dụng vào nhiều bài toán như kiểm
tra chương trình [25], tổng hợp chương trình [26] và tìm kiếm hàm thư viện [27]. Luận
án cũng vận dụng sự kết hợp này nhưng để giải quyết vấn đề tổ hợp, tái sử dụng các
thành phần phần mềm nói chung và các dịch vụ Web nói riêng. Để thực hiện nghiên cứu
này, luận án cần phải xem xét giải quyết và trả lời các câu hỏi sau:

[RQ1] Đã có một khung thức hay một công cụ tổng quát cho việc tìm kiếm, tổ hợp các
thành phần phần mềm nói chung và tổ hợp các dịch vụ Web nói riêng hay chưa?
Khung thức phải bao hàm các bước từ đặc tả, hỗ trợ tìm kiếm, truy xuất nhanh,
tổ hợp các thành phần nhằm đáp ứng yêu cầu của người dùng, đến việc kiểm
chứng kết quả tổ hợp với các loại ràng buộc khác nhau (ràng buộc về chức năng,
về chất lượng và về quan hệ thời gian).
[RQ2] Làm sao để biểu diễn các dịch vụ Web một cách hình thức? Việc biểu diễn hình
thức giúp chúng ta tự động trong quá trình tổ hợp và kiểm chứng. Đồng thời,
biểu diễn hình thức cịn giúp chúng ta đảm bảo tính đúng và đầy đủ khi áp dụng
các kỹ thuật khai phá dữ liệu để truy xuất dịch vụ.
[RQ3] Bài toán tổ hợp luôn phải đối mặt với vấn đề bùng nổ không gian trạng thái.
Vậy làm cách nào để thu hẹp không gian trạng thái của bài toán tổ hợp nhưng
vẫn phải đảm bảo tính đúng và đầy đủ của kết quả tổ hợp?
Mục tiêu nghiên cứu
Mục tiêu của luận án là giải quyết và trả lời ba câu hỏi nghiên cứu mà luận án đã đề ra.
Trong đó, các mục tiêu cụ thể là:
[OB1] Đưa ra một khung thức tổng quát cho việc tìm kiếm và tổ hợp các thành phần
phần mềm nói chung. Khung thức này cho phép sử dụng các thành phần được
đặc tả hình thức, tổ chức lưu trữ và khai phá, truy xuất đúng các thành phần cần
cho quá trình tổ hợp. Khung thức cho phép tổ hợp và kiểm chứng kết quả tổ hợp
một cách tự động với các loại ràng buộc khác nhau. Mục tiêu nghiên cứu này
giải quyết câu hỏi nghiên cứu [RQ1] của luận án.

8


[OB2] Nghiên cứu đưa ra một phương pháp đặc tả hình thức cho các dịch vụ Web.
Phương pháp đặc tả này phải phù hợp với kỹ thuật kiểm tra mô hình nhưng vẫn
có thể biến đổi để áp dụng được trong các kỹ thuật khai phá dữ liệu, đặc biệt
làm gom cụm dữ liệu. Mục tiêu này giải quyết câu hỏi nghiên cứu thứ hai

([RQ2]) của luận án.
[OB3] Mục tiêu cuối cùng của nghiên cứu là kiểm soát vấn đề bùng nổ không gian
trạng thái. Để khắc phục vấn đề này, luận án thực hiện đồng thời hai việc, đó là
áp dụng kỹ thuật gom cụm dữ liệu để sàng lọc dịch vụ ứng viên trước khi tổ hợp
và áp dụng kỹ thuật tìm kiếm heuristic trong quá trình tổ hợp. Việc gom cụm
dữ liệu phải dựa trên đặc tả hình thức và khía cạnh luận lý của dữ liệu. Điều này
giúp đảm bảo tính đúng và đầy đủ của kết quả, khơng làm bỏ sót ứng viên. Việc
áp dụng tìm kiếm heuristic giúp chúng ta thu được kết quả tổ hợp nhanh hơn và
tối ưu hơn do chúng ta khơng phải vét cạn hết khơng gian trạng thái tìm kiếm.
Câu hỏi nghiên cứu thứ ba ([RQ3]) được giải quyết bởi mục tiêu này.
Những đóng góp chính của nghiên cứu
Theo kết quả nghiên cứu, luận án đã xây dựng thành công một phương pháp tổ hợp và
kiểm chứng tổ hợp dịch vụ Web một cách tự động. Việc tổ hợp này đáp ứng các loại
ràng buộc khác nhau như ràng buộc về chức năng, ràng buộc về chất lượng và ràng buộc
quan hệ thời gian giữa các dịch vụ. Để thực hiện tổ hợp và khắc phục các vấn đề của bài
toán tổ hợp gây ra, luận án đã kết hợp phương pháp hình thức với phương pháp khai phá
dữ liệu. Phương pháp hình thức, mà cụ thể là phương pháp kiểm tra mơ hình, giúp chúng
ta kiểm chứng được các loại ràng buộc kể trên, đặc biệt là ràng buộc quan hệ thời gian,
theo cách on-the-fly. Kỹ thuật gom cụm của khai phá dữ liệu giúp chúng ta gom cụm
thư viện dịch vụ và truy xuất đúng các dịch vụ mà chúng ta cần cho q trình tổ hợp.
Ngồi ra, luận án cũng đề xuất áp dụng phương pháp tìm kiếm heuristic trong quá trình
tổ hợp giúp chúng ta thu được kết quả tổ hợp nhanh hơn, tối ưu hơn. Các đóng góp chính
của luận án được tóm tắt như sau:
i.

Luận án đề xuất một khung thức tổng quát cho bài toán tổ hợp và tái sử dụng thành
phần phần mềm một cách tự động. Khung thức này bao gồm tất cả các chức năng
như quản lý lưu trữ thành phần; tiếp nhận và xử lý các yêu cầu tổ hợp từ người dùng

9



với các loại ràng buộc khác nhau. Các công bố liên quan đến đóng góp này là [CT4],
[CT6] và [CT10]. Đóng góp này đã đáp ứng cho mục tiêu [OB1] của luận án.
ii. Luận án đã đề xuất cách biểu diễn hình thức cho dịch vụ Web và mơ hình hóa thư
viện dịch vụ dựa trên hệ thống chuyển trạng thái có gán nhãn (Labelled Transition
System – LTS), gọi là mơ hình LTS4WS. Thơng qua mơ hình này, việc tổ hợp và
kiểm chứng được thực hiện bằng phương pháp kiểm tra mơ hình và theo cách onthe-fly. Kết quả là chúng ta có thể tìm ra một tổ hợp thỏa mãn đồng thời các loại
ràng buộc khác nhau. Các công bố có liên quan đến đóng góp này là [CT5], [CT7],
[CT8] và [CT9]. Đóng góp này đã hiện thực hóa mục tiêu [OB2] của luận án.
iii. Tiếp theo, luận án đưa ra giải pháp để giải quyết vấn đề bùng nổ khơng gian trạng
thái tìm kiếm cho bài tốn tổ hợp, đó là áp dụng phương pháp tìm kiếm heuristic.
Trong phương pháp heuristic đề xuất, luận án đã đưa ra các hàm đánh giá heuristic
dựa trên các đặc tả hình thức đã xây dựng. Với phương pháp này, kết quả tổ hợp đã
được tối ưu và thời gian cũng như tài nguyên hệ thống được giảm đi đáng kể, do
chúng ta khơng phải tìm kiếm vét cạn khơng gian trạng thái. Các cơng bố có liên
quan đến đóng góp này là [CT7], [CT9]. Ngoài ra, cũng nhằm cải thiện hiệu suất
tính tốn, luận án cũng đã đề xuất phương pháp lập chỉ mục các dịch vụ Web dựa
trên bit nhị phân. Việc lập chỉ mục này giúp việc tính tốn các giá trị của hàm
heuristic được tối ưu. Các công bố có liên quan đến đóng góp này là [CT1] và
[CT12]. Những đóng góp trong việc khắc phục vấn đề bùng nổ khơng gian trạng
thái đã góp phần thỏa mãn mục tiêu thứ ba ([OB3]) của luận án.
iv. Để hỗ trợ truy xuất đúng các dịch vụ cần cho quá trình tổ hợp, các dịch vụ trong thư
viện cần được gom thành các cụm. Luận án này đã đề xuất cách tiếp cận gom cụm
dịch vụ dựa trên luận lý. Cách tiếp cận này có những đóng góp cụ thể là: (1) Đề xuất
cách biểu diễn cho dịch vụ và cụm dịch vụ bằng biểu thức luận lý; (2) Đưa ra phương
pháp tính độ tương tự giữa các dịch vụ dựa trên biểu thức luận lý. Điều này giúp
cho kết quả gom cụm hợp lý hơn so với các độ đo khác; (3) Với kết quả gom cụm
dựa trên luận lý, việc lựa chọn cụm tại mỗi bước tổ hợp sẽ đảm bảo tính đúng và
tính đầy đủ bằng các chứng minh luận lý. Các cơng bố có liên quan đến đóng góp

này là [CT2], [CT3] và [CT11]. Đóng góp này đã góp phần hiện thực cho mục tiêu

10


thứ nhất ([OB1]) là tạo ra một cơng cụ có thể áp dụng cho các kho thành phần có
kích thước lớn. Đồng thời cũng góp phần thỏa mãn mục tiêu thứ ba ([OB3]) là kiểm
sốt vấn đề bùng nổ khơng gian trạng thái.
v. Cuối cùng, luận án cũng đã xây dựng một cơng cụ hồn chỉnh có tên là WSCOVER
cho việc tổ hợp và kiểm chứng dịch vụ Web. Đây là đóng góp mang tính thực tế của
luận án. WSCOVER là sản phẩm cuối cùng, giải quyết được đồng thời ba câu hỏi
nghiên cứu đã đề cập ở trên. Các công bố liên quan đến công cụ WSCOVER là
[CT8], [CT10].
Tầm quan trọng của nghiên cứu
Nghiên cứu này hướng đến bài toán tổ hợp dịch vụ Web, đây là bài toán có tính thực tế
cao. Tuy nhiên, để giải quyết bài tốn này chúng ta cũng gặp nhiều khó khăn do độ phức
tạp tính tốn q lớn. Các cách giải thực tế hiện nay là thực hiện bằng tay hoặc bán tự
động, hoặc thực hiện tự động nhưng có các giới hạn nhất định như giới hạn về loại ràng
buộc hoặc giới hạn về quy mơ bài tốn. Tất cả các hướng tiếp cận này hoặc là tốn quá
nhiều công sức (thực hiện bằng tay) hoặc khơng đảm bảo là tìm ra lời giải tốt nhất.
Luận án này đã giải quyết vấn đề trên bằng phương pháp tiếp cận dựa trên phương pháp
hình thức. Nhờ vậy, luận án đã đưa ra một cơ sở lý thuyết vững chắc để biểu diễn và
phát triển các lời giải cho bài toán này một cách tự động, đúng đắn và đầy đủ.
Tuy nhiên, do hướng tiếp cận dựa trên phương pháp hình thức gặp một trở ngại rất lớn
về độ phức tạp tính tốn, về bộ nhớ và thời gian thực thi nên luận án đã sử dụng các
phương pháp xử lý dữ liệu (đánh chỉ mục, khai phá dữ liệu, tìm kiếm heuristic) để vượt
qua các trở ngại này. Với cách tiếp cận ứng dụng các phương pháp xử lý dữ liệu, hướng
tiếp cận được đề ra trong luận án trở nên khả thi trong thực tế, điều này đã được kiểm
chứng trong các thí nghiệm thực tế.
Như vậy, về mặt lý thuyết, luận án này đã đưa ra cầu nối kết hợp giữa hai lĩnh vực là

phương pháp hình thức và khai phá dữ liệu. Việc sử dụng các kỹ thuật khai phá dữ liệu
hợp lý giúp giảm đi độ phức tạp khi tìm lời giải, đồng thời, các phương pháp hình thức
được vận dụng để đảm bảo lời giải tìm được là đúng đắn và đầy đủ. Về mặt thực tiễn,
luận án này cũng đóng góp vào cộng đồng nghiên cứu một phương pháp tổ hợp và kiểm

11


×