1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

129 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 129
Dung lượng 2,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngoà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

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

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

Trang 3

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

Trang 4

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 hoà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 toán có độ phức tạp hàm mũ Để giảm độ phức tạp tính toá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 Ngoà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 toá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ụ hoà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

Trang 5

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

Trang 6

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 Hoà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 quá 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 luôn

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ể hoàn thành tốt luận án này

Tp HCM, tháng 9 năm 2017

Tác giả luận án

Trang 7

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

Trang 8

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 SOÁ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 toá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 toá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

Trang 9

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

Trang 10

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

Trang 11

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 quát 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 quát 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 toá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 soá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

Trang 12

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 toá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 soá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

Trang 13

DANH MỤC CÁC TỪ VIẾT TẮT

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

tra mô hình PAT) PDDL Planning Domain Definition

Trang 14

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

Trang 15

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 đó, yêu cầu của người dùng lẫn thành phần tái

Trang 16

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 độ hoà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 toá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 toán trong quá 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 toá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

Phần mềm/

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

Yêu cầu của người dùngHì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 yêu cầu của người dùng, tính toá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 đó Ngoà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

Trang 17

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 hoà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

Trang 18

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 HotelReserveService (HR) Dates, Hotel HotelReservation 5 100

5 SightseeingCityService(SC) Sightseeing City 2 90

6 SightseeingCityHotelService(SCH) Sightseeing City, Hotel 16 80

7 CitySightseeingService(CS) City Sightseeing 4 90

8 ActivityBeachService(ABS) Activity Beach 5 85

10 CityWeatherService (CWS) City, Dates Weather 5 90

Giả sử người dùng có yê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á thuê 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 quá 30 giây (s) Ngoà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 luôn 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

Ràng buộc chức năng: Đầ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)

Trang 19

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 toá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 W i 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 W i, ký

hiệu là func(W i) Ngoà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 W i , ký hiệu là non-func(W i)

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 ● ● W k }, trong đó W i 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 toán từ các dịch vụ Web thành phần W i Đ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

 Ngoài ra, thời gian tính toá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

Trang 20

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 quát được tạo ra trong quá 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 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

gốc đến từng nút lá của ứ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 toá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 toá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à n m , đâ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 toá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 toàn bộ các ràng buộc như trong Bảng 1-2

