Tải bản đầy đủ (.docx) (22 trang)

TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN: XÂY DỰNG KHUNG ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (323.03 KB, 22 trang )

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




3

CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB
Hoàng Xuân Huy
Đại học Công Nghệ
Luận văn thạc sĩ ngành: Công nghệ thông tin. Mã số: 60.48.01.03
Người hướng dẫn khoa học: TS. Võ Đình Hiếu
Abstract: Luận văn tìm hiểu các kiến thức liên quan đến dịch vụ web XML,
SOAP, WSDL, UDDI. Đặc điểm thuộc tính chất lượng dịch vụ trong dịch vụ web,
các phương pháp so sánh dịch vụ web dựa vào nhiều thuộc tính chất lượng dịch vụ và
các phương pháp biểu diễn chất lượng dịch vụ. Ngoài ra, luận văn đưa ra các vấn đề
về tổng hợp dịch vụ, đàm phán dịch vụ web, tìm hiểu các nội dung về mã nguồn mở
Axis2. Trên cơ sở đó, tác giả trình bày một khung đàm phán chất lượng dịch vụ cho
dịch vụ web trong lĩnh vực du lịch. Khung đàm phán này là công cụ sử dụng cho
nghiên cứu và giảng dạy. Ngoài ra, sản phẩm khung đàm phán này được hoàn thiện
như mong muốn của tác giả thì nó có thể được đem vào ứng dụng thực tế trong lĩnh
vực du lịch.
Keyword: dịch vụ web, SOAP, WSDL, UDDI, chất lượng dịch vụ web, tổng
hợp dịch vụ, đàm phán dịch vụ web, Axis2.


4

LỜI MỞ ĐẦU
1.

Đặt vấn đề, định hướng nghiên cứu
Dịch vụ web ra đời, nó được coi là một trong những cuộc cách mạng công nghệ.

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




dịch vụ web,chính sách đàm phán, giao thức đàm phán, thông điệp đàm phán.
Chương 3: Trình bày Axis2, giới thiệu về Axis2, Mô đun xử lý XML, mô đun thông



tin, mô đun xử lý thông điệp SOAP, mô đun triển khai, mô đun client API
Chương 4: Đưa ra mô hình khung đàm phán chất lượng dịch vụ dịch vụ web, các
dịch vụ được triển khai trên Axis2, cài đặt thử nghiệm bằng ngôn ngữ Java và sử
dụng các thư viện của Axis2.


5


Kết luận & định hướng: tổng kết lại những kiến thức tìm hiểu và trình bày trong luận
văn, đánh giá kết quả làm được. Đưa ra các hướng phát triển trong tương lại.


6

Chương 1. TỔNG QUAN VỀ DỊCH VỤ WEB
1.1 Giới thiệu về dịch vụ web
Dịch vụ web là một thiết kế hệ thống phần mềm để cung cấp các phương tiện
cho các phần mềm giao tiếp với nhau trên môi trường mạng hoặc internet. Dịch vụ
web dựa trên các chuẩn XML, nên dịch vụ web cho phép các ứng dụng truy cập trên
nó thông qua các giao thức và định dạng dữ liệu phổ biến như HTTP, XML,
SOAP,REST, WSDL, JSON. Vì vậy các ứng dụng trao đổi dữ liệu với nhau trên dịch

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


Thành phần mở gồm lớp chất lượng dịch vụ và lớp xử lý logic. Thành phần mở
có vai trò hỗ trợ phát triển các yêu cầu cao cấp trong xây dựng dịch vụ web.
1.4 Phương pháp tiếp cận để tổng hợp dịch vụ tự động
Có hai loại tổng hợp dịch vụ là tổng hợp dịch vụ bằng tay và tổng hợp dịch vụ
tự động. Trong tổng hợp dịch vụ tự động có hai phương pháp tiếp cận chính là:
Phương pháp dựa trên quy trình công việc (workflow) và phương pháp dựa vào lập
kế hoạch trí tuệ nhân tạo.


8

