You are on page 1of 55

HC VIN CNG NGH BU CHNH VIN THNG

C S TI THNH PH H CH MINH
---------------------------------------------

BO CO TT NGHIP H I HC
Ngnh : Cng Ngh Thng Tin
H : Chnh quy
Nin kha : 2005-2009

ti :
NGHIN CU WEB SERVICES COMPOSITION
S DNG BPEL4WS
M s ti : 405170081

Sinh vin thc hin : Hong Xun Tun


M s sinh vin
: 405170081
Ngi hng dn :TS. Tn Hnh

Nm 2009

LI CM N

Qua 4 nm hc tp,c s tn tnh ch bo ca cc thy c trong Hc


vin trang b cho em nhng kin thc c hnh trang vo cuc sng.
Trong 6 thng qua em xin chn thnh cm n thy Tn Hnh hng
dn em lm ti ny v cc bn trong lp cng to iu kin em hon
thnh lun vn
Do thi gian lm n v kin thc cn hn ch nn khng th trnh khi
nhng sai st. Em rt mong nhn c s ng gp kin ca Qu thy
c v cc bn sinh vin.
Em xin gi n Qu thy c li chc sc khe v thnh cng.
Em xin chn thnh cm n!
Sinh vin: Hong Xun Tun

Bo co Thc tp

LI NI U
Ngy nay, cng ngh thng tin ang l nn cng ngh mi nhn trong
chin lc pht trin kinh t, xy dng t nc ca hu ht cc quc gia. Vi s pht
trin ca internet v vi xu th hi nhp chung ca ton th gii, cc t chc, cc c s
doanh nghip cn bt tay, phi hp hot ng v chia s ti nguyn vi nhau nng
cao hiu qu hot ng.
H thng ca cc t chc doanh nghip ngy cng tr nn cng knh hn vi
vic trin khai hng lot cc ng dng phn tn da trn nhiu h nn, k thut, cng
ngh khc nhau. Nhng nghin cu gn y cho thy rng: cc kh khn trong vic
tch hp cc h thng c th c khc phc bng cch nh ngha thm mt tng tru
tng cho cc h thng tin hc hin c v mi xy dng. Tng ny s c xy dng
da trn cc chun ca web service.
Cng ngh web service c th c dng xy dng cu ni giao tip cho cc
h thng xy dng trn nhng h nn, s dng nhng cng ngh hay chun khc xa
nhau, nh l .NET, J2EE, CORBA, WebSphere MQ, hay cc ng dng ng gi.
Vic kt hp cc dch v trong m hnh SOA vi qun l cc tin trnh nghip
v l mt gii php cho vic xy dng cc h thng tch hp.V th ngn ng
BPEL4WS ra i p ng cho gii php trn. BPEL4WS c xy dng da trn
ngn ng WSFL (Web Service Flow Language) ca IBM v ngn ng XLANG ca
Microsoft, n k tha c nhng tnh nng ni tri ca hai ngn ng ny (tnh c cu
trc ca XLang v kh nng m hnh ha ca WSFL ).
Mc tiu ca ti ny
Sinh vin
Hong Xun Tun

MC LC
Hong Xun Tun

05TH

Trang 3

Bo co Thc tp

Contents
C S TI THNH PH H CH MINH..................................................................1
BO CO TT NGHIP H I HC ....................................................................1

Hnh1.1 M hnh CORBA9.8


CHNG I:HIN TRNG.........................................................................................10
1.1. Phn tch, nh gi mt s m hnh kin trc phn tn hin ti ...............10

Hnh1.1 M hnh CORBA .........................................................................................11


Hnh 1.2 M hnh EJB ...............................................................................................12
Hnh 1.3 M hnh DCOM ..........................................................................................12
1.2 .Cc vn pht sinh, nguyn nhn v bin php khc phc:...................12
1.3. SOA v web service gii quyt vn tch hp nh th no:.....................13

Hnh 1.4 M hnh SOA s dng webservice ...............................................................14


CHNG II: WORKFLOW.......................................................................................14
2.1. Khi nim .................................................................................................. 14
2.2. ch li p dng workflow: ...........................................................................14
2.3. Cc dng workflow ....................................................................................15

Hnh 2.1 M hnh tun t:............................................................................................15


2.3.1.2.Song song (Parallel Split) ..................................................................15

Hnh 2.2 song song......................................................................................................16


2.3.1.3. ng b ho .....................................................................................16
2.3.1.4. Php chn loi tr (Exclusive Choice) ..............................................16

Hnh 2.4. M hnh chn loi tr....................................................................16


2.3.1.5. Trn n gin (Simple Merge) ..........................................................16

Hnh 2.5.M hnh trn n gin..................................................................................17


Hong Xun Tun

05TH

Trang 4

Bo co Thc tp
2.3.1.6. Chn a nhnh (Multi-Choice) ..........................................................17

Hnh 2.6.M hnh chn a nhnh................................................................................17


2.3.1.7. Trn ng b ho .............................................................................17

Hnh 2.7.M hnh trn ng b ha............................................................................18


2.3.1.8. Trn a nhnh ..................................................................................18

Hnh 2.8.M hnh trn a nhnh.................................................................................18


2.3.1.9. Cc vng lp tu ...........................................................................18

Hnh 2.9.M hnh cc vng lp ty ..........................................................................19


CHNG III:TM HIU KHI QUT WEB SERVICE..........................................19
3.1.nh ngha web service: l mt cng ngh gi t xa c tnh kh chuyn cao
nht hin nay: mang tnh c lp nn, c lp ngn ng. Do , cc chng
trnh code bng cc ngn ng lp trnh khc nhau, chy trn cc nn tng
(phn cng & OS) khc nhau u c th trao i vi nhau thng qua cng ngh
ny.................................................................................................................... 19

Hnh 3.1.M hnh webservice n gin................................................20


3.2.c im ca webservice:...........................................................................20

Hnh 3.2. ng dng ca webservice trong thc t .....................................20


3.3.Cc thnh phn chnh trong Webservice:....................................................21
3.3.1.XML: XML l mt ngn ng m t vn bn vi cu trc do ngi s dng
nh ngha .V hnh thc XML c k php ta nh HTML nhng khng tun theo
mt c t quy c nh HTML. Do web service l s kt hp ca nhiu thnh
phn khc nhau , do web services s dng cc tnh nng v c trng ca
cc thnh phn ny giao tip vi nhau.V vy XML l mt cng c chnh yu
gii quyt vn ny .T kt qa ny , cc ng dng tch hp v m tng
cng s dng XML.Nh c kh nng tng hp ny m XML tr thnh kin
trc nn tng cho vic xy dng web service...................................................21
3.3.2.WSDL -Web Services Description Language :........................................21

Hnh 3.3.M t wsdl........................................................................21


3.3.3.UDDI - Universal Description , Discovery and Intergration:...................21

Hnh 3.4.M hnh ca UDDI...............................................................22


3.3.4. SOAP - Simple Object Accesss Protocol................................................22

Hong Xun Tun

05TH

Trang 5

Bo co Thc tp
3.4.Xy dng web service:................................................................................23
3.4.1.1.Giai on xy dng............................................................................23

Hnh 4.1.Kin trc ca bpel process...........................................................................25


4.1.Ni dung c bn:.........................................................................................25
4.1.1.Cu trc ca bpel process:....................................................................25
4.1.2.Mi quan h vi cc Bussiness Partner:................................................27

Hnh 4.2. Cc thnh phn trong bpel process..............................................................27


4.1.3.Trng thi ca BPEL process:................................................................27
4.2.Cc Activie c bn:......................................................................................28
4.2.1.Invoke:..................................................................................................28
4.2.2.Receive:................................................................................................29
4.2.3.Reply:....................................................................................................29
4.2.4.Assign....................................................................................................30
4.2.5. Throw:..................................................................................................32
4.2.6.Empty:...................................................................................................32
4.3.Cc Active c cu trc.................................................................................32
4.3.1.X l tun t: <sequence>...................................................................32
4.3.2.iu kin <if>:......................................................................................33
4.3.3.Thc thi vng lp <while>:...................................................................34
4.3.4. Song song v x l cc iu khin l thuc: <flow>............................34
4.3.5.X l a nhnh:<foreach>....................................................................34
4.3.6.Scope (phm vi):...................................................................................35

CHNG 5: NG DNG CHO BPEL......................................................................36


5.1.M t nghip v:.........................................................................................36
5.2.Phn tch bi ton:......................................................................................36

Hnh 5.1.Lc hot ng........................................................................................37


5.3.Xy dng BPEL process:..............................................................................37
5.3.1.Xy dng cc webservice lin quan:.....................................................37

