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 hia các trình x lý BPEL Compare performance of BPEL engines NXB CN, 2012 66 tr. + Trn Quc Vit i hc Công ngh LuCông ngh phn mm; Mã s: 60 48 10 ng dn: iu o v: 2012 Abstract: Nghiên cu lý thuyt kin mnh mô hình xây dng ng dng nghip v t các dch v và các ng dng trên nn tng và công ngh khác s dng ngôn ng WS-BPEL 2.0. Ngôn ng BPEL WS-BPEL 2.0 ngoài nhng tác v cng còn có kh i các dch v bên ngoài thông qua dch v Web(Web Service). Nhng tác v ng, n hi hong ca các tin trình nghip v. Tìm hiu kin trúc hong chung ca BPEL vi 03 thành phn chính: Trình thit k BPEL, mu tin trình theo chun ngôn ng WS-BPEL 2.0 và trình x lý BPEL. Có rt nhiu các trình x lý BPEL hin nay, tìm hiu 03 trình x lý tiêu biu: Apache, và Oracle BPEL Manager. Nghiên cu kin trúc ca các trình x lý này s giúp chúnc cái nhìn tng quan v kic cách thc làm vic ca các trình x lý. S dn khai các trình x lý và s dng các công c i gian thc hin ca chúng. La chn các tác v n và quan trng nht ca ngôn ng WS-BPEL: If-else, Flow, FlowDep a các trình x lý BPEL. Công c c s d thc hii gian phn hi khi gi các yêu cn trình x lý. S ng các yêu cu s ng vi s ng t qu c s phân tích, so sánh và Keywords: Công ngh phn mm; Công ngh thông tin; Ngôn ng BPEL; Trình x lý Content 1. Mc tiêu nghiên cu c tài Ngày nay, các ng dng công ngh thông tin trong doanh nghip có nghip v ngày càng phc ti nhng ng dng mng nhi nghip v trong th gii cnh tranh. Vi s ng các ng dng phát trin ngày càng nhii phi có công ngh và mt nn tng h tng b có th kt hp nhng h thi. King dch v i nhm gii quyc phi hp các dch v và các h thng có sn thành mt quy trình thng nht mà không phi si các ng d SOA s dng ngôn ng xây dng và thc thi các tin trình nghip v. Phiên bn mi nht ca BPEL là WS-BPEL 2.0, là ngôn ng mô hình hóa các tin trình nghip v cho các ng dng theo ki ng dch v. Các tin trình xây dng trên nn ngôn ng BPEL ngoài các phép toán cng còn có các li gn các dch v thc 2 thi các chn trúc SOA s dng chun giao ti kt ni vi các ng dng khác, chính vì th các h thng các h thn si nhi kt ni vi các ng dng mi. Tic xây dng xong s thc thi trên các trình x lý BPEL (BPEL engines). T thc hin ca các tin trình hay các ng dng này ph thuc vào hiu a các trình x lý. Vì th, vic la chn mt trình x lý BPEL phù hp vi yêu cu hot ng ca ng dng là mi vi các doanh nghii phi có nhng so sánh và a các trình x lý BPEL. 2. Mt s kt qu c V tài nghiên cu này tôi t c mt s kt qu nhnh sau Nghiên cu tng quát v king dch v (SOA) và phi hp các dch v trong SOA Tìm hic t ca ngôn ng thc thi tin trình nghip v WS-BPEL 2.0 Tìm hiu kin trúc ca các trình x lý BPEL và mt s trình x lý BPEL tiêu biu: Apache ODE, ActiveVOS và Oracle BPEL Process Manager. a các trình x lý BPEL khi phn hi các yêu ci dùng. 3. B cc lu B cc luc chia làm nghiên cu t lý thuyt tng quan king dch vc t n thc tic trên các trình x lý BPEL, c th .Nghiên cu lý thuyt kin mnh mô hình xây dng ng dng nghip v t các dch v và các ng dng trên nn tng và công ngh khác s dng ngôn ng WS-BPEL 2.0. Ngôn ng BPEL WS-BPEL 2.0 ngoài nhng tác v cng còn có kh i các dch v bên ngoài thông qua dch v Web(Web Service). Nhng tác v này ng, n hing ca các tin trình nghip v. . Tìm hiu kin trúc hong chung ca BPEL vi 03 thành phn chính: Trình thit k BPEL, mu tin trình theo chun ngôn ng WS-BPEL 2.0 và trình x lý BPEL. Có rt nhiu các trình x lý BPEL hin nay, tuy nhiên chúng ta s la chn tìm hiu 03 trình x lý tiêu biu: Apache, và Oracle BPEL Manager. Vic nghiên cu kin trúc ca các trình x lý này s c cái nhìn tng quan v kic cách thc làm vic ca các trình x lý. . S dn khai các trình x lý và s dng các công c i gian thc hin ca chúng. Trong phm vi lu s la chn các tác v n và quan trng nht ca 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 thc hii gian phn hi khi gi các yêu cn 3 trình x lý. S ng các yêu cu s ng vi s t qu c s Kt lun. Kt luc ca lu ng phát trin c tài trong nhng ln nghiên cu tip theo C 1 BPEL 1.1 Tng quan v SOA SOA - Service Oriented Architecture (King Dch va DotNetGuru, là 'Khái nim v h thi ng dt ngun cung cp dch v'.Nói mn thì king dch v (SOA) là mng tip cn vi vic thit k và tích hp các phn mm, ch thng theo dng module và có kh truy cng mng. H thng SOA là mt tp hp các dch v c chun hóa trên mi vi nhau trong ng cnh mt tin trình nghip v. 1.2 Phi hp dch v trong SOA Ngày nay, vi s phát trin ca các ng dng nghip v i các ng dng Công ngh thông tin phi có mt h tng mm do và linh ho có th ng. Tuy nhiên, các ng dng CNTT truyn th c thit k ng ch ng phc v mt nghip v nhnh, khó có kh i nghip v khi cn. Kt qu là rt nhiu các t chc không th tip tc s dng li các h th tích hp vi các thit k ca h thng mi. Mt ra là làm sao có th s dng li các ch ca các h th to ra mt h thng mi, nhm tit ki ng cnh tranh hin nay. Ki i nhm gii quy i ta dùng thut ng tm dch là phi hp các dch v. Kin trúc SOA cho phép phi hp các dch v ri rc thành mt ng dng nghip v thng nhi kin trúc ca các ng d u này, kin trúc SOA s dng ngôn ng mô phng và thc thi tin trình nghip v có tên là BPEL. Ngôn ng BPEL s thc hin trên tii các dch v bên ngoài, kin trúc SOA h tr giao tip qua chun WSDL. Chun giao tip này không nhng phù hp vi các ng dng SOA hin ti mà còn có kh i các h th không cn si h th hi ngôn ng BPEL, chúng ta s u v tng thành phn ca 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 kin và ngoi l bo toàn d liu khi có ngoi l xy ra. p dng XML n mt dch v khác, thao tác trên cu trúc XML, nhng 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 tip vi trang web và các dch v i tài liu XML(SOAP). Các khái nim chính trong mt tin trình BPEL bao gm: Process: <process>. c. Imports: . PartnerLinks: Cha tp h c s dng trong tin trình. Mi partnerLink s thit lp mt quan h gia bn thân process vi mt service bên ngoài. Variables: Phc dùng trong tin trình. Mi biu phi c tham chin mt kic mô t trong tp tin WSDL. Sequence: n chính mô t logic ca tin trình. Trong mt sequence s cha nhiu tác v c trình bày chi tii). Mi tác v có mt nhim v c th trong tin trình BPEL. Bt tác v, có th cha các c tun t khác 1.3.4 u trong BPEL Mt tic th hin qua các Tác v, các Tác v c thc hin tun t theo cc khai báo trong tin 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 chc bt k các tác v nào khác bên trong nó na. Tác v cu trúc: là các Tác v có cu trúc, nó có th chc các Tác v khác bên trong nó. 5 Tác v x lý li: các Tác v c s d th lý li và các ngoi l xy ra trong quá trình hong ca mt tin trình Tùy theo nhu cng hp c th mà ta có th chn và s dng các Tác v khác nhau. Bng sau mô t chi tit v mt s tác v chính trong BPEL 2.0: Bng 1.1 Mt s tác v chính trong BPEL 2.0 Tên Các tác v n Empty Là mt tác v c bit, không làm gì hc gi. Tác v c dùng khi cn có mt tác v t s cn mng nào xy ra. Invoke Receive Nhn mp t mtác v bu mt tin trình mi Reply Gi tr m Assign Validate Kim tra tính hp l ca các bi a nó (chng h Các tác v If/Else u kin Pick a chng nào s c thc hin khi s kinh xy ra, nu không có s kin nào xy ra trong mt thi gian ch ng nào s c thc hi While Repeat Until while Foreach Wait Sequence Tác v Scope chia nh tin trình thành các tác v có các nhim v liên quan vi nhau (khi tin trình tr nên phc tp). 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 nghip v và phi hp các dch v thành mt quy trình thng nhc to ra, nó s c trin khai trên trình x lý BPEL, là công c thc 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 hoc lp mà là mt thành phn phn mm trong kin trúc ca BPEL. Kin trúc ca BPEL bao gm 03 thành phn chính là: trình thit k BPEL, mu tin trình và trình x lý BPEL. Trình thit k BPEL: Trình thit k c s d n trình nghip vc lp vi các nn tng ng d h tr c lc cho nhng chuyên viên nghip v n trình mà không cn bit sâu v k thut. Sau khi thit k xong, nó s t ng sinh ra mu tii dng mã ngun BPEL. Mu tin trình logic: Mu tinh dc t BPEL. Mu tin trình c sinh ra bi trình thit k BPEL và thc thi bi trình x lý BPEL. Trình x lý BPEL: Nhim v ca trình x lý BPEL là thc thi bt c mu tin trình logic nào theo chun BPEL. Trong quá trình thc hin, nó s gi các dch v Web, ánh x d liu vi p, x lý lm bo giao dch toàn vn và tính bo mt. Trình x ng c tích hp vi các máy ch ng dng (Application Server). Hin nay có rt nhiu các sn phm trình x i hoc mã ngun m, tuy nhiên không có mt kin c s d t chun thit k nào mà mt trình x lý BPEL tuân theo.Trong phn tip theo, chúng ta s u kin trúc ca 3 trình x lý BPEL tiêu biu hin nay: Apache ODE, ActiveVOS và Oracle BPEL Process Manager. Apache ODE là trình x lý mã ngun m ph bin nht hin nay, ActiveVOS là mt trong nhng trình x u tiên, Oracle BPEL Process Manager là sn phm dành cho các doanh nghip. 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 phn chính trong kin trúc ca ODE bao gm b biên dch ODE BPEL, trình chy các ng dng truy cp d liu, các lp tích hp và các công c i dùng. Mô hình quan h mc cao gia các thành phc mô t i. Có th tng kt li biên dch s chuyi mã ngun BPEL sang dng có th thc. Quá trình thc 7 thi s giao tip vi CSDL thông qua DAO, và giao tip vng bên ngoài thông qua lp tích h 2.3.2 Trình x lý ActiveVOS Kin trúc ca trình x lý BPEL bao gm 04 thành phn: Trình x tri ch v n tr. Phn quan trng nht trong kin trúc ca ActiveVOS là b x lý trung tâm ActiveVOS. Nhim v cc thi các mu tin trình vit bng ngôn ng BPEL. Thành phn th 2 là các trình qun lý máy ch bao gm: qun lý cnh báo, cu hình cm, trin khai, các ti, nhim v và x lý các s kin phc tp. Thành phn nn tng th ng trong vic giao tip vi các h thng khác, thông qua vic h tr các giao thEST 2.3.3 Trình x lý Oracle BPEL Process Manager Oracle BPEL Process Manager là công c thc thi các tin trình nghip v. Công c này cung cp mt gic chun hóa và d to, trin khai và qun lý các tin trình nghip v t ng theo king dch v. Oracle BPEL Process Manager là công c tích hp thích hp cho các doanh nghip. Nó có kh t ni vi các h thng ngoài và các tin trình, có nhiu công ngh giao tip khác nhau giúp nó có th d nh và thc thi các nghip v logic. C 3 SO SÁNH 3.1 lý BPEL t hia mt h thng là tng s dng ng quá trình x lý yêu cu ca h thng, thu thp các d lia trên mt s tiêu chí và cui cùng ti li mô phng quá trình x lý yêu ci ta s gi lp các yêu cu ging vng tht và gi ti h thng. Theo lý thuy hin mm ci ta s dng th c x lý trong mt giây (Throughput=objects/second), còn response time là thi gian phn hi t h thng, tính t sau khi i dùng submit mt yêu cn khi nhc kt qu tr v. Trong các h thng x lý giao dch trc tuyn (OLTP), thi gian phn h là tiêu chí quan tr a h thng, còn c s dng vi các h thng x lý giao dch dài và ln (ví d các h thng chy batch job). a mt trình x d các tiêu chí da trên các yêu cu gn h thng. Tuy nhiên, bn thân trình x lý BPEL không 8 trc tin yêu cu t v kt qu. Vin yêu cu và tr kt qu c thc hin bi ng dng Dch v Web chy trên trình x lý BPEL, mc dù trình x lý này trc tip thc hin các tác v ca ng dng dch v a mt trình x lý BPEL, chúng ta s thc hin ng dng dch v Web chy trên trình x 3.2 Xây dng h thc 3.2.1 Phm vi c lý BPEL Da trên mô hình do hi nh các thành phn trong mô hình bao gm: Các trình x lý BPEL: gm 03 trình x lý Apache ODE, ActiveVOS và Oracle BPEL Process Manager. V bn cht, các trình x lý BPEL này không chc lp mà nó liên kt v y trên các thành phm vi lu, ta s t các trình x lý theo mnh ca chúng, là mt sn phm bao gm các thành phn: Web Server + CSDL + trình x lý BPEL. Ta s a sn phm này. Các dch v Web: Mi Dch v Web th hin mt tác v ca BPEL. Vic ng tác v s c lp và khách quan v hia trình x lý BPEL khi thc hin tng tác v kt qu ng tác v, ta có th tính toán hi cho ng dng tng hp nhiu tác v khác nhau. Công c s dng công c ng to các kch bn. t trình x lý BPEL Yêu cu bài toán ca chúng ta s thc hi lý BPEL tiêu biu hin nay: c phát trin bi t chc Apache Foundation, ActiveVOS ca công ty Active Endpoints Inc, và Oracle BPEL Process Manager 10G ca công ty Oracle. Mi trình x lý BPEL là mt phn mm có kiu h tr chun chung WS-BPEL 2.0. 3.2.3 Xây dng ng dng dch v Web Chúng ta s xây dng các ng dng dch v Web, mi ng dng s thc hin mt trong các tác v tiêu biu ca ngôn ng WS-BPEL2.0 mà trình x lý BPEL thc hin: If-else, While, Flow, Sequence, Invoke. Tác v Flow s có 2 ví d ng vng hp thc hin song song - Flow (không có link) và thc hin tun t - FlowDep (có link liên kt gi các lung). Chúng ta la chn các tác v tiêu bim toàn b các tác v khác ca ngôn ng WS- BPEL 2.0: RepeatUntil có th mô phng bng tác v While. 3.2.4 Trin khai công c thc hin mô phng yêu cu ci dùng, chúng ta s dng công c ng Apache Jmeter. Apache Jmeter cho phép gi lp s i dùng vi s ng tùy ý, to các test case theo ý mui các kt qu chính xác cao. 9 Apache Jmeter là phn mm mã ngun m, vit bng 100% ngôn ng c thit k thc hin các phép kim th ch 3.3 Thc hi ng dng Dch v Web, cn thc hic s Bt các trình x n các ng dng Dch v cô lng, chúng ta s ch bt mt trình x lý ti mt thm. Khng Jmeter trên máy trm (ni cáp chéo). To kch bn trên Jmeter gi yêu cu n máy ch. Jmeter s ghi li thi gian phn hi theo 3 thông s: thi gian phn hi trung bình, nh nht và ln nht. n s ng thi t Các ng dng Dch v c trin khai trên các trình x lý BPEL Apache ODE, ActiveVOS, Oracle BPEL Process Manager chy trên máy tính có h u hành phiên bn Window 7 Professional 32 bit có cu hình: Intel Dual Core T9400 2.53 GHz, 3 GB RAM. Phn mm Apache JMeter chy trên máy tính khác có h u hành phiên bn Window 7 Professional 32 bit vi cu hình: Intel Dual Core E8400 3.00 GHz, 3 GB RAM. 2 máy ch c kt ni vi nhau trc ti cô lm bo tính khách quan ca kt qu Vi mi ng dng trên mt trình x lý BPEL, chúng ta s thc hic nhiu ln, nhiu m i s dng thi Vi mng vi mt s i dùng, chúng ta s thc hiu ln và l tin cy ca kt qu a vic mô phng, chúng ta s c ng tht i gian tính t i dùng nhn kt qu ca yêu cu th nht n lúc gi yêu cu th hai cho các yêu cc. Do thng không c nh nên ta s dùng xác sut vi giá tr trung bình ng là 0.5s (500ms). Tham s c cu hình dng Gaussian Random Timer ca Apache Jmeter. 3.4 kt qu c 3.4.1 lý Oracle BPEL Process Manager Các phép th u thành công vi Oracle BPEL Process Manager, khi s dn t n 500, mà không phát sinh mt l i dùng kt nng thi lên dn thì thi gian tr v m bo không t quá thi gian y có th khnh trình x lý Oracle BPEL có kh c ng thi. So sánh kt qu ca 2 tác v Flow và FlowDep thì tác v FlowDep có thi gian tr v trung bình khong >2000ms, trong khi tác v Flow ch có thi gian tr v trung bình <1600ms. Nguyên nhân là do trong tác v Flow, các lung thc hin song song, còn tác v FlowDep thì 10 lung này phi kt qu lung kia nên ch i dùng ln (500) thì s . ActiveVOS Khi s ng user t 1-25 thì thi gian phn hi có s . Khi s i dùng li gian phn ht, và bu xut hin li c th hin bng các vòng tròn nh). Vi s i dùng nh, tác v Flow thc hin i gian phn hi ca Flow l Nhìn chung, các tác v mà trình x lý ActiveVOS thc hin t qua tt c các phép th, ch có tác v ng hp lng thi, và tác v While có 38.17% t l lng thi kt ni. LRetrying transaction to save journal entryi thch không th thc hic và b tr li (rollback). Kim tra ti ca h thng ti thm có lu chim 100%CPU ca máy ch. Các tác v Flow, FlowDep, Sequence, If có thi gian tr v không có thông báo li, mà ch do h thng nghn và tr v kt qu chi dùng kt nng thi, tài nguyên h thng gc s dng ht lý OS cho phép ti nhi dùng kt ni gi yêu cu ng thi, vi tác v While và Invoke ch cho ti dùng. Tác v v kt qu chi tác v t qu vi trình x lý Oracle BPEL Process Manager. Gia tác v FlowDep và tác v Sequence, kt qu tr v có s . Apache ODE Các tác v trên trình x c tt c các phép th, h các tác v u gp li mng thi kt ni. Vi dùng gi yêu cu ng thi thì vi 1-t requeu tiên, các yêu ct yêu cu tip theo thì phát sinh ra các ngoi l (exception). Ví d vi tác v While thì khi có 25 user ng thi gi yêu cn 34.57% li, còn ví d Invoke thì có t l li là 45%. y có th khnh trình x lý Apache ODE ch có th phc v ti dùng ng thi. Kim tra ti ca máy ch ti thm b li thì thy tài nguyên máy ch u i 50%, chng t nguyên nhân li không phi do thiu tài nguyên. Phân tích các mã li tr v cho thy các l n Database, khi trình x lý Apache ODE không th ghi vào Database do có deadlock, dn không tr v kt qu i dùng. Nhng giao dch mà trình x lý không th ghi vào trong Database s c lp lch thc thi trong ng li trình x lý, các yêu cu này tip tc x lý li, gây nghn cho các yêu cu mi gn. thi gian phn hi ca tác v i ging 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 vi 03 thành phn chính: Trình thit k BPEL, mu tin trình theo chun ngôn ng WS -BPEL 2.0 và trình x lý BPEL. Có rt nhiu các trình x lý BPEL. thi bi trình x lý BPEL. Trình x lý BPEL: Nhim v ca trình x lý BPEL là thc thi bt c mu tin trình logic nào theo chun BPEL. Trong quá trình