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

Luận án tiến sĩ Khoa học máy tính: 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 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề 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
Tác giả Huỳnh Tấn Khải
Người hướng dẫn PGS. TS. Quản Thành Thơ, PGS. TS. Bùi Hoài Thắng
Trường học Đại học Quốc gia TP. Hồ Chí Minh, Trường Đại học Bách Khoa
Chuyên ngành Khoa học máy tính
Thể loại Luận án Tiến sĩ Kỹ thuật
Năm xuất bản 2018
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 129
Dung lượng 2,01 MB

Cấu trúc

  • CHƯƠNG 1 GIỚI THIỆU (15)
    • 1.1.1 Vấn đề tái sử dụng thành phần (16)
    • 1.1.2 Bài toán tổ hợp dịch vụ Web (17)
  • CHƯƠNG 2 TÌNH HÌNH NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG (28)
    • 2.1.1 Giới thiệu về kiến trúc hướng dịch vụ (28)
    • 2.1.2 Tổ hợp các dịch vụ Web (29)
    • 2.1.3 Kiểm chứng việc tổ hợp dịch vụ Web (33)
    • 2.1.4 Các đề xuất và định hướng cho nghiên cứu (35)
    • 2.2.1 Các phương pháp hình thức (36)
    • 2.2.2 Khai phá dữ liệu (40)
    • 2.2.3 Tìm kiếm dựa trên heuristic (42)
    • 3.1.1 Đặc tả thành phần dựa trên luận lý bậc nhất (46)
    • 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 (0)
    • 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 (48)
    • 3.2.1 Thành phần xử lý giao diện người dùng (49)
    • 3.2.2 Chức năng tổ hợp thành phần (50)
    • 3.2.3 Chức năng lựa chọn thành phần (50)
    • 3.2.4 Thư viện đặc tả thành phần phần mềm (51)
  • 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 (55)
    • 4.2.1 Đặc tả hình thức cho dịch vụ Web (57)
    • 4.2.2 Quản lý các thuộc tính chất lượng dịch vụ (62)
    • 4.2.3 Tổ hợp và kiểm chứng dịch vụ dựa trên kiểm tra mô hình (63)
    • 4.3.1 Minh họa thí nghiệm (65)
    • 4.3.2 Kết quả thực nghiệm (66)
  • 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 (70)
    • 5.1.1 Tìm kiếm trong kiểm tra mô hình (70)
    • 5.1.2 Các hàm xử lý tính toán (71)
    • 5.1.3 Đánh giá hàm heuristic (73)
    • 5.1.4 Trường hợp thí nghiệm (74)
    • 5.2.1 Giới thiệu (74)
    • 5.2.2 Phương pháp thực hiện (75)
    • 5.2.3 Trường hợp thí nghiệm (80)
  • CHƯƠNG 6 GOM CỤM CÁC DỊCH VỤ WEB DỰA TRÊN LUẬN LÝ (85)
    • 6.2.1 Biểu diễn luận lý của dịch vụ Web (90)
    • 6.2.2 Độ tương tự giữa các dịch vụ Web dựa trên luận lý (90)
    • 6.2.3 Gom cụm dịch vụ Web dựa trên luận lý (94)
    • 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 (100)
    • 6.3.1 Điều chỉnh tham số cho việc gom cụm (102)
    • 6.3.2 Đánh giá về chất lượng của các phương pháp gom cụm (103)
    • 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 (104)
    • 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 (106)
  • CHƯƠNG 7 CÔNG CỤ TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH VỤ WEB TỰ ĐỘNG WSCOVER (108)
    • 7.1.1 Tổ hợp và kiểm chứng theo cách on-the-fly (108)
    • 7.1.2 Tổ hợp dịch vụ Web có sự định hướng heuristic (109)
    • 7.1.3 Gom cụm các dịch vụ Web dựa trên luận lý (109)
    • 7.2.1 Tầng tiền xử lý (110)
    • 7.2.2 Tầng xử lý tổ hợp và kiểm chứng (111)
    • 7.2.3 Tầng giao diện người dùng (111)
    • 7.4.1 Ví dụ minh họa (115)
    • 7.4.2 Kết quả thực nghiệm và so sánh với các công cụ khác (116)
  • CHƯƠNG 8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (118)
  • Kết luận (118)
    • 8.2.1 Xử lý vấn đề ngữ nghĩa của dịch vụ Web dựa trên ontology (119)
    • 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 (119)
    • 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ụ (120)
    • 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 (120)
    • 8.2.5 Một số hướng nghiên cứu mở rộng khác (120)
  • TÀI LIỆU THAM KHẢO (124)

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

GIỚI THIỆU

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

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

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

4 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

# Tên dịch vụ Đầu vào Đầu ra RespTime ( s ) Avai (%)

1 HotelReserveService (HR) Dates, Hotel HotelReservation 5 100

6 SightseeingCityHotelService(SCH) Sightseeing City, Hotel 16 80

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

Loại ràng buộc Giá trị

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)

5 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à 10 4 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ụ Γ={W 1 ● W 2 ● ● 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

6 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

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

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ụ

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ụ

Tổ hợp các dịch vụ Web

Trong phần khảo sát tình hình nghiên cứu về tổ hợp dịch vụ Web này, chúng tôi phân chia các hướng tiếp cận tổ hợp dịch vụ Web dựa trên kết quả khảo sát và phân loại của N H Rostami và các cộng sự [28] Theo đó, tác giả đã phân loại các phương pháp tổ hợp dịch vụ Web thành bốn nhóm là: tổ hợp tĩnh thủ công, tổ hợp tĩnh bán tự động, tổ hợp tĩnh tự động, và cuối cùng là tổ hợp tự động và được thực hiện động lúc chạy

2.1.2.1 Phương pháp tổ hợp tĩnh thủ công

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

16 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 Xuất hàng Tìm đường thời gian, địa điểm

DeliveryService địa chỉ Add2GPSService GPS RouteFindingService địa điểm phương tiện

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

Thuộc tính QoS Tuần tự Lặp Song song

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)

Reputation (Rep) ∏ WS.Rep Min(WS.Rep)

18 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

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

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

21 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.

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

22 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

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,

23 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 , t 2, , 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 ∈ là một vị từ có số lượng đối số n ≥ 1; t 1, t 2, , 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

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ị x0 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)

Hình thức hoá Mô hình hoá

Các yêu cầu Hệ thống

Vi phạm + phản ví dụ Đặc tả thuộc tính

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 Ÿ → ⋯ Ÿ → Ÿ ⋯ aUb 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

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ừ,

27 nghĩa là mỗi đối tượng chỉ thuộc về một cụm Tuy nhiên, có một số nghiên cứu dựa trên phân hoạch mờ cho phép các cụm có thể chồng lắp lên nhau Với một số lượng cụm cho trước (k), phương pháp này khởi tạo k cụm một cách ngẫu nhiên Sau đó, giải thuật lặp để sắp xếp lại các cụm bằng cách di chuyển các đối tượng dữ liệu giữa các cụm Giải thuật gom cụm phân hoạch được sử dụng nhiều nhất là k-means [57], được tóm tắt như trong Giải thuật 2-1 Độ phức tạp của thuật toán này là O(nkt), với t là số lần lặp Do k≪n và t≪n nên giải thuật này phụ thuộc chủ yếu vào kích thước của tập dữ liệu

Giải thuật 2-1 Giải thuật k -means [57]

Giải thuật k-means không đảm bảo hội tụ về trạng thái tối ưu toàn cục mà thường dừng ở mức tối ưu cục bộ Kết quả gom cụm có thể phụ thuộc vào việc lựa chọn ngẫu nhiên các tâm cụm ban đầu Để có được kết quả tốt trong thực tế, chúng ta cần chạy thuật toán k-means nhiều lần với các tâm cụm khởi đầu khác nhau b Phương pháp phân cấp

Phương pháp phân cấp tạo ra một cây phân cấp (dendogram) các cụm dữ liệu Phương pháp này được chia thành hai loại là tích tụ (trộn) và phân rã, dựa vào cách mà cây phân cấp được hình thành Phương pháp tích tụ, còn được gọi là phương pháp tiếp cận từ dưới lên, bắt đầu với việc xem từng đối tượng là một cụm Sau đó, chúng ta kết hợp liên tục các cụm tương tự nhau lại với nhau, cho đến khi tất cả các cụm được sáp nhập thành một cụm duy nhất hoặc đạt đến một điều kiện dừng nào đó Phương pháp phân rã, còn được gọi là phương pháp tiếp cận từ trên xuống, bắt đầu với việc xem tất cả các đối tượng dữ liệu là một cụm Trong mỗi lần lặp, một cụm được chia thành các cụm nhỏ hơn, cho đến khi mỗi đối tượng là một cụm, hoặc đạt đến một điều kiện kết thúc Đầu vào : k: số cụm, D: tập dữ liệu chứa n đối tượng dữ liệu Đầu ra : Một tập gồm có k cụm

(1) Chọn ngẫu nhiên k đối tượng từ D và xem như là các tâm của các cụm khởi tạo;

(2) repeat (3) Gán từng đối tượng vào cụm mà nó có độ tương tự cao nhất, giá trị của cụm dựa trên giá trị trung bình của các đối tượng trong cụm;

(4) Cập nhật lại giá trị trung bình của các cụm;

(5) until Giá trị trung bình của các cụm không thay đổi;

28 Để quyết định chọn cụm nào sẽ phân tách hay hai cụm nào để trộn, chúng ta dùng các độ đo khoảng cách giữa các phần tử bên trong cụm cũng như giữa các cụm với nhau Đối với phương pháp phân rã, chúng ta tính khoảng cách nhỏ nhất giữa hai phần tử bất kỳ trong từng cụm, sau đó chọn cụm có khoảng cách lớn nhất để phân tách Đối với phương pháp trộn, chúng ta chọn hai cụm có khoảng cách nhỏ nhất để trộn lại với nhau

Có 4 phương pháp phổ biến để tính khoảng cách giữa các cụm là [58]: phương pháp liên kết đơn, liên kết toàn bộ, liên kết trung bình và phương pháp Ward

Giải thuật HAC [58] được xem là giải thuật phổ biến nhất trong số các giải thuật gom cụm theo cách phân cấp Nó sử dụng hướng tiếp cận từ dưới lên để tạo thành các cụm Đầu tiên, HAC xây dựng một ma trận kề chứa khoảng cách (hoặc độ tương tự) giữa các cặp cụm dữ liệu Sau đó, nó chọn ra cặp cụm gần nhau nhất (có độ tương tự cao nhất) để trộn lại thành một cụm Quá trình này được lặp lại liên tục cho đến khi các phần tử dữ liệu được trộn lại thành một cụm hoặc đến khi thoả một điều kiện dừng nào đó c Các phương pháp gom cụm dữ liệu khác

Ngoài hai phương pháp đã đề cập ở trên, lĩnh vực gom cụm dữ liệu còn được phân ra thành nhiều phương pháp, nhiều hướng tiếp cận khác nhau, cụ thể là [58]:

 Phương pháp gom cụm dựa trên mật độ

 Phương pháp gom cụm dựa trên lưới

 Phương pháp gom cụm sử dụng mạng nơ ron nhân tạo

 Phương pháp gom cụm dựa trên mô hình

 Phương pháp gom cụm mờ

Tuy nhiên, do các phương pháp này không được ứng dụng vào công việc của luận án, nên luận án không đi sâu vào việc trình bày các phương pháp này.

Tìm kiếm dựa trên heuristic

Thuật ngữ tìm kiếm trong khoa học máy tính là quá trình tìm ra một giải pháp cho một vấn đề chưa được giải quyết [59] Quá trình giải quyết một vấn đề thường được mô hình hóa như là quá trình tìm kiếm trên một không gian trạng thái, bắt đầu từ một vài trạng thái khởi tạo ban đầu cho đến khi đạt được trạng thái thỏa các điều kiện đã đề ra, gọi là trạng thái đích, bằng cách áp dụng lặp đi lặp lại các quy tắc dùng để chuyển đổi từ trạng

29 thái này sang trạng thái khác Trong một số trường hợp, chúng ta không chỉ muốn tìm ra một giải pháp mà còn mong muốn tìm ra giải pháp tốt nhất theo một số tiêu chí nào đó, chẳng hạn như chi phí ít nhất hoặc số bước chuyển trạng thái ít nhất

Tìm kiếm là một trong những vấn đề quan trọng của lĩnh vực trí tuệ nhân tạo Rất nhiều giải thuật cũng như ứng dụng của chúng đã được đề xuất Trong khoa học máy tính, heuristic được xem là phương pháp làm việc dựa vào kinh nghiệm và được sử dụng rộng rãi, đặc biệt là trong lĩnh vực tìm kiếm

2.2.3.1 Giới thiệu về tìm kiếm dựa trên heuristic

Heuristics trong bài toán tìm kiếm là sự ước lượng chi phí còn lại từ trạng thái hiện hành đến trạng thái đích Chi phí này được dùng để đánh giá và lựa chọn trạng thái triển vọng để chuyển đến trong số các trạng thái có thể chuyển tiếp Do đó, nếu có nhiều đường để đi đến trạng thái đích thì heuristic giúp chọn con đường có chi phí thấp nhất Nói cách khác, heuristic giúp định hướng việc tìm kiếm sao cho kết quả tìm kiếm là tối ưu Định nghĩa 2-4 (Heuristic) [59] Heuristic h là hàm đánh giá một trạng thái trên đồ thị không gian trạng thái (có hoặc không có trọng số), là một ánh xạ từ tập V vào tập ℝ≥0

Chúng ta đặt h(t) = 0 cho mọi trạng thái đích t∈T, mọi trạng thái u ∈ V \T thì h(u)≠0 Để kiểm tra trạng thái u có đạt đến trạng thái đích hay chưa thì chúng ta kiểm tra xem h(u) có bằng 0 hay không Gọi g(u) là chi phí đã tiêu tốn để chuyển từ trạng thái khởi đầu đến trạng thái u và h(u) là chi phí ước lượng dùng để chuyển từ trạng thái u đến trạng thái đích Như vậy tổng chi phí của một giải pháp mà nó đi qua trạng thái u là: f(u) = g(u) + h(u) (2.4)

Việc lựa chọn hàm heuristic cần phải xem xét một số tính chất sau [59]:

 Tính nhất quán (consistent): Hàm heuristic h được gọi là nhất quán nếu h(u) ≤ h(v) + w(u, v) với mọi cạnh e = (u, v) ∈ E

 Tính đơn điệu (monotonic): Gọi (u 0, …, u k ) là một đường bất kỳ trên đồ thị không gian trạng thái có trọng số và hàm chi phí f(u)=g(u)+h(u) Hàm heuristic h gọi là đơn điệu nếu f(u j ) ≥ f(u i ) (∀i, j: 0 ≤ i ≤ j ≤ k) Điều này có nghĩa là chi phí của toàn bộ con đường là không giảm từ một nút đến các nút sau của nó Hay nói cách khác, tính đơn điệu của một heuristic là nó sẽ bảo đảm đường đi ngắn nhất đến mỗi trạng thái

30 Các giải thuật tìm kiếm dựa trên heuristic sử dụng các thông tin có liên quan để tính toán chi phí ước lượng từ trạng thái hiện hành đến trạng thái đích Do đó, các thuật toán tìm kiếm này còn có tên gọi khác là các thuật toán tìm kiếm có thông tin

Giải thuật tìm kiếm heuristic nổi bật nhất là giải thuật A* [60] Để đánh giá kết quả tìm kiếm, A* sử dụng hàm tính chi phí như trong công thức (2.3) Như vậy, điểm khác biệt của A* với giải thuật tìm kiếm theo lựa chọn tốt nhất (best-first search) [61] là nó có tính đến chi phí thực đã bỏ ra Điều này giúp cho giải thuật A* có tính đầy đủ và tối ưu

2.2.3.3 Một số ứng dụng của tìm kiếm heuristic a Bài toán lập kế hoạch

Bài toán lập kế hoạch [62] là bài toán tìm ra chuỗi các hành động để chúng ta có thể chuyển từ trạng thái khởi tạo đến trạng thái đích Mỗi trạng thái trong bài toán lập kế hoạch là một cách gán các giá trị cho các biến Trạng thái khởi tạo là một sự khởi tạo giá trị ban đầu cho các biến, trạng thái đích là trạng thái mà ở đó các giá trị trong các biến phải thỏa một số điều kiện nhất định Bài toán lập kế hoạch thường không chỉ yêu cầu tìm ra một chuỗi các hành động mà còn kèm theo một số điều kiện tối ưu như tìm ra chuỗi hành động với số hành động ít nhất hoặc chuỗi hành động này có chi phí thấp nhất Đây là một ứng dụng đặc trưng của tìm kiếm heuristic b Kiểm tra hệ thống tự động

Một trong những yêu cầu của lĩnh vực công nghệ phần mềm là tạo ra những sản phẩm có độ tin cây cao Các lỗi phát sinh nếu có trong các hệ thống phần mềm cũng như phần cứng có thể gây nên những hậu quả hết sức nghiêm trọng, đặc biệt là trong các lĩnh vực đòi hỏi tính chính xác cao hoặc những lĩnh vực không có khả năng kiểm thử như lĩnh vực y học, hàng không vũ trụ Vì vậy, việc kiểm tra hệ thống nói chung và việc ứng dụng tìm kiếm heuristic vào vấn đề kiểm tra hệ thống ngày càng được quan tâm

Quá trình kiểm tra các thuộc tính một cách tự động dựa trên mô hình của hệ thống được gọi là kiểm tra mô hình Trong kiểm tra mô hình, các trạng thái của hệ thống được biểu diễn trên một đồ thị, gọi là đồ thị trạng thái Nhiệm vụ của kiểm tra mô hình là tìm ra trên đồ thị này những trạng thái mà chúng không thỏa mãn thuộc tính cần kiểm tra Các

31 thuật toán tìm kiếm trên đồ thị thường là tìm kiếm theo chiều rộng hoặc theo chiều sâu

Tuy nhiên, với các hệ thống thực thì số lượng trạng thái là vô cùng lớn Do đó, các thuật toán tìm kiếm truyền thống tỏ ra không hiệu quả Với việc tích hợp heuristic vào quá trình tìm kiếm (gọi là kiểm tra mô hình có định hướng), chúng ta có thể cải thiện quá trình tìm kiếm, từ đó giúp cải thiện quá trình kiểm tra mô hình

Khi áp dụng vào kiểm tra mô hình, heuristic giúp chúng ta đánh giá và xếp thứ tự các trạng thái được khảo sát, theo cách các trạng thái được xem là “gần” trạng thái đích được ưu tiên xem xét trước Như vậy, với sự hỗ trợ của hàm đánh giá heuristic, chúng ta có cơ hội đạt đến trạng thái đích sớm hơn mà không phải vét cạn hết không gian trạng thái

Do đó, chúng ta có thể đạt đến trạng thái đích với chi phí tối ưu

Trong chương này, chúng tôi đã trình bày tổng quan về tình hình các hướng nghiên cứu có liên quan đến nghiên cứu của luận án Với việc khảo sát các nghiên cứu có liên quan, chúng tôi nắm bắt được các ưu, nhược điểm của từng nghiên cứu cũng như các hướng nghiên cứu có thể khai thác mở rộng để từ đó đề xuất nên các ý tưởng, các định hướng cho nghiên cứu của mình Cũng trong chương này, chúng tôi đã trình bày các kiến thức nền tảng mà chúng tôi sẽ sử dụng trong việc xây dựng nên nghiên cứu của luận án Các kiến thức này là tiền đề, là cơ sở lý thuyết cho nghiên cứu của chúng tôi

Trong chương sau, chúng tôi sẽ bắt đầu công việc nghiên cứu của luận án này bằng việc đề 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 dựa trên đặc tả hình thức Từ khung thức tổng quát này, chúng tôi phát triển các lý thuyết và các cải tiến có liên quan để áp dụng và tối ưu nó cho bài toán tổ hợp dịch vụ Web trong các chương sau

CHƯƠNG 3 KHUNG THỨC TỔNG QUÁT TỔ HỢP THÀNH PHẦN

Đặc tả thành phần dựa trên luận lý bậc nhất

Luận lý bậc nhất (FOL) hay luận lý vị từ là một ngôn ngữ hình thức, là một dạng mở rộng của luận lý mệnh đề với việc bổ sung các vị từ, lượng từ và các biến [17] Do đó, FOL cho phép biểu diễn tri thức linh hoạt và nhỏ gọn hơn Trong khung thức đề xuất, chúng tôi sử dụng FOL để đặc tả các thành phần phần mềm Một thành phần phần mềm được xem như một hộp đen và được đặc tả như trong Đoạn mã 3-1 Trong đó:

 Name là định danh của thành phần

 Thẻ input chứa danh sách các tham số đầu vào kèm theo kiểu dữ liệu của chúng

 Thẻ output chứa danh sách các tham số đầu ra kèm theo kiểu dữ liệu của chúng

 Thẻ pre chứa biểu thức FOL mô tả tiền điều kiện của thành phần

 Thẻ post chứa biểu thức FOL mô tả những tác động sau khi sử dụng thành phần Đoạn mã 3-1 Cấu trúc đặc tả của một thành phần được lưu trữ trong thư viện

Danh sách biến và kiểu dữ liệu tương ứng

Danh sách biến và kiểu dữ liệu tương ứng

Biểu thức FOL

Biểu thức FOL

Đoạn mã 3-2 trình bày một ví dụ về một đặc tả cho hàm thư viện tìm kiếm nhị phân có tên là binarySearch Hàm này được xem như một thành phần lưu trữ trong thư viện

33 Đoạn mã 3-2 Đặc tả hình thức cho hàm tìm kiếm nhị phân (binarySearch)

]]>

3.1.2 Độ tương tự giữa các thành phần dựa trên luận lý bậc nhất

Sau khi các thành phần phần mềm được đặc tả dưới dạng các biểu thức FOL lưu trữ trong thư viện, chúng ta xây dựng độ đo để tính toán độ tương tự giữa các biểu thức FOL đại diện, hỗ trợ việc tìm kiếm các thành phần đáp ứng yêu cầu người dùng Để tính toán độ tương tự này, chúng tôi dựa trên các định nghĩa sau:

Gọi Γ là tập các biểu thức FOL, T = {t 1, , t m } là tập các ký hiệu (symbol) và các mệnh đề (term) trong Γ, và c, p là hai biểu thức FOL trong Γ Định nghĩa 3-1 (Ma trận đặc trưng) [CT4] Ma trận đặc trưng Φ là một ánh xạ Φ Γ × {1, , } → {0, 1}, với: Φ( , ) = 1 nếu xuất hiện trong

0 ngược lại (3.1) Định nghĩa 3-2 (Vector đặc trưng) [CT4] Cho ma trận đặc trưng Φ, gọi φ c là vector đặc trưng của biểu thức c (c∈Γ), φ c có m thành phần, mỗi thành phần được định nghĩa là:

= 1 ⟺ Φ(c,i) = 1 (3.2) Định nghĩa 3-3 (Hàm phân loại) [CT4] Với mỗi biểu thức p trong Γ, một hàm phân loại (C p (.)) cho biểu thức này được định nghĩa như sau:

Gọi c là biểu thức đại diện cho yêu cầu của người dùng, hàm phân loại C p (c) tính toán mức độ phù hợp của p so với c Hàm phân loại giúp chúng ta trả lời câu hỏi là thành phần p có nằm trong giải pháp đáp ứng yêu cầu c hay không Nếu giá trị C p (c) vượt một

34 ngưỡng nhất định thì p là một phần của giải pháp Để tính C p (c), chúng ta tính góc lệch giữa hai vector đại diện của hai biểu thức này, hoặc có thể áp dụng một phương pháp học máy như Naive Bayes [63], tuỳ theo độ phức tạp của bài toán

Ví dụ 3-1 Với ba thành phần p 1, p 2 và p 3 được mô tả trong Đoạn mã 3-3, chúng ta định nghĩa các mệnh đề t 1, t 2, t 3 và t 4 lần lượt là tập các phép toán {+, -}, {*}, {>, =n)]]>

=0 && i=0&&j=n)) ]]>

Trong phần này, chúng tôi trình bày một ví dụ minh họa về chức năng tổ hợp hàm thư viện tự động đáp ứng yêu cầu người dùng Giả sử chúng ta có một thư viện gồm có 4

38 hàm được đặc tả như trong Đoạn mã 3-4 Trong đó, hàm get_StudentList_By_GPA trả về danh sách sinh viên có điểm trung bình (GPA) lớn hơn hoặc bằng n Hàm get_StudentList_By_SubjectScore trả về danh sách sinh viên có kết quả học tập mọi môn học đều lớn hơn n Hàm get_n_Elements trả về danh sách gồm n đối tượng đầu tiên của danh sách s, nếu số phần tử trong s nhỏ hơn n thì mọi phần tử trong s sẽ được trả về

Hàm sort_DescList_By_GPA sắp xếp danh sách sinh viên theo điểm GPA giảm dần

Giả sử người dùng cần tạo ra đoạn chương trình trả về danh sách sinh viên được nhận học bổng theo kết quả học tập Danh sách sinh viên được nhận học bổng là danh sách có tối đa n sinh viên (n là một con số đã được ấn định, chẳng hạn như 10% tổng số sinh viên) Danh sách này được xếp theo thứ tự giảm dần của điểm trung bình (GPA) Sinh viên trong danh sách này phải có điểm GPA ≥ 7.0 và điểm của từng môn học phải lớn hơn hoặc bằng 5.0 Các yêu cầu này được đặc tả như trong Đoạn mã 3-5 Trong đó, @in dùng để chỉ định danh sách các đối số đầu vào, @out chỉ định danh sách đối số trả về,

@require dùng để mô tả biểu thức tiền điều kiện và @ensure dùng đặc tả cho những mong muốn mà người dùng muốn đạt được Đoạn mã 3-5 Đặc tả yêu cầu người dùng tổ hợp hàm thư viện

//@in s: StudentList, n: int //@out x: StudentList

//@require listnotnull(s) //@ensure x.len=0&&j=5.0))

Với yêu cầu và các hàm thư viện như trên, các bước tổ hợp được thực hiện như trong Hình 3-2 Trong đó, quá trình lập kế hoạch được tiến hành theo chiến lược tìm kiếm backward [64], nghĩa là quá trình lập kế hoạch xuất phát từ mục tiêu Kết quả tổ hợp cuối cùng như sau: Đầu tiên, hàm get_StudentList_By_SubjectScore() được gọi để trả về danh sách sinh viên có điểm các môn học lớn hơn hoặc bằng 5.0 Sau đó, hàm get_StudentList_By_GPA() được gọi để trả về danh sách sinh viên có điểm GPA lớn hơn hoặc bằng 7.0 Tiếp theo, hàm sort_DescList_By_GPA() được gọi để sắp xếp danh sách sinh viên theo điểm GPA giảm dần Cuối cùng, hàm get_n_Elements() được gọi để trả

39 về n sinh viên đầu tiên của danh sách Chúng ta chú ý là khi các hàm được gọi, danh sách trả về từ bước gọi trước sẽ là đối số đầu vào của bước gọi sau

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]

Trong chương này, chúng tôi đã đề xuất một khung thức tổng quát cho việc tổ hợp và tái sử dụng thành phần phần mềm tự động Trong khung thức này, đầu tiên, chúng tôi đề xuất sử dụng ngôn ngữ luận lý bậc nhất (FOL) để đặc tả thành phần phần mềm Với việc sử dụng FOL để đặc tả thành phần, chúng ta có thể mở rộng kỹ thuật lập kế hoạch bằng cách sử dụng các bộ chứng minh trong việc so trùng các thành phần phần mềm có cùng chức năng nhưng có cách biểu diễn khác nhau Ngoài ra, khung thức này còn có chức năng lựa chọn thành phần, chức năng này hoạt động dựa trên các kỹ thuật khai phá dữ liệu cũng như các kỹ thuật hỗ trợ truy xuất thành phần khác Điều này giúp cho khung thức của chúng tôi hoạt động một cách hiệu quả trong việc tổ hợp và tái sử dụng thành phần, đặc biệt là khi áp dụng với các thư viện thành phần quy mô lớn Các công trình đã công bố có liên quan đến công việc trong chương này gồm [CT4], [CT6] và [CT10]

40 Trong các chương tiếp theo, chúng tôi mở rộng khung thức tổng quát này cho bài toán tổ hợp dịch vụ Web Các đặc tả FOL cho thành phần phần mềm cũng được mở rộng để phù hợp hơn với các dịch vụ Web Ngoài ra, với đặc trưng của bài toán tổ hợp dịch vụ, yêu cầu tổ hợp chứa nhiều loại ràng buộc khác nhau liên quan đến các thuộc tính chức năng (ràng buộc chức năng), thuộc tính chất lượng (ràng buộc chất lượng) và các ràng buộc về quan hệ thời gian, thứ tự thực thi giữa các dịch vụ (ràng buộc có yếu tố thời gian) Để giải quyết đồng thời các loại ràng buộc này, chúng tôi sử dụng phương pháp kiểm tra mô hình trong quá trình tổ hợp và kiểm chứng kết quả tổ hợp

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

Đặc tả hình thức cho dịch vụ Web

Để xây dựng mô hình cho bài toán tổ hợp và kiểm chứng dịch vụ Web, chúng ta phải biểu diễn một cách hình thức cho từng dịch vụ Việc đặc tả hình thức cho dịch vụ và mô hình của bài toán được xây dựng dựa trên các định nghĩa sau Định nghĩa 4-1 (Dịch vụ Web) [CT5], [CT7] Một dịch vụ Web là một bộ sáu, ( , ℐ, , , ℰ, ), trong đó:

 là tên định danh của ,

 ℐ = { , … , } là tập các thuộc tính chức năng đầu vào, với là định danh đại diện cho một thuộc tính chức năng đầu vào Gọi là mệnh đề luận lý thể hiện trạng thái của thuộc tính , = nghĩa là thông tin về thuộc tính đã có và ngược lại

 = { , … , } là tập các thuộc tính chức năng đầu ra, với là định danh đại diện cho một thuộc tính chức năng đầu ra Gọi là mệnh đề luận lý thể hiện trạng thái của thuộc tính , = nghĩa là thông tin về thuộc tính đã có và ngược lại

 là biểu thức luận lý thể hiện cho tiền điều kiện của , tiền điều kiện này phải được thỏa trước khi được gọi thực thi có dạng chuẩn giao của tất cả các mệnh đề luận lý , = ∧ ∧ … ∧ = ⋀

 ℰ là tập các biểu thức gán mô tả cho những tác động sau khi được gọi thực thi ℰ có dạng {∀ = 1 : ≜ } với ≜ là phép gán Do là một mệnh đề luận lý nên ℰ có thể được thể hiện đơn giản là {∀ = 1 : } hay { ; ; … ; ; }

 là tập các thuộc tính chất lượng dịch vụ, mỗi phần tử trong tập này có dạng một cặp 〈 : 〉, với name là tên của thuộc tính và value là một giá trị số thể hiện chất lượng của thuộc tính tương ứng

Ví dụ 4-1 Chúng ta xét dịch vụ HotelReserveService (HR) trong Bảng 1-1 Dịch vụ này trả về thông tin đặt phòng (HotelReservation) theo tên khách sạn (Hotel) và những ngày sẽ đặt phòng (Dates) Thời gian đáp ứng của nó (respTime) là 5 giây, tính sẵn sàng (Avai) của nó là 100% Dịch vụ Web này được mô tả theo Định nghĩa 4-1 như sau:

Biểu thức luận lý ∧ là tiền điều kiện của HR, nó phải được thỏa trước khi HR được gọi Điều này có nghĩa là để gọi dịch vụ Web HR, chúng ta phải có thông tin về Hotel và Dates Tác động sau khi thực thi dịch vụ này là chúng ta có được thông tin về việc đặt phòng, hay = Định nghĩa 4-2 (Hệ thống chuyển trạng thái có gán nhãn) [40] Một hệ thống chuyển trạng thái có gán nhãn (LTS) là bộ năm: ℒ = (V, S, s 0, L, δ), với

 S là tập các trạng thái,

 s 0 ∈ S là trạng thái khởi đầu,

 L là tập các nhãn hành động,

 δ: S × L → S là tập quan hệ chuyển trạng thái Một quan hệ (s, a, s') ∈ δ được ký hiệu là (s × a → s')

45 Một chuyển trạng thái có thể có tiền điều kiện hay điều kiện đảm bảo (guard), là một biểu thức luận lý được xây dựng từ các biến trong tập V Ngoài ra, một chuyển trạng thái cũng có thể có các tác động, là các biểu thức gán trên tập biến V, nó mô tả các tác động lên tập biến V sau khi chuyển trạng thái được thực hiện Một LTS hỗ trợ các chuyển trạng thái có tiền điều kiện và tác động được gọi là hệ thống LTS có điều kiện đảm bảo (guarded LTS), các chuyển trạng thái này được mô tả như sau:

[điều kiện đảm bảo] chuyển trạng thái [tác động]

Ví dụ 4-2 Cho một LTS gồm có hai trạng thái là {start, end}, trong đó start là trạng thái khởi đầu, như minh họa trong Hình 4-2, và một tập V chứa các biến: , và LTS này mô tả rằng từ trạng thái start, nếu chúng ta thực thi chuyển trạng thái có nhãn là HR thì hệ thống chuyển sang trạng thái end LTS này được trình bày trực quan trong Hình 4-2 và được mô tả là ℒ= (V, S, s 0, L, δ), với:

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

Trong Hình 4-2, chúng tôi thể hiện việc gọi thực thi của một dịch vụ Web (dịch vụ HR) như là một chuyển trạng thái trong LTS Như vậy, một thư viện dịch vụ Web có thể được biểu diễn như là một hệ thống LTS với mỗi dịch vụ tương ứng với một chuyển trạng thái như trong định nghĩa sau Định nghĩa 4-3 (Hệ thống chuyển trạng thái có gán nhãn cho dịch vụ Web) [CT5],

[CT7] Cho tập dịch vụ Web WS = { , …, } với =( , ℐ , , , ℰ , ) là dịch vụ Web được định nghĩa như trong Định nghĩa 4-1 Một hệ thống chuyển trạng thái có gán nhãn cho dịch vụ Web (hay còn gọi là mô hình LTS4WS) của một thư viện dịch vụ là một guarded LTS ℒ = (V, {s 0}, s 0, L, δ), với:

 {s 0} là tập trạng thái trong đó chỉ có một trạng thái s 0,

 s 0 là trạng thái khởi đầu,

 δ là một tập các quan hệ chuyển trạng thái, mỗi quan hệ chuyển trạng thái có dạng [ ] s 0 × → s 0 [ℰ ]

