Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Trường Đại Học Bách Khoa
BÙI DŨNG ANH TUẤN
XÂY DỰNG ỨNG DỤNG TỰ ĐỘNG
TỔNG HỢP CÁC WEB SERVICE
Chuyên ngành: Khoa học Máy tính
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, tháng 09 năm 2009
Xây dựng ứng dụng tự động tổng hợp Web service
LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác như đã ghi rõ
trong luận văn, các cơng việc trình bày trong luận văn này là do chính tơi thực hiện và
chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này
hoặc trường khác.
Ngày 02 tháng 07 năm 2009
Bùi Dũng Anh Tuấn
Trang i
Xây dựng ứng dụng tự động tổng hợp Web service
LỜI CẢM ƠN
Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS. Phạm Trần Vũ. Thầy đã
tận tình hướng dẫn, định hướng tơi từ cách đặt vấn đề, phương pháp nghiên cứu khoa
học, đến những công việc cụ thể trong luận án này.
Tôi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tơi có thể
tiếp tục theo đuổi việc học tập nghiên cứu. Tôi trân trọng dành tặng thành quả của luận
văn này cho em trai, Cha Mẹ. Nhờ công lao dưỡng dục của Người mà chúng con mới có
được thành quả như ngày hơm nay. Con xin hứa sẽ tiếp tục cố gắng phấn đấu để vươn
cao hơn nữa.
Trang ii
Xây dựng ứng dụng tự động tổng hợp Web service
TÓM TẮT LUẬN VĂN
Web service là một ứng dụng Web có khả năng tương tác động với các ứng dụng Web
khác nhờ sử dụng các tiêu chuẩn mở như XML, UDDI và SOAP. Web service thêm vào
một mức chức năng mới trên đỉnh của kiến trúc Web hiện tại, cho phép sử dụng và kết
hợp các thành phần chức năng phân bố bên trong và bên ngoài các tổ chức.
Với sự phát triển vượt bậc của Web service, sự quan trọng của q trình tổng hợp các
Web service sẵn có thành một service phức tạp hơn để đạt được các giải pháp mới và hữu
dụng hơn đang ngày càng gia tăng. Qúa trình tổng hợp các service để đạt được một chức
năng mới rất cần thiết cho các hoạt động thương mại, các nghiên cứu khoa học và các
loại ứng dụng phân bố khác. Đặc biệt đối với vấn đề tự động tổng hợp, hệ thống cần phải
định nghĩa các luồng điều khiển và các luồng dữ liệu để hỗ trợ quá trình tổng hợp các
service riêng lẻ. Điều này vẫn cịn là một thách thức vơ cùng khó khăn trong việc ánh xạ
yêu cầu của người dùng thành một tập các service có tương quan với nhau mà output của
service này có thể thỏa mãn yêu cầu input của service khác và tổng hợp tất cả các service
này lại có thể thỏa mãn yêu cầu của người dùng.
Luận văn này đề xuất một bộ lập kế hoạch dựa trên các phần mềm mã nguồn mở
OWLS-Xplan và JGraphpad để tự động tổng hợp các service cơ bản được đặc tả bằng
ngôn ngữ OWL-S – một ngôn ngữ ontology dựa trên kỹ thuật Web ngữ nghĩa. Trong
trường hợp một mục tiêu có thể được thỏa mãn bởi nhiều hơn một service, giải thuật
backward-chaining áp dụng heuristic là lựa chọn service có số lượng input nhỏ nhất hoặc
lựa chọn service có thơng số tiền điều kiện dễ thỏa mãn nhất. Giải thuật tự động thực thi
sẽ gọi bản kế hoạch được tạo ra bởi bộ lập kế hoạch và xác định các dữ liệu cần thiết cho
việc gọi thực thi nhờ sử dụng các câu truy vấn thích hợp.
Trang iii
Xây dựng ứng dụng tự động tổng hợp Web service
ABSTRACT
A Web service is commonly known as a Web-based application that dynamically
interacts with other Web applications using open standards that include XML, UDDI and
SOAP. Web services have added a new level of functionality on top of the current Web,
enabling the use and combination of distributed functional components within and across
organizational boundaries.
With the growing number of Web services, importance of composing existing Web
services into more complex services in order to achieve new and more useful solutions is
increasing. Composing existing services to obtain new functionality is essential for
business, scientific and other types of distributed applications. Especially in automatic
composition, the system needs to define control and data-flow to guide the assembling
individual services. It is still a very challenging due to difficulty of mapping user needs to
a collection of correlated services where their interim outputs can satisfy each other input
requirements and the final deliverable meets the user demands.
This thesis proposes a planner based on OWLS-Xplan and JGraphpad open sources
that automatically composes atomic/basic services described in OWL-S, which is an
ontology language based on the Semantic Web technology. In cases where a goal can be
satisfied by more than one service, the backward chaining applying heuristics such as
selecting the service with the least number of inputs, or selecting services that have
preconditions that are known to be easily satisfiable. The automatic invocation algorithm
takes the plan generated by the planner and determines data required for invocation using
suitable queries.
Trang iv
Xây dựng ứng dụng tự động tổng hợp Web service
MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................................i
LỜI CẢM ƠN .........................................................................................................................ii
TÓM TẮT LUẬN VĂN ....................................................................................................... iii
ABSTRACT ...........................................................................................................................iv
MỤC LỤC ............................................................................................................................... v
DANH MỤC HÌNH ................................................................................................................ x
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ............................................................................ 1
1.1. Giới thiệu chung về đề tài ........................................................................................... 1
1.2. Tầm quan trọng và khả năng ứng dụng thực tế của đề tài .......................................... 3
1.3. Mục tiêu và giới hạn của đề tài ................................................................................... 5
1.3.1. Mục tiêu của đề tài ........................................................................................... 5
1.3.2. Giới hạn của đề tài ............................................................................................ 6
1.4. Phương pháp nghiên cứu và đánh giá kết quả ............................................................ 6
1.4.1. Phương pháp nghiên cứu ................................................................................. 6
1.4.2. Đánh giá kết quả ............................................................................................... 7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI ............................................................. 8
2.1. World Wide Web ........................................................................................................ 8
2.2. Service Oriented Architecture (SOA) ......................................................................... 8
2.3. Web service ................................................................................................................ 9
2.3.1. Tổng quan về Web service ................................................................................ 9
2.3.2. Kiến trúc của Web service .............................................................................. 10
2.3.3. Ưu điểm của Web service ............................................................................... 11
2.4. Web ngữ nghĩa .......................................................................................................... 11
2.4.1. RDF ................................................................................................................. 12
2.4.2. RDF schema .................................................................................................... 13
2.4.3. OWL ............................................................................................................... 13
2.4.4. OWL-S ............................................................................................................. 14
Trang v
Xây dựng ứng dụng tự động tổng hợp Web service
2.5. Workflow .................................................................................................................. 15
2.6. Tổng hợp workflow .................................................................................................. 16
2.7. Protégé ...................................................................................................................... 21
2.7.1. Tổng quan về Protégé ..................................................................................... 21
2.7.2. Phân loại Protégé ............................................................................................ 21
2.7.3. Các đặc trưng của Protégé-OWL .................................................................... 23
2.8. Jena ............................................................................................................................ 23
2.8.1. Tổng quan về Jena .......................................................................................... 23
2.8.2. Các đặc trưng của Jena .................................................................................... 24
2.8.3. Kiến trúc của Jena ........................................................................................... 24
2.9. Jess ............................................................................................................................ 26
2.9.1. Tổng quan về Jess ........................................................................................... 26
2.9.2. Các đặc trưng của Jess .................................................................................... 27
2.10. OWLS-API ............................................................................................................... 27
2.10.1. Tổng quan về OWLS-API ............................................................................... 27
2.10.2. Các đặc trưng của OWLS-API ........................................................................ 27
2.11. OWLS-Xplan ......................................................................................................... 28
2.11.1. Tổng quan về OWLS-Xplan ........................................................................... 28
2.11.2. Các đặc trưng của OWLS-Xplan .................................................................... 30
2.12. JGraph ..................................................................................................................... 30
2.12.1. Tổng quan về JGraph ....................................................................................... 30
2.12.2. Các đặc trưng của JGraph ................................................................................ 31
2.13. JGraphpad ............................................................................................................... 32
2.13.1. Tổng quan về JGraphpad ................................................................................. 32
2.13.2. Các đặc trưng của JGraphpad .......................................................................... 32
2.13.3. Tiêu chí thiết kế, hiện thực JGraphpad ........................................................... 32
2.14. Nano XML Parser .................................................................................................. 33
2.14.1. Tổng quan về Nano .......................................................................................... 33
2.14.2. Các đặc trưng của Nano ................................................................................... 34
CHƯƠNG 3: PHÂN TÍCH CÁC GIẢI PHÁP TỔNG HỢP SERVICE ......................... 39
Trang vi
Xây dựng ứng dụng tự động tổng hợp Web service
3.1.
BPEL ...................................................................................................................... 39
3.2.
Các hướng nghiên cứu khác ................................................................................... 42
3.3.
Hướng nghiên cứu của tác giả Berardi .................................................................. 46
3.4.
Hướng nghiên cứu của tác giả Mithun .................................................................. 48
3.5.
Phần mềm mã nguồn mở OWLS-Xplan ................................................................ 49
3.6.
Nhận xét về các hướng nghiên cứu ........................................................................ 51
3.7.
Nhận xét về hướng nghiên cứu của tác giả Mithun ............................................... 52
3.8.
Nhận xét về phần mềm OWLS-Xplan ................................................................... 54
CHƯƠNG 4: YÊU CẦU THIẾT KẾ VÀ KIẾN TRÚC CỦA ỨNG DỤNG .................... 54
4.1.
Yêu cầu thiết kế ứng dụng ..................................................................................... 54
4.2.
Kiến trúc của ứng dụng .......................................................................................... 54
4.3.
Các phần mềm hiện thực kiến trúc ........................................................................ 57
4.4.
Kế hoạch hiện thực ứng dụng ................................................................................ 58
4.5.
Giải thuật sử dụng trong hiện thực ứng dụng ........................................................ 60
4.5.1. Giải thuật lựa chọn service tốt nhất ................................................................ 60
4.5.2. Giải thuật tổng hợp service ............................................................................. 61
CHƯƠNG 5: HIỆN THỰC ỨNG DỤNG .......................................................................... 62
5.1.
Cải tiến JGraph ...................................................................................................... 62
5.1.1. JGraph.java trong gói org.jgraph .................................................................... 63
5.1.2. GraphUI.java trong gói org.jgraph.plaf ........................................................... 68
5.1.3. BasicGraphUI.java trong gói org.jgraph.plaf.basic ....................................... 69
5.2.
Cải tiến JGraphpad ................................................................................................. 70
5.2.1. JgraphpadAboutDialog.java trong gói com.jgraph.pad.dialog ....................... 72
5.2.2. JgraphpadPane.java trong gói com.jgraph.pad.factory ................................... 74
5.2.3. EditorGraph.java trong gói planner ................................................................ 74
5.3.
Hiện thực mới Editor ............................................................................................. 75
5.3.1. Mục tiêu .......................................................................................................... 75
5.3.2. Cách hiện thực ................................................................................................ 75
5.3.3. Các phần hiện thực quan trọng ....................................................................... 77
Trang vii
Xây dựng ứng dụng tự động tổng hợp Web service
5.4.
5.3.3.1.
Lấy các thông tin trạng thái từ file ontology ..................................... 77
5.3.3.2.
Tạo ra initial file ................................................................................ 79
5.3.3.3.
Tạo ra goal file .................................................................................. 80
Hiện thực mới Planner .......................................................................................... 80
5.4.1. Mục tiêu .......................................................................................................... 80
5.4.2. Cách hiện thực ................................................................................................ 81
5.4.3. Các phần hiện thực quan trọng ....................................................................... 83
5.4.3.1.
Kiểm tra initial file và goal file ......................................................... 83
5.4.3.2.
Tạo ra domain file và problem descrition file ................................... 84
5.4.3.3.
Tạo các đối số cần thiết cho việc khởi tạo bản kế hoạch .................. 85
5.4.3.4.
Tạo ra kế hoạch tổng hợp các service ............................................... 86
CHƯƠNG 6: THỰC NGHIỆM ........................................................................................... 89
6.1.
Mục tiêu của thực nghiệm ...................................................................................... 89
6.2.
Thiết lập môi trường thực nghiệm ......................................................................... 89
6.3.
Tiến hành thực nghiệm .......................................................................................... 90
6.3.1. Thí nghiệm 1 .................................................................................................... 90
6.3.2. Thí nghiệm 2 ................................................................................................... 91
6.3.3. Thí nghiệm 3 .................................................................................................... 92
6.3.4. Thí nghiệm 4 ................................................................................................... 93
6.4.
Đánh giá ................................................................................................................. 95
6.4.1. Đánh giá định tính ........................................................................................... 95
6.4.2. Đánh giá định lượng ........................................................................................ 96
6.5.
Kết luận .................................................................................................................. 96
CHƯƠNG 7: KẾT LUẬN .................................................................................................... 97
7.1.
Tổng kết ................................................................................................................. 97
7.2.
Những đóng góp của đề tài .................................................................................... 97
7.3.
Hướng phát triển .................................................................................................... 98
TÀI LIỆU THAM KHẢO .................................................................................................. 100
Trang viii
Xây dựng ứng dụng tự động tổng hợp Web service
PHỤ LỤC 1 .......................................................................................................................... 103
PHỤ LỤC 2 .......................................................................................................................... 104
PHỤ LỤC 3 .......................................................................................................................... 109
PHỤ LỤC 4 .......................................................................................................................... 115
Trang ix
Xây dựng ứng dụng tự động tổng hợp Web service
DANH MỤC HÌNH
Hình 1.1 Web service với các input đầu vào và các output đầu ra .................................... 1
Hình 1.2 Mơ hình tương tác giữa người dùng và hệ thống ............................................... 3
Hình 1.3 Hệ thống không hỗ trợ tổng hợp service không chấp nhận yêu cầu của người
dùng .................................................................................................................................... 4
Hình 1.4 Hệ thống hỗ trợ tổng hợp service chấp nhận yêu cầu người dùng .................... 5
Hình 2.1 Kiến trúc SOA .................................................................................................... 9
Hình 2.2 Các kỹ thuật được dùng trong Web service ..................................................... 10
Hình 2.3 Kiến trúc Web service ....................................................................................... 11
Hình 2.4 Minh họa mơ hình bộ ba của RDF .................................................................... 12
Hình 2.5 Minh họa RDFS ................................................................................................. 13
Hình 2.6 Ví dụ về cú pháp OWL ...................................................................................... 14
Hình 2.7 Mơ hình OWL-S ................................................................................................ 15
Hình 2.8 Minh họa Workflow .......................................................................................... 16
Hình 2.9 Minh họa mơ hình tổng hợp Web service ......................................................... 17
Hình 2.10 Mơ hình orchestration...................................................................................... 18
Hình 2.11 Mơ hình choreography .................................................................................... 19
Hình 2.12 Minh họa mơ hình tổng hợp quy trình kinh doanh .......................................... 20
Hình 2.13 Trình soạn thảo Protégé-Frames ...................................................................... 22
Hình 2.14 Trình soạn thảo Protégé-OWL ........................................................................ 23
Hình 2.15 Kiến trúc của Jena ........................................................................................... 26
Hình 2.16 Sử dụng OWLS-Xplan để tạo ra bản kế hoạch ............................................... 30
Hình 2.17 YAWL Editor tối ưu JGraph để hiện thực các cơng cụ cần thiết .................... 31
Hình 2.18 Giao diện làm việc của JGraphpad ................................................................. 32
Hình 2.19 Q trình phân tích của NanoXML ................................................................. 34
Hình 3.1 Một quy trình kinh doanh đặc tả bằng BPEL .................................................... 39
Hình 3.2 Cấu trúc của BPEL ............................................................................................ 40
Hình 3.3 Minh họa quy trình BPEL đặc tả các Web service............................................ 41
Hình 3.4 Mơ hình tương tác dự kiến giữa bộ lập kế hoạch và BPEL .............................. 42
Hình 3.5 So sánh giữa các phương pháp tổng hợp Web service ...................................... 46
Hình 3.6 Kiến trúc framework của tác giả Berardi ......................................................... 47
Hình 3.7 Kiến trúc hệ thống của tác giả Mithun .............................................................. 49
Hình 3.8 Kiến trúc của OWLS-Xplan .............................................................................. 50
Hình 3.9 Giao diện làm việc của OWLS-Xplan ............................................................... 51
Hình 4.1 Kiến trúc của ứng dụng ..................................................................................... 56
Hình 4.2 Tương tác giữa người dùng và ứng dụng .......................................................... 57
Hình 4.3 Các phần mềm được sử dụng để hiện thực ứng dụng ....................................... 58
Hình 4.4 Các bước hiện thực ứng dụng ............................................................................ 59
Trang x
Xây dựng ứng dụng tự động tổng hợp Web service
Hình 5.1 Cấu trúc tổ chức của gói JGraph ....................................................................... 62
Hình 5.2 Các lớp cần chỉnh sửa của gói Jgraph ............................................................... 63
Hình 5.3 Nhập thơng tin về nơi đến và nơi đi của Hospital ............................................. 64
Hình 5.4 Phải nhập các thơng tin về Airport, Patient và Flight parameters trước khi nhập
thông tin về Flight.............................................................................................................. 65
Hình 5.5 Thiếu nhập các thơng tin bắt buộc trước khi chọn trạng thái End .................... 66
Hình 5.6 Hệ thống hỏi người dùng có muốn nhập thơng tin tùy chọn Airport tự động hay
khơng? .............................................................................................................................. 66
Hình 5.7 Một workflow hoàn chỉnh đặc tả yêu cầu của người dùng ............................... 68
Hình 5.8 Hiển thị tên trong component của workflow như Start, Time, Patient ............. 69
Hình 5.9 Cấu trúc tổ chức của JGraphpad ........................................................................ 71
Hình 5.10 Các phần chỉnh sửa của JGraphpad ................................................................. 72
Hình 5.11 Hiển thị About dialog của ứng dụng ............................................................... 73
Hình 5.12 Hình splash khi khởi tạo ứng dụng .................................................................. 75
Hình 5.13 Các trạng thái của đối tượng dựa trên đặc tả của ontology ............................ 76
Hình 5.14 Một workflow hợp lệ đặc tả yêu cầu người dùng............................................ 76
Hình 5.15 Tạo ra initial file và goal file sau khi vẽ xong workflow đặc tả ...................... 77
Hình 5.16 Tạo ra domain file và problem description file thành công ............................ 81
Hình 5.17 Tạo ra domain file và problem description file thất bại .................................. 81
Hình 5.18 Một phần của bản kế hoạch tổng hợp các service ........................................... 82
Hình 5.19 Đồ thị tổng hợp các service ............................................................................. 83
Hình 5.20 Thanh progress bar chuyển các service từ dạng OWL-S sang XML .............. 85
Hình 5.21 Một phần của file *_plan.xml – đặc tả bản kế hoạch tổng hợp service .......... 87
Hình 5.22 Đồ thị biểu diễn kế hoạch tổng hợp các service .............................................. 88
Trang xi
Xây dựng ứng dụng tự động tổng hợp Web service
CHƯƠNG 1
TỔNG QUAN VỀ ĐỀ TÀI
1.1. Giới thiệu chung về đề tài
Một Web service là một ứng dụng trên Web có khả năng tương tác linh động với
các ứng dụng trên Web khác nhờ sử dụng chung các tiêu chuẩn mở như XML, UDDI và
SOAP. Web service là nền tảng kỹ thuật cơ bản cho nhiều ứng dụng phổ biến như eCommerce, Grid computing, Service Oriented Computing, và Cloud computing. Web
service thêm vào một mức chức năng mới bổ sung thêm vào kiến trúc hệ thống Web hiện
tại, nhờ vậy Web service cho phép sử dụng và kết hợp các thành phần chức năng được
phân bố trong và ngoài tổ chức [25]. Hình bên dưới mơ tả một Web service tiêu biểu.
Hình 1.1 Web service với các input đầu vào và các output đầu ra
Với sự phát triển vượt bậc của Web service trong những năm qua, tầm quan trọng
của việc tổng hợp các Web service đang tồn tại thành một service mới phức tạp hơn để
đạt được những giải pháp mới và hữu dụng hơn đang ngày càng gia tăng. Thật vậy, quá
trình tổng hợp các service giúp gia tăng q trình phát triển ứng dụng, gia tăng tính thừa
kế các service đang có sẵn trong hệ thống, hạn chế công sức xây dựng và phát triển các
service phức tạp. Nhờ vậy, việc tổng hợp các service đang có sẵn thành một service mới
rất cần thiết cho các hoạt động kinh doanh, các nghiên cứu khoa học và đặc biệt đối với
các ứng dụng phân bố. Tuy nhiên, quá trình tổng hợp các service thường được thực hiện
một cách thủ công hoặc bán tự động – điều này vô cùng bất tiện, đặc biệt trong các
trường hợp tổng hợp phức tạp. Do đó bài tốn tự động tổng hợp các Web service vẫn
đang là một vấn đề thử thách hiện nay.
Đến thời điểm hiện tại, có nhiều hướng nghiên cứu khác nhau cả trong nghiên cứu
lẫn trong thương mại nhằm tạo ra các tiêu chuẩn cho mục tiêu tổng hợp Web service. Các
Trang 1
Xây dựng ứng dụng tự động tổng hợp Web service
phương pháp tổng hợp khá đa dạng, từ cách làm thủ cơng đến cách làm bán tự động và tự
động hồn toàn. Một trong những giải pháp phổ biến là sử dụng BPEL4WS [3] (Business
Process Execution Language for Web Services) kết nối tĩnh giữa các service lại với nhau.
Ngoài ra, các hướng nghiên cứu khác như dự án SWORD [4] hỗ trợ quá trình tổng hợp ở
mức bán tự động nhưng không hỗ trợ các tiêu chuẩn phổ biến WSDL và OWL-S; dự án
Semantic E-Workflow [4] thực hiện quá trình tổng hợp service một cách thủ công; dự án
SHOP2[4] cũng chỉ hỗ trợ quá trình tổng hợp ở mức bán tự động. Rõ ràng việc tự động
tổng hợp các Web service vẫn còn là một thách thức lớn bởi lẻ trong hệ thống tự động
tổng hợp service, hệ thống cần phải định nghĩa các luồng điều khiển và luồng dữ liệu để
giúp cho việc tổng hợp các service riêng lẻ được khả thi. Điều này vẫn còn là một vấn đề
phức tạp do khó khăn trong việc ánh xạ yêu cầu của người dùng với tập các service liên
quan, thích hợp mà output của service này có thể thỏa mãn yêu cầu input của service kia
và tổng thể quá trình tổng hợp các service này thỏa mãn đúng yêu cầu của người dùng.
Từ các vấn đề trên, ta đưa ra bài toán cần giải quyết như sau: Xây dựng ứng dụng
tự động tổng hợp các Web service. Ý nghĩa của bài tốn như sau: Đầu tiên, người dùng
sẽ nhập vào thơng tin về service họ cần. Lúc này, hệ thống sẽ kiểm tra xem với các
service sẵn có, hệ thống có thể đáp ứng được yêu cầu về service mà người dùng yêu cầu
hay không? Trong trường hợp đơn giản, một service riêng lẻ của hệ thống có thể thỏa
mãn yêu cầu của người dùng, service này sẽ được cung cấp cho người dùng. Trong
trường hợp phức tạp hơn, yêu cầu service của người dùng không thể thỏa mãn bởi bất kỳ
một service riêng lẻ bất kỳ nào của hệ thống. Tuy nhiên, nếu yêu cầu service của người
dùng có thể chia thành nhiều yêu cầu nhỏ hơn và mỗi yêu cầu nhỏ hơn này có thể được
làm thỏa mãn bởi một service riêng lẻ nào đó thì u cầu của service này vẫn có thể được
phục vụ bởi hệ thống. Khi đó, một q trình tổng hợp các service cần thiết trên sẽ được
thực hiện và cung cấp kết quả của q trình này cho người dùng. Mơ hình tương tác giữa
người dùng và hệ thống được minh họa như hình vẽ bên dưới.
Trang 2
Xây dựng ứng dụng tự động tổng hợp Web service
Our System
Request
Service A
Composition
Service
Service C
Service B
Service D
Service C
User
Response
Service D
Service A
Service B
Hình 1.2 Mơ hình tương tác giữa người dùng và hệ thống
1.2. Tầm quan trọng và khả năng ứng dụng vào thực tế của đề tài
Ta minh họa một ví dụ đơn giản bên dưới cho thấy tầm quan trọng của đề tài. Giả
sử hệ thống này có 5 Web service riêng lẻ: “Traveltopia service” có chức năng quản lý
các chuyến du lịch, “eFlights service” có chức năng quản lý các chuyến bay, “Opodo
service” có chức năng là một đại lý du lịch đến các nước Châu Âu, “eHotel service” có
chức năng quản lý các khách sạn nổi tiếng trên thế giới, “ItalianHotels service” có chức
năng kiểm tra một khách sạn phải ở Ý hay không. Yêu cầu của người dùng trong ngữ
cảnh này là: Đi du lịch ở Ý và ở khách sạn, đặt chuyến bay ở gần sân bay. Rất dễ nhận ra
rằng yêu cầu này của người dùng không thể được chấp nhận bởi bất kỳ Web service nào
có sẵn của hệ thống hiện tại, ngữ cảnh này được minh họa như hình bên dưới.
Trang 3
Xây dựng ứng dụng tự động tổng hợp Web service
Hình 1.3 Hệ thống không hỗ trợ tổng hợp service
không chấp nhận yêu cầu của người dùng
Ta nhận thấy rằng: yêu cầu này rõ ràng rất phức tạp, đòi hỏi nhiều điều kiện cần
phải thỏa mãn cùng lúc. Nếu hệ thống không hỗ trợ việc tổng hợp các service hay tạo ra
các service mới dựa trên các service đang có, yêu cầu này sẽ bị từ chối ngay lập tức, được
minh họa như hình ở trên. Tuy nhiên, khi phân tích yêu cầu của người dùng, ta nhận thấy
rằng với các service hiện tại, hệ thống vẫn có thể đáp ứng yêu cầu của người dùng. Thật
vậy, yêu cầu của người dùng có thể phân nhỏ thành 2 yêu cầu nhỏ hơn: yêu cầu 1 là đặt
chuyến bay đến Ý và yêu cầu 2 là tìm chỗ ở khách sạn ở Ý. Yêu cầu 1 có thể giải quyết
bằng cách kết hợp các service như sau {Traveltopia service + eFlights service + Opodo
service: kết hợp service quản lý du lịch + service quản lý các chuyến bay + service quản
lý du lịch tới các nước Châu Âu}, yêu cầu 2 cũng có thể được giải quyết bằng cách kết
hợp các service như sau {eHotel service + ItalianHotels service: kết hợp service quản lý
các khách sạn trên thế giới + service các khách sạn ở Ý}. Do cả 2 yêu cầu nhỏ này đều có
thể được giải quyết thành cơng nên u cầu của người dùng được chấp nhận nếu hệ thống
hỗ trợ việc tổng hợp các service từ các service đang có. Hình bên dưới cho thấy u cầu
trên của người dùng được thỏa mãn nhờ sự tổng hợp các service bên trong hệ thống.
Trang 4
Xây dựng ứng dụng tự động tổng hợp Web service
Hình 1.4 Hệ thống hỗ trợ tổng hợp service chấp nhận
yêu cầu phức tạp của người dùng
Ví dụ trên cho ta thấy được tầm quan trọng của việc tổng hợp các service bên trong
hệ thống. Tuy nhiên, có một vấn đề đặt ra rằng: ở ví dụ trên chỉ có 5 service và một yêu
cầu của người dùng tương đối phức tạp mà để thỏa mãn yêu cầu này, ta phải phân tích,
lựa chọn kỹ càng và phối hợp chính xác các service cần thiết. Nếu số lượng service lên
con số hàng trăm, thậm chí hàng ngàn thì với cách làm thủ cơng như hiện tại, thời gian để
tìm ra đáp án là hệ thống với các service đang tồn tại có thể đáp ứng được yêu cầu của
người dùng hay khơng sẽ vơ cùng lớn. Khuyết điểm chính của vấn đề này là do quá trình
tổng hợp service được thực hiện theo cách thủ công hay bán tự động. Do đó yêu cầu tự
động tổng hợp service là một bài tốn vơ cùng cần thiết và phù hợp với thực tiễn. Từ thực
tế này, có thể khẳng định rằng bài toán tự động tổng hợp các service sẽ hữu dụng cho các
ứng dụng thực tế, cả trong nghiên cứu lẫn trong doanh nghiệp công ty.
1.3. Mục tiêu và giới hạn của đề tài
1.3.1. Mục tiêu của đề tài
• Phát triển cách mô tả ngữ nghĩa của Web service để phục vụ cho quá trình tự
động tổng hợp các Web service.
Trang 5
Xây dựng ứng dụng tự động tổng hợp Web service
• Nghiên cứu và xây dựng giải thuật lựa chọn service tốt nhất trong số các
service cùng có khả năng thỏa mãn một mục tiêu.
• Xây dựng prototype hiện thực các phương pháp trên.
• Tối ưu giải thuật tự động tổng hợp các service.
• Đánh giá giải thuật tự động tổng hợp này.
1.3.2. Giới hạn của đề tài
• Hiện tại, có hai loại Web service được sử dụng nhiều trong thực tế. Loại thứ
nhất là Web service có trạng thái, được sử dụng nhiều trong các hệ thống tính
tốn lưới. Mỗi hành động của service sẽ tùy thuộc vào trạng thái của service ở
thời điểm đó. Loại Web service thứ hai là Web service khơng có trạng thái,
được sử dụng nhiều trong thực tiễn và nghiên cứu. Các Web service này có các
input đầu vào và các output đầu ra xác định. Đề tài này sẽ tập trung giải quyết
và xử lý trên các Web service khơng có trạng thái.
• Trong nhiều hệ thống, trạng thái của tài nguyên nói chung và service nói riêng
có hai trạng thái là sẵn sàng và không sẵn sàng. Service ở trạng thái sẵn sàng
khi khơng có tài ngun hay hệ thống nào sử dụng nó, và ngược lại khi có một
tài nguyên hoặc hệ thống sử dụng, service ở trạng thái không sẵn sàng. Đề tài
này làm việc trên các Web service của hệ thống được giả định là luôn ở trạng
thái sẵn sàng.
1.4. Phương pháp nghiên cứu và đánh giá kết quả
1.4.1. Phương pháp nghiên cứu
Để đạt được mục tiêu của đề tài, cần phải hồn thiện theo thứ tự các bước sau:
• Tìm hiểu các hướng nghiên cứu hiện tại. Từ đó rút ra được các điểm hạn chế
cần khắc phục, tối ưu.
• Tìm hiểu cách khai báo và đặc tả Web service. Qua đó, nhận ra khuyết điểm
của cách mơ tả ngữ nghĩa của các Web service và đề ra phương thức cải tiến
cách mô tả này để phục vụ cho q trình tổng hợp service.
• Tìm hiểu giải thuật tự động tổng hợp các service để nhận ra cách tiếp cận và
cách thêm một tiêu chí mới vào trong giải thuật đang có. Nhờ vậy có thể xây
Trang 6
Xây dựng ứng dụng tự động tổng hợp Web service
dựng được giải thuật mới tự động tổng hợp các service phù hợp với tiêu chí
đưa ra.
• Tiến hành đánh giá kết quả của giải thuật mới này, và kiểm tra xem có phù hợp
với mục tiêu của đề tài hay không.
1.4.2. Đánh giá kết quả
Để kiểm tra xem mục tiêu của đề tài có thỏa mãn được hay khơng, ta phải tiến hành
đánh giá kết quả đạt được theo thứ tự các bước sau:
• Thiết lập mơi trường thực nghiệm.
• Tạo ra các Web service cơ bản của hệ thống, đặc biệt phải xây dựng nhiều
service có khả năng cùng thỏa mãn một mục tiêu nào đó nhưng có số lượng
input khác nhau hoặc tham số các tiền điều kiện khác nhau.
• Tạo ra các yêu cầu của người dùng, trong đó mỗi yêu cầu này chỉ có thể được
thỏa mãn bằng cách tổng hợp các service đang tồn tại của hệ thống.
• Dựa vào sự tổng hợp các service thỏa mãn các yêu cầu trên của người dùng,
tiến hành thống kê xem service được chọn có phải là service tốt nhất trong số
các service có cùng khả năng thỏa mãn mục tiêu này hay không.
Đánh giá số liệu thống kê cho biết service được chọn có phải là service tốt nhất hay
khơng. Nếu xác suất này q thấp thì chứng tỏ là tiêu chí mới đã khơng đạt được
mục tiêu của đề tài. Ngược lại, bằng thực nghiệm, tiêu chí mới đã minh chứng tích
hợp thành cơng vào hệ thống cũ và mục tiêu của đề tài đã đạt được.
Trang 7
Xây dựng ứng dụng tự động tổng hợp Web service
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
2.1.
World Wide Web
World Wide Web hay còn gọi là web – là tập hợp các tài liệu gắn kết với nhau, trong
đó các tài liệu này được viết theo định dạng (X)HTML, được truy xuất thông qua các giao
thức chuẩn như HTTP, HTTPS … Và các tài liệu này có thể được nhận dạng thông qua
các URIs.
HTTP là giao thức phổ biến cho việc truyền/nhận các tài liệu trên web, HTML là
định dạng dùng để biểu diễn các tài liệu và các kết nối của nó trên web. Tuy nhiên, người
dùng có thể sử dụng các giao thức khác HTTP cho việc trao đổi thơng tin trên web. Ví dụ
như người dùng có thể sử dụng giao thức FTP, SMTP và SOAP [25]. Mặc dù HTML khá
phổ biến và thường được sử dụng cho việc biểu diễn các tài liệu Web, vẫn có rất nhiều
các định dạng cho việc biểu diễn dữ liệu trên Web đang ra đời và phát triển. Ví dụ như
định dạng PNG, CSS, XML và các định dạng dựa trên XML như XHTML,…
2.2.
Service Oriented Architecture (SOA)
SOA là sự phát triển của mơ hình tính tốn phân bố dựa trên kiến trúc thiết kế yêu
cầu/trả lời phục vụ cho các ứng dụng đồng bộ và bất đồng bộ. Các luận lý kinh doanh
hoặc các hàm chức năng riêng lẻ của ứng dụng được chuẩn hóa và được biễu diễn dưới
dạng một service đối với các ứng dụng của người dùng. Vấn đề chính đối với các
service này là khả năng kết nối lỏng – interface của service độc lập với phần hiện thực
bên dưới. Các nhà phát triển ứng dụng hoặc các nhà tích hợp hệ thống có thể xây dựng
các ứng dụng bằng cách kết hợp một hoặc nhiều service mà không cần biết chi tiết hiện
thực bên dưới của các service này. Ví dụ, một service có thể được hiện thực bằng .Net
hoặc Java, và ứng dụng có thể được triển khai trên các hệ thống hay hệ điều hành khác
nhau.
Kiến trúc SOA có các đặc tính nổi bật sau:
• Các service có các interface có khả năng tự đặc tả, độc lập với các tài liệu XML.
WSDL là kỹ thuật phổ biến dùng để đặc tả các service.
• Các service kết nối với các thơng điệp chính thức được định nghĩa thông qua
XML Schema. Sự kết nối giữa người dùng và nhà cung cấp hoặc giữa các
service thường được diễn ra trong môi trường không đồng nhất – khơng hoặc
biết rất ít thơng tin về nhà cung cấp.
Trang 8
Xây dựng ứng dụng tự động tổng hợp Web service
• Các service được lưu trữ trong sổ đăng ký registry – đóng vai trị như một danh
sách thư mục. Các ứng dụng có thể tìm kiếm các service cần thiết trong registry
và gọi service này. UDDI là kỹ thuật phổ biến dùng để đặc tả các registry.
• Mỗi service có thông số chất lượng service gắn liền với service. Một vài các
phần tử chất lượng dịch vụ là yêu cầu bảo mật, như sự xác định quyền và sự
thẩm định quyền, trao đổi thơng điệp tin cậy và các chính sách liên quan đến
việc cho phép ai có quyền gọi service này.
Hình 2.1 Kiến trúc SOA [27]
SOA có nhiều cách hiện thực. Trong những năm gần đây, Web service là một trong
những kỹ thuật phổ biến dùng để hiện thực SOA. Trong phần kế tiếp, ta sẽ trình bày về
Web service.
2.3.
Web service
2.3.1.
Tổng quan về Web service
Web service – được tổ chức W3C định nghĩa là một hệ thống phần mềm được
thiết kế để hỗ trợ sự tương tác giữa các máy tình với nhau thơng qua mơi trường
mạng được tương thích. Cụ thể hơn, khái niệm Web service đặc tả một tiêu chuẩn
chung cho việc tích hợp các ứng dụng Web nhờ sử dụng các tiêu chuẩn mở phổ biến
như XML, SOAP, WSDL và UDDI [25] dựa hoàn toàn trên các giao thức Internet.
Trong đó, XML dùng để tạo ra các thẻ dữ liệu, SOAP dùng để truyền dữ liệu, WSDL
dùng để đặc tả các service đang sẵn sàng và UDDI dùng để liệt kê danh sách các
service đang sẵn sàng. Được sử dụng làm phương tiện giao dịch chủ yếu cho việc
Trang 9
Xây dựng ứng dụng tự động tổng hợp Web service
tương tác giữa các hệ thống, ứng dụng, Web service cho phép các tổ chức có thể kết
nối dữ liệu mà khơng cần có kiến thức về cơ cấu tổ chức dữ liệu của tổ chức khác.
Khơng giống như mơ hình client/server truyền thống, cũng không giống như hệ
thống Web server/ trang web, Web service không cung cấp giao diện người dùng.
Thay vào đó, Web service chia sẻ các yêu cầu nghiệp vụ, dữ liệu và các quy trình
thơng qua một giao diện lập trình trên mạng. Những người phát triển có thể thêm các
Web service khác vào trong giao diện này (như các trang Web hoặc một chương
trình thực thi được) để cung cấp chức năng cụ thể này cho các người dùng khác.
Web service cho phép các ứng dụng khác nhau từ các nguồn khác nhau có thể kết
nối được với nhau mà khơng tốn thời gian lập trình, bởi lẻ tất cả các kết nối ở dạng
XML, các Web service không bị gắn chặt vào một hệ điều hành nhất định hoặc một
ngơn ngữ lập trình nhất định, Ví dụm Java có thể làm việc chung với Perl, ứng dụng
Windows có thể làm việc chung với các ứng dụng UNIX.
Web service khơng u cầu sử dụng các trình duyệt như IE, Firefox,.. Web
service đôi khi cũng được gọi là application service.
Hình 2.2 Các kỹ thuật được dùng trong Web service [27]
2.3.2.
Kiến trúc của Web service
Kiến trúc của Web service cần có 3 hành động cơ bản: xuất bản (publish), tìm
kiếm (find) và gắn kết (bind). Nhà cung cấp dịch vụ (service provider) sẽ xuất bản
dịch vụ cho nhà môi giới dịch vụ (service registry). Người yêu cầu dịch (service
Trang 10
Xây dựng ứng dụng tự động tổng hợp Web service
requester) vụ sẽ tìm kiếm các dịch vụ cần thiết thơng qua nhà môi giới dịch vụ và gắn
kết với các service tìm thấy thích hợp. Ý tưởng trên được minh họa như hình vẽ 2.2
2.3.3.
Ưu điểm của Web service
Gia tăng tính tương thích bằng cách làm giảm đi yêu cầu chia sẻ tri thức, sự
hiểu biết.
Cho phép khả năng tích hợp nhanh chóng (just-in-time).
Làm giảm độ phức tạp bằng cách gói gọn, bao đóng.
Cho phép tương thích dễ dàng với các ứng dụng cũ (legacy).
Hình 2.3 Kiến trúc Web service [27]
2.4.
Web ngữ nghĩa
XML (EXtensible Markup Language) là một chuẩn mở dùng để đặc tả dữ liệu của tổ
chức WEC. XML được dùng để định nghĩa các phần tử dữ liệu trên trang Web và các tài
liệu thương mại. XML sử dụng các cấu trúc thẻ tương tự như HTML, tuy nhiên trong khi
HTML định nghĩa các phần tử được hiển thị như thế nào thì XML định nghĩa các phần tử
sẽ chứa cái gì. Trong khi HTML sữ dụng các thẻ được định nghĩa trước thì XML cho
phép các thẻ được định nghĩa bởi người sử dụng [27].
Trang 11
Xây dựng ứng dụng tự động tổng hợp Web service
Tuy nhiên, khuyết điểm chính của XML là các tài liệu XML không diễn đạt được ý
nghĩa của dữ liệu trong tài liệu XML. Ngôn ngữ schema như XML schema cho phép ràng
buộc các định dạng, nhưng không cho phép ràng buộc các ý nghĩa của dữ liệu XML [8].
Việc trao đổi các tài liệu XML trên web chỉ có thể khả thi khi các bên tham gia trong quá
trình trao đổi phải đồng ý tuân theo một định dạng cấu trúc đã được thống nhất trước
(thường được biểu diễn bằng XML schema) của dữ liệu và ý nghĩa của các từ khóa và cấu
trúc hình thành nên tài liệu XML. Web ngữ nghĩa cho phép việc biểu diễn và trao đổi
thơng tin theo cách có ngữ nghĩa, tận dụng việc xử lý tự động dựa trên các đặc tả trên
web.
Sự chú thích trên ngữ nghĩa web biểu diễn các liên kết giữa các thông tin tài nguyên
trên web và kết nối các thông tin tài nguyên này thành các thuật ngữ hình thức – các cấu
trúc kết nối này được gọi là mơ hình ontology, trong đó các mơ hình này tạo nên khung
sườn của ngữ nghĩa web. Nhờ vậy mà nó cho phép các máy tính có thể hiểu được thông
tin thông qua các kết nối giữa các tài ngun thơng tin và các từ khóa trong các mơ hình.
Hơn nữa, các mơ hình này làm cho dễ dàng cho việc tương thích giữa các thơng tin tài
ngun thơng qua các kết nối đến các mơ hình giống nhau hoặc giữa các mơ hình với
nhau.
Ngơn ngữ dùng để tạo kết nối giữa các tài nguyên và các tài nguyên được chú thích
ngữ nghĩa với các kết nối tới các mơ hình trong web ngữ nghĩa là RDF. Có 2 ngơn ngữ
mơ hình web ngữ nghĩa được tổ chức W3C đề nghị là RDF schema và OWL (Ontology
Web Language).
2.4.1.
RDF (Resource Description Framework)
RDF [10] xây dựng trên mơ hình bộ ba chủ thể - vị từ - vật thể (subject –
predicate – object), thường được viết là s-p-o, dưới dạng các mơ hình dữ liệu cơ bản.
Một vật thể trong bộ ba trên có thể là một chức năng nào đó, và chủ thể của bộ ba
trên cũng có vai trị tương tự như vật thể, tạo ra các đồ thị nhãn có hướng. Trong khi
đó các tài nguyên tương ứng với các node và các vị từ tương ứng với các cạnh. Ngoài
ra, RDF cho phép một dạng reification (một câu lệnh về một câu lệnh nào đó), có
nghĩa là một câu lệnh RDF có thể được sử dụng như là chủ thể trong một bộ ba nào
đó. Cuối cùng, RDF có một khái niệm là node trống (bNode), là các node mà khơng
có tên. Hình bên dưới minh họa mơ hình bộ ba của RDF.
Hình 2.4 Minh họa mơ hình bộ ba của RDF
Trang 12
Xây dựng ứng dụng tự động tổng hợp Web service
Về nguyên tắc, RDF được xây dựng trên nền tảng XML. RDF khơng phải là mở
rộng của XML, nhưng XML có thể được sử dụng để mô tả và trao đổi các câu lệnh
RDF theo chuẩn RDF/XML. Thực chất, RDF/XML là chuẩn cú pháp cho RDF.
Ngồi nó ra, cịn rất nhiều cú pháp khác cho RDF mà các cú pháp này thích hợp với
sự sử dụng của con người, ví dụ như là cú pháp Turtle [26] – nhưng các cú pháp này
không xử lý phần trao đổi RDF.
2.4.2.
RDF Schema
RDF Schema [10] (RDFS) có thể được xem như là mở rộng của RDF với các từ
vựng cho việc định nghĩa lớp, quan hệ thứ bậc giữa các lớp, các thuộc tính (mối quan
hệ nhị phân), quan hệ thứ bậc giữa các thuộc tính, và các ràng buộc thuộc tính. Các
lớp và thuộc tính RDFS có thể được khởi tạo trên RDF. Hình dưới đây sẽ cho ta thấy
một ví dụ về mơ hình RDFS.
Hình 2.5 Minh họa RDFS
RDF(S) (tham khảo đến sự kết hợp giữa RDF và RDF Schema) không được so
sánh có ý nghĩa lắm so với các ngơn ngữ mơ hình khác, đơn giản bởi vì nó chỉ cho
phép sự biểu diễn các khái niệm, sự phân loại các khái niệm, mối quan hệ nhị phân,
các miền đơn giản và tầm vực giới hạn của các thuộc tính. Sự hạn chế về ngữ nghĩa
của RDF(S) là một động cơ chính cho việc phát triển các ngơn ngữ có ngữ nghĩa hơn
của web ngữ nghĩa.
OWL (Web Ontology Language)
2.4.3.
OWL là một tập các ngôn ngữ mark-up được thiết kế để sử dụng cho các ứng
dụng cần xử lý nội dung thông tin thay vì chỉ hiển thị thơng tin. Các OWL ontology
đặc tả các hệ thống có thứ bậc của một miền theo cách có thể phân tích và hiểu bởi
các phần mềm. Ngoài ra, OWL tạo điều kiện dễ dàng cho việc hiển thị ý nghĩa và
ngữ nghĩa hơn XML, RDF và RDF-S [27].
OWL [10] bao gồm 3 loại mẫu cho việc gia tăng tính ngữ nghĩa là: Lite, DL và
Full. OWL-Lite là ngơn ngữ OWL có cú pháp đơn giản nhất. OWL-Lite được sử
dụng trong các tình huống mà chỉ cho phép sự phân lớp của một lớp đơn giản và các
ràng buộc đơn giản. Trong đó, OWL-DL có khả năng biễu diễn ngữ nghĩa tốt hơn
Trang 13