Professional Documents
Culture Documents
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
Nm 2009
LI CM N
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
05TH
Trang 4
Bo co Thc tp
2.3.1.6. Chn a nhnh (Multi-Choice) ..........................................................17
05TH
Trang 5
Bo co Thc tp
3.4.Xy dng web service:................................................................................23
3.4.1.1.Giai on xy dng............................................................................23
05TH
Trang 6
Bo co Thc tp
05TH
Trang 7
Bo co Thc tp
hnh
.10
...15
....14
..15
..15
..16
.17
05TH
Trang 8
Bo co Thc tp
20
.. 21
..45
..48
..48
..51
05TH
Trang 9
Bo co Thc tp
05TH
Trang 10
Bo co Thc tp
05TH
Trang 11
Bo co Thc tp
05TH
Trang 12
Bo co Thc tp
05TH
Trang 13
Bo co Thc tp
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
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:
05TH
Trang 15
Bo co Thc tp
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
Chon b
hay c
Cng vic C
05TH
Trang 16
Bo co Thc tp
Cng vic
Cng vic
Cng vic
05TH
Trang 17
Bo co Thc tp
C
B
05TH
Trang 18
Bo co Thc tp
05TH
Trang 19
Bo co Thc tp
05TH
Trang 20
Bo co Thc tp
05TH
Trang 21
Bo co Thc tp
05TH
Trang 22
Bo co Thc tp
05TH
Trang 23
Bo co Thc tp
05TH
Trang 24
Bo co Thc tp
05TH
Trang 25
Bo co Thc tp
05TH
Trang 26
Bo co Thc tp
Activity
</process>
05TH
Trang 27
Bo co Thc tp
05TH
Trang 28
Bo co Thc tp
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
</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
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>
05TH
Trang 31
Bo co Thc tp
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.
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>
05TH
Trang 32
Bo co Thc tp
05TH
Trang 33
Bo co Thc tp
05TH
Trang 34
Bo co Thc tp
05TH
Trang 35
Bo co Thc tp
</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
05TH
Trang 36
Bo co Thc tp
1:Request
Clien
t
6:Reply
4.1:Invoke
PTIT Airlines
WS
4.2:Callback
5.2:Callback
Delta Airlines
WS
5.1:Invoke
05TH
Trang 37
Bo co Thc tp
ExecuteRequestMessage
TicketptitPT:
Execute operation
ExecuteResponseMessage
PTIT
Airlines
Webservice
DemoRequest
DemoPT:
Process operation
DemoResponse
BPEL
Process
05TH
Trang 38
Bo co Thc tp
...
<!-- 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
Cc iu kin r nhnh
Looping
Bt ngoi l
Lc tun t gia cc thnh phn trong bi ton l:
05TH
Trang 40
Bo co Thc tp
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:
05TH
Trang 41
Bo co Thc tp
05TH
Trang 42
Bo co Thc tp
05TH
Trang 43
Bo co Thc tp
05TH
Trang 44
Bo co Thc tp
05TH
Trang 45
Bo co Thc tp
05TH
Trang 46
Bo co Thc tp
05TH
Trang 47
Bo co Thc tp
05TH
Trang 48
Bo co Thc tp
05TH
Trang 49
Bo co Thc tp
05TH
Trang 50
Bo co Thc tp
05TH
Trang 51
Bo co Thc tp
05TH
Trang 52
Bo co Thc tp
05TH
Trang 53
Bo co Thc tp
05TH
Trang 54
Bo co Thc tp
05TH
Trang 55