Trang 21

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) Ngoài ra, lời giải của bài toá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 toán dựa trên chi phí tài nguyên (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

Trang 22

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

Trang 23

[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 quá trình tổ hợp

Ngoà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

Trang 24

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 on-

the-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 toá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 toá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 toá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

Trang 25

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 soá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ụ hoà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 toán này chúng ta cũng gặp nhiều khó khăn do độ phức tạp tính toán quá 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 toá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 toá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

Trang 26

chứng các dịch vụ Web tự động một cách hiệu quả, được hiện thực thành một công cụ thực thi trên môi trường Web cho bất kỳ ai cần thiết đều có thể sử dụng

Giới hạn của nghiên cứu

Nghiên cứu trong luận án có một số giới hạn sau:

 Nghiên cứu trong luận án áp dụng cho các dịch vụ Web SOAP và các dịch vụ Web REST đã được mô tả thông qua một ngôn ngữ mô tả, chẳng hạn như RSDL [13] Các dịch vụ Web REST hay các loại dịch vụ khác mà chưa được mô tả, chỉ cho phép truy cập trực tiếp, sử dụng định dạng thô thì không thể áp dụng vào nghiên cứu này

 Các ràng buộc chất lượng áp dụng trong nghiên cứu này không bao gồm các ràng buộc về chính sách sử dụng dịch vụ như loại khách hàng, trạng thái của máy chủ, trạng thái phiên làm việc hay các chính sách về thương mại khác như khuyến mãi,

Bố cục của luận án

Trong Chương 1 này, chúng tôi đã trình bày về bối cảnh nghiên cứu cũng như đặt vấn

đề nghiên cứu Câu hỏi nghiên cứu, mục tiêu nghiên cứu của luận án cũng đã được trình bày Chúng tôi cũng đã liệt kê những đóng góp chính, cũng như tầm quan trọng và giới hạn của luận án Phần còn lại của luận án được bố cục gồm các chương sau

Chương 2 trình bày tổng quan về tình hình nghiên cứu và các kiến thức nền tảng, định hướng cho nghiên cứu của luận án Trong chương này, lý thuyết về các phương pháp hình thức như đặc tả hình thức, kiểm tra mô hình sẽ được giới thiệu Kiến thức về khai phá dữ liệu, đặc biệt là gom cụm dữ liệu cũng sẽ được trình bày chi tiết Đây là hai hướng kiến thức chính làm nền tảng cho nghiên cứu trong luận án Ngoài ra, vấn đề về tìm kiếm heuristic cũng được trình bày chi tiết trong chương này

Chương 3 trình bày về khung thức tổng quát cho bài toán tổ hợp các thành phần phần mềm một cách tự động Kiến trúc tổng quát của khung thức sẽ được giới thiệu với các khối chức năng của nó Với khung thức này, chúng ta có thể áp dụng cho nhiều loại thành phần phần mềm khác nhau như các hàm thư viện API, các dịch vụ Web, các đối tượng giao diện người dùng, … Bên cạnh đó, với tính mở của nó, khung thức chủ yếu cung cấp một kiến trúc tổng quát, các chức năng xử lý bên trong sẽ được tuỳ chỉnh theo từng lĩnh vực mà khung thức được áp dụng

Trang 27

Chương 4 trình bày về đóng góp thứ hai của luận án, đó là phương pháp tổ hợp và kiểm chứng tổ hợp dịch vụ Web dựa trên phương pháp kiểm tra mô hình Trong chương này, chúng tôi trình bày chi tiết về cách định nghĩa hình thức cho một dịch vụ Web Mô hình

hóa thư viện dịch vụ dưới dạng một mô hình LTS4WS Việc áp dụng kiểm tra mô hình

vào bài toán tổ hợp giúp chúng ta có thể giải quyết các loại ràng buộc khác nhau trong yêu cầu của người dùng, đó là 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ụ Web

Chương 5 trình bày về các phương pháp kiểm soát vấn đề bùng nổ không gian trạng thái của bài toán tổ hợp Trong đó, phương pháp tìm kiếm heuristic được đề xuất và áp dụng giúp chúng ta tìm ra kết quả tổ hợp nhanh hơn, tối ưu hơn mà không phải vét cạn không gian trạng thái Kỹ thuật lập chỉ mục dựa trên bit nhị phân cũng được trình bày trong chương này để giúp cho quá trình tính toán giá trị chi phí heuristic được nhanh hơn Chỉ những thành phần thuộc về cùng một chỉ mục với thành phần đang xét mới được xét đến

và tính toán các giá trị heuristic cho chúng

Trong chương 6, chúng tôi đưa ra một phương pháp gom cụm dịch vụ Web mới, đó là

phương pháp gom cụm dựa trên luận lý Để làm được điều này, chúng tôi đã đưa ra cách

biểu diễn các dịch vụ Web dưới dạng một biểu thức luận lý, biểu thức này được chuyển đổi tự động từ đặc tả hình thức của dịch vụ Một trong những đóng góp chính của chương này là phương pháp tính toán độ tương tự giữa các dịch vụ dựa trên độ tương tự giữa

các biểu thức luận lý đại diện Ngoài ra, trong chương này, chúng tôi còn đề xuất phương

pháp gom cụm kiểm soát chất lượng, giúp nâng cao chất lượng gom cụm trong khoảng

thời gian thực thi hợp lý Kết quả thực nghiệm được trình bày ở cuối chương cho thấy tính hiệu quả thực tế của nghiên cứu

Chương 7 trình bày về công cụ WSCOVER Đây là công cụ hiện thực hóa tất cả các lý thuyết đã được trình bày trong luận án Kết quả thực nghiệm thông qua công cụ này một lần nữa chứng minh sự đúng đắn của các lý thuyết đã xây dựng trong luận án

Các kết luận của luận án và các định hướng nghiên cứu tiếp theo trong tương lai được chúng tôi trình bày trong Chương 8

Trang 28

CHƯƠNG 2 TÌNH HÌNH NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG

Trong chương này, chúng tôi trình bày tổng quan về các hướng nghiên cứu có liên quan đến luận án Đó là các nghiên cứu về tổ hợp dịch vụ Web và kiểm chứng kết quả tổ hợp Sau khi khảo sát tình hình nghiên cứu, chúng tôi nêu lên các đánh giá cũng như đề xuất các định hướng cho nghiên cứu của mình Đồng thời, chúng tôi cũng kết hợp trình bày các kiến thức nền tảng trong phần sau của chương

Tình hình nghiên cứu

2.1.1 Giới thiệu về kiến trúc hướng dịch vụ

Kiến trúc hướng dịch vụ (SOA) được xem là trường hợp đặc biệt của lĩnh vực tái sử

dụng thành phần, trong đó các thành phần tái sử dụng là các dịch vụ [9] SOA và dịch

vụ Web (dịch vụ hoạt động sử dụng các giao thức Internet) là lĩnh vực được nghiên cứu

và ứng dụng nhiều trong thực tế những năm gần đây [28] Trong SOA, chúng ta có ba

đối tượng chính được minh họa như trong Hình 2-1 Trong đó, Nhà cung cấp dịch vụ là đối tượng tạo ra và lưu trữ dịch vụ, đồng thời cung cấp thông tin mô tả dịch vụ cho Đối

tượng lưu trữ thông tin dịch vụ Người sử dụng thông qua đối tượng này để tìm kiếm

thông tin về các dịch vụ và sau đó xây dựng kênh giao tiếp với Nhà cung cấp dịch vụ

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]

Trong nhiều trường hợp, một dịch vụ Web đơn là không đủ để đáp ứng các yêu cầu phức tạp của người sử dụng Do đó, việc tổ hợp các dịch vụ Web lại với nhau là giải pháp thích hợp để giải quyết vấn đề này Tuy nhiên, khi số lượng và độ phức tạp của các dịch

vụ Web ngày càng tăng lên, việc tìm kiếm các dịch vụ Web phù hợp và tổ hợp chúng lại với nhau nhằm đáp ứng yêu cầu của người sử dụng là vấn đề mà nhiều công trình nghiên cứu còn đang cố gắng giải quyết, đặc biệt là tổ hợp một cách tự động

Người sử dụng

dịch vụ

Nhà cung cấp dịch vụ

Mô tả dịch vụ

Mô tả dịch vụ

Dịch vụ

Ràng buộc và gọi thực thi

Đối tượng lưu trữ thông tin dịch vụ

Trang 29

Trong phương pháp tổ hợp tĩnh thủ công thì việc tổ hợp được thực hiện tại thời điểm

thiết kế và được thực hiện bởi người sử dụng Để tổ hợp, chúng ta phải có sẵn một mô

hình tiến trình công việc [28] Mô hình này bao gồm một tập các tác vụ và sự ràng buộc

giữa chúng Chúng ta cần tìm kiếm các dịch vụ cho từng tác vụ Bên cạnh tính không linh hoạt, phương pháp này còn có hạn chế là chúng thường được sử dụng bởi các nhà phát triển phần mềm chứ không phải bởi người dùng cuối Vì vậy hiện nay, hầu hết các nghiên cứu đều cố gắng tự động hóa việc tổ hợp Tuy nhiên, nhìn bức tranh tổng quát, cộng đồng nghiên cứu cũng đã có những nỗ lực, những công trình nghiên cứu tổ hợp dịch vụ Web tĩnh thủ công Một số nghiên cứu điển hình theo hướng này gồm:

W Dong và cộng sự [29] đã đề xuất một khung thức tĩnh và một mô hình lưu đồ công

việc (workflow) để tổ hợp các dịch vụ Web dựa trên ngôn ngữ BPEL [30], sử dụng Higher-level Petri Net (HPN) Đầu tiên, khung thức hỗ trợ việc chọn lựa và tổ hợp các

dịch vụ Web thủ công (kéo thả) Sau đó, một lược đồ tổ hợp được tạo ra dưới dạng một workflow được mô tả bằng ngôn ngữ BPEL Các HPN được tạo ra bằng cách phân tích cấu trúc của lược đồ này Sau khi có được HPN tương ứng cho các đặc tả BPEL thành phần, các HPN này được ghép nối lại với nhau và kiểm tra tính tương thích cũng như sự phù hợp với yêu cầu của người dùng thông qua các công cụ kiểm tra Petri Net hiện có Kết quả là chúng ta thu được một cách tổ hợp đáp ứng được yêu cầu của người dùng

R Hamadi và B Benatallah [31] đề xuất cấu trúc đại số dựa trên Petri Net (Petri

Net-based algebra) cho các dịch vụ Web Trong nghiên cứu này, mỗi dịch vụ thành phần

được thể hiện bằng một cấu trúc đại số và sau đó chúng được chuyển đổi sang dạng biểu diễn của Petri Net (PN) PN thể hiện hành vi của dịch vụ, nó có một đầu vào để nhận

đối số và một đầu ra để trả kết quả Cấu trúc đại số cho phép tạo ra các dịch vụ Web mới

Trang 30

bằng cách sử dụng các dịch vụ hiện có như là các khối thành phần Một dịch vụ Web

được thể hiện dưới dạng một bộ S = (P, T, W, i, o, l) Trong đó, P là tập các place, T là tập các transition thể hiện cho tác vụ của dịch vụ, W ⊆ ( × ) ∪ ( × ) là tập các cung thể hiện mối quan hệ giữa P và T, i, o lần lượt là input và output place, l: → ∪ { }

là một hàm gán nhãn và là tập hợp tên của các tác vụ, là một silent operation

2.1.2.2 Phương pháp tổ hợp tĩnh bán tự động

Tổ hợp dịch vụ bán tự động khá giống với tổ hợp thủ công, trong đó, các nghiên cứu chủ yếu thực hiện việc tìm kiếm và đề xuất dịch vụ, còn việc chọn dịch vụ cụ thể để tổ hợp là công việc của người sử dụng

R Wang và cộng sự [32] trình bày một cách tiếp cận bán tự động cho việc tổ hợp các dịch vụ Web Nghiên cứu này hỗ trợ người dùng trong việc tổ hợp dịch vụ bằng cách xây dựng một lược đồ tổ hợp và cung cấp các dịch vụ đề xuất Một đồ thị được định nghĩa để hình thức hóa lược đồ tổ hợp Ngoài ra, nghiên cứu này còn đề xuất kỹ thuật hòa giải dữ liệu để giải quyết vấn đề không đồng nhất dữ liệu trong quá trình tổ hợp

L A Cotfas và cộng sự [33] trình bày một hướng tiếp cận tổ hợp dịch vụ theo cách phân

đoạn sử dụng các chuỗi dịch vụ Web đã có để tạo nên chuỗi dịch vụ Web mới Theo ví

dụ trong Hình 2-2, giả sử người dùng yêu cầu tìm kiếm dịch vụ để vận chuyển hàng hoá

đến một địa điểm vào một thời gian nào đó, yêu cầu này được trình bày như trong Hình

2-2(a) Phương pháp phân đoạn sẽ cố gắng chia nhỏ yêu cầu này thành các yêu cầu nhỏ hơn Ứng với mỗi yêu cầu đã chia, chúng ta có thể tìm thấy được một chuỗi dịch vụ có thể đáp ứng (Hình 2-2(b)) Sau đó, chúng được kết hợp để tạo ra tổ hợp cần tìm

(a) Người dùng mô tả các tác vụ

(b) Sơ đồ tổ hợp dịch vụ do khung thức tạo ra 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]