Hong Xun Tun

05TH

Trang 6

Bo co Thc tp

Hnh 5.2.Interface ca web service airline webservice...................................38


5.3.2 WSDL cho BPEL Process:.......................................................................38

Hnh 5.3. Interface bpel process...................................................................................38


5.3.3 nh ngha cc Partner Link Types:.......................................................38
5.3.4.nh ngha quy trnh nghip v (Bussiness Process Definition).............39

Hnh 5.4. Lc tun t.............................................................40


5.4.Config engine v ci plug-in........................................................................40
5.4.1.Ci t Apache Tomcat:........................................................................41

Hnh 5.5 Thit lp bin mi trng.............................................................................42


Hnh 5.6 Start Tomcat 26.............................................................................................42
5.5.2.Ci t Axis2( phin bn nng cp ca Axis):c nhiu cch ci t
axis2,n gin nht l chp tp tin axi2.war vo th mc C:\apache-tomcat5.5.27\webapps v restart li tomcat s thnh cng.Truy
cp:http://localhost:8080/axis2 s c:........................................................43

Hnh 5.7.Khi ng Axis2...............................................................43


5.4.3.Ci t Eclipse WTP:..............................................................................43

Hnh 5.8 Thit lp Axis2 trong eclipse...................................................44


5.4.4 Ci t MySQL 4.1 v JDBC connector:..................................................44

Hnh 5.9. Lc c s d liu...................................................................................45


5.4.5.Ci t ODE Apache..............................................................................45
5.5.Thc hin:................................................................................................... 45
5.5.1.Chng trnh chnh:...............................................................................45

Hnh 5.10. Giao din thit k......................................................................................46


Hnh 5.11.WSDL ca web service airline....................................................................46
Hnh 5.12.Thit k partnerlink....................................................................................47
Hnh 5.13 config active <invoke>................................................................................48
Hnh 5.14. BPEL proccess..........................................................................................49
Hnh 5.15. active <if>.................................................................................................49
Hong Xun Tun

05TH

Trang 7

Bo co Thc tp

Hnh 5.16. config active <assign>...............................................................................50


Hnh 5.17. Config WSDL cho bpel proccess..............................................................51
Hnh 5.18. config deploy.xml.....................................................................................52
5.5.2.Vit client gi BPEL:..............................................................................52

Hnh 5.19.M hnh bpel process tng t 1 web service.............................................53


Hnh 5.20.To web project client.................................................................................54
MC LC HNH:
Hnh1.1
M
CORBA9
Hnh 1.2 M hnh EJB

hnh

.10

Hnh 1.3 M hnh DCOM ...11


Hnh 1.4 M hnh SOA s dng webservice13
Hnh 2.1 M hnh tun t.14

Hnh 2.3.M hnh ng b ha


Hnh 2.2 song song

...15

....14

Hnh 2.4. M hnh chn loi tr

..15

Hnh 2.5.M hnh trn n gin

..15

Hnh 2.6.M hnh chn a nhnh

..16

Hnh 2.7.M hnh trn ng b ha .17


Hnh 2.8.M hnh trn a nhnh

.17

Hnh 2.9.M hnh cc vng lp ty .17


Hnh 3.1.M hnh webservice n gin.18
Hnh 3.2. ng dng ca webservice trong thc t 19
Hong Xun Tun

05TH

Trang 8

Bo co Thc tp

Hnh 3.3.M t wsdl

20

Hnh 3.4.M hnh ca UDDI.20


Hnh 3.5.Cu trc SOAP

.. 21

Hnh 4.1.Kin trc ca bpel process 24


Hnh 4.2. Cc thnh phn trong bpel process....26
Hnh 5.1.Lc hot dong.36
Hnh 5.2.Interface ca web service airline webservice....37
Hnh 5.3. Interface bpel process .38
Hnh 5.4. Lc tun t ..40
Hnh 5.5 Thit lp bin mi trng 41
Hnh 5.6 Start Tomcat 26 42
Hnh 5.7.Khi ng Axis2. 42
Hnh 5.8 Thit lp Axis2 trong eclipse...43
Hnh 5.9. Lc c s d liu ..44
Hnh 5.10. Giao din thit k

..45

Hnh 5.11.WSDL ca web service airline ...46


Hnh 5.12.Thit k partnerlink 46
Hnh 5.13 config active <invoke> .47
Hnh 5.14. BPEL process 48

..48

Hnh 5.15. active <if>

..48

Hnh 5.16. config active <assign> . 49


Hnh 5.17. Config WSDL cho bpel process ..50
Hnh 5.18. config deploy.xml
Hong Xun Tun

..51
05TH

Trang 9

Bo co Thc tp

Hnh 5.19.M hnh bpel process tng t 1 web service .. 52


Hnh 5.20.To web project client ...53

CHNG I:HIN TRNG


1.1. Phn tch, nh gi mt s m hnh kin trc phn tn hin ti
Ba kin trc phn tn ph bin nht hin ny l CORBA, DCOM v EJB. Cc kin
trc ny l s m rng ca cc h thng hng i tng bng cch cho php phn tn
cc i tng trn mng. i tng c th c khng gian a ch bn ngoi ng
dng, hoc mt my khc vi my cha ng dng trong khi vn c tham chiu s
dng nh mt phn ca ng dng.
CORBA Common Object Request Broker Architecture:
CORBA c nh ngha bi Object Management Group (OMG), l mt
kin
trc phn tn m, c lp nn tng v c lp ngn ng.
CORBA Component Model (CCM) l mt ci tin ng k nhm nh ngha
cc m hnh thnh phn so vi CORBA. N nh ngha ra quy trnh thit k, pht trin,
ng gi, trin khai v thc thi cc thnh phn phn tn. CCM nh ngha khi nim
Ports cho cc thnh t. Cc port ny c s dng kt ni cc thnh phn c sn
vi nhau, to cc h thng phn tn phc tp hn. Mi thnh phn CCM c mt i
tng Home chu trch nhim qun l chu k sng ca i tng v c trin khai
bn trong mt trnh cha (container)
u im ca CORBA l cc lp trnh vin c th chn bt k ngn ng, nn
tng phn cng, giao thc mng v cng ngh pht trin m vn tho cc tnh cht
ca CORBA. Tuy nhin CORBA s mt nhc im l n l ngn ng lp trnh cp
thp, rt phc tp, kh hc v cn mt i ng pht trin c kinh nghim. Ngoi ra cc
i tng CORBA cng kh c th ti s dng.

Hong Xun Tun

05TH

Trang 10

Bo co Thc tp

Hnh1.1 M hnh CORBA

EJB - Enterprise Java Bean:


Kin trc EJB l mt kin trc thnh t bn pha my ch dng cho vic pht
trin v trin khai cc ng dng phn tn hng i tng c va v ln.
Kin trc EJB c 3 tng vi tng u tin l tng trnh din, tng th hai l
tng x l nghip v, v tng th ba l cc ti nguyn nh c s d liu my
ch. Truyn thng gia cc i tng EJB thng qua Remote Method Invocation
(RMI). Cc client khng bao gi tng tc trc tip vi cc bean. Thay v vy chng
s s dng cc phng thc c nh ngha trong cc interface Remote v Home.
Mi bean tn ti bn trong trnh cha, chu trch nhim vic to th hin mi, lu tr
d liu v cc qun l khc. Trnh cha s triu gi cc phng thc callback ca mi
th hin bean khi c s kin tng ng. Khng ging nh CCM, EJB khng nh
ngha cc port kt ni trc tip gia cc thnh phn lin quan bi v mi bean bn
trong trnh cha l mt thc th c lp khng c bt k rng buc no bn ngoi.
EJB l mt kin trc tt cho vic tch hp cc h thng v n c lp nn
tng
nhng n cng gp vn l n khng phi l mt chun m, kh nng giao
tip vi cc chun khc vn cn hn ch.

Hong Xun Tun

05TH

Trang 11

Bo co Thc tp

Hnh 1.2 M hnh EJB


DCOM Distributed Component Object Model:
DCOM l mt m hnh phn tn d trin khai vi chi ph thp, h tr tigh
coupling gia cc ng dng v h iu hnh. M hnh Component Object Model
(COM) nh ngha cch thc cc cc thnh phn v client lin lc trao i vi nhau
trn cng mt my. DCOM m rng COM bng cch s dng cc giao thc mng
chun khi cn trao i d liu vi my khc trn mng. DCOM h tr kt ni gia cc
i tng v nhng kt ni ny c th c thay i lc ang chy. Cc i tng
DCOM c trin khai bn trong cc gi nh phn cha cc m lnh qun l chu k
sng ca i tng v vic ng k i tng.
DCOM mang n nhiu u im nh tnh n nh, khng ph thuc v tr
a l, qun l kt ni hiu qu v d dng m rng, l mt la chn tt cho cc
doanh nghip s dng cng ngh ca Windows chy cc ng dng c yu cu cao
v s chnh xc v n nh. Tuy nhin, cc cng ngh ca Microsoft c mt nhc
im ln l chng b gii hn trn nn tng Windows.

