Tải bản đầy đủ (.pdf) (13 trang)

So sánh hiệu năng của các trình xử lý BPEL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (577.53 KB, 13 trang )

1

So sánh hia các trình x lý BPEL
Compare performance of BPEL engines
NXB CN, 2012 66 tr. +

Trn Quc Vit


i hc Công ngh
LuCông ngh phn mm; Mã s: 60 48 10
ng dn: iu
o v: 2012


Abstract: Nghiên cu lý thuyt kin mnh mô hình xây dng
ng dng nghip v t các dch v  và các ng dng trên nn tng và công ngh
khác s dng ngôn ng WS-BPEL 2.0. Ngôn ng BPEL WS-BPEL 2.0 ngoài nhng tác
v cng còn có kh i các dch v bên ngoài thông qua dch v
Web(Web Service). Nhng tác v ng, n hi
hong ca các tin trình nghip v. Tìm hiu kin trúc hong chung ca BPEL vi
03 thành phn chính: Trình thit k BPEL, mu tin trình theo chun ngôn ng WS-BPEL
2.0 và trình x lý BPEL. Có rt nhiu các trình x lý BPEL hin nay, tìm hiu 03 trình x
lý tiêu biu: Apache, và Oracle BPEL Manager. Nghiên cu kin trúc ca các trình x lý
này s giúp chúnc cái nhìn tng quan v kic cách
thc làm vic ca các trình x lý. S dn
khai các trình x lý và s dng các công c  i gian thc hin ca chúng. La chn
các tác v n và quan trng nht ca ngôn ng WS-BPEL: If-else, Flow, FlowDep
           a các trình x lý
BPEL. Công c  c s d thc hii gian phn hi khi
gi các yêu cn trình x lý. S ng các yêu cu s ng vi s ng


 t qu c s  phân tích, so sánh và


Keywords: Công ngh phn mm; Công ngh thông tin; Ngôn ng BPEL; Trình x lý

Content
1. Mc tiêu nghiên cu c tài
Ngày nay, các ng dng công ngh thông tin trong doanh nghip có nghip v ngày càng
phc ti nhng ng dng mng nhi nghip v trong th
gii cnh tranh. Vi s ng các ng dng phát trin ngày càng nhii phi có công ngh
và mt nn tng h tng b  có th kt hp nhng h thi. King
dch v i nhm gii quyc phi hp các dch v  và
các h thng có sn thành mt quy trình thng nht mà không phi si các ng d
SOA s dng ngôn ng  xây dng và thc thi các tin trình nghip v. Phiên bn
mi nht ca BPEL là WS-BPEL 2.0, là ngôn ng  mô hình hóa các tin trình nghip v cho
các ng dng theo ki ng dch v. Các tin trình xây dng trên nn ngôn ng BPEL
ngoài các phép toán cng còn có các li gn các dch v  thc
2

thi các chn trúc SOA s dng chun giao ti kt ni vi các ng dng
khác, chính vì th các h thng các h thn si nhi kt ni vi các ng
dng mi. Tic xây dng xong s thc thi trên các trình x lý BPEL
(BPEL engines). T thc hin ca các tin trình hay các ng dng này ph thuc vào hiu
a các trình x lý. Vì th, vic la chn mt trình x lý BPEL phù hp vi yêu cu hot
ng ca ng dng là mi vi các doanh nghii phi có nhng so sánh và
a các trình x lý BPEL.
2. Mt s kt qu c
V tài nghiên cu này tôi t c mt s kt qu nhnh sau
 Nghiên cu tng quát v king dch v (SOA) và phi hp các dch v
trong SOA

 Tìm hic t ca ngôn ng thc thi tin trình nghip v WS-BPEL 2.0
 Tìm hiu kin trúc ca các trình x lý BPEL và mt s trình x lý BPEL tiêu biu:
Apache ODE, ActiveVOS và Oracle BPEL Process Manager.
 a các trình x lý BPEL khi phn hi các
yêu ci dùng.
3. B cc lu
B cc luc chia làm  nghiên cu t lý thuyt tng quan
king dch vc t n thc tic trên các trình x lý BPEL, c th 
.Nghiên cu lý thuyt kin mnh mô hình xây dng
ng dng nghip v t các dch v  và các ng dng trên nn tng và công ngh khác s dng
ngôn ng WS-BPEL 2.0. Ngôn ng BPEL WS-BPEL 2.0 ngoài nhng tác v cng
còn có kh i các dch v bên ngoài thông qua dch v Web(Web Service). Nhng tác v này
ng, n hing ca các tin trình nghip v.
. Tìm hiu kin trúc hong chung ca BPEL vi 03 thành phn chính: Trình
thit k BPEL, mu tin trình theo chun ngôn ng WS-BPEL 2.0 và trình x lý BPEL. Có rt
nhiu các trình x lý BPEL hin nay, tuy nhiên chúng ta s la chn tìm hiu 03 trình x lý tiêu
biu: Apache, và Oracle BPEL Manager. Vic nghiên cu kin trúc ca các trình x lý này s
c cái nhìn tng quan v kic cách thc làm vic ca
các trình x lý.
. S dn khai các trình x lý và
s dng các công c  i gian thc hin ca chúng. Trong phm vi lu s
la chn các tác v n và quan trng nht ca ngôn ng WS-BPEL: If-else, Flow, FlowDep
(flow dùng link), While, Sequence, Invoke  a các trình x lý BPEL.Công
c  c s d thc hii gian phn hi khi gi các yêu cn
3

trình x lý. S ng các yêu cu s ng vi s 
t qu c s  
Kt lun. Kt luc ca lu
ng phát trin c tài trong nhng ln nghiên cu tip theo


C 1
BPEL

1.1 Tng quan v SOA
SOA - Service Oriented Architecture (King Dch va
DotNetGuru, là 'Khái nim v h thi ng dt ngun cung
cp dch v'.Nói mn thì king dch v (SOA) là mng tip cn vi
vic thit k và tích hp các phn mm, ch thng theo dng module và có kh 
truy cng mng. H thng SOA là mt tp hp các dch v c chun hóa
trên mi vi nhau trong ng cnh mt tin trình nghip v.
1.2 Phi hp dch v trong SOA
Ngày nay, vi s phát trin ca các ng dng nghip v i các ng dng Công ngh
thông tin phi có mt h tng mm do và linh ho có th ng.
Tuy nhiên, các ng dng CNTT truyn th c thit k  ng ch  
ng phc v mt nghip v nhnh, khó có kh i nghip v khi cn. Kt qu là
rt nhiu các t chc không th tip tc s dng li các h th tích hp vi các
thit k ca h thng mi. Mt ra là làm sao có th s dng li các ch
ca các h th to ra mt h thng mi, nhm tit ki
ng cnh tranh hin nay.
Ki    i nhm gii quy    i ta dùng thut ng
 tm dch là phi hp các dch v. Kin trúc SOA cho phép phi hp các dch v
ri rc thành mt ng dng nghip v thng nhi kin trúc ca các ng
d u này, kin trúc SOA s dng ngôn ng mô phng và thc thi tin trình
nghip v có tên là BPEL. Ngôn ng BPEL s  thc hin
trên tii các dch v bên ngoài, kin trúc SOA h tr giao tip qua chun WSDL.
Chun giao tip này không nhng phù hp vi các ng dng SOA hin ti mà còn có kh 
i các h th không cn si h th hi ngôn ng
BPEL, chúng ta s u v tng thành phn ca nó trong ph
1.2 Ngôn ng WS-BPEL 2.0

1.3.1 




BPEL (Business Process Execution Language )  


 , 

















 . 


4





.  



 n lý các s kin và ngoi l bo toàn
d liu khi có ngoi l xy ra. 





 p dng XML
n mt dch v khác, thao tác trên cu trúc XML, nhng b hay không
ng b) t các service bên ngoài.













: WSDL, XML Schema 2.0, XPath 2.0 và WS-Addressing.
1.3.2 













PEL






: WSDL, XML Schema 2.0,XPath 2.0 và WS-















 . 









 -to-

















 . 









