.1Mô hình đo hiệu năng trình xử lý BPEL

Một phần của tài liệu (LUẬN văn THẠC sĩ) so sánh hiệu năng của các trình xử lý BPEL (Trang 44 - 47)

Trong mô hình 3.1 trên, ngƣời dùng ảo sẽ mô phỏng gửi các yêu cầu đến dịch vụ Web (Web Service), dịch vụ Web sẽ nhận yêu cầu và thực hiện các nghiệp vụ, các thao tác trực tiếp sẽ đƣợc gửi xuống trình xử lý BPEL để thực hiện, sau đó trả về kết quả cho dịch vụ Web. Dịch vụ Web sẽ tạo ra kết quả cuối cùng và trả về kết quả cho ngƣời dùng ảọ Ngƣời dùng ảo đƣợc tạo ra bởi các công cụ đo, đƣợc phép tùy biến tạo ra số lƣợng ngƣời dùng ảo cũng nhƣ tạo sẵn các phép thử (test case). Công cụ đo này giúp tự động hóa việc đo đạc, tiết kiệm công sức bằng việc lƣu lại cấu hình các phép thử cho những lần sau, đồng thời cho kết quả chính xác, khách quan.

3.2 Xây dựng hệ thống đo đạc

3.2.1 Bài toán đo hiệu năng các trình xử lý BPEL

Dựa trên mô hình đo hiệu năng ở trên, chúng ta xác định các thành phần trong mô hình bao gồm:

 Các trình xử lý BPEL: Chúng ta sẽ đo đạc trên 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ạy độc lập mà nó liên kết với các mô đun SOA khác. Ngoài ra các trình xử lý BPEL này cũng chạy trên các thành phần khác nhƣ Web Server hay CSDL. Trong phạm vi luận văn này, ta sẽ cài đặt các trình xử lý theo mặc đị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ẽ đo hiệu năng của các sản phẩm nàỵ

 Các dịch vụ Web: Mỗi dịch vụ Web thể hiện đặc trƣng cho một trong các tác vụ của BPEL: If-Else, While, Invoke, Sequence, Flow. Việc đo từng tác vụ sẽ cho ta cái nhìn độc lập và khách quan về hiệu năng của trình xử lý BPEL khi thực hiện từng tác vụ đó. Từ kết quả đo cho từng tác vụ, ta có thể tính toán hiệu năng cho ứng dụng tổng hợp nhiều tác vụ khác nhaụ

 Công cụ đo: Ta sẽ sử dụng công cụ đo tự động Apache Jmeter[1] để tạo các kịch bản đo theo ý muốn.

Để triển khai một hệ thống đo đạc nhƣ mô hình trên, chúng ta phải xây dựng và cấu hình từng thành phần của nó. Sau đây, chúng ta sẽ lần lƣợt đi qua từng thành phần.

3.2.2 Cài đặt trình xử lý BPEL

Yêu cầu bài toán của chúng ta sẽ thực hiện đo trên 03 trình xử lý BPEL tiêu biểu hiện nay: Apache ODE đƣợc phát triển bởi tổ chức Apache Foundation, ActiveVOS của

Trình xử lý BPEL Web Service

Công cụ đo Kết quả

Yêu cầu Người dùng

công ty Active Endpoints Inc, và Oracle BPEL Process Manager 10G của công ty Oraclẹ Mỗi trình xử lý BPEL là một phần mềm có kiến trúc riêng nhƣng đều hỗ trợ chuẩn chung WS-BPEL 2.0. Chúng ta sẽ cài đặt các trình xử lý theo cấu hình mặc định của chúng:

Apache ODE: Phiên bản Apache ODE mới nhất đƣợc sử dụng trong luận văn này là phiên bản 1.3.5. Trình xử lý ODE này đƣợc gói trong 1 gói war – ODẸwar, đƣợc biên dịch để chạy trên nền máy chủ Apache Tomcat phiên bản 6.0 và Java 6. Để cài đặt Apache ODE, chúng ta chỉ cần sao chép file odẹwar này vào thƣ mục Webapps/ của Tomcat. Quá trình khởi động Tomcat sau đó sẽ tự động giải nén gói war này thành ứng dụng ODE và việc triển khai thành công. Sau khi triển khai ODE trên Tomcat, ngƣời dùng có thể truy cập trực tiếp ứng dụng ODE trên trình duyệt để thực hiện các thao tác giám sát và quản trị.

ActiveVOS: Chúng ta sử dụng phiên bản ActiveVOS phiên bản mới nhất 9.1 dành cho Window chạy trên nền tảng máy ảo Java 6. Chỉ cần chạy file ActiveVOS_Designer_windows_9.1.0.3.exe để tiến hành cài đặt cho ứng dụng thiết kế ActiveVOS Designer và trình xử lý ActiveVOS BPEL. Trình thiết kế ActiveVOS Designer chạy trên nền Eclipse còn trình xử lý ActiveVOS BPEL chạy trên nền Tomcat phiên bản 6.0. Trình xử lý ActiveVOS BPEL có thể chạy độc lập từ Tomcat hoặc chạy thông qua giao diện của trình thiết kế để thực hiện kiểm thử và gỡ lỗị

Oracle BPEL Process Manager:Oracle BPEL Process Manager là một thành phần của SOA Suite, nó không chạy độc lập mà chạy trên các thành phần của SOA Suitẹ Quá trình cài đặt mặc định của Oracle SOA Suite khá phức tạp bao gồm các thành phần: CSDL Oracle Database XE 11G, SOA Suite 11G, JDeveloper 11.1. Oracle BPEL Process Manager 11G chạy trên máy chủ ứng dụng Weblogic.

Bảng 3.1Danh sách các công cụ triển khai của các trình xử lý nhƣ sau:

Tên công cụ Trình thiết kế Trình xử lý Máy chủ ứng dụng

Cơ sở dữ liệu

Apache ODE Mô-đun gắn vào Eclipse Apache ODE v1.3.5 Apache Tomcat v6.0 Derby ActiveVOS ActiveVOS v9.1.0.3 ActiveVOS v9.1.0.3 Apache Tomcat v6.0 Derby Oracle BPEL Process Manager JDeveloper v11.1 Oracle BPEL Process Manager 11G Weblogic Oracle 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, Invokẹ Tác vụ Flow sẽ có 2 ví dụ ứng với 2 trƣờ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ểu này vì chúng đã bao gồ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ụ Whilẹ Việc đo đạc trực tiếp trên từng tác vụ riêng sẽ giúp đánh giá một cách chính xác hơn hiệu năng của trình xử lý BPEL khi thực hiện các tác vụ này so với việc đánh giá tổng hợp nhiều tác vụ trong cùng một dịch vụ Web. Mỗi ứng dụng sẽ đƣợc triển khai giống nhau hoàn toàn về nghiệp vụ trên từng trình xử lý BPEL, tuy nhiên các thành phần khác có thể thay đổi do thiết kế các đối tƣợng đƣợc hỗ trợ khác nhau bởi từng mô đun thiết kế riêng biệt (do đó mã nguồn có thể khác nhau đôi chút). Bảng 3.2 liệt kê các ứng dụng và mục đích sử dụng của chúng.

Bảng 3.2Danh sách các ứng dụng dịch vụ Web

TT Tên ứng dụng Tác vụ Mục đích

1 BPEL_IF If-else Mô phỏng tác vụ If-else. Nếu ngƣời dùng nhập vào tên John, hệ thống sẽ trả lời: Hello John, ngƣợc lại sẽ thông báo: You’re not John

2 BPEL_Flow Flow Mô phỏng tác vụ Flow gồm 2 luồng xử lý song song. Mỗi luồng sẽ đợi 1 giây rồi sau đó gán chuỗi hằng số cho 2 biến flow1, flow2. Kết quả thu đƣợc là tổng hợp kết quả từ 2 luồng xử lý đó và hiển thị ra chuỗi tổng hợp từ 2 biến flow1 và flow2

3 BPEL_FlowDep FlowDep Mô phỏng tác vụ Flow có liên kết (link). Nghiệp vụ tƣơng tự nhƣ tác vụ Flow, tuy nhiên giữa 2 luồng có sự ràng buộc đƣợc thể hiện qua liên kết,sau khi luồng 1 thực thi xong mới đến luồng 2. Chúng ta tạm gọi tác vụ này là FlowDep để phân biệt với tác vụ Flow.

4 BPEL_Sequence Sequence Mô phỏng tác vụ Sequence có nghiệp vụ tƣơng tự nhƣ FlowDep, chỉ có điểm khác biệt là không tạo luồng. Tác vụ Sequence đƣợc dùng để so sánh với FlowDep

5 BPEL_While While Mô phỏng tác vụ While. Tác vụ While thực hiện 5 lần việc hiển thị gắn thêm chuỗi ký tự vào chuỗi hiển thị.Kết quả trả về thu đƣợc gộp từ 5 tác vụ lặp trên

6 BPEL_Invoke Invoke Mô phỏng tác vụ Invoke gọi đến một dịch vụ Web khác. Hàm gọi truyền biến (ví dụ “Nam”,

hệ thống sẽ trả về chuỗi “Hello Nam”.

Để phát triển các ứng dụng dịch vụ Web, trƣớc hết ngƣời dùng cần phải tạo ra tiến trình (process). Tiến trình này sẽ bao gồm 2 tác vụ cơ bản là receive (dùng để nhận đầu vào từ ngƣời dùng) và reply (dùng để hiển thị kết quả). Tùy theo tác vụ cần mô tả (If-else, Invoke, Sequence, Flow, While) mà tiến trình sẽ đƣa tác vụ này vào (ví dụ nhƣ If-else trong hình dƣới). Giữa các tác vụ trên, chúng ta sẽ sử dụng các phép gán (thông qua tác vụ Assign) để gán và lƣu các biến trung gian. Các dịch vụ Web hoạt động trên cơ chế đồng bộ - “synchronyze”, nghĩa là một yêu cầu cần phải đƣợc trả lời trƣớc khi chuyển sang nghiệp vụ kế tiếp.

Dịch vụ Web BPEL_Invoke mô phỏng tác vụ Invoke sẽ gọi một dịch vụ Web ngoài “HelloWorld”đƣợc chạy và khai báo sẵn thông qua giao tiếp WSDL. Dịch vụ này nhận tên của ngƣời dùng (ví dụ “Nam”) và trả về lời chào “Hello Nam”. Dịch vụ Web ngoài “HelloWorld” sẽ đƣợc khai báo trong ứng dụng BPEL_Invoke với vai trò (role) là

partnerRole=”HelloWorld”.

Tất cả các tác vụ này đều đƣợc kéo thả từ các thanh điều khiển vào vùng thiết kế mà không cần phải viết mã nguồn. Việc chỉnh sửa mã nguồn chỉ cần thiết khi tiến trình có những nghiệp vụ logic phức tạp không thể thực hiện bởi trình thiết kế. Mọi thay đổi trên mã nguồn sẽ đƣợc cập nhật trên màn hình giao diện thiết kế nên ngƣời phát triển có thể dễ dàng kiểm soát. Hình 3.2 là giao diện thiết kế của dịch vụ Web mô phỏng tác vụ If-else phát triển bởi trình thiết kế Eclipse BPEL.

Một phần của tài liệu (LUẬN văn THẠC sĩ) so sánh hiệu năng của các trình xử lý BPEL (Trang 44 - 47)

Tải bản đầy đủ (PDF)

(64 trang)