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

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 (741.65 KB, 86 trang )

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

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

1


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
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. VÕ ĐÌNH HIẾU

Hà Nội - 2014
LỜI CAM ĐOAN
Tôi xin cam đoan rằng, đây là kết quả nghiên cứu của tôi trong đó có sự giúp đỡ rất
lớn của thầy hướng dẫn. Các nội dung nghiên cứu và kết quả trong đề tài này hoàn
toàn trung thực.


Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đã được liệt
kê tại phần tài liệu tham khảo ở cuối luận văn.
Hà Nội, tháng năm
Học viên thực hiện

Hoàng Xuân Huy

2


LỜI CẢM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy
trong chương trình Cao học khóa 18, ngành công nghệ phần mềm, khoa công nghệ
thông tin trường đại học Công Nghệ. Đặc biệt, tôi xin cảm ơn TS. Phạm Ngọc
Hùng đã nhiệt tình chỉ bảo tôi trong suốt quá trình học.
Tôi xin chân thành cảm ơn sâu sắc TS. Võ Đình Hiếu, thầy đã tận tình và
tâm huyết hướng dẫn cho tôi trong suốt thời gian làm luận văn.
Do thời gian có hạn và kinh nghiệm trong nghiên cứu khoa học chưa nhiều
nên luận văn vẫn còn những thiếu xót, tôi rất mong nhận được ý kiến góp ý của
Thầy/Cô và các anh chị học viên.
Hà Nội, tháng năm
Học viên thực hiện

3


Hoàng Xuân Huy

MỤC LỤC


4


DANH MỤC TỪ VIẾT TẮT
Chữ viết tắt

Tiếng Anh

XML

eXtensible Markup Language

SOAP

Simple Object Access Protocol

WSDL

Web Services Description Language

XSD

XML Schema Definition

UDDI

Universal Description, Discovery and Integration

RPC


Remote Procedure Call

JSON

JavaScript Object Notation

REST

Representational State Transfer

AXIOM

AXis Object Model

DOM

Document Object Model

HTTP

HyperText Transfer Protocol

SMTP

Simple Mail Transfer Protocol

FTP

File Transfer Protocol


JMS

Java Message Service

TCP

Transmission Control Protocol

MEPs

Message Exchange Patterns

DANH MỤC CÁC HÌNH

5


6


DANH MỤC CÁC BẢNG

7


8

MỞ ĐẦU
Ngày nay, công nghệ dịch vụ Web được áp dụng phổ biến và trở một phần
quan trọng trong các hệ thống thông tin. Dịch vụ Web được áp dụng trên nhiều

miền ứng dụng khác nhau như trong thương mại điện tử, du lịch, giáo dục …. Có
được điều này do dịch vụ Web cung cấp phương tiện cho phép các ứng dụng phần
mềm chạy trên nhiều nền tảng khác nhau trao đổi với nhau trên môi trường mạng.
Số lượng nhà cung cấp dịch vụ Web và người sử dụng dịch vụ Web cũng tăng
nhanh, đồng thời các yêu cầu của người dùng ngày càng trở nên phức tạp hơn.
Trong công nghệ dịch vụ Web, một dịch vụ Web mới có thể được xây dựng bằng
cách sử dụng các dịch vụ Web đã tồn tại. Dịch vụ Web mới được gọi là dịch vụ
Web kết hợp. Các dịch vụ Web có sẵn là dịch vụ Web thành phần. Dịch vụ Web kết
hợp không chỉ phụ thuộc vào chức năng của các dịch vụ thành phần mà còn phụ
thuộc vào chất lượng dịch vụ của các dịch vụ đó.
Luận văn này tập trung vào khía cạnh chất lượng dịch vụ của dịch vụ Web
kết hợp. Cụ thể, luận văn tìm hiểu về vấn đề đám phán giữa dịch vụ Web kết hợp và
các dịch vụ Web thành phần để chọn các thông số chất lượng dịch vụ cho phù hợp
với yêu cầu của người dùng. Bài toán sẽ là: người dùng đưa ra yêu cầu chất lượng
dịch vụ cho dịch vụ Web kết hợp là WS, làm thế nào để WS đàm phán và chọn ra
dịch vụ Web thành phần thỏa mãn yêu cầu đưa ra. Luận văn đề xuất một khung đàm
phán chất lượng dịch vụ cho dịch vụ Web kết hợp. Dịch vụ Web kết hợp trong
khung được cung cấp các giá trị thuộc tính chất lượng dịch và các ràng buộc của nó
từ phía người dùng. Số lượng thuộc tính chất lượng dịch vụ trong khung đàm phán
này không bị giới hạn. Khung này sử dụng phương pháp gán trọng trọng số để phân
biệt độ ưu tiên của các thuộc tính chất lượng dịch vụ.
Nội dung chính của luận văn được chia thành bốn chương. Chương 1 trình
bày tổng quan 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 xây dựng dịch vụ Web kết hợp.
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 như chính sách đàm phán, giao thức đàm phán, thông điệp
đàm phán cũng được trình bày trong chương này.
Chương 3 trình bày tổng quan về Axis2, các đặc điểm của Axis2, giới thiệu
các mô đun trong Axis2 bao gồm: 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. Các mô đun này là