. 































,  






.
1.3.3 































 . c mô t trong
BPEL giao tip vi trang web và các dch v i tài liu XML(SOAP). Các khái nim chính
trong mt tin trình BPEL bao gm:
Process: <process>. 
c.
Imports: 










.
PartnerLinks: Cha tp h   c s dng trong tin trình. Mi
partnerLink s thit lp mt quan h gia bn thân process vi mt service bên ngoài.
Variables: Phc dùng trong tin trình. Mi biu phi
c tham chin mt kic mô t trong tp tin WSDL.
Sequence:   n chính mô t logic ca tin trình. Trong mt sequence s cha
nhiu tác v c trình bày chi tii). Mi tác v có mt nhim v c th trong tin
trình BPEL. Bt tác v, có th cha các c
tun t khác
1.3.4 u trong BPEL
Mt tic th hin qua các Tác v, các Tác v c thc
hin tun t theo cc khai báo trong tin trình. Trong BPEL 2.0 thì các Tác v c

Tác v n: là các tác v th, nó không th chc bt k các tác v nào khác
bên trong nó na.
Tác v cu trúc: là các Tác v có cu trúc, nó có th chc các Tác v khác bên
trong nó.
5

Tác v x lý li: các Tác v c s d th lý li và các ngoi l xy ra trong
quá trình hong ca mt tin trình

Tùy theo nhu cng hp c th mà ta có th chn và s dng các Tác v
khác nhau. Bng sau mô t chi tit v mt s tác v chính trong BPEL 2.0:
Bng 1.1 Mt s tác v chính trong BPEL 2.0
Tên

Các tác v n
Empty
Là mt tác v c bit, không làm gì hc gi. Tác v c dùng khi
cn có mt tác v t s cn mng nào xy ra.
Invoke













Receive
Nhn mp t mtác v bu
mt tin trình mi
Reply
Gi tr m









Assign





Validate
Kim tra tính hp l ca các bi







 a nó