Hnh 1.3 M hnh DCOM


1.2 .Cc vn pht sinh, nguyn nhn v bin php khc phc:
Ngy nay p lc t ln cc doanh nghip ngy cng ln: gim chi ph u t c s h
tng, khai thc c hiu qu cc cng ngh c sn, phi c gng phc v yu cu ca
Hong Xun Tun

05TH

Trang 12

Bo co Thc tp

khch hng ngy cng tt hn, p ng tt cc thay i nghip v, kh nng tch hp


cao vi cc h thng bn ngoi Nguyn nhn chnh ca mi kh khn trn l: s
khng ng nht v s thay i.
Hu ht cc doanh nghip ngy nay u s hu nhiu h thng, ng dng, vi nhng
kin trc khc nhau, xy dng vo nhng khong thi gian khc nhau v da trn
nhng cng ngh khc nhau. phn vic ca mnh, sau ch vic tng hp thng tin
tr v. Trong qu trnh kt hp chc chn s gp nhng kh khn nh:
Khng kh nng qun l quy trnh nghip v
Tn chi phi tch hp
S lng ln nh cung cp v khch hng, l cha k cc i th cnh
trnh, cc quy trnh nghip v phc tp
S lng ln cc ng dng cn kt hp v qun l nh Enterprise Resource
Planning (ERP), Supply Chain Management (SCM), v Product Data
Management(PDM) .
Qu nhiu nh dng d liu
Vn bo mt :Trong khi nhng thay i vn lin tc xy ra
Ton cu ho dn n tnh cnh tranh khc lit i hi phi rt ngn quy trnh
sn phm tng u th cnh tranh vi cc i th.
Nhu cu v yu cu khch hng thng xuyn thay i nhanh chng nhm
cho ra cc sn phm c tnh cnh tranh lin tc xut hin trn th trng.
Ci tin cng ngh dn n thay i cc thnh phn lin quan
1.3. SOA v web service gii quyt vn tch hp nh th no:
Cng ngh XML v web service
Nhng nghin cu gn y cho thy rng: cc kh khn trong vic tch hp cc h
thng c th c khc phc bng cch nh ngha thm mt tng tru tng cho cc
h thng tin hc hin c v mi xy dng. Tng ny s c xy dng da trn cc
chun ca web service. Mt s gii php chung trong vic dng web service cho vn
tch hp:
Tch hp hng d liu:
Xc nh thng tin d liu no cn c chia s (cc bng d liu, cc nh
dng file v thng ip)
Xy dng cc lc m t XML (Xml Schema) cho cc thng tin ny.
S dng SOAP nh l nh dng ca thng ip.
Tch hp hng chc nng/hm APIs:
Xc nh cc phng thc t xa no s c th hin ra ngoi nh cc web
service.
nh ngha kiu d liu XML cho i s ca cc phng thc ny.
S dng SOAP nh l nh dng thng ip.
Tch hp hng thnh phn giao tip:
nh ngha thng tin m t web service (WSDL)
To ra cc i tng bc v thc hin nh x tng ng gia thnh phn
giao tip va nh ngha vi d liu, thng ip v cc li gi hm APIs
(cn c chia s) ca h thng hin hnh.

Hong Xun Tun

05TH

Trang 13

Bo co Thc tp

Hnh 1.4 M hnh SOA s dng webservice


CHNG II: WORKFLOW
BPEL4WS l mt ngn ng chun cho vic thc hin cc quy trnh nghip v. tm
hiu v cc quy trnh ny chng ta s i vo th gii workflow.
C 2 cch hiu v workflow.
Cch 1: workflow theo ngha rng, l 1 m hnh nghip v, trong cc cng vic
c phn cng r rng, thc hin theo th t t sn. Khi nim workflow theo cch
hiu ny c t lu v c ng dng rng ri trong cc ngnh cng nghip.
Cch 2: Khi nim workflow trong khoa hc my tnh ng dng vo qun l tin
trnh kinh doanh (tm hiu di y).
2.1. Khi nim
Workflow l qu trnh t ng ha mt phn hoc ton b mt tin trnh kinh doanh.
ngha ca workflow khi ny n gin ch l cc lung cng vic.
H thng qun tr lung cng vic: qun l v thc thi cc m hnh lung cng vic
thng qua vic thc thi cc phn mm. Gm 2 thnh t:
+ B phn h tr c t m hnh lung cng vic
+ B phn vn hnh m hnh c t
2.2. ch li p dng workflow:
Li ch ca vic s dng worflow trong qun l tin trnh kinh doanh c lit
k nh sau:
+ Tin trnh kinh doanh c vch ra r rng, v th trch nhim v nhng mi
quan h cng tc c nh r.
+ D dng ti u ha cng vic kinh doanh v nhng nh ngha chnh xc
trn.
Hong Xun Tun

05TH

Trang 14

Bo co Thc tp

+ Tin trnh kinh doanh c chia nh thnh nhng module v nhng module ny c
th t chc li theo m hnh workflow thch ng vi tin trnh kinh doanh chung, v
th d dng thch nghi nhanh chng vi nhng thay i khng on trc c trong
nhng yu cu v iu kin kinh doanh.
+ Workflow c th theo di hng ngy.
+ Workflow tch hp vi nhng ng dng hay nhng h thng khc vo tin
trnh kinh doanh.
+ Workflow phn nh r quan h v trch nhim trong cng vic do n to ra nhng
phn cng vic ring.
+ Theo d on, workflow s to nn nhng phng php, nhng k thut t nhiu
ngun trong khoa hc my tnh cng nh qun tr hc. V d, k thut workflow lin
quan n qun tr c s d liu, tnh ton client-server, giao din ngi dng, ng
dng v kt hp cc h thng ph, qun l ti liu, gi lp, ti cau trc v thc tp kinh
doanh
2.3. Cc dng workflow
C rt nhiu dng workflow t n gin n nng cao.ng dng s ch p dng cc
dng workflow n gin.
+Cc dng n gin:
2.3.1.1. Tun t (Sequence):
M t: mt hot ng trong lung cng vic c kch hot ngay sau khi 1 hot ng
khc kt thc trong cng 1 tin trnh.
V d: hnh vi gi ha n c thc hin ngay sau hnh vi gi hng ha
Ci t: dng tun t c s dng m hnh cc bc lin tip trong
cng 1 tin trnh ca lung cng vic.
M hnh:
Cng vicA

Cng vic B

Hnh 2.1 M hnh tun t:

Cng vic B c thc hin sau khi cng vic A c hon thnh
2.3.1.2.Song song (Parallel Split)
M t: 1 im trong 1 tin trnh ca lung cng vic l ni 1 cng vic c tch
thnh nhiu cng vic con. Cc cng vic con c th c tin hnh ng thi cng
lc vi nhau (song song nhau).
V d: Sau khi hnh vi nhn tin hon thnh, hnh vi gi hng v hnh vi
xut ha n s c kch hot v tin hnh ng thi
M hnh:

Hong Xun Tun

05TH

Trang 15

Bo co Thc tp

Hnh 2.2 song song


Cng vic B
Cng vic A
Cng vic C

2.3.1.3. ng b ho
M t: 1 im trong lung cng vic l ni cc tin trnh hay cc cng vic con nhp
li lm 1 tin trnh hay cng vic n. Trong dng m hnh ny, tt c cc lung i vo
phi ch nhau ti im ng b ha.
V d: Sau khi hnh vi gi hng v xut ha n c thc hin, hnh vi
lu tr mi c kch hot.
M hnh:
Cng vic
A

AND

Cng vic C

Cng vic B

Hnh 2.3.M hnh ng b ha


2.3.1.4. Php chn loi tr (Exclusive Choice)
M t: ti 1 im trong lung cng vic s din ra s la chn cng vic no s c
kch hot tip theo trong 1 lot cc cng vic k tip
V d: Sau khi cng vic kim th phn mm c thc hin, da vo kt
qu kim th s quyt nh cng vic tip theo l lp trnh hay ng gi phn mm.
M hnh:
Cng vic B
Cng vic A

Chon b
hay c

Cng vic C

Hnh 2.4. M hnh chn loi tr


2.3.1.5. Trn n gin (Simple Merge)
M t: 1 im trong lung cng vic l ni 2 hay nhiu nhnh gp nhau, khng c s
ng b ha gia cc nhnh.
V d: Cng vic lu tr c thc hin sau khi cng vic gi ha n
hoc cng vic nhn ha n c thc hin.
M hnh:
Hong Xun Tun

05TH

Trang 16

Bo co Thc tp

Cng vic

Cng vic

Cng vic

Hnh 2.5.M hnh trn n gin


Ch thch: ch cn 1 trong 2 cng vic A hoc B c hon thnh th cng vic C s
c kch hot
+ Cc dng nng cao:
2.3.1.6. Chn a nhnh (Multi-Choice)
M t: Mt im trong tin trnh l ni m mt hoc nhiu nhnh c chn theo mt
quyt nh hoc da trn d liu ca nghip v.Mu ny khc vi mu 2.4.1.4 (chn
loi tr) c th chn mt hoc nhiu nhnh c chn ra v thc thi, tng t nh
php XOR.
Cc v d:Sau khi thc hin hnh vi nh-gi-thit-hi, hnh vi lin h phng cu
ha hoc hnh vi lin h cng ty bo him c thc hin. t nht mt trong hai
hnh vi ny c thc hin. Tuy nhin, cng c th l c hai cn c thc hin.
M hnh:
B
A

Hnh 2.6.M hnh chn a nhnh


2.3.1.7. Trn ng b ho
M t: Mt im trong tin trnh l ni nhiu nhnh hi t li thnh mt tin trnh duy
nht. Nu c nhiu hn mt nhnh thc thi, vic ng b ha (vic i nhau gia cc
nhnh ) c thc hin. Nu ch c mt nhnh c thc thi, cc nhnh khc c th
hi t m khng cn ng b ha. Trong mu ny nu c mt nhnh c kch
hot, th n khng th kch hot li ln na trong khi cn ang i cc nhnh khc
hon tt. Mu ny khc vi mu ng b ha ch n ng b da trn s nhnh
thc s c kch hot lc thc thi. Cn mu ng b ha bt buc tt c cc nhnh i
ra khi nt AND phn lung (AND-Split) phi u c thc hin.
Cc v d: M rng v d trong mu 6 (chn a nhnh), sau khi mt hoc c hai hnh
vi lin-h-phng-cha-chy v lin-h-cng-ty-bo-him hon tt (da trn vic n
c c thc thi hay khng), hnh vi trnh-bo-co phi c thc hin (ch duy nht
mt hnh vi)
M hnh:
Hong Xun Tun

05TH

Trang 17

Bo co Thc tp

C
B

Hnh 2.7.M hnh trn ng b ha


2.3.1.8. Trn a nhnh
M t: Mt im trong tin trnh l ni hai hoc nhiu nhnh hi t li v khng c
ng b ha. Nu nhiu hn mt nhnh c kch hot, ngay lp tc hnh vi sau im
trn s bt u i vi mi kch hot ca mi nhnh vo. Mu ny chnh l th hin
cho c ch trn phc v cho mc ch dng chung cho cc thnh phn trong quy trnh.
Cc v d: Thnh thong hai hay nhiu nhnh c cng im kt thc. Thay v lp li
tin trnh ny cho mi nhnh (c th phc tp), ta dng mu trn a nhnh. V d n
gin ca trng hp ny l 2 hnh vi kim tra n xin vic v x l n xin vic
cng thc hin song song v thc hin trc hnh vi ng trng hp.
M hnh:

Hnh 2.8.M hnh trn a nhnh


2.3.1.9. Cc vng lp tu
M t:Mt im trong tin trnh l ni cc hnh vi c thc hin lp li nhiu ln.
Mu ny l th hin cho c ch lp cu trc. Trong mu ny vic lp thng c
quyt nh bi cc iu kin hoc la chn.
Cc v d:Tin trnh xem xt sn phm : trong tin trnh ny vng lp cc
hot ng Make,Read, Note, Approve l mt vng lp cu trc.

Hong Xun Tun

05TH

Trang 18

Bo co Thc tp

Hnh 2.9.M hnh cc vng lp ty

CHNG III:TM HIU KHI QUT WEB SERVICE


3.1.nh ngha web service: l mt cng ngh gi t xa c tnh kh chuyn cao nht
hin nay: mang tnh c lp nn, c lp ngn ng. Do , cc chng trnh code bng
cc ngn ng lp trnh khc nhau, chy trn cc nn tng (phn cng & OS) khc nhau
u c th trao i vi nhau thng qua cng ngh ny.

Hong Xun Tun

05TH

Trang 19

Bo co Thc tp

Hnh 3.1.M hnh webservice n gin


3.2.c im ca webservice:
Web service cho php client v server tng tc c vi nhau mc d trong
nhng mi trng khac nhau.
Web service thi co dang m va da vao cac tiu chun.XML va HTTP la nn
tang ky thut cho web service.Phn ln ky thut cua web service c xy dng
la nhng d an ngun m. Bi vy, chung c lp va vn hanh c vi nhau.
Web service thi rt linh ng : vi UDDI va WSDL, thi vic m ta va phat trin
web service co th c t ng hoa.
Web service c xy dng trn nn tng nhng cng ngh a c chp nhn
Web service co dang m un
Web service c th cng b (publish)
V d v webservice nh: t v my bay trc tuyn,cc dch v thng mi,d bo
thi tit.

Hnh 3.2. ng dng ca webservice trong thc t

Hong Xun Tun

05TH

Trang 20

Bo co Thc tp

3.3.Cc thnh phn chnh trong Webservice:


3.3.1.XML: XML l mt ngn ng m t vn bn vi cu trc do ngi s dng nh
ngha .V hnh thc XML c k php ta nh HTML nhng khng tun theo mt c
t quy c nh HTML. Do web service l s kt hp ca nhiu thnh phn khc nhau ,
do web services s dng cc tnh nng v c trng ca cc thnh phn ny giao
tip vi nhau.V vy XML l mt cng c chnh yu gii quyt vn ny .T kt
qa ny , cc ng dng tch hp v m tng cng s dng XML.Nh c kh nng
tng hp ny m XML tr thnh kin trc nn tng cho vic xy dng web service
3.3.2.WSDL -Web Services Description Language :
WSDL nh ngha cch m t web service theo c php tng qut XML , bao gm cc
thng tin
- Tn s ervice.
- Giao thc va kiu ma hoa se c s dung khi gi cc hm ca web service.
- Loi thng tin: nhng thao tac, nhng tham s, va nhng kiu d liu gm co giao
din cua web service, cng vi tn cho giao din nay.
Mt WSDL hp l gm co hai phn :
1. Phn giao din m ta giao din va giao thc kt ni.
2. Phn thi hanh m ta thng tin truy xut service
C 2 phn trn s c lu trong 2 tp tin XML , bao gm:
- Tp tin giao din service (cho phn 1).
- Tp tin thi hanh service (cho phn 2).

Hnh 3.3.M t wsdl


3.3.3.UDDI - Universal Description , Discovery and Intergration:
c th s dng cc dch v, trc tin client phi tm dch v, ghi nhn thng tin v
cch s dng dch v v bit c i tng cung cp dch v. UDDI nh ngha mt
s thnh phn cho bit trc cc thng tin ny cho php cc client truy tm v nhn
li nhng thng tin yu cu s dng web services

Hong Xun Tun

05TH

Trang 21

Bo co Thc tp

Hnh 3.4.M hnh ca UDDI


3.3.4. SOAP - Simple Object Accesss Protocol
Web services c th truy xut bng mt giao thc l Simple Object Access Protocol
SOAP. Ni cch khc chng ta c th truy xut n UDDI registry bng cc lnh gi
hon ton theo kiu SOAP.
SOAP l mt giao thc giao tip c cu trc nh XML v m ha thnh nh dng
chung cho cc ng dng trao i vi nhau . tng bt u t Microsoft v phn mm
Userland , tri qua nhiu ln thay i , hin ti l phin bn SOAP 1.2 vi nhiu u
im vut tri hn bn SOAP 1.1. SOAP c xem nh l cu trc xng sng ca
cc ng dng phn tn xy dng t nhiu ngn ng , h iu hnh khc nhau.
3.3.4.1 c trng SOAP:
SOAP co nhng c trng sau :
- SOAP c thit k n gian va d m rng.
- Tt ca cac message SOAP u c ma hoa s dung XML.
- SOAP s dng giao thc truyn d liu ring.
- Khng co garbage collection phn tan , v cng khng c c ch tham
chiu.V th SOAP client khng gi bt k mt tham chiu y no v cc i
tng xa.
- SOAP khng bi rang buc bi bt ky ngn ng lp trinh nao hoc cng ngh
no.
3.3.4.2 Cu trc mt message theo dng SOAP:
Cu trc mt message theo dng SOAP c m t nh hnh di y:

Hong Xun Tun

05TH

Trang 22

Bo co Thc tp

Hnh 3.5.Cu trc SOAP


Message theo dng SOAP l mt vn bn XML bnh thng bao gm cc phn t sau:
- Phn t gc - envelop : phn t bao trm ni dung message , khai bo vn bn XML
nh l mt thng ip SOAP.
- Phn t u trang header : cha cc thng tin tiu cho trang , phn t ny khng
bt buc khai bo trong vn bn .Nhng u muc cn co th mang nhng d liu
chng thc, nhng ch ky s hoa, va thng tin ma hoa, hoc nhng ci t cho giao
tc.
- Phn t khai bo ni dung chnh trong thng ip - body , cha cc thng tin yu cu
v phn hi.
- Phn t pht sinh li (Fault) cung cp thng tin li xy ra trong qa trnh x l thng
ip.
Trong trng hp n gian nht, phn thn cua SOAP message gm c:
- Tn ca message
- Mt tham khao ti mt th hin service.
- Mt hoc nhiu tham s mang cc gia tri va mang cc tham chiu. C 3 kiu thng
bao
Request messages : vi cc tham s gi thc thi mt service
Response messages vi cc tham s tr v, c s dung khi p ng yu cu.
3.4.Xy dng web service:
3.4.1.1.Giai on xy dng
Giai on u tin khi chung ta tao ra mt web service la giai on xy dng.Co hai
cch khc nhau tin hnh trong giai an xy dng:
- Red path - solod : chung ta xy dng t trang thai ban u hoc a co sn bng ma
Java. S dung ma Java , chung ta xy dng inh nghia service (WSDL) vi cac i
tng , hm , chc nng ma chung ta mong mun.
- Blue path dashed : mt cch thc hin khc l xy dng 1 webservice da trn mt
webservice c sn
3.4.1.2.Giai on trin khai
Giai on th hai la giai on trin khai.Trong giai on nay chung ta trin khai web
service ti mt application server.
Hong Xun Tun

05TH

Trang 23

Bo co Thc tp

3.4.1.3. Giai on thc thi:


Giai on th ba la giai on tin hnh. Trong giai on nay chung ta cng b
(publish) web service cc client c th tm thy. Thao tc cng b ny co th s
dung UDDI registry.Web service c thc thi v c gi bi nhng ngi dng
mun s dng dch v.
3.4.1.4. Giai on quan ly:
Giai on cui cng la giai on quan ly. N bao trum tt ca cac nhim vu quan ly va
quan tri ng dung web service.
Chng ta nm c cc bc c bn thc hin 1 dch v web. Ngoi ra
cn c nhng phng php khc to mt dch v khc m in hnh l s dng
ngn ng BPEL4WS. y l ngn ng mnh hin nay,chng ta s i vo tm hiu
ngn ng ny chng k tip.

Hong Xun Tun

05TH

Trang 24

Bo co Thc tp

Ti liu tham kho

CHNG 4: L THUYT BPEL 2.0


Lch s ca BPEL:
The Business Process Execution Language for Webservice (BPEL4WS) c hnh
thnh thng 7 nm 2002 vi phin bn BPEL4WS 1.0 l s hp tc ca
IBM,Microsoft v BEA. l s kt hp ca IBMs Web Services Flow Language
(WSFL) and Microsofts XLANG.
Vo thng 5-2003 mt s hp tc ca SAP v Siebel System th to nn phin bn
1.1,nhn c nhiu s quan tm v ch . Sau OASIS mua li v pht trin
cho ti ngy nay.BPEL l mt ngn ng XML m t cc business process da trn
cc webservice.

Hnh 4.1.Kin trc ca bpel process


4.1.Ni dung c bn:
4.1.1.Cu trc ca bpel process:
u tin BPEL process l mt container,trong chng ta nh ngha cc mi
lin h bn ngoi,nh ngha cc loi d liu,kim sot li v quan trng nht
chnh l cc active thc thi.
Trn cng, process cha mt s thuc tnh v cc namespace.V d:
<process name="PrimerProcess"
targetNamespace="http://oasis-open.org/WSBPEL/Primer/"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" />

Hong Xun Tun

05TH

Trang 25

Bo co Thc tp

Ti liu tham kho

Namespace nh ngha http://docs.oasis-open.org/wsbpel/2.0/process/executable


l nhng Execute Process
Ta c cu trc tng qut theo mu sau:
<process name="ncname" targetNamespace="uri"
queryLanguage="anyURI"?
expressionLanguage="anyURI"?
suppressJoinFailure="yes|no"?
enableInstanceCompensation="yes|no"?
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<partnerLinks>?
<!-- Note: At least one role must be specified. -->
<partnerLink name="ncname" partnerLinkType="qname"
myRole="ncname"? partnerRole="ncname"?>+
</partnerLink>
</partnerLinks>
<variables>?
<variable name="ncname" messageType="qname"?
type="qname"? element="qname"?/>+
</variables>
<correlationSets>?
<correlationSet name="ncname" properties="qname-list"/>+
</correlationSets>
<faultHandlers>?
<!-- Note: There must be at least one fault handler or default. -->
<catch faultName="qname"? faultVariable="ncname"?>*
activity
</catch>
<catchAll>?
activity
</catchAll>
</faultHandlers>
<compensationHandler>?
activity
</compensationHandler>
<eventHandlers>?
<!-- Note: There must be at least one onMessage or onAlarm handler. -->
<onMessage partnerLink="ncname" portType="qname"
operation="ncname" variable="ncname"?>
<correlations>?
<correlation set="ncname" initiate="yes|no"?>+
<correlations>
activity
</onMessage>
<onAlarm for="duration-expr"? until="deadline-expr"?>*
activity
</onAlarm>
</eventHandlers>

Hong Xun Tun

05TH

Trang 26

Bo co Thc tp

Ti liu tham kho

Activity
</process>

4.1.2.Mi quan h vi cc Bussiness Partner:


BPEL gi nhng service tng tc vi process l nhng partner (invoke) v client
s dng BPEL cng l 1partner (receive).BPEL process th ging nh 1
webservice.
Cu trc ca partnerLinks v d nh sau:
<partnerLinks>
<partnerLink name="ClientStartUpLink"
partnerLinkType="wsdl:ClientStartUpPLT" myRole="Client" />
</partnerLinks>

Hnh 4.2. Cc thnh phn trong bpel process


V d:cc partner tng ng l:Client,Credit Service v Inventory Service
4.1.3.Trng thi ca BPEL process:
vic truyn d liu trong BPEL ta nh ngha cc variable.cc variable ny lu
gi d liu trong sut qu trnh thc hin BPEL process. Cc d liu ny c vit
v c t cc kiu bin. Gi tr trong 1 bin c th l ca 2 ngun: hoc l nhng
message trao i gia cc partner hoc l nhng d liu trung gian ca ca
process. Cc bin trong BPEL phi l cc kiu message trong WSDL,cc kiu c
bn trong XML Schema. V thay i trng thi ca process bng cch thay i
Hong Xun Tun

05TH

Trang 27

Bo co Thc tp

Ti liu tham kho

ni dung ca cc bin th s dng 1 ngn ng cho vic thao tc v truy vn cc


bin.Mc nh trong BPEL process l XPath 1.0.
Chng ta c th nh ngha cc bin theo tn v cc kiu ca n v 3 thuc tnh c
th l: type,messageType hoc element.
<variables>
<variable name="myVar1" messageType="myNS:myWSDLMessageDataType"
/>
<variable name="myVar1" element="myNS:myXMLElement" />
<variable name="myVar2" type="xsd:string" />
<variable name="myVar2" type="myNS:myComplexType" />
</variables>
4.2.Cc Activie c bn:
Trong BPEL chia ra lm 2 loi active: active c bn v active c cu trc.
4.2.1.Invoke:
<invoke> active c s dng gi webservice.V c bn th l gi cc
operation ca service .Operation c th l yu cu-tr v hoc 1 chiu tng
ng vi s nh ngha operation trong WSDL 1.1. BPEL c th s dng cc c
php c bn k trn.
C php ca <invoke> nh sau:
<invoke partnerLink="ncname" portType="qname" operation="ncname"
inputVariable="ncname"?
outputVariable="ncname"?
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiate="yes|no"?
pattern="in|out|out-in"/>+
</correlations>
<catch faultName="qname" faultVariable="ncname"?>*
activity
</catch>
<catchAll>?
activity
</catchAll>
<compensationHandler>?
activity
</compensationHandler>
</invoke>
Hong Xun Tun

