X`ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG XUÂN HUY
XÂY DỰNG KHUNG ĐÀM PHÁN
CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB
Ngành
: Công nghệ thông tin
Chuyên ngành : Kỹ thuật phần mềm
Mã số
: 60.48.01.03
TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG XUÂN HUY
XÂY DỰNG KHUNG ĐÀM PHÁN
CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB
Ngành
: Công nghệ thông tin
Chuyên ngành : Kỹ thuật phần mềm
Mã số
: 60.48.01.03
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. VÕ ĐÌNH HIẾU
Hà Nội - 2014
Bởi dịch vụ web cho phép các ứng dụng trao đổi dữ liệu với nhau thông qua Internet và
các giao thức chuẩn mà không cần quan tâm đến nền tảng công nghệ bên trong nó. Ngày
nay, dịch vụ web được phát triển rất phổ biến và được triển khai ở rất nhiều lĩnh vực
trong đời sống. Khi ngày càng nhiều các dịch vụ web cung cấp các chức năng tương tự
nhau, để phân biệt các chức năng dịch vụ này thường dựa vào thông tin chất lượng dịch
vụ của chúng. Hơn nữa, các yêu cầu của người dùng thường phức tạp mà các dịch vụ
đơn lẻ không thể đáp ứng được những yêu cầu này. Vì vậy, cần phải xây dựng dịch vụ
tổng hợp từ các dịch vụ đơn lẻ mới thỏa mãn được yêu của người dùng.
Có vấn đề được đưa ra, làm thế nào chọn ra các chức năng phù hợp nhất trong
số các chức năng giống nhau thuộc các dịch vụ đơn lẻ để phục vụ cho tổng hợp dịch
vụ. Để trả lời cho câu hỏi này, tác giả sử dụng mô hình chất lượng dịch vụ để phân
biệt các hàm dịch vụ giống nhau và sử dụng phương pháp để chọn hàm dịch vụ tối ưu
nhất trong kho hàm dịch vụ của mỗi dịch vụ thành phần. Từ đó, tác giả đề xuất giải
2.
−
−
pháp xây dựng một khung đàm phán chất lượng dịch vụ cho dịch vụ web.
Nội dung của luận văn
Luận văn được chia thành các phần chính như sau:
Mở đầu: Phần đặt ra vấn đề đưa mục tiêu và giải pháp cho bài toán.
Chương 1: giới thiệu tổng quan, các khái niệm cơ bản về dịch vụ web, kiến trúc của
dịch vụ web, mô hình phân tầng trong dịch vụ web, các phương pháp tiếp cận tổng
−
hợp dịch vụ web tự động.
Chương 2: Trình bày về chất lượng dịch vụ trong dịch vụ web, các thuộc tính chất
lượng dịch vụ, các phương pháp cung cấp chất lượng dịch vụ. Vấn đề đám phán trong
vụ web không cần quan tâm đến các vấn đề hệ điều hành, nền tảng của ứng dụng của
nhau
1.2 Kiến trúc dịch vụ web
Có ba vai trò trong kiến trúc dịch vụ web bao gồm: Nhà cung cấp dịch vụ, nhà
yêu cầu dịch vụ, đăng ký dịch vụ.
1.2.1 SOAP
SOAP là một giao thức đóng gói các thông điệp dựa trên XML. SOAP cung
cấp cơ chế đơn giản và nhẹ trao đổi thông tin giữa các ứng dụng trong môi trường
phân tán sử dụng XML.
Cấu trúc của thông điệp SOAP bao gồm : Phong bì thư SOAP, trong phong bì
thư SOAP bao gồm các thành phần sau: Phần tiêu đề, phần thân, phần lỗi.
1.2.2 WSDL
Ngôn ngữ miêu tả dịch vụ web được viết tắt là WSDL. WSDL là một định
dạng XML, nó định nghĩa các cú pháp XML để miêu tả trừu trượng các thành phần
của một dịch vụ web. Các phần tử sau được định nghĩa trong tài liệu WSDL để miêu
tả các dịch vụ: Types, Message, PortType, Binding, Port, Service.
1.2.3 UDDI
Mô tả và khám phá dịch vụ web được viết tắt là UDDI. UDDI được xây dựng
dựa trên một số tiêu chuẩn công nghệ, bao gồm các thành phần sau: HTTP, XML,
XSD, SOAP và WSDL. Vì vậy nó là nơi chứa thông tin về dịch vụ, cho phép đăng ký
dịch vụ và cho phép tìm kiếm dịch vụ.
1.3 Mô hình phân lớp dạng ngăn xếp trong dịch vụ web
Trong kiến trúc dịch vụ web bao gồm hai thành phần: Thành phần lõi và thành
phần mở rộng. Trong đó, thành phần lõi là thành phần bắt buộc của một dịch vụ web.
Nó bao gồm các lớp sau: Lớp giao thức giao tiếp, lớp thông điệp gồm các dữ liệu
dạng XML và giao thức SOAP, lớp miêu tả WSDL và lớp khám phá UDDI.
7
Sử dụng SOAP để lưu trữ thông tin chất lượng dịch vụ. Do SOAP có khả năng
hỗ trợ tìm kiếm dịch vụ web, nên chúng ta có thể đính kèm thông tin chất lượng dịch
vụ trong mục tìm kiếm này.
Một phương án nữa được đề xuất là xây một dịch vụ
WS_QoS độc lập chỉ chứa thông tin về chất lượng dịch vụ hoặc
xây dựng các hàm riêng biệt chứa thông tin chất lượng dịch vụ Sử dụng SOAP.
Trước khi người dùng muốn sử dụng một hàm dịch vụ, người dùng sẽ kiểm tra thông
tin chất lượng dịch vụ của nó thông qua WS_QoS hoặc qua các hàm chứa thông tin
chất lượng dịch vụ.
2.2. Đàm phán dịch vụ web
Đàm phán là một sự tương tác giữa hai hay nhiều bên trong một nỗ lực đạt
được một số thỏa thuận về một khía cạnh cụ thể. Khía cạnh về đàm phán có thể một
mức giá của một hàng hóa trong thương mại điện tử hoặc chi phí phải trả để sử dụng
một dịch vụ.
9
2.2.1 Chính sách đàm phán
Chính sách được hiểu cơ bản là đặt ra các quy tắc trong đó xác định một hành
động hay một sự xác nhận được thực hiện khi một điều kiện nhất định nào đó được
đáp ứng, khi đó dẫn đến các quyết định được hiện để đạt mục tiêu nhất định. Mỗi
chính sách đàm phán thường có một đặc tả miền cụ thể khác nhau. Các yếu tố chính
trong miền là: Ngữ cảnh, mục đích, ràng buộc, vấn đề ưu tiên hay vấn đề tùy chọn và
một số yếu tố khác như ở hình dưới đây.
2.2.2 Thông điệp đàm phán
Các thành phần đàm phán sử dụng thông điệp để trao đổi với nhau trong quá
trình đàm phán. Khi dịch vụ A đàm phán dịch B thì một thông điệp yêu cầu (Request
message) được gửi từ dịch A tới dịch vụ B, dịch vụ B sẽ phản hồi cho thông điệp A
với một thông điệp phản hồi (Respone message).
3.3. Mô đun xử lý thông tin
Các ứng dụng đòi hỏi khả năng hỗ trợ hai loại dữ liệu tĩnh và dữ liệu động
trong khi sử dụng một khung của dịch vụ web (Web service framework). Hiện nay
một số khung dịch vụ web có thể đáp ứng được điều này. Axis2 có hai hệ thống phân
cấp các đối tượng để hỗ trợ dữ liệu tĩnh cũng như dữ liệu động. Mô hình thông tin có
hai hệ thống phân cấp chính là ngữ cảnh (context) và sự mô tả ( description). Trong
đó hệ thống phân cấp mô tả (Description) biểu diễn dữ liệu tĩnh. Dữ liệu tĩnh này
được nạp từ một tập tin cấu hình . Mặt khác, hệ thống phân cấp ngữ cảnh (Context)
chứa nhiều thông tin động về một đối tượng và nó có thể có nhiều hơn một thể hiện.
3.4. Mô đun xử lý thông điệp SOAP
Nhận và gửi thông điệp SOAP có thể coi là hai trong số những công việc chủ
yếu của máy xử lý SOAP. Trong kiến trúc Axis2 cung cấp hai đường ống để thực
hiện hai hành động cơ bản là nhận và gửi thông điệp SOAP. Hai đường ống này có
tên là InPipe và OutPipe. Các mẫu tin nhắn trao đổi phức tạp ký hiệu MEPs, nó được
11
xây dựng bởi kết nối hai loại ống InPipe và OutPipe. Ngoài ra còn hai đường ống
khác có mục đích hỗ trợ cho các thông điệp gửi đến và gửi đi bị lỗi.
3.5. Xử lý, giai đoạn, luồng trong Axis2
Axis2 xây dựng cơ chế xử lý (handlers) làm tăng khả năng mở rộng mềm dẻo
trong mô hình xử lý thông điệp SOAP, nó còn cung cấp thêm các tiện ích dịch vụ
(Add on services) cho nhiệm vụ hay hệ thống khác.
Xử lý (handler) trong Axis2 là không trạng thái, nghĩa là Axis2 không giữ các
trạng thái đã qua thực hiện của chúng trong bộ nhớ. Một xử lý (handler) có thể có
quyền đọc hoặc viết vào ngữ cảnh thông điệp ( Message context) hoặc một thông
điệp SOAP đến.
Khái niệm giai đoạn (phase) được giới thiệu trong Axis2, giai đoạn là nơi đặt
các xử lý (handlers) trong một chuỗi dây chuyền của các thực hiện. Giai đoạn có
Các dịch vụ là riêng lẻ, độc lập, được cung cấp bởi các nhà cung cấp dịch vụ khác
-
nhau.
Các dịch vụ có nhiều hàm dịch vụ có chức năng tương tự nhau, chúng được phân biệt
nhau dựa vào thông tin chất lượng dịch vụ. Các hàm này được gọi là hàm chức năng.
-
Ký hiệu thông tin chất lượng dịch là QoS.
Các dịch vụ có một số hàm dịch vụ chuyên cung cấp QoS cho hàm chức năng. Các
hàm này được gọi là hàm dịch vụ phi chức năng hay hàm phi chức năng. Các hàm
phi chức năng cho phép người dùng hỏi thông tin chất lượng dịch của các hàm chức
-
năng, từ đó người dùng sẽ quyết định nên sử dụng hàm chức năng nào cho phù hợp.
Các dịch vụ này được ký hiệu là Book_WSi, xét trong ngữ cảnh của khung đàm phán
của luận văn thì i= 1, 2. Đồng thời Book_WSi là các dịch vụ thành phần của khung
đàm phán được mô tả ở mục 4.1
Các yêu cầu của người dùng thường là phức tạp, các dịch vụ đơn lẻ hầu như
không đáp ứng được. Vì vậy, cần thiết phải xây dựng một dịch vụ tổng hợp mới,
dịch vụ này thực hiện tổng hợp từ các dịch vụ thành phần. Có hai loại trong tổng hợp
dịch vụ: Một là tổng hợp các hàm dịch vụ chức năng, hai là tổng hợp các hàm dịch vụ
phi chức năng.
Trong nội dung của luận văn này chỉ thực hiện tổng hợp các hàm dịch phi chức
năng để tạo ra một dịch tổng hợp mới. Cụ thể xây dựng một khung đàm phán chất
lượng dịch vụ cho dịch vụ web, kết quả của khung đàm phán là tạo một dịch tổng hợp
4.3 Giao thức đàm phán giữa dịch vụ tổng hợp Travel_WS với các dịch vụ thành
phần
Dịch vụ Travel_WS sẽ đàm phán với tất cả các dịch vụ thành phần và sử dụng
phương pháp đàm phán tuần tự. Nghĩa là Travel_WS sẽ lần lượt đàm phán với các
dịch vụ thành phần. Quá trình đàm phán được kết thúc khi Travel_WS đàm phán
xong với tất cả các dịch vụ thành phần và đưa ra kết quả, hoặc sẽ kết thúc khi thời
14
gian đàm phán quá giới hạn, hoặc phát sinh lỗi không thể kiểm soát bắt buộc phải kết
thúc đàm phán.
4.3.1 Biểu đồ tuần tự về đàm phán giữa Travel_WS với một dịch vụ thành phần
Hình 3: Biểu đồ tuần tự đàm phán dịch vụ giữa Travel_WS với các dịch vụ
thành phần
4.3.2 Biểu đồ hoạt động trong đàm phán dịch vụ
15
Hình 20: Lược đồ trạng thái của quá trình tổng hợp dịch vụ giữa Travel_WS với
các dịch vụ thành phần.
4.4 Vai trò các dịch vụ web thành phần BookHotel,
BookTour trong khung đàm phán
4.4.1 Thông tin chất lượng dịch vụ của các dịch vụ web thành phần
Các dịch vụ thành phần như BookTour, BookHotel đọc tệp tin cấu hình để xác
định số lượng và tên các thuộc tính chất lượng dịch vụ, để trả về cho dịch vụ tổng
hợp. Khi số lượng thuộc tính trên tệp cấu hình thay đổi thì số lượng thuộc tính chất
lượng dịch vụ của dịch vụ thành phần trả về cho dịch vụ tổng hợp cũng thay đổi.
sau đó tiếp tục đi so sánh với thực thể thứ ba. Quá trình cứ như vậy cho đến khi tất cả các
thực thể được so sánh.
Sau đây là một ví dụ cụ thể, gọi A, B và C là ba dịch vụ với ba thuộc tính Accuracy,
Response-time and Security được thể hiện ở bảng dưới đây.
A
B
C
Accuracy
1
2
3
Response-time
2
1
3
Security
3
1
2
Tổng
6
4 (*)
8
17
thuyết giả tương đương và phương pháp bất tương đương (Hypothetical Equivalents and
Inequivalents Method) ký hiệu là HEIM để gán trọng số cho các thuộc tính. Xét một ví dụ
cụ thể sau để mô tả phương pháp HEIM.
Gọi HS1, HS2, … HS10 là 10 dịch vụ và mỗi dịch vụ có 3 thuộc tính là Accuracy,
Response-time and Security với các giá trị được gán, như ở trong hình vẽ dưới đây
Hình 26 : Bảng giá trị thuộc tính của phương pháp gán trọng số
Mỗi thuộc tính được gán trọng số Wi và tổng các trọng số như ở biểu thức dưới đây
(1)
Tổng giá trị các thuộc tính trong mỗi dịch vụ web HSi được tính theo công thức sau
HSi = (2)
19
Trong số Vi, Wi là giá trị và trọng số của thuộc tính thứ i. Khi đó tổng giá trị các thuộc tính
có gán trọng số của các dịch vụ HSi như ở hình vẽ dưới đây
Hình 27 : Bảng giá trị thuộc tính và tính toán giá trị thuộc tính gán trọng số
Thực hiện tính tổng của từng HSi, nếu HSi có tổng lớn nhất thì HSi đó được chọn và coi là
tối ưu nhất. Đã có một số nghiên cứu rất cụ thể để xác định được trọng số của các thuộc tính
được trình bày tài liệu mục [22][23] , ngoài ra có một phương pháp nữa để xác định mỗi
trọng số Wi là tối ưu biểu thức sau , do các trọng số Wi phải thỏa mãn biểu thức (1).
Áp dụng phương pháp gán trọng số để tổng hợp nhiều thuộc tính chất lượng dịch của
dịch vụ web thành phần trong khung đàm phán
KẾT LUẬN VÀ ĐỊNH HƯỚNG
Dưới đây là các kết quả mà khung đàm phán đã đạt được
-
chọn phân loại hay độ ưu tiên chất lượng dịch.
Xây dựng một mô đun chất lượng dịch triển khai trên Axis2, nó là nơi cung cấp đầu
vào thông tin chất lượng dịch vụ. Việc này phục cho các nhà phát triển và nhà cung
cấp dịch vụ
21
Tài liệu tham khảo
[1] Deepal Jayasinghe & Afkham Azeez, Apache Axis2 Web Services 2nd Edition,
February 2011
[2] Buda Claudio, Web Services & Axis2 Architecture & Tutorial, June 2007
[3] Kent Ka Iok Tong, Developing Web Services with Apache Axis2, Second edition
March 2008
[4] Deepal Jayasinghe, Quickstart Apache Axis2, May 2008
[5] Apache Axis2: Architecture Guide Apache Axis2, Version: 1.6.2(2012).
/>[6]
Apache
Axiom:
Axiom
User
Guide,Version:
1.2.14
/>[7]
Eran
Chinthaka,
Introduction
to
StAX,
/>[19] W3C: XML 1.0, November 2008
/>[20] w3schools: UDDI,
/>[21] Abhishek Srivastava, Paul G. Sorenson. Service Selection based on Customer
Rating of Quality of Service Attributes. 2010 IEEE International Conference on Web
Services
[22] D. Luenberger, Linear and Nonlinear Programming,Addison-Wesley, Reading
(MA), 1984.
[23] C. L. Hwang, J. L.Williams, and L. T. Fan, Introduction to the generalized
reduced gradient method, Institute for Systems Design and Optimization, Kansas
State University (Manhattan),1972.