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

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ì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

1.3.1 




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

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

















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


4

: 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-












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







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








































 . 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: 

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









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












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














Wait


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














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

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

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

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

. 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

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,


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status