.2Danh sách cácứng dụng dịch vụ Web

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 46 - 50)

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.

Các ứng dụng dịch vụ Web sau khi phát triển sẽ đƣợc đóng gói và triển khai (deploy) trên các trình xử lý BPEL. Việc triển khai có thể trực hiện trực tiếp thông qua trình thiết kế đƣợc tích hợp với trình xử lý BPEL hoặc gián tiếp bằng việc xuất ra file đóng gói và triển khai sử dụng giao diện quản trị. Kết quả thu đƣợc là các đặc tả WSDL theo định dạng file XML hiển thị trên trình duyệt.Sử dụng các đƣờng dẫn này, ngƣời dùng có thể gửi trực tiếp gửi thông điệp yêu cầu và nhận kết quả. Ví dụ một đƣờng dẫnđặc tảdịch vụ Web ngoài “If-else” chạy trên Apache ODE trong hình 3.3.

Hình 3.3File WSDL thể hiện giao tiếp với dịch vụ Web

3.2.4 Triển khai công cụ đo

Để thực hiện mô phỏng yêu cầu của ngƣời dùng, chúng ta sử dụng công cụ đo tự động Apache Jmeter[5]. Apache Jmeter cho phép giả lập số lƣợng ngƣời dùng với số lƣợng tùy ý, tạo các test case theo ý muốn và lƣu lại các kết quả đo (throughput, response time) với độ chính xác caọ Apache Jmeter là phần mềm mã nguồn mở, viết 100% bằng ngôn ngữ Java, đƣợc thiết kế để thực hiện các phép kiểm thử chức năng cũng nhƣ đo hiệu năng theo mô hình Client/Server. Jmeter có thể đƣợc sử dụng để kiểm thử của những tài nguyên tĩnh và động nhƣ các file, Servlet, Perl, các đối tƣợng Java, CSDL và truy vấn, máy chủ FTP…Nó cũng đƣợc dùng để mô phỏng tải lớn trên máy chủ, mạng hoặc các đối tƣợng để kiểm thử khả năng chịu đựng bền bỉ, hay phân tích hiệu năng khi thực hiện những tải khác nhaụ Jmeter cung cấp giao diện đồ họa để ngƣời dùng dễ dàng phân tích và so sánh hiệu năng khi thực hiện phép thử.

Jmeter cho phép kiểm thử trên nhiều loại ứng dụng thông qua việc hỗ trợ giao thức nhƣ: các ứng dụng Web qua giao thức http, https, giao thức SOAP, CSDL thông qua JDBC, LDAP, JMS, Web Servicẹ Jmeter cung cấp giao diện đồ họa thân thiện nên ngƣời dùng có thể dễ dàng tạo các kịch bản mà không mất nhiều thời gian tìm hiểụ Ngƣời dùng cũng có thể dễ dàng tùy biến, cấu hình để tạo nên các kịch bản kiểm thử

khác nhaụ Jmeter hỗ trợ đầy đủ nền tảng đa luồng, cho phép các phép lấy mẫu đồng thời thực hiện bởi nhiều luồng trên nhiều chức năng khác nhaụ Chính nhờ công nghệ này mà Jmeter có thể thực hiện đo trên số lƣợng không giới hạn ngƣời dùng cũng nhƣ ứng dụng. Ngoài ra Jmeter còn có khả năng thực hiện kiểm thử trên nhiều máy chủ, để mô phỏng việc sử dụng thật trong thực tế. Trong mô hình này, Jmeter đƣợc cài đặt trên nhiều máy trạm để thực hiện kiểm thử, một máy trạm sẽ thực hiện việc cấu hình thông số đo cũng nhƣ lấy kết quả về để tổng hợp và phân tích. Để việc mô phỏng ngƣời dùng thực đƣợc chính xác, Jmeter còn cung cấp đối tƣợng Timer để ngƣời đo có thể tùy biến “Think time” theo một cách ngẫu nhiên để mô phỏng thời gian “suy nghĩ” của ngƣời dùng thực.

Hình 3.4Kết quả đo bằng Jmeter

Jmeter cung cấp kết quả đo chính xác với nhiều thông số đo nhƣ: số mẫu đo, thời gian phản hồi (trung bình, nhỏ nhất, lớn nhất), throughput (số object xử lý trong 1s), tỉ lệ lỗị Đặc biệt, Jmeter hỗ trợ hiển thị kết quả ngay dƣới dạng biểu đồ giúp ngƣời dùng có thể sử dụng ngay kết quả để phân tích mà không cần qua bƣớc xử lý trung gian. Để xây dựng một test case cho dịch vụ Web, chúng ta cần thực hiện các bƣớc sau đây:

Bước 1: Thêm ngƣời dùng (virtual users):

Sử dụng đối tƣợng ThreadGroup để cấu hình bao nhiêu ngƣời dùng và số lƣợng là bao nhiêụ Chọn Test Plan, chuột phải và chọn menu Ađ, chọn Threads(users) =>Ađ ThreadGroup. Tiếp theo ta cần cấu hình số lƣợng ngƣời dùng, giả sử ta cần giả lập 5 ngƣời dùng, mỗi ngƣời gửi 4 yêu cầu, 5 ngƣời dùng sẽ khởi động hệ thống và gửi yêu cầu tại cùng một thời điểm, ta có cấu hình nhƣ hình dƣới đây:

Hình 3.5 Cấu hình ngƣời dùng sử dụng Thread Group

Bước 2: Tạo đối tƣợng gửi yêu cầu WebService: sử dụng menu Ađ --> Sampler -- >WebService(SOAP) Request để thêm một đối tƣợng WebService(SOAP) Request. Sau đó, sửa đổi các trƣờng textbox nhƣ sau:

 Trƣờng Name: Ví dụ đặt là “ODE While” để chỉ gọi Webservice của ứng dụng dịch vụ Web mô phỏng tác vụ While

 WSDL URL: Đƣa đƣờng dẫn WSDL của ứng dụng Dịch vụ Web và click “Load WSDL”, ví dụ: http://localhost:8080/ode/processes/WhileSamplẻwsdl. Sau khi click, Web Methods của WebService sẽ xuất hiện. Tiếp tục click nút Configure, các thông tin của Dịch vụ Web sẽ đƣợc điền vào các ô textbox.

 WebService Message: Đƣa message gửi cho WebServicẹ Ngoài ra có thể chỉ đến đƣờng dẫn file XML chứa sẵn message cần gửị

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 46 - 50)

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

(64 trang)