Chương 2. CHẤT LƯỢNG DỊCH VỤ
VÀ ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ
2.1 Chất lượng dịch vụ
Ngày nay, các dịch vụ web ngày càng phát triển. Chúng không chỉ được phát
triển trên nền tảng web mà chúng còn đang được phát triển mạnh mẽ trên nền tảng di
động. Vì vây, vấn đề chất lượng dịch vụ đang rất được quan tâm.
2.1.1 Các thuộc tính chất lượng dịch vụ
Chất lượng dịch vụ có thể được sử dụng để xác định các thuộc tính phi chức
năng của dịch vụ. Các thuộc tính chất lượng dịch vụ được định nghĩa cụ thể cho các
dịch vụ web chẳng hạn như: Độ sẵn sàng, an ninh, thời gian đáp ứng, chi phí, thông
lượng, độ tin cậy.
2.1.2. Phương pháp cung cấp chất lượng dịch vụ
Cung cấp thông tin chất lượng dịch vụ của các dịch vụ thành phần đóng vai trò
quan trọng trong việc tổng hợp chất lượng dịch vụ web. Đối với mỗi dịch vụ web
thành phần đã có nhiều giải pháp được đề xuất để cung cấp thông tin chất lượng dịch
vụ
Sử dụng UDDI để chứa thông tin chất lượng dịch vụ, bằng cách đăng ký thông
tin chất lượng dịch vụ tại UDDI. Bởi vì cấu trúc của nó cho phép mô tả các thông tin
chất lượng dịch.

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

2.2.3 Giao thức đàm phán
Giao thức đàm phán sử dụng để mô tả cơ chế và quy tắc của các bên đàm phán.
Các giao thức này xác định các bên có thể tương tác với nhau và trả ra ảnh hướng
quyết định chúng. Hệ thống hỗ trợ đàm phán được viết tắt là NSS là một kiến trúc
dịch vụ web cho phép trao đổi thông điệp đàm phán của nhà cung cấp dịch vụ hoặc
nhà yêu cầu dịch vụ với dịch vụ đàm phán thứ ba. Các dịch vụ đàm phán này thường
là một dịch vụ web, dịch vụ đàm phán xác định một tập các giao thức đàm phán
nguyên thủy, để nhà yêu cầu dịch vụ và nhà cung cấp dịch vụ có thể giao tiếp và hoạt
động cùng nhau


10

Chương 3. TÌM HIỂU VỀ MÃ NGUỒN MỞ AXIS2
3.1. Giới thiệu về Axis2
Axis2 là khung chương trình triển khai dịch vụ web. Ngoài ra Axis2 là mã
nguồn mở cho phép các phát triển thêm các tính tiện ích xung quanh dịch vụ web.
Axis2 cung cấp một khung chương trình để xử lý các thông điệp SOAP. Khung
chương trình này có thể được mở rộng và người dùng có thể mở rộng trong các xử lý
thông điệp SOAP hoặc trong các hoạt động cơ sở. Axis2 có khả năng triển khai một
dịch vụ web với sự hỗ trợ của WSDL hoặc không cần WSDL. Axis2 cung cấp giao
diện thao tác người dùng (Client API) sử dụng để gọi các dịch vụ web. Giao diện
thao tác người dùng có thể hỗ trợ cho các hai mô hình đồng bộ và bất đồng bộ.
3.2. Mô đun xử lý XML
Axis1 sử dụng DOM để thể hiện lược đồ XML và toàn bộ cấu trúc phân cấp
đầy đủ của đối tượng (tương ứng với các thông điệp đến) được lưu trữ trong bộ nhớ.
Điều này không có vấn đề gì khi kích thước của thông điệp là nhỏ. Nhưng khi kích
thước của thông điệp lớn, nên đây là một vấn đề của Axis1. Axis2 đã khắc phụ điều
này bằng cách sử dụng một kỹ thuật mới gọi là trục mô hình đối tượng (AXIs Object
Model - AXIOM) để thể hiện lược đồ XML.

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ó

nhiệm vụ hỗ trợ việc thứ tự động của các xử lý (handlers).
Dòng chảy hay gọi là luồng (flow) là tập hợp các giai đoạn và thứ tự các giai
đoạn theo một dòng chảy xác định được định nghĩa ở tập tin cấu hình axis2.xml. Có
bốn loại dòng chảy được định nghĩa trong Axis2: Dòng chảy InFlow, dòng chảy
InFaulFlow, dòng chảy OutFlow, dòng chảy OutFaultFlow.
3.6 Mô đun giao vận và mô đun triển khai
Axis2 được thiết kế để khắc phục các nhược điểm trên và cung cấp một cách
linh hoạt, thân thiện, và một mô hình cấu hình triển khai khá dễ dàng.
Axis2 có hai loại giao vận là giao vận gửi (Transport Senders) và giao vận
nhận ( Transport Receivers). Chúng được truy cập thông qua tệp cấu hình trên Axis2.
Giao vận nhận có nhiệm vụ nhận thông điệp, giao vận gửi có nhiệm vụ gửi thông
điệp ra ngoài. Hơn nữa giao vận gửi và giao vận nhận là hoàn toàn độc lập.
Axis2 sẽ coi như là một bản cập nhật nóng. Khi Axis2 tìm thấy một tệp mới,
nó sẽ đối xử như một triển khai nóng. Triển khai nóng là triển khả năng triển khai các
dịch vụ mới trong khi hệ thống đang chạy ở thời gian thực. Trong hệ thống quản trị
của Axis2 nếu bạn không muốn triển khai nóng, bạn có thể thay đổi dễ dàng ở tệp cấu
hình axis2.xml.
Chương 4. XÂY DỰNG KHUNG ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ
CHO DỊCH VỤ WEB
Trong lĩnh vực dụ lịch chúng ta đang có các dịch vụ đặt tour, dịch vụ đặt phòng,
dịch vụ đặt vé máy bay, dịch vụ đặt xe, dịch vụ tra cứu thời tiết… Thông thường các
dịch vụ này là miễn phí để tạo điều kiện thuận lợi trong phát triển du lịch.