05TH

Trang 28

Bo co Thc tp

Ti liu tham kho

V d:
<bpel:invoke name="Invoke" partnerLink="PartnerLink" operation="execute"
portType="ns:ticketptitPortType" inputVariable="PartnerLinkRequest"
outputVariable="PartnerLinkResponse">
</bpel:invoke>
4.2.2.Receive:
Acitve <receive> cho php business process lm vic vi cc message ti. N ch
ra <partnerLink> nhn message qua portType no v s dng operation no
C php ca active <receive>:
<receive partnerLink="ncname" portType="qname" operation="ncname"
variable="ncname" createInstance="yes|no"
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiate="yes|no"?>+
</correlations>
</receive>
V d:
<bpel:receive name="receiveInput" partnerLink="client"
portType="tns:demo"
operation="process" variable="input"
createInstance="yes"/>
4.2.3.Reply:
Active <reply> cho php bussiness process gi 1message tr li message m n
nhn trc thng qua <receive>
S kt hp ca <receive> & <reply> tng ng vi request-response trong s nh
ngha WSDL 1.1
C php ca <reply>:
<reply partnerLink="ncname" portType="qname" operation="ncname"
variable="ncname"? faultName="qname"?
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiate="yes|no"?>+
Hong Xun Tun

05TH

Trang 29

Bo co Thc tp

Ti liu tham kho

</correlations>
</reply>
V d:
<bpel:reply name="replyOutput"
partnerLink="client"
portType="tns:demo"
operation="process"
variable="output"
/>
4.2.4.Assign.
Active <assign> dng cp nht cc gi tr ca bin hoc dng copy d liu
gia cc bin,cc biu thc,cc partnerLink endpoint.Trong c php ca <assign>
c th c nhiu lnh <copy>. Vi mi lnh th chng ta phi ch ra ngun <from>
V ch <to>.
C php ca <assign> nh sau:
<assign>
<copy>
<from ... />
<to ... />
</copy>
<copy>
<from ... />
<to ... />
</copy>
...
</assign>
V d:
<assign>
<copy>
<from variable="LastName" />
<to variable="InsuranceRequest"
part="insuredPersonData"
query="/insuredPersonData/ins:LastName"/>
</copy>
</assign>
Hong Xun Tun

05TH

Trang 30

Bo co Thc tp

Ti liu tham kho

Hoc:
<assign>
<copy>
<from expression="string('Juric')" />
<to variable="LastName"/>
</copy>
</assign>
Hoc:
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><ns:execute1
xmlns:ns="http://source" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"></ns:execute1></bpel:literal></bpel:from>
<bpel:to part="parameters"
variable="PartnerLink1Request"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><ns:execute
xmlns:ns="http://source" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"></ns:execute></bpel:literal></bpel:from>
<bpel:to variable="PartnerLinkRequest"
part="parameters"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input"></bpel:from>
<bpel:to part="parameters"
variable="PartnerLinkRequest"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input"></bpel:from>
<bpel:to part="parameters"
variable="PartnerLink1Request"></bpel:to>
</bpel:copy>
</bpel:assign>

Hong Xun Tun

05TH

Trang 31

Bo co Thc tp

Ti liu tham kho

4.2.5. Throw:
Active <throw> c s dng khi BPEL process cn thng bo c mt li trong
n.<throw> cung cp tn ca li. C php ca <throw>:
<throw faultName="QName" faultVariable="BPELVariableName"?
standard-attributes>
standard-elements
</throw>
Trong faultname c nh ngha trong Process,trong WSDL,hoc cc mu li
c sn trong BPEL
4.2.6.Empty:
i khi chng ta phi s dng 1active m khng lm g c v d nh khi mt li
cn c bt v cm n th active <empty> c s dng vi mc ch nh
th.Mt cch s dng khc ca <empty> l cung cp s ng b trong active
<flow>.C php ca <empty> l:
<empty standard-attributes>
standard-elements
</empty>
4.3.Cc Active c cu trc
WS-BPEL nh ngha cc activity cho m hnh iu khin lung.

iu khin tun t gia cc active:


<sequence>,<if>,<while>,<repeatUntil> v <forEach>

Cu trc ng b <flow>
4.3.1.X l tun t: <sequence>
Trong active <sequence> cha mt hoc nhiu activity th hin s tun t.C
php ca <sequence> nh sau:
<sequence>
<flow>...</flow>
<scope>...</scope>
<pick>...</pick>
</sequence>

Hong Xun Tun

05TH

Trang 32

Bo co Thc tp

Ti liu tham kho

4.3.2.iu kin <if>:


<if> activity cung cp cc hnh ng c iu kin,n bao gm mt hoc nhiu cc
iu kin r nhnh c nh ngha bi <if> v <esleif> ,tip theo ngay sau l
<else>.Trong nhnh iu kin u tin nu n l true th activity cha trong n s
c thc hin,nu l false th n s nhy qua nhnh k tip.Sau kim tra iu
kin true hay false.Nu khng c nhnh no iu kin true th n s nhy qua
<else> ,thc hin cc activity trong .
C php c bn ca activity < if> nh sau:
<if standard-attributes>
standard-elements
<condition expressionLanguage="anyURI"?>bool-expr</condition>
activity
<elseif>*
<condition expressionLanguage="anyURI"?>bool-expr</condition>
activity
</elseif>
<else>?
activity
</else>
</if>
V d:
<if xmlns:inventory="http://supply-chain.org/inventory"
xmlns:FLT="http://example.com/faults">
<condition>
<![CDATA[boolean($PartnerLinkResponse.parameters/ns:return <=
$PartnerLink1Response.parameters/ns:return)]]> </condition>
<flow>
<!-- perform fulfillment work -->
</flow>
<elseif>
<condition>
bpel:getVariableProperty('stockResult','inventory:level') >= 0
</condition>
<throw faultName="FLT:OutOfStock" variable="RestockEstimate" />
</elseif>
<else>
<throw faultName="FLT:ItemDiscontinued" />
</else>
</if>

Hong Xun Tun

05TH

Trang 33

Bo co Thc tp

Ti liu tham kho

4.3.3.Thc thi vng lp <while>:


<while> activity cung cp s thc thi lp ca cc activity cha trong n.Mi
activity s thc hin vi iu kin true t u vng lp.
<while standard-attributes>
standard-elements
<condition expressionLanguage="anyURI"?>bool-expr</condition>
activity
</while>
V d:
<while>
<condition>$orderDetails > 100</condition>
<scope>...</scope>
</while>

4.3.4. Song song v x l cc iu khin l thuc: <flow>


<flow> cung cp s ng b.C php ca <flow> nh sau:
<flow standard-attributes>
standard-elements
<links>?
<link name="NCName">+
</links>
activity+
</flow>
Hiu c bn th l t cc activity trong <flow> ng thi thc hin.
V d:
<sequence>
<flow>
<invoke partnerLink="Seller" ... />
<invoke partnerLink="Shipper" ... />
</flow>
<invoke partnerLink="Bank" name="transferMoney" ... />
</sequence>
4.3.5.X l a nhnh:<foreach>

Hong Xun Tun

05TH

Trang 34

Bo co Thc tp

Ti liu tham kho

<forEach counterName="BPELVariableName" parallel="yes|no"


standard-attributes>
standard-elements
<startCounterValue expressionLanguage="anyURI"?>
unsigned-integer-expression
</startCounterValue>
<finalCounterValue expressionLanguage="anyURI"?>
unsigned-integer-expression
</finalCounterValue>
<completionCondition>?
<branches expressionLanguage="anyURI"?
successfulBranchesOnly="yes|no"?>?
unsigned-integer-expression
</branches>
</completionCondition>
<scope ...>...</scope>
</forEach>
Trong activity <foreach> th 2 biu thc <startCounterValue> v
<finalCounterValue> c nh gi.Mt trong 2 gi tr s tr v hng s cn li
ca vng lp.
Trong mi <foreach> u phi c <scope>.
4.3.6.Scope (phm vi):
Mt <scope> cung cp ng cnh m c tc dng thc thi cc hnh ng.Ng cnh
ca hnh ng bao gm bin,partnerLink,message exchange,correlation set,event
handler,fault handler,a competion handler v termination handler.Ng cnh ny c
th c phn cp.C php ca <scope> nh sau:
<scope isolated="yes|no"? exitOnStandardFault="yes|no"?
standard-attributes>
standard-elements
<variables>?
...
</variables>
<partnerLinks>?
...
</partnerLinks>
<messageExchanges>?
...
</messageExchanges>
<correlationSets>?
...
Hong Xun Tun

05TH

Trang 35

Bo co Thc tp