9

những thành phần chính trong kiến trúc Axis2. Mỗi mô đun có một chức năng
nhiệm vụ riêng và chúng liên kết với nhau tạo thành hệ thống trong Axis2.
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.
Phần cuối của luận văn là kết luận và hướng phát triển.


10

Chương 1: TỔNG QUAN VỀ DỊCH VỤ WEB
Chương này giới thiệu tổng quan về dịch vụ Web. Mục 1.1 trình bày khái
niệm và đặc điểm của dịch vụ Web. Kiến trúc của dịch vụ Web được trình bày ở
mục 1.2 và các đặc điểm quan trọng của dịch vụ Web như SOAP, WSDL, UDDI
được trình bày ở mục 1.3, 1.4 và 1.5. Mục 1.6 trình bày tổng quan về mô hình phân
tầng trong dịch vụ, điều này giúp chúng ta hiểu được kiến trúc và các khả năng phát
triển của dịch vụ Web. Mục 1.7 trình bày về các vấn đề xây dựng dịch vụ Web kết
hợp.

1.1 Giới thiệu về dịch vụ Web
Có nhiều định nghĩa về dịch vụ Web, theo định nghĩa của [8] “Một dịch vụ
Web là phần mềm mà làm cho bản thân nó luôn sẵn sàng trên Internet và sử dụng
hệ thống thông điệp dựa các tiểu chuẩn XML. XML được sử dụng để mã hóa tất cả
giao tiếp với dịch vụ Web. Ví dụ, một khách hàng gọi một dịch vụ Web bằng cách
gửi thông điệp XML, sau đó chờ XML phản hồi tương ứng. Bởi vì tất cả giao tiếp

trên dịch vụ Web là XML nên các dịch vụ Web không gắn bất kỳ với hệ thống hệ
điều hành hoặc ngôn ngữ lập trình nào. Các ứng dụng có thể giao tiếp với nhau mà
không phục thuộc vào hệ điều hành và nền tảng của nhau.”. Dịch vụ Web cung cấp
giao thức và các định dạng dữ liệu phổ biến như HTTP, XML, SOAP, REST,
WSDL, JSON để cho phép các ứng dụng trao đổi với nhau thông qua dịch vụ Web.
Dưới đây là một số đặc điểm chính của dịch vụ Web [6].
Dịch vụ Web có tính đồng bộ và bất đồng bộ. Tính đồng bộ hoặc bất đồng
bộ được đề cập trong lời gọi của khách hàng khi muốn thực hiện một dịch vụ Web.
Tính đồng bộ là khối khách hàng phải chờ cho các hoạt động trước nó phải hoàn
thành trước khi nó muốn được thực hiện. Tính bất đồng bộ cho phép khách hàng gọi
một dịch vụ sau đó thực hiện chức năng khác. Tính không đồng bộ là yếu tố quan
trọng để giúp hệ thống dịch vụ Web có mềm dẻo và linh hoạt hơn.
Dịch vụ Web hỗ trợ các lời gọi từ xa (RPC). Dịch vụ Web cho phép khách
hàng gọi các hàm, các thủ tục và phương thức trên đối tượng điều khiển từ xa thông
qua giao thức dựa trên XML. Cả hai công nghệ Enterprise JavaBeans (EJBs) and
.NET được phân phối và truy cập thông qua một loạt các cơ chế RPC. Hình 1.1
dưới đây mô tả mô hình JAX- RPC, JAX- RPC là thư viện phổ biến trên ngôn ngữ
java hỗ trợ cho việc trao đổi thông điệp giữa người sử dụng dịch vụ (client) và nhà
cung cấp dịch vụ Web (Web service).


11

Dịch vụ Web hỗ trợ cấu trúc dữ liệu dạng văn bản. XML được sử dụng
để biểu diễn dữ liệu cho tất cả giao thức và thông điệp của dịch vụ Web. Nên dịch
vụ Web có khả năng hỗ trợ cấu trúc dữ liệu dạng văn bản. Điều này cho phép dịch
vụ Web biểu diễn các trúc dữ liệu từ đơn giản đến phức tạp và làm cho dịch vụ Web
trở nên mềm dẻo và linh hoạt hơn trong trao đổi dữ liệu.

