Điều này sẽ gây khó khăn cho việc tự động kích hoạt các dịch vụ, vì đòi hỏi hệ thống phải hiểu các đặc tả khác nhau cho cùng một dịch vụ: • Nếu là một người dùng bình thường thì rất khó
Trang 1LỜI CẢM ƠN
Tài liệu này là kết quả của việc nghiên cứu luận văn thạc sĩ tại trường Đại Học Bách Khoa tp.HCM khoa công nghệ thông tin Tôi mong rằng bài viết này được diễn đạt một cách dễ hiểu về việc áp dụng ngữ nghĩa vào kiến trúc hướng dịch vụ: kiến trúc dịch vụ hướng ngữ nghĩa (Semantic Service Oriented Architecture)
Nhân cơ hội này, tôi muốn bày tỏ lòng cảm ơn chân thành đến thầy hướng dẫn
TS Nguyễn Tuấn Anh, đã giúp đỡ tôi rất nhiều trong việc nghiên cứu trong giai
đoạn làm đề cương luận văn cũng như giai đoạn luận văn tốt nghiệp Thầy đã có những đóng góp hết sức quý báu và chân thành trong quá trình làm luận văn này
Tôi cũng muốn bày tỏ lòng cảm ơn sâu sắc đến thầy cô của khoa Công Nghệ Thông Tin đã giảng dạy và truyền đạt những tri thức mới cho tôi trong suốt thời gian học Cao Học tại trường
Tôi cũng xin trân trọng cảm ơn đến Phòng Đào Tạo Sau Đại Học, trường Đại Học Bách Khoa tp.HCM đã hỗ trợ tôi rất nhiều trong thời gian học tại trường
Tôi cũng muốn bày tỏ lòng cảm ơn đến những người bạn, và gia đình đã ủng hộ
và chia sẻ trong quá trình nghiên cứu đề tài
Cuối cùng tôi muốn gởi lời chúc đến mọi người lời chúc sức khoẻ, thành đạt và hạnh phúc
TP.HCM, ngày 07 tháng 07 năm 2007
Học viên Huỳnh Châu Trung
Trang 2ĐỀ TÀI
Việc sử dụng dịch vụ web trong các kiến trúc SOA ngày càng trở nên phổ biến cho các ứng dụng mạng phía người dùng không chuyên và B2B Dịch vụ web đã giải quyết khá triệt đểvấn đề tương thích giữa các thành phần bất đồng nhất vàphân
bố (OS, ngôn ngữ lập trình, phần cứng,…)
Các phương thức của dịch vụ web được kích hoạt thông qua định dạng WSDL
Vì vậy, nó đòi hỏi người sử dụng phải biết WSDL, định dạng thông tin truyền đến
và nhận kết quả trả về theo đúng định dạng WSDL
Trong các hệ thống hướng ngữ nghĩa, cùng một kiểu dịch vụ (vd: dịch vụ đăng
ký du lịch) có thể có nhiều mô tả WSDL khác nhau Điều này sẽ gây khó khăn cho việc tự động kích hoạt các dịch vụ, vì đòi hỏi hệ thống phải hiểu các đặc tả khác nhau cho cùng một dịch vụ:
• Nếu là một người dùng bình thường thì rất khó sử dụng một dịch vụ trong kiến trúc SOA Họ phải hiểu đặc tả WSDL của dịch vụ mới có thể sử dụng dịch vụ này
• Trong môi trường EAI hay B2B việc tích hợp hai hệ thống SOA đòi hỏi phải
bổ sung các adapter nhằm chuyển đổi các interface giữa hai SOA Viêc làm này tốn rất nhiều công sức và mất nhiều thời gian
Nghiên cứu và xây dựng một framework cho phép kích hoạt một dịch vụ dựa vào ngữ nghĩa của dữ liệu trong môi trường bất đồng nhất dữ liệu
GVHD: TS Nguyễn Tuấn Anh, tuananh.nguyen@hcmut.edu.vn
Trang 3ĐẶT VẤN ĐỀ
SOA đang được nghiên cứu và phát triển một cách mạnh mẽ nhằm đáp ứng cho việc tích hợp các hệ thống bất đồng nhất về mặt kiến trúc, phần cứng, tài nguyên, ngôn ngữ, … SOA giúp đỡ các nhà phát triển tích hợp những kiến trúc khác nhau
để sử dụnglại những tài nguyên dư thừa
SOA cho thấy sự hỗ trợ linh hoạt của công nghệ thông tin Các dịch vụ có khả năng đáp ứng yêu cầu được chứa trong một danh mục tập trung Khi một ứng dụng cần một dịch vụ nào đó, những dịch vụ trong danh mục sẽ được tìm kiếm Những dịch vụ thích hợp sẽ được sử dụng bởi các ứng dụng này
Mặc dù khái niệm về SOA được thiết lập trước dịch vụ web và một dịch vụ bên trong SOA hoàn toàn độc lập với khái niệm dịch vụ web Dịch vụ web chính là một
sự hiện thực luận lý của SOA dựa trên các lightweight protocols trên các chuẩn được chấp nhận một cách rộng rãi Một số kỹ thuật nổi bật cho việc mô tả chức năng của dịch vụ web là WSDL nhưng còn một số hạn chế Những kỹ thuật này chỉ
mô tả các dịch vụ web ở mức cú pháp Chính vì cách mô tả này sẽ gây ra tình trạng nhập nhằng trong thế giới thực khi dùng các dịch vụ Và việc giao tiếp với các dịch
vụ thông qua các đặc tả dạng API rất khó sử dụng, và người dùng chỉ là các kỹ sư tích hợp hệ thống
SOA hướng đến người dùng bình thường: đòi hỏi người dùng phải có kiến thức
về dịch vụ, yêu cầu của họ phải được đặc tả ở dạng WSDL, tuy nhiên điều này rất khó khăn cho người sử dụng bình thường
SOA được ứng dụng trong môi trường EAI hay B2B: trong môi trường kinh doanh thay đổi một cách nhanh chóng như hiện nay, sự tồn tại của một tổ chức được quyết định thông qua khả năng thích ứng nhanh chóng của họ qua việc điều chỉnh
Trang 4các chức năng hệ thống với các qui trình nghiệp vụ, và khả năng kết hợp với các tổ chức khác B2B
Thật không may, thực tế đã chỉ ra rằng việc tích hợp các ứng dụng và các qui
trình thường gặp khó khăn và tốn nhiều chi phí và thời gian và phần lớn là thất bại
Một trong những nguyên nhân quan trọng là do quá trình tích hợp được làm bằng tay, muốn tích hợp được đòi hỏi các kỹ sư tích hợp phải hiểu một cách thấu đáo các interface của tất cả các hệ thống cần tích hợp nhưng điều này là không khả thi các ứng dụng của các enterprise khác nhau và số lượng rất nhiều trong điều kiện thời gian và chi phí không cho phép, và có một số cải tiến trong cách tiếp cận này xây
dựng các công cụ tích hợp tự động case-by-case (adapter)
Một sự đề xuất khác được đưa vào kiến trúc SOA, là áp dụng ngữ nghĩa vào SOA Luận văn này, sẽ tập trung nghiên cứu và xây dựng một khung Semantic SOA (SSOA) gọi là SeFrame SeFrame là sự kết hợp của Semantic Web Service (Semantic Web + Web Service) và SOA SeFrame cho phép uyển chuyển tích hợp
các dịch vụ phân bố dựa trên ngữ nghĩa của dữ liệu Một người dùng bình thường,
thông qua SeFrame, có thể triệu gọi một dịch vụ từ xa thông qua các mô tả yêu cầu
ở dạng ngôn ngữ gần với cách diễn đạt tự nhiên mà không cần quan tâm đến cú pháp của các dịch vụ đó
Luận văn này được tổ chức thành bốn thành phần chính: phần 1 khảo sát và đánh giá các nghiên cứu trên thế giới về SOA và Semantic SOA đồng thời đưa ra
mô hình ý niệm cho SeFrame Phần 2 nghiên cứu cơ sở toán học để hiện thực các thành phần của SeFrame Phần 3 tổng kết về kết quả hiện thực và kế hoạch tương lai cho SeFrame
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
ĐỀ TÀI 2
ĐẶT VẤN ĐỀ 3
PHẦN 1 CƠ SỞ LÝ THUYẾT 11
Chương 1 TỔNG QUAN 12
1.1 Giới thiệu 12
1.1.1 Động cơ 12
1.1.2 Mục tiêu 12
1.2 Kiến trúc hướng dịch vụ 13
1.2.1 Động cơ 13
1.2.2 Các khái niệm cơ bản 14
1.2.2.1 Dịch vụ 14
1.2.2.2 Dịch vụ web 14
1.2.2.3 Dịch vụ web ngữ nghĩa 15
1.2.2.4 Kiến trúc hướng dịch vụ 16
Chương 2 KIẾN TRÚC DỊCH VỤ HƯỚNG NGỮ NGHĨA - SSOA 19
2.1 Động cơ 19
2.2 Cơ sở lý thuyết cho SSOA 21
2.2.1 Web-ngữ nghĩa 22
2.2.2 Ontology 23
2.2.3 Một số kỹ thuật biểu diễn tri thức 26
2.3 WSMO và WSML trong việc xây dựng một SSOA 27
2.3.1 Framework cơ sở WSMO 28
2.3.2 Ngôn ngữ nền tảng WSML 35
2.4 Một số SSOA điển hình 37
2.4.1 WSMX (Web Service Modeling Execution Environment) 37
2.4.1.1 Giới thiệu 37
2.4.1.2 Kiến trúc của WSMX 38
2.4.1.3 Những hạn chế của WSMX 39
Trang 62.4.2 IRS (Internet Resoning Service) 41
2.4.2.1 Giới thiệu 41
2.4.2.2 Kiến trúc IRS III 41
2.4.2.3 Hạn chế của IRS III 42
Chương 3 KIẾN TRÚC CƠ BẢN CỦA SEFRAME 43
3.1 SeFrame: FrameWork SSOA 43
3.1.1 Giới thiệu 43
3.1.2 Kiến trúc tổng thể của SeFrame 44
3.1.2.1 Lớp User Interface 44
3.1.2.2 Lớp Comunication 44
3.1.2.3 Lớp Storage 45
3.1.2.4 Lớp Inference-mechanisms 45
3.1.3 Kiến trúc chi tiết của SeFrame 49
PHẦN 2 CƠ SỞ TOÁN HỌC VÀ HIỆN THỰC SEFRAME 50
Chương 4 CƠ SỞ TOÁN HỌC 51
4.1 Tổng quan về quá trình khám phá và chọn lựa dịch vụ 51
4.1.1 Khám phá dịch vụ 53
4.1.1.1 Các thành phần liên quan đến giai đoạn này 53
4.1.1.2 Quá trình khám phá 53
4.1.2 Lựa chọn dịch vụ 56
4.1.2.1 Lọc 56
4.1.2.2 Xếp hạng 56
4.1.2.3 Kiểm tra 57
4.2 Các mô hình khám phá dịch vụ hướng ngữ nghĩa 58
4.2.1 So trùng dựa trên logic(Logic-based matching) 58
4.2.2 Khám phá với logic quá trình (transaction logic) 59
4.2.3 Khám phá dựa trên tập hợp 60
4.3 Mô hình khám phá của SeFrame 61
4.3.1 Mô hình cơ bản 61
4.3.2 Mô hình vị từ 62
4.3.3 Các bước gọi một dịch vụ hướng ngữ nghĩa trong SeFrame 64
Trang 74.3.3.1 Đặc tả yêu cầu thông qua goal mẫu 64
4.3.3.2 Khám phá 65
4.3.3.3 Thực thi 65
4.3.3.4 Ví dụ ở mức ý niệm - đặc tả yêu cầu và khám phá 65
Chương 5 HIỆN THỰC SEFRAME 69
5.1 Hiện thực thành phần khám phá 69
5.1.1 So trùng dựa vào từ khóa 69
5.1.2 So trùng ngữ nghĩa 69
5.1.2.1 So trùng bằng phương pháp Logic Mô tả (Description logic) 70
5.1.2.2 Mô hình khám phá cho SeFrame (Logic Programming) 72
5.1.2.3 Use-case của quá trình khám phá, thực thi, đăng ký dịch vụ 79
5.1.2.4 Tổng kết việc hiện thực so trùng ngữ nghĩa 81
5.2 Hiện thực thành phần message translator 82
5.2.1 Tổng quan 82
5.2.2 Hiện thực 82
5.3 Hiện thực thành phần compilier và message parser 84
5.4 Thành phần micro-learning engine 84
5.5 Thành phần Mediator 84
Chương 6 KẾT QUẢ HIỆN THỰC 85
6.1 Khám phá và thực thi dịch vụ 86
6.2 Đăng ký dịch vụ và học máy .87
6.3 Server 87
6.4 Client 88
PHẦN 3 TỔNG KẾT 91
Chương 7 KẾT LUẬN 92
7.1 Kết quả đạt được 92
7.2 Những vấn đề cần giải quyết và kế hoạch tương lai 93
7.2.1 Những vấn đề cần giải quyết 93
7.2.2 Kế hoạch tương lai 94
KẾ HOẠCH HIỆN THỰC 95
BẢNG THUẬT NGỮ 97
Trang 8TÀI LIỆU THAM KHẢO 98
Trang 9DANH MỤC HÌNH
Hình 1.1 - Kiến trúc dịch vụ web[5] 14
Hình 1.2 - ví dụ WSDL [2] 15
Hình 1.3 - Service Oriented Architectures[2] 16
Hình 1.4 - Các hoạt động của SOA [2] 17
Hình 1.5 - Kiểu kiến trúc truyền thống và SOA[1] 18
Hình 2.1 - Hai kiểu mô tả cho cùng một dịch vụ 19
Hình 2.2 – Tích hợp hệ thống của các tổ chức-B2B 20
Hình 2.3 Quá trình, kỹ thuật và nguyên nhân dẫn đến sự hình thành SWS[1] 21
Hình 2.4 - Ontology [1] 24
Hình 2.5 - Qui trình biểu diễn ontology cho một miền[8] 24
Hình 2.6 - Biểu diễn Ontology [1] 25
Hình 2.7 Các phần tử cơ bản của WSMO 31
Hình 2.8 - WSMO biểu diễn Ontology [2] 32
Hình 2.9 - WSMO mô tả đặc tả dịch vụ [2] 33
Hình 2.10 - Các biến thể của WSML [7] 36
Hình 2.11 - kiến trúc WSMX [13] 38
Hình 2.12 - Kiến trúc IRS III 41
[Knowledge Media Institute, The Open University 41
http://kmi.open.ac.uk/ ] 41
Hình 3.1 - Các Layer của SeFrame 44
Hình 3.2 – Lớp User Interface 44
Hình 3.3 – Lớp Communication 45
Hình 3.4 – Lớp Storage 45
Hình 3.5 – Lớp Inference-mechanisms 46
Hình 3.6 - Kiến trúc chi tiết của SeFrame 49
Hình 4.1 - Khám phá và chọn lựa dịch vụ trong SeFrame 52
Hình 4.2 - Tham khảo ontology của WS và goal 54
Trang 10Hình 4.3 - Khám phá dịch vụ 55
Hình 4.4 - Chọn lựa dịch vụ 57
Hình 5.1 - Giải thuật hợp nhất cho goal và WS 72
Hình 5.2 – Quá trình khám phá trong SeFrame .79
Hình 5.3 – Quá trình đăng ký dịch vụ và học máy trong SeFrame 80
Hình 5.4 - Thông số hoá đặc tả người dùng thông qua Message Translator 82
Hình 5.5 - Các khe (slot) của một đặc tả WSML 83
Hình 6.1 – Quá trình khám phá dịch vụ của SeFrame 86
Hình 6.2 – Giao diện server của SeFrame 88
Hình 6.3 – Người dùng đặc tả yêu cầu trên Client-GUI 89
Hình 6.4 – Chi tiết đặc tả yêu cầu trên Client-GUI 90
Trang 11PHẦN 1 CƠ SỞ LÝ THUYẾT
Trang 12hệ thống đăng ký du lịch), ta có thể mô tả những WSDL [2] khác nhau để thực hiện dịch vụ đó Tuy nhiên các hệ thống hiện tại chỉ gọi được dịch vụ nếu ta cung cấp đúng kiểu mô tả dịch vụ đó theo chuẩn WSDL điều này sẽ gây khó khăn cho việc tự động kích hoạt các dịch vụ Nguyên nhân chủ yếu là chưa có một phương pháp rõ ràng để mô tả các dịch vụ trong kiến trúc SOA để tránh sự nhập nhằng.Giao tiếp với các dịch vụ đều thực hiện cơ bản chỉ dựa vào cú pháp Nếu người sử dụng là một khách hàng thông thường thì việc dùng các dịch vụ này là điều hết sức khó khăn vì đòi hỏi họ phải biết về các WSDL của các dịch vụ Chính vì thế nếu khía cạnh ngữ nghĩa được thêm vào các mô tả các dịch vụ và các đặc tả yêu cầu của người dùng và máy tính có thể hiểu được là vấn đề đang được quan tâm
1.1.2 Mục tiêu
Trong luận văn này, ta sẽ xây dựng một framework thông minh dựa trên kiến trúc SOA Dịch vụ web là một SOA đơn giản và có những hạn chế như đã nêu trong phần tóm tắt Chính vì thế hiện nay có một mô hình mới gọi là Semantic Service Oriented Architecture dựa trên kiến trúc của semantic web service là một sự kết hợp giữa dịch vụ web và semantic web Hiện tại có nhiều kỹ thuật chuẩn để xây dựng semantic web service: OWL [12], WSMO [6]… Ta sẽ xây dựng một framework gọi
là SeFrame dựa trên WSMO : mô hình ý niệm cho SWS, dùng ontology để mô tả
Trang 13các khía cạnh liên quan đến SWS Việc lưu các mô tả chức năng của các dịch vụ hay đặc tả yêu cầu của người dùng đều ở dạng WSML Việc chọn ra một dịch vụ để đáp ứng yêu cầu của người dùng dựa trên việc so trùng ngữ nghĩa hay việc ánh xạ giữa các mô tả WSML của cùng một dịch vụ, hay goal, ontology gọi là mediation
là một phần tử mô hình của WSMO Một số Frame work đã có như IRS [Motta et
al, 2003] hay WSMX [13] sẽ được phân tích để thấy ưu và khuyết điểm của những
hệ thống này và đưa ra thiết kết cho SeFrame
1.2 Kiến trúc hướng dịch vụ
1.2.1 Động cơ
Trong môi trường kinh doanh thay đổi một cách nhanh chóng, đòi hỏi các công
ty phải thay đổi theo Những phần mềm hỗ trợ việc kinh doanh cần phải được xây
dựng thành những thành phần riêng rẽ với độ kết nối cao và độ kết dính thấp để
tăng khả năng dùng lại của các thành phần này Hiện nay có nhiều công nghệ hỗ trợ việc tạo ra các thành phần như thế : Enterprise Java Bin (EJB), Micorsoft’s COM+, NET Mặc dù các thành phần này được xây dựng trên các chuẩn nhưng muốn sử dụng được các thành phần này đòi hỏi nhà phát triển phần mềm phải biết được những thành phần nào có sẵn cũng như interface Nhưng điều này ngày càng trở nên khó khăn khi số lượng các thành phần là quá lớn và interface của chúng được xây dựng trên các chuẩn công nghệ khác nhau của các nhà cung cấp Kiến trúc SOA ra đời nhằm giải quyết hạn chế này
Trang 141.2.2 Các khái niệm cơ bản
1.2.2.1 Dịch vụ
Khái niệm dịch vụ ở đây được đặt trong ngữ cảnh của SOA Theo “Stojanovic
và Dahanayake”, một dịch vụ hiện thực một chức năng và cho phép các thành phần bên ngoài sử dụng nó thông qua các interface và phải theo một dạng chuẩn nhất định Sự kết nối giữa các thành phần được thực hiện thông qua một nơi chứa các interface đã được đăng ký trước mà ta thường gọi là một chỉ mục Người dùng có thể sử dụng các dịch vụ thông qua chỉ mục này
1.2.2.2 Dịch vụ web
Dịch vụ web được xem như là một hiện thựccủa SOA Dịch vụ web sử dụng các giao thức đơn giản như: SOAP, HTTP, XML…
Hình 1.1 - Kiến trúc dịch vụ web[5]
Theo W3C thì một dịch vụ web là một cách thức để hỗ trợ interoperable
machine-to-machine tương tác với nhau trên mạng Bản thân nó có interface mô tả trong một dạng mà máy tính có thể xử lý được Những hệ thống khác tương tác với
Trang 15dịch vụ web theo cách phải tuân theo mô tả của nó bằng cách sử dụng thông điệp SOAP, thông điệp này được truyền trên giao thức HTTP ở dạng XML
Dịch vụ web bao gồm nhiều thành phần : web serice Interface mô tả dịch vụ Mô
tả này được đăng ký ở nơi đăng ký dịch vụ (UDDI), là nơi mà người dùng có thể tìm kiếm dịch vụ Khi đã tìm thấy dịch vụ mong muốn, người dùng có thể gọi từ máy chủ mà nó được đăng ký Figure 1 trình bày quá trình đăng ký, tìm kiếm, và gọi dịch vụ
1.2.2.3 Dịch vụ web ngữ nghĩa
Làm việc với dịch vụ web người dùng phải tìm khả năng đáp ứng của dịch vụ
thông qua định nghĩa giao tiếp dịch vụ web (WSDL) Định nghĩa này không đủ mạnh vì nó chỉ định nghĩa khả năng đáp ứng của dịch vụ ở dạng nhập và xuất Nó không có khả năng xử lý tự động bởi máy tính Con người đóng vai trò chính yếu trong việc tìm kiếm và gọi các dịch vụ đó Ví dụ Figure 2 là một WSDL Chỉ có thể con người mới hiểu được
Hình 1.2 - ví dụ WSDL [2]
Trang 16SWS là một kiểu ứng dụng mới Nó “độc lập (self-contained), self described,
semantically marked-up software resources that can be published, discovered, composed and executed across the Web in a task driven automic way” [6] Việc
dùng Semantic Web markup languages cấu trúc dữ liệu được truyền thông qua Web Service interface được biểu diễn dạng ontologies Với cơ chế này nó cung cấp một phương tiện mà máy tính có thể hiểu được[12]
Hình 1.3 - Service Oriented Architectures[2]
Theo Khushraj, SOA là một loại kiến trúc cho phép xây dựng phần mềm ứng dụng dùng để sử dụng, quản lý những dịch vụ có sẵn trong một mạng hay tạo ra
Trang 17nối giữa các thành phần Để hiểu rõ hơn SOA ta có thể hiểu : “SOA là một tập hợp các dịch vụ chạy độc lập với nhau và giao tiếp thông qua việc trao đổi các thông điệp” SOA xem các dich vụ như là phần tử cơ bản cung cấp các chức năng cần
thiết Ở mức ý niệm, ta có thể xem một kiến trúc SOA bao gồm ba thành phần chính [9] như sau:
Hình 1.4 - Các hoạt động của SOA [2]
• Service Registry : đóng vai trò là phương tiện trung gian giữa nhà cung cấp dịch vụ và người có nhu cầu Hầu hết các chỉ mục dịch vụ phân loại các dịch
Ba hoạt động chính của service provider và requester :
• phân phối: nhà cung cấp dịch vụ phải phân phối các mô tả về dịch vụ để cho phép người có nhu cầu tìm thấy dịch vụ thích hợp
• Tìm kiếm: người có nhu cầu tìm kiếm mô tả dịch vụ thích hợp trong service registry
• sử dụng dịch vụ: đây là hoạt động diễn ra tại thời điểm sử dụng dịch vụ, người có nhu cầu khởi tạo sự tương tác hay yêu cầu sự thực thi của dịch vụ
Trang 18Các thông tin kết nối với dịch vụ (ví dụ: nhà cung cấp, thông số nhập …) nằm trong phần mô tả dịch vụ
Tuy nhiên tất cả các hoạt động như phân phối, tìm kiếm và sử dụng dịch vụ đều thực hiện ở dạng đặc tả cú pháp chặt chẽ, khi cần phân phối hay tìm kiếm và thực hiện dịch vụ đòi hỏi phải biết các đặc tả chính xác, và chỉ có thể được viết bởi nhà phát triển phần mềm các đặc tả này chưa được hiểu và xử lý bởi máy Tuy vậy kiểu kiến trúc này là một bước đột phá so với kiểu ứng dụng truyền thống mà hiện tại hầu hết các hệ thống hiện nay đang tồn tại
Hình 1.5 - Kiểu kiến trúc truyền thống và SOA[1]
Trang 19Chương 2 KIẾN TRÚC DỊCH VỤ HƯỚNG NGỮ NGHĨA - SSOA
vụ thuê xe khác… để yêu cầu đặt một tour du lịch phải cung cấp cho hệ thống một đặc tả để kích hoạt dịch vụ Đặc tả này phải tuân theo một cú pháp nhất định theo chuẩn của của hệ thống Giả sử hệ thống này chỉ hiểu đặc tả booking2, nhưng xét về mặt ngữ nghĩa đặc tả booking1 hoàn toàn tương tự, tuy nhiên hệ thống sẽ không chấp nhận đặc tả booking1 Nguyên nhân của việc hạn chế này là ngữ nghĩa của dữ liệu chưa được quan tâm
Hình 2.1 - Hai kiểu mô tả cho cùng một dịch vụ
Trang 20(1) : minh hoạ cho việc kiểu dữ liệu không tương hợp
(2): booking1 thông tin trong một cấu trúc, booking2 thông tin trong từng trường
(3): mô tả bằng những từ khác nhau, nhưng cùng một ngữ nghĩa
(4,5): dữ liệu bao gộp lẫn nhau
Trường hợp 2: Trong lĩnh vực ngân hàng, mỗi ngân hàng có một SOA giải
quyết tất cả các nghiệp vụ Nhưng theo xu thế hợp tác hoá, họ muốn cộng tác với
nhau trong lĩnh vực thẻ ATM: khách hàng sử dụng thẻ của ngân hàng SaiGonBank
có thể rút tiền trên máy của ACB¸ ICB, EAB … và các ngân hàng hợp tác với các công ty kinh doanh khác như: điện lực, bưu điện, nhằm tạo thuận lợi cho khách hàng thanh toán các hoá đơn trên máy ATM Vì thế cần có một SOA trung gian
khác gọi là BankNet, nối kết các dịch vụ trong các SOA của những ngân hàng thành
viên
Hình 2.2 – Tích hợp hệ thống của các tổ chức-B2B
Vấn đề đặt ra là nếu có thêm một ngân hàng mới kết nối vào BankNet, thì thẻ phát hành bởi ngân hàng này phải được chấp nhận trên các máy ATM của các ngân hàng thành viên khác và ngược lại Vì thế, BankNet phải chỉnh sửa để bổ sung thêm thành viên mới này, và các SOA của các ngân hàng thành viên cũng phải bổ sung thêm các nghiệp vụ hạch toán hay trên thiết bị ATM Công việc này rất tốn thời
Trang 21dịch vụ, ứng với các qui trình nghiệp vụ trong BankNet, chỉ được mô tả ở dạng cú pháp mà chỉ có thể hiểu được bởi con người và vì sự bất đồng nhất về các thuật ngữ khi mô tả các nghiệp vụ
Khái niệm SSOA ra đời nhằm giải quyết các vấn đề nêu trên Nó cung cấp ngữ
nghĩa cho SOA, những mô tả các dịch vụ ở dạng mà máy tính có thể hiểu được
2.2 Cơ sở lý thuyết cho SSOA
SSOA được nêu ra trong điều kiện đòi hỏi có một cuộc cách mạng về SOA Nền
tảng cơ bản cho một SSOA là dịch vụ web-ngữ nghĩa Mọi SSOA đều có chức năng
tương tự như một SOA truyền thống, thêm vào đó là sự tích hợp của phần hỗ trợ về ngữ nghĩa Dịch vụ web-ngữ nghĩa chính là sự kết hợp giữa web-ngữ nghĩa và dịch
vụ web
Hình 2.3 Quá trình, kỹ thuật và nguyên nhân dẫn đến sự hình thành SWS[1]
Trang 22Ta sẽ khảo sát một số khái niêm cơ bản về web-ngữ nghĩalà kỹ thuật chính hình thành nên dịch vụ web-ngữ nghĩa Dịch vụ web-ngữ nghĩa lại là kỹ thuật chính để
áp dụng ngữ nghĩa cho SOA, từ đó dẫn đến khái niệm SSOA
2.2.1 Web-ngữ nghĩa
Theo [Tim Berners-Lee] là một trong những thành viên trong nhóm W3C và cũng là người tiên phong đưa ra các khái niệm về : WWW, HTTP, và HTML đã nói
về web-ngữ nghĩa như sau:
“Tôi hình dung ra một thế giới, ở đó, web, tập hợp sức mạnh của nhiều máy tính, có khả năng phân tích mọi dữ liệu bên trong nó: nội dung của dữ liệu, các link
và các giao dịch giữa người và máy tính Đó là thế giới của web-ngữ nghĩa Mặc dù ngày nay, web-ngữ nghĩa chưa đáp ứng được tất cả những yêu cầu trên; nhưng một khi nó làm được, những hoạt động kinh tế, hành chính và cuộc sống hằng ngày của chúng ta sẽ bị chi phối hoàn toàn bởi giao tiếp từ máy tới máy Con người, những thực thể thông minh, đang tiến bước tới kỹ nguyên vật chất hóa cuối cùng này ”
Đã có rất nhiều định nghĩa về web-ngữ nghĩa, nhưng nhìn chung lại, web-ngữ
nghĩa có thể được hiểu như sau : ngữ nghĩa của cụm từ web-ngữ nghĩa nói lên rằng
ý nghĩa của dữ liệu trên những trang web không chỉ hiểu bởi con người, bên cạnh
đó máy tính cũng có khả năng xử lý về mặt ngữ nghĩa
Ta có ví dụ sau : HTML là ngôn ngữ cơ bản để biểu diễn thông tin trên web, giả
sử ta có một mẫu tin “item number T5789 is a tech your self C++ in 21 days with
unit price 100 USD”, nhưng trong ngữ cảnh của ngôn ngữ HTML thì “T5789” chỉ là
một đoạn văn bản có vị trí gần “Tech your…” hay chỉ là một cụm từ được định
dạng, không có cách nào để hiểu đó là một loại sách nào đó Ta có thể sử dụng
web-ngữ nghĩa để giải quyết hạn chế trên
Trang 23Web-ngữ nghĩa là một trí tuệ nhân tạo mức thấp (Weak AI) Khái niệm máy có
thể hiểu ngữ nghĩa không thể suy ra rằng SW là một hệ thống AI cho phép máy tính
hiểu các khái niệm như con người, nhưng nó chỉ ra rằng : “một hệ thống hoàn toàn
có khả năng giải quyết một vấn đề phức tạp khi có những lệnh thực thi được định nghĩa tốt và những dữ liệu được định nghĩa tốt” SW sử dụng kỹ thuật mô tả RDF
và OWL, là hai kỹ thuật được xem là tốt nhất hiện tại để xây dựng một SW
• RDF : là một mô hình dữ liệu đơn giản Nó mô tả các đối tượng tài nguyên
và mối quan hệ giữa chúng Một mô hình RDF cơ bản được thể hiện qua cú pháp của XML
• OWL : được dùng để đưa ra, và chia sẻ các tập thuật ngữ ontologies
Ontology là kỹ thuật chính yếu để xây dựng nên web-ngữ nghĩa là nền tảng cho SSOA
• Khó khăn trong việc xác định yêu cầu khi xây dựng hệ thống
• Khó khăn trong việc tích hợp các hệ thống, tốn nhiều chi phí và thậm chí là thất bại
• Khả năng sử dụng lại là rất thấp
Để giải quyết các vấn đề nêu trên, ta cần đưa ra một cách hiểu chung understanding) cho các thuật ngữ Là phương tiện trung gian để các bên giao tiếp với nhau Đây chính là lý do ra đời của ontology Ontology có thể được hiểu qua định nghĩa như trong hình 2.4
Trang 24Hình 2.5 - Qui trình biểu diễn ontology cho một miền[8]
Thông qua ontology, một miền của thế giới tự nhiên được biểu diễn bởi những đặc tả Đặc tả này được xây dựng bởi một loại ngôn ngữ mô hình được biểu diễn trong hình 2.5 Một ontology trên một miền nào đó gồm các thành phần sau:
Trang 25• Concept: định nghĩa các phần tử cấu tạo nên miền cho trước (conceptual entity of the domain)
• Properties: định nghĩa tính chất của miền (property of a concept)
• Relation: định nghĩa mối quan hệ giữa phần tử và tính chất (relation between concepts or properties)
• Axiom: là những biểu thức logic mô tả mối quan hệ giữa các concept, property hay relation với nhau (coherent description between Concepts / Properties / Relations via logical expressions)
Hình 2.6 - Biểu diễn Ontology [1]
Cho đến nay đã có rất nhiều ontology được xây dựng trên thế giới để biểu diễn một số miền, từ tổng quát cho đến lĩnh vực cụ thể:
• Ontology [của Sowa] là một ontology tiêu biểu cho các ontology tổng quát, với mục đích phân loại tất cả các khái niệm trên thế giới
• CYC ontology : là một trong những ontology có kích thước lớn nhất trong số các ontology đã được xây dựng CYC chứa hơn 100000 kiểu khái niệm
Những khó khăn trong việc ứng dụng ontology là làm sao để mô hình hoá các khái niệm của một lĩnh vực nào đó Hầu hết các phương pháp đưa ra chỉ mang tính
chung chung Việc xây dựng chủ yếu là dựa vào “nghệ thuật và kinh nghiệm”
Trang 26Trong phần tiếp theo một số phương pháp biểu diễn tri thức sẽ được khảo sát, nêu lên những hạn chế và chọn ra một phương pháp để biểu diễn ngữ nghĩa cho SOA, từ
đó tạo ra một SSOA gọi là SeFrame
2.2.3 Một số kỹ thuật biểu diễn tri thức
First Order Logic : là phương pháp toán học cổ điển biểu diễn các biểu thức
luận lý [Sowa 1983]; tri thức được biểu diễn bởi tập các vị từ, kết hợp với các toán
tử luận lý and, or, not và implies
Tuy nhiên phương pháp này là không hiệu quả và undecidable, việc đọc và ghi biểu thức luận lý không gần với tự nhiên
RDF : [Tim Berners-Lee] miêu tả các tài nguyên trên mạng thông qua một cú
pháp qui định Tuy nhiên trong phương pháp này ý nghĩa về mối quan hệ giữa hai tài nguyên là không tồn tại và bản thân ngôn ngữ cũng không có biểu diễn luận lý Chính vì thế bản thân các miêu tả này không mang ý nghĩ
RDF Schema: do sự hạn chế của RDF là bản thân nó không mang ngữ nghĩa
dẫn đến sự ra đời của ngôn ngữ RDF schema [Brickley and Guha, 2004] Ngôn ngữ này dùng lại cú pháp RDF: lớp, mối quan hệ giữa các lớp, lớp con Tuy nhiên RDF schema không chỉ ra cách làm thế nào để suy luận giới hạn trên một miền
OWL : ta có ba biến thể là OWL-Lite, OWL-DL và OWL-Full Nhưng chỉ có
hai biến thể đầu tiên (OWL-Lite, OWL-DL) là có thể được xem có khả năng mô tả logic Tuy nhiên nó còn một số hạn chế sau, theo [14]: OWL-DL không thể suy luận trên giới hạn trên một dãi dữ liệu mặc dù điều này là cho phép theo định nghĩa
Ví dụ OWL-DL không thể định nghĩa một class FastConnection mà speed lớn hơn
1024 Vì bên trong OWL-DL chỉ cho phép giới hạn trên một giá trị đơn nhất (speed
= 1024) OWL-Lite là một bản thu giảm của OWL OWL-Full lấy ý tưởng từ RDF
Trang 27Shemma Tuy nhiên chính tác giả đã thừa nhận rằng lý thuyết này không thể xây dựng một reasoning software [12]
Phần tiếp theo ta sẽ tìm hiểu khái quát về framework cở sở WSMO, đi cùng với
nó là WSML kết hợp với kiến trúc SOA để xây dựng một SSOA WSMO và WSML đã thành công ban đầu trong việc xây dựng các dịch vụ web-ngữ nghĩa như WSMX hay IRS Đây là những SSOA đầu tiên có ứng dụng thực tế Tiếp theo, ta
sẽ đi phân tích một số ưu và khuyết điểm của hai framework này để làm nền tảng xây dựng SeFrame
2.3 WSMO và WSML trong việc xây dựng một SSOA
Trong phần 2.2.3, một số phương pháp biểu diễn tri thức đã được khảo sát và nêu lên giới hạn của từng phương pháp Trong số các phương pháp đó, chỉ có RDF
và OWL là được kết hợp với nhau để xây dựng nên web-ngữ nghĩa Tuy nhiên nhìn chung, ta chưa thể áp dụng chúng vào việc tạo ra một dịch vụ web-ngữ nghĩa Các phương pháp trên chưa mô tả được ngữ nghĩa cũng như mối quan hệ giữa các thành phần dữ liệu mà nó biểu diễn, nếu có thì còn rất nhiều hạn chế Mặt khác để xây dựng mô hình SSOA như SeFrame, việc biểu diễn ngữ nghĩa cho các thông tin không những cần phải quan tâm, mà bên cạnh đó ta còn phải giải quyết một vấn đề hết sức quan trọng quyết định mức độ thành công của một SSOA Đó là liên kết
đúng mẫu dữ liệu với những cách biểu diễn ngữ nghĩa khác nhau của nó Chính vì
thế, ta không những cần một mô hình tổng quát trong việc biểu diễn ngữ nghĩa cho các đặc tả dịch vụ và mục đích người dùng, mà còn cần một phương pháp để so trùng về ngữ nghĩa giữa đặc tả dịch vụ và mục đích người dùng hay so trùng giữa các đặc tả dịch vụ của nhiều dịch vụ với nhau So trùng tương đối giữa dịch vụ và yêu cầu sử dụng (Web to Goal: W2G) giúp giải quyết vấn đề: thực hiện yêu cầu của người dùng thông qua một đặc tả gần với ngôn ngữ tự nhiên So trùng tương đối giữa các đặc tả dịch vụ (Web to Web :W2W) giúp giải quyết vấn đề B2B Các biểu
Trang 28diễn ngữ nghĩa cho dịch vụ và yêu cầu sử dụng được chuyển hoá thành một dạng ngôn ngữ thứ hai gọi là WSML, là một ngôn ngữ sử dụng cho WSMO
2.3.1 Framework cơ sở WSMO
Trong phần này, ta không đi vào chi tiết của WSMO (tài liệu đầy đủ có thể tham khảo [6]) Các phần tử cơ bản của WSMO sẽ được phân tích Những kỹ thuật mà WSMO đưa ra trong framework dùng để hiện thực dịch vụ web-ngữ nghĩa là nhân của SSOA
WSMO là một ontology, mô tả những khía cạnh khác nhau liên quan đến dịch
vụ web-ngữ nghĩa WSMO dựa trên WSMF [7] Nhóm tác giả của WSMO đã định nghĩa lại và mở rộng framework này, đồng thời phát triển nó thành một ontology hình thức và tạo ra một ngôn ngữ thể hiện gọi là WSML
WSMO cung cấp một đặc tả ontology cho các phần tử chính yếu của SWS Mục tiêu của SWS là tập hợp công nghệ để tạo ra thế hệ tiếp theo cho web thông qua sự kết hợp giữa hai công nghệ là web ngữ nghĩa và và dịch vụ web Do đó chuyển đổi internet từ một kho chứa thông tin mà con người là những người dùng vào trong hệ thống toàn cầu cho việc tính toán mạng phân tán Bởi thế một framework thích hợp cho dịch vụ web-ngữ nghĩa cần phải tích hợp những nguyên lý thiết kế mạng cơ bản, cũng như nguyên lý về thiết kế phân tán, mạng tính toán hướng dịch vụ WSMO chính vì thế phải dựa vào các nguyên lý thiết kế như sau [6] :
1 Web Compilance : WSMO thừa kế khái niệm URI trong việc xác định đơn nhất một tài nguyên, hỗ trợ XML và những kỹ thuật khác mà W3C đề xuất
2 Ontology-based : những ontology được sử dụng như mô hình dữ liệu thông qua WSMO Tất cả các mô tả về tài nguyên hay trao đổi dữ liệu của các services đều dựa trên ontology
3 Strict Decoupling : mỗi tài nguyên được xác định một cách độc lập , không phụ thuộc đến tính sẵn dùng hay sự giao tiếp với những tài nguyên khác
Trang 294 Centrality of Mediation : mediation xác định việc xử lý bất đồng nhất trong một môi trường mở Tính không đồng nhất có thể xuất hiện ở dạng : dữ liệu, underlying ontology, protocol hay process
5 Ontological Role Seperation : Người dùng hay là khách hàng, tồn tại trong ngữ cảnh những dịch vụ có thể không sẵn sàng Chẳng hạn một người dùng muốn đăng ký du lịch theo những sự ưu tiên về thời tiết, văn hoá Trong khi những dịch vụ có sẵn thì chỉ thực hiện việc như vé máy bay, khách sạn … Cho nên WSMO cần phải phân biệt được sự mong muốn được đáp ứng của người dùng và tính khả dụng của dịch vụ
6 Description versus Implementation : WSMO phân biệt giữa mô tả các phần
tử của SWS và hiện thực của chúng
7 Execution Semantics : để kiểm tra đặc tả của WSMO, những hệ thống thiết
kế dựa trên WSMO phải cung cấp một cơ chế kỹ thuật để nhận ra WSMO
8 Service versus Web service : một dịch vụ web là một thực thể tính toán tiến tới đáp ứng chính xác mục đích người dùng Một dịch vụ thì ngược lại, là cái thực được cung cấp cho một yêu cầu nào đó (trong việc invocation) [Baida et
al 2004] WSMO cung cấp phương tiện để mô tả một dịch vụ web, từ đó được thực thi bởi các dịch vụ Ở đây, khái niệm dịch vụ được hiểu khác đi so với khái niệm dịch vụ web mà ta đã nói ở trên
Mục tiêu của WSMO là cố gắng định nghĩa một kỹ thuật thật chặt chẽ cho SWS
[16] WSMO sẽ cung cấp phương tiện cho phép thực hiện việc phát hiện, tổ chức và
thực thi các yêu cầu trên cơ chế suy luận logic một cách bán tự động Nhưng để làm
được điều này, WSMO cần phải có một ngôn ngữ biểu diễn ngữ nghĩa thông tin,
đồng thời WSMO cần phải cung cấp một cơ chế gọi là Mediation, là một trong những yếu tố hết sức quan trọng giải quyết vấn đề matching các ontology khác
nhau, nó quyết định mức độ thành công của một SSOA Một yếu tố khác cũng
không kém phần quan trọng là phát hiện dịch vụ, nhưng có thể xem nó là một chức năng phụ thuộc vào Mediation nếu xét trên phương diện ngữ nghĩa Thành phần
phát hiện dịch vụ là cần thiết khi một yêu cầu cần được đáp ứng nhưng dịch vụ thoả
Trang 30mãn nó chưa được đăng ký trong hệ thống, framework SSOA phải tìm kiếm trên
mạng bằng cách matching yêu cầu và service capabilities Để đáp ứng được các yêu
cầu nêu trên WSMO, một nhóm làm việc khác đã đưa ra ngôn ngữ WSML [10] như
là một framework nền tảng biểu diễn các đặc tả cho WSMO
WSMO đưa ra khái niệm phần tử, mà mỗi phần tử khác đều thừa kế từ lớp đặc
tả này:
với lớp annotation được định nghĩa như sau :
WSMO định nghĩa bốn phần tử mô hình cơ bản cho việc mô tả những khía cạnh liên quan đến SWS [6]
Trang 31Hình 2.7 Các phần tử cơ bản của WSMO
• Ontology: đóng vai trò là phần tử chính yếu trong WSMO Thứ nhất, nó biểu diễn ngữ nghĩa thông tin Thứ hai, liên kết các thuật ngữ giữa người và máy
Ta có lớp Ontology được WSMO đặc tả như sau :
Ta xét một ví dụ minh họa trong việc biểu diễn ontology như sau
Trang 32Hình 2.8 - WSMO biểu diễn Ontology [2]
• Goal : đại diện cho mục tiêu của thực thể yêu cầu dịch vụ cần được đáp ứng Goal cung cấp cách thức để biểu thị một sự mô tả một yêu cầu cụ thể thông qua các đặc tả (cần làm gì) Một goal có thể import những ontology đã có để
sử dụng các khái niệm hay mối quan hệ đã được định nghĩa trước, hay mở rộng chúng, hay đơn giản chỉ là dùng lại chúng WSMO đặc tả class cho goal như sau
Sự thuận lợi của việc dùng goal là người dùng chỉ phải cung cấp đặc tả những yêu cầu, không nhất thiết đòi hỏi họ phải có kiến thức về web service hay phải tìm
Trang 33• Web Service : Giống các đặc tả goal, các chức năng của dịch vụ web cần được phân phối thông qua các đặc tả
Ta lấy ví dụ minh hoạ cho việc đặc tả ontology cho dịch vụ web
Hình 2.9 - WSMO mô tả đặc tả dịch vụ [2]
Chỉ khi nhà cung cấp và người yêu cầu dịch vụ sử dụng cùng một ontology thì việc so trùng giữa goal và khả năng đáp ứng của dịch vụ có thể được thực hiện một cách trực tiếp Nhưng thực tế thì không như thế, hầu hết các ontology biểu diễn goal
và khả năng đáp ứng của dịch vụ là không giống nhau Vì thế, một thành phần khác
là cần thiết để thực hiện việc so trùng ở mức độ gần giống nhau về ngữ nghĩa, giữa
Trang 34các biểu diễn này Chính vì thế mà WSMO đã giới thiệu một phần tử mô hình khác gọi là mediator
• Finally Mediators : mô tả những phần tử để giải quyết vấn đề bất đồng nhất giữa các phần tử khác nhau của WSMO Mediators là khái niệm chính để giải quyết sự không tương hợp trên các mức : dữ liệu (sự không trùng khớp giữa các thuật ngữ), xử lý (giữa yêu cầu sử dụng và khả năng đáp ứng), giao thức (service composition) Đặc tả hiện tại của WSMO bao gồm bốn kiểu mediators : ooMediator, ggMediator, wwMediator, wgMediator
o ooMediator : giải quyết sự sai lệch giữa các thực thể ontology
o ggMediator : tinh chế các yêu sử dụng gần giống nhau từ ontology nguồn đến ontology đích
o wgMediator : liên kết dịch vụ web và yêu cầu sử dụng
o wwMediator : liên kết giữa các dịch vụ web để thực hiện một chức năng
Để thể hiện các phần từ này, cần phải có một ngôn ngữ tương ứng là một ngôn ngữ
nền tảng (underlying language) cho WSMO
Trang 352.3.2 Ngôn ngữ nền tảng WSML
Mô hình WSML [7] cung cấp một framework cho những biến thể ngôn ngữ khác (những biến thể này sẽ được tìm hiểu rõ trong phần sau) để mô tả SWS Nó có những phần tử mô tả như: ontology, web service, goal, mediator WSML là một ngôn ngữ nền tảng bởi sự tổng hợp cú pháp con người có thể dể dàng đọc hiểu (gần với cách đọc của con người) Những mô tả sử dụng WSML nhằm mục đích tự động hoá việc: phát hiện, tổ chức và đưa ra yêu cầu cần đáp ứng các dịch vụ web
Những kịch bản ứng dụng khác nhau yêu cầu những biểu diễn luận lý bên dưới khác nhau Tuy nhiên, các ontology phổ biến cần phải được tái sử dụng và cần được kết hợp cùng với nhau Vì thế trong framework do WSML cung cấp, có một tầng cho phép sử dụng các thuật ngữ dùng chung này
So với một số ngôn ngữ khác được đề xuất cho SWS, WSML mang lại hiệu quả cao nhất cho SWS trong việc biểu diễn ngữ nghĩa WSML tạo nên một framework tổng quát trong việc đặc tả ontology WSML phân biệt một cách rõ ràng mô hình của các phần tử mô tả khác nhau như: ontology, web service, goal, mediator Hơn thế nữa, WSML tách biệt giữa cú pháp ý niệm và cú pháp luận lý Sự tách biệt này cho phép những người sử dụng thông thường có thể mô tả dễ dàng yêu cầu của mình bằng cú pháp ý niệm vì cú pháp ý niệm gần với ngôn ngữ tự nhiên (giúp cho người đọc hiểu một cách dễ dàng) Trong khi đó, cú pháp luận lý đòi hỏi người sử dụng phải biết về ngôn ngữ đặc tả
Phần tiếp theo, sẽ tìm hiểu các biến thể cơ bản của WSML [7]
Trang 36Hình 2.10 - Các biến thể của WSML [7]
• WSML-Core: thành phần biến thể này tương ứng với sự kết hợp giữa Logic
Mô tả và logic Horn [Grosof et al., 2003], mở rộng thêm phần hỗ trợ kiểu dữ liệu WSML-Core tương thích hoàn toàn với tập con OWL (ta có thể ánh xạ giữa WSML-Code và OWL)
• WSML-DL: mở rộng từ WSML-Core thành một thực thể của Logic Mô tả
• WSML_Flight: mở rộng WSML-Core ở những đặc điểm như meta modeling, contranst và nonmonotonic negation WSML-Flight bao ngôn ngữ quy tắc là F-Logics, nhưng vẫn cho phép lập luận ra quyết định đạt hiểu quả
• WSML-Rule: mở rộng WSML_Flight thành ngôn ngữ lập trình logic hoàn chỉnh
• WSML-Full: hợp nhất WSML-DL và WSML-Rule bằng phương pháp
First-Order logics, kết hợp với non-montonic mở rộng để nắm giữ phép phủ định
non-monotonic của WSML-Rule
Việc kết hợp giữa WSMO và WSML đã cho ra đời một số framework đáp ứng nhu cầu của SWS SSOA là một kiểu kiến trúc cho các công ty, tổ chức trong tương lai và SWS là nhân chính của kiểu kiến trúc này Phần tiếp theo ta sẽ phân tích một
Trang 37số hệ thống đại diện cho kiến trúc SSOA ở những bước đang phát triển, những ưu khuyết điểm của những hệ thống này và đề xuất một kiến trúc SSOA tối ưu hơn gọi
là SeFrame
2.4 Một số SSOA điển hình
Cho đến nay, đã ra đời nhiều hệ thống hiện thực SWS Những hệ thống này được xem như là đại diện cho kiểu kiến trúc đầu tiên minh hoạ cho khái niệm SSOA Hai hệ thống tiêu biểu là WSMX và IRS được xem là thành công nhất trong lĩnh vực này và đã có những ứng dụng thực tế nhất định Hai framework này đều áp dụng WSMO tiêu biểu nhất là WSMX kết hợp với khái niệm SOA đã tạo ra một kiểu kiến trúc mới gọi là SSOA Hai framework này sẽ được phân tích trong việc giải quyết vấn đề về EAI và B2B
2.4.1 WSMX (Web Service Modeling Execution Environment)
Trong phần này WSMX, ta sẽ được khảo sát chức năng, kiến trúc tổng thể và công nghệ, đồng thời nêu lên những hạn chế quan trọng của WSMX
2.4.1.1 Giới thiệu
WSMX là một môi trường thực hiện động các chức năng phát hiện, tổ chức (mediation) và đưa ra yêu cầu gọi các dịch vụ web WSMX được xây dựng trên WSMO [15] Các dịch vụ web đăng ký khả năng đáp ứng của nó với WSMX bằng những đặc tả theo thuật ngữ của WSMO sử dụng WSML [Orent et al., 2004] WSMX gọi một dịch vụ web thực thi thông qua lớp giao tiếp đã được đăng ký trước Một yêu cầu dịch vụ sẽ mô tả goal đến WSMX Công việc quan trọng của WSMX là tính toán sự tương thích giữa yêu cầu của goal và khả năng đáp ứng của một dịch vụ web, sau đó là chọn ra dịch vụ web thích hợp nhất và cuối cùng là gọi dịch vụ web đã được chọn
Trang 383 Adapter: là thành phần bên ngoài hệ thống WSMX, có nhiệm vụ chuyển đổi
thông điệp của thành phần ngoài WSMX (agent) sang dạng WSML
4 Compiler: là thành phần quan trọng trong hệ thống WSMX, chịu trách
nhiệm kiểm tra tính hợp lệ của cú pháp WSML Thông tin WSML được đưa đến compiler trong hai thao tác là đăng ký và thực thi dịch vụ web
5 Message Parser: có chức năng giống với compiler, nhưng nó phân tích cú
pháp WSML tại thời điểm chạy (thông điệp đến từ những ứng dụng chạy nền hoặc từ người sử dụng hệ thống)
6 Matchmaker: có nhiệm vụ là tìm kiếm những dịch vụ web tương ứng với
mục đích yêu cầu
Trang 397 Selector: nhận các dịch vụ web trả về từ matchmaker, sau đó chọn ra một
dịch vụ thích hợp nhất
8 Data mediator(ooMediator) và XML Converter: Data mediator là hiện
thực phần ooMediator dựa theo những đặc tả của WSMO, là phần con của thành phần Data Mediation Thành phần Data Mediation bao gồm hai thành phần con tương ứng với thời điểm phân tích và thời điểm chạy
• Thành phần phân tích: dùng để xác định độ giống nhau của hai khái niệm trong cùng một miền
• Thành phần chạy: thực hiện việc biến đổi trên dữ liệu
DataMediator chính là hiện thực thành phần chạy
Framework WSMX đã được áp dụng trong nhiều dự án nghiên cứu lớn và có áp dụng thử trong thực tế : Banking, eGoverment Tuy nhiên, do còn một số hạn chế làm cho nó chưa được áp dụng rộng rãi
2.4.1.3 Những hạn chế của WSMX
1 Khái niệm ontology là một khái niệm mới, nhưng đã có ứng dụng rộng rãi trong lĩnh vực web-ngữ nghĩa, nhưng áp dụng vào SSOA chỉ là ở bước đầu Bản thân mỗi ontology chỉ là một tập kiến thức cố định Việc biểu diễn ngữ nghĩa của thông tin bằng ontology là đạt hiểu quả Nhưng suy luận trên biểu
diễn này chỉ có thể làm bán tự động vì để suy luận hay bổ sung tri thức mới
từ nhưng tri thức cũ, đòi hỏi phải thêm vào các khái niệm mới và các mối quan hệ giữa các khái niệm vào đặc tả ontology Mặc dù WSMX hỗ trợ công việc này bằng một Editor, cho phép thêm hay bổ sung các đặc tả hay các mối quan hệ một cách dễ dàng Nhưng phần lớn công việc là làm bằng tay, chỉ các nhà phát triển hay các chuyên gia mới có đủ khả năng làm được điều này
Trang 402 WSMX chưa nhắm tới những người dùng thông thường, nó chưa đưa ra một
cách đặc tả gần với ngôn ngữ tự nhiên Hiện tại WSMX đòi hỏi các đặc tả phải tuân theo đặc tả WSML Người dùng bình thường khó có khả năng hiểu
và dùng để gọi một dịch vụ web đã được đăng ký vào WSMX, đòi hỏi họ phải có kiến thức như một nhà phát triển phần mềm
3 Thành phần Matchmaker hiện tại chỉ hiện thực một cách hết sức đơn giản là
so trùng chuỗi goal và phần đặc tả của dịch vụ web thay vì tìm sự tương
đương trên ngữ nghĩa mà các đặc tả này biểu diễn Chính vì cách hiện thực này đôi khi yêu cầu người dùng có thể được đáp ứng sai: thực hiện một dịch
vụ web không phù hợp với goal
4 Như ta đã nói ở trên, DataMediator là hiện thực thành phần chạy của thành phần Data Mediation, thiếu đi phần hiện thực thành phần phân tích WSMX
chỉ hiện thực ooMedaitor dùng để ánh xạ giữa ontology nguồn và đích,
không hiệu quả trong việc giải quyết việc ánh xạ giữa goals và dịch vụ web Hạn chế này sẽ được giả quyết trong SeFrame bằng cách hiện thực thêm
wgMediatos
Phần tiếp theo ta sẽ phân tích một framework khác là IRS