(chng h
Các tác v 













If/Else
u kin
Pick
a chng nào s c thc hin
khi s kinh xy ra, nu không có s kin nào xy ra
trong mt thi gian ch ng nào s c thc hi
While


















Repeat
Until
















 while
Foreach




















Wait

















Sequence
Tác v
Scope

 chia nh tin trình thành các tác v có các nhim v liên quan vi nhau
(khi tin trình tr nên phc tp).





6

C 2
TÌM 

2.1 Khái niệm trình xử lý BPEL
i thi  mô hình hóa quy trình nghip v
và phi hp các dch v  thành mt quy trình thng nhc to ra, nó
s c trin khai trên trình x lý BPEL, là công c thc thi và c th 

“Trình xử lý BPEL là một trình xử lý luồng công việc mà thực thi các tiến trình được thiết
kế trên ngôn ngữ BPEL”.
“Trình xử lý BPEL là một thành phần phần mềm có khả năng biên dịch ngôn ngữ BPEL”.
 lý BPEL không hoc lp mà là mt thành phn
phn mm trong kin trúc ca BPEL. Kin trúc ca BPEL bao gm 03 thành phn chính là: trình
thit k BPEL, mu tin trình và trình x lý BPEL.
Trình thit k BPEL: Trình thit k c s d   n trình
nghip vc lp vi các nn tng ng d h tr c lc cho nhng
chuyên viên nghip v  n trình mà không cn bit sâu v k thut. Sau khi thit
k xong, nó s t ng sinh ra mu tii dng mã ngun BPEL.
Mu tin trình logic: Mu tinh dc t BPEL. Mu tin trình
c sinh ra bi trình thit k BPEL và thc thi bi trình x lý BPEL.
Trình x lý BPEL: Nhim v ca trình x lý BPEL là thc thi bt c mu tin trình logic

nào theo chun BPEL. Trong quá trình thc hin, nó s gi các dch v Web, ánh x d liu vi
p, x lý lm bo giao dch toàn vn và tính bo mt. Trình x ng
c tích hp vi các máy ch ng dng (Application Server). Hin nay có rt nhiu các sn
phm trình x i hoc mã ngun m, tuy nhiên không có mt kin
c s d  t chun thit k nào mà mt trình x lý
BPEL tuân theo.Trong phn tip theo, chúng ta s u kin trúc ca 3 trình x lý BPEL
tiêu biu hin nay: Apache ODE, ActiveVOS và Oracle BPEL Process Manager. Apache ODE là
trình x lý mã ngun m ph bin nht hin nay, ActiveVOS là mt trong nhng trình x u
tiên, Oracle BPEL Process Manager là sn phm dành cho các doanh nghip.
2.2 Kiến trúc một số trình xử lý BPEL tiêu biểu
2.3.1 Trình x lý Apache ODE
Các thành phn chính trong kin trúc ca ODE bao gm b biên dch ODE BPEL, trình
chy các ng dng truy cp d liu, các lp tích hp và các công c i
dùng. Mô hình quan h mc cao gia các thành phc mô t i. Có th tng kt
li  biên dch s chuyi mã ngun BPEL sang dng có th thc. Quá trình thc
7

thi s giao tip vi CSDL thông qua DAO, và giao tip vng bên ngoài thông qua lp
tích h
2.3.2 Trình x lý ActiveVOS
Kin trúc ca trình x lý BPEL bao gm 04 thành phn: Trình x 
tri     ch v   n tr. Phn quan trng nht trong kin trúc ca
ActiveVOS là b x lý trung tâm ActiveVOS. Nhim v cc thi
các mu tin trình vit bng ngôn ng BPEL. Thành phn th 2 là các trình qun lý máy ch bao
gm: qun lý cnh báo, cu hình cm, trin khai, các ti, nhim v và x
lý các s kin phc tp. Thành phn nn tng th ng trong vic giao tip
vi các h thng khác, thông qua vic h tr các giao thEST
2.3.3 Trình x lý Oracle BPEL Process Manager
Oracle BPEL Process Manager là công c  thc thi các tin trình nghip v. Công c
này cung cp mt gic chun hóa và d  to, trin khai và qun lý các

tin trình nghip v t ng theo king dch v. Oracle BPEL Process Manager là công
c tích hp thích hp cho các doanh nghip. Nó có kh t ni vi các h thng ngoài và các
tin trình, có nhiu công ngh giao tip khác nhau giúp nó có th d nh và thc thi các
nghip v logic.

C 3
SO SÁNH 

3.1  lý BPEL
 t hia mt h thng là tng s dng
ng quá trình x lý yêu cu ca h thng, thu thp các d
lia trên mt s tiêu chí và cui cùng ti li mô
phng quá trình x lý yêu ci ta s gi lp các yêu cu ging vng tht và gi ti
h thng. Theo lý thuy hin mm ci ta s dng
 
th c x lý trong mt giây
(Throughput=objects/second), còn response time là thi gian phn hi t h thng, tính t sau khi
i dùng submit mt yêu cn khi nhc kt qu tr v. Trong các h thng x lý giao
dch trc tuyn (OLTP), thi gian phn h là tiêu chí quan tr a h
thng, còn  c s dng vi các h thng x lý giao dch dài và ln (ví d
các h thng chy batch job).
 a mt trình x  d 
các tiêu chí da trên các yêu cu gn h thng. Tuy nhiên, bn thân trình x lý BPEL không
8

trc tin yêu cu t  v kt qu. Vin yêu cu và
tr kt qu c thc hin bi ng dng Dch v Web chy trên trình x lý BPEL, mc dù trình
x lý này trc tip thc hin các tác v ca ng dng dch v  a
mt trình x lý BPEL, chúng ta s thc hin ng dng dch v Web
chy trên trình x 

3.2 Xây dng h thc
3.2.1 Phm vi c lý BPEL
Da trên mô hình do hi nh các thành phn trong mô hình
bao gm:
 Các trình x lý BPEL: gm 03 trình x lý Apache ODE, ActiveVOS và
Oracle BPEL Process Manager. V bn cht, các trình x lý BPEL này không chc lp
mà nó liên kt v y
trên các thành phm vi lu, ta s
t các trình x lý theo mnh ca chúng, là mt sn phm bao gm các thành phn:
Web Server + CSDL + trình x lý BPEL. Ta s a sn phm này.
 Các dch v Web: Mi Dch v Web th hin mt tác v ca BPEL. Vic
ng tác v s c lp và khách quan v hia trình x lý BPEL
khi thc hin tng tác v  kt qu ng tác v, ta có th tính toán hi
cho ng dng tng hp nhiu tác v khác nhau.
 Công c  s dng công c  ng  to các
kch bn.
t trình x lý BPEL
Yêu cu bài toán ca chúng ta s thc hi lý BPEL tiêu biu hin nay:
c phát trin bi t chc Apache Foundation, ActiveVOS ca công ty Active
Endpoints Inc, và Oracle BPEL Process Manager 10G ca công ty Oracle. Mi trình x lý BPEL
là mt phn mm có kiu h tr chun chung WS-BPEL 2.0.
3.2.3 Xây dng ng dng dch v Web
Chúng ta s xây dng các ng dng dch v Web, mi ng dng s thc hin mt trong
các tác v tiêu biu ca ngôn ng WS-BPEL2.0 mà trình x lý BPEL thc hin: If-else, While,
Flow, Sequence, Invoke. Tác v Flow s có 2 ví d ng vng hp thc hin song song -
Flow (không có link) và thc hin tun t - FlowDep (có link liên kt gi các lung). Chúng ta la
chn các tác v tiêu bim toàn b các tác v khác ca ngôn ng WS-
BPEL 2.0: RepeatUntil có th mô phng bng tác v While.
3.2.4 Trin khai công c 
 thc hin mô phng yêu cu ci dùng, chúng ta s dng công c  ng

Apache Jmeter. Apache Jmeter cho phép gi lp s i dùng vi s ng tùy ý, to các
test case theo ý mui các kt qu  chính xác cao.
9

Apache Jmeter là phn mm mã ngun m, vit bng 100% ngôn ng c thit k  thc
hin các phép kim th ch
3.3 Thc hi
 ng dng Dch v Web, cn thc hic s
 Bt các trình x n các ng dng Dch v
 cô lng, chúng ta s ch bt mt trình x lý  ti mt thm.
 Khng Jmeter trên máy trm (ni cáp chéo).
 To kch bn trên Jmeter gi yêu cu n máy ch. Jmeter s ghi li thi gian phn
hi theo 3 thông s: thi gian phn hi trung bình, nh nht và ln nht.
 n s ng thi t 
Các ng dng Dch v  c trin khai trên các trình x lý BPEL Apache ODE,
ActiveVOS, Oracle BPEL Process Manager chy trên máy tính có h u hành phiên bn
Window 7 Professional 32 bit có cu hình: Intel Dual Core T9400 2.53 GHz, 3 GB RAM. Phn
mm Apache JMeter chy trên máy tính khác có h u hành phiên bn Window 7 Professional
32 bit vi cu hình: Intel Dual Core E8400 3.00 GHz, 3 GB RAM. 2 máy ch c kt ni vi
nhau trc ti cô lm bo tính khách quan ca kt qu 
Vi mi ng dng trên mt trình x lý BPEL, chúng ta s thc hic nhiu ln, 
nhiu m i s dng thi Vi mng vi mt s i dùng,
chúng ta s thc hiu ln và l  tin cy ca kt qu 
     a vic mô phng, chúng ta s c      
ng tht  i gian tính t i dùng nhn kt qu ca yêu cu th nht
n lúc gi yêu cu th hai  cho các yêu cc. Do thng không c nh nên
ta s dùng xác sut vi giá tr trung bình  ng là 0.5s (500ms).
Tham s c cu hình dng Gaussian Random Timer ca Apache Jmeter.
3.4  kt qu c
3.4.1  lý

Oracle BPEL Process Manager
Các phép th u thành công vi Oracle BPEL Process Manager, khi s 
dn t n 500, mà không phát sinh mt l i dùng kt nng
thi lên dn thì thi gian tr v      m bo không t quá thi gian
y có th khnh trình x lý Oracle BPEL có kh c
ng thi.
So sánh kt qu ca 2 tác v Flow và FlowDep thì tác v FlowDep có thi gian tr v
trung bình khong >2000ms, trong khi tác v Flow ch có thi gian tr v trung bình <1600ms.
Nguyên nhân là do trong tác v Flow, các lung thc hin song song, còn tác v FlowDep thì
10

lung này phi kt qu lung kia nên ch i dùng ln (500)
thì s .
ActiveVOS
Khi s ng user t 1-25 thì thi gian phn hi có s . Khi s
i dùng li gian phn ht, và bu xut hin li
c th hin bng các vòng tròn nh). Vi s i dùng nh, tác v Flow thc hin
i
gian phn hi ca Flow l
Nhìn chung, các tác v mà trình x lý ActiveVOS thc hin t qua tt c các phép
th, ch có tác v ng hp lng thi, và tác
v While có 38.17% t l lng thi kt ni. LRetrying
transaction to save journal entryi thch không th thc hic
và b tr li (rollback). Kim tra ti ca h thng ti thm có lu chim 100%CPU ca
máy ch.
Các tác v Flow, FlowDep, Sequence, If có thi gian tr v 
không có thông báo li, mà ch do h thng nghn và tr v kt qu chi dùng
kt nng thi, tài nguyên h thng gc s dng ht
 lý OS cho phép ti nhi dùng kt ni gi yêu cu