Hình 1-1. Mô hình JAXRPC [18]


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ụ và đăng ký dịch vụ. Trong đó, nhà cung cấp dịch vụ có vai trò
xây dựng dịch vụ Web và làm cho dịch vụ đó luôn ở trạng thái sẵn sàng được sử
dụng. Nhà yêu cầu dịch vụ Web là đối tượng cần sử dụng dịch vụ Web, các đối
tượng này sẽ gọi dịch vụ Web bằng cách gửi một thông điệp yêu cầu SOAP. Đăng
ký dịch Web là một nơi tập trung chứa thông tin các dịch vụ, cho phép các nhà phát
triển hoặc nhà cung cấp có thể xuất bản một dịch vụ Web mới hoặc tìm ra một dịch
vụ đã tồn tại. Trong dịch vụ Web có ba thành phần chính là SOAP, WSDL và
UDDI.


12

1.3 SOAP

-

-

-

SOAP (Simple Object Access Protocol) cung cấp cơ chế đơn giản để 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. SOAP đưa
ra các quy tắc để đặc tả các loại dữ liệu, các kiểu dữ liệu. Cụ thể nó cho phép đặc tả
các kiểu dữ liệu như : String, Interger, Float, Enum, Array, Struct [14]. Dưới đây là
các đặc điểm kỹ thuật của SOAP [7].
SOAP được quy ước theo một định dạng, được đóng gói và được hướng dẫn định
tuyến giống như dạng phong bì thư. Dạng phong bì thư có ý nghĩa cho mô tả nội

dung của thông điệp. Cấu trúc thông điệp SOAP bao gồm hai thành phần chính là
phần tiêu đề và phần thân và chúng được gói trong phần phong bì thư.
SOAP có một phương tiện vận chuyển hoặc một giao thức ràng buộc để cung cấp
một cơ chế chung cho phép gửi một phong bì SOAP thông qua một giao thức ở mức
thấp như HTTP.
SOAP có quy tắc mã hóa cung cấp một quy ước biểu diễn các thẻ dựa trên XML.
SOAP có cơ chế gọi các thủ tục từ xa (Remote Procedure Call) kí hiệu là RPC,
nghĩa là SOAP hỗ trợ các lời gọi hàm từ xa. Một trong những mục tiêu của SOAP là
xây dựng cơ chế đóng gói thông điệp và thực hiện trao đổi thông qua các lời hỏi
hàm từ xa. Sử dụng SOAP cho RPC không bị giới hạn giao thức nhưng thông
thường hay sử dụng giao thức HTTP.
Một vấn đề đặt ra là, làm thế nào phân biệt cấu trúc dữ liệu XML và cấu trúc
dữ liệu SOAP, khi nào dữ liệu XML trở thành SOAP. Giả sử chúng ta có cấu trúc
dữ liệu về một đơn hàng dạng XML như ở ví dụ 1.1, cấu trúc dữ liệu này không
phải là một tài liệu SOAP, nó chỉ đơn giản là một tài liệu XML. Các bước chuyển
cấu trúc dữ liệu XML của ví dụ 1.1 thành một tài liệu SOAP theo những bước sau:
gói dữ liệu XML ở vào bên trong một phần thân của SOAP. Gói phần thân của
SOAP vào bên trong phòng bì thư SOAP. Đưa tùy chọn vào phần tiêu đề của
SOAP, khai báo không gian tên (namespace), mã hóa dữ liệu XML, thiết lập các
ràng buộc trong SOAP. Khi đó, ta có cấu trúc dữ liệu một tài liệu SOAP như ở ví dụ
1.2.
Ví dụ 1.1: mô tả cấu trúc dữ liệu XML về thông tin một đơn hàng.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<PurchaseOrder xmlsn="urn:xml-sample">
<shipTo country="VN">
<name>hoang xuan huy</name>
<street>123 xuan thuy</street>
<email></email>



13

<city>Ha Noi</city>
Ha Noi</province>
<zip>1000</zip>
</shipTo>
<items>
<item id="124">
Java Web Services </productName>
<quantity>1</quantity>
25$</price>
<comment>I want to buy this book</comment>
</items>
</PurchaseOrder>

Ví dụ 1.2: Cấu trúc dữ liệu một tài liệu SOAP về thông tin một đơn hàng.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
xmlns:SOAP-ENV=" />xmlns:xsi=" />xmlns:xsd=" /><SOAP-ENV:Header>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<PurchaseOrder xmlsn="urn:xml-sample">
<shipTo country="VN">
<name>hoang xuan huy</name>
<street>123 xuan thuy</street>
<email></email>
<city>Ha Noi</city>
Ha Noi</province>
<zip>1000</zip>

</shipTo>
<items>
<item id="124">
Java Web Services </productName>


14

<quantity>1</quantity>
25$</price>
<comment>I want to buy this book</comment>
</items>
</PurchaseOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelop>

1.4 WSDL
Ngôn ngữ miêu tả dịch vụ Web (Web Services Description Language) được
viết tắt là WSDL. WSDL là một định dạng XML, WSDL đị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. Theo [7]
WSDL được chia làm hai phần.
Phần mô tả trừu tượng
Phần này chỉ cung cấp thông tin về đặc điểm giao diện của dịch vụ Web mà
không có bất kỳ sự mô tả hoặc các thông tin liên quan đến công nghệ sử dụng để cài
đặt dịch vụ Web. Điều này làm cho dịch vụ Web không phải thay đổi phần mô tả
khi nền tảng công nghệ triển khai dịch vụ Web bị thay đổi. Phần mô tả trừu tượng
của WSDL bao gồm các phần tử types, message và portType.
Phần tử types định nghĩa các kiểu dữ liệu liên quan đến các thông điệp nhận
và thông điệp gửi của dịch vụ Web. Phần tử types sử dụng định nghĩa lược đồ XML
(XML schema definitions) viết tắt XSD để mô tả các kiểu dữ liệu cho phần tử types.

Ví dụ 1.3 mô tả cấu trúc phần tử types trong một WSDL.
Ví dụ 1.3: Cấu trúc phần tử types trong một WSDL.
<types>
<schema targetNamespace=" />xmlns=" /><element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>


15

<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>

Phần tử message để biểu diễn trừu tượng cấu trúc của thông điệp. Thông điệp
là phương tiện để trao đổi giữa bên yêu cầu dịch vụ và bên cung cấp dịch vụ. Một
thông điệp bao gồm một hoặc nhiều phần tử part. Một phần tử part miêu tả một
phần dữ liệu và kiểu dữ liệu của thông điệp. Ví dụ 1.4 mô tả cấu trúc 2 thông điệp
có tên là GetLastTradePriceInput, GetLastTradePriceOutput. Thông điệp
GetLastTradePriceInput chứa phần tử có tên là body và kiểu dữ liệu

TradePriceRequest, kiểu này được mô tả ở ví dụ 1.3.
Thông điệp GetLastTradePriceOutput cũng chứa phần tử có tên là body và
kiểu dữ liệu TradePrice, kiểu này cũng được mô tả ở ví dụ 1.3.
Ví dụ 1.4: ví dụ mô tả cấu trúc phần tử message trong WSDL.
<message name="GetLastTradePriceInput">

</message>
<message name="GetLastTradePriceOutput">

</message>

Phần tử portType để biểu diễn trừu tượng tập các hoạt động hỗ trợ cho một
điểm đầu cuối của dịch vụ Web. Ví dụ 1.5 mô tả hoạt động GetLastTradePrice với
tham số đầu vào là GetLastTradePriceInput và tham số đầu ra là
GetLastTradePriceOutput.
Ví dụ 1.5: Cấu trúc phần portType trong WSDL

<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>


16

<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>

Phần mô tả cụ thể.
Phần này bao gồm các phần tử binding, port và service.Trong đó, phần tử
binding đặc tả định dạng thông điệp và một giao thức cụ thể như SOAP, HTTP,

MIME cho các hoạt động.
Ví dụ 1.6: ví dụ mô tả cấu trúc phần tử binding trong WSDL.
type="tns:StockQuotePortType">
style="document"
transport=" /><operation name="GetLastTradePrice">
soapAction=" /><input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>

Phần tử port để định nghĩa một thiết bị đầu cuối bằng cách xác định một địa
chỉ duy nhất cho ràng buộc ở binding. Phần tử service một tập hợp các thiết bị đầu
cuối liên quan, nghĩa là phần tử service chứa một danh sách các cổng. Phần tử
service là nơi để giao tiếp của dịch vụ Web với bên ngoài [15].
Ví dụ 1.7: Cấu trúc liên kết giữa các phần tử service và port trong WSDL.
<service name="StockQuoteService">
<documentation>My first service</documentation>

location=" />

17


</port>
</service>

Kết hợp các phần của các ví dụ từ 1.3 đến ví dụ 1.7 ta có mô tả đầy đủ của WSDL
về một dịch Web cung cấp giá cổ phiếu.