thời gian,

địa điểm

DeliveryService địa chỉ Add2GPSService GPS RouteFindingService

địa điểm TrafficInfoService phương tiện

Trang 31

2.1.2.3 Phương pháp tổ hợp tĩnh tự động

Tổ hợp tự động là việc tạo ra lược đồ tổ hợp và lựa chọn các dịch vụ Web một cách tự động dựa trên các yêu cầu của người dùng Do các phương pháp tổ hợp thủ công rất tốn thời gian và khó thực hiện nên việc tổ hợp tự động là một hướng nghiên cứu rất được quan tâm [28] Việc tự động tổ hợp các dịch vụ Web ngày càng trở nên cần thiết khi số lượng dịch vụ được cung cấp ngày càng tăng lên Có nhiều nghiên cứu đã công bố theo hướng tiếp cận tổ hợp tự động này, trong đó có các nghiên cứu tiêu biểu sau:

PORSCE II [19] là khung thức thực hiện việc tổ hợp dịch vụ Web dựa trên các thuộc tính chức năng của dịch vụ PORSCE II chuyển các mô tả của dịch vụ Web ở dạng

OWL-S thành các hành động trong bài toán lập kế hoạch trí tuệ nhân tạo (Artificial

Intelligence planning – AI planning) Các hành động này được mô tả bởi ngôn ngữ PDDL [34] và PORSCE II sử dụng các bộ lập kế hoạch đã có để thực hiện Kết quả của việc lập kế hoạch là một chuỗi các hành động, đó cũng là tổ hợp dịch vụ Web

