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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên cứu lý thuyết kiến trúc SOA, trong đó nhấn mạnh mô hình xây dựng ứng dụng nghiệp vụ từ các dịch vụ đơn lẻ 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ấu trúc thông thường còn có khẳ năng gọ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 vai trò quan trọng, ảnh hưởng đến hiệu năng hoạt động của các tiến trình nghiệp vụ. Tìm hiểu kiến trúc hoạt độ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úng ta có được cái nhìn tổng quan về kiến trúc cũng như hiểu được cách thức làm việc của các trình xử lý. Sử dụng phương pháp đo đạc định lượng trong đó triển khai các trình xử lý và sử dụng các công cụ để đo thời gian thực hiện của chúng. Lựa chọn các tác vụ cơ bả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 để đánh giá hiệu năng của các trình xử lý BPEL. Công cụ đo Apache Jmeter sẽ được sử dụng để thực hiện đo thời gian phản hồi khi gửi các yêu cầu đến trình xử lý. Số lượng các yêu cầu sẽ tăng dần, tương ứng với số lượng người dùng tăng lên từ 1,2… 500. Kết quả đo đạc sẽ được lưu lại để phân tích, so sánh và đánh giá

1 So sánh hia các trình x 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 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 BPEL. Có rt nhiu các trình x 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 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 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 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 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 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 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 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 BPEL và mt s trình x BPEL tiêu biu: Apache ODE, ActiveVOS và Oracle BPEL Process Manager.  a các trình x 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 thuyt tng quan king dch vc t n thc tic trên các trình x BPEL, c th  .Nghiên cu 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 BPEL. Có rt nhiu các trình x BPEL hin nay, tuy nhiên chúng ta s la chn tìm hiu 03 trình x 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 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 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 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 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i: các Tác v c s d th 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ử 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 BPEL, là công c thc thi và c th   “Trình xử BPEL là một trình xử 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ử BPEL là một thành phần phần mềm có khả năng biên dịch ngôn ngữ BPEL”.  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ìnhtrình x 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 BPEL. Trình x BPEL: Nhim v ca trình x 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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 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 BPEL tiêu biu hin nay: Apache ODE, ActiveVOS và Oracle BPEL Process Manager. Apache ODE là trình x 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ử BPEL tiêu biểu 2.3.1 Trình x 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 ActiveVOS Kin trúc ca trình x 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 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 máy ch bao gm: qun 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 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 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  BPEL  t hia mt h thng là tng s dng ng quá trình x 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 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 thuy hin mm ci ta s dng   th c x 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 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 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 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 BPEL, mc dù trình x 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 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 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 BPEL: gm 03 trình x Apache ODE, ActiveVOS và Oracle BPEL Process Manager. V bn cht, các trình x 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 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 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 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 BPEL Yêu cu bài toán ca chúng ta s thc hi 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 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 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  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 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 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  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 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 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  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 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 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 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 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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 [...]... quả so sánh hiệu năng giữa các trình xử lý, Apache ODE có hiệu năng thấp nhất và phục vụ được ít người dùng nhất, ActiveVOS có hiệu năng trung bình, còn Oracle BPEL Process Manager có hiệu năng tốt và ổn định nhất cho dù số lượng người dùng có tăng lên 500 Quá trình thực nghiệm cũng đưa ra những kinh nghiệm khi tạo ra tiến trình BPEL như dùng tác vụ Flow nhanh hơn so với FlowDep để tận dụng khả năng. .. ( . 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. 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

Ngày đăng: 17/03/2014, 08:57

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan