ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI
Báo cáo môn các vấn đề hiện đại
công nghệ phần mềm
Multi-agent System in Web Service Composition
Sinh viên thực hiện : Hoàng Minh Đường
Giảng viên hướng dẫn : TS. Võ Đình Hiếu
Hà Nội, tháng 11 năm 2013
Chương 1: Giới thiệu
! "#$%&'(")*+,-
./0122,3&45'6"7 2&"'8
9:&;-<=>=>
?4(=@5(?&4&%A
$=3> 94B&'-C84=>?
DE+F"#84">5G"H +F"#
40I&G-J,B45K?&4&%7%
%%&=5%784=-:5K?
&4&%L!,&3&%L&L=5".
=-
M5KNO!)&5K+H=(
H2%L! "(%7H&"2
%AP &"2=%7"6 &"2'F
%@B5%7L-Q>
.85K%L!"R2.22-SLR2.
22 &T223H="&&"2B
B0722?"/&"L B
%7*";7R2.22 B&T22?%7*
"&22U&'-:R2.22,2&"84
"75'V=>& 7K+H=(H
9:%7;&4&V?5 (BW86
G=0"L'L55.?&@&.84H8
.P'=-R2.222&5?='?5=P
XYXZX''2''X''2''XYUZX''2''U'&2 ;P5R2.
22"&6G%7I584=
%7'F,-
S84;7'22B'["&?5KNO-\=
=;7R2.22'@"&4%7>,
%7"&'F"'22B'[">&
22&L(A-X=P.=&%A&L=584
;7]2.'22B>-^%A&L=>%%366?=
32&P^Y^-SL&T&23P3 B'_
%AL2B%7&.'22?=8-`B &
22'FL 2B":="%7=&?
FL'2''G-X=DP.=&4
G2P3 P&5&-JB
%A4+8 ,+H=RUO<">aO`bc&2]-
U=dBeP&%7'22&'&DB
=>?45%:/LG"A.-
U8K.%7P.=%'fU%AY'_465
4-gU%Ah K'_P&4.]2.'22&'
'Fai<O-U%AjP.=%A4+8
RUO-S(/"?053U%Ak-
Chương 2: Kiến thức nền tảng
1 Web Service
l Service-Oriented Architecture (SOA)
==2&&%:5
98G(?&4&L-Q84m
(L0""&'+H=%7&5
K?&4&Be;7'F?&Ln&
&;.P(?&4&-
UK,B 5K % NN^oN.p2 N22 ^&&q
UNQr`UNQo`'.2U&&N.p2Q2"q UNCXOoU&&N.p2
C22'X2O22qs 4%A; 7
(A-<=> m;.m_G
?L"&5K=%6-QPNOZ
M5K%L!:?%=5%7G84B
e5-
l Khái niệm
M5K%L!"55%L@'F
!$%!)8&5K?
4B0G"&
=P.88'.4&mG"6P
$%4=-
Y Mục đích của SOA
Q(?&4&"=0G=>?
!%:-Q>5K%L!"n&+B.E
G4&m 4 69
=>'[B($&;
$%.P(?&4&-
h Nguyên lý hoạt động của SOA
Service
Registry
Service
Provider
Service
Consumer
• 22^2fU8'2"2'''22&?
B-t'2o'22'&2q?H&5!;'
&'22*?'F-
• 22U'&2ft'2'F'22%78.322
^2
• 22C2'=f\A"%G4'2222
^2 22U'&2>G=
P&5&"*22^2/7-
Figure 1: SOA actors
22^2'_e;4'22&&PB
8 o e B 8 e (
o2'2 2c&2q ! q22C2'=-22
U'&2B?4&'22B'_P&5&>
22C2'=-\eT7P&5& 22C2'=D
B+522^2>>;48"%7
! .?*u,'F'22 \G
='_T7>&PP&5&22U'&2-M
,+!%722^2&&( 22U'&25
"6>55L22^2n&'F'22
m5%A"%7>&o4&m 2'2'F q
Y Web Service
l XML
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử
dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài
liệu B2B. Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn
ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào
thì XML lại định nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ
có thể được lập trình viên tự tạo ra trên mỗi trang web và được chọn là định
dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn mở.
Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử
dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML
là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc
xây dựng một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng
thẻ XML. Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông
tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau
trong một thể thống nhất.
Y Khái niệm
`!]2.oR2.22q"&(?&4&%75
5T7%AG&=L&=&-\B"&
%7&l!&&=B%7o"
]'"q-U(%AL!]2.&
2=!.n &'F.NO^ %:
=4.n'Fv<<^Ll!iQw57L
x]2.yRhUz-
h SOAP
NO^o&"2N.p2O2''^"q8&A5A
*{0G&&%:
H8 H'FiQwB8K-NO^
+!.8|G)%"&P"6P=G
) B!)lA5A
G).n8&PB&"2
A5&,B&,BG"&"2-J4B
NO^'F(u(
ILC^U-yRhUz
\B&A NO^"&=!
0G"G'22-NO^'FKiQw
G"/v<<^"&=4-<B!)
NO^.nfNO^}iQw~v<<^
POST /globalweather.asmx HTTP/1.1
Host: www.webservicex.net
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi= " "
xmlns:xsd= " "
xmlns:soap= " " >
<soap:Body>
<GetWeather xmlns="">
<CityName>string</CityName>
<CountryName>string</CountryName>
</GetWeather>
</soap:Body>
</soap:Envelope>
<>H=";4NO^'22+2&:
5>]2.www.webserviceX.NET-•NO^3H='F
%A^N<v<<^F-`G"
=>?%:/%7!).nKiQw %7+
!.nmV <soap:Envelope></soap:Envelope> G"
;%7mV<soap:Body></soap:Body>-
j WSDL (Web Service Description Language)
R`w"!iQw&!&%"l675
.!?(>.B%L
"m"%L-^%A.%7&u
%7 .!.l&!.
!)l5.!?(-U&(">%75
7l&(u%7o!q-R`w%7&3
&5.!?(.B.8
.B!P=&%7'F5-
R`w&";.9&f& =2' &2''2
<=2 . '22 -
Types:R`w!)G"F-
<definitions >
<types>
<xsd:schema />*
</types>
</definitions>
. Message:Q%7FG"2'22-
<definitions >
<message name="nmtoken"> *
<part name="nmtoken" element="qname"? type="qname"?/> *
</message>
</definitions>
\G!)&2''2%7'F.3?F
'22- \4 B & 5 L / ! )
&2''2-
<G&2''2%7&P>_T7;
"AB'F"-U€
L/&'(B'V&!)&2''2-
Port type:R`w&F6-
<wsdl:definitions >
<wsdl:portType name="nmtoken">
<wsdl:operation name="nmtoken" /> *
</wsdl:portType>
</wsdl:definitions>
R`w!).(&&
•
0BT7f
• One-way:U0H
•
&
•
&2''2 &2''2 B " &2''2
H
•
-
• Request-response:U0H
•
&
•
&2''2F&
•
&2''2
9
• Solicit-response:U0F&
•
&2''2H
•
4&
•
&2''2
• Notification:U0F&
•
&2''2 &2''2B"&2''2+8-
• QTBK.50/=2f<
&2''26 +8"T-
<wsdl:definitions >
<wsdl:portType > *
<wsdl:operation name="nmtoken"
parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Binding:J!)]2.'22'57L-
Q
•
57.9&f
• \G&3
•
GG&2''2
.9&tC\&,BNO^-
• QT&
•
57& 55&"0 &
•
0
o<=2qB%7'F4&(57-<8
!).>0n&&
&(57-
2 Servicef\B'_GP,%7!)6
*]2.'22'2%A
-
<wsdl:definitions >
<wsdl:service name="nmtoken"> *
<wsdl:port />*
</wsdl:service>
</wsdl:definitions>
c Portf &0 ? ( B !)%&
•
H
•
7
.&
•
!d&-
<wsdl:definitions >
<wsdl:service > *
<wsdl:port name="nmtoken" binding="qname"> *
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
gH=K8=n
•
;57>"&2-\B
&5L&
•
&(57-Q
•
0;+
&!d&.8|0?%A
;+L&&5?>
•
-
k Cấu trúc Web Service
Web service Structure
<%ALNO Bh;&R2.'22-
• Service Provider:`/R2.22'`2'w2oR`wq
&!&&PB822X2o%A
L22C2'=NOq-
• Service Broker:w%G4'22%78.3
22^2-U8eP&5&T722
C22'2o22U'&2NOq+!22
^2/7-<?;22X2"t2'"
`'2= `2' 12ot``1q2'2'-
• Service Requester:`/R`wm?'Fo"
'22 :'F 2'2?5 & q3
22X2-Xn'Ft``1eP&5&
22X2 22C22'2BP&8=22^2
;7-\='B G22C22'222^2
5"6>5'FNO^%A"%7
=5('F'22-
11 Multi-agent System
l AOP
w6P%LHu"H,%7+2&+%"&%L
=>&w6P%L(%7-<NN^%P
4(&=;%7.n4&‚o&"2'q&B
%ALG&‚P.=6%72
&> ON^ƒ&2]>'(!
o*"?q&‚o.H=:"Hq9&
?%4&o4&45L 4.H4
q e'=5! &T"4B%7G!)K
-UB&'(5>m&'(?
&H &P$%AL54&m?
*-<;.9&H. =>? 8 8
6 u( T7"@-w#=5=,%7
O1 >G>$%%A
684+,
Y Agent
l Khái niệm
\== u„O2Z<H„%7'F84 B
P"&)5");H4B"K-\%
== 'F6G=D5(L;
H B%7'F,")%'
+8*&=;-<*&=; &
H&"&?&4&H&'(P
;HK%://'FH
* "m"m"&">
5&=;-U?&4&H=4
&=; A'3G" &-
Định nghĩa:O2"&??&4&B; B
e&6&%:"&%:-O2
o?&4&q3H=(%O2o%:q
&(%7B-
Y Đặc tính
• Sự kiên trì (Persistence):J&,oU2q2=>
?%=">=5!;B?
&'(-
• Sự tự chủ (Autonomy):QTHB&> "6
LHo3.>q9:BB
=5!&Po4q-
<;"m%*8H-
• Khả năng xã hội (Social Ability):UHd%LL
;>&P&DBe%ALH
(%LL;(-
• Khả năng phản ứng và sự chủ động (Reactivity and Proactivity):
UH6%7G&BK6
"&;7(Lu%:7
-
h Multi-agent System
l Khái niệm
Định nghĩa:Q"‚2='2&"&(9&&%:
2&%:B-U2
%A"@%AL&%: L
/&;(-
Y Đặc điểm
• Khả năng tính toán hiệu quả: v28e
;A:P;%7H
2e(7/+F"#4
2-
• Độ tin cậy cao:`B42/&.
2BA50 &5>6=;
2%7"A-
• Khả năng mở rộng:v2"&3PBB>&
2&Lm.L22&
-Me=/7L;&3=>??
&4&=-
• Tính mạnh mẽ: v2B+F"#%7.
=5!m.>
II%.%A"%7%A&
F .4
• Khả năng bảo trì:`29&42 &T2"
&&"2B;>2"W.P-
• Khả năng phản ứng: v25ue
2A>6.5%7&=0&
%:P2('_(7L%
%AL=0B-
• Tính linh hoạt: U22Be
B%AL/=5&84
-Q2%::2&
%AP&?5=58
4m>&P-
• Khả năng sử dụng lại:v2Be'F"P
&T2Be>B/"4
-
Chương 3: Web Service Composition và
phương pháp sử dụng JXTA
1 Web Service Composition
l Khái niệm
S84;7'22B'["&?5KNO-
\==;7R2.22'@"&4%7>
, %7"&'F"'22B
'[">&22&L(A-
Định nghĩa:<;7R2.22;"&P+F"#5(
R2.22',9+H=">&R2.22&L-R2.
22&L%7*"&'2'22 DR2.22,9
/+H=">'22&LP%7*Web Service Composition-
<&P&*> ;"2'_*'22LR2.
22,%707c"2R`wR2.22%70
7B-<uU&'2R2.22'_+H=":*5R2.
22U&' UR2.22U&'
; " 5 U&'2 R2. 22- U&'2 R2.
22075u22?"5
(/;U"2-
UBY%A;7R2.22" tích hợp tĩnh tích hợp
động:
• <;7%7")5K57'22:&
55m:&mR2.22-
• <;7%7"5K57'22:&
22%7-
Y Phân loại
S;7R2.22BH"%'f
• Loại thứ nhất:U&'222%7+H=.nG
%:%a U… †P=(%&
u!R2 <%:7= $%7"
&R2.22 ?H&5P;
7R2.22-S84;73>94 %:"6P
KH&55P+F"#&%LNO^
"-M'F%A= d?&=0
E&''22''_85'=0"L
22%707-
• Loại thứ hai: F&;7R2.
22-JH='_"&%AG;"7;7
R2.22%X^bw X^Qw RUw s
h Ví dụ minh họa
J‡A5"R2.22U&'K%&
;A'&-J&"!
??!'fP&5&'(;5
"! P&5&=5.=u(+85(5
!8m&=.=-•'FBY8!R2.
%Y!R2.22n&P&5&'
P&5&=5.=-vR2.22=n&3!;!";
'F-J4B@L
&('FY!B'_P&5&]2.'2
>'_6-\n&2&"'6jˆ
K&(;7YR2.22"P&5&'P&
5&&=.=B&!"LA %7*"!<2"‚O2-
`!<2"‚O2'_*5Y!"2v2"2ƒ"
&TB&=8u"25!<2"‚O2-S6=3H=
R2. 22 2v2" 2ƒ" ; " R2. 22
U&'22<2"‚O23H=;"U&'222-<u
B8=R2.22U&';"R2.22B
/57L>&22"LA-
11 Agent-Based Web Service Composition with JADE and JXTA
l Tổng quan phương pháp
<&%:^Y^&"‚2 .8P2$Be
P&5&'22/=2&;-<=>'("%7R2.'22B
e8 &R2.'22A"VE&,%7=>?
2- SP 6= ? 5 7 R2. '22' &'2
'22'-
S; K,=!nB.2Ol OYOh(
2-OlBl!R2.8'(1X\>('-OYB
!Y86'(1X\4'.n"Q‰-OhBh
!=0&'.n"Q‰2<=J-XH=
: 5%:/P&5&&!L?"&('
?"B2<=J BB'[-`B
?!R2. l Y hB%7;7
&!&L&86>'%?4'
2<=J-
M‰ 6 ; 7 o&'q n& & ; P& & '22
&'(%/7LG)'(-
\B A5;7R2.'22>O2%A
=9&.?foqe#'22 o11q+H=9!'22
o111q'22&'E&,-
l Đăng ký Service
<e#'22 2e#'22&
&ai<O.n%&'22&-S=
(%e>&ai<O-QT&&2
một định danh duy nhất (AID),&tập các mô tả của các service
có thể cung cấp danh sách languageontology&2
?.5B%AL2=-U'22%7
eB&.9&loại dịch vụ tên dịch vụ đầu vàođầu ra
languageontology?5!B&'(m
;!-
Y Xây dựng đồ thị Service
•+H=9!LL'22
/&]c"]4&e-J&.;?=
9 ! H ( 8 2 & P& 5&
o'2''q &P ' .( '22 &P- Q
'2''&2"&2L'22B?/
7L?2o222''qB-<;&3
> l"YY"l-<.(%70
! 5 8 2 , +!'2''' & 9!
'22B%L?=%7+H=-JG(0
! 2PP&5&2!|6
6'2''B-
h Phát hiện các service composition thỏa mãn
†P;7&'22%7
.n*='2''2-M&2F
&=>?L&&&'(&&(9
!'22 =>?%7=5G2">
9!-†=PP&5&5K&4'H=
%7flq&!5,%7P&
8= ",P&?='22&'E&, Yq=>?5
&2B'2''P&8=&
!%7=>?ŠhqH&D"mF
=>?-
Y Tối ưu phương pháp
<%Au%7B> &=>?o22'q%7
=558G'2''528
'22&&(-`'("%7=>?=5B%7&
.L5&26%722'.5'2''
BB%7&>L%:I8-<;>
> 'F>&n2Oj8!jB=0
&'.n"Q‰2&2Ok8
!k &B=092<=J2 9!
!%A%7&P%L
<(ai<O&T2=P&.'2''&
.'22=5=>?&(%-X5"&
67m2"r-Q2".W&'2''
&2 "'85?!
&B%72"-X8&2P&
8=&'2''&L &2o'2'' ""q %7‹
.-Umo2"rqB%76629u
'2''B-<;> OYB.5%'-
X'22.9&..o 2" q-N
.=&?&'22-U2"!
2&BB%7!?5-v'.
Wu25&!-X? 8
2B.!'H=f
<;>> OYB.'22%'f
<P'22 &26%7=>?
'22B+=/7L=>? 2":52
=>?L?'22/L%.!
2-M&26%7H":u'2''B B"8=u
.!B &T. 2'_&
"B9&%:(A?-\54=+=
'66.!>&P.5 2&
":&LFB5222''B-
Chương 4: Phương pháp đề xuất
1 Giới thiệu chung
<2%Aai<O%74+8> 5'22&'
?"&]c"]4&eL%:E8-J4=B)
"5'B%7=>?%&.4&m
G);7-S57%A&L
d u">& 'LG ' '"2
"=?.5/'22L-•'F%>(
/9&'22;5SO<'x& &'22"&
'22 ; ! ' x& ' 5 SO<L /
"2"=?.5-M5PP&5&'_'F&
'22=Ld"%@5;+]c"]
4"&.-
S84%Aai<O"(%'("%722'-<2
%%A4+8> F5&2&'22B
%7=>? 2B'_F522'5'2''
B-S6=84+=";7824
=>? '("%722'"K='_8"L82%7F=>
?5'_F22'5'2''B-vAG %Aai<O
$%465&‡40G"
PP&5&;7-
<.= +%74+8&%A5
>%Aai<O-^%A4+8=%LL
=5(%'("%722'.n'F%%3Œ"2"
'2•-SL&T&23P3 B'_%AL2
B%7&.'22?=8-`B &22'F
L 2B":="%7=&?F
L'2''G-X=DP.=&4
G2P3 P&5&
-JB%A4+8 ,+H=RUO
<">aO`bc&2]-U=dBeP&%7
'22&'&DB=>?45
%:/LG"A.-^%A4+8
@?>>DB&'(=5&Š=
> L.%746H"‡ %A
BW">%:7"L-
11 Phương pháp đề xuất
l Giao thức đề xuất
<&"‚2'='2&= 2%7"&Y""client
agentservice agentf
• Client Agentf(%7?P&'22=>
?&P-U"22'_B"F=>?5
2'22B%7=>?&P-\5
2Be "22'_F5=>?
:645-
• Service Agentf&'22-222B
e%AL'22266G"
&P-<&T'222B22^+=B
'22&PF5"22
m'22255-
l Giao thức giữa Client Agent và Service Agent
vP%L&G"22'22
2-"223P&'222/
7 "22'_FUƒ^L2'22
2+!"'222BBe%7
=>?=-\5'222 B'_
F4\N^CN^Nb.U"2O2-
\%7" '222F^CN^Nb‹&2T
mX^bw%AU"2O2-M
6%7^CN^Nb /=A5 U"2O2'_
F=>?Cb†tb<L!-22O2"K='_
%AL=>?"22F
451\ƒNCQ-
Y Giao thức giữa các Service Agent
l Service CFP
<P3 '222'_F
Uƒ^5'22+'2''2'
B-<=> =B?5
=B .n%AL`ƒ&"‚
2 '='2& m t``1 $ B +
O2'2''-Xn= '("%722'
%A4+8='_%7&-
Y Service PROPOSE
+!%7O2'&P 2'22
= '_ F G " &P &2''2
^CN^Nb-v2'226%7
^CN^Nb&2''2'_%7P.=53?
%L-
h Service REQUEST
M6%7''22&P 5
'2228=n&P=5
5'222 Cb†tb<'_
%7F-
Y Khởi tạo dữ liệu cho service agent
^%A4+8>%%366G"&?=
=3 B%%3?L6S2P&%:
I8>&-J&.;+54 3H=
4+8'F>&"=2'22-U
"=='_"me2 :BB
&.%7G)54"/7L=>?-
l Bảng Service Table cải tiến
22<."23H=>&&OU"%GT
&'22?-UT
=B%74"22%7'F
&G) &.6=5-
Output Action Chain Channel Hop
M2 exchange.convert Oj l
b exchange.convert OY l
Y Hoạt động của service agent
l Hoạt động lúc khởi tạo
%7uG"'22B 22
2'_FUƒ^L'2226
6'2''2'&P-
Y CFP Listenser
6%7Uƒ^u'222 '22
2B'_&+2&2FL"2'
='2''-\52"2' 26%7'_6
62'&PF.'22&P
2u F -UD2F"'2''
26 26'_FUƒ^=>?
2FG""66-gH= B+5
%:7&2uB"2''2''
& 2-J! )42' '2'' $
(%3%Aai<O-
h PROPOSE Listener