Ví dụ 4-3 Mô hình LTS4WS của 10 dịch vụ Web trong Bảng 1-1 được đặc tả như sau:

 Tập các nhãn là tên định danh của các dịch vụ Web: L = {HR, CH, HC, HP, SC, SCH,

 Tập các chuyển trạng thái: δ ={[ ∧ ] s 0 × HR → s 0 [ ],

[ ] s 0 × CH → s 0 [ ], [ ] s 0 × HC → s 0 [ y], [ ] s 0 × HP → s 0 [ ı ], [ ℎ ] s 0 × SC → s 0 [ ], [ ℎ ] s 0 × SCH → s 0 [ ; ], [ ] s 0 × CS → s 0 [ ℎ ],

Mô hình LTS4WS được trình bày một cách trực quan trong Hình 4-3 Trong đó, , ℰ lần lượt là tiền điều kiện và tác động của dịch vụ X

Như định nghĩa trong Định nghĩa 4-3, LTS4WS là một mô hình LTS chỉ có một trạng thái s 0, các chuyển trạng thái có dạng lặp vòng Tuy nhiên, mỗi khi có một chuyển trạng thái được thực hiện thì giá trị của các biến trong tập V bị thay đổi Sự đơn giản của mô hình LTS4WS tạo ra một lợi thế quan trọng khi thực hiện việc tổ hợp và kiểm chứng vì chúng ta không cần phải tạo ra một lược đồ đầy đủ các cách tổ hợp như cách tiếp cận trong [16] và không thay đổi mô hình cho các yêu cầu khác nhau của người dùng

47 Hình 4-3 Ví dụ trực quan về mô hình LTS4WS [CT8] Đoạn mã 4-1 mô tả cấu trúc của mô hình LTS4WS theo định dạng ngôn ngữ XML

Trong cấu trúc này, các biến và các hằng số được khai báo trong thẻ Declaration Thẻ

Process chứa nội dung chính của mô hình Trong đó, thẻ States chứa các trạng thái của mô hình và chỉ có một trạng thái s 0 Thẻ Transitions chứa các chuyển trạng thái Trong

Transition, thẻ Event chứa tên của chuyển trạng thái, cũng chính là tên định danh của dịch vụ, thẻ Guard và thẻ Effect lần lượt chứa biểu thức tiền điều kiện và tác động của từng Transition Đoạn mã 4-1 Mô hình LTS4WS được trình bày dưới định dạng XML

Định danh dịch vụ

Biểu thức tiền điều kiện

Biểu thức tác động

Quản lý các thuộc tính chất lượng dịch vụ

Các thuộc tính chất lượng dịch vụ (QoS) là các thuộc tính liên quan đến khía cạnh phi chức năng của dịch vụ, chẳng hạn như thời gian đáp ứng (response time), chi phí thực thi (execution cost), tính sẵn sàng (availability), … [35] Giá trị của các thuộc tính chất lượng này được cập nhật liên tục cho từng dịch vụ Web

Các thuộc tính QoS được chia ra thành hai loại: các thuộc tính positive và các thuộc tính negative [35] Các thuộc tính positive là các thuộc tính mà giá trị của chúng càng cao thì chất lượng dịch vụ càng tốt, ví dụ như tính sẵn sàng, tỉ lệ thực thi thành công, … Ngược lại, các thuộc tính negative có giá trị càng cao thì chất lượng của dịch vụ càng thấp Các thuộc tính chi phí thực thi, thời gian phản hồi, … thuộc nhóm này Giá trị của các thuộc tính trong các nhóm khác nhau có ảnh hưởng khác nhau, thậm chí là tác động ngược nhau đến giá trị chất lượng chung của dịch vụ Bên cạnh đó, các thuộc tính này có giá trị trong các giới hạn khác nhau và có đơn vị tính khác nhau Ví dụ như thuộc tính thời gian đáp ứng có giá trị từ 1 đến một chặn trên nào đó (ví dụ 60) và có đơn vị tính là giây

(s), trong khi thuộc tính về tính sẵn sàng của dịch vụ có đơn vị tính là phần trăm (%) và có giá trị trong khoản từ 0 đến 100 Như vậy, để tính toán giá trị chung thì chúng ta phải chuẩn hoá chúng Do hai nhóm thuộc tính có sự tác động khác nhau lên giá trị chất lượng chung của dịch vụ, nên chúng ta cũng tách ra hai trường hợp chuẩn hoá khác nhau

Gọi Q là một thuộc tính chất lượng bất kỳ của một dịch vụ Web, thuộc tính Q có giá trị là q, giá trị chặn dưới và chặn trên của chúng lần lượt là q min và q max Khi đó, giá trị chi phí của thuộc tính này (c) được tính theo công thức sau :

 Nếu Q là thuộc tính thuộc nhóm các thuộc tính negative:

 Nếu Q là thuộc tính thuộc nhóm các thuộc tính positive:

1 ế − = 0 (4.2) Các thuộc tính QoS được biểu diễn trong hệ thống của chúng tôi được mô tả dưới dạng XML như trong Đoạn mã 4-2 Trong đó, mỗi thuộc tính có các thông số gồm: tên thuộc

49 tính (Name), giá trị tối thiểu (MinValue), giá trị tối đa (MaxValue), giá trị mặc định (DefaultValue), định nghĩa hàm tính toán kết hợp (AggregationRule), trọng số (Weight), thông số cho biết loại thuộc tính là negative hay positive (isPositive) và mô tả cho thuộc tính (Description) Trong đó, thành phần AggregationRule là thành phần rất quan trọng, nó chứa đựng quy tắc (rule) tính cộng gộp giá trị của thuộc tính của từng dịch vụ Web vào giá trị chung của tổ hợp Các thuộc tính khác nhau có các công thức tính cộng gộp khác nhau như đã trình bày trong Bảng 2-1 Với cách biểu diễn dưới dạng một luật, chúng ta có thể áp dụng lý thuyết về term rewriting [67] trong việc suy diễn và tính toán giá trị cho các thuộc tính khác nhau Điều này giúp chúng ta có thể xử lý cho mọi thuộc tính khác nhau với các công thức tính toán khác nhau mà không phải hiện thực chi tiết trong mã nguồn hay chỉnh sửa mã nguồn khi có thuộc tính mới hoặc có sự thay đổi công thức tính toán của một thuộc tính bất kỳ Đoạn mã 4-2 Biểu diễn của các thuộc tính chất lượng dịch vụ [CT5], [CT9]

Tổ hợp và kiểm chứng dịch vụ dựa trên kiểm tra mô hình

Trong luận án này, chúng tôi sử dụng và mở rộng công cụ kiểm tra mô hình PAT [68]

PAT có chức năng chính là kiểm chứng một biểu thức luận lý có được thỏa trong mô hình đã cho hay không Chúng tôi mở rộng công cụ này với các cải tiến như sau Đầu

and(responseTime(x), curVal(y)) > responseTime([x+y])

Thời gian đáp ứng của dịch vụ

50 tiên, chúng tôi đưa heuristic vào cơ chế tìm kiếm trên PAT, giúp cho quá trình tìm kiếm được thực hiện hiệu quả hơn, tránh trường hợp phải vét cạn không gian trạng thái Cải tiến thứ hai đó là chúng tôi sử dụng kết quả của quá trình lập chỉ mục các dịch vụ, cũng là lập chỉ mục các chuyển trạng thái theo các điều kiện guarded của chúng Điều này giúp cho việc chọn các chuyển trạng thái để khảo sát và tính các giá trị heuristic được nhanh và chính xác, hạn chế việc tính toán trên các chuyển trạng thái không phù hợp

Chi tiết về hai sự mở rộng này được chúng tôi trình bày trong Chương 5 Cuối cùng, một cải tiến rất quan trọng giúp cho việc áp dụng kiểm tra mô hình trở nên khả thi với các thư viện dịch vụ lớn, đó là chúng tôi đã tích hợp kiểm tra mô hình với phương pháp gom cụm dữ liệu Khi đó, bộ kiểm tra mô hình sẽ thực hiện tìm kiếm trên các cụm, sau khi chọn được cụm phù hợp nó mới tiến hành kiểm tra trên các phần tử dữ liệu (các chuyển trạng thái) trong cụm được chọn Chi tiết về kỹ thuật gom cụm dịch vụ Web và tích hợp vào công cụ kiểm tra mô hình được chúng tôi trình bày trong Chương 6 Để áp dụng công cụ kiểm tra mô hình vào bài toán tổ hợp dịch vụ Web, chúng ta thực hiện việc phủ định biểu thức LTL mô tả yêu cầu người dùng Giả sử chúng ta cần tìm tổ hợp thỏa yêu cầu được mô tả bởi biểu biểu thức g (g là một biểu thức LTL), kết quả tổ hợp là một phản ví dụ khi thực hiện kiểm tra mô hình với biểu thức cần kiểm tra được biểu diễn là f = G(ơg) [52] Khi đú, bộ kiểm tra mụ hỡnh sẽ tỡm kiếm trờn khụng gian trạng thái được tạo ra từ mô hình LTS4WS để tìm ra trạng thái vi phạm biểu thức f, có nghĩa là thỏa biểu thức g Chúng ta xét ví dụ sau: chúng ta cần tìm một tổ hợp dịch vụ đáp ứng các yêu cầu được trình bày trong Bảng 1-2 Khi đó, biểu thức LTL biểu diễn cho yêu cầu này là g = ( ∧ ℎ → ∧ ) ∧

(respTime≤30) ∧ (G(ơ U )) Quỏ trỡnh duyệt trờn khụng gian trạng thái này được mô tả như trong Hình 4-4 Bằng cách áp dụng phương pháp kiểm tra mô hình, quá trình tìm kiếm được thực hiện theo các on-the-fly, nghĩa là khi chúng ta mở rộng không gian trạng thái tới đâu, bộ kiểm tra mô hình thực hiện việc kiểm tra và cắt ngay những nhánh vi phạm điều kiện đến đó Cần ghi chú thêm là khi áp dụng tìm kiếm heuristic, những nhánh được đánh giá là tiềm năng nhất sẽ được ưu tiên xử lý trước, điều này giúp chúng ta có thể đạt đến trạng thái cần tìm nhanh hơn mà không cần phải khảo sát hết không gian trạng thái

51 Hình 4-4 Không gian trạng thái tìm kiếm khi tổ hợp dịch vụ [CT7] Áp dụng thực nghiệm

Minh họa thí nghiệm

Trong phần này, chúng tôi trình bày thí nghiệm minh hoạ cho hướng tiếp cận của chúng tôi Dữ liệu thí nghiệm là 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 như trong Bảng 1-1 Với tập dữ liệu này, giả sử người dùng có yêu cầu là họ cung cấp địa danh (Sightseeing) và thời gian sẽ đi du lịch (Dates) Họ muốn biết thông tin về giá thuê phòng (Price) và thủ tục đặt phòng (HotelReservation) của các khách sạn gần điểm du lịch Bên cạnh đó, họ muốn 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á trước các thông tin đặt phòng vì giá là tiêu chí quan trọng để chọn khách sạn Các yêu cầu này được trình bày trong Bảng 1-2 Trong đó, biểu thức G(ơ U ) là biểu thức luận lý thời gian 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ề HotelReservation

Kết quả tổ hợp được trình bày trong Hình 4-5 Trong đó, dịch vụ HotelPriceService được trả về trước dịch vụ HotelReserveService Bên cạnh kết quả tổ hợp, thông tin về hệ thống cũng được trả về với 1,976 trạng thái được khảo sát, 315 trạng thái đã được duyệt, tốn 13,732Kb bộ nhớ hệ thống và thời gian thực thi là 0,355 giây

Hình 4-5 Kết quả tổ hợp dịch vụ Web đặt chuyến du lịch

Kết quả thực nghiệm

Để tiến hành thực nghiệm, chúng tôi sử dụng kho dịch vụ Web thực tế được lấy từ dự án OWLS-TC [69] OWLS-TC cũng là nguồn dữ liệu thực nghiệm của các nghiên cứu [18], [19] Tập dữ liệu này bao gồm 5 tập con với số lượng dịch vụ trong khoảng từ 20 đến 1000 dịch vụ như được trình bày trong Bảng 4-1

Bảng 4-1 Tập dữ liệu thực nghiệm

Tập dữ liệu Số lượng Mô tả

20 Các dịch vụ Web cung cấp các thông tin phục vụ cho việc đặt chuyến du lịch

50 Các dịch vụ Web cung cấp thông tin cho việc tìm kiếm bệnh viện, tra cứu thuốc, phương pháp điều trị, …

100 Các dịch vụ Web cung cấp thông tin cho việc tìm kiếm trường học, khóa học và các chương trình học bổng

200 Các dịch vụ Web cung cấp các thông tin về thực phẩm, nhà hàng, món ăn và việc đặt món,

Global 1000 Gồm 1000 dịch vụ ngẫu nhiên được lấy từ dự án OWLS-TC [69] Để đánh giá và so sánh, chúng tôi tiến hành thực nghiệm dựa trên hai cách tiếp cận là:

 Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ: Đây là cách tiếp cận tổ hợp truyền thống [19], [35] Việc tổ hợp được thực hiện dựa trên các ràng buộc chức năng

Sau đó, kết quả tổ hợp sẽ được kiểm chứng với các ràng buộc khác

 Tổ hợp và kiểm chứng on-the-fly: Đây là cách tiếp cận do chúng tôi đề xuất, trong đó việc tổ hợp và kiểm chứng được thực hiện cùng lúc

Với từng tập dữ liệu và từng cách tiếp cận, chúng tôi tiến hành thực nghiệm với các yêu cầu sau: chỉ có ràng buộc chức năng, có cả ràng buộc chức năng lẫn ràng buộc chất lượng, và kết hợp mọi loại ràng buộc

Khi tiến hành thực nghiệm, chúng tôi đo đạc 3 yếu tố có ảnh hưởng đến hiệu suất làm việc của quá trình tổ hợp là: số trạng thái được mở rộng, số trạng thái được duyệt và thời gian xử lý Để đánh giá, chúng tôi chạy lần lượt các tập dữ liệu với công cụ minh họa của chúng tôi trên cùng một máy tính có cấu hình bộ xử lý i5-5200 (4x2.7 Ghz), bộ nhớ RAM 8.0 Gb, hệ điều hành Windows 7 64-bit Chúng tôi thiết lập thời gian giới hạn là 600 giây nên trường hợp tập dữ liệu gồm 1000 dịch vụ, công cụ chưa thể trả về kết quả

53 Theo kết quả thực nghiệm, các thông số hệ thống trong trường hợp yêu cầu chỉ có ràng buộc chức năng là giống nhau ở cả hai cách tiếp cận Do khi yêu cầu của người dùng chỉ có chứa ràng buộc chức năng, bước kiểm chứng cho kết quả giống nhau giữa hai cách tiếp cận Hay nói cách khác, lược đồ tổ hợp đầy đủ sẽ không bị loại bỏ bất kỳ cách tổ hợp nào sau quá trình kiểm chứng Việc kiểm chứng chỉ loại bỏ đi những cách tổ hợp đã thỏa các ràng buộc chức năng nhưng không thỏa các ràng buộc về chất lượng và ràng buộc quan hệ thời gian Vì vậy trong đồ thị so sánh trực quan, chúng tôi không biểu diễn cho trường hợp yêu cầu chỉ chứa ràng buộc chức năng

Kết quả thực nghiệm với thông số về số trạng thái được mở rộng

Bảng 4-2 trình bày kết quả thực nghiệm đo đạc trên số trạng thái được mở rộng với từng loại yêu cầu khác nhau Hình 4-6 là biểu đồ so sánh trực quan giữa các cách tiếp cận

Bảng 4-2 Kết quả thực nghiệm về số trạng thái được mở rộng Cách tiếp cận Loại ràng buộc TB (20) MS (50) EDS (100) ECS (200)

Tổ hợp và kiểm chứng trên lược đồ tổ hợp đầy đủ

Chức năng và chất lượng 3,610 9,757 84,920 207,203 Kết hợp mọi ràng buộc 12,074 22,156 93,059 229,108

Tổ hợp và kiểm chứng theo cách on-the-fly

Chức năng và chất lượng 2,349 7,480 51,578 139,314 Kết hợp mọi ràng buộc 7,109 15,932 56,094 152,184

(a) Ràng buộc chức năng và chất lượng (b) Kết hợp mọi ràng buộc

Hình 4-6 Biểu đồ so sánh trực quan về số trạng thái được mở rộng

Kết quả thực nghiệm với thông số về số trạng thái được duyệt

Bảng 4-3 trình bày kết quả thực nghiệm đo đạc trên số trạng thái được duyệt với từng loại yêu cầu khác nhau Hình 4-7 là biểu đồ so sánh trực quan giữa các cách tiếp cận

Căn cứ vào Hình 4-6 và Hình 4-7 chúng ta nhận thấy số trạng thái mở rộng và trạng thái được duyệt không chênh lệch nhau một cách đáng kể do bộ kiểm tra mô hình mà chúng

TB (20) MS (50) EDS (100) ECS (200) Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ Tổ hợp và kiểm chứng theo cách on-the-fly

TB (20) MS (50) EDS (100) ECS (200)Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủTổ hợp và kiểm chứng theo cách on-the-fly

54 tôi áp dụng sử dụng phương pháp tìm kiếm theo chiều rộng Trong Chương 5, chúng tôi áp dụng phương pháp tìm kiếm heutistic vào bộ kiểm tra mô hình Điều này giúp cho số trạng thái được duyệt giảm đi đáng kể so với số trạng thái được mở rộng, do ở mỗi bước tổ hợp, hàm heuristic sẽ đánh giá và chọn ra trạng thái được xem là tốt nhất để duyệt, giúp chúng ta đạt đến trạng thái đích sớm hơn

Bảng 4-3 Kết quả thực nghiệm về số trạng thái được duyệt Cách tiếp cận Loại ràng buộc TB (20) MS (50) EDS (100) ECS (200)

Tổ hợp và kiểm chứng trên lược đồ tổ hợp đầy đủ

Chức năng và chất lượng 2,218 8,937 64,172 204,124 Kết hợp mọi ràng buộc 9,749 19,622 91,340 228,927

Tổ hợp và kiểm chứng theo cách on-the-fly

Chức năng và chất lượng 477 2,587 20,556 50,924 Kết hợp mọi ràng buộc 635 5,625 25,951 52,039

(a) Ràng buộc chức năng và chất lượng (b) Kết hợp mọi ràng buộc

Hình 4-7 Biểu đồ so sánh trực quan về số trạng thái được duyệt

Kết quả thực nghiệm với thông số về thời gian xử lý (ms)

Bảng 4-4 trình bày kết quả thực nghiệm đo đạc trên thời gian xử lý với từng cách tiếp cận và từng loại yêu cầu khác nhau Hình 4-8 là biểu đồ mô tả sự so sánh trực quan giữa các cách tiếp cận tương ứng với các loại ràng buộc khác nhau

Bảng 4-4 Kết quả thực nghiệm về thời gian xử lý (ms) Cách tiếp cận Loại ràng buộc TB (20) MS (50) EDS (100) ECS (200)

Tổ hợp và kiểm chứng trên lược đồ tổ hợp đầy đủ

Chức năng và chất lượng 1,512 7,234 60,024 142,232 Kết hợp mọi ràng buộc 6,474 17,539 101,157 201,079

Tổ hợp và kiểm chứng theo cách on-the-fly

Chức năng và chất lượng 959 5,285 38,133 78,176 Kết hợp mọi ràng buộc 3,658 11,070 56,083 95,791 0

TB (20) MS (50) EDS (100) ECS (200) Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ Tổ hợp và kiểm chứng theo cách on-the-fly

TB (20) MS (50) EDS (100) ECS (200)Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủTổ hợp và kiểm chứng theo cách on-the-fly

55 (a) Ràng buộc chức năng và chất lượng (b) Kết hợp mọi ràng buộc

Hình 4-8 Biểu đồ so sánh trực quan về thời gian xử lý (ms)

Trong chương này, chúng tôi đã đưa ra phương pháp đặt tả hình thức cho dịch vụ Web và biểu diễn thư viện dịch vụ Web dưới dạng một mô hình LTS4WS Dựa trên mô hình được xây dựng, chúng tôi đã đề xuất phương pháp tổ hợp và kiểm chứng việc tổ hợp dịch vụ Web dựa trên phương pháp kiểm tra mô hình Bằng cách áp dụng phương pháp kiểm tra mô hình, việc tổ hợp và kiểm chứng có thể được thực hiện theo cách on-the- fly, có nghĩa là chúng ta tổ hợp đến đâu sẽ thực hiện việc kiểm chứng đến đó và có thể kiểm chứng được với các loại ràng buộc khác nhau, đặc biệt là các ràng buộc có yếu tố thời gian Kết quả thực nghiệm đã chứng tỏ rằng cách tiếp cận của chúng tôi tối ưu hơn các phương pháp tổ hợp và kiểm chứng truyền thống trên cả ba tiêu chí là số trạng thái mở rộng, số trạng thái được duyệt và thời gian xử lý Các công trình đã công bố có liên quan đến công việc trong chương này gồm [CT5], [CT7], [CT8], [CT9]

Phương pháp kiểm tra mô hình nói chung luôn phải đối mặt với vấn đề bùng nổ không gian trạng thái Vì vậy, khi áp dụng phương pháp kiểm tra mô hình cho bài toán tổ hợp và kiểm chứng dịch vụ, chúng ta khó có thể thực hiện trên các kho dịch vụ có quy mô lớn nếu chúng ta không áp dụng các cải tiến, các kỹ thuật thông minh vào quá trình làm việc của bộ kiểm tra mô hình Trong chương tiếp theo, chúng tôi sẽ tích hợp phương pháp tìm kiếm heuristic và kỹ thuật lập chỉ mục dựa trên bit nhị phân vào phương pháp kiểm tra mô hình để kiểm soát vấn đề bùng nổ không gian trạng thái Điều này giúp chúng ta thu được kết quả tổ hợp tối ưu, cải tiến hiệu suất của quá trình tổ hợp cũng như có thể áp dụng với các thư viện dịch vụ Web có quy mô lớn

TB (20) MS (50) EDS (100) ECS (200) Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ Tổ hợp và kiểm chứng theo cách on-the-fly

TB (20) MS (50) EDS (100) ECS (200)Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủTổ hợp và kiểm chứng theo cách on-the-fly

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

Tìm kiếm trong kiểm tra mô hình

Trong nghiên cứu của luận án này, để thực hiện quá trình tổ hợp và kiểm chứng tổ hợp dịch vụ, chúng tôi sử dụng bộ kiểm tra mô hình PAT [68] Cũng như các bộ kiểm tra mô hình khác, PAT có chức năng là kiểm tra một thuộc tính trên một mô hình Nếu quá trình kiểm tra thất bại, một phản ví dụ sẽ được trả về Phản ví dụ này được trả về một cách bất kỳ theo chiến lược tìm kiếm của bộ kiểm tra mô hình Nó không đảm bảo một con đường tối ưu từ trạng thái khởi đầu đến trạng thái gặp lỗi Như đã tìm hiểu trong phần kiến thức nền tảng ở Chương 2, một nhược điểm nữa của phương pháp kiểm tra mô hình là vấn đề bùng nổ không gian trạng thái Hai nhược điểm này bắt nguồn từ việc các bộ kiểm tra mô hình nói chung sử dụng các thuật toán tìm kiếm vét cạn Vì vậy, để áp dụng phương pháp kiểm tra mô hình và khắc phục các điểm yếu của nó, luận án này đề xuất sử dụng phương pháp tìm kiếm heuristic, mà cụ thể là giải thuật tìm kiếm A* để cải tiến quá trình tìm kiếm, giúp chúng ta có được một giải pháp tối ưu cũng như kiểm soát vấn đề bùng nổ không gian trạng thái

Các hàm xử lý tính toán

Để áp dụng tìm kiếm heuristic, luận án này đã xây dựng hàm đánh giá heuristic F(n), dùng để tính toán tổng chi phí của một giải pháp mà nó đi qua trạng thái n, như sau:

 G(n) là chi phí thực đã trải qua từ trạng thái khởi đầu (init) đến trạng thái n

 H(n) là chi phí ước lượng (heuristic) từ trạng thái thứ n đến trạng thái đích (goal)

Chi phí thực đã trải qua từ trạng thái khởi đầu đến trạng thái n – G(n) [CT7]

 G 1(n) là hàm tính thực dựa trên các thuộc tính chức năng của dịch vụ

 G 2(n) là hàm tính thực chi phí ước lượng dựa trên các thuộc tính QoS

 , là các trọng số tương ứng và thỏa điều kiện 0 ≤ , ≤ 1, + = 1

Chi phí thực đã trải qua dựa trên các thuộc tính chức năng – G 1(n) [CT7]

( ) = (5.3) với k là số bước tổ hợp đã trải qua từ trạng thái khởi đầu đến trạng thái n

Chi phí thực đã trải qua dựa trên các thuộc tính QoS – G 2(n) [CT7]

 là trọng số của thuộc tính QoS thứ i, nó có thể được thiết lập trong phần mô tả thuộc tính như trong Đoạn mã 4-2 Mặc định, các thuộc tính đều có trọng số là 1

 là giá trị chuẩn hoá của thuộc tính chất lượng thứ i của trạng thái j, được tính toán theo công thức chuẩn hóa (4.1) hoặc (4.2) tùy theo loại thuộc tính

Ví dụ 5-1 Xét các dịch vụ Web trong Bảng 1-1, mỗi dịch vụ có hai thuộc tính QoS là thời gian đáp ứng (thuộc tính negative) và tính sẵn sàng (thuộc tính positive) Thuộc tính thời gian đáp ứng có tầm giá trị từ 1 (q min = 1) đến 60 giây (q max = 60) Thuộc tính về tính sẵn sàng của dịch vụ có tầm giá trị từ 0% (q min = 0) đến 100% (q max = 100) Các thuộc tính đều có trọng số là 1 Với các giá trị của các thuộc tính QoS của các dịch vụ Web được cho như trong Bảng 1-1, giá trị G 2 của từng trạng thái được tính như sau:

 Trạng thái khởi đầu (init): G 2=0

 Trạng thái sau khi gọi dịch vụ SightseeingCityService (SC) (trạng thái thứ 1): o Thuộc tính thời gian đáp ứng: = 2−1

60−1 = 0.0169 o Thuộc tính về tính sẵn sàng: = 100−90

 Tương tự, chúng ta tính được giá trị G 2 cho mọi trạng thái như trong Hình 5-1

Hình 5-1 Ví dụ minh hoạ về việc tính toán các giá trị chi phí G 1, G 2, H, F

Chi phí ước lượng từ trạng thái n đến trạng thái đích – H(n) [CT7]

Trong mô hình cũng như trong không gian tìm kiếm, chúng ta có một tập các biến gọi là biến môi trường, chúng được dùng để mô tả các thuộc tính mà chúng ta đang xét Đối với các thuộc tính chức năng, những biến tương ứng có kiểu luận lý và chỉ có giá trị là 0 hoặc 1 Ở một trạng thái bất kỳ, những biến có giá trị là 0 nghĩa là thuộc tính chức năng tương ứng chưa có (chưa đạt được) ở trạng thái đó, ngược lại nghĩa là thuộc tính chức năng đó đã có Như vậy, ở trạng thái đích (goal), các biến đại diện cho các thuộc tính chức năng mà người dùng yêu cầu có giá trị là 1

Hàm H(n) hỗ trợ việc nhìn trước, đánh giá và chọn ra trạng thái có nhiều thuộc tính chức năng thoả mãn trạng thái đích (goal) nhất Hàm H(n) được tính theo công thức:

 funcvar(x) là tập các thuộc tính chức năng đạt được (có giá trị là 1) ở trạng thái x

 diff(A, B) là hàm đếm số lượng phần tử có trong A mà không có trong B Như vậy, diff(funcvar(goal), funcvar(n)) là số lượng thuộc tính chức năng mà trạng thái n chưa

SightseeingCityService (SC) {Sightseeing, Dates, City}

CityHotelService (CH) {Sightseeing, Dates, City, Hotel}

HotelPriceInfoService (HP) {Sightseeing, Dates, City, Hotel, Price}

59 thỏa yêu cầu (goal) Chúng ta nhận thấy là giá trị của hàm diff càng nhỏ là càng tốt (trạng thái n càng gần với trạng thái goal) và khi diff(funcvar(goal), funcvar(n)) = 0 thì về mặt chức năng, trạng thái n đã thoả được yêu cầu của người dùng

Sau khi tính được tất cả các giá trị của G 1, G 2, H, chúng ta tính được chi phí heuristic F của từng trạng thái theo công thức (5.1) Hình 5-1 mô tả ví dụ tổng quát về các giá trị của G 1, G 2, H và F được tính toán trong quá trình tổ hợp với các trọng số , , ,đều bằng 1 Căn cứ vào các giá trị này, ở mỗi bước xử lý, chúng ta chọn trạng thái mà nó có chi phí thấp nhất để duyệt qua.

Đánh giá hàm heuristic

Để đánh giá hàm heuristic, chúng tôi kiểm tra tính nhất quán (consistent) và tính đơn điệu (monotonic) của nó Khi có một trạng thái được phát hiện nhờ sử dụng tìm kiếm heuristic, liệu có bảo đảm rằng về sau chúng ta sẽ không tìm được một trạng thái có chi phí ít hơn tính từ trạng thái khởi đầu Đây chính là tính đơn điệu của hàm heuristic Nói cách khác, tính đơn điệu của một heuristic là nó sẽ bảo đảm đường đi ngắn nhất đến mỗi trạng thái Các tính chất này đòi hỏi heuristic phải thỏa biểu thức sau:

Công thức (5.6) có nghĩa là chi phí ước lượng phải luôn nhỏ hơn hoặc bằng chi phí thực (chỉ xét trên thuộc tính chức năng), với w(u, v) là chi phí thực dựa trên thuộc tính chức năng để chuyển từ trạng thái u đến trạng thái v Chúng ta có:

 Do số lượng các thuộc tính chức năng tại một trạng thái x bất kỳ chưa thỏa trạng thái goal luôn nhỏ hơn hoặc bằng số lượng thuộc tính chức năng mà trạng thái goal yêu cầu Vì vậy, với x là một trạng thái bất kỳ thì 0 ≤ ( ( ( ), ) ( )) ≤ 1 (1)

 Ta có w(u,v) là chi phí thực để chuyển từ trạng thái u đến trạng thái v dựa trên các thuộc tính chức năng nên w(u, v) = k (với k là số bước chuyển từ u đến v như trong công thức 5.3) Do đó, với mọi trạng thái u, v và u ≠ v thì k ≥ 1 hay w(u, v) ≥ 1 (2) Từ (1) và (2) chúng ta có điều kiện trong công thức (5.6) luôn thỏa mãn Vì vậy, hàm heuristic của chúng tôi đảm bảo được tính nhất quán và tính đơn điệu

Trường hợp thí nghiệm

Trong phần này, chúng tôi trình bày một thí nghiệm minh hoạ cho hướng tiếp cận của mình Trong thí nghiệm này, chúng tôi sử dụng thư viện dịch vụ được cho trong Bảng 1-1 Các yêu cầu của người dùng bao hàm cả các ràng buộc chức năng, ràng buộc chất lượng và ràng buộc quan hệ thời gian giữa các dịch vụ như được cho trong Bảng 1-2 Để thấy được vai trò và sự hiệu quả của việc áp dụng tìm kiếm heutistic vào bộ kiểm tra mô hình trong quá trình tổ hợp và kiểm chứng, chúng tôi thực hiện thí nghiệm với cùng một yêu cầu nhưng theo hai cách tiếp cận là có và không có áp dụng heuristic Kết quả của quá trình tổ hợp trả về như trong Hình 5-2 Chúng ta thấy rằng với cùng kết quả tổ hợp như nhau, nhưng khi áp dụng heuristic, các thông số hệ thống được tối ưu hơn nhiều chỉ với 675 trạng thái được khảo sát, 86 trạng thái được duyệt, sử dụng 9,280Kb bộ nhớ hệ thống và thời gian thực thi là 0,187 giây (Hình 5-2(a)), so với 1,976 trạng thái được khảo sát, 315 trạng thái được duyệt, tốn 13,732Kb bộ nhớ hệ thống và thời gian thực thi là 0,355 giây trong trường hợp không áp dụng tìm kiếm heuristic (Hình 5-2(b))

(b) Thực thi bình thường 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

Lập chỉ mục dịch vụ Web dựa trên bit nhị phân

Giới thiệu

Trong phần 5.1, chúng tôi đã thảo luận về việc áp dụng phương pháp tìm kiếm heuristic trong quá trình tổ hợp dịch vụ Web giúp thu được kết quả tổ hợp nhanh và tối ưu hơn

Khi áp dụng tìm kiếm heuristic, ở mỗi bước tổ hợp, sau khi mở rộng không gian trạng thái khảo sát, chúng ta tính chi phí heuristic cho từng trạng thái và chọn trạng thái có chi

61 phí thấp nhất để duyệt qua Rõ ràng, khi mở rộng không gian trạng thái, chúng ta chỉ nên xem xét các dịch vụ Web có liên quan đến trạng thái hiện hành Tuy nhiên, không dễ để chúng ta xác định một cách nhanh chóng các dịch vụ có liên quan Trong phần này, chúng tôi giải quyết vấn đề trên bằng kỹ thuật lập chỉ mục dựa trên bit nhị phân để lập chỉ mục kho dịch vụ Web Phương pháp thực hiện được trình bày ngay sau đây.

Phương pháp thực hiện

Giả sử chúng ta có một thư viện gồm n dịch vụ Web với k thuộc tính khác nhau, một tập có thứ tự các thuộc tính (S) của thư viện dịch vụ này là một tập hợp có thứ tự gồm có k phần tử là k thuộc tính đã được sắp xếp Chúng ta có thể áp dụng bất kỳ tiêu chí sắp xếp nào Tuy nhiên, để thuận tiện, chúng tôi sắp xếp các thuộc tính theo thứ tự chữ cái

Ví dụ 5-2 Với thư viện dịch vụ Web được cho trong Bảng 1-1, tập có thứ tự các thuộc tính S gồm có 12 thuộc tính được sắp xếp như sau: S = {Activity, Adventure, Area, Beach,

City, Dates, Hotel, HotelReservation, Price, RuralArea, Sightseeing, Weather}

5.2.2.2 Các vector nhị phân của dịch vụ Web và của yêu cầu tổ hợp Định nghĩa 5-1 (Vector nhị phân của tập thuộc tính) [CT1], [CT12] Cho S là tập có thứ tự các thuộc tính, gọi ∈ (S) là phần tử thứ i của S Khi đó, vector nhị phân của một tập con s của S được định nghĩa như sau:

Ví dụ 5-3 Cho tập có thứ tự các thuộc tính S như trong Ví dụ 5-2 và một tập con s gồm các thuộc tính: s = {Dates, Hotel}, vector nhị phân của s trên tập S là 0001100000

Mỗi dịch vụ Web đều có tập thuộc tính chức năng đầu vào và tập thuộc tính chức năng đầu ra Do đó, chúng ta cần xây dựng cặp vector nhị phân cho hai tập thuộc tính này Định nghĩa 5-2 (Cặp vector nhị phân của dịch vụ Web) [CT1], [CT12] Cặp vector nhị phân của một dịch vụ Web là một bộ 〈 , 〉, với và là các vector nhị phân tương ứng của tập thuộc tính chức năng đầu vào (gọi là vector đầu vào) và đầu ra (gọi là vector đầu ra) của dịch vụ Web và được định nghĩa như trong Định nghĩa 5-1

Ví dụ 5-4 Bảng 5-1 trình bày các vector nhị phân của các dịch vụ Web trong Bảng 1-1

62 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

# Dịch vụ Web Vector đầu vào Vector đầu ra

1 HotelReserveService (HR) 000001100000 000000010000 2 CityHotelService (CH) 000010000000 000000100000 3 HotelCityService (HC) 000000100000 000010000000 4 HotelPriceInfoService (HP) 000000100000 000000001000 5 SightseeingCityService (SC) 000000000010 000010000000 6 SightseeingCityHotelService (SCH) 000000000010 000010100000 7 CitySightseeingService (CS) 000010000000 000000000010 8 AdventureRuralAreaService (ARA) 010000000000 000000000100 9 ActivityBeachService (ABS) 100000000000 000100000000 10 AreaWeatherService (AWS) 001000000000 000000000001 Tương tự, yêu cầu chức năng của người dùng cũng được thể hiện bởi một bộ gồm có hai vector nhị phân là vector cung cấp (supplied vector) và vector mục tiêu (goal vector)

Ví dụ 5-5 Bảng 5-2 trình bày cặp vector đại diện cho yêu cầu trong Bảng 1-2

Bảng 5-2 Các vector nhị phân thể hiện yêu cầu của người dùng

Yêu cầu của người dùng Vector cung cấp Vector mục tiêu Đầu vào: Dates, Sightseeing Đầu ra: Price, HotelReservation

5.2.2.3 Lập chỉ mục dựa trên bit nhị phân cho tập dịch vụ Web

Giải thuật 5-1 Xây dựng bảng chỉ mục [CT1], [CT12] Đầu vào: Một tập gồm có n dịch vụ Web Đầu ra: Bảng chỉ mục

Bước 1 Xây dựng tập có thứ tự các thuộc tính chức năng – S

1: Xây dựng tập có thứ tự – S từ tất cả các thuộc tính chức năng của các dịch vụ

Bước 2 Khởi tạo bảng chỉ mục – T

2: for i chạy từ 0 đến S.size() − 1 do 3: Xây dựng vector đơn vị v i có bit thứ i có giá trị là 1, các bit còn lại là 0 4: T[i][0] ← v i

Bước 3 Cập nhật bảng chỉ mục

5: for each dịch vụ Web w trong kho lưu trữ do 6: Xây dựng vector đầu vào – và vector đầu ra – của w 7: for i chạy từ 0 đến T.size() − 1 do

9: if v i ∧ ≠ 0 then // ∧ là phép toán AND nhị phân 10: T[i][1].add(w)

63 Độ phức tạp của Giải thuật 5-1 Để đánh giá độ phức tạp của Giải thuật 5-1, chúng ta xem xét từng bước xử lý của giải thuật Bước 1 là bước sắp xếp thứ tự các thuộc tính, giả sử chúng ta có m thuộc tính và chúng ta áp dụng giải thuật quicksort [73], khi đó độ phức tạp của sẽ là O(mlog2 m)

Bước 2 khởi tạo bảng chỉ mục có độ phức tạp là O(n) Ở Bước 3, chúng ta duyệt qua từng dịch vụ để xếp chúng vào các chỉ mục tương ứng Chúng ta có m thuộc tính nên có m chỉ mục Do đó, độ phức tạp ở Bước 3 là O(nm) Như vậy, độ phức tạp của Giải thuật

5-1 là O(mlog2 m) + O(n) + O(nm) hay O(n 2 ) Tuy nhiên, việc lập chỉ mục được xem như bước tiền xử lý của quá trình tổ hợp và kiểm chứng dịch vụ Web Nó chỉ được thực hiện một lần và được sử dụng nhiều lần cho đến khi có sự thay đổi trong thư viện dịch vụ

Sau khi xây dựng các vector cho các dịch vụ Web, chúng ta xây dựng bảng chỉ mục dựa trên vector đầu vào của các dịch vụ Bảng chỉ mục này gồm có hai cột Cột đầu tiên chứa vector đơn vị Mỗi vector đơn vị đại diện cho một thuộc tính chức năng trong tập S Để đại diện cho thuộc tính thứ i thì bit thứ i của vector này được đặt là 1, tất cả các bit khác được đặt là 0 Cột thứ hai chứa các dịch vụ Web mà vector đầu vào của chúng AND với vector đơn vị có kết quả khác 0 Quá trình này được trình bày như trong Giải thuật 5-1

Ví dụ 5-6 Bảng chỉ mục của các dịch vụ Web trong Bảng 1-1 được xây dựng theo Giải thuật 5-1 có kết quả như trong Bảng 5-3

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

Khóa chỉ mục (vector đơn vị)

Danh sách dịch vụ Web

5.2.2.4 Lựa chọn các chỉ mục và lựa chọn các dịch vụ Web

Như đã thảo luận ở trên, tại mỗi bước tổ hợp, các dịch vụ Web thuộc về các chỉ mục mà nó có khóa so trùng với mục tiêu hiện hành sẽ được chọn như là các dịch vụ ứng viên để khảo sát và tính các giá trị heuristic Cơ chế so trùng được hiện thực như sau Định nghĩa 5-3 (So trùng dựa trên bit nhị phân) [CT1], [CT12] Gọi V là vector cung cấp của mục tiêu hiện hành, V k là vector nhị phân đơn vị đại diện cho chỉ mục thứ k

Phần tử chỉ mục thứ k so trùng được với mục tiêu hiện hành nếu:

V ∧ V k = V k (5.8) với ∧ là phép toán “và” (AND) giữa các bit nhị phân

Ví dụ 5-7 Với yêu cầu của người dùng trong Bảng 1-2, đầu vào của bước tổ hợp đầu tiên là {Sightseeing, Dates}, vector cung cấp tương ứng là 000001000010 Khi đó, chỉ mục được chọn là 000001000000 (bit thứ 6 có giá trị là 1) và 000000000010 (bit thứ 11 có giá trị là 1) Do đó, các dịch vụ Web được chọn là {HR, SC, SCH}

Sau khi chọn được các dịch vụ Web ứng viên ở mỗi bước tổ hợp, quá trình tổ hợp sẽ chọn dịch vụ được xem là tốt nhất để thực hiện tổ hợp Đầu ra của dịch vụ này sẽ thêm vào đầu vào của mục tiêu mới Khi đó, một vector tổ hợp được tạo ra Định nghĩa 5-4 (Vector tổ hợp) [CT1], [CT12] Gọi V là vector cung cấp của mục tiêu hiện hành, W k là dịch vụ Web được chọn để tổ hợp, là vector nhị phân đầu ra của

W k Vector tổ hợp V c cũng là một vector nhị phân và được tính theo công thức sau:

V c = V ∨ (5.9) với ∨ là phép toán “hoặc” (OR) giữa các nhị phân

Ví dụ 5-8 Giả sử rằng đầu vào của mục tiêu hiện hành là {Sightseeing, Dates}, ứng với vector cung cấp V0001000010 và tại bước tổ hợp này, dịch vụ SC được chọn để tổ hợp, dịch vụ này có cặp vector tương ứng là 〈000000000010, 000010000000〉, vector tổ hợp được tính là V c = V ∨ = 000001000010 ∨ 000010000000 = 000011000010

5.2.2.5 Thu giảm số lượng dịch vụ Web được chọn

Với cách lựa chọn dịch vụ ứng viên như trong phần 5.2.2.4 thì sau mỗi bước tổ hợp, số lượng thuộc tính mà chúng ta đạt được sẽ tăng lên, nghĩa là các bit có giá trị 1 trong

65 vector tổ hợp sẽ tăng Vector này là vector cung cấp của mục tiêu ở bước tổ hợp kế tiếp

Trường hợp thí nghiệm

Trong thí nghiệm này, chúng tôi sử dụng các dịch vụ Web được cho trong Bảng 1-1

Khi đó, bảng chỉ mục kết quả chúng ta có được như trong Bảng 5-3 Với yêu cầu về chức năng của người dùng thể hiện trong Bảng 5-2, quá trình chọn lựa các dịch vụ ứng viên cho bước tổ hợp được thực hiện như sau:

Bước 1 Ở bước đầu tiên, các thuộc tính đầu vào là {Sightseeing, Dates}, ứng với vector nhị phân 000001000010 Hai chỉ mục được chọn là {000001000000, 000000000010}, ứng với ba dịch vụ {HR, SC, SCH} như trong Bảng 5-4 Giả sử rằng trong quá trình tổ hợp, hàm đánh giá heuristic chọn dịch vụ SC để tổ hợp Sau khi tổ hợp dịch vụ SC, vector tổ hợp là V c = V c ∨ = 000001000010 ∨ 000010000000 = 000011000010 Vector này chưa thỏa vector mục tiêu (V g = 000000011000) do V c ∧ V g ≠ V g Do đó, quá trình tổ được được tiếp tục và vector V c trở thành vector đầu vào ở bước tổ hợp tiếp theo

Bảng 5-4 Danh sách các dịch vụ Web ứng viên tại bước đầu tiên

Thuộc tính đầu vào hiện hành

Vector đầu vào tương ứng

Các dịch vụ Web (WS) được chọn WS Vector đầu vào Vector đầu ra

Bước 2 Ở bước thứ hai, chúng ta có ba chỉ mục được chọn với năm dịch vụ Web gồm

{HR, SC, SCH, CH, CS} như trong Bảng 5-5 Tuy nhiên, dịch vụ SC và CS bị loại bỏ do chúng là các dịch vụ dư thừa (các dịch vụ có đường gạch ngang trong Bảng 5-5)

Như vậy, chúng ta có 3 dịch vụ ứng viên là {HR, SCH, CH} Giả sử hàm heuristic chọn dịch vụ CH để tổ hợp Sau khi tổ hợp, vector tổ hợp là V c = V c ∨ = 000011100010

Vector này vẫn không chứa vector mục tiêu nên quá trình tổ hợp tiếp tục

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

Thuộc tính đầu vào hiện hành

Vector đầu vào tương ứng

Các dịch vụ Web (WS) được chọn WS Vector đầu vào Vector đầu ra

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

Thuộc tính đầu vào hiện hành

Vector đầu vào tương ứng (V)

Các dịch vụ Web (WS) được chọn WS Vector đầu vào Vector đầu ra

Tại bước này, chúng ta có 4 chỉ mục được chọn với 7 dịch vụ gồm {HR, SC, SCH, CH,

CS, HC, HP} như trong Bảng 5-6 Trong đó, các dịch vụ {SC, CH, SCH, CS, HC} bị lọc bỏ do dư thừa Dịch vụ HR ở dòng thứ 6 bị loại bỏ do lặp lại Như vậy, chúng ta chỉ còn 2 dịch vụ ứng viên là {HR, HP} Giả sử dịch vụ HP được chọn để tổ hợp, khi đó, vector tổ hợp là V c = V c ∨ = 000011100010 ∨ 000000001000 = 000011101010 Do

V c vẫn chưa chứa vector mục tiêu (V c ∧ V g ≠ V g ) nên quá trình tổ hợp tiếp tục

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

Thuộc tính đầu vào hiện hành

Vector đầu vào tương ứng (V)

Các dịch vụ Web (WS) được chọn WS Vector đầu vào Vector đầu ra

HC 000000100000 000010000000 HP 000000100000 000000001000 000000001000 Không có dịch vụ Ở bước này, với vector đầu vào V c 0011101010, chúng ta có thêm một chỉ mục được chọn, ứng với vector đơn vị 000000001000, nhưng chỉ mục này lại không chứa dịch vụ nào Do đó, chúng ta chỉ còn một dịch vụ HR là ứng viên để tổ hợp như trong Bảng 5-7

68 Sau khi tổ hợp HR, vector tổ hợp là V c = V c ∨ = 000011101010 ∨ 000000010000 000011111010 Vector này chứa vector mục tiêu V g do V c ∧V g = 000011111010 ∧ 000000011000 = 000000011000 = V g Do đó, về mặt chức năng, quá trình tổ hợp sẽ dừng lại Kết quả là chúng ta có tổ hợp dịch vụ gồm 4 dịch vụ: SC ● CH ● HP ● HR

Trong phần này, chúng tôi trình bày các kết quả thực nghiệm cho hướng tiếp cận của chúng tôi Để kiểm chứng tính đúng đắn và hiệu quả của nghiên cứu, chúng tôi đã tiến hành thực nghiệm nghiên cứu của mình với tập dữ liệu thực được lấy từ dự án OWLS- TC [69] với năm tập dữ liệu con như được trình bày trong Bảng 4-1

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

Hướng tiếp cận tổ hợp và kiểm chứng Exp

Dựa trên lược đồ tổ hợp đầy đủ 12,074 9,749 6,474

Theo cách on-the-fly 7,109 635 3,658

Theo cách on-the-fly có áp dụng tìm kiếm heuristic 2,723 62 1,170

Theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp lập chỉ mục dựa trên bit nhị phân

Dựa trên lược đồ tổ hợp đầy đủ 22,156 19,622 17,539

Theo cách on-the-fly 15,932 5,625 11,070

Theo cách on-the-fly có áp dụng tìm kiếm heuristic 9,682 176 3,722

Theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp lập chỉ mục dựa trên bit nhị phân

Dựa trên lược đồ tổ hợp đầy đủ 93,059 91,340 101,157

Theo cách on-the-fly 56,094 25,951 56,083

Theo cách on-the-fly có áp dụng tìm kiếm heuristic 31,225 341 11,783

Theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp lập chỉ mục dựa trên bit nhị phân

Dựa trên lược đồ tổ hợp đầy đủ 229,108 228,927 201,079

Theo cách on-the-fly 152,184 52,039 95,791

Theo cách on-the-fly có áp dụng tìm kiếm heuristic 111,275 643 37,586

Theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp lập chỉ mục dựa trên bit nhị phân

Chúng tôi tiến hành thực nghiệm dựa trên bốn hướng tiếp cận tổ hợp và kiểm chứng, đó là hướng tiếp cận dựa trên lược đồ tổ hợp đầy đủ, hướng tiếp cận theo cách on-the-fly, hướng tiếp cận theo cách on-the-fly có áp dụng tìm kiếm heuristic, và cuối cùng là hướng

69 tiếp cận theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp việc lập chỉ mục dựa trên bit nhị phân Hướng thứ nhất được giới thiệu bởi Chen và các cộng sự [16] Ba hướng tiếp cận còn lại là các hướng tiếp cận của chúng tôi, trong đó, hướng thứ hai là hướng tiếp cận cơ bản, được chúng tôi trình bày trong Chương 4 Hai hướng tiếp cận cuối cùng là đề xuất của chúng tôi trong chương này

Thực nghiệm này được thực hiện trên máy tính cá nhân với bộ xử lý Core i5-5200 (4x2.7 Ghz), 8.0 Gb RAM, sử dụng hệ điều hành Windows 7 64-bit Kết quả thực nghiệm được đánh giá theo ba thông số: số trạng thái được mở rộng (Exp States), số trạng thái được duyệt qua (Vis States) và thời gian thực thi (Exe Time (ms)) Kết quả được trình bày dưới dạng thống kê trong Bảng 5-8 và được trình bày trực quan như trong Hình 5-3

Kết quả thực nghiệm một lần nữa khẳng định giả thuyết của chúng tôi rằng việc lập chỉ mục giúp giảm số lượng trạng thái mà chúng ta cần phải mở rộng một cách đáng kể (Hình 5-3(a)) Thuật toán tìm kiếm heuristic luôn chọn trạng thái tốt nhất để duyệt ở mỗi bước tổ hợp Đối với cách tiếp cận thứ ba và thứ tư thì số lượng trạng thái được duyệt giảm đi một cách đáng kể do chúng đều sử dụng tìm kiếm heuristic (Hình 5-3(b))

(a) Số trạng thái được mở rộng

(b) Số trạng thái được duyệt (c) Thời gian xử lý (ms) 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

Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ

Tổ hợp và kiểm chứng theo cách on-the-fly

Tổ hợp và kiểm chứng theo cách on-the-fly có áp dụng tìm kiếm heuristic

Tổ hợp và kiểm chứng theo cách on-the-fly có áp dụng tìm kiếm heuristic kết hợp lập chỉ mục dựa trên bit nhị phân

70 Do thời gian thực hiện chủ yếu phụ thuộc vào số lượng trạng thái được mở rộng và số lượng trạng thái được duyệt nên hướng tiếp cận thứ ba nhanh hơn hướng tiếp cận thứ hai và hướng tiếp cận kết hợp lập chỉ mục dựa trên bit nhị phân với tìm kiếm heuristic là hướng tiếp cận tốt nhất (Hình 5-3(c))

Trong chương này, chúng tôi đã xây dựng phương pháp tìm kiếm heuristic và tích hợp chúng vào phương pháp kiểm tra mô hình để kiểm soát vấn đề bùng nổ không gian trạng thái khi tổ hợp dịch vụ Với phương pháp tìm kiếm heuristic, chúng ta có thể thu được kết quả tổ hợp nhanh hơn, tối ưu hơn và tốn ít tài nguyên hệ thống hơn do chúng ta không phải duyệt toàn bộ không gian trạng thái Ngoài ra, cũng trong chương này, chúng tôi áp dụng kỹ thuật lập chỉ mục dựa trên bit nhị phân lên thư viện dịch vụ Web, giúp phân chia các dịch vụ vào các chỉ mục theo các thuộc tính có liên quan Như vậy ở mỗi bước tổ hợp, chúng ta chỉ tính toán giá trị chi phí heuristic cho các dịch vụ thuộc về các chỉ mục được chọn Việc kết hợp lập chỉ mục dựa trên bit nhị phân với phương pháp tìm kiếm heuristic giúp cải thiện đáng kể hiệu suất của quá trình tổ hợp Các công trình đã công bố có liên quan đến công việc của chương này gồm [CT1], [CT7], [CT12]

Tuy nhiên, khi kích thước của thư viện dịch vụ Web tăng lên, độ phức tạp trong việc xử lý tổ hợp và kiểm chứng trở nên rất lớn Một cách tiếp cận phổ biến khi làm việc với các thư viện dữ liệu kích thước lớn là áp dụng các kỹ thuật khai phá dữ liệu để phân tích và khai thác nguồn dữ liệu lớn này [21] Trong chương tiếp theo, chúng tôi trình bày chi tiết về việc áp dụng gom cụm dữ liệu, một trong những phương pháp khai phá dữ liệu phổ biến để gom cụm các dịch vụ Web So với các phương pháp gom cụm dịch vụ Web dựa trên đặc trưng như [22], [74] thì phương pháp gom cụm dịch vụ Web dựa trên luận lý mà chúng tôi đề xuất cho kết quả gom cụm tốt hơn, đặc biệt trong trường hợp kết quả gom cụm được sử dụng cho bài toán tổ hợp và kiểm chứng dịch vụ Web Chi tiết về phương pháp gom cụm các dịch vụ Web dựa trên luận lý được chúng tôi trình bày chi tiết ngay trong chương kế tiếp

GOM CỤM CÁC DỊCH VỤ WEB DỰA TRÊN LUẬN LÝ

Biểu diễn luận lý của dịch vụ Web

Định nghĩa 6-1 (Biểu thức luận lý của dịch vụ Web) [CT11] Gọi = ( , ℐ, , , ℰ, ) là một dịch vụ Web, ℐ = { , … , }, = { , … , } là tập thuộc tính chức năng đầu vào và đầu ra, , là các biểu thức luận lý đại diện cho các thuộc tính và tương ứng Biểu thức luận lý của dịch vụ Web là (hay → ) được định nghĩa là:

Ví dụ 6-1 Xét dịch vụ HR trong Bảng 1-1 Biểu thức luận lý của các dịch vụ Web này được biểu diễn như sau: = → = ∧ →

Độ tương tự giữa các dịch vụ Web dựa trên luận lý

Để gom cụm các dịch vụ Web, chúng ta phải tính toán độ tương tự giữa chúng Trong luận án này, chúng tôi đề xuất một cách tính độ tương tự mới, dựa trên biểu thức luận lý đại diện của hai dịch vụ Web Độ tương tự này bao hàm hai khía cạnh sau [CT3]

 Độ tương tự dựa trên đặc trưng: Chúng tôi trích xuất các đặc trưng từ các biểu thức luận lý đại diện Dựa trên các đặc trưng này, độ tương tự giữa chúng sẽ được tính

 Độ tương tự dựa trên luận lý: Khía cạnh luận lý sẽ được sử dụng để cải tiến sự chính xác của độ tương tự Chúng tôi tính độ tương tự giữa hai biểu thức luận lý gián tiếp thông qua biểu thức xấp xỉ trên (upper-approximation) của chúng Ý tưởng của chúng tôi là nếu hai biểu thức luận lý là tương tự nhau thì biểu thức xấp xỉ trên của chúng cũng sẽ tương tự với hai biểu thức ban đầu

6.2.2.1 Độ tương tự dựa trên đặc trưng Để tính độ tương tự dựa trên đặc trưng giữa hai biểu thức luận lý, chúng tôi xác định thành phần giống nhau (identical part) và thành phần khác biệt (distinguishable part) của hai biểu thức Các thành phần này được xác định theo các định nghĩa sau Định nghĩa 6-2 (Thành phần giống nhau) [CT3] Gọi f và g là hai biểu thức luận lý, thành phần giống nhau (Ω) của f và g được định nghĩa như sau: Ω = ∩ = {∀ ∈ } ∩ {∀ ∈ } (6.2) với ∩ là phép giao giữa hai tập hợp, , là các mệnh đề nguyên tố trong và Gọi là hệ số giống nhau (identical factor) giữa và , chúng ta có:

Ví dụ 6-2 Cho = ∧ → và = ∧ → ∨ là hai biểu thức luận lý, chúng ta có: Ω = { , , }, và

= |Ω| = |{ , , }| = 3 Định nghĩa 6-3 (Thành phần khác biệt) [CT3] Gọi và là hai biểu thức luận lý

Thành phần khác biệt (Ψ) của và được định nghĩa như sau: Ψ = ( ∪ )\Ω = ({∀ ∈} ∪ {∀ ∈ })\Ω (6.3) với ∪ là phép hội giữa hai tập hợp, , là các mệnh đề nguyên tố trong và Gọi là hệ số khác biệt (distinguishable factor) giữa và , chúng ta có:

2 Ví dụ 6-3 Cho và là hai biểu luận lý trong Ví dụ 6-2, chúng ta có: Ψ = { }, = | | = Định nghĩa 6-4 (Độ tương tự dựa trên đặc trưng) [CT3] Gọi và là hai biểu thức luận lý đại diện cho hai dịch vụ Web Độ tương tự dựa trên đặc trưng (Sim Fe ) của và được tính toán theo công thức sau:

( ) (6.4) với và là hệ số giống nhau và hệ số khác biệt được định nghĩa ở trên

78 Ví dụ 6-4 Độ tương tự dựa trên đặc trưng giữa biểu thức luận lý và được đề cập trong Ví dụ 6-2 và Ví dụ 6-3 được tính toán như sau:

6.2.2.2 Độ tương tự dựa trên luận lý

Mặc dù đã có phương pháp tính độ tương tự giữa các dịch vụ Web dựa trên đặc trưng như đã trình bày ở trên, nhưng độ đo này vẫn chưa phản ánh được sự tương tự về mặt luận lý giữa các dịch vụ Chúng ta xét ví dụ sau: Cho hai dịch vụ Web và ℬ với hai biểu thức luận lý tương ứng là = → và ℬ = → , hai dịch vụ này là tương tự nhau theo độ tương tự dựa trên đặc trưng Nhưng khi xem xét ở khía cạnh luận lý thì chúng hoàn toàn đối lập nhau Khi chúng ta cần sử dụng (cung cấp X và nhận về Y) thì rõ ràng chúng ta không cần đến ℬ (cung cấp Y và nhận về X) bởi vì chúng ta đã có X Điều này có nghĩa là và ℬ rất ít có sự tương tự nhau Ngược lại, một dịch vụ với biểu thức đại diện là = → sẽ có độ tương tự với nhiều hơn độ tương tự giữa ℬ với Chúng tôi xử lý điều này bằng cách giới thiệu một khái niệm về độ tương tự mới, đó là độ tương tự dựa trên luận lý Ý tưởng của phương pháp này là nếu hai biểu thức luận lý là tương tự nhau thì biểu thức xấp xỉ trên của chúng cũng phải tương tự với cả hai biểu thức ban đầu Định nghĩa 6-5 (Xấp xỉ trên của hai biểu thức luận lý) [CT2] Gọi và ℬ là hai biểu thức luận lý đại diện cho hai dịch vụ Web Xấp xỉ trên của hai biểu thức luận lý và

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

Với ⊕ gọi là phép toán xấp xỉ trên của hai biểu thức luận lý, ∧, → lần lượt là phép toán giao và phép toán “kéo theo” luận lý

Sau khi tính toán được biểu thức xấp xỉ trên ℬ , chúng ta có thể thu gọn biểu thức này bằng các bộ thu gọn (simplifier) hiện có, chẳng hạn như Z3 [66]

Ví dụ 6-5 Xét ba biểu thức luận lý đại diện cho ba dịch vụ đầu tiên trong Bảng 1-1 là:

Xấp xỉ trên của từng cặp biểu thức này được tính toán như sau:

= ∧ → ∨ Định nghĩa 6-6 (Độ tương tự dựa trên luận lý giữa hai dịch vụ Web) [CT2] Gọi ,

ℬ là hai dịch vụ Web, và ℬ là hai biểu thức luận lý đại diện tương ứng của và ℬ , ℬ là biểu thức xấp xỉ trên của và ℬ như trong Định nghĩa 6-5 Độ tương tự dựa trên luận lý giữa hai dịch vụ Web và ℬ được tính bởi công thức sau:

( , ℬ ) = , ℬ ( ℬ , ℬ ) (6.6) với ( , ) là độ tương tự dựa trên đặc trưng của và

Ví dụ 6-6 Tính độ tương tự dựa trên luận lý của ba dịch vụ đầu tiên trong Bảng 1-1:

Biểu thức xấp xỉ trên của từng cặp biểu thức đại diện được tính như trong Ví dụ 6-5:

= ⊕ = ∧ → ∨ Độ tương tự dựa trên đặc trưng của chúng là:

Cuối cùng, độ tương tự dựa trên luận lý của từng cặp dịch vụ được tính như sau:

Gom cụm dịch vụ Web dựa trên luận lý

Để thực hiện gom cụm, chúng tôi áp dụng giải thuật k-means [57] Việc xác định số lượng cụm là một vấn đề quan trọng của k-means Trong bài toán tổ hợp dịch vụ Web, giả sử chúng ta có N dịch vụ được gom thành k cụm, như vậy trung bình mỗi cụm có

N/k dịch vụ Tại mỗi bước tổ hợp, chúng ta cần k phép so sánh để chọn ra cụm thích hợp nhất từ k cụm này Sau đó, chúng ta lại thực hiện N/k phép so sánh để xác định dịch vụ được chọn Như vậy, số lần so sánh ở mỗi bước tổ hợp sẽ là k + N/k Mục tiêu của chúng ta là giảm thiểu số phép so sánh, và giá trị này đạt tối thiểu khi k = ⌊√ ⌋

Một vấn đề quan trọng khác của việc gom cụm là cách xác định phần tử đại diện cụm

Phần tử đại diện cụm sẽ đại diện cho các dịch vụ bên trong cụm xét trên khía cạnh các thuộc tính chức năng Mỗi dịch vụ Web được đại diện bởi một biểu thức luận lý, do đó mỗi cụm được tạo ra cũng sẽ được đại diện bởi một biểu thức luận lý Định nghĩa 6-7 (Phần tử đại diện cụm) [CT2] Gọi = { , … , } là một cụm các biểu thức luận lý đại diện cho các dịch vụ Web, phần tử đại diện cho cụm , được ký hiệu là

( ) cũng là một biểu thức luận lý có dạng → và được định nghĩa như sau:

Chúng ta cần chứng minh rằng biểu thức đại diện này sẽ đại diện được cho mọi phần tử bên trong cụm, nghĩa là: ∨ ∨ … ∨ → ∧ ∧ … ∧ ⊨ → Chứng minh cho điều kiện trên được trình bày như sau:

Ví dụ 6-7 Giả sử rằng 2 dịch vụ Web CH và HR trong Bảng 1-1 được gom thành một cụm có tên là Khi đó, biểu thức luận lý đại diện cho cụm này là:

Sau khi đã xác định được số lượng cụm và phương pháp xác định phần tử đại diện cụm, giải thuật k-means [57] sẽ được áp dụng Kết quả sau khi thực thi giải thuật này sẽ là một tập các cụm, mỗi cụm được đại diện bởi một biểu thức luận lý

81 Định nghĩa 6-8 (Biểu thức luận lý đại diện mục tiêu tổ hợp) [CT2] Gọi là mục tiêu tổ hợp trên các thuộc tính chức năng (cũng chính là yêu cầu tổ hợp của người dùng), , lần lượt là tập thuộc tính chức năng mà người dùng cung cấp và người dùng mong muốn tương ứng của , biểu thức luận lý đại diện cho mục tiêu sẽ là:

= → ≝ ℵ( ) → ℵ( ) (6.8) với ℵ( ) là hàm tạo ra biểu thức luận lý dạng chuẩn giao từ tập các thuộc tính chức năng như đã định nghĩa trong Định nghĩa 6-1

Ví dụ 6-8 Biểu thức luận lý đại diện cho yêu cầu của người dùng trên các thuộc tính chức năng trong Bảng 1-2 được cho như sau:

= ∧ ℎ → ∧ Định nghĩa 6-9 (Biểu thức luận lý đại diện cho tổ hợp) [CT2] Gọi và ℬ là hai dịch vụ Web, = → và ℬ = ℬ → ℬ lần lượt là biểu thức luận lý đại diện cho và ℬ Điều kiện đảm bảo rằng có thể tổ hợp được với ℬ là ⊨ ℬ

Gọi Γ là tổ hợp kết quả từ và ℬ , ký hiệu Γ = ● ℬ , = → là biểu thức luận lý đại diện cho tổ hợp Γ Khi đó, được xây dựng theo công thức sau:

= → = ⨀ ℬ = → ⨀ ℬ → ℬ ≝ → ∧ ℬ (6.9) với ⨀ được gọi là phép toán tổ hợp luận lý giữa hai biểu thức luận lý

Ví dụ 6-9 Chúng ta xét dịch vụ SCH và HP trong Bảng 1-1 Biểu thức luận lý đại diện của chúng lần lượt là = ℎ → ∧ và = →

Dịch vụ SCH có thể tổ hợp được với dịch vụ HP do ∧ ⊨

Gọi Γ là tổ hợp kết quả của SCH và HP, biểu thức đại diện cho Γ là:

= ℎ → ∧ ∧ Định nghĩa 6-10 (Tổ hợp dịch vụ Web thỏa mục tiêu) [CT2] Gọi Γ, lần lượt là tổ hợp dịch vụ Web và mục tiêu (yêu cầu) của người dùng, = → và = → lần lượt là các biểu thức luận lý đại diện cho Γ, Điều kiện đảm bảo rằng tổ hợp dịch vụ Web Γ thỏa mục tiêu của người dùng , ký hiệu Γ ≽ , là:

Với f ⊨ g có nghĩa là f có thể “suy ra được” g hay g là hệ quả của f

Ví dụ 6-10 Giả sử rằng người dùng cung cấp địa danh để đi du lịch (Sightseeing) và muốn nhận về thông tin giá thuê phòng (Price) của các khách sạn gần nơi họ sẽ đi du lịch Mục tiêu của người dùng được thể hiện dưới dạng một biểu thức luận lý như sau:

Với tổ hợp dịch vụ như trong Ví dụ 6-9, Γ với = ℎ → ∧ ∧ , Γ thỏa mãn bởi vì:

Giải thuật 6-1 trình bày tổng kết các bước tổ hợp dịch vụ dựa trên các dịch vụ Web đã được gom cụm Giải thuật này được chúng tôi trình bày trong công trình [CT2]

Giải thuật 6-1 nhận vào một tập gồm n cụm dịch vụ Web – S c = {C 1, C 2, …, C n}, mục tiêu tổ hợp – và số lượng tổ hợp mong muốn thỏa mục tiêu – m Kết quả trả về của Giải thuật 6-1 là một tập gồm có m tổ hợp – Σ ={Γ1, Γ2, , Γ m }, với Γ i là một tổ hợp từ các dịch vụ trong tập S c và thỏa mục tiêu Ý tưởng của giải thuật này là, đầu tiên, giải thuật lặp qua các cụm và kiểm tra xem cụm nào có thể “thỏa” đầu vào của mục tiêu hiện hành ( → = ) Với các cụm thỏa mục tiêu, giải thuật tính độ tương tự dựa trên luận lý giữa chúng với mục tiêu hiện hành và đưa chúng vào hàng đợi ưu tiên – Q Sau đó, giải thuật lấy cụm đầu tiên trong hàng đợi ưu tiên ra và lấy các dịch vụ trong cụm này làm các dịch vụ ứng để tiến hành tổ hợp

Giả sử tồn tài một dịch vụ thỏa điều kiện tổ hợp ( ⊨ & isSatisfied( )) và được chọn để tiến hành tổ hợp Nếu kết quả tổ hợp thỏa mục tiêu ban đầu của người dùng thì giải thuật sẽ ghi nhận kết quả tổ hợp này Ngược lại, nếu kết quả tổ hợp chưa thỏa mục tiêu của người dùng thì giải thuật tiếp tục tính toán lại tiểu mục tiêu cho bước tổ hợp tiếp theo Nếu trong cụm đầu tiên được lấy ra khỏi hàng đợi mà không có dịch vụ nào có thể sử dụng để tổ hợp thì cụm tiếp theo sẽ được chọn Giải thuật sẽ dừng lại khi chúng ta đã tìm đủ số tổ hợp mà người dùng yêu cầu (m) hoặc hàng đợi ưu tiên của các cụm dịch vụ rỗng, nghĩa là chúng ta không còn cụm nào để xét

83 Giải thuật 6-1 Tổ hợp dịch vụ dựa trên các dịch vụ Web đã gom cụm [CT2] Đầu vào: Tập các cụm dịch vụ Web S C = {C 1 , C 2 , …, C n }, mục tiêu và số tổ hợp mong muốn m (m = -1 nghĩa là trả về mọi tổ hợp) Đầu ra: Một tập các tổ hợp Σ, với Γ ∈ Σ là một kết quả tổ hợp từ các dịch vụ trong tập các cụm S C và Γ thỏa mãn

Gọi là biểu thức luận lý đại diện cho cụm C i , , lần lượt là biểu thức luận lý đại diện cho và Γ, Q là hàng đợi ưu tiên theo thứ tự giảm dần của các cụm

Bước 0: If m=0 then return no solution;

Bước 1: ← , ; ← ; //Khởi tạo giá trị cho biểu thức đại diện của tổ hợp

L cand ← C.getWebServices(); //Đưa các dịch vụ trong C vào danh sách ứng viên L cand

Bước 5: Thực hiện bước tổ hợp bằng cách kiểm tra từng dịch vụ Webtrong L cand ;

Hướng tiếp cận gom cụm kiểm soát chất lượng cụm dịch vụ Web

Do kết quả của việc gom cụm sẽ ảnh hưởng đến hiệu suất của quá trình tổ hợp sau này, nên chúng ta cần phải có độ đo để đánh giá và đảm bảo chất lượng của các cụm được tạo ra Trong nghiên cứu này, chúng tôi sử dụng độ đo về độ tương tự bên trong cụm (intra-cluster similarity) để đo độ tương tự giữa các phần tử trong một cụm Giá trị này càng lớn thì các phần tử bên trong cụm có độ tương tự càng cao, do đó, chất lượng của việc gom cụm cũng sẽ tốt hơn Độ tương tự bên trong cụm Định nghĩa 6-11 (Độ tương tự bên trong cụm – Intra-cluster similarity) [CT2] Gọi C là một cụm có m phần tử, độ tương tự bên trong của cụm C (ký hiệu là (C)) là giá trị trung bình về độ tương tự giữa các dịch vụ trong C và được tính theo công thức sau:

∑ (6.11) với ( , ) là độ tương tự dựa trên luận lý giữa hai dịch vụ Web , k-means là một phương pháp gom cụm đơn giản, thời gian thực hiện khá nhanh với độ phức tạp của nó là O(lkn), trong đó k là số lượng cụm, n là số lượng phần tử mà chúng ta cần gom cụm và l là số lần lặp của giải thuật [57] Trong ngữ cảnh gom cụm các dịch vụ Web cho bài toán tổ hợp dịch vụ, chúng ta chọn k ≈√ , l là số lần lặp lại vì vậy chúng ta có thể coi l như một hằng số Do đó, độ phức tạp của k-means sẽ là O( √ ) Tuy nhiên, k-means không thể đảm bảo chất lượng về độ tương tự bên trong các cụm Đối với phương pháp HAC [58], thời gian gom cụm của nó chậm hơn k-means do nó có độ phức tạp là O(n 2 ) Tuy nhiên, HAC luôn tạo ra kết quả gom cụm tốt nhất có thể Bởi vì ở mỗi bước thực hiện, hai cụm có độ tương tự cao nhất sẽ được hợp nhất lại với nhau

Với độ phức tạp O(n 2 ), khi giá trị n tăng, thời gian xử lý của HAC sẽ tăng lên đáng kể

87 Từ những ưu và nhược điểm của hai phương pháp trên, trong phần này, chúng tôi đề xuất một phương pháp gom cụm kết hợp cả hai phương pháp này, gọi là phương pháp gom cụm kiểm soát chất lượng Ý tưởng của phương pháp này là: Ban đầu, phương pháp k-means được sử dụng để tạo ra các cụm với số lượng cụm nhỏ Sau đó, HAC sẽ được áp dụng trên các cụm được tạo ra bởi k-means cho đến khi đạt được các cụm mong muốn Như vậy, đầu vào của HAC chính là các phần tử trong từng cụm được k-means tạo ra, do đó nó sẽ tương đối nhỏ, điều này giúp cho HAC chạy nhanh hơn Các cụm sau cùng được tạo ra có thể kiểm soát được chất lượng bởi phương pháp HAC

(a) Gom cụm theo HAC (b) Gom cụm theo k-means (c) Gom cụm kiểm soát chất lượng 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]

Hình 6-2 minh họa một ví dụ về việc gom cụm trên tập dữ liệu gồm có 20 dịch vụ Web

Hình 6-2 (a) trình bày kết quả gom cụm khi chúng ta chỉ áp dụng phương pháp HAC

Kết quả chúng ta thu được là 5 cụm với độ tương tự bên trong tốt nhất là 0.817 Cũng với số lượng cụm như vậy, khi chúng ta áp dụng phương pháp k-means (k=5), chất lượng (độ tương tự bên trong cụm) tốt nhất là chỉ là 0.722 (Hình 6-2(b)) Khi áp dụng phương pháp gom cụm kiểm soát chất lượng mà chúng tôi đề xuất (kết hợp k-means với HAC), kết quả là chúng ta thu được 5 cụm với chất lượng tốt nhất là 0.805 như trong Hình 6-2(c) Chất lượng trong trường hợp này hầu như giảm không đáng kể so với phương pháp HAC nhưng thời gian xử lý nhanh hơn rất nhiều Kết quả thực nghiệm trong Phần 6.3 sau đây sẽ kiểm chứng cho tính hiệu quả trong phương pháp của chúng tôi

Kết quả thực nghiệm Để kiểm chứng tính đúng đắn và tính hiệu quả của nghiên cứu, chúng tôi đã tiến hành thực nghiệm nghiên cứu của mình với tập dữ liệu thực được lấy từ dự án OWLS-TC

88 [69], gồm năm bộ dữ liệu với quy mô từ 20 đến 1000 dịch vụ như trình bày trong Bảng 4-1 Thực nghiệm này được thực hiện trên máy tính cá nhân với bộ xử lý Core i5-5200 (4x2.7 Ghz), 8.0 Gb RAM, sử dụng hệ điều hành Windows 7 phiên bản 64-bit.

Điều chỉnh tham số cho việc gom cụm

Trong Phần 6.2.3, chúng tôi đã chỉ ra rằng giá trị thích hợp nhất của k trong ngữ cảnh gom cụm các dịch vụ Web cho bài toán tổ hợp dịch vụ là k ≈ √ , trong đó n là số dịch vụ Web được gom cụm Trong phần thực nghiệm này, chúng tôi cũng sẽ kiểm chứng lại giả thuyết này bằng cách thực hiện các thực nghiệm sau

Chúng tôi chọn ba bộ dữ liệu là TB, EDS và ECS tương ứng với các tập gồm có 20, 100 và 200 dịch vụ Web trong Bảng 4-1 để tiến hành thực nghiệm Ba bộ dữ liệu này tương ứng với ba mức nhỏ, vừa, và lớn của quy mô dữ liệu Với mỗi tập dữ liệu, chúng tôi áp dụng hướng tiếp cận gom cụm dựa trên đặc trưng, hướng tiếp cận này được trình bày trong [22]; và hướng tiếp cận gom cụm dựa trên luận lý mà chúng tôi đề xuất

Bảng 6-3 Kết quả thực nghiệm khi điều chỉnh giá trị số lượng cụm (k) k TB (20 WSs) EDS (100 WSs) ECS (200 WSs)

Gom cụm dựa trên luận lý

Gom cụm dựa trên đặc trưng

Gom cụm dựa trên luận lý

Gom cụm dựa trên đặc trưng

Gom cụm dựa trên luận lý

Gom cụm dựa trên đặc trưng

89 Trong cả hai cách tiếp cận này, chúng tôi thay đổi giá trị của k và ghi nhận hiệu suất của quá trình tổ hợp tương ứng Thời gian xử lý của quá trình tổ hợp khi sử dụng kết quả gom cụm được chọn làm thước đo để đánh giá Hình 6-3 trình bày trực quan kết quả thực nghiệm và các số liệu cụ thể được trình bày trong Bảng 6-3 Như giả thuyết chúng tôi đã đưa ra, hiệu suất tốt nhất (thời gian xử lý tổ hợp tốt nhất) đạt được khi k tiệm cận giá trị √ Hơn nữa, so với cách gom cụm dựa trên đặc trưng, cách gom cụm dựa trên luận lý luôn đạt được hiệu suất tốt hơn với mọi giá trị của k Trong phần tiếp theo, chúng tôi tiếp tục trình bày kết quả thực nghiệm của mình với số cụm được chọn là k ≈ √

(a) Tập dữ liệu TB với 20 dịch vụ Web

(b) Tập dữ liệu EDS với 100 dịch vụ Web (b) Tập dữ liệu ECS với 200 dịch vụ Web 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

Đánh giá về chất lượng của các phương pháp gom cụm

Để đánh giá các phương pháp gom cụm, chúng tôi áp dụng độ đo về độ tương tự bên trong cụm (chất lượng) và thời gian xử lý gom cụm Bảng 6-4 thể hiện các kết quả thống kê khi áp dụng phương pháp gom cụm HAC, k-means và phương pháp kiểm soát chất lượng mà chúng tôi đề xuất lên 5 tập dữ liệu được trình bày trong Bảng 4-1 Trong đó, n là kích thước của tập dữ liệu và k là số cụm được chọn theo giá trị tối ưu tương ứng với từng tập dữ liệu được biện luận và thực nghiệm trong phần 6.3.1

Gom cụm dựa trên đặc trưng Gom cụm dựa trên luận lý

Số lượng cụm - k Số lượng cụm - k

90 Hình 6-4 trình bày sự so sánh trực quan giữa ba phương pháp gom cụm Chúng ta thấy rằng phương pháp k-means có thời gian xử lý ít hơn các phương pháp khác Trong khi đó, phương pháp HAC tạo ra các cụm có chất lượng tốt nhất Cách tiếp cận kiểm soát chất lượng của chúng tôi có lợi thế của cả hai phương pháp này, nó đạt được chất lượng tương đương với HAC và thời gian xử lý tiệm cận với k-means

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

Chất lượng Thời gian gom cụm (s)

HAC k-means Kiểm soát chất lượng HAC k-means Kiểm soát chất lượng

(a) So sánh trực quan về chất lượng cụm (b) So sánh trực quan về thời gian xử lý

Hình 6-4 So sánh trực quan giữa các phương pháp gom cụm

Đánh giá hiệu suất của bài toán tổ hợp và kiểm chứng dịch vụ Web

Để đánh giá hiệu suất của phương pháp gom cụm dựa trên luận lý, chúng tôi tiến hành thực nghiệm dựa trên ba hướng tiếp cận: hướng tiếp cận không gom cụm; hướng tiếp cận gom cụm dựa trên đặc trưng (được đề xuất trong [22]), và hướng tiếp cận gom cụm dựa trên luận lý mà chúng tôi đề xuất trong chương này Kết quả thực nghiệm được đánh giá theo ba khía cạnh: số trạng thái được mở rộng, số trạng thái được duyệt và thời gian thực hiện Số cụm (k) được chọn theo giá trị tối ưu tương ứng với từng tập dữ liệu được biện luận và thực nghiệm trong phần 6.3.1 Các kết quả thực nghiệm được phân tích thống kê trong Bảng 6-5 và được trình bày trực quan trong Hình 6-5

Kết quả thực nghiệm cho thấy việc gom cụm giúp giảm số lượng trạng thái được mở rộng (Hình 6-5(a)) Chúng ta lưu ý rằng, thuật toán heuristic trong công cụ thực nghiệm Độ t ương t ự b ên t rong c ụ m T h ời gia n x ử lý ( s )

Phương pháp HAC Phương pháp k-means Phương pháp kiểm soát chất lượng

Phương pháp HAC Phương pháp k-means Phương pháp kiểm soát chất lượng

91 của chúng tôi (được trình bày trong Chương 5) luôn chọn trạng thái tốt nhất để duyệt qua trong không gian trạng thái Đối với cách tiếp cận không gom cụm và gom cụm dựa trên đặc trưng thì các trạng thái tốt nhất là giống nhau, nên số lượng trạng thái được duyệt là như nhau Trong cách tiếp cận của chúng tôi, khi các dịch vụ Web mâu thuẫn về mặt luận lý không thuộc về cùng một cụm thì số trạng thái tốt nhất sẽ nhỏ hơn, nên số trạng thái được duyệt cũng sẽ nhỏ hơn (Hình 6-5(b)) Do thời gian tổ hợp phụ thuộc vào số trạng thái được mở rộng nên cách tiếp cận thứ hai có thời gian xử lý ít hơn cách tiếp cận thứ nhất và cách tiếp cận dựa trên luận lý có thời gian ít nhất (Hình 6-5(c))

Bảng 6-5 Kết quả thực nghiệm khi áp dụng phương pháp gom cụm k-means

Cách tiếp cận Số trạng thái được mở rộng

Số trạng thái được duyệt

Thời gian xử lý (ms)

Gom cụm dựa trên đặc trưng 825 56 210

Gom cụm dựa trên luận lý 316 35 155

Gom cụm dựa trên đặc trưng 4,689 125 820

Gom cụm dựa trên luận lý 1,126 75 614

Gom cụm dựa trên đặc trưng 20,824 275 4,579

Gom cụm dựa trên luận lý 3,021 151 3,294

Gom cụm dựa trên đặc trưng 76,586 515 23,030

Gom cụm dựa trên luận lý 8,324 287 18,273

(a) Số trạng thái được mở rộng

(b) Số trạng thái được duyệt (c) Thời gian xử lý (ms) 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

Không gom cụm Gom cụm dựa trên đặc trưng Gom cụm dựa trên luận lý

Tác động của chất lượng gom cụm lên kết quả tổ hợp dịch vụ Web

Để đánh giá ảnh hưởng của chất lượng gom cụm đến hiệu suất của bài toán tổ hợp dịch vụ Web, chúng tôi thực hiện lại thực nghiệm trong Phần 6.3.3 với ba phương pháp gom cụm là HAC, k-means và phương pháp kiểm soát chất lượng mà chúng tôi đề xuất

Chúng tôi cũng đánh giá kết quả thực nghiệm qua ba thông số: số trạng thái được mở rộng, số trạng thái được duyệt và thời gian xử lý Kết quả thực nghiệm được trình bày dưới dạng thống kê trong Bảng 6-6 và so sánh trực quan trong Hình 6-6

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

Số trạng thái được mở rộng Số trạng thái được duyệt Thời gian xử lý (ms) HAC k-means Kiểm soát chất lượng

HAC k-means Kiểm soát chất lượng

HAC k-means Kiểm soát chất lượng

(a) Số trạng thái được mở rộng

(b) Số trạng thái được duyệt (c) Thời gian xử lý (ms) 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

Dựa trên Hình 6-6, chúng tôi thấy rằng hiệu suất của quá trình tổ hợp bị ảnh hưởng bởi chất lượng của kết quả gom cụm Phương pháp HAC cho chất lượng gom cụm tốt nhất,

TB (20) MS (50) EDS (100) ECS (200) Global (1000)

Phương pháp HAC Phương pháp k-means

Phương pháp kiểm soát chất lượng

93 do đó, hiệu suất của quá trình tổ hợp dựa trên kết quả gom cụm của phương pháp này cũng tốt nhất Tuy nhiên, sự khác biệt trong kết quả giữa phương pháp HAC và phương pháp gom cụm kiểm soát chất lượng là rất nhỏ Đối với toàn bộ quá trình gom cụm và sau đó là tổ hợp thì phương pháp gom cụm kiểm soát chất lượng có thời gian ngắn nhất

Trong chương này, chúng tôi đã đề xuất phương pháp gom cụm các dịch vụ Web dựa trên luận lý Trong các tiếp cận này, một dịch vụ Web được biểu diễn bởi một biểu thức luận lý đại diện Sau khi gom cụm, các cụm dịch vụ cũng được đại diện bởi một biểu thức luận lý theo cách tương tự Chúng tôi đã chứng minh rằng phương pháp gom cụm mà chúng tôi đề xuất đảm bảo tính đúng và tính đầy đủ trong kết quả tổ hợp Cũng 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 Phương pháp này là sự kết hợp giữa hai phương pháp gom cụm phổ biến là HAC [58] và k- means [57] Mục đích của việc kết hợp này là tận dụng các điểm mạnh của từng phương pháp cũng như hạn chế các nhược điểm của chúng Các công trình đã công bố có liên quan đến công việc trong chương này gồm [CT2], [CT3], [CT11]

Trong chương kế tiếp, chúng tôi trình bày về công cụ WSCOVER, một công cụ hiện thực cho các lý thuyết mà chúng tôi đã đề xuất Với công cụ WSCOVER, chúng tôi đã hoàn thiện nghiên cứu của mình, từ việc đề xuất khung thức tổng quát, xây dựng các lý thuyết, các phương pháp xử lý và tối ưu cụ thể, đến việc hiện thực hóa các ý tưởng, các lý thuyết này thành một sản phẩm, một công cụ có thể áp dụng vào thực tế Chi tiết về công cụ WSCOVER này được chúng tôi trình bày trong Chương 7 ngay sau đây

CÔNG CỤ TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH VỤ WEB TỰ ĐỘNG WSCOVER

Tổ hợp và kiểm chứng theo cách on-the-fly

WSCOVER thực hiện đồng thời việc tổ hợp và kiểm chứng kết quả tổ hợp tại từng bước tổ hợp bằng cách áp dụng phương pháp kiểm tra mô hình Kho dịch vụ Web được đặc tả dưới dạng một mô hình LTS4WS, đó là một mô hình LTS đặc biệt chỉ có một trạng thái và mỗi dịch vụ Web được biểu diễn dưới dạng một chuyển trạng thái có điều kiện (guarded transition), như được minh họa trong Hình 4-3 Quá trình tổ hợp được thực hiện dưới dạng một bài toán tìm kiếm trên không gian trạng thái Tại mỗi trạng thái xử lý, các điều kiện ràng buộc về chức năng, chất lượng và quan hệ thời gian giữa các dịch vụ được kiểm chứng bằng cách áp dụng phương pháp kiểm tra mô hình Việc áp dụng

95 phương pháp kiểm tra mô hình giúp chúng ta có thể kiểm chứng được các ràng buộc có yếu tố thời gian, loại ràng buộc mà các phương pháp khác như lập kế hoạch, giải thuật di truyền, … không thể áp dụng được Thông tin chi tiết về mô hình LTS4WS và quá trình tổ hợp dịch vụ Web được chúng tôi trình bày trong các đóng góp [CT5], [CT7] và trong Chương 3 và Chương 4 của luận án này.

Tổ hợp dịch vụ Web có sự định hướng heuristic

WSCOVER ứng dụng kỹ thuật tìm kiếm heuristic giúp chúng ta tìm ra giải pháp tổ hợp nhanh hơn, tối ưu hơn và tốn ít tài nguyên của hệ thống hơn Tại mỗi trạng thái đã được duyệt, trạng thái kế tiếp được chọn dựa trên hàm đánh giá chi phí heuristic Chi phí này được tính dựa trên chi phí thực từ trạng thái khởi đầu đến trạng thái đang xét (trạng thái n) và chi phí ước tính từ trạng thái đang xét đến trạng thái đích Các chi phí này được đánh giá cả trên các thuộc tính chức năng lẫn thuộc tính chất lượng của dịch vụ

Bên cạnh áp dụng tìm kiếm heuristic, WSCOVER còn áp dụng kỹ thuật lập chỉ mục dựa trên bit nhị phân để tối ưu quá trình tính toán Chỉ những dịch vụ Web nằm trong các chỉ mục được chọn mới cần phải xử lý tính toán Các dịch vụ không thuộc các chỉ mục này nghĩa là chúng không có liên quan đến trạng thái đang được duyệt, vì vậy, chúng ta không cần phải xem xét đến chúng Chi tiết cũng như cơ sở lý thuyết về tính năng này được chúng tôi trình bày trong Chương 5 và trong các đóng góp [CT1], [CT7], [CT12].

Gom cụm các dịch vụ Web dựa trên luận lý

Để giảm số trạng thái cần phải mở rộng ở mỗi bước tổ hợp, WSCOVER ứng dụng kỹ thuật gom cụm để phân các dịch vụ Web trong thư viện thành các cụm Tại mỗi bước tổ hợp, chỉ các dịch vụ trong các cụm phù hợp với yêu cầu hiện hành mới được xem xét để mở rộng Ví dụ, trong Hình 6-1(g), 10 dịch vụ Web ban đầu được gom thành 3 cụm là

C 1, C 2, và C 3 Đối với yêu cầu người dùng được trình bày trong Bảng 1-2, WSCOVER chỉ xem các dịch vụ trong cụm C 1 là phù hợp để mở rộng trong bước đầu tiên Do đó, không gian trạng thái chỉ được mở rộng thêm 4 trạng thái tương ứng với 4 dịch vụ trong cụm này Ở bước tổ hợp thứ 2 (sau khi dịch vụ SC được chọn), WSCOVER tiếp tục suy luận được rằng cụm C 2 phù hợp với điều kiện hiện hành và do đó chỉ 3 trạng thái tương ứng với 3 dịch vụ trong cụm C 2 được mở rộng Quá trình này tiếp tục cho đến chúng ta có được kết quả tổ hợp đáp ứng yêu cầu như trong Hình 6-1(h)

96 Để thực hiện ý tưởng này, WSCOVER sử dụng phương pháp gom cụm mà luận án này đề xuất, gọi là gom cụm dựa trên luận lý Các chi tiết về phương pháp gom cụm này được chúng tôi trình bày trong Chương 6 và trong các đóng góp [CT2], [CT3], [CT11]

WSCOVER được hiện thực bằng ngôn ngữ C#, sử dụng bộ công cụ kiểm tra mô hình PAT [68] với sự mở rộng cho phép tích hợp phương pháp tìm kiếm heuristic và lựa chọn dịch vụ theo chỉ mục Ngoài tầng xử lý tổ hợp dựa trên công cụ kiểm tra mô hình, WSCOVER còn có tầng giao diện giao tiếp thân thiện người dùng và tầng tiền xử lý, cho phép xử lý gom cụm các dịch vụ Web dựa trên luận lý Hình 7-1 trình bày kiến trúc của WSCOVER, chi tiết các chức năng xử lý sẽ được trình bày trong các phần sau

Hình 7-1 Kiến trúc của công cụ WSCOVER [CT8], [CT10]

Tầng tiền xử lý

Tầng này thực hiện các hoạt động tiền xử lý thư viện dịch vụ trước khi thực hiện tổ hợp, bao gồm các chức năng sau

Bộ phân tích OWLS2LogicExp (OWLS2LogicExp Parser) có nhiệm vụ phân tích hồ sơ dịch vụ (service profile) ở dạng OWL-S [11] và chuyển chúng thành các biểu thức luận lý Hiện tại, WSCOVER chỉ hỗ trợ OWL-S, tuy nhiên nó có thể dễ dàng được mở rộng và điều chỉnh để phù hợp với các ngôn ngữ mô tả dịch vụ Web khác như WSDL [12]

Bộ gom cụm dữ liệu dựa trên luận lý (Logic-based Clustering Module) thực hiện việc gom cụm các dịch vụ Web dựa trên các biểu thức luận lý đại diện Các cụm dịch vụ này được lưu trữ dưới dạng tệp tin XML

Bộ chuyển đổi LTS4WS (LTS4WS Transformer) chuyển các dịch vụ Web được lưu trữ trong các cụm thành mô hình LTS4WS tương ứng, như minh họa trong Hình 6-1(g).

Tầng xử lý tổ hợp và kiểm chứng

Đây là chức năng chính của WSCOVER, đảm nhận chức năng tổ hợp và kiểm chứng kết quả tổ hợp theo yêu cầu của người dùng Tầng này bao gồm các bộ phận sau

Bộ chuẩn hóa mục tiêu (Goal Normalizer) chuyển các yêu cầu của người dùng thành các xác lập (assertion) để đưa vào bộ kiểm tra mô hình Xác lập này có thể là một xác lập về khả năng tiếp cận (reachability) hoặc xác lập về một biểu thức LTL, tùy thuộc vào mục đích của người dùng Bảng 7-2 trong Phần 7.4.1 minh hoạ một số xác lập được tạo ra bởi mô đun này

Bộ tìm kiếm heuristic (Heuristic Search Engine) chịu trách nhiệm thực hiện chức năng tìm kiếm heuristic nhằm mục đích giúp chúng ta không phải mở rộng toàn bộ không gian trạng thái, giúp chúng ta có được kết quả nhanh hơn, tối ưu hơn và ít tốn tài nguyên hệ thống hơn Trong quá trình tính toán giá trị chi phí heuristic cho các trạng thái, chức năng lập chỉ mục dựa trên bit nhị phân được sử dụng để giúp chúng ta xác định được chính xác các trạng thái cần phải tính giá trị chi phí heuristic

Bộ kiểm tra mô hình định hướng heuristic (Explicit State Heuristic Model Checker) là sự mở rộng bộ kiểm tra mô hình PAT [68] bằng cách áp dụng tìm kiếm heuristic khi duyệt không gian trạng thái Việc tích hợp tìm kiếm heuristic giúp PAT kiểm soát được vấn đề bùng nổ không gian trạng thái.

Tầng giao diện người dùng

Đây là tầng cung cấp giao diện cho phép người dùng thiết lập các yêu cầu của họ, chẳng hạn như chọn các thuộc tính mà người dùng cung cấp thông tin và các thuộc tính mà họ muốn biết thông tin, nhập các ràng buộc về chất lượng dịch vụ, nhập biểu thức LTL mô tả mối quan hệ thời gian giữa các thuộc tính Ngoài ra, tầng giao diện còn có chức năng trình bày kết quả tổ hợp cũng như các thông tin liên quan đến quá trình tổ hợp như thời gian xử lý, bộ nhớ hệ thống đã sử dụng, số trạng thái được mở rộng và được duyệt

98 Chúng tôi đã phát triển công cụ WSCOVER dưới hai dạng ứng dụng là ứng dụng chạy cục bộ trên máy tính (desktop application) và ứng dụng trực tuyến (web application)

Hình 7-2 trình bày giao diện phiên bản chạy cục bộ trên máy tính và Hình 7-3 là giao diện ứng dụng trực tuyến của WSCOVER

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

So sánh WSCOVER với các công cụ hiện có

Bảng 7-1 So sánh các công cụ tổ hợp và kiểm chứng dịch vụ Web

Công cụ Tổ hợp Kiểm chứng Loại ràng buộc Định dạng đầu vào

OWLS-XPlan [18]  Chức năng OWL-S (dịch vụ Web đơn)

PORSCE II [19]  Chức năng OWL-S (dịch vụ Web đơn)

GA-based [35]  Chức năng, chất lượng OWL-S (dịch vụ Web đơn)

WS-Engineer [39]  Chức năng Lược đồ tổ hợp BPEL

AgFlow [75]  Chất lượng Lược đồ tổ hợp Statecharts

VeriWS [16]  Kết hợp mọi ràng buộc Lược đồ tổ hợp BPEL WSCOVER   Kết hợp mọi ràng buộc OWL-S (dịch vụ Web đơn)

99 Bảng 7-1 trình bày sự so sánh giữa công cụ WSCOVER với các công cụ hiện có Những công cụ này cung cấp chức năng tổ hợp hoặc kiểm chứng tổ hợp dịch vụ, dựa trên các ràng buộc chức năng, ràng buộc chất lượng, hoặc ràng buộc quan hệ thời gian giữa các dịch vụ Một trong những công cụ mới nhất về kiểm chứng tổ hợp là VeriWS [16]

VeriWS cũng thực hiện việc kiểm chứng sử dụng phương pháp kiểm tra mô hình và mô hình mà VeriWS sử dụng là mô hình LTS Sau khi kiểm chứng, VeriWS trả về thông tin cho biết tổ hợp này có đáp ứng được các yêu cầu của người dùng hay không Mặc dù đây là công cụ đầu tiên xử lý kết hợp các loại ràng buộc, nhưng nó chỉ kiểm chứng kết quả tổ hợp đã có chứ không thực hiện việc tạo ra tổ hợp dịch vụ

Hình 7-3 Giao diện công cụ WSCOVER – phiên bản chạy trực tuyến

PORSCE II [19] là một khung thức thực hiện việc tổ hợp dịch vụ Web dựa trên các yêu cầu về chức năng của dịch vụ, sử dụng kỹ thuật AI Planning PORSCE II chuyển đổi vấn đề tổ hợp dịch vụ Web thành bài toán lập kế hoạch và sử dụng các bộ lập kế hoạch hiện có để giải quyết Việc gọi thực thi một dịch vụ Web tương ứng với một hành động

100 trong bài toán lập kế hoạch Các dịch vụ Web sử dụng trong PORSCE II được mô tả bởi ngôn ngữ OWL-S Kết quả của việc lập kế hoạch là một chuỗi các hành động mà kết quả của nó thỏa mãn yêu cầu người dùng Chuỗi hành động này chính là chuỗi các dịch vụ Web sẽ được gọi thực thi Điểm yếu của PORSCE II là nó chỉ giải quyết các ràng buộc chức năng Tương tự, OWLS-XPlan [18] cũng sử dụng kỹ thuật lập kế hoạch để giải quyết bài toán tổ hợp dịch vụ Web

Phương pháp tổ hợp dịch vụ xử lý kết hợp các ràng buộc chức năng và ràng buộc chất lượng đã được đề xuất trong [35] Trong nghiên cứu này, các tác giả áp dụng giải thuật di truyền để giải quyết vấn đề với mỗi cách tổ hợp được mã hoá dưới dạng một gen Do công cụ hiện thực của nghiên cứu này chưa được đặt tên nên chúng tôi tạm gọi nó là công cụ tổ hợp dịch vụ dựa trên giải thuật di truyền (GA-based) Tuy nhiên, nghiên cứu này chỉ cung cấp cho chúng ta một cơ chế lựa chọn tổ hợp tốt nhất có thể từ một tập các phương án tổ hợp hơn là từng bước tạo ra tổ hợp từ các dịch vụ thành phần

WS-Engineer [39] là công cụ điển hình giải quyết vấn đề kiểm chứng tổ hợp dịch vụ Web dựa trên các ràng buộc chức năng Trong WS-Engineer, tác giả mô hình hóa lược đồ tổ hợp được mô tả dưới dạng các tiến trình BPEL [30] thành dạng tiến trình trạng thái hữu hạn (Finite State Process – FSP) để phân tích sự tương tác giữa các dịch vụ thành phần cũng như sự giao tiếp giữa chúng Quá trình kiểm chứng được thực hiện trên mô hình FSP này bằng cách sử dụng máy trạng thái hữu hạn

AgFlow [75] là công cụ kiểm chứng tổ hợp dịch vụ Web dựa trên các thuộc tính chất lượng dịch vụ Để sử dụng AgFlow, người dùng phải cung cấp lược đồ tổ hợp được mô tả dưới dạng sơ đồ trạng thái (statechart) Sau đó, sơ đồ này được đưa vào một mô hình

QoS đa chiều để theo dõi việc thực hiện của tổ hợp AgFlow kiểm tra xem liệu tổ hợp có xung đột với các ràng buộc chất lượng của người dùng hay không

So với các công cụ hiện có, WSCOVER được phân biệt bởi một số tính năng sau Đầu tiên, WSCOVER thực hiện việc tổ hợp và kiểm chứng cùng một lúc và theo cách on- the-fly, hỗ trợ giải quyết các ràng buộc trên các thuộc tính chức năng lẫn chất lượng của dịch vụ, cũng như các ràng buộc về quan hệ thời gian giữa chúng Thứ hai, WSCOVER sử dụng các dịch vụ Web đơn làm đầu vào, tức là nó không cần phải xây dựng một lược

101 đồ tổ hợp trước như VeriWS [16] hay AgFlow [75] Cuối cùng, WSCOVER đã tích hợp nhiều kỹ thuật giúp cải thiện hiệu suất của quá trình xử lý cũng như có thể áp dụng cho các thư viện dịch vụ kích thước lớn mà các công cụ khác không có, chẳng hạn như tìm kiếm heuristic, lập chỉ mục dịch vụ dựa trên bit nhị phân và đặc biệt là phương pháp gom cụm dịch vụ Web dựa trên luận lý

Minh họa công cụ WSCOVER

Ví dụ minh họa

Bảng 7-2 Các yêu cầu minh họa và kết quả tương ứng [CT10]

# Yêu cầu của người dùng LbC HS ES VS ET UM Kết quả tổ hợp

TOB ⊨ reach(Date ∧ Sightseeing → Price ∧ HotelReservation)

TOB ⊨ reach((Date ∧ Sightseeing → Price ∧ HotelReservation) ∧

R3 TOB ⊨ G((Dates ∧ Sightseeing → Price ∧ HotelReservation) ∧

R4 TOB ⊨ G((Dates ∧ Sightseeing → Price ∧ HotelReservation) ∧

Trong phần này, chúng tôi trình bày một số ví dụ minh họa để cho thấy chức năng cũng như cách làm việc của WSCOVER Tình huống nghiệp vụ cho các ví dụ minh họa của chúng tôi như sau: Chúng ta có một kho gồm 10 dịch vụ Web như trong Bảng 1-1 và người dùng muốn sử dụng các dịch vụ này để đặt chuyến du lịch trực tuyến (Travel Online Booking – TOB) Bảng 7-2 trình bày một số yêu cầu và kết quả tổ hợp tương ứng Đối với mỗi yêu cầu, chúng tôi đánh giá hiệu suất của công cụ WSCOVER dựa trên bốn kịch bản: sử dụng gom cụm dựa trên luận lý (Logic-based Clustering – LbC) và tìm kiếm heuristic (Heuristic Search – HS); sử dụng tìm kiếm heuristic nhưng không

102 sử dụng gom cụm; sử dụng gom cụm nhưng không sử dụng tìm kiếm heuristic; và không sử dụng cả hai Bên cạnh kết quả tổ hợp, chúng tôi cũng thu thập các thông số hệ thống để cho thấy sự hiệu quả của mỗi chức năng của công cụ Thông tin hệ thống bao gồm số trạng thái được mở rộng (Expanded States – ES), số trạng thái được duyệt (Visited States – VS), thời gian xử lý (Execution Time – ET) theo mili-giây (ms) và lượng bộ nhớ sử dụng (Used Memory – UM) tính bằng kilobyte (KB) Những yêu cầu này có thể bao gồm ràng buộc chức năng và (hoặc) ràng buộc chất lượng Ngoài ra, một số yêu cầu cũng có thể có các ràng buộc về mối quan hệ thời gian giữa các dịch vụ Web.

Kết quả thực nghiệm và so sánh với các công cụ khác

Trong phần này, chúng tôi trình bày kết quả thực nghiệm và so sánh WSCOVER với các công cụ hiện có, gồm PORSCE II [19] và GA-based [35], hai công cụ này chúng ta đã đề cập trong Phần 7.3 Ở đây, chúng tôi không thực hiện so sánh với công cụ OWLS- XPlan [18] vì về bản chất, công cụ này có phương pháp xử lý giống với PORSCE II, đó là thực hiện việc tổ hợp dựa trên kỹ thuật lập kế hoạch PORSCE II được xem là sự mở rộng, cải tiến của công cụ OWLS-XPlan Để chạy thực nghiệm và so sánh, chúng tôi vẫn sử dụng bộ dữ liệu được lấy từ dự án OWLS-TC [69] với 5 tập con có quy mô từ 20 đến 1000 dịch vụ như trong Bảng 4-1

Chúng tôi chạy lần lượt các công cụ này trên cùng một máy tính với bộ xử lý i5-5200 (4x2.7 Ghz), bộ nhớ RAM 8.0 Gb và sử dụng hệ điều hành Windows 7 64-bit Kết quả thực nghiệm cũng được đánh giá trên ba khía cạnh: số trạng thái mở rộng, số trạng thái được duyệt và thời gian xử lý Chúng tôi thiết lập ngưỡng giới hạn thời gian xử lý (timeout) cho từng yêu cầu là 600,000 mili-giây (10 phút) Kết quả thực nghiệm được phân tích dưới dạng thống kê trong Bảng 7-3 và so sánh trực quan như trong Hình 7-4

Bảng 7-3 Kết quả thực nghiệm so sánh giữa các công cụ Tập dữ liệu Công cụ TB (20) MS (50) EDS (100) ECS (200) Global (1000)

Thời gian xử lý (ms)

Dung lượng bộ nhớ sử dụng (KB)

103 Kết quả thực nghiệm cho thấy sự hiệu quả của công cụ WSCOVER Cơ chế gom cụm dịch vụ dựa trên luận lý giúp WSCOVER thu giảm số trạng thái phải mở rộng Phương pháp tìm kiếm heuristic của WSCOVER luôn chọn trạng thái tốt nhất để duyệt qua trong không gian trạng thái ở mỗi bước tổ hợp Cần lưu ý là để thực hiện cùng với công cụ PORCSE II và GA-based, các kịch bản thực nghiệm bỏ qua các ràng buộc có yếu tố thời gian do công cụ này không thể thực hiện việc tổ hợp với các loại ràng buộc thời gian

(a) Thời gian xử lý (ms) (b) Dung lượng bộ nhớ sử dụng Hình 7-4 So sánh trực quan giữa các công cụ tổ hợp dịch vụ Web

Trong chương này, chúng tôi đã trình bày về công cụ WSCOVER, một công cụ hỗ trợ việc tổ hợp và kiểm chứng các dịch vụ Web một cách tự động WSCOVER cho phép kiểm chứng kết hợp các loại ràng buộc như ràng buộc chức năng, ràng buộc chất lượng và ràng buộc có yếu tố thời gian giữa các dịch vụ Công cụ này tích hợp phương pháp tìm kiếm heuristic lẫn kỹ thuật lập chỉ mục dựa trên bit nhị phân để kiểm soát sự bùng nổ không gian trạng thái thi thực hiện tổ hợp Bên cạnh đó, để phù hợp với các kho dịch vụ quy mô lớn, WSCOVER còn được tích hợp phương pháp gom cụm các dịch vụ dựa trên luận lý Điều này giúp cho WSCOVER có thể làm việc được với các kho dịch vụ quy mô lớn mà các công cụ khác không thể xử lý được Kết quả thực nghiệm cũng đã chỉ ra rằng khi thư viện dịch vụ trở nên lớn (chẳng hạn như từ 1000 dịch vụ Web trở lên) thì chỉ có công cụ WSCOVER mới có thể xử lý và trả về kết quả tổ hợp Các công trình đã công bố có liên quan đến công việc trong chương này gồm [CT8], [CT10]

WSCOVER được xem là công cụ hiện thực hóa cho mọi ý tưởng, mọi lý thuyết được trình bày trong luận án này Tất cả các tài liệu hướng dẫn và dữ liệu thực nghiệm có thể tải về từ liên kết http://cse.hcmut.edu.vn/~save/project/wscover/ Phiên bản trực tuyến của WSCOVER được cài đặt ở địa chỉ: http://www.cse.hcmut.edu.vn/wscover/

PORSCE II GA-based WSCOVER

PORSCE II GA-based WSCOVER

Ngày đăng: 08/09/2024, 19:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] D. Chong and H. Shi, "Big data analytics: a literature review," Journal of Management Analytics, vol. 2, pp. 175-201, 2015 Sách, tạp chí
Tiêu đề: Big data analytics: a literature review
[2] A. McAfee, E. Brynjolfsson and T. H. Davenport, "Big data: the management revolution," Harvard business review, vol. 90, no. 10, pp. 60-68, 2012 Sách, tạp chí
Tiêu đề: Big data: the management revolution
[3] R. DeLine, "Research opportunities for the big data era of software engineering," in Big Data Software Engineering (BIGDSE), 2015 IEEE/ACM 1st International Workshop on IEEE, 2015 Sách, tạp chí
Tiêu đề: Research opportunities for the big data era of software engineering
[5] "Atlassian bitbucket," [Online]. Available: https://www.codeplex.com/. [Accessed 5 2017] Sách, tạp chí
Tiêu đề: Atlassian bitbucket
[6] P. Bielik, V. Raychev and M. Vechev, "Programming with "Big Code": Lessons, Techniques and Applications," LIPIcs-Leibniz International Proceedings in Informatics, vol. 32, pp. 41-50, 2015 Sách, tạp chí
Tiêu đề: Programming with "Big Code": Lessons, Techniques and Applications
[7] A. Hindle, E. T. Barr, M. Gabel, Z. Su and P. Devanbu, "On the naturalness of software," Communications of the ACM, vol. 59, no. 5, pp. 122-131, 2016 Sách, tạp chí
Tiêu đề: On the naturalness of software
[8] E. C. Foster, "Introduction to Software Engineering," in Software Engineering: A Methodical Approach, Berkeley, CA, Apress, 2014, pp. 3-20 Sách, tạp chí
Tiêu đề: Introduction to Software Engineering
[9] M. P. Papazoglou and W. J. Van Den Heuvel, "Service oriented architectures: approaches, technologies and research issues," The VLDB journal, vol. 16, no. 3, pp. 389-415, 2007 Sách, tạp chí
Tiêu đề: Service oriented architectures: approaches, technologies and research issues
[10] S. Mumbaikar and P. Padiya, "Web services based on soap and rest principles," International Journal of Scientific and Research Publications, vol. 3, no. 5, pp.1-4, 2013 Sách, tạp chí
Tiêu đề: Web services based on soap and rest principles
[11] D. Martin, M. Burstein, J. Hobbs, O. Lassila, D. McDermott, S. McIlraith, S. Narayanan, M. Paolucci, B. Parsia and T. Payne, "OWL-S: Semantic markup for web services," W3C member submission, vol. 22, pp. 2007-04, 2004 Sách, tạp chí
Tiêu đề: OWL-S: Semantic markup for web services
[12] E. Christensen, F. Curbera, G. Meredith and S. Weerawarana, Web services description language (WSDL) 1.1, Citeseer, 2001 Sách, tạp chí
Tiêu đề: Web services description language (WSDL) 1.1
[13] J. Robie, R. Cavicchio, R. Sinnema and E. Wilde, "RESTful Service Description Language (RSDL), Describing RESTful services without tight coupling," in Balisage: The Markup Conference, 2013, pp. 6-9 Sách, tạp chí
Tiêu đề: RESTful Service Description Language (RSDL), Describing RESTful services without tight coupling
[14] R. Yin, "Study of composing web service based on SOA," Proceedings of the 2nd International Conference on Green Communications and Networks 2012 (GCN 2012): Volume 2, vol. 2, pp. 209-214, 2013 Sách, tạp chí
Tiêu đề: Study of composing web service based on SOA
[15] Q. Z. Sheng, X. Qiao, A. V. Vasilakos, C. Szabo, S. Bourne and X. Xu, "Web services composition: A decade’s overview," Information Sciences, vol. 280, pp.218-238, 2014 Sách, tạp chí
Tiêu đề: Web services composition: A decade’s overview
[16] M. Chen, T. H. Tan, J. Sun, Y. Liu and J. S. Dong, "VeriWS: a tool for verification of combined functional and non-functional requirements of web service composition," in Companion Proceedings of the 36th International Conference on Software Engineering, ACM, 2014 Sách, tạp chí
Tiêu đề: VeriWS: a tool for verification of combined functional and non-functional requirements of web service composition
[18] M. Klusch, A. Gerber and M. Schmidt, "Semantic web service composition planning with OWLS-Xplan," in AAAI Fall Symposium on Semantic Web and Agents, USA, 2005 Sách, tạp chí
Tiêu đề: Semantic web service composition planning with OWLS-Xplan
[19] O. Hatzi, D. Vrakas, N. Bassiliades and I. Vlahavas, "The PORSCE II framework: Using AI planning for automated semantic web servicecomposition," The Knowledge Engineering Review, vol. 28, no. 2, pp. 137-156, 2013 Sách, tạp chí
Tiêu đề: The PORSCE II framework: Using AI planning for automated semantic web service composition
[20] T. B. Ho, S. Taewijit, Q. B. Ho and H. C. Dam, "Chapter 7: Big data and service science," in Progressive Trends in Knowledge and System-Based Science for Service Innovation, IGI Global, 2014, pp. 128-144 Sách, tạp chí
Tiêu đề: Chapter 7: Big data and service science
[21] W. Fan and A. Bifet, "Mining big data: current status, and forecast to the future," ACM sIGKDD Explorations Newsletter, vol. 14, no. 2, pp. 1-5, 2013 Sách, tạp chí
Tiêu đề: Mining big data: current status, and forecast to the future
[22] B. T. Kumara, I. Paik, W. Chen and K. H. Ryu, "Web Service Clustering using a Hybrid Term-Similarity Measure with Ontology Learning," InternationalJournal of Web Services Research (IJWSR), vol. 11, no. 2, pp. 24-45, 2014 Sách, tạp chí
Tiêu đề: Web Service Clustering using a Hybrid Term-Similarity Measure with Ontology Learning

HÌNH ẢNH LIÊN QUAN

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 - Luận án tiến sĩ Khoa học máy tính: 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ảng 1 1. Thư viện các dịch vụ Web hỗ trợ đặt chuyến du lịch trực tuyến (Trang 18)
Hình 1-2. Quá trình tổ hợp thành phần tổng quát - Luận án tiến sĩ Khoa học máy tính: 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
Hình 1 2. Quá trình tổ hợp thành phần tổng quát (Trang 20)
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] - Luận án tiến sĩ Khoa học máy tính: 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
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] (Trang 28)
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 - Luận án tiến sĩ Khoa học máy tính: 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ả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 (Trang 31)
Hình 2-3. Kiểm chứng dịch vụ Web tổ hợp BPEL sử dụng timed automata [41] - Luận án tiến sĩ Khoa học máy tính: 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
Hình 2 3. Kiểm chứng dịch vụ Web tổ hợp BPEL sử dụng timed automata [41] (Trang 34)
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] - Luận án tiến sĩ Khoa học máy tính: 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
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] (Trang 38)
Bảng 2-4. Các phép toán liên kết thời gian trong LTL [17] - Luận án tiến sĩ Khoa học máy tính: 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ảng 2 4. Các phép toán liên kết thời gian trong LTL [17] (Trang 39)
Hình 3-1. Kiến trúc tổng quát của khung thức [CT6] - Luận án tiến sĩ Khoa học máy tính: 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
Hình 3 1. Kiến trúc tổng quát của khung thức [CT6] (Trang 50)
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] - Luận án tiến sĩ Khoa học máy tính: 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
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] (Trang 53)
Hình 4-5. Kết quả tổ hợp dịch vụ Web đặt chuyến du lịch - Luận án tiến sĩ Khoa học máy tính: 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
Hình 4 5. Kết quả tổ hợp dịch vụ Web đặt chuyến du lịch (Trang 65)
Bảng 4-2 trình bày kết quả thực nghiệm đo đạc trên số trạng thái được mở rộng với từng  loại yêu cầu khác nhau - Luận án tiến sĩ Khoa học máy tính: 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ảng 4 2 trình bày kết quả thực nghiệm đo đạc trên số trạng thái được mở rộng với từng loại yêu cầu khác nhau (Trang 67)
Hình 4-7. Biểu đồ so sánh trực quan về số trạng thái được duyệt - Luận án tiến sĩ Khoa học máy tính: 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
Hình 4 7. Biểu đồ so sánh trực quan về số trạng thái được duyệt (Trang 68)
Bảng 4-3. Kết quả thực nghiệm về số trạng thái được duyệt   Cách tiếp cận  Loại ràng buộc  TB (20) MS (50)  EDS (100) ECS (200) - Luận án tiến sĩ Khoa học máy tính: 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ảng 4 3. Kết quả thực nghiệm về số trạng thái được duyệt Cách tiếp cận Loại ràng buộc TB (20) MS (50) EDS (100) ECS (200) (Trang 68)
Hình 4-8. Biểu đồ so sánh trực quan về thời gian xử lý (ms) - Luận án tiến sĩ Khoa học máy tính: 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
Hình 4 8. Biểu đồ so sánh trực quan về thời gian xử lý (ms) (Trang 69)
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 - Luận án tiến sĩ Khoa học máy tính: 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ả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 (Trang 80)
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 - Luận án tiến sĩ Khoa học máy tính: 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ảng 5 6. Danh sách các dịch vụ Web được chọn sau khi tổ hợp dịch vụ CH (Trang 81)
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 - Luận án tiến sĩ Khoa học máy tính: 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ảng 5 7. Danh sách các dịch vụ Web được chọn sau khi tổ hợp dịch vụ HP (Trang 81)
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 - Luận án tiến sĩ Khoa học máy tính: 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ả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 (Trang 82)
Bảng 6-1. Các tình huống đặt chuyến du lịch của người dùng - Luận án tiến sĩ Khoa học máy tính: 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ảng 6 1. Các tình huống đặt chuyến du lịch của người dùng (Trang 86)
Hình 6-2 minh họa một ví dụ về việc gom cụm trên tập dữ liệu gồm có 20 dịch vụ Web. - Luận án tiến sĩ Khoa học máy tính: 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
Hình 6 2 minh họa một ví dụ về việc gom cụm trên tập dữ liệu gồm có 20 dịch vụ Web (Trang 101)
Bảng 6-3. Kết quả thực nghiệm khi điều chỉnh giá trị số lượng cụm (k) - Luận án tiến sĩ Khoa học máy tính: 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ảng 6 3. Kết quả thực nghiệm khi điều chỉnh giá trị số lượng cụm (k) (Trang 102)
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 - Luận án tiến sĩ Khoa học máy tính: 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ả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 (Trang 104)
Bảng 6-5. Kết quả thực nghiệm khi áp dụng phương pháp gom cụm k-means - Luận án tiến sĩ Khoa học máy tính: 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ảng 6 5. Kết quả thực nghiệm khi áp dụng phương pháp gom cụm k-means (Trang 105)
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 - Luận án tiến sĩ Khoa học máy tính: 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ả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 (Trang 106)
Hình 7-1. Kiến trúc của công cụ WSCOVER [CT8], [CT10] - Luận án tiến sĩ Khoa học máy tính: 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
Hình 7 1. Kiến trúc của công cụ WSCOVER [CT8], [CT10] (Trang 110)
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 - Luận án tiến sĩ Khoa học máy tính: 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
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 (Trang 112)
Hình 7-2 trình bày giao diện phiên bản chạy cục bộ trên máy tính và Hình 7-3 là giao  diện ứng dụng trực tuyến của WSCOVER - Luận án tiến sĩ Khoa học máy tính: 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
Hình 7 2 trình bày giao diện phiên bản chạy cục bộ trên máy tính và Hình 7-3 là giao diện ứng dụng trực tuyến của WSCOVER (Trang 112)
Hình 7-3. Giao diện công cụ WSCOVER – phiên bản chạy trực tuyến - Luận án tiến sĩ Khoa học máy tính: 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
Hình 7 3. Giao diện công cụ WSCOVER – phiên bản chạy trực tuyến (Trang 113)
Bảng 7-2. Các yêu cầu minh họa và kết quả tương ứng [CT10] - Luận án tiến sĩ Khoa học máy tính: 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ảng 7 2. Các yêu cầu minh họa và kết quả tương ứng [CT10] (Trang 115)
Bảng 7-3. Kết quả thực nghiệm so sánh giữa các công cụ  Tập dữ liệu  Công cụ  TB (20)  MS (50)  EDS (100) ECS (200) Global (1000) - Luận án tiến sĩ Khoa học máy tính: 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ảng 7 3. Kết quả thực nghiệm so sánh giữa các công cụ Tập dữ liệu Công cụ TB (20) MS (50) EDS (100) ECS (200) Global (1000) (Trang 116)

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

TÀI LIỆU LIÊN QUAN

w