1.5 UDDI
Mô tả và khám phá dịch vụ Web (Universal Description, Discovery and
Integration) đượ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 như [16]: HTTP, XML, XSD, SOAP và
WSDL. Vì vậy, UDDI 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ụ. Một số đặc điểm chính của UDDI bao gồm: UDDI là
một tiêu chuẩn dựa trên XML để mô tả, xuất bản và tìm kiếm các dịch vụ Web.
UDDI là một nền tảng độc lập và một khung mở. UDDI có thể giao tiếp trên các
giao thức SOAP, CORBA và sử dụng WSDL để miêu tả giao diện cho các dịch vụ
Web.

1.6 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 là 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 bao gồm các lớp như sau: lớp giao thức giao tiếp, lớp thông điệp, lớp miêu
tả dịch vụ Web (WSDL) và lớp khám phá dịch vụ Web (UDDI). Lớp giao thức giao
tiếp có thể sử dụng một số giao thức HTTP, SMTP, FTP trong dịch vụ Web. Lớp
thông điệp gồm các dữ liệu dạng XML và giao thức SOAP.
Thành phần mở rộng bao 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. Vì vậy các mô hình của thành phần mở rộng này được xây dựng tùy thuộc
vào nhu cầu tổ chức phát triển. Hình 1.2 mô tả tất các lớp ở dạng ngăn xếp trong
công nghệ dịch vụ Web. Từ đó chúng ta thấy được một khả năng quan trọng của
dịch vụ Web là cho phép kết hợp các dịch vụ đơn lẻ để tạo thành một dịch mới, để

có thể đáp ứng các yêu cầu phức tạp của người dùng.


18

Hình 1-2. Mô hình phân lớp dạng ngăn xếp trong công nghệ của dịch vụ Web [8]

1.7 Phương pháp xây dựng dịch vụ Web kết hợp
Dịch vụ Web kết hợp là sự kết hợp của hai hay nhiều dịch vụ Web thành
phần để tạo thành một dịch vụ mới thỏa mãn các yêu cầu hay nghiệp vụ phức tạp
của người dùng. Có hai loại dịch vụ Web kết hợp là dịch vụ Web kết hợp bằng tay
và dịch vụ Web kết hợp tự động. Nhược điểm của dịch vụ Web kết hợp bằng tay là
mất nhiều thời gian để tổng hợp, dễ bị lỗi và không khó có khả năng mở rộng. Vì
vậy, các nghiên cứu về xây dựng hợp dịch vụ Web kết hợp chủ yếu tập trung cho
dịch vụ Web kết hợp tự động. Xây dựng dịch vụ Web kết hợp 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 [12].
Phương pháp lập kế hoạch dựa trí tuệ nhân tạo bao gồm các yếu tố sau: mô
tả trạng thái của các dịch vụ Web, xác định mục tiêu mong muốn của trạng thái, mô
tả tập hợp các hoạt động có thể để chuyển đổi từ trạng thái này sang trạng thái khác.
Các thành phần lập kế hoạch có mục đích tìm ra chuỗi các hành động để làm thay
đổi trạng thái của thế giới thực từ trạng thái ban đầu đến trạng thái mục tiêu. Các kỹ
thuật lập kế hoạch dựa trên trí tuệ nhân tạo trong xây dựng dịch vụ Web kết hợp đã
được nghiên cứu khoảng hơn 10 năm. Tuy nhiên, các kỹ thuật này không đạt được
thành công đối với các ứng dụng trong thực tế.


19

Phương pháp xây dựng dịch vụ Web kết hợp dựa quy trình làm việc được

thực hiện dựa vào việc trừu tượng quy trình thực tế và chúng có khả năng cao để
chuyển hóa từ mô hình thực tế sang mô hình dịch vụ Web kết hợp. Một quy trình
làm việc thường không phù hợp ngay với dàn các dịch vụ Web bởi một số lý do:
các dịch vụ Web không thể ngay lập tức phù hợp với các thành phần trong quy trình
làm việc, các dịch vụ Web trong giàn nhạc có tính ràng buộc với nhau nhưng không
phải dễ dàng có thể ứng dụng trong quy trình kinh doanh.

Hình 1-3. Vòng đời dịch vụ Web kết hợp [12]

-

-

-