12

Nhưng một số nhà cung cấp dịch vụ yêu cầu phải trả phí khi sử dụng để giảm bớt
thông tin rác. Bởi đối tượng khách hàng là những người VIP, giàu đó và các dịch vụ này
phục vụ cho các khách sạn, tour thuộc hạng sang. Đặc điểm của các dịch vụ này là:
-


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

về chất lượng dịch vụ.
4.1 Mô tả bài toán
Giả sử, Book_WSi là các dịch vụ thành phần với (i= 1, 2) tương ứng là dịch vụ
đặt phòng BookHotel và đặt tour BookTour. Trong đó BookHotel có 3 hàm dịch vụ
đặt phòng giống nhau, chúng chỉ khác nhau về chất lượng dịch vụ ký hiệu
FuncHotelj, với (j=1, 2, 3) lần lượt là: FuncHotel1, FuncHotel2, FuncHotel3.
Ngoài ra BookHotel có hàm dịch vụ GetQoS, hàm này sẽ trả ra danh sách đối
tượng chất lượng dịch vụ ObjQoS của các hàm đặt phòng trên. Tương tự, ta có


13

BookTour có 4 hàm dịch vụ đặt tour ký hiệu FuncTourk, với (k= 1, 2, 3, 4) lần lượt
là: FuncTour1, FuncTour2, FuncTour3, FuncTour4.
Dịch vụ BookTour cũng có hàm dich vụ GetQoS trả ra danh sách đối tượng
chất lượng dịch vụ ObjQoS của các hàm đặt tour. Giả sử trong khung đàm phán này
chỉ xét 3 thuộc tính chất lượng dịch vụ cost, time, avaiablity tương ứng có ý nghĩa là
giá cả, thời gian và độ sẵn sàng. Khi đó ObjQoS = {cost, time, avaiablity}.
Gọi Travel_WS là dịch vụ tổng hợp trong khung đàm phán. Trong đó
Travel_WS có các giá trị chất lượng dịch vụ đầu vào (const_cost, const_time,
const_avaiablity). Dịch vụ WS_Travel sẽ có nhiệm vụ chọn cặp (FuncHotelj,
FuncTourk) của các dịch thành phần Book_WSi thỏa mãn biểu thức sau
<=

.

4.2 Kiến trúc khung đàm phán
Mô tả như hình vẽ dưới đây

Hình 2: Kiến trúc khung đàm phán

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.



16

4.4.2 Các giao thức đàm phán của các dịch vụ web thành phần
Bảng các giao thức của dịch vụ đặt phòng khách sạn BookHotel
Tên giao thức
ACK_ProposalOK
ACK_Reject
FuncHotel1
FuncHotel2
FuncHotel3
Counter_Confirm
Refuse
Bảng các giao thức của dịch vụ đặt vé BookTour
Tên giao thức
ACK_ProposalOK
ACK_Reject
FuncTour1
FuncTour2
FuncTour3
Counter_Confirm
Refuse
4.5 Một số phương pháp chọn dịch vụ tối ưu dựa trên chất lượng dịch vụ trong
đàm phán dịch vụ
Phương pháp so sánh đặc điểm thuộc tính chất lượng dịch vụ
Đây là phương pháp so sánh đơn giản, sử dụng phương pháp pair-wise (cặp – khôn ngoan)
để so sánh các thuộc tính chất lượng dịch vụ cơ sở. Phương pháp pair-wise chọn ra hai thực
thể bất kỳ từ các nhóm so sánh, sau đó thực hiện so sánh từng cặp thuộc tính của chúng. Các
thực thể chiến thắng khi có số lượng lớn các thuộc tính là chiến thắng. Thực thể chiến thắng

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


Dịch vụ A và B là cặp đầu tiên được chọn để so sánh. Dịch vụ B được tìm thấy tốt hơn dịch
vụ A ở hai thuộc tính Response-time and Security, ngược lại dịch vụ A tốt hơn dịch vụ B ở
thuộc tính Accuracy. Vì vậy B thắng A với tỉ số tương ứng 2-1, nên B tiếp tục được chọn để
so sánh với C. Tương tự như vậy, trong phép so sánh B với C thì B thắng C với tỉ số 2-1.
Cuối cùng B là người chiến thắng

Phương pháp đánh giá bình thường
Phương pháp đánh giá bình thường trên các thuộc tính khắc phục hạn chế của các mức độ
khác nhau của các thuộc tính. Trong phương pháp này, giá trị của các thuộc tính được bình
thường hóa bằng cách gán 1 cho dịch vụ có giá trị thuộc tính lớn nhất và 0 cho dịch vụ có
giá trị thuộc tính nhỏ nhất. Tất cả các giá trị của thuộc tính chỉ thuộc trong đoạn [0,1] và
được phân bổ tỉ lệ thuận với giá trị thực của nó. Tổng của các xếp hạng bình thường cho
mỗi dịch vụ được tính toán và dịch vụ nào có tổng lớn nhất được coi là tốt nhất. Hình vẽ
dưới đây mô tả cách chuyển giá trị thực của thuộc tính sang giá trị mới sử dụng phương
pháp đánh giá bình thường

Hình 25: Phương pháp đánh giá bình thường
Nhược điểm của phương pháp này là không giải quyết được vấn đề độ ưu tiên của các thuộc
tính trong mỗi dịch vụ

Phương pháp gán trọng số


18

Sự hạn chế của các thuộc tính có độ quan trọng như nhau trong mỗi bên đàn phán được
khắc phục bằng gán cho thuộc tính đó với một trọng số thích hợp. Một thuộc tính có trọng
số cao hơn là có tầm quan trọng hơn. Một vấn đề đặt ra làm thế nào xác định được những
trọng số và xác định được dịch vụ tối ưu nhất. Phương pháp gán trọng số này đã mượn lý

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
-


Xây dựng dịch vụ tổng hợp tự động về chất lượng dịch vụ. Dịch vụ tổng hợp đề cử ra
danh sách các hàm dịch vụ tối ưu nhất với yêu cầu đưa ra.


20

-

Khung cho phép tổng hợp nhiều thuộc tính chất lượng dịch vụ, phân loại mức độ ưu
tiên các thuộc tính chất lượng dịch vụ. Việc cập nhật các thuộc tính chất lượng dịch

-

vụ được thực hiện trên tệp cấu hình, hệ thống tự động ghi nhận điều này.
Các giao hàm dịch vụ của dịch vụ thành phần hay dịch vụ tổng hợp đều có thời gian
giới hạn. Việc tổng hợp chỉ được thực hiện trong một khoảng thời gian giới hạn. Nếu
quá thời gian giới hạn thì việc tổng hợp này được coi là thất bại.
Sau đây là một số hướng phát triển của luận văn

-

Xây dựng cách tính chất lượng dịch vụ dựa trên một số thuật toán và nghiên cứu đã

-

báo cáo trong các hội nghị khoa học.
Xây dựng mô hình và cơ chế cho phép người dùng và nhà phát triển có thể tùy biến

-


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,


July

20,

(2012).
2006.

/>[8] Deepal Jayasinghe, December 13, 2006, Invoking Web Services using Apache
Axis2.
/>[9] Eran Chinthaka,Introducing AXIOM - The Axis Object Model,10-2005.
/>[10] Samisa Abeysinghe, Flows- Phases - Handlers and Modules, Feb - 2007.
/>[11] Patrick C.K.Hung, Haifei Li, Jun-Jang Jeng. An Overview of Research Issues
WS-Negotiation. Proceedings of the 37th Hawaii International Conference on System
Sciences - 2004.
[12] O'Reilly, Programming Web Services with SOAP, December 2001
[13]O'Reilly, Java Web Services, First Edition March 2002
[13] ABDALDHEM AL BRE SHNE - PATRIK FUHRER - JACQUE S
PASQUIER, Web Services Technologies: State of the Art, September 2009
[14] Yutu Liu- Anne H.H. Ngu - Liangzhao Zeng, QoS Computation and Policing in
Dynamic Web Service Selection, WWW2004, May 17–22, 2004, New York, USA.
[15] Farhana Zulkernine and Patrick Martin,Chris Craddock-SVP, Kirk Wilson-Ph.D.
A Policy-based Middleware for Web Services SLA Negotiation
[16] Mahboobeh Moghaddam, Joseph G. Davis1. Service Selection in Web Service
Composition: A Comparative Review of Existing Approaches, 1-2011
[17] W3C: SOAP 1.2, April 2007.


22

/>[18] W3C: WSDL 1.1, March 2001.

/>[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.



×