M AllamehAmiri và cộng sự [35] đã đề xuất hướng tiếp cận tổ hợp dịch vụ Web tự

động bằng cách áp dụng giải thuật di truyền (Genertic Algorithm – GA) Trong nghiên cứu này, tác giả có xét đến các thuộc tính chất lượng dịch vụ (Quality of Service – QoS) Nghiên cứu đã chia các thuộc tính QoS thành hai loại Các thuộc tính positive là các

thuộc tính mà giá trị của chúng càng lớn thì chất lượng của dịch vụ càng tốt, ví dụ như

tính sẵn sàng (availability), tỷ lệ thực thi thành công (successful execution rate), mức

độ phổ biến (reputation) Ngược lại, các thuộc tính negative là các thuộc tính mà giá trị

của chúng càng nhỏ thì càng tốt, ví dụ như thời gian đáp ứng (response time), chi phí

thực thi (execution cost) Các thuộc tính này có những tác động khác nhau lên giá trị

chất lượng chung của tổ hợp theo các công thức trong Bảng 2-1

Bảng 2-1 Công thức tính toán cho từng thuộc tính QoS và từng trường hợp tổ hợp

Response Time (RT) ∑ m*WS.RT Max(WS.RT)

Execution Cost (EC) ∑ m*WS.EC Max(WS.EC)

Availability (Ava) ∏ WS.Ava Min(WS.Ava)

Successful Execution Rate (Suc) ∏ WS.Suc Min(WS.Suc)

Trang 32

Nghiên cứu trong [35] có nhược điểm là chúng ta phải có lược đồ đầy đủ các cách tổ hợp thoả các ràng buộc về chức năng Ở mỗi bước tổ hợp, chúng ta có thể có rất nhiều dịch vụ phù hợp cho từng tác vụ, nghiên cứu này giúp chúng ta chọn ra các dịch vụ cụ thể để có được một tổ hợp thỏa yêu cầu người dùng, bằng giải thuật di truyền

2.1.2.4 Phương pháp tổ hợp tự động và được thực hiện động lúc chạy

Tổ hợp động (dynamic) nghĩa là các dịch vụ Web được chọn tại thời điểm các dịch vụ

đang thực thi Tuy nhiên, các nghiên cứu hiện nay hầu hết đều triển khai việc thực thi dịch vụ ở mức giả lập và việc tổ hợp chỉ cho phép thỏa một số ràng buộc nhất định Các nghiên cứu tiêu biểu trong nhóm này là:

T H Tan và cộng sự đã đề xuất cách tiếp cận tổ hợp lại các dịch vụ Web động lúc chạy

[36] Với cách tiếp cận này thì chúng ta phải có trước một lược đồ các cách tổ hợp được

mô tả bằng ngôn ngữ BPEL [30] Trong quá trình thực thi, nếu một dịch vụ nào đó

không thể truy cập được (dịch vụ không phản hồi sau khoảng thời gian timeout) thì luồng

thực thi phải chuyển hướng theo một nhánh khác Việc chuyển nhánh bắt đầu từ đâu, quay lui lại bao nhiêu bước là hợp lý thì nghiên cứu trong [36] giúp chúng ta giải quyết vấn đề này, dựa trên giải thuật di truyền

A K Tripathy và cộng sự [37] đã đề xuất phương pháp gom nhóm, phân loại và lựa chọn các dịch vụ Web cho việc tổ hợp động đáp ứng yêu cầu của người dùng Trong nghiên cứu này, đầu vào cần xử lý của quá trình tổ hợp, ngoài các yêu cầu tổ hợp, còn

có một đồ thị các tác vụ, gọi là các Job Nhiệm vụ của nghiên cứu này là nhóm các dịch

vụ theo từng tác vụ Nếu một tác vụ có nhiều hơn một dịch vụ đáp ứng yêu cầu, nghiên cứu sẽ lựa chọn dịch vụ có chất lượng tốt nhất Sau khi chọn được dịch vụ tốt nhất cho từng tác vụ, chúng ta sẽ thu được một tổ hợp tốt nhất đáp ứng yêu cầu người dùng

2.1.2.5 Tổng kết các phương pháp tổ hợp dịch vụ Web

Theo nghiên cứu tổng quan ở trên, chúng ta có rất nhiều công trình đã công bố trong lĩnh vực tổ hợp dịch vụ Web Các nghiên cứu này được phân loại dựa trên nhiều yếu tố khác nhau được liệt kê trong Bảng 2-2 Mỗi cách tiếp cận đều dựa trên các ngôn ngữ mô

tả khác nhau và sử dụng các công cụ, các mô hình khác nhau Mỗi phương pháp có các

ưu và nhược điểm riêng của nó Bảng 2-3 tổng kết các ưu và nhược điểm này

Trang 33

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]

Hướng tiếp cận

Loại tổ hợp

Cách

tổ hợp

Chiến lược

Ngôn ngữ

mô tả

Công cụ hỗ trợ

Dựa trên trí tuệ

nhân tạo [18], [19]    OWL-S

Bộ lập kế hoạch PDDL Dựa trên giải thuật

Giải thuật GA, Ant Colony Dựa trên đề xuất

Giải thuật tìm kiếm Đồ thị Bảng 2-3 Ưu và nhược điểm của các hướng tiếp cận tổ hợp [28]

Dựa trên PN,

HPN [29], [31]

- Tổ hợp được tối ưu hóa

- Sử dụng đặc tả hình thức giúp biểu diễn các dịch vụ Web được chặt chẽ

- Hỗ trợ việc kiểm chứng tổ hợp

- Tổ hợp tĩnh và thực hiện thủ công, tốn thời gian, cần phải có

sự can thiệp của con người

- Chưa áp dụng các thuộc tính về chất lượng dịch vụ (QoS) Dựa trên

giải thuật tối

ưu [35], [38]

- Được thực hiện tự động

- Tỷ lệ thành công cao

- Bảo đảm chất lượng và kết quả tối ưu

- Tốn không gian lưu trữ và không phù hợp khi ứng dụng thực tế

- Phải xây dựng công thức tính toán cho từng thuộc tính chất lượng Dựa trên

- Kết quả không tối ưu toàn cục

2.1.3 Kiểm chứng việc tổ hợp dịch vụ Web

Cộng đồng nghiên cứu đã đề xuất nhiều hướng tiếp cận khác nhau để giải quyết vấn đề kiểm chứng kết quả tổ hợp dịch vụ Web Các nghiên cứu này có thể được chia thành ba hướng chính, đó là kiểm chứng các ràng buộc chức năng, kiểm chứng các ràng buộc chất lượng và kiểm chứng các ràng buộc quan hệ thời gian

Trang 34

2.1.3.1 Phương pháp kiểm chứng các ràng buộc chức năng

Trong hướng này, các nghiên cứu đều chuyển đổi tổ hợp dịch vụ Web được mô tả bằng ngôn ngữ BPEL [30] thành các mô hình được đặc tả bằng các ngôn ngữ hình thức Sau

đó, việc kiểm chứng được thực hiện trên các mô hình này

H Foster và cộng sự [39] chuyển đổi tổ hợp dịch vụ Web thành mô hình LTS [40] và

sử dụng các công cụ kiểm tra mô hình dựa trên LTS để kiểm chứng sự thỏa mãn của tổ hợp với các yêu cầu của người dùng Kết quả của nghiên cứu này là công cụ kiểm chứng

tổ hợp dịch vụ Web WS-Engineer [39]

Tương tự, Y Qian và cộng sự [41] chuyển đổi tổ hợp dịch vụ Web được biểu diễn dưới

dạng BPEL thành dạng timed automata và sử dụng công cụ kiểm tra mô hình UPPAAL

để kiểm chứng các thuộc tính chức năng của mô hình Hình 2-3 minh hoạ các khối chức năng cũng như luồng thực thi của hướng tiếp cận này

Hình 2-3 Kiểm chứng dịch vụ Web tổ hợp BPEL sử dụng timed automata [41]

2.1.3.2 Phương pháp kiểm chứng các ràng buộc chất lượng

Một hướng nghiên cứu khác chỉ tập trung vào khía cạnh chất lượng dịch vụ Trong [42],

S Koizumi và K Koyama đã đề xuất một mô hình dùng để ước lượng thời gian thực

hiện của từng dịch vụ bằng cách sử dụng mô hình Petri Net thời gian và các mô hình

thống kê Tuy nhiên, nghiên cứu này chỉ tập trung vào một thuộc tính QoS là thời gian đáp ứng của dịch vụ mà không xem xét đến các thuộc tính chất lượng khác

Trong [43], C K Fung và cộng sự đã đề xuất mô hình theo dõi thông điệp để hỗ trợ việc quản lý các thuộc tính QoS của các tiến trình BPEL, nghĩa là hệ thống theo dõi thời gian

Công cụ kiểm chứng UPPAAL

Công thức luận lý thời gian

Timed automata

Chức năng chuyển đổi

Kết quả kiểm chứng

Mã nguồn BPEL

Chức năng kiểm chứng

Trang 35

truyền nhận các thông điệp SOAP giữa các dịch vụ Nghiên cứu này dựa trên dữ liệu ở thời gian thực thi, vì thế các dịch vụ cần phải được thực thi một cách thực tế Ngoài ra, nghiên cứu này cũng không xét đến các yêu cầu chức năng của dịch vụ

2.1.3.3 Phương pháp kiểm chứng kết hợp các loại ràng buộc

Khác với hai hướng tiếp cận nêu trên, hướng tiếp cận này thực hiện kiểm chứng kết hợp các loại ràng buộc khác nhau Đây là hướng nghiên cứu mới và phù hợp với thực tế hơn khi mà số lượng dịch vụ Web ngày càng tăng, các dịch vụ so sánh với nhau không chỉ

