- 5 -
L 1
LI C 4
MC LC 5
DANH MC CÁC KÝ HIU VÀ CH VIT TT 7
DANH MC CÁC BNG 8
DANH MC CÁC HÌNH V 9
LI GII THIU 11
NG QUAN V KING DCH V VÀ NGÔN NG
BPEL 13
1.1Tng quan v king dch v 13
1.1.1King dch v 13
1.1.2Dch v Web 13
1.2Kt hp dch v 15
1.3 Ngôn ng BPEL 16
1.3.1
16
1.3.2
17
1.3.3
19
1.3.4 19
1.3.5n 30
1.3.6X lý li 31
KIN TRÚC CÁC TRÌNH X LÝ BPEL 32
2.1 Khái nim trình x lý BPEL 32
2.2 Kin trúc mt s trình x lý tiêu biu 35
2.2.1 Apache ODE 35
2.3.2 ActiveVOS 38
2.3.3 Oracle BPEL Process Manager 41
A MT S TRÌNH X LÝ BPEL 47
3.1 lý BPEL 47
3.2 Xây dng h thc 48
3.2.1 B lý BPEL 48
t trình x lý BPEL 48
3.2.3 Xây dng ng dng dch v Web 49
- 6 -
3.2.4 Trin khai công c 52
3.3 Thc hi 55
3.4 kt qu c 57
lý 57
3.4.2 So sánh thi gian x lý ca các trình BPEL 60
3.5 So sánh các yu t k thut khác 64
KT LUN 66
TÀI LIU THAM KHO 67
- 7 -
Thut ng
Chú gii
CSDL
d liu
Web Service
Dch v Web
BPEL
Ngôn ng thc thi tin trình nghip v
WSDL
Ngôn ng ch v
Activity
Tác v
SOA (Service Oriented
Architecture)
King dch v
XPath
Mô t thuc tính và phn t cng XML
WS-Addressing
c t nh dch v Web p
XML Schema
c t nh dng XML
Process
Tin trình nghip v
OASIS (Organization for the
Advancement of Structured
Information Standards)
T chc vì s phát trin ca các chun thông tin có
cu trúc
Axis2
Là nn tng dch v Web tt
các ng dng Web Service
REST (Representational State
Transfer)
Giao thc truyn trng thái
API (Application Programming
Interface)
Giao din lp trình ng dng
Apache ServiceMix
Là công c mã ngun m kt ni các dch v
Web trong king dch v
JBI (Java Business Integration)
c t h tr vic giao tip các ng dng trong
king dch v
DAO
ng truy cp d liu
Jacob
Java Concurrent Object
Tomcat
Máy ch ng dng mã ngun m ca Apache
Jboss
Máy ch ng dng mã ngun m ca T chc
JBoss
WebSphere
Máy ch ng dng ca hãng IBM
Weblogic
Máy ch ng dng ca hãng Oracle
POJO (Plain Old Java Object)
ng
JMS (Java Message Service)
API giao tip cho phép truyn nhp theo
point-to-point
JSON (Java Script Object
Notation)
Chunh dng d lii Javascript
XML (Extensible Markup
Language)
Ngôn ng u m rng
JCA (Java EE Connector
Architecture)
Gii pháp kt ni các ng dcác
h thng ng dng
B2B (Business To Business)
n t gia các
doanh nghip
- 8 -
Bng 1.1 Các tác v trong ngôn ng WS-BPEL 2.0 20
Bng 2.1 Danh sách các trình x lý BPEL hin nay 34
Bng 3.1 Danh sách các công c trin khai ca các trình x 49
Bng 3.2 Danh sách các ng dng dch v Web 50
Bng 3.3 p gi yêu cn Dch v Web 54
Bng 3.4 Bng thng kê t l li ca ActiveVOS 58
Bng 3.5 Bng thng kê t l li ca Apache ODE 59
Bng 3.6 B thut ca các trình x lý BPEL 64
- 9 -
Hình 1.1 Mô hình cng dch v 13
Hình 1.2 Kt hp các ng dng theo kin trúc SOA trong mt h thng ngân hàng 15
Hình 1.3 17
Hình 1.4 Ví d v kiu liên kt ngoài - PartnerLink Type 18
Hình 1.5 Ví d v liên kt ngoài - PartnerLink 18
Hình 1.6 Cu trúc file BPEL 19
Hình 1.7 Cu trúc XML ca receive 21
Hình 1.8 Ví d v ng hp s dng invoke 22
Hình 1.9 Cu trúc XML ca invoke 22
ng hp s dng ca Reply 23
Hình 1.11 Cu trúc XML ca Reply 23
ng hp s dng ca Validate 24
Hình 1.13 Cu trúc XML ca Assign 25
ng hp s dng ca Throw 25
ng hp s dng ca ReThrow 26
Hình 1.16 Cu trúc XML ca Flow 27
Hình 1.17 Cu trúc XML ca Repeat Until 27
ng hp s dng ca Pick 28
Hình 1.19 Cu trúc XML ca If 28
Hình1.20 Cu trúc XML ca Flow 28
ng hp s dng ca Foreach 29
Hình 1.22 Cu trúc XML ca Foreach 29
Hình 1.23 Cu trúc XML ca While 30
ng hp s dng ca Scope 30
Hình 2.1 Mô hình kin trúc BPEL 32
Hình 2.2 Mu tin trình logic 33
Hình 2.3 Trình thit k ca Apache ODE trên nn tng Eclipse 35
Hình 2.4 Kin trúc ca Apache ODE 36
Hình 2.5 B sn phm ActiveVOS 38
Hình 2.6 Trình thit k ActiveVOS 39
Hình 2.7 Kin trúc tng quan ca ActiveVOS Server 39
Hình 2.8 Mi quan h ca Oracle BPEL Process Manager vi các thành phn khác 42
Hình 2.9 Kin trúc ca Oracle BPEL Process Manager 43
Hình 2.10 Trình thit k Jdeveloper cho Oracle BPEL Process Manager 45
Hình lý BPEL 48
Hình 3.2 Giao din thit k mô phng tác v If-else dùng trình thit k Eclipse 51
Hình 3.3 File WSDL th hin giao tip vi dch v Web 52
Hình 3.4 Kt qu ng Jmeter 53
Hình 3.5 Ci dùng s dng Thread Group 54
Hình 3.6 Cu hình phép th vi dch v Web 55
- 10 -
a trình x lý BPEL 56
Hình 3.8 Cch v Web 56
Hình 3.10 Bi thi gian tr v trung bình ca Oracle BPEL Process Manager 57
Hình 3.11 Bi thi gian tr v trung bình ca ActiveVOS 58
Hình 3.12 Bi thi gian tr v trung bình ca Apache ODE 59
Hình 3.13 So sánh thi gian phn hi trung bình và ln nht ca tác v While 60
Hình 3.14 So sánh thi gian phn hi trung bình và ln nht ca tác v Flow 61
Hình 3.15 So sánh thi gian phn hi trung bình và ln nht ca tác v FlowDep 61
Hình 3.16 So sánh thi gian phn hi trung bình và ln nht ca tác v Sequence 62
Hình 3.17 So sánh thi gian phn hi trung bình và ln nht ca tác v If-else 62
Hình 3.18 So sánh thi gian phn hi trung bình và ln nht ca tác v Invoke 63
- 11 -
Ngày nay, các ng dng công ngh thông tin trong doanh nghip có nghip v ngày
càng phc ti nhng ng dng m ng nh i
nghip v trong th gii cnh tranh. Vi s ng các ng dng phát trin ngày càng
nhii phi có công ngh có th kt hp nhng h thi. Kin
ng dch v (Service-Oriented Architecture - i nhm gii quyt bài
vic phi hp các dch v và các h thng có sn thành mt
quy trình thng nht.
Dch v Web (Web Service) là mt trong nhng công ngh hin thc
hóa king dch v. Trong công ngh i ta s dng ngôn ng BPEL
(hay còn gi là WS-BPEL) xây dng và thc thi các tin trình nghip v. Phiên bn
mi nht ca BPEL làWS-BPEL 2.0, là ngôn ng mô hình hóa các tin trình nghip
v cho các ng dng theo king dch v. Các tin trình xây dng trên nn
ngôn ng BPEL ngoài các phép toán cng còn có các li gn các
dch v thc thi các chn trúc SOA s dng chun giao tip
kt ni vi các ng dng khác, chính vì th các h thn sa
i nhi kt ni vi các ng dng mi. Tic xây dng
xong s thc thi trên các trình x lý BPEL (BPEL engines). T thc hin ca các
tin trình hay các ng dng này ph thuc vào hia các trình x lý. Vì th,
vic la chn mt trình x lý BPEL phù hp vi yêu cu hong ca ng dng là
mi vi các doanh nghii phi có nh
chính xác hia các trình x lý BPEL.
Xut phát t yêu cu thc t trên, lu tin hành c, so sánh và
hia mt s trình x lý BPEL thông dng hin nay. Lu s dng
dng các công c c thi gian phn hi
ca các trình x lý BPEL khi cùng thc hin mt tác v (Activities). Kt qu c s
hi
nhng li khuyi dùng khi la chn mt trình x lý BPEL c th. Cu
trúc ca lu nghiên cu tng quan v kin trúc
SOA và ngôn ng WS-BPEL 2.0, tìm hiu kin trúc các trình x lý BPEL,
a mt s trình x lý BPEL. Phn Kt lun
ng kt qu c ca lung phát trin ca lu
Trong C , luu lý thuyt kitp trung
vàocông ngh dch v Web cho phép xây dng quy trình nghip v t các dch v
l và các ng dng trên nn tng và công ngh khác s dng ngôn ng WS-BPEL 2.0.
Ngôn ng WS-BPEL 2.0 có nhng tác v cu trúc mô t hong nghip v,
và nhng tác v có kh i các dch v bên ngoài thông qua dch v Web. Nhng
- 12 -
tác v ng, n hit ng ca các tin
trình nghip v.
tìm hiu kin trúc hong chung ca BPEL vi 03 thành phn chính:
Trình thit k BPEL, mu tin trình theo chun ngôn ng WS-BPEL 2.0 và trình x lý
BPEL. Có rt nhiu các trình x lý BPEL hin nay, tuy nhiên chúng ta s la chn tìm
hiu 03 trình x lý tiêu biu: Apache ODE, ActiveVOS và Oracle BPEL Manager.
Vic nghiên cu kin trúc ca các trình x lý này s c cái nhìn
tng quan v kic cách thc làm vic ca các trình x lý.
s dn khai các trình x lý
và s dng các công c i gian thc hin ca chúng. Trong phm vi lu
này, tác gi s la chn các tác v n và quan trng nht ca ngôn ng WS-BPEL:
If- u
a các trình x lý BPEL. Các ng dng dch v Web s c xây d mô
phng tng tác v c trin khai trên tng trình x lý vi ct
mnh. Tip theo, công c t ng Apache Jmeter s c s d thc hin
i gian phn hi khi gi các yêu cn trình x lý. S ng các yêu cu s
dng vi s t qu c s c
Sau khi tic và phân tích, luc mt s kt qu so sánh
hinh gia các trình x lý. T ng kt lun v
hing thng khuyn cáo chi dùng khi la chn mt trình
x lý BPEL cho ng dng ca mình. V ng phát trin ca lu
tác gi s tip tc thc hin ng khác nhau:
h u hành, máy ch ng dng, CSDL khác nhaunhi kt qu so sánh
tng h thông tin và chính xác nht v hia các trình x lý BPEL.
- 13 -
:
u nhng nét tng quan v king
dch v, công ngh Web Service và ngôn ng thc thi tin trình nghip v BPEL.
1.1
1.1.1 King dch v
King dch v, là 'Khái niệm về hệ thống trong đó mỗi ứng
dụng được xem như một nguồn cung cấp dịch vụ'[20].Nói theo mgin thì
king dch v (SOA) là mng tip cn vi vic thit k và tích hp các
phn mm, ch thng theo dng module và có kh p thông qua
ng mng. H thng theo chun SOA là mt tp hp các dch v c chun
hóa trên mi vi nhau trong ng cnh mt tin trình nghip v. S cng tác
trong kin trúc SOA[20] c mô t u:
Hình 1.1Mô hình cng tác ng dch v
Trong mô hình trên, nhà cung cp dch v cn cung cp thông tin v dch v ca mình
cho mt thông tin dch v mi thông tin v dch v
c t, chp, giao din s dng. i s dng s tìm kim trên
Web c thông tin mô t v dch v cng
kênh giao tip vi phía nhà cung cp.
King dch v cung cp gi gii quyt các v tn ti ca các h
thng hic tp, không linh hot và không nh. Mt h thng trin
khai theo mô hình ng dch v có kh m rng, liên kt t
s và nn tng cho vic tích hp, tái s dng li nhng tài nguyên hin có. Tuy nhiên,
king dch v ch là mô hình lý thuy hin thc hóa mô hình này, mt
trong nhng công ngh c s dng ph bin là dch v Web (Web Service).
1.1.2 Dch v Web
Dch vWeb là ht nhân trong king dch v. Theo IBM [12Dịch vụ Web
là một hệ thống phần mềm được thiết kế để hỗ trợ giao tiếp giữa các hệ thống qua
- 14 -
mạng. Nó có giao tiếp được mô tả theo định dạng chung mà các máy tính có thể xử lý
được gọi là ngôn ngữ định nghĩa dịch vụ (Web Service Definition Language -
WSDL)Dch v Web có th cung cp mt chc mt tp các ch
nhnh. Dch v Web c mô t thông qua mt chunh dng XML, gi là
c t dch vp thông tin cn thi có th i dch v,
bao gnh dp (c các toán t), giao tha chc t
t bên trong, vì th dch v Web c lp vi nn
tng phn cng và phn mm to nên nó. King dch v là c
ca phát trin ng dng, chú trn qui trình nghip v và dùng giao tip chu
phc tp k thui.
Thit k ng dch v tách riêng phn thc hin dch v (phn mm) vi giao tip gi
dch v u này to nên mt giao tip nht quán cho ng dng khách (client) s
dng dch v bt chp công ngh thc hin dch v. Thay vì xây dng các ng dng
s, nhà phát trin s xây dng các dch v tinh gn có th trin khai và tái
s dng trong toàn b quy trình nghip vu này cho phép tái s dng phn mm
t linh hot vì nhà phát trin có th ci tin dch v mà không
làm n ng dng khách s dng dch vm quan trng nht ca
king dch v là kh t ni 'mm do' loose coupling và tái s dng.
Các dch v có th c thit k trên nn tng và ngôn ng và ngôn ng bt k, hoàn
c lp vi h thng Client s dng nó. Ví d, mt ng dng Java có th liên kt
vi mt dch v Web vit bng công ngh c li.
Có th thy dch v Web giúp cho các ng dc tích h dàng
n ít i các công ngh th, s dng dch v Web
i nhng li ích sau:
Gim chi phí phát trin nghip vdch v cung cp có sn. Các dch
v này có th s dng li nhiu ln.
Cung cp kh n khai gip có th
kt hp nhng dch v có s phát trin thành mt quy trình nghip v hoàn
thin.
Vi ving ng dng h tr cho nghip v ca doanh
nghip vi chi phí r này m ra nhi kinh doanh mi.
u nay, dch v Web s dng các giao thch tr vic giao tip gia các
h thXML, SOAP và WSDL. SOAP hay còn gi là giao thc truy cp
n là giao th i thông tin gia các ng dng phân tán. Nó
da trên chun XML bao gm 3 phn sau: mt l a khung v
p và cách x lý nó; mt tp các lu biu din các kiu d
liu mà ng di cho các th tc gi t xa. SOAP có th dùng
kt hp vi các giao th Trong hình 1.1 trên, nhà cung cp dch v
- 15 -
s dnh d ch v vi i s dng
dng giao di kt ni ti dch v th nghim và thc thi.
Vii gii s dng dch v và nhà cung cc thc hin qua các
p XML da trên giao thc SOAP.
1.2
Ngày nay, vi s phát trin ca các ng dng nghip v i các ng dng công
ngh thông tin phi có mt h tng mm do và linh ho có th nhanh chóng thay
ng. Tuy nhiên, các ng dng CNTT truyn thc thit k
ng chng phc v mt nghip v nhnh, khó có kh
i nghip v khi cn. Kt qu là rt nhiu các doanh nghip không th tip tc
s dng li các h th tích hp vi các thit k ca h thng mi.
Mt ra là làm sao có th s dng li các cha các h thng
to ra mt h thng mi, nhm tit king
cnh tranh hin nay.
Kin trúc ng dch v i nhm gii quyi ta dùng thut ng
tm dch là kt hp các dch v. Kin trúc này cho phép kt hp các
dch v ri rc thành mt ng dng nghip v thng nht mn và nhanh
chóng mà không ci các dch v . Không gi c
i dùng mun s dng mt cha ng dng có sn, h cn phi
tích hp mã ngun hon ca ng dng dng mi; kin trúc
ng dch v h tr kh dng li các chn là
các dch v Web chy trên các h thc bit cakin trúc này giúp
cho vic tích h
Hình 1.2 Kt hp các ng dng theo kin trúc SOA trong mt h thng ngân hàng
- 16 -
Hình 1.2 trên là ví d v vic kt hp các ng dng trong mt ngân hàng theo kin trúc
ng dch v. Ngân hàng có rt nhiu các h thc phát trin trên các ngôn
ng y trên các nn t
o ngân hàng mun xây dng mt h thng
giám sát giao dch t kim soát tt c giao dch ca các h thng: h thng
lõi (giao dch ngân hàng), h thng th ATM, h thng ngân hàng trc tuyn, h thng
chng khoán, h thng sàn vàng. Phòng phát trin ng d xut và xây dng h
thng ng dng theo king dch v s dng công ngh dch v Web tn
dng h tng các ng dng sn có. Mi ng dng sn có s xây dng dch v Web
a nó ng dng mi s gi các dch v Web to
thành mt ng dng hoàn chnh.
Trong chi ng hóa dch v n ích cho khách hàng, ngân hàng
mun trin khai dch v thanh toán tin thoi cho các khách hàng có nhu
cu. Công ngh dch v Web tip tc la ch giao tip vi h thng thanh
c ca công ty vin thông. Trong mô hình này, công ty ving
sn các dch v Web cho phép truy vc
cn xây dng quy trình nghip v cho phép giao tip (theo công ngh dch v Web) và
thc hin các giao dn thoi t tài khon c
y, công ngh dch v Web không ch cho phép kt hp nhiu ng dng và
dch v trong ni b doanh nghip mà còn h tr giao tip vi h thng ngoài theo mô
hình B2B (Business To Business).
kt hc các dch v Web thành mt quy trình nghip v hoàn chi ta
s dng ngôn ng mô phng và thc thi tin trình nghip v có tên là BPEL. Ngôn
ng BPEL s nh n trình, các dch v ngoài và s dng các tác v, các phép
to thành mt quy trình. hi ngôn ng BPEL, chúng ta s
u v tng thành phn ca nó trong ph
BPEL
1.3.1
BPEL (Business Process Execution Language ) h
,
Web . Phiên
bi vào tháng 07/2002. Vào tháng 05/2003 BPEL1.1
i da trên vic kt hp BPEL 1.0 vi mt s ngôn ng trình lên
t chc OASIS [17] (mt t chn thông tin). Tháng 04/2007
t chc OASIS chui tên thành WS-n
nay.
c cung cp sn các th mô t
ng và các ho ng x lý ca mt quy trình nghip v ng.
n lý các s kin và ngoi l bo
toàn d liu khi có ngoi l xy ra.
i các thông
- 17 -
p dng XML n mt dch v khác, thao tác trên cu trúc XML, nhn các thông
p XML ng b ng b) t các dch v bên ngoài.
XML :
WSDL, XML Schema 2.0, XPath 2.0 và WS-Addressing.
Hình 1.3 i th hin mô hình mt tin trình BPEL trong thc t. Mt tin trình
BPEL bao gm 2 tác v n nht là receive và reply receive dùng
nhn yêu cu vào, còn reply tr li kt qu i dùng. Gia 2 tác v này
còn có nhiu tác v khác làm nhim v gi các dch v Web t bên ngoài
(callbackClient), thc thi, x lý các d liu trung gian(Assignc khi tr v kt qu
cui dùng.
Hình 1.3
1.3.2
: WSDL, XML Schema 2.0,XPath 2.0 và WS -
.
-to-
Web
.
.
phc t cng thi s dc t c cung cp bi các
dch v khác trong quá trình
.
Tuy nhiên có mt v t ra là: làm th tin trình BPEL có th phân bit
c tng dch v mà nó tng h ng dch v
ci dch v c s dng trong ti nào trong
toàn b ti gii quyt v này, m mi là
kiu liên kt ngoài - partnerLinkType và liên kt ngoài-partnerLink.
- 18 -
Kiu liên kt ngoài - PartnerLinkType
Các dch v a tin trình nghip v c mô t là các
PartnerLinkType trong BPEL. Mi mt PartnerLink c mô t bng mt
PartnerLinkType i din cho tt c
PartnerLink u PartnerLinkType ng ch có mt role thì role này s mc
c gán cho thuc tính myRole ca PartnerLinku có nhiu role thì
phi ch cho bit PartnerLink này hong vi PortType nào.Hình 1.4
ví d v mtkiu liên k
ng h ng, portTypes ca hai roles (MyRole
PartnerRole) namespaces
.
namespace,
callback().
Hình 1.4Ví d v kiu liên kt ngoài - PartnerLink Type
Liên kt ngoài - PartnerLink
Các dch v a tin trình nghip v c mô t là các
PartnerLinkType trong BPEL. Mi mt PartnerLink c mô t bng mt
PartnerLinkType i din cho tt c
PartnerLink u PartnerLinkType ng ch có mt role thì role này s mc
c gán cho thuc tính myRole ca PartnerLinku có nhiu role thì
phi ch cho bit PartnerLink này hong vi PortType nào. Hình 1.5 v
PartnerLinki partnerLinkType là “qname”:
Hình 1.5Ví d v liên kt ngoài - PartnerLink
PartnerLinkType c mô t trong tt khái nim m rng cho
chun WSDL. Còn các partnerLink nào c dùng trong tic ch
ra trong tp tin BPEL.K thut dùng partnerLink chng nhng gii quyc v
trên mà còn giúp tin trình BPEL có th d dàng tích hp vi các b phn khác trong
kin trúc tng th ca SOA. C th, nh t partnerLink, chúng ta s
<partnerLinks>
<partnerLink name="ncname" partnerLinkType="qname"
myRole="ncname"? partnerRole="ncname"?>+
</partnerLink>
</partnerLinks>
<partnerLinkType name="BuyerSellerLink"
XMLns="
<role name="Buyer">
<portType name="buy:BuyerPortType"/>
</role>
<role name="Seller">
<portType name="sell:SellerPortType"/>
</role>
</partnerLinkType>
- 19 -
dng thuc tính myRole ch vai trò ca chính dch vWeb ca BPELc li,
thuc tính partnerRole ch vai trò ca mt dch v bên ngoài.
1.3.3
XMLc mô t trong
BPEL giao tip vi trang Web và các dch v i tài liu XML(SOAP). Các khái
nim (phn t) chính trong mt tin trình BPEL bao gm:
<Process>:
<process>.
.
<Imports>:
.
<PartnerLinks>: Cha tp hc s dng trong tin trình. Mi
partnerLink s thit lp mt quan h gia bn thân process vi mt service bên ngoài.
<Variables>: Phc dùng trong tin trình. Mi biu
phc tham chin mt kip (messageTypec mô t trong tp tin
WSDL.
<Sequence>: n chính mô t logic ca tin trình. Trong mt <sequence> s
cha nhiu tác v c trình bày chi tii). Mi tác v có mt nhim v c
th trong tin trình BPEL. Bn thân <sequence> t tác v, có th cha các
c cu trúc tun t khác.
:
Hình 1.6Cu trúc file BPEL
1.3.4
Mt tic th hin qua các tác v, các tác v c thc
hin tun t theo cc khai báo trong tin trình. Trong ngôn ng WS-BPEL
2.0 các tác v
Tác v n: Là các tác v , nó không th chc bt k các tác v nào
khác bên trong nó na.
<process name="helllo">
<import
location="aloArtifacts.wsdl"namespace=" />ample"
importType=" />
<partnerLinks>
………………
</partnerLinks>
<variables>
………………
<variables>
<sequence name="main">
</sequence>
</process>
- 20 -
Tác v cu trúc: Là các tác v có cu trúc, nó có th chc các tác v khác bên
trong nó.
Tác v x lý li:Các tác v c s d th lý li và các ngoi l xy ra
trong quá trình hong ca mt tin trình.
Tùy theo nhu cng hp c th mà ta có th chn và s dng các tác
v khác nhau.Bng sau mô t chi tit v các tác v trong ngôn ngWS-BPEL 2.0:
Bng 1.1Các tác v trong ngôn ngWS-BPEL 2.0
Tên tác v
Các tác v n
Empty
Là mt tác v c bit, không làm gì hc gi. Tác v này
c dùng khi cn có mt tác v t s cn mt
ng nào xy ra.
Invoke
ch v Web
Receive
Nhn mp t mt dch v
tác v bu mt tin trình mi
Reply
Gi tr m
Opaque
Activity
Là mt tác v dng dn xut
Assign
BPEL
Validate
Kim tra tính hp l ca các bi
nh
a nó (chng ha trên XML Schema, hay
Các tác v
If/Else
u kin
Pick
a chng nào
s c thc hin khi s kinh xy ra,
nu không có s kin nào xy ra trong mt thi gian ch nh
ng nào s c thc hi
Flow
X u khin ph thuc.
While
- 21 -
RepeatUntil
tin trình Repeat
Foreach
Wait
g
Sequence
Scope
chia nh tin trình thành các tác v có các nhim v
liên quan vi nhau (khi tin trình tr nên phc tp).
tác v
Exit
Throw
Rethrow
Ném ra thông báo li sau khi lc th
Compensate
Scope
Là tác v th lý li. Khi có li xy ra thì tác v này s
x lý li trên phc ch ra
Compensate
Có ch Compensate Scope
th lý li trên phm vi tt c các phm vi liên quan
chi ting hp s dng ca tng tác v:
Tác v nhn - Receive
Khi mt tin trình BPEL cn nhn mp thì tác vreceive s c s dng.
Tác v Receive s c dch v c nhp và các
Operation t dch v ngoài mà nó cn phi gi thông qua PartnerLink và Operation.
thc c thì tác vreceive phc mt biu vào (input) hoc
phn d lic nhn. Cu trúc XML ca tác vreceive c th hi
sau:
Hình 1.7Cu trúc XML ca receive
<receive partnerLink=”NCName” portType=”QName”?
operation=”NCName”
variable=”BPELVariableName”? createInstance=”yes|no”?
messageExchange=”NCName”?
standard-attributes>
standard-elements
<correlations>?
<correlation set=”NCName” initiate=”yes|join|no”?>+
</correlations>
<fromParts>?
<fromPart part=”NCName” toVariable=”BPELVariableName”/>+
</fromParts>
</receive>
- 22 -
Hình 1.7 mô t khai báo tác v receive bao gm liên kt
s c ng dng khách s dng và g n. Bin BPEL
c s d u vào t p.
Tác v gi dch v Web - Invoke
gi hoc thc hin mt dch v Web dng tác v invoke. Tác
vInvoke mô t mt dch v Web thc hin dt chiu-
ch v Web nh thông qua PartnerLink và Operation
thc thi mt tác v Invoke thì cnh ít nht mt biu vào và có hoc không
có biu ra tùy thuc vào tng dng dch v Web mà nó gi thc hin (dt
chiu-ng1.8 mô t mng hp s dng c th ca
tác v invoke trong mt ch,chi dch
v Web: tìm kim tên khách hàng (InvokeLookupCustomerName):
Hình 1.8 Ví d v ng hp s dng invoke
Cu trúc XML cc mô t
Hình 1.9Cu trúc XML ca invoke
<invoke partnerLink=”NCName” portType=”QName”?
operation=”NCName”
inputVariable=”NCName”? outputVariable=”NCFullName”?
standard-attributes>
standard-elements
<catch faultName=”QName”? faultVariable=”NCName”?
faultMessageType=”QName”? faultElement=”QName”?>*
activity
</catch>
<catchAll>?
activity
</catchAll>
<toParts>?
<toPart part=”NCName” fromVariable=”BPELVariableName”/>+
</toParts>
<fromParts>?
<fromPart part=”NCName” toVariable=”BPELVariableName”/>+
</fromParts>
</invoke>
- 23 -
Trong hình1.9, mt tác v invoke gi dch v ngoài có partnerLink
này s dng bi u vào
kt qu v cho bin
Tác v nhn - Reply
Mt tác v nhn (Reply)t giá tr tr v trong mt tin trình BPEL.
Nc g c dch v Web i tác tip nhn thông qua tác
v Receive dng onMessage p) hoc onEvent (s kin). Mt tác v Reply
thì s có cùng mt partnerLink và operation vi tác v Receive ng ca dch v
Web thc, tác v Reply yêu cu phc t p
mà nó s gn trình xut hin li thì tác v Replys tr v mt ngoi l.
Chúng ta có th kim soát các li này bng cách thêm mt tác vThrow tr v mt
ngoi l nu x lý trong tin trình b l10:
Hình 1.10ng hp s dng ca Reply
Cu trúc XML ca tác v Reply
Hình 1.11Cu trúc XML ca Reply
<reply partnerLink=”NCName” portType=”QName”?
operation=”NCName”
variable=”BPELVariableName”? faultName=”QName”?
messageExchange=”NCName”?
standard-attributes>
standard-elements
<correlations>?
<correlation set=”NCName” initiate=”yes|join|no”?>+
</correlations>
<toParts>?
<toPart part=”NCName” fromVariable=”BPELVariableName”/>+
<toParts>
</reply>
- 24 -
Tác v reply trong hình1.11 có cùng partnerLink và operation vi tác v receive
ng vi nó. Tác v này dùng bi t qu tr v t
nhng tác v a tin trình.
Tác v kim tra tính hp l - Validate
Mt tác vValidate có nhim v kim tra tính hp l ca các bin d
cn tài liu XML và WSDL. Bn có th kim tra mt danh sách
các bin vi tác v này. Trong sut quá trình hong nu có mt bic
tìm thy có cha mt giá tr không hp l thì tin trình ngay lp tc kt thúc vi mt
ngoi l invalidVariablesc ng b kim tra tính hp
l ca các bic s dng trong tác vAssign. Hình 1.12 mô t mng hp s
dng ca Validatet gia tác v Assign và Reply kim tra tính hp l ca các
bic khi tr v kt qu cui cùng:
Hình 1.12 ng hp s dng ca Validate
Tác v gán - Assign
Tác v Assign cp nht giá tr cho các bin cha bên trong nó. Assign
cp nht các bin bng mt trong nhng cách sau:
Copy d liu t mt bin khác
Khi tc ca XPath
Khi tc ca WS-BPEL và mt s g thc m
rng khác
Cu trúc XML ca Assign c th hi
- 25 -
Hình 1.13Cu trúc XML ca Assign
Tác v Assign bao gm mt hoc nhiu th <copy> thc hin nhiu thao tác gán
các bin. Mt th m 2 phn <from> - ngun và <to> -
sao chép bi bin ngun. Th <copy> không ch c s dng vi
các bin mà còn sao chép mt phn t ca mt bin phc hp hoc s dng
biu thc thông qua ngôn ng XPATH
Tác v x lý li- Throw
Tác v Throw c s d tr ra các li trong quá trình thc thi ca mt tin trình
BPEL. Bn có th thit l dn tác vThrow t các tác v khác
ng hp xy ra l14: Nt c ngoi l nào sinh ra
mt trong các tác v bên trái, thì nó s c bt bi tiEventHanders
v các ngoi l thông qua tác v Throw bên phi
Hình 1.14 ng hp s dng ca Throw
Tác v x lý li bên ngoài - ReThrow
Tác v Rethrow c s dng hp bn không mun ra ngoi l và
dng tin trình tm gây ra li mà mun ném nó lên mt cp x
Rethrow bt tt c các lc ném ra t tii bi tác
<assign>
<copy>
<from variable="TimesheetSubmissionFailedMessage" />
<to variable="EmployeeNotificationMessage" />
</copy>
<copy>
<from variable="TimesheetSubmissionFailedMessage" />
<to variable="ManagerNotificationMessage" />
</copy>
</assign>
- 26 -
v Throw.Ví d trong hình 1.15 mô t ng hp s dng ca Rethrow
bt lc ném ra t tác v Throw bên trái.
Hình 1.15 ng hp s dng ca ReThrow
Cu trúc XML ca tác vReThrow c th hi
Tác v thoát tin trình - Exit
Tác v chp dt ngay lp tc mt tic thi bt chp
mu kit ra.
Tác v dng tin trình - Wait
Tác v Wait cho phép dng tin trình trong khon thi gian bao lâu(duration) hay là
n mt mc th:
Dng trong khon thi gian 1 giây: <wait for="'PT1S'"/>
Dng cho ti mc thi gian 0 gi ngày 12-12-2011 1-12-
Tác v rng - Empty
Khi mt tin trình gp xa lý này thì s
Tác v th lý li trong phm vi - Compensate Scope
Là tác v th lý li. Khi có li xy ra thì tác v này s x lý li
trên phc ch ra. Nó là mt trong hai loi tác v th lý li ca BPEL.
- 27 -
Tác v th lý li toàn tin trình - Compensate
Có ch lý li trên tt c các phm vi có liên quan.
Tác v thc hin song song - Flow
Tác v Flow h tr thc hing b các x lý trong tin trình. Ngoài
h tr x ng b hóa các x lý thông qua các liên
kng b <link>. Mnh bi tên (name) và th hin s ràng buc
gia hai x lý. Ví d cu trúc XML ca tác v Flow :
Hình 1.16Cu trúc XML ca Flow
Trong bng 1.16 mô t cu trúc ca tác v Flow vi liên kt
ni gia 2 th <sources> và <target>.
Tác v lp Repeat Until
Mt tác vRepeatUntil c s d lp li mt x n khi nó sai
vu kit ra. Repeat Until có mi liên h vi tác vwhile. Repeat Until thc
hin x c khi ki u kin còn while c li.Cu trúc XML ca
repeat Until mô t trong hình 1.17 th hin vic gi dch v
n khi bin $iterations >3.
Hình 1.17Cu trúc XML ca Repeat Until
Tác v chn - Pick
X lý pick bt các s kin xy ra trong tin trình và thc hin x lý gn
lin vi s kiu có nhiu s kin xy ra thì x lý s n nào xy ra
c.Cu trúc pick bao gm mt tp các nhánh có dng event/activity, và ch có mt
<repeatUntil>
<invoke name="increaseIterationCounter" />
<condition>
$iterations > 3
</condition>
</repeatUntil>
<flow>
<links>
<link name="timesheetEntriesApproval" />
</links>
<receive name="receiveEntriesApproval" >
<sources>
<source linkName="timesheetEntriesApproval" />
</sources>
</receive>
<targets>
<joinCondition>
$timesheetEntriesApproval
</joinCondition>
<target linkName="timesheetEntriesApproval" />
</targets>
</flow>
- 28 -
nhánh c gi khi có s kiy ra gn lin v kin khác
thì x lý pick s không quan tâm na, ví d mng hp s dng ca x lý Pick:
Hình 1.18 ng hp s dng ca Pick
If là mt tác v u khin x lý ca tin trình. Các x u khin bi
mt hoc nhiu kic thit lp và có thêm mt tùy chn vi th Elseif. Các
u kic x lý If xem xét theo th t c thit lp trong cu trúc ca nó.
Hình 1.19Cu trúc XML ca If
Hình 1.19 mô t cu trúc ca tác v If vu kin : nm ca nhân
viên l thc hin tác v invoke gi dch v u
không s gi dch v If phù hp vi bài toán
có nhiu kin d ling vi nhing khác nhau.
Tác v x u khin ph thuc
Tác v Flowbao gm mt tp các hong x ng thng b bên trong nó,
vì th nó ch hoàn thành khi tt c các tác v bên trong th <Flow> hoàn thành. Mc
nh, các hong bên trong th <Flow> s x lý song song, tuy nhiên có th dùng
th <link> bên trong <Flow> to s liên kt gia các hong.
Hình1.20 Cu trúc XML ca Flow
<sequence>
<flow>
<invoke partnerLink="Seller" />
<invoke partnerLink="Shipper" />
</flow>
<invoke partnerLink="Bank" name="transferMoney" />
</sequence>
<if name="isEmployeeGradeGreaterThan10">
<condition>
bpel:getVariableProperty(
"EmployeeHistoryResponse","emp:grade") > 10
</condition>
<invoke name="calculateSurcharge" />
<else>
<reply name="sendNoSurchargeInformation" />
</else>
</if>
- 29 -
Hình 1.20 ví d v tác v flow bao gm hai tác v <invoke> bên trong nó. Hai tác v
này s hong thi. Tác v <invoke>transferMoney s thc hin sau khi tác
v Flow kt thúc.
Tác v lp Foreach
Tác v Foreach cha mt tác v Scope bên trong và thc hin mt vòng lp các x lý
cha bên trong theo dm. Vic lp li các x lý bên trong foreach có th c
thc hin song song hoc tun t. S ln lp li ca foreach c thit lp bi biu
thc khi to cho giá tr bu và giá tr kt thúc. Mt th <startCounterValuec
thit lp giá tr khu vòng lp và <finalcountervalue thit lp cho giá
tr kt thúc. Nu finalcounter value lstartcountervalue thì vòng lp s không
c thc hin. Ngoài ra trong x lý foreach còn có thêm mt tùy chn
complentioncondition u kin complention c s d ng hp x lý
foreach khi ta ch mun x lý N ca M nhánh trong x lý foreach(N<M). Hình 1.21 là
mng hp s dng ca foreach:
Hình 1.21 ng hp s dng ca Foreach
Hình 1.22Cu trúc XML ca Foreach
<forEach counterName="NCName" parallel="yes|no">
standard-attributes>
standard-elements
<startCounterValue expressionLanguage="anyURI">
</startCounterValue>
<finalCounterValue expressionLanguage="anyURI">
</finalCounterValue>
<completionCondition extension-attribute
extension-element
</completionCondition>
activity
</forEach>