Hình vẽ 1-3 mô tả về vòng đời của dịch vụ Web kết hợp dựa trên quy trình
làm việc (workflow). Đây chính là mô hình tổng quát để xác định ra các bước chính
cho xây dựng dịch vụ Web kết hợp. Từ đó, chúng ta có thể xem xét từng thành phần
trong quy trình thực tế để áp dụng vào từng phần trong mô hình dịch vụ Web kết
hợp. Sau đây là các giai đoạn về vòng đời của dịch vụ Web kết hợp.
Giai đoạn đặc tả mục tiêu: trong đó các mục tiêu và các sở thích của nhà yêu cầu
dịch vụ được xác định. Sau đó mục tiêu này được phân rã tự động hoặc bán tự động
thành các quá trình kinh doanh. Quá trình kinh doanh bao gồm các nhiệm vụ (task),
mỗi nhiệm vụ có một chức năng rõ ràng cùng với kiểm soát luồng dữ liệu qua lại
giữa các nhiệm vụ.
Giai đoạn phát hiện dịch vụ: các dịch vụ Web cụ thể phù hợp với yêu cầu chức năng
và phi chức năng của nhiệm vụ được tìm kiếm ở nơi đăng ký dịch vụ như UDDI.
Kết quả của tìm kiếm có khả năng trả ra nhiều hơn một dịch vụ.
Giai đoạn lựa chọn dịch vụ: giai đoạn này được thực hiện sau khi phát hiện ra các
dịch vụ. Trong giai đoạn này, rất nhiều phương pháp được đề xuất để lựa chọn ra



20

-

dịch vụ Web thành phần tối ưu nhất. Từ đó, dich vụ Web kết hợp được tạo ra từ sự
kết hợp các dịch vụ thành phần này.
Giai đoạn thực hiện và giám sát dịch vụ: khi lựa chọn dịch vụ thành phần được
hoàn thành, thì có thể sử dụng được dịch vụ kết hợp này bằng cách thực hiện dịch
vụ (Service execution). Quá trình sử dụng dịch vụ kết hợp được theo dõi và giám
sát để kiểm soát sự thay đổi các trạng thái hay kiếm soát sự thất bại của các dịch vụ
trong quá trình kết hợp.

1.8 Tổng kết
Chương này đã trình bày tổng quan về dịch vụ Web, về kiến trúc dịch vụ
Web, về các thành phần chính trong một dịch vụ Web là SOAP, WSDL và UDDI,
về mô hình phân tầng các lớp dạng ngăn xếp trong dịch vụ Web. Ngoài ra, chương
này cũng trình bày các vấn đề xung quanh xây dựng dịch vụ Web kết hợp và đặc
biệt là xây dựng dịch vụ Web kết hợp tự động.


21

Chương 2: CHẤT LƯỢNG DỊCH VỤ VÀ ĐÀM PHÁN DỊCH
VỤ WEB
Chương này trình bày tổng quan về chất lượng dịch vụ của dịch vụ Web và
các thuộc tính chất lượng dịch vụ ở mục 2.1.1. Mục 2.1.2 trình bày các phương
pháp cung cấp thông tin chất lượng dịch cho dịch vụ Web. Mục 2.2 trình bày các
vấn đề liên quan đến đàm phán dịch vụ Web.


2.1

Chất lượng dịch vụ

Ngày nay, sự phát triển của dịch vụ Web như là một giải pháp kinh doanh
được tích hợp vào các ứng dụng của doanh nghiệp nên chất lượng dịch vụ cho dịch
vụ Web ngày càng trở nên quan trọng đối với nhà cung cấp dịch vụ và khách hàng.
Chất lượng dịch vụ của dịch vụ Web bị ảnh hưởng bởi nhiều yếu tố như: sự thực
hiện của chính các dịch vụ Web, nền tảng lưu trữ và đường truyền mạng. Các nhà
cung cấp dịch vụ cần phải đảm bảo chất lượng dịch vụ để có khả năng duy trì, khả
năng canh tranh và đạt được hiệu suất tốt nhất cho dịch vụ Web. Để cung cấp chất
lượng dịch vụ Web tốt hơn, các nhà cung cấp đầu tiên cần phải xác định các yêu cầu
chất lượng dịch vụ có thể cho dịch vụ Web. Ở mục 2.1.1 sẽ mô tả chi tiết hơn về các
yêu cầu chất lượng dịch vụ cho dịch vụ Web [17].
2.1.1

Các thuộc tính chất lượng dịch vụ
Các yêu cầu chất lượng dịch vụ cho dịch vụ Web chủ yếu đề cập đến các
khía cạnh chất lượng của một dịch vụ Web. Chất lượng dịch vụ của dịch vụ Web
bao gồm: độ sẵn sàng, độ tin cậy, tính an ninh, thời gian đáp ứng, chi phí, thông
lượng, khả năng tương tác và các yêu cầu chất lượng dịch vụ liên quan đến mạng.
Bảng 2.1 dưới đây phân loại thành từng nhóm thuộc tính chất lượng dịch vụ của
dịch vụ Web.
Bảng 2-1: Phân loại thành nhóm thuộc tính chất lượng dịch vụ trong dịch vụ Web

Nhóm
chất Thuộc tính chất Mô tả
lượng dịch vụ lượng dịch vụ
Hiệu suất


Thời gian phản hồi

Là khoảng thời gian trôi giữa sự bắt đầu yêu cầu
dịch vụ và hoàn thành phản hồi của dịch vụ.
Thời gian phản hồi = Thời gian thực hiện + thời
gian chờ.
Thời gian thực hiện là khoảng thời gian thực


22

hiện chức năng của dịch vụ. Thời gian chờ là
tổng thời gian cho tất cả các sự kiện gián tiếp
như thời gian thông điệp được chuyển đổi giữa
người sử dụng dịch vụ và nhà cung cấp dịch vụ.
Thông lượng

Thông lượng dịch vụ = Số yêu cầu tối đa / Đơn
vị thời gian.

Độ tin cậy

Là khả năng chức năng yêu cầu trong dịch vụ
Web được thực hiện.

Tính sẵn sàng

Là xác suất mà một dịch vụ Web ở trạng thái sẵn
sàng.


Chi phí

Giá cả

Giá cả là bên yêu cầu dịch vụ phải trả khi gọi
một hoạt động đặc biệt của dịch vụ Web. Giá cả
của chức năng trong dịch vụ Web càng cao thì
độ phức tạp của chức năng đó càng lớn.

An ninh

Xác thực

Xác thực trong dịch vụ Web có mục đích ngăn
chặn một kẻ xâm nhập giả mạo

Độ tin cậy

Trong dịch vu Web, để ngăn không cho kẻ trộm
nghe lén thông điệp trong dịch vụ Web. Phương
pháp mã hóa thông điệp trước gửi và giải mã
thông điệp nhận đem lại tính tin cậy trong bảo
mật của dịch vụ Web.

Tính toàn vẹn

Trong một số trường hợp trao đổi thông điệp, dữ
liệu này quan trọng. Vì vậy bộ phận nhận thông
điệp xác nhận thông điệp không bị sửa đổi trong

quá trình truyền. Điều này đảm bảo kẻ xâm nhập
không thể thay thế thông điệp bất hợp pháp. Hay
nói cách khác, nó chính là tính toàn vẹn trong
trao đổi thông điệp.

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ụ Web thành phần đóng
vai trò quan trọng trong việc xây dựng dịch vụ Web kết hợp. Đố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ụ.
Phương pháp 1: cung cấp thông tin chất lượng dịch vụ dựa vào UDDI.
UDDI ngoài các chức năng chính chứa thông tin dịch vụ Web, cung cấp xuất bản và
tìm kiếm dịch vụ Web thì UDDI có khả năng chứa thông tin chất lượng dịch vụ cho


23

dịch vụ Web. Cấu trúc của UDDI cho phép mô tả thêm các thông tin chất lượng
dịch vụ khi cần thiết.

Hình 2-4. Mô tả cấu trúc dữ liệu trong UDDI [16]

Hình 2.1 thể hiện cấu trúc dữ liệu của UDDI, bao gồm năm thành phần như
-

-

-

sau:

Thành phần BusinessEntity chứa các thông tin cơ bản của dịch vụ gồm phân loại,
định danh, mô tả và mối quan hệ với các dịch vụ khác.
Thành phần publisherAssertion được sử dụng để thiết lập mối quan hệ giữa các
BusinessEntity.
Thành phần businessService để mô tả tập hợp các dịch vụ, những dịch vụ này có thể
là một dịch vụ Web hoặc một dịch loại khác như dịch vụ hướng dẫn sử dụng. Một
thành phần BusinessEntity chứa một hoặc nhiều thành phần businessService.
Thành phần bindingTemplate chứa một văn bản mô tả và địa chỉ của điểm truy cập
của dịch vụ Web. Ngoài ra bindingTemplate đóng vai trò là một con trỏ để trỏ đến
thành phần tModel.
Thành phần tModel chứa thông tin mô tả đặc điểm của dịch vụ Web để con trỏ của
tModel có thể tham chiếu đến dịch vụ đó. Hơn nữa, thành phần tModel cho phép
chứa chứa thông tin chất lượng dịch vụ. Thông tin của chất lượng dịch vụ trong
tModel bao gồm: name, value, unit. Như vậy, thông tin chất lượng dịch vụ có thể
chứa trong mô hình tModel. Ví dụ 2.1 dưới đây minh họa thông tin chất lượng dịch
vụ chứa trong UDDI.
Ví dụ 2.1: Lưu trữ thông tin chất lượng dịch vụ ở UDDI.


24

<tModel tModelKey="uuid:1C620754-09E4-4930-AA19-709C62E52166">
<name>uudi-org:qosInfo</name>
<description xml:lang="en">Quality of Service Information
</description>
<overviewDoc>
<description xml:lang="en"></description>
<overviewURL> /></overviewURL>
</overviewDoc>
<categoryBag>

keyName="uddi-org:types" keyValue="categorization"
tModelKey="uddi:1D3FCD00-0DA6-4479-ADFE-B10950C74F62"/>
</categoryBag>
</tModel>

Phương pháp 2: cung cấp thông tin chất lượng dịch vụ dựa vào SOAP. 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. Việc này được thực hiện bằng
cách mở rộng cấu trúc của thông điệp SOAP. Giả sử chúng ta có một thông điệp
SOAP chứa thông tin truy vấn để tìm một dịch vụ đặt xe chứa thông tin chất lượng
dịch vụ với độ sẵn sàng là 0.9 được mô tả như ví dụ 2.2 [17].
Ví dụ 2.2: Lưu trữ thông tin chất lượng dịch vụ ở UDDI.
<?xml version="1.0" encoding="UTF-8"?>
<envelop xmlns= " /><body>
xmlns="urn:uddi-org:api" maxRows="5">
<name>car reservation</name>
<qosInfo>
<availability> 0.9 </availability>
</qosInfo>
</find_service>
</body>
</enveolop>

Phương pháp 3: dịch vụ Web thành phần chứa các hàm chất lượng dịch vụ.
Trong phương pháp này, dịch vụ Web thành phần xây dựng thêm các hàm chất


25


lượng dịch vụ, các hàm này có chức năng chỉ cung cấp thông tin chất lượng dịch vụ
cho các hàm chức năng trong dịch vụ Web. Vì vậy, các hàm chất lượng dịch vụ này
cũng được mô tả ở trên WSDL của dịch vụ Web. Trước khi người dùng muốn sử
dụng một hàm chức năng, người dùng có kiểm tra thông tin chất lượng dịch vụ của
các hàm này thông qua một số hàm chất lượng dịch vụ. Ưu điểm của phương pháp
này có tính mềm dẻo, tính tiện dụng trong kiểm tra thông tin chất lượng dịch vụ cho
dịch vụ Web thành phần, trong xây dựng dịch vụ Web kết hợp dựa trên thông tin
chất lượng dịch vụ.
Trên đây là ba phương pháp để thể hiện chất lượng dịch vụ trong dịch vụ
Web. Mỗi phương pháp đều có ưu điểm ra nhược điểm riêng. Trong nội dung luận
văn này, tác giả chọn phương pháp 3 để chứa thông tin chất lượng dịch vụ cho dịch
vụ Web thành phần. Phương pháp này sẽ được trình bày cụ thể trong chương 4 của
luận văn.

2.2 Đàm phán dịch vụ Web
Đàm phán là sự tương tác giữa các 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ể. Một quá trình đám phán có thể gồm một hoặc
nhiều vòng đàm phán. Trong mỗi vòng đàm phán, bên khởi tạo (initiator) gửi một
đề nghị tới bên khác. Nếu đề nghị này được chấp nhận thì vòng đàm phán này kết
thúc và quá trình đàm phán chỉ cần thực hiện một vòng đàm phán. Ngược lại, đề
nghị này không được chấp nhận thì bên khởi tạo (initiator) gửi một đề nghị mới cho
các bên đàm phán và quá trình đàm phán phải thực hiện một vòng đàm phán mới.
Quá trình đàm phán được kết thúc khi các bên đạt được một sự thỏa thuận về một
khía cạnh cụ thể [11].
Các cuộc đàm phán của các bên có thể là song phương hoặc đa phương. Các
bên giao tiếp với nhau bằng sử dụng các giao thức đàm phán cho đến khi đạt được
sự thỏa thuận với nhau. Trong đàm phán được chia làm hai loại. Loại đầu tiên là
đàm phán phân phối hay thường gọi là đàm phán thắng thua (win-lose). Nghĩa là
khi hai bên thực hiện đàm phán thì một bên đạt được mục đích của mình và bên còn

lại thì bị hỏng và không nhận ra chính nó. Loại thứ hai là đàm phán tích hợp hay
thường gọi là đàm phán thắng thắng (win-win). Đàm phán tích hợp đề cập đến quá
trình mà cả hai bên đều xác định được mục tiêu cho mình thông qua việc hai bên
thỏa thuận cùng đạt được một tiện ích chung. Một ưu điểm chính của đàm phán tích
hợp là luôn giảm khả năng đàm phán sẽ thất bại. Vì vậy đàm phán tích hợp được sử
dụng nhiều hơn.


×