Kỹ thuật điều khiển & Điện tử<br />
<br />
THỬ NGHIỆM VÀ SO SÁNH CÁC KỸ THUẬT PALLADIO<br />
COMPONENT MODEL VÀ QUEUEING PETRI NETS<br />
TRONG ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM<br />
Huỳnh Quyết Thắng1, Vũ Văn Đốc1,2*, Nguyễn Trọng Bách1<br />
Tóm tắt: Kỹ thuật đánh giá hiệu năng phần mềm là một trong những giải pháp tốt<br />
cho việc xây dựng các hệ thống phần mềm đảm bảo mục tiêu hiệu năng đề ra. Chúng<br />
tôi đã giới thiệu ngắn gọn các kỹ thuật phân tích hiệu năng phần mềm, đi sâu vào tìm<br />
hiểu hai kỹ thuật PCM với công cụ minh hoạ Palladio Bench và QPN với công cụ<br />
minh hoạ QPME. Chúng tôi đã thử nghiệm, so sánh hai kỹ thuật này trong xây dựng<br />
mô hình đánh giá hiệu năng của ví dụ điển hình - hệ thống phần mềm Media Store và<br />
phân tích đánh giá các kết quả thực nghiệm. Trên cơ sở đó, chúng tôi đưa ra một số<br />
so sánh, đánh giá về ưu và nhược điểm của từng phương pháp.<br />
Từ khóa: Kỹ thuật hiệu năng phần mềm; Palladio Component Model; Queueing Petri Nets.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
Trong vòng đời phát triển phần mềm, kỹ thuật hiệu năng phần mềm SPE - Software<br />
Performance Engineering là một cách tiếp cận định lượng đánh giá hiệu năng trong xây<br />
dựng hệ thống phần mềm đáp ứng đúng thời hạn và ngân sách [1]. SPE sử dụng các mô<br />
hình dự báo để đánh giá chi phí cân nhắc cho các chức năng, chi phí trong xây dựng và<br />
bảo trì phần mềm. Các mô hình này hỗ trợ kiểm soát tài nguyên yêu cầu bằng cách lựa<br />
chọn kiến trúc và thiết kế giải pháp thay thế với đặc tính hiệu năng chấp nhận được [1, 3].<br />
Sử dụng SPE có thể giảm chi phí dự án, loại trừ những sự cố do các vấn đề hiệu năng,<br />
đồng thời cải thiện mức độ dịch vụ cho khách hàng, giảm chi phí kinh doanh, giúp sử dụng<br />
tài nguyên máy tính hiệu quả hơn và nâng cao vị thế cạnh tranh của các tổ chức [1]. Một<br />
số kỹ thuật mô hình hoá hiệu năng thường được sử dụng trong SPE có thể kể tới như<br />
Queueing Network Models (QNM), Layered Queueing Networks (LQN), Palladio<br />
Component Model (PCM), Queueing Petri Nets (QPN) [2].<br />
Kỹ thuật QNM được xây dựng bằng cách kết nối hàng đợi [2]. Các mô hình mạng xếp<br />
hàng biểu thị một hệ thống như một mạng các trạm dịch vụ với hàng đợi phục vụ các yêu<br />
cầu. Các yếu tố thường được xem xét đến trong đánh giá QNM là độ dài hàng đợi, thời<br />
gian đáp ứng, thông lượng và mức sử dụng (của các trạm dịch vụ). Phương pháp phân tích<br />
giá trị trung bình (mean-value analysis) thường được áp dụng để phân tích QNM. Lý<br />
thuyết về QNM được xây dựng từ rất sớm (1980), là tiền đề để phát triển các kỹ thuật khác<br />
về sau [1, 2].<br />
Kỹ thuật LQN được phát triển và mở rộng từ kỹ thuật QNM. LQN bổ sung thêm các<br />
dịch vụ phân tán, thường được phân chia thành các tầng, có thể đóng vai trò là máy khách<br />
và máy chủ cho các dịch vụ khác nhau. Kỹ thuật LQN mô hình hóa một hệ thống theo yêu<br />
cầu dịch vụ giữa các tác nhân hoặc quy trình và việc xếp hàng các thông điệp giữa các tác<br />
nhân [1, 2]. Các tác nhân được mô hình hóa như các tác vụ nhận các thông điệp yêu cầu<br />
dịch vụ. LQN cung cấp một mô tả về các tác vụ được thực hiện bởi một tác nhân và mô<br />
hình hóa dịch vụ này và nhu cầu tài nguyên của nó. Kỹ thuật LQN về mặt khái niệm dễ<br />
hiểu hơn đối với các nhà phát triển phần mềm so với nhiều kỹ thuật mô hình hoá hiệu năng<br />
khác [1, 2].<br />
Kỹ thuật dự đoán hiệu năng cho hệ thống phần mềm dựa trên thành phần PCM - Palladio<br />
Component Model được đưa ra bởi Steffen Becker, Heiko Koziolek, vào khoảng năm 2008<br />
[3]. Một số dự án hệ thống phần mềm sử dụng kỹ thuật PCM để đánh giá hiệu năng như<br />
ABB RDS [11], IBM System z Storage Subsystem [12]. Trong [11] sử dụng PCM để tối ưu<br />
<br />
<br />
54 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
hóa kiến trúc của hệ thống chẩn đoán từ xa nhằm đạt được mục tiêu cải thiện hiệu năng hệ<br />
thống gấp 10 lần của ABB. Trong [12], PCM được dùng để mô hình, dự đoán và so sánh các<br />
kiến trúc của hệ thống lưu trữ trên các máy tính dòng z của IBM [12].<br />
Kỹ thuật QPN được giới thiệu bởi Samuel Kounev, Simon Spinner, Phillip Meier [8] là<br />
sự mở rộng từ nhiều mạng Petri nets khác. Một số ứng dụng điển hình khai thác mô hình<br />
QPN để phân tích hiệu năng của các hệ thống máy tính như SPECjAppServer2004 cho hệ<br />
thống phân tán dựa thành phần, SPECjms2007 cho hệ thống phân tán dựa sự kiện [8].<br />
Trong [9], Rak sử dụng kỹ thuật QPN để phân tích hiệu năng của các hệ thống web phân<br />
tán. Trong [10], Issam Al-Azzoni đã sử dụng phương chuyển đổi mô hình từ QNM sang<br />
QPN, sau đó sử dụng các công cụ mô phỏng QPN Editor [6, 14] và Simulator for QPNs<br />
(SimQPN) [6, 14] để mô hình hoá hiệu năng hệ thống. Đây là hai thành phần chính của<br />
công cụ QPME, phiên bản hiện thời là phiên bản QPME 2.1 [6], được Trường Đại học<br />
Würzburg hỗ trợ kỹ thuật và tập trung phát triển [14].<br />
Cả hai kỹ thuật PCM và QPN đều đã được áp dụng để xây dựng các mô hình đánh giá<br />
hiệu năng hệ thống phần mềm. Trong [7], Philipp Meier và các cộng sự đã đưa ra phương<br />
pháp tự động chuyển đổi từ mô hình PCM sang mô hình QPN. Một số ràng buộc được đưa<br />
ra trong phép chuyển đổi này. Trong [2], tác giả Gooijer tổng hợp so sánh đánh giá về mô<br />
hình phần mềm, mô hình hiệu năng sử dụng, giấy phép của một số công cụ điển hình.<br />
Bảng 1. Một số so sánh các công cụ phân tích hiệu năng điển hình [2].<br />
Mô hình Mô hình Phân tích /<br />
STT Tên công cụ Giấy phép<br />
phần mềm hiệu năng Mô phỏng<br />
1 JMT GNU GPL - QNM Cả hai<br />
Evaluation<br />
2 LQNS (text) LQN Cả hai<br />
only<br />
Petri Nets,<br />
SAN, Buck- Xích<br />
Thương<br />
3 Mobius ets & Balls, Markov, đại Cả hai<br />
mại<br />
PEPA-nets số quá trình<br />
ngẫu nhiên<br />
Thương<br />
4 SPE-ED MSC, Đồ thị QNM Cả hai<br />
mại<br />
Palladio- PCM hoặc<br />
5 Miễn phí PCM Cả hai<br />
Bench LQN<br />
Phần mềm<br />
6 QPME - QPN Mô phỏng<br />
nguồn mở<br />
Trên cơ sở các phân tích ở trên và bảng 1, trong nghiên cứu này, chúng tôi sẽ tập trung<br />
so sánh thử nghiệm hai kỹ thuật PCM và QPN và các công cụ tương ứng Palladio-Bench<br />
[13] và QPME [14]. Hệ thống dịch vụ web tương tác với người dùng có nhu cầu tải nhạc<br />
Media Store, xây dựng như một ví dụ mẫu điển hình, được sử dụng để thử nghiệm các<br />
phương pháp đánh giá hiệu năng [3, 7, 9, 15].<br />
Chúng tôi sẽ thử nghiệm hai kỹ thuật PCM và QPN một cách độc lập để xây dựng mô<br />
hình đánh giá hiệu năng cho hệ thống Media Store, từ đó sẽ thử nghiệm, so sánh và có<br />
những đánh giá khách quan hơn.<br />
Phần còn lại của bài báo được tổ chức như sau: Phần 2 trình bày về hai kỹ thuật PCM<br />
và QPN. Phần 3 giới thiệu hệ thống Media Store. Phần 4 và 5 lần lượt trình bày cách sử<br />
dụng kỹ thuật PCM và QPN tương ứng để xây dựng mô hình đánh giá hiệu năng cho hệ<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 55<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
thống trên, sau đó thử nghiệm và đánh giá kết quả. Cuối cùng, phần 6 kết luận về bài báo<br />
này và một số phát triển các công việc trong tương lai.<br />
2. KỸ THUẬT PCM VÀ QPN<br />
2.1. Kỹ thuật PCM<br />
<br />
<br />
<br />
<br />
Hình 1. Ví dụ về PCM [12].<br />
Hình 1 minh họa các thành phần trong kỹ thuật PCM [2,3]. Kỹ thuật này dựa trên các<br />
vai trong triết lý công nghệ phần mềm hướng thành phần gồm nhà phát triển thành phần,<br />
kiến trúc sư, nhóm triển khai và chuyên gia miền. Trong PCM, thông tin về các thành phần<br />
có sẵn và các giao diện của chúng được lưu trữ trong kho thành phần [4, 5]. Kho thành<br />
phần này được các nhà phát triển thành phần tạo lập và duy trì. Khi nhà phát triển tạo ra<br />
một thành phần, họ cũng đồng thời xác định các nhu cầu tài nguyên của nó trong các đặc<br />
tả dịch vụ - Service Effect Specification (SEFF). Các kiến trúc sư xây dựng mô hình hệ<br />
thống dựa trên các thành phần có sẵn trong kho thành phần. Họ lựa chọn những thành<br />
phần cần dùng và kết nối các giao diện yêu cầu phù hợp với các giao diện cung cấp. Hệ<br />
thống nói chung gồm ít nhất một giao diện cung cấp cho hệ thống để tạo các dịch vụ sẵn<br />
có, và có thể có thêm các Interface yêu cầu hệ thống để kết nối với các hệ thống khác [4, 5].<br />
<br />
<br />
56 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Nhóm triển khai hệ thống tạo biểu đồ môi trường tài nguyên xác định tài nguyên phần<br />
cứng có sẵn như HDD, CPU trên các server, đồng thời tạo biểu đồ cấp phát để ánh xạ các<br />
thành phần hệ thống vào các thùng chứa trong môi trường tài nguyên [4, 5]. Cuối cùng,<br />
chuyên gia miền xác định kịch bản sử dụng cho hệ thống, số lượng người dùng hay tốc độ<br />
các yêu cầu trong mô hình sử dụng. Các mô hình sử dụng có thể được sửa đổi để kiểm tra<br />
hành vi của hệ thống theo các tải khác nhau [4, 5]. Một ví dụ minh hoạ cho PCM trong<br />
phát triển phần mềm hướng thành phần được mô tả trong hình 2 [12]. Các nhà phát triển<br />
thành phần chịu trách nhiệm về đặc điểm kỹ thuật của các thành phần, giao diện và loại dữ<br />
liệu. Các thành phần phần mềm là các thực thể cốt lõi của PCM. Để dự đoán hiệu năng,<br />
các nhà phát triển thành phần cần chỉ định các yêu cầu của hành động nội bộ đối với tài<br />
nguyên, như CPU hoặc HDD (xem hình 2). Các kiến trúc sư phần mềm kết hợp các thông<br />
số kỹ thuật thành phần vào một mô hình kiến trúc, trong đó có các đầu nối lắp ráp, kết nối<br />
các giao diện cần thiết của các thành phần với các giao diện được cung cấp tương thích<br />
của các thành phần khác. Các nhà triển khai hệ thống mô hình hóa tài nguyên (ví dụ: CPU,<br />
liên kết mạng, …) và phân bổ các thành phần trong mô hình kiến trúc cho các tài nguyên.<br />
Tài nguyên có các thuộc tính khác nhau, chẳng hạn như tốc độ xử lý hoặc chính sách lập<br />
lịch. Cuối cùng, các chuyên gia miền xác định mô hình sử dụng cấp hệ thống theo các giá<br />
trị tham số cuộc gọi ngẫu nhiên và các giá trị tham số đầu vào cho mỗi lần gọi, sau đó, có<br />
thể được tự động truyền qua toàn bộ mô hình và xác định các tham số phiên người dùng<br />
không liên tục.<br />
2.2. Kỹ thuật QPN<br />
Queueing Petri Nets (QPN) là sự kết hợp từ một số mở rộng khác nhau của ordinary<br />
Petri Nets (PN) gồm Colored Petri Nets (CPN) và Generalized Stochastic Petri Nets<br />
(GSPN), đồng thời bổ sung thêm một vài yếu tố khác [6].<br />
Mỗi PN là một đồ thị hai phía, có hướng, bao gồm một tập các place và một tập các<br />
transition. Mỗi cung của đồ thị chỉ kết nối một place và một transition. Mỗi cung được gán<br />
một số nguyên dương gọi là trọng số của cung. Mỗi place chứa một lượng token nhất định.<br />
Khi mọi input place của transition t chứa số token không nhỏ hơn trọng số của cung nối nó<br />
với transition t thì transition này ở trạng thái sẵn sàng kích hoạt và được gọi là enabled<br />
transition. Một enabled transition có thể kích hoạt khi đó nó hủy các token có trong các<br />
input place của nó và tạo ra các token mới trong output place của nó. Số lượng token được<br />
hủy và tạo được xác định bởi trọng số của các cung kết nối.<br />
Nếu PN chỉ có một loại token duy nhất thì CPN đưa vào yếu tố màu để phân loại token<br />
[6]. CPN cho phép một hàm màu ánh xạ từ một tập các color tới một place, xác định các<br />
loại token có thể có trong place đó. Trong CPN, một enabled transition có thể có nhiều khả<br />
năng để kích hoạt, mỗi khả năng như thế được gọi là một mode. Các mode này có trọng số<br />
kích hoạt là tỷ lệ mà mode được chọn khi nhiều mode sẵn sàng kích hoạt.<br />
Khác với PN, GSPN phân transition thành hai loại: timed transtion và immediate<br />
transition. Khi ở trạng thái enabled, một immediate transition kích hoạt trong thời gian 0.<br />
Nếu có nhiều immediate transition ở trạng thái enabled tại cùng một thời điểm thì việc lựa<br />
chọn kích hoạt sẽ phụ thuộc vào trọng số kích hoạt (xác suất) gắn cho các transition đó.<br />
Immediate transition được ưu tiên kích hoạt trước so với timed transition. Một timed<br />
transition kích hoạt sau một khoảng thời gian bằng phân phối mũ của độ trễ kích hoạt gắn<br />
với transition đó [6]. Kết hợp CPN và GSPN hình thành CGSPN.<br />
QPN thêm yếu tố hàng đợi vào các place trong CGSPN tạo ra queueing place. Mỗi<br />
queueing place bao gồm hai thành phần: thành phần queue cho phép các token được đặt<br />
trong hàng đợi để chờ thực hiện dịch vụ và thành phần depository lưu giữ các token đã<br />
hoàn thành dịch vụ của chúng ở queue. Ngoài queueing place, QPN còn có ordinary place<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 57<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
(place giống như place trong một PN) và subnet place (place cho phép QPN phân cấp, tức<br />
là một subnet place có thể chứa một QPN khác) [6, 8].<br />
<br />
<br />
<br />
<br />
Hình 2. Mô hình tổng quát QPN [7].<br />
Sau khi được kích hoạt bởi một input transition của một queueing place nào đó, các<br />
token sẽ được thêm vào thành phần queue theo các chiến lược điều phối hàng đợi. Các<br />
token trong queue không có sẵn cho các output transition của queueing place. Sau khi<br />
hoàn thành dịch vụ, một token ngay lập tức được chuyển sang cho depository. Các token<br />
sẵn có cho các output transition của queueing place. Queueing place loại này được gọi là<br />
timed queueing place. Ngoài ra, trong QPN còn có immediate queueing place cho phép mô<br />
tả việc điều phối thuần túy, các token tại đây được xem như có thể phục vụ ngay lập tức.<br />
Điều phối cho những place này có độ ưu tiên cao hơn khi điều phối timed queueing place<br />
[6, 8]. Định nghĩa tổng quát cho một QPN được trình bày chi tiết trong [8].<br />
3. MÔ TẢ HỆ THỐNG MEDIA STORE<br />
Media Store là một hệ thống dịch vụ web tương tác với người dùng có nhu cầu tải nhạc<br />
[15]. Kiến trúc của hệ thống Media Store được thể hiện trong hình 4. Đây là ví dụ điển<br />
hình, được sử dụng để đánh giá các công cụ hiệu năng [3, 7, 9].<br />
<br />
<br />
<br />
<br />
Hình 3. Kiến trúc hệ thống Media Store [15].<br />
<br />
<br />
58 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
<br />
<br />
Hình 4. Hoạt động download trên hệ thống Media Store [15].<br />
<br />
<br />
<br />
<br />
Hình 5. Hoạt động upload trên hệ thống Media Store [15].<br />
Hệ thống được lắp ghép từ các thành phần độc lập, gồm một giao diện người dùng<br />
(thành phần WebGUI), một bộ phận xử lý logic nghiệp vụ (trong các thành phần<br />
MediaStore và Digital Watermarking) được cài đặt trên Application Server và một cơ sở<br />
dữ liệu (thành phần AudioDB) được cài đặt trên DB Server. Hoạt động của hệ thống<br />
Media Store được chỉ ra trong hình 3 và 4. Người dùng tương tác với hệ thống thông qua<br />
trình duyệt web, có thể download nhiều file nhạc được lưu trữ trong cơ sở dữ liệu hoặc<br />
upload một file nhạc mới vào cơ sở dữ liệu.<br />
Thông qua trình duyệt web, người dùng nếu muốn download sẽ gửi tới thành phần<br />
WebGUI một yêu cầu download với kết quả trả về là một tập hợp các file nhạc trong cơ sở<br />
dữ liệu. Hệ thống phân tích yêu cầu rồi chuyển tiếp yêu cầu đó đến thành phần<br />
MediaStore. Sau đó, hệ thống tìm kiếm trong thành phần AudioDB để lấy các file yêu cầu.<br />
Các file này sau đó được chuyển giao lại cho thành phần MediaStore. Thành phần này sẽ<br />
gọi tới thành phần DigitalWatermarking để thực hiện việc đóng dấu các file nhạc (thêm ID<br />
người dùng hoặc cấu hình để thêm lời bài hát vào các file). Thành phần<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 59<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
DigitalWatermarking chỉ xử lý một file nên thành phần MediaStore gọi tới nó cho mỗi file<br />
được yêu cầu bởi người dùng. Sau khi hoàn thành quá trình đóng dấu, hệ thống sẽ gửi lại<br />
tất cả các tập tin cho người dùng.<br />
Trong trường hợp người dùng muốn upload, một file nhạc sẽ được gửi tới thành phần<br />
WebGUI, hệ thống phân tích yêu cầu upload rồi chuyển tiếp yêu cầu qua thành phần<br />
MediaStore, trước khi kết nối với máy chủ cơ sở dữ liệu để ghi file vào trong cơ sở dữ<br />
liệu. Sau khi quá trình ghi file thành công, hệ thống sẽ phản hồi cho người dùng biết quá<br />
trình upload đã hoàn thành.<br />
4. SỬ DỤNG KỸ THUẬT PCM XÂY DỰNG MÔ HÌNH ĐÁNH GIÁ HIỆU NĂNG<br />
HỆ THỐNG MEDIA STORE<br />
4.1. Xây dựng mô hình đánh giá hiệu năng<br />
Như đã nói ở Mục 2.1, để xây dựng mô hình PCM cho một hệ thống cần xây dựng 4 vai:<br />
nhà phát triển thành phần, kiến trúc sư, nhóm triển khai và chuyên gia miền cho mô hình.<br />
<br />
<br />
<br />
<br />
Hình 6. Nhà phát triển thành phần trong mô hình PCM cho Media Store.<br />
Vai nhà phát triển thành phần được xây dựng gồm các thành phần tương tự như các<br />
thành phần của hệ thống Media Store gồm WebGUI, MediaStore, Digital Watermarking<br />
và AudioDB và 4 giao diện gồm IHTTP, IMediaStore, ISound và IAuidoDB (hình 6).<br />
Thành phần WebGUI cung cấp giao diện IHTTP đồng thời yêu cầu giao diện IMediaStore.<br />
Thành phần MediaStore cung cấp giao diện IMediaStore đồng thời yêu cầu giao diện<br />
ISound được cung cấp bởi thành phần DigitalWatermarking và giao diện IAudioDB được<br />
cung cấp bởi thành phần AudioDB. Các hoạt động của hệ thống MediaStore được làm rõ<br />
hơn trong các SEFF ở từng thành phần. Để hoàn thành việc xây dựng vai kiến trúc sư, một<br />
nguồn cung cấp các yêu cầu của người dùng được tạo thêm và kết nối với khối WebGUI<br />
của hệ thống (hình 7).<br />
Với vai Nhóm triển khai, chúng tôi tạo ra 2 thùng chứa tài nguyên biểu thị cho server<br />
ứng dụng và server cơ sở dữ liệu. Dựa trên kiến trúc của Media Store, chúng tôi đặt các<br />
khối cấp phát tương ứng với các thành phần trong nhà phát triển thành phần và các khối<br />
lắp ghép trong kiến trúc sư vào các thùng tài nguyên thích hợp (hình 8). Dựa trên nguồn<br />
yêu cầu của người dùng được tạo ra từ vai Kiến trúc sư, kịch bản sử dụng hệ thống về số<br />
lượng yêu cầu download, upload, số lượng file cần download hay kích thước file cần<br />
upload được đưa ra để làm rõ vai Chuyên gia miền.<br />
<br />
<br />
<br />
60 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
<br />
<br />
Hình 7. Kiến trúc sư trong mô hình PCM cho Media Store.<br />
4.2. Công cụ và môi trường thử nghiệm<br />
Chúng tôi sử dụng phần mềm Palladio Bench 4.1 (32bit) - phiên bản “04.10.2017” để<br />
xây dựng mô hình PCM và chạy thử nghiệm bằng Simu-bench tích hợp sẵn trong phần<br />
mềm [13].<br />
Hệ thống và cấu hình phần cứng bao gồm: Windows 10 Professional 64bit version<br />
1511, JDK 1.8.0_121 (32bit), CORE i9 9900K / 16G / NVIDIA GTX 1660Ti 6Gb<br />
GDDR6.<br />
4.3. Kịch bản thử nghiệm<br />
Chúng tôi xây dựng kịch bản thử nghiệm cho hệ thống Media Store trên cơ sở mô hình<br />
đã được trình bày trong mục 4.1. Với mong muốn đánh giá hiệu năng phần mềm trong điều<br />
kiện cơ sở vật chất giới hạn, chúng tôi xây dựng kịch bản một số thông số cố định sau:<br />
<br />
<br />
<br />
<br />
Hình 8. Nhóm triển khai trong mô hình PCM cho Media Store.<br />
(i) Trên cả server ứng dụng và server cơ sở dữ liệu: tài nguyên CPU được điều phối<br />
theo chiến lược Processor Sharing, tốc độ xử lý 1000 Work Unit/s (WU/s), tài<br />
nguyên HDD được điều phối theo chiến lược First Come First Served, tốc độ xử lý<br />
25 MB/s<br />
(ii) Liên kết giữa server ứng dụng và server cơ sở dữ liệu có đỗ trễ 0.5ms, băng thông<br />
LAN 1 Gbit/s.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 61<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
(iii) Server ứng dụng sử dụng 10 WU để phân tích yêu cầu người dùng và 5 WU để tạo<br />
phản hồi hệ thống<br />
(iv) Server cơ sở dữ liệu sử dụng 3 WU để xác định tên file trong cơ sở dữ liệu và một<br />
lượng HDD đúng bằng kích thước file để lấy file đó ra từ cơ sở dữ liệu<br />
(v) Server cơ sở dữ liệu sử dụng 10 WU để ghi tên file được upload vào trong cơ sở dữ liệu<br />
và một lượng HDD đúng bằng kích thước file để ghi file đó vào trong cơ sở dữ liệu<br />
(vi) Server ứng dụng sử dụng 25 WU mặc định + 15 WU cho mỗi MB để watermark một file<br />
(vii) Kích thước file trong CSDL: [1-10] MB (xác suất lấy ra 1 file có kích thước 1-10MB<br />
từ CSDL bằng nhau và bằng 0.1)<br />
(viii) Tải công việc đóng (Closed Workload) với 1000 người dùng và thời gian nghĩ là 10<br />
đơn vị thời gian mô phỏng.<br />
Chúng tôi chú trọng thay đổi yêu cầu của người dùng như kích thước file cần upload<br />
hay số lượng file cần download trong trường hợp hệ thống nhận được yêu cầu upload hoặc<br />
download. Bảng 2 mô tả chi tiết sự thay đổi này.<br />
Bảng 2. Các thông số thay đổi trong kịch bản thử nghiệm.<br />
<br />
Kịch bản – Số liệu Upload (30%) Download (70%)<br />
thử nghiệm Kích thước file upload Tổng số file cần download<br />
KB1 5 MB 1 file<br />
KB2 5 MB 5 files<br />
KB3 5 MB [1-10] files<br />
KB4 [1-5] MB [1-10] files<br />
KB5 [1-10] MB [1-10] files<br />
Trên công cụ thử nghiệm Palladio Bench, chúng tôi thiết lập thời gian mô phỏng cho<br />
mỗi kịch bản là 1E7 đơn vị thời gian mô phỏng, đồng thời xác lập Batch Mean là phương<br />
pháp phân tích kết quả đầu ra với kích thước batch bằng 200 và số lượng batch tối thiểu<br />
bằng 60 [11].<br />
4.4. Kết quả thử nghiệm<br />
Bảng 3. Kết quả thực nghiệm đối với mô hình PCM.<br />
<br />
Thời gian đáp ứng (STU) KB1 KB2 KB3 KB4 KB5<br />
<br />
Lời gọi yêu cầu download qua HTTP 1006.4 1012.4 1011.2 1008.0 1012.7<br />
<br />
Lời gọi yêu cầu upload qua HTTP 1005.6 991.4 993.1 987.8 992.8<br />
<br />
Tổng thời gian xử lý qua HTTP<br />
1006.2 1006.1 1005.8 1001.9 1006.7<br />
Lời gọi tới AudioDB để thêm file vào<br />
1004.6 990.4 992.1 986.8 991.8<br />
CSDL<br />
Lời gọi tới AudioDB để truy vấn<br />
1005.3 1010.9 1009.6 1006.5 1011.1<br />
CSDL<br />
Tổng thời gian xử lý tại AudioDB 1005.1 1004.8 1004.4 1000.6 1005.3<br />
Lời gọi tới MediaStore để yêu cầu<br />
1005.4 1011.3 1010.2 1007.0 1011.7<br />
download<br />
<br />
<br />
62 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Lời gọi tới MediaStore để yêu cầu<br />
1004.6 990.4 992.1 986.0 991.8<br />
upload<br />
Tổng thời gian xử lý tại MediaStore 1005.2 1005.0 1004.8 1000.7 1005.7<br />
<br />
Lời gọi tới DigitalWatermarking để<br />
110.0 114.0 126.0 126.0 128.0<br />
đóng dấu file<br />
<br />
Theo kịch bản thử nghiệm, yêu cầu của người dùng Upload 30% và Download 70%<br />
nên chúng tôi bổ sung thêm các tham số: Tổng thời gian xử lý qua HTTP, Tổng thời gian<br />
xử lý tại AudioDB, Tổng thời gian xử lý tại MediaStore được xác định theo tỉ lệ 30%<br />
upload và 70% download như trên.<br />
Các kết quả thực nghiệm ở bảng 3 cho thấy mô hình PCM cho hệ thống MediaStore đã<br />
được xây dựng thành công. Thời gian đáp ứng (tổng thời gian xử lý) cho 5 kịch bản đã thể<br />
hiện chính xác sự thay đổi thông số trong các kịch bản đó, đối chiếu với các chức năng của<br />
hệ thống thể hiện trong hình 6, 7 và 8.<br />
5. SỬ DỤNG KỸ THUẬT QPN XÂY DỰNG MÔ HÌNH ĐÁNH GIÁ<br />
HIỆU NĂNG HỆ THỐNG MEDIA STORE<br />
5.1. Xây dựng mô hình đánh giá hiệu năng<br />
Với kỹ thuật QPN, chúng tôi tập trung mô tả các hoạt động của hệ thống Media Store<br />
qua các ordinary place, queueing place và immediate transition. Mô hình QPN cho hệ<br />
thống Media Store được đưa ra trong hình 9.<br />
Trong mô hình này, chúng tôi sử dụng 16 queueing place, 6 ordinary place và 30<br />
immediate transition.<br />
Các queueing place gồm (16):<br />
- Client: biểu thị hàng đợi yêu cầu của người dùng<br />
- AppServer: biểu thị hàng đợi sử dụng tài nguyên ở Application Server<br />
- DBServer: biểu thị hàng đợi sử dụng tài nguyên ở DB Server<br />
- LAN: biểu thị hàng đợi kết nối mạng giữa Application Server và DB Server<br />
- WebGUI, WebGUI-APR, WebGUI-ACR: biểu thị hàng đợi của các lời gọi ở thành<br />
phần WebGUI (APR: After-Parse Request, ACR: After-Create Response), cùng sử<br />
dụng WebGUIQueue<br />
- MediaStore, MediaStoreLoop: biểu thị hàng đợi của các lời gọi ở thành phần<br />
MediaStore, cùng sử dụng MediaStoreQueue<br />
- DW-Loop, DW-AWM-Loop: biểu thị hàng đợi của các lời gọi ở thành phần Digital<br />
Watermarking (AWM: After-WaterMarking), cùng sử dụng<br />
DigitalWatermarkingQueue<br />
- AudioDB, AudioDB-ALFN, AudioDB-AWFN, AudioDB-ALF, AudioDB-AWF:<br />
biểu thị hàng đợi của các lời gọi ở thành phần AudioDB (ALFN: After-Load<br />
FileName, AWFN: After-Write FileName, ALF: After-Load File, AWF: After-Write<br />
File), cùng sử dụng AudioDBQueue.<br />
Các ordinary place gồm (6):<br />
- ASStore, LANStore, DBStore: biểu thị lượng thời gian sử dụng tài nguyên ở<br />
Appliaction Server, LAN, DB Server<br />
- Lock, LoopPool, LoopDepository: dùng để quản lý vòng lặp đóng dấu file<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 63<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
<br />
<br />
<br />
Hình 9. Mô hình QPN cho Media Store.<br />
Phần lớn các immediate transition biểu thị chuyển tiếp giữa các place dựa trên biểu đồ<br />
trình tự của hệ thống Media Store (hình 4 và 5). Một số transition dùng để thực hiện những<br />
nhiệm vụ chuyên biệt hơn:<br />
- Các immediate transition decAS, decLAN, decDB biểu diễn sự tốn thời gian để sử<br />
dụng tài nguyên ở Application Server, LAN và DB Server.<br />
- Các immediate transition enterAppServer và enterDBServer biểu diễn sự đi vào<br />
Application Server của lời gọi từ DB Server và sự đi vào DB Server của lời gọi từ<br />
Application Server<br />
- Các immediate transition enterLoop, checkLoop, exitLoop biểu diễn các chuyển tiếp<br />
đối với vòng lặp đóng dấu file.<br />
Số lượng mode trong các immediate transition và số lượng color trong các place kể trên<br />
tùy thuộc vào từng kịch bản sử dụng.<br />
5.2. Công cụ và môi trường thử nghiệm<br />
Chúng tôi sử dụng phần mềm QPME 2.1 (32bit) để xây dựng mô hình QPN và chạy<br />
thử nghiệm bằng SimQPN đã có trong phần mềm này [14]. Hệ thống và cấu hình phần<br />
cứng bao gồm: Windows 10 Profes-sional 64bit version 1511, JDK 1.8.0_121 (32bit),<br />
CORE i9 9900K / 16G / NVIDIA GTX 1660Ti 6Gb GDDR6.<br />
5.3. Kịch bản thử nghiệm<br />
Chúng tôi xây dựng kịch bản thử nghiệm cho hệ thống Media Store trên cơ sở mô hình<br />
đã được trình bày trong mục 5.1. Kịch bản thử nghiệm cũng được xây dựng với phần<br />
thông số cố định và thông số thay đổi tương tự như đã mô tả trong mục 4.3. Trên công cụ<br />
thử nghiệm QPME, chúng tôi cũng thiết lập thời gian mô phỏng cho mỗi kịch bản là 1E7<br />
đơn vị thời gian mô phỏng, đồng thời xác lập Batch Mean là phương pháp phân tích kết<br />
quả đầu ra với kích thước batch bằng 200 và số lượng batch tối thiểu bằng 60 [11].<br />
5.4. Đánh giá kết quả<br />
Kết quả thu được đối với mô hình QPN cho hệ thống Media Store được đưa ra lần lượt<br />
trong bảng 4.<br />
<br />
<br />
<br />
64 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Bảng 4. Kết quả thực nghiệm đối với mô hình QPN.<br />
<br />
Thời gian token cư trú (STU) KB1 KB2 KB3 KB4 KB5<br />
<br />
WebGUIQueue 1071 1066 1076 1080 1073<br />
<br />
MediaStoreQueue 1051 1047 1053 1049 1052<br />
<br />
AudioDBQueue 1065 1018 1016 1024 1017<br />
<br />
DigitalWatermarkingQueue 1003 1003 1001 1002 1004<br />
Các kết quả thực nghiệm ở bảng 4 cho thấy thời gian đáp ứng cho các KB1-KB5 thể<br />
hiện chính xác sự thay đổi thông số trong các kịch bản thử nghiệm trên mô hình QPN<br />
trong hình 9. Kết quả thời gian token cư trú - thời gian thực hiện yêu cầu - ở mỗi kịch bản<br />
phụ thuộc vào số lượng mode trong các immediate transition và số lượng color trong các<br />
place trong các kịch bản sử dụng.<br />
6. ĐÁNH GIÁ KẾT LUẬN<br />
Trong bài báo này, chúng tôi đã giới thiệu ngắn gọn các kỹ thuật phân tích hiệu năng<br />
phần mềm, đi sâu vào tìm hiểu hai kỹ thuật PCM và QPN và các công cụ Palladio Bench,<br />
QPME. Chúng tôi đã thử nghiệm, so sánh hai kỹ thuật này trong xây dựng mô hình đánh<br />
giá hiệu năng của hệ thống phần mềm Media Store.<br />
Kỹ thuật PCM đánh giá 4 tham số thời gian đáp ứng: Tổng thời gian xử lý qua HTTP,<br />
Tổng thời gian xử lý tại Audio DB, Tổng thời gian xử lý tại Media Store và Lời gọi tới<br />
Digital Watermarking để đóng dấu file (trong bảng 3). Các tham số này có kết quả tương<br />
đương với thời gian lưu trú của token tại các queueing tương ứng như: Web GUI Queue,<br />
Audio DB Queue, Media Store Queue và Digital Watermarking Queue trong Bảng 4 của<br />
kỹ thuật QPN. Tuy nhiên, do cách thiết kế QPN, số lượng file tối đa của các kịch bản là 10<br />
files, do vậy, thời gian Token (color) lưu trú trong Digital Watermarking Queue (bảng 4)<br />
có thể khác thời gian Lời gọi tới Digital Watermarking để đóng dấu file (bảng 3) do sử<br />
dụng vòng lặp.<br />
Các ưu điểm của kỹ thuật PCM: Với lợi thế ngôn ngữ mô hình có nhiều nét giống với<br />
UML, PCM cho phép xây dựng mô hình nhanh, cho phép tái sử dụng các thành phần đã<br />
thiết kế và phân cấp mô hình, hỗ trợ xử lý các giá trị ngẫu nhiên, biểu diễn kiểu dữ liệu<br />
đầu vào, đầu ra. Kỹ thuật PCM thích hợp cho làm việc nhóm và phù hợp để đánh giá hệ<br />
thống dựa thành phần vừa và lớn.<br />
Các nhược điểm của kỹ thuật PCM: Nhiều ký pháp trong PCM dễ nhầm lẫn với nhau<br />
về ngữ nghĩa, đòi hỏi người thiết kế phải nắm bắt chính xác về kỹ thuật và mô hình. Hơn<br />
nữa, kích thước mô hình PCM xây dựng được thường lớn hơn khá nhiều so với mô hình<br />
UML tương ứng, chi phí cần đầu tư cho mô hình PCM có thể khá tốn kém nếu hệ thống<br />
lớn. Kỹ thuật PCM cũng chỉ hỗ trợ đánh giá hệ thống dựa thành phần. Việc đánh giá hiệu<br />
năng bị phụ thuộc vào phần mềm, hiện chỉ có Palladio Bench hỗ trợ đánh giá PCM, tuy<br />
nhiên phần mềm này hiện vấn tiếp tục được phát triển.<br />
Các ưu điểm của kỹ thuật QPN: Cơ sở lý thuyết trong phân tích, đánh giá hiệu năng<br />
được đảm bảo do được thừa kế từ 2 mô hình kinh điển Queueing Network và Petri Net.<br />
Kích thước mô hình QPN thường nhỏ hơn nhiều so với mô hình UML tương ứng và có thể<br />
giảm xuống nhờ phân cấp mô hình. Kỹ thuật QPN thích hợp cho làm việc cá nhân hoặc<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 65<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
nhóm ít người, phù hợp để đánh giá các module phần mềm, các hệ thống nhỏ và vừa. Kỹ<br />
thuật PQN cho phép đánh giá nhiều loại hệ thống: dựa thành phần, dựa sự kiện, …<br />
Các nhược điểm của kỹ thuật QPN: Khó xây dựng mô hình (ký pháp QPN khác biệt rõ<br />
rệt với UML, đòi hỏi phải có sự am hiểu kỹ càng). Kỹ thuật QPN xử lý ràng buộc ngẫu<br />
nhiên tương đối khó. Hiện tại, kỹ thuật QPN chưa hỗ trợ tái sử dụng mô hình đã thiết kế.<br />
Việc đánh giá hiệu năng cũng bị phụ thuộc vào phần mềm, hiện chỉ có QPME hỗ trợ đánh<br />
giá QPN, tuy nhiên, phần mềm này hiện vấn tiếp tục được phát triển.<br />
Như vậy, việc lựa chọn mô hình QPN để phân tích, đánh giá hiệu năng phần mềm là<br />
phù hợp. Có thể phát triển hướng nghiên cứu xây dựng phép biến đổi từ các biểu đồ UML<br />
sang mô hình QPN, từ đó có thể được sử dụng trực tiếp để đánh giá hiệu năng nhờ vào<br />
công cụ QPME. Hiện tại, chúng tôi đang tập trung vào xây dựng các quy tắc để chuyển đổi<br />
từ biểu đồ tuần tự (Sequence Diagram) sang QPN [16].<br />
Việc hoàn thiện các quy tắc, xây dựng biễu diễn hình thức các quy tắc và xây dựng<br />
công cụ tự động cho phép chuyển đổi từ biểu đồ tuần tự sang QPN là một hướng nghiên<br />
cứu khả quan mà chúng tôi tập trung trong thời gian tới.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Petriu D. C., Alhaj M., & Tawhid R. “Software Performance Modeling”, In:<br />
Bernardo M., Cortellessa V., Pierantonio A. (eds) Formal Methods for Model-Driven<br />
Engineering. SFM 2012. Lecture Notes in Computer Science, Vol 7320. Springer,<br />
Berlin, pp. 219–262, 2012.<br />
[2]. Thijmen de Gooijer, “Performance Modeling of ASP.Net Web Service, Applications:<br />
an industrial case study”, MA Thesis, Mälardalen University, School of Innovation,<br />
Design and Engineering, 2011.<br />
[3]. Becker S., Koziolek H., & Reussner R., “The Palladio component model for model-<br />
driven performance prediction”, Journal of Systems and Software, 82(1), pp. 3–22,<br />
2009, DOI:10.1016/j.jss.2008.03.066.<br />
[4]. Koziolek H., Happe J., Becker S., Reussner R., “Evaluating Performance of<br />
Software Architecture Models with the Palladio Component Model”, In Jörg Rech,<br />
Christian Bunse (eds) Model-Driven Software Development: Integrating Quality<br />
Assurance, Book News Inc. (Decemeber 2008), pp. 95-118, DOI: 10.4018/978-1-<br />
60566-006-6.ch005.<br />
[5]. Reussner, R., Becker, S., Koziolek, A. & Koziolek, H., “An Empirical Investigation of<br />
the Component-Based Performance Prediction Method Palladio” in Perspectives on<br />
the Future of Software Engineering, pages 191-207, Springer Berlin Heidelberg, 2013<br />
[6]. Kounev S., Spinner S., Meier P.: QPME 2.0-a tool for stochastic modeling and<br />
analysis using queueing petri nets. In: Sachs K., Petrov, I. Guerrero, P. (eds.) From<br />
Active Data Management to Event-Based Systems and more. LNCS, vol. 6462, pp.<br />
293–311. Springer, Heidelberg (2010). doi:10.1007/978-3-642-17226-7 18.<br />
[7]. Meier P., Kounev S., & Koziolek H., “Automated Transformation of Component-<br />
Based Software Architecture Models to Queueing Petri Nets”, In Procedding of 2011<br />
IEEE 19th Annual International Sym-posium on Modelling, Analysis, and<br />
Simulation of Computer and Telecommunication Systems, pp. 339- 348,<br />
DOI:10.1109/mascots.2011.23.<br />
[8]. Kounev S., Spinner S., & Meier P., “Introduction to queueing petri nets”, In<br />
Proceedings of the Third Joint WOSP/SIPEW International Conference on<br />
Performance Engineering-ICPE ’12, (2012), DOI:10.1145/2188286.2188290.<br />
<br />
<br />
66 H. Q. Thắng, V. V. Đốc, N. T. Bách, “Thử nghiệm và so sánh … hiệu năng phần mềm.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
[9]. Rak T., “Performance Modeling Using Queueing Petri Nets”, Communications in<br />
Computer and Information Science, 2017, pp. 321–335, DOI:10.1007/978-3-319-<br />
59767-6_26<br />
[10]. Al-Azzoni I., “On Utilizing Model Transformation for the Performance Analysis of<br />
Queueing Networks”, Journal of Software Engineering and Applications, 2018, 11,<br />
pp. 435-457, ISSN Print: 1945-3116, https://doi.org/10.4236/jsea.2018.119026<br />
[11]. Nikolaus Huber, Steffen Becker, C. Rathfelder, Ralf H. Reussne, J. Schewflinghaus,<br />
“Performance Modeling in Industry: A Case Study on Storage Virtualization”,<br />
Proceeding ICSE '10 Proceedings of the 32nd ACM/IEEE International Conference<br />
on Software Engineering - Volume 2, Pages 1-10, 2010,<br />
DOI:10.1145/1810295.1810297.<br />
[12]. Happe L., Buhnova B., Reussner R., “Stateful component-based performance<br />
model”, Software & Systems Modeling, 13(4), 2013, pp. 1319–1343.<br />
DOI:10.1007/s10270-013-0336-6<br />
[13]. Palladio Bench: http://www.palladio-simulator.com/ (PCM4.1, Release 2017)<br />
[14]. QPME: http://se.informatik.uni-wuerzburg.de/tools/qpme/<br />
[15]. Reussner R., Becker S., Happe J., Heinrich R., Koziolek A., Koziolek H., Kramer<br />
M., Krogmann K, “Modeling and Simulating Software Architectures – The Palladio<br />
Approach”, MIT Press, 2016, 400 pages.<br />
[16]. Vu Van Doc, Huynh Quyet Thang, Nguyen Trong Bach, “Development of the Rules<br />
for Transformation of UML Sequence Diagrams into Queueing Petri Nets”, In:<br />
Duong T., Vo NS. (eds) Industreial Networks and Intelligent Systems. INISCOM<br />
2018. Lecture Notes of the Institute for Computer Sciences, Social Informatics and<br />
Telecommunications Engineering, vol 257. Springer, Cham, ISBN 978-3-030-<br />
05872-2, pp. 122-144, DOI: 10.1007/978-3-030-05873-9_11, SCOPUS Indexed.<br />
[17]. ISO/IEC 25010, "Systems and software engineering - Software product Quality<br />
Requirements and Evaluation (SQuaRE) - Software product quality and system<br />
quality in use models", 2010.<br />
ABSTRACT<br />
PALLADIO COMPONENT MODEL AND QUEUEING PETRI NETS TECHNIQUES<br />
IN MODELING OF SOFTWARE PERFORMANCE: EXPERIMENTS<br />
AND COMPARISION<br />
Software performance modeling is one of the proper solutions for building<br />
software systems to ensure the set target performance. In this research, we briefly<br />
introduced software performance analysis techniques and focused on two methods<br />
PCM with illustrated tool Palladio Bench and QPN with illustrated tool QPME. We<br />
tested and compared these two techniques in developing the Media Store software's<br />
performance evaluation model. We analyze the experimental results and make some<br />
comparisons, assessments on the pros and cons of each method.<br />
Keywords: Software Performance Modeling; Palladio Component Model; Queueing Petri Nets.<br />
<br />
Nhận bài ngày 22 tháng 01 năm 2019<br />
Hoàn thiện ngày 06 tháng 5 năm 2019<br />
Chấp nhận đăng ngày 17 tháng 6 năm 2019<br />
Địa chỉ: 1 Viện Công nghệ thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội;<br />
2<br />
Trường Đại học Kinh tế - Kỹ thuật Công nghiệp, Bộ Công thương.<br />
*<br />
Email: vvdoc@uneti.edu.vn.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 61, 6 - 2019 67<br />