ng thi, vi tác v While và Invoke ch cho ti dùng. Tác v  v

kt qu chi tác v  t qu vi trình x lý Oracle BPEL
Process Manager. Gia tác v FlowDep và tác v Sequence, kt qu tr v có s 
.
Apache ODE
Các tác v trên trình x c tt c các phép th, h
các tác v u gp li  mng thi kt ni. Vi dùng gi yêu cu
ng thi thì vi 1-t requeu tiên, các yêu ct yêu
cu tip theo thì phát sinh ra các ngoi l (exception). Ví d vi tác v While thì khi có 25 user
ng thi gi yêu cn 34.57% li, còn ví d Invoke thì có t l li là 45%. y
có th khnh trình x lý Apache ODE ch có th phc v ti dùng
ng thi.
Kim tra ti ca máy ch ti thm b li thì thy tài nguyên máy ch u
i 50%, chng t nguyên nhân li không phi do thiu tài nguyên. Phân tích các mã li tr v
cho thy các l    n Database, khi trình x lý Apache ODE không th ghi vào
Database do có deadlock, dn không tr v kt qu i dùng. Nhng giao dch mà
trình x lý không th ghi vào trong Database s c lp lch thc thi trong
ng li trình x lý, các yêu cu này tip tc x lý li, gây nghn cho các
yêu cu mi gn. thi gian phn hi ca tác v i ging nhau trong
11

Apache ODE. Ch khi xóa thông tin ca các yêu cc gn trong Database thì trình x lý
Apache ODE mi ngng thc hin chúng
3.4.2 So sánh thi gian x lý ca các trình BPEL
While
Nhìn chung, tác v While trên Oracle cho thi gian phn hi trung bình nhai
i ODE. Vi s i dùng càng ln thì s khác
bit này càng rõ ràng.
Flow
So sánh thi gian phn hi trung bình ca tác v Flow vi s ng thi
nh (<=10) trên các trình x lý BPEL có th thy thi gian trên các trình x lý có s khác nhau

. Trình x lý Oracle BPEL Process Manager có thi gian phn hi nh nht cho
dù s n t i dùng.
FlowDep
Vi s ng user <200, thi gian tr v ca các trình x lý ActiveVOS và Oracle không
có s khác nhau nhiu. Va ActiveVOS tr nên tuyên tính.
Sequence
Vi s i dùng <10, c 3 trình x lý có thi gian tr v không khác nhau nhiu.
Vi s i dùng t n 500, có s i v m 
thi gian tr v n tính, trong khi Oracle BPEL Process Manager ch i mt chút.
ng t trình x lý Oracle BPEL luôn gi c s nh ngay c khi s i
ng thn 500.
IF-Else
Vi s i dùng <10, thi gian tr v ca 3 trình x  i
dùng tr lên ch còn ActiveVOS và Oracle tip tc x lý, tuy nhiên ActiveVOS có thi gian tr v
lu so vi Oracle. Bi cho tha ActiveVOS max và ActiveVOS
avg gn tính.
Invoke
So sánh tác v If và tác v Invoke: Vi s i dùng nh và va (1-100) thì thi
gian tr v gia các trình x lý không có s khác biy so vi các tác v khác thì thi gian
mà ActiveVOS x lý tim cn vn mc 100 users, trong khi các tác v khác
mi ch  i). Tuy nhiên vi phép th t i dùng tr lên thì có s
khác bit: ODE không thc hic, ActiveVOS thc hii gian tr v khá ln
(>21s), ch có Oracle BPEL Process Manager là có thi gian tr v nh (<5s).
Kt lun: Qua các s lic và phân tích  trên, chúng ta có th thc s khác
bit gia hia các trình x lý BPi gian tr v, khi s i dùng
nh (<25) thì thi gian không có s khác bi, tuy nhiên, khi s ng
thi   có trình x lý ActiveVOS và Oracle là tr v c kt qu, trong
12

e vn gi c s n tính (Vi tác

v Sequence và If-else thì t  khác bit). Mt yu t na th hin s khác
bit v hi  tr ng thi, vi Apache ODE ch h tr t
i dùng, ActiveVOS h tr ti dùng, còn Oracle Active OS thì vn có th phc
v ng thi.

KT LUN

Sau mt thi gian tìm tòi, nghiên cu, luc mt s kt qu quan trng. V
lý thuyt, lum quan trng ca king dch v
vào vic phi hp (orchestration) các dch v  và các h thng ng dng thành mt quy
trình nghip v . Lu tng quan v các tác v ca ngôn ng thc thi
tin trình nghip v WS-BPEL 2.0.
Luu kin trúc chung cu kin trúc ca tng
trình x lý BPEL c th Apache ODE, ActiveVOS, Oracle BPEL Process Manager. Vic tìm hiu
nhng kin trúc này giúp nc có th hi các thành pht
ng ca các tin trình BPEL.
Trong phn thc nghim, lun khai các
trình x lý. Các ng dng dch v c to ra cho tng tác v, sau c trin khai trên
tng trình x c thc hin vi hàng chc nghìn mu d liu
m b tin cy ca d li liu
i nhng kt qu quan trng t qu so sánh hia các trình x lý, Apache
ODE có hip nht và phc v i dùng nht, ActiveVOS có hi
bình, còn Oracle BPEL Process Manager có hit và nh nht cho dù s i
g lên 500. Quá trình thc nghing kinh nghim khi to ra tin trình
  tn dng kh c hin song
song. Lui dùng nhng khuyn cáo cn thit v nhng yu t k thut
khác khi la chn mt trình x lý BPEL.
Trong thi gian ngn thc hin, m gng nghiên cu và tìm hiu, tuy nhiên lun
n còn nhiu thiu sót. Trong thi gian ti, lu tip tc m rng vic trên các
nn t u hành khác, máy ch ng d d liu khác. Lu

s m rng ving dng phc hp bao gm nhiu tác v   chính
xác ca kt qu 

References
[1] Active Endpoints, ActiveVOS Documentation,

13

[2] Apache Software Foundation, Apache JMeter Documentation,

[3] Apache Software Foundation, Apache ODE Documentation, />guide.html
[4] Emmanuel Cecchet, Julie Marguerite, Willy Zwaenepoel, Performance and Scalability of EJB
Applications, 2002.
[5] Henry H. Liu, Software performance and scalability – A Quantitative Approach, A John Wiley &
SONS, INC, Publication, 2009.
[6] OASIS, Web Services Business Process Execution Language Version 2.0, is-
open.org/wsbpel/2.0/wsbpel-v2.0.html, 2007.
[7] Oracle Corporation, Oracle BPEL Process Manager Documentation,




×