ở chức năng xử lý mà còn ở các thuộc tính chất lượng dịch vụ Ngoài ra, quan hệ thời gian giữa các dịch vụ cũng là điều hết sức cần thiết

H Xiao và cộng sự [44] đã đề xuất một khung thức kiểm chứng các tổ hợp dịch vụ Web Ban đầu, khung thức này kiểm chứng các ràng buộc chức năng Sau khi quá trình kiểm chứng chức năng thành công, khung thức sử dụng các kỹ thuật mô phỏng để kiểm chứng các ràng buộc chất lượng và quan hệ thời gian giữa các dịch vụ

M Chen và cộng sự [16] đã đưa ra phương pháp kiểm chứng tổ hợp dịch vụ kết hợp các loại ràng buộc Để thực hiện, tác giả chuyển các lược đồ tổ hợp thành mô hình LTS và chuyển các yêu cầu (chức năng lẫn phi chức năng) thành các biểu thức LTL Sau đó, mô hình LTS và biểu thức LTL được đưa vào bộ kiểm tra mô hình để kiểm tra xem mô hình này có thỏa được biểu thức LTL hay không

2.1.4 Các đề xuất và định hướng cho nghiên cứu

Các nghiên cứu về tổ hợp và kiểm chứng dịch vụ Web được thực hiện bởi rất nhiều nhà nghiên cứu trong những năm gần đây Điều này thể hiện qua số lượng các nghiên cứu được công bố đều đặn qua các năm Tuy nhiên, các nghiên cứu này hoặc là dựa trên các

kỹ thuật khác nhau như áp dụng giải thuật di truyền, kỹ thuật lập kế hoạch hoặc dựa trên các khía cạnh, các thuộc tính khác nhau của dịch vụ Mỗi nghiên cứu đều có cách tiếp cận khác nhau, do đó chúng ta khó có thể đánh giá phương pháp nào là tối ưu hơn cả Với xu hướng hiện nay thì phương pháp tổ hợp tự động là hướng nghiên cứu chủ yếu Ngoài ra, nghiên cứu cũng phải mang tính tổng quát – nghĩa là có thể áp dụng cho các loại thành phần phần mềm khác nhau; tính hoàn thiện – nghĩa là phải bao trọn quá trình

tổ hợp, từ việc đặc tả hình thức cho dịch vụ, tổ chức lưu trữ, hỗ trợ truy xuất đúng các

Trang 36

thành phần, cho đến bước tổ hợp và kiểm chứng kết quả tổ hợp; và tính mở rộng – nghĩa

là áp dụng được cho các kho dữ liệu với các quy mô khác nhau Cũng không ngoài xu hướng này, luận án sẽ đưa ra một cơ sở lý thuyết cũng như một khung thức tổng quát cho vấn đề tổ hợp thành phần phần mềm một cách tự động Sau đó, luận án đi sâu vào một trường hợp cụ thể của bài toán tổ hợp thành phần, đó là tổ hợp dịch vụ Web Luận án cần đề xuất phương pháp đặc tả hình thức cho dịch vụ Web Đặc tả này vừa hỗ trợ việc tổ hợp và kiểm chứng dựa trên phương pháp kiểm tra mô hình vừa áp dụng được trong các kỹ thuật khai phá dữ liệu như gom cụm dữ liệu, để hỗ trợ truy xuất dịch vụ nhanh và chính xác Ngoài ra, luận án cần nghiên cứu, tích hợp phương pháp tìm kiếm heuristic vào công cụ kiểm tra mô hình để kiểm soát vấn đề bùng nổ không gian trạng thái, đảm bảo kết quả tổ hợp được tối ưu, tránh tình trạng vét cạn không gian trạng thái Việc kết hợp phương pháp hình thức với kỹ thuật khai phá dữ liệu trong việc lựa chọn

và truy xuất nhanh các dịch vụ cho quá trình tổ hợp sẽ đảm bảo được tính đúng và đầy

đủ của kết quả tổ hợp Điều này được chứng minh một cách chặt chẽ và được kiểm chứng qua kết quả thực nghiệm Kết quả của luận án sẽ là một cơ sở lý thuyết vững chắc

và một công cụ hoàn chỉnh cho bài toán tổ hợp và kiểm chứng dịch vụ Web

Kiến thức nền tảng

2.2.1 Các phương pháp hình thức

Các hệ thống phần mềm ngày nay có sự phát triển mạnh mẽ cả về số lượng lẫn độ phức tạp Việc quản lý, sử dụng và kết hợp chúng là một thách thức của CNPM nói riêng và khoa học máy tính nói chung Một trong những mục tiêu quan trọng của CNPM là giúp nhà phát triển xây dựng nên các phần mềm hoạt động tin cậy Một cách để đạt được mục

tiêu này là sử dụng các phương pháp hình thức [45] Theo E M Clarke và cộng sự [45]

thì các phương pháp hình thức là các công cụ, các kỹ thuật và các ngôn ngữ dựa trên

toán học, được sử dụng để đặc tả và kiểm chứng hay kiểm tra (verifying) các hệ thống

2.2.1.1 Đặc tả hình thức

Đặc tả hình thức đã được quan tâm từ lâu trong lĩnh vực khoa học máy tính Từ những

năm 1940, Turing cho rằng các chương trình tuần tự có thể được tạo ra bằng cách đánh chú thích trạng thái các thuộc tính của hệ thống tại các thời điểm cụ thể [46] Năm 1969,

Trang 37

C A R Hoare đã đề xuất kỹ thuật tiên đề để chứng minh sự nhất quán giữa các chương

trình tuần tự và các mô tả của chúng, được gọi là các đặc tả [47] Sự quan tâm về đặc tả

hình thức và các ứng dụng của chúng đã phát triển liên tục cho đến hiện nay [48]

Có nhiều ngôn ngữ đặc tả hình thức đã được giới thiệu và được phân thành hai nhóm,

đó là nhóm các ngôn ngữ theo phương pháp tinh chế từng bước và nhóm các ngôn ngữ theo phương pháp “thỏa thuận” [49] Các ngôn ngữ đặc tả này dù có cú pháp hay mục đích sử dụng khác nhau, nhưng trong cách biểu diễn ngữ nghĩa cũng như khía cạnh luận

lý của chương trình, chúng đều sử dụng một dạng luận lý dựa trên luận lý bậc nhất [17]

Luận lý bậc nhất (First-Order Logic – FOL)

Về mặt cú pháp, bộ từ vựng của FOL gồm có ba tập: tập ký hiệu vị từ , tập ký hiệu hàm ℱ và tập ký hiệu hằng Mỗi vị từ và hàm sẽ đi kèm với các đối số của nó Các

hằng có thể được biểu diễn thông qua các hàm không có đối số, gọi là hàm nullary Cấu

trúc của một biểu thức FOL được xây dựng dựa trên các định nghĩa sau [17]:

Định nghĩa 2-1 (Nguyên từ – Term) [17] Một nguyên từ t được định nghĩa như sau:

t ∷= x | c | f(t 1 , t2, , t n) (2.1)

với x là một biến bất kỳ, c là một hằng số và f là một hàm với số lượng đối số n > 0

Định nghĩa 2-2 (Công thức luận lý bậc nhất) [17] Một công thức luận lý bậc nhất ( )

được định nghĩa như sau:

::= P(t1, t2, , t n) | (¬ ) | ( ∧ ) | ( ∨ ) | ( → ) | (∀x ) | (∃x ) (2.2) trong đó,

 P ∈ là một vị từ có số lượng đối số n ≥ 1; t1, t2, , t n là các nguyên từ

 Các phép toán ¬, ∧, ∨, → là các phép toán luận lý; ∀, ∃ là các lượng từ; x là một biến Đặc tả cho một vấn đề là rất cần thiết trong việc thiết kế, kiểm tra và tái sử dụng dữ liệu, các giải pháp cũng như các thành phần phần mềm Việc hình thức hóa giúp chúng ta thu được các đặc tả chất lượng, chặt chẽ và hỗ trợ thực hiện tự động một số thao tác như

kiểm tra tính đúng của chương trình bằng kỹ thuật kiểm tra mô hình, hỗ trợ việc tái sử

dụng các thành phần tự động thông qua các đặc tả hình thức của chúng

Trang 38

2.2.1.2 Kiểm tra hình thức

Kiểm tra hình thức là quá trình kiểm tra xem thiết kế của một hệ thống có thoả mãn một

số ràng buộc trên các thuộc tính của hệ thống hay không Để kiểm tra hình thức, hệ

thống phải được đặc tả hình thức [50], gồm một tập hữu hạn các trạng thái và sự chuyển đổi giữa chúng, gọi là mô hình trạng thái hữu hạn Do đó, bước đầu tiên của quá trình

kiểm tra hình thức là chuyển từ hệ thống thực thành một mô hình trạng thái hữu hạn

Kiểm tra mô hình là một trong những phương pháp phổ biến của kiểm tra hình thức [45]

Kiểm tra mô hình là kỹ thuật kiểm tra xem thuộc tính mong muốn có được thỏa mãn

trên một mô hình trạng thái hữu hạn hay không [45] Một cách tổng quát thì kiểm tra

mô hình là quá trình tìm kiếm vét cạn trên không gian trạng thái của mô hình Việc tìm kiếm này bảo đảm kết thúc vì mô hình là hữu hạn trạng thái

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]

Bộ kiểm tra mô hình kiểm tra từng trạng thái của mô hình để xem chúng có thoả mãn thuộc tính cần kiểm tra hay không Nếu có một trạng thái vi phạm, bộ kiểm tra mô hình

sẽ trả về một phản ví dụ mô tả con đường từ trạng thái khởi đầu đến trạng thái vi phạm

đó Hình 2-4 mô tả quá trình kiểm tra mô hình của hệ thống

Các điều kiện cần kiểm tra trong kiểm tra mô hình có thể là các điều kiện định tính thông thường nhưng cũng có thể liên quan đến yếu tố thời gian, ví dụ như “hệ thống có đạt

đến giá trị x=100 trước khi giá trị y=true hay không?” Để biểu diễn được các điều kiện

luận lý có tính chất thời gian này thì chúng ta phải sử dụng các biểu thức luận lý thời

gian như luận lý thời gian tuyến tính (Linear Temporal Logic – LTL)

Thoả yêu cầu

thuộc tính

Trang 39

Luận lý thời gian tuyến tính (LTL) [17] là ngôn ngữ luận lý thời gian với các phép toán

cho phép chúng ta tham khảo đến thời điểm trong tương lai LTL mô hình hoá thời gian dưới dạng một chuỗi các trạng thái, được mở rộng vô hạn trong tương lai Chuỗi các

trạng thái này còn gọi là đường tính toán Định nghĩa 2-3 trình bày về cú pháp của LTL

Định nghĩa 2-3 (Cú pháp của LTL) [17] Biểu thức luận lý thời gian tuyến tính (LTL)

được cho dưới dạng:

∷=⊥ | | | (¬ ) | ( ∧ ) | ( ∨ ) | ( → ) |

Với là một mệnh đề nguyên tố bất kỳ, ⊥ là mệnh đề rỗng, , , , là các phép toán

liên kết thời gian Bảng 2-4 trình bày giải thích chi tiết về các phép toán này

Bảng 2-4 Các phép toán liên kết thời gian trong LTL [17]

Phép toán Thuật ngữ Giải thích Biểu diễn trực quan

Xa neXt a đúng ở trạng thái kế tiếp của trạng thái hiện tại Ÿ → Ÿ ⋯ Ÿ → ⋯

Fa Finally a đúng ở một trạng thái nào đó trong tương lai Ÿ → Ÿ ⋯ Ÿ → ⋯

Ga Globally a luôn đúng ở mọi trạng thái trong tương lai Ÿ → ⋯ Ÿ → Ÿ ⋯

a Ub Until a luôn đúng cho đến khi có trạng thái mà b đúng Ÿ → ⋯ Ÿ → Ÿ ⋯ Bài toán lập kế hoạch có thể được giải quyết thông qua bài toán kiểm tra mô hình [52]

Giả sử chúng ta cần lập kế hoạch thỏa mãn biểu thức điều kiện g (g là một biểu thức

LTL), kết quả của việc lập kế hoạch này sẽ là một phản ví dụ khi thực hiện kiểm tra mô

hình với thuộc tính cần kiểm tra được biểu diễn là f= G (¬g) Kết quả của việc kiểm tra

mô hình là một phản ví dụ, và nó là một giải pháp của bài toán lập kế hoạch

Kỹ thuật kiểm tra mô hình có một số ưu điểm quan trọng như sau [51]:

 Kiểm tra mô hình cho phép chúng ta kiểm tra từng phần Do đó, chúng ta có thể tập trung vào các thuộc tính quan trọng mà không phải đặc tả cả hệ thống

 Kiểm tra mô hình không bị ảnh hưởng bởi lỗi do chúng ta không thực thi hệ thống Điều này trái ngược với các phương pháp kiểm tra khác như kiểm thử và mô phỏng

 Kiểm tra mô hình cung cấp một phản ví dụ khi điều kiện kiểm tra không thoả Thông tin này rất cần thiết để chúng ta biết được nguyên nhân cũng như vị trí gây ra lỗi

 Kiểm tra mô hình đảm bảo được tính đúng và tính chặt chẽ toán học do nó dựa trên các lý thuyết về đồ thị, cấu trúc dữ liệu và luận lý toán học

Trang 40

Một trong những nhược điểm của kỹ thuật kiểm tra mô hình là chúng ta phải đối mặt

với vấn đề bùng nổ không gian trạng thái [51] Số lượng trạng thái trong mô hình của

các hệ thống thực thường vượt quá khả năng xử lý của bộ nhớ máy tính hoặc thời gian

xử lý quá lâu Do đó, việc áp dụng các phương pháp thông minh (như tìm kiếm heuristic) vào quá trình xử lý là điều hết sức cần thiết

2.2.2 Khai phá dữ liệu

2.2.2.1 Giới thiệu về khai phá dữ liệu

Theo J Han và các cộng sự [53] thì khai phá dữ liệu là một phần của quá trình khám

phá tri thức, nhằm mục đích trích xuất các thông tin từ một tập dữ liệu lớn và chuyển

chúng thành các cấu trúc có thể hiểu được cho mục đích sử dụng sau này Khai phá dữ

liệu là một lĩnh vực bao gồm một loạt các vấn đề như phân loại dữ liệu [54], gom cụm

dữ liệu [55] và khai phá luật kết hợp [56] Trong đó, gom cụm dữ liệu được quan tâm

nghiên cứu và sử dụng rộng rãi

2.2.2.2 Giới thiệu về phân tích gom cụm dữ liệu

Phân tích gom cụm (hay gọi đơn giản là gom cụm) [55] là một kỹ thuật phân tích, thăm

dò dữ liệu nhằm phân loại các đối tượng dữ liệu thành các nhóm, hay các cụm, và khám phá ra các kiến thức tiềm ẩn từ các cụm này Nói một cách tổng quát, gom cụm là quá trình phân chia một tập các phần tử thành các cụm gồm các phần tử tương tự nhau

Kỹ thuật gom cụm được sử dụng rộng rãi trong nhiều lĩnh vực như nhận dạng mẫu, phân tích dữ liệu, xử lý hình ảnh, phân loại các văn bản cũng như các đối tượng dữ liệu nói chung [55] Bên cạnh việc gom cụm và khám phá ra các thông tin đặc trưng của từng cụm, phân tích gom cụm còn có chức năng là bước tiền xử lý dữ liệu, giúp chúng ta loại

bỏ các dữ liệu “nhiễu”, không phù hợp với yêu cầu chọn lựa

2.2.2.3 Các phương pháp gom cụm dữ liệu

Có nhiều phương pháp gom cụm dữ liệu đã được đề xuất, tuy nhiên về cơ bản, các phương pháp này được chia thành các loại sau:

a Phương pháp phân hoạch

Cho một tập gồm n đối tượng, phương pháp phân hoạch tạo ra k phần dữ liệu, mỗi phần

là một cụm Phương pháp gom cụm phân hoạch cơ bản thường là gom cụm loại trừ,

Ngày đăng: 28/02/2021, 21:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w