Ti liu tham kho

</correlationSets>
<eventHandlers>?
...
</eventHandlers>
<faultHandlers>?
...
</faultHandlers>
<compensationHandler>?
...
</compensationHandler>
<terminationHandler>?
...
</terminationHandler>
activity
</scope>
CHNG 5: NG DNG CHO BPEL
5.1.M t nghip v:
1 cty kinh doanh du lch c dch v t v my bay trc tuyn.Khch hng s truy
cp vo trang web,tin hnh t ch.Khch hng cung cp tn,a im,ngy khi
hnh v ngy v.Ngay sau cc x l ca BPEL s kim tra gi v ca 2 hng
hng khng l PTIT v Delta (cng thng qua 2 webservice cc hng ny).Kt
thc,BPEL process s chn gi v thp v tr v cho khch hng.
5.2.Phn tch bi ton:
n gin em xy dng mt BPEL process theo cch ng b (synchronous) v
BPEL process invoke 3 ws trong :Webservice cho vic kim tra thng tin,trng
thi khch hng cng l ng b nhng WS ca 2 hng hng khng l bt ng b
M hnh tng quan bi ton nh sau:
BPEL Process

Hong Xun Tun

05TH

Trang 36

Bo co Thc tp

Ti liu tham kho

1:Request

Clien
t

6:Reply
4.1:Invoke

PTIT Airlines
WS
4.2:Callback

5.2:Callback

Delta Airlines
WS
5.1:Invoke

Hnh 5.1.Lc hot ng


5.3.Xy dng BPEL process:
Bao gm cc bc sau:

Xy dng cc webservice lin quan


nh ngha WSDL cho BPEL process
nh ngha cc partner link type
nh ngha cc partner links
nh ngha cc variable
Xy dng cc x l ca definition

5.3.1.Xy dng cc webservice lin quan:


+ PTIT Airline Webservice:

Hong Xun Tun

05TH

Trang 37

Bo co Thc tp

Ti liu tham kho

ExecuteRequestMessage
TicketptitPT:
Execute operation
ExecuteResponseMessage

PTIT
Airlines
Webservice

Hnh 5.2.Interface ca web service airline webservice


5.3.2 WSDL cho BPEL Process:
BPEL Process ca dch v du lch ny th tng t nh 1 webservice thng
thng.Chng ta cn nh ngha WSDL cho n.Process ny s nhn message t
client v tr v kt qu.v th n cng thng qua 1 port type m s client s s
dng cho process. nh ngha TravelApprovalPT port type vi TravelApproval
operation

DemoRequest
DemoPT:
Process operation
DemoResponse

BPEL
Process

Hnh 5.3. Interface bpel process


5.3.3 nh ngha cc Partner Link Types:
Cc partner link type ch ra s tng tc ln nhau gia cc BPEL process v cc
thnh phn lin quan. l BPEL process gi cc ws v client gi BPEL process.
Trong ng cnh ny c 3 thnh phn chnh l: client ptitairline service v
deltaairline service v mi webservice tng ng vi mt partner link type.
Chng ta nh ngha 3 partner link type tng ng vi mi ws:
Hong Xun Tun

05TH

Trang 38

Bo co Thc tp

Ti liu tham kho

travelLT: m t s tng tc ln nhau BPEL process client v chnh BPEL


process,n c nh ngha trong WSDL ca BPEL process
employeeLT: m t s tng tc ca BPEL process v ws Employee Travel
Status.N c nh ngha trong WSDL ca ws Employee
flightLT:m t s tng tc ca BPEL process vi cc ws Airlines.S
tng tc ny l bt ng b.N c nh ngha trong WSDL ca ws
Airlines
Ch rng mi partner link type c mt hoc hai role v mi role phi ch ra
porttype m n s dng
u tin chng ta nh ngha travelLT vo trong WSDL ca BPEL process.N
c s dng khi client gi BPEL process v ch c 1vai tr l service travel
ny( chnh l BPEL process).Client s dng port type TravelApprovalP lin lc
vi process.
V d:

...
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client"
partnerLinkType="tns:demo"
myRole="demoProvider"
/>

..
Cui cng l flightLT: m t s truyn thng ca process vi cc ws Airlines.Cn
2 role. Th nht l : l vai tr ca Airline service (airlineService),BPEL process
s dng thng qua port type FlightAvailabilityPT gi service ny
Th hai l : vai tr ca BPEL process vi cc ws ny gi l airlineCustomer.V
cc ws ny s dng port type FlightCallbackPT callback
V d:
...

<bpel:partnerLink name="PartnerLink"
partnerLinkType="tns:WSPLT"
partnerRole="Provider1">
</bpel:partnerLink>

...
5.3.4.nh ngha quy trnh nghip v (Bussiness Process Definition)
Ch ra cc activities trong BPEL process. c trng: BPEL process ny i 1
message v bt u thc thi cc x l. Message ny thng l request ca client.
Cc activity s khi to c th l tun t hoc song song, c nhng dng nh sau:
Invoke operation cc ws
Receive kt qu t cc ws
Hong Xun Tun

05TH

Trang 39

Bo co Thc tp

Ti liu tham kho

Cc iu kin r nhnh
Looping
Bt ngoi l
Lc tun t gia cc thnh phn trong bi ton l:

Hnh 5.4. Lc tun t


Bao gm cc thnh phn lin quan nh:
Client invoke BPEL process
BPEL process itself
2 ws Airline
5.4.Config engine v ci plug-in
Pht trin v thc thi cc quy trnh nghip v WS-BPEL V2.0 bng cch s dng
plug-in BPEL Eclipse Designer
BPEL V2.0 l mt ngn ng mnh dng tr gip pht trin cc ng dng phc
tp, ln, gm nhiu thnh phn v dch v Web khc. BPEL cho php bn m t
lung cng vic di bng cch s dng trnh son tho ha biu th lung
cng vic trn cc biu thn thin vi con ngi.
Qu Apache gi vic thc hin Web Services Business Process Execution
Language (WS-BPEL - Ngn ng thc hin quy trnh nghip v ca cc Dch v
Web) phin bn V2.0 ca n l Orchestration Director Engine. ODE thc hin cc
Hong Xun Tun

05TH

Trang 40

Bo co Thc tp

Ti liu tham kho

quy trnh WS-BPEL, c kh nng giao tip vi cc dch v Web, gi v nhn cc


thng bo, v.v.

Trc khi ci t ODE v BPEL cho Eclipse, hy chc chn rng phn sau y
c ci t trn my tnh ca bn:
1.Java V5.0 hoc mi hn.
2.Tomcat V5.5 hoc mi hn.
3.Eclipse V3.3.x vi cc plug-in sau y c ci t:
EMF V2.3.x
GEF V3.3.x
DTP STK V1.5.x
WTP (Web Tools Platform - Nn tng ca cc dng c Web) V2.0.x
5.4.1.Ci t Apache Tomcat:
S dng apache-tomcat-5.5.27.Gii nn vo C vi ng dn nh sau:
C:\apache-tomcat-5.5.27
Ci JDK 1.5.x hoc cc phin bn v sau.Ta thit lp bin mi trng
JAVA_HOME ch n th mc ci t JDK.Tng t cng thit lp bin
CATALINA_HOME ch n th mc ci t Tomcat theo hnh sau:

Hong Xun Tun

05TH

Trang 41

Bo co Thc tp

Ti liu tham kho

Hnh 5.5 Thit lp bin mi


trng
Sau test xem Tomcat ci t thnh cng cha.

Hnh 5.6 Start


Tomcat 26
M IE hoc Firefox g ng dn nh sau:http://localhost:8080/ s dng tomcat

Hong Xun Tun

05TH

Trang 42

Bo co Thc tp

Ti liu tham kho

5.5.2.Ci t Axis2( phin bn nng cp ca Axis):c nhiu cch ci t


axis2,n gin nht l chp tp tin axi2.war vo th mc C:\apache-tomcat5.5.27\webapps v restart li tomcat s thnh cng.Truy
cp:http://localhost:8080/axis2 s c:

Hnh 5.7.Khi ng Axis2


5.4.3.Ci t Eclipse WTP:
Bao gm cc gi sau:
eclipse-SDK-3.5-win32_2.zip
emf-runtime-2.5.0.zip
GEF-SDK-3.5.0.zip
wtp-sdk-R-3.1-20090616035105.zip
wtp-Automated-Tests-R-3.1-20090616035105.zip
org.eclipse.releng.tools-3.5.zip
xsd-runtime-2.5.0.zip
Gii nn tt c vo C,ta s c th mc C:\eclipse.
Khi ng Eclipse v thit lp cc cu hnh nh sau:
Vo Window -> Preferences -> Web Services -> Axis2 Emitter chn th mc
ci t Axis2 nu thnh cng s xut hin thng bo

Hong Xun Tun

05TH

Trang 43

Bo co Thc tp

Ti liu tham kho

Hnh 5.8 Thit lp Axis2 trong eclipse


Tip n l to cu hnh webserver tomcat cho Eclipse.
Chn Window -> Preferences -> Server -> Runtime environment.Chn
Apache-Tomcat 5.
5.4.4 Ci t MySQL 4.1 v JDBC connector:
JDBC l mt chun truy xut c s d liu rt ph bin. Cc RDBMS (Relational
Database Management Systems H qun tr c s d liu quan h) hay cc nh
sn xut phn mm bn th ba pht trin cc driver cho Java u cn tun th cht
ch c t JDBC. Cc nh pht trin khc s dng cc driver ny pht trin nn
cc ng dng c truy cp c s d liu
Ci t Connector/J - JDBC Driver ca MySQL JDBC Driver ca MySQL c th
ly v a ch http://www.mysql.com/downloads/api-jdbc.html .
Hong Xun Tun

05TH

Trang 44

Bo co Thc tp

Ti liu tham kho

File bn ti v s l mt file .zip hoc .gz. Sau khi gii nn bn s c 1 file c tn


tng t nh sau: mysql-connectorjava- 3.0.9-stable-bin.jar. Hy chp file ny vo
th mc %JAVA_HOME%/jre/lib/ext trn h thng ca bn. V d
C:\j2sdk1.4.2\jre\lib\ext.Bn cng cn a ng dn n file JAR ny vo bin
mi trng MYSQL_DRIVER ca bn.
Thit k c s d liu: Mi webservice s dng 1database trong gm 3 bng c
mi quan h nh sau:

Hnh 5.9. Lc c s d liu

5.4.5.Ci t ODE Apache


Ti v ODE. Khi ng Webserver Tomcat Apache v s dng trnh qun l
Tomcat (Tomcat Manager) (Bn nn tm trnh qun l ny trn my tnh ca bn
ti http://localhost:8080/manager/html) trin khai m-un ode.war t kho t
liu phn phi. kim tra thnh cng, hy truy cp http://localhost:8080/ode/,
hin th trng thi ca dch v Web ODE ca my tnh
5.5.Thc hin:
5.5.1.Chng trnh chnh:
Giao din design ca chng trnh:

Hong Xun Tun

05TH

Trang 45

Bo co Thc tp

Ti liu tham kho

Hnh 5.10. Giao din thit k


u tin l import cc file wsdl tng ng vi 2 webservice s s dng l:
ptitairline.wsdl v deltaairline.wsdl

Hnh 5.11.WSDL ca web service airline


Partner gm:client,partnerLink(ptitairline),partnerLink1(deltaairline)
S dng ca s properties modify cc partnerlinktype,role,name theo hnh:

Hong Xun Tun

05TH

Trang 46

Bo co Thc tp

Ti liu tham kho

Hnh 5.12.Thit k partnerlink

Thit lp properties cho activity: <invoke> bao gm partner s tng ng vi


webservice m BPEL process s gi thng qua portType: ticketptitPortType ng
vi operation: execute v n s dng 2 bin tham gia l: PartnerLinkRequest,
PartnerLinkResponse.

Hong Xun Tun

05TH

Trang 47

Bo co Thc tp

Ti liu tham kho

Hnh 5.13 config active <invoke>


Da vo lc hot ng ta thit k BPEL process theo mu sau:

Hong Xun Tun

05TH

Trang 48

Bo co Thc tp

Ti liu tham kho

Hnh 5.14. BPEL proccess


S dng activity<if>: y s c 2 iu kin r nhnh.Nu gi v ca hng PTIT
nh hn gi v ca Delta th s chn gi PTIT hoc ngc li
Xt iu kin cho <if> nh sau:
boolean($PartnerLinkResponse.parameters/ns:return <=
$PartnerLink1Response.parameters/ns:return)

Hnh 5.15. active <if>


ng vi mi iu kin r nhnh s c 1 active tng ng, y l active <Assign>
dng gn gi tr c chn vo active <reply> xut kt qu cho client.

Hong Xun Tun

05TH

Trang 49

Bo co Thc tp

Ti liu tham kho

Cch s dng activity <Assign>: c th ni y l active c dng nhiu nht,n


dng trao i,cp nht gi tr cho cc bin trong process.Dng designer ch
ra copy t bin no ti bin no.Ch s dng ngn ng Xpath 1.0.

Hnh 5.16. config active <assign>


Trong chng trnh,u tin khi nhn request t client s bao gm cc tham
s.BPEL process s nhn ly cc gi tr ny thng qua active <receive>.Sau
a cc tham s ny vo cc variable thng qua <active>,tip n tnh ton x l
xut ra gi tr cui cng.Cng tng t tr v cho client th cng phi gn ri
mi <reply>
Ch :

Thit lp WSDL cho BPEL process :


u tin config port type:
Hong Xun Tun

05TH

Trang 50

Bo co Thc tp

Ti liu tham kho

Hnh 5.17. Config WSDL cho bpel proccess


To file deploy.xml trin khai ln webserver:

<?xml version="1.0" encoding="UTF-8"?>


<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:sample="http://sample.bpel.org/bpel/sample"
xmlns:source="http://source">
<process name="sample:demo">
<active>true</active>
<retired>false</retired>
<process-events generate="all"/>
<provide partnerLink="client">
<service name="sample:demoService" port="demoPort"/>
</provide>
<invoke partnerLink="PartnerLink">
<service name="source:ticketptit"
port="ticketptitHttpSoap11Endpoint"/>
</invoke>
<invoke partnerLink="PartnerLink1">
<service name="source:ticketdelta"
port="ticketdeltaHttpSoap11Endpoint"/>
</invoke>
</process>
</deploy>

ODE Engine h tr design to file xml nh trn theo cch nh sau:

Hong Xun Tun

05TH

Trang 51

Bo co Thc tp

Ti liu tham kho

Hnh 5.18. config deploy.xml

5.5.2.Vit client gi BPEL:


Do BPEL process th tng t nh 1 web service,miu t qua file wsdl v th cch
thc gi 1 process cng tng t nh gi 1 web service.
Hong Xun Tun

05TH

Trang 52

Bo co Thc tp

Ti liu tham kho

Hnh 5.19.M hnh bpel process tng t 1 web service


C 3 cch gi 1 web service: stub, dynamic proxy, dynamic invocation
interface(DII).
y ta s dng stub.
S dng wsdl to lp stub

Hong Xun Tun

05TH

Trang 53

Bo co Thc tp

Ti liu tham kho

Hnh 5.20.To web project client


T ng trong source s sinh ra lp stub.Vit 1 trang jsp hoc 1 class Client
thc hin vic gi process.S dng cc lp cn thit:
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import org.bpel.sample.bpel.sample.DemoServiceStub;
import org.bpel.sample.bpel.sample.DemoServiceStub.Execute;
import org.bpel.sample.bpel.sample.DemoServiceStub.Execute1;
import org.bpel.sample.bpel.sample.DemoServiceStub.DemoRequest;
import org.bpel.sample.bpel.sample.DemoServiceStub.DemoResponse;
import org.bpel.sample.bpel.sample.DemoServiceStub.ExecuteResponse;
import org.bpel.sample.bpel.sample.DemoServiceStub.Execute1Response;

Trong bao gm cc i tng quan trng sau:


Hong Xun Tun

05TH

Trang 54

Bo co Thc tp

Ti liu tham kho

DemoServiceStub demo=new DemoServiceStub();


DemoServiceStub.DemoRequest rq=new DemoServiceStub.DemoRequest();
DemoServiceStub.DemoResponse result=demo.process(rq);
N s tr v gi tr m bpel process thc hin.
Kt lun:
BPEL V2.0 l mt ngn ng mnh nhm gip pht trin cc ng dng phc tp
bao gm nhiu thnh phn khc v cc dch v Web. BPEL cho php m t lung
cng vic di hn bng cch s dng cc trnh son tho ha trn biu thn
thin vi con ngi. Bn c th s dng sn phm m ngun m cho vic to ra
cc ng dng bng cch s dng c t BPEL V2.0 t cc cng ng Apache v
Eclipse c s dng cng nhau D n BPEL Eclipse cho s pht trin ca cc
quy trnh v ODE Apache cho vic thc hin chng. C hai sn phm hot ng
thnh cng t nht trn cc quy trnh BPEL V2.0 n gin, nh mt sn phm
m t trn.

Hong Xun Tun

05TH

Trang 55

You might also like