So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam

Trong nghiên cứu này, chúng tôi thực hiện so sánh hiệu năng của hai framework tiêu biểu trong nhóm các

framework tập trung xử lý phía máy chủ trên nền tảng web với công nghệ Java là ZK và JSF hướng đến một lựa

chọn sử dụng. Bằng phương pháp kiểm thử hiệu năng dựa trên các tiêu chí thời gian phản hồi và dung lượng bộ

nhớ sử dụng, nghiên cứu cách mô phỏng, cấu hình thông số trên các công cụ Jmeter, VisualVM và máy ảo Java,

các kết quả đưa ra phản ánh khách quan hiệu năng của hai ứng dụng được xây dựng bởi mỗi framework. Qua kết

quả kiểm thử hiệu năng, chúng tôi đã chọn ZK là framework có hiệu năng tốt hơn JSF. ZK framework đã được chúng

tôi áp dụng vào thực tiễn, xây dựng các ứng dụng đã được đưa vào sử dụng ở Học viện Nông nghiệp Việt Nam.

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 1

Trang 1

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 2

Trang 2

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 3

Trang 3

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 4

Trang 4

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 5

Trang 5

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 6

Trang 6

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 7

Trang 7

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 8

Trang 8

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 9

Trang 9

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 11 trang duykhanh 9340
Bạn đang xem 10 trang mẫu của tài liệu "So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam

So sánh hiệu năng của các Framework tập trung xử lý phía máy chủ trên nền tảng Web với công nghệ Java và ứng dụng tại Học viện Nông nghiệp Việt Nam
ứng dụng tại Học viện Nông nghiệp Việt Nam 
490 
Hình 2. Thiết lập thông số cho máy ảo Java trên Eclipse 
2.3. Thiết lập môi trường kiểm thử 
Môi trþąng kiểm thā đþĉc thăc hiện trên 
máy cýc bộ vĆi cấu hình đã khai báo. Các phần 
mềm đþĉc cài đặt theo thĀ tă: JDK, Jmeter, 
VisualVM, Eclipse. Webserver Tomcat đþĉc cài 
đặt trong môi trþąng phát triển tích hĉp 
Eclipse. 
Các thông số cấu hình cho máy ảo Java 
đþĉc thăc hiện tại chế độ chạy cấu hình Āng 
dýng (Run configuration) trên Eclipse (Hình 2). 
Các thông số cấu hình cho webserver 
Tomcat gồm maxThreads và acceptCount đþĉc 
cấu hình trong file server.xml nằm trong thþ 
mýc cài đặt Tomcat: 
<Connector port="8080" protocol= 
"HTTP/1.1" connectionTimeout="20000" 
redirectPort="8443" acceptCount="1024" 
maxThreads="2000"/> 
Hai project Āng dýng đþĉc xây dăng trên 
Eclipse và thăc hiện chạy trên webserver 
Tomcat. Giá trð các trþąng dĂ liệu đþĉc sinh 
ngẫu nhiên tÿ một mảng các giá trð tþĄng Āng. 
DĂ liệu cung cấp cho tầng xā lý hiển thð cûa hai 
framework đþĉc thiết kế giống nhau và đþĉc 
sinh động, mỗi bản ghi dĂ liệu Āng vĆi một đối 
tþĉng đþĉc tạo ra trong bộ nhĆ nên nò cüng cò 
tác dýng làm tăng yêu cầu kiểm thā khả năng 
tải cûa webserver vĆi Āng dýng trên framework 
tþĄng Āng. 
Để giả lập truy cập đồng thąi cûa nhiều 
ngþąi sā dýng vào một Āng dýng chúng tôi sā 
dýng công cý Jmeter. Jmeter thăc hiện giả lập 
một nhòm ngþąi dùng gāi các yêu cầu tĆi một 
máy chû, nhận và xā lý các phản hồi tÿ máy chû 
và cung cấp các kết quả báo cáo hiệu suất dþĆi 
dạng biểu đồ trăc quan, dễ hiểu (Hình 3). 
Các tham số cần thiết lập trên Jmeter: 
- Thread group: 
Number of Thread (users): N 
Số ngþąi dùng đồng thąi truy cập hệ thống, 
N đþĉc thay đổi trong mỗi lần kiểm thā 
Ramp-up period (seconds): 1 
Khoảng thąi gian mà N ngþąi dùng đồng 
thąi truy cập 
Loop count: 1 
Số lần kiểm thā lặp lại 
Hình 3. Cơ chế giải lập của Jmeter (Guru99, 2020) 
Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm 
491 
Hình 4. Cách bố trí cửa sổ hai ứng dụng kiểm thử để đảm bảo đồng bộ dữ liệu 
Hình 5. Dữ liệu phản hồi từ các request trên Jmeter gửi tới ứng dụng ZK 
- Http request: 
Protocol: http 
Giao thĀc truy cập Āng dýng web 
Server name or IP: localhost 
Đða chî server Āng dýng 
Port Number: 8080 
Số cổng lắng nghe yêu cầu cûa webserver 
tomcat 
Request: GET 
PhþĄng thĀc gāi request tĆi webserver 
Path:  
Đþąng dẫn truy cập Āng dýng, thay đþąng 
dẫn tþĄng Āng vĆi Āng dýng JSF 
- Summary Report: Báo cáo tổng hĉp cần 
thêm vào trên Thread group 
- View results tree: Cây theo dõi các request 
đþĉc gāi và dĂ liệu phản hồi tÿ server cần thêm 
vào trên Thread group 
So sánh hiệu năng của các framework tập trung xử lý phía máy chủ trên nền tảng web với công nghệ Java và 
ứng dụng tại Học viện Nông nghiệp Việt Nam 
492 
Hình 6. Dữ liệu phản hồi từ các request trên Jmeter gửi tới ứng dụng JSF 
Trên công cý VisualVM cần cài đặt thêm 
plugin Tracer-Monitor để có thể theo dõi và 
xuất dĂ liệu ra dþĆi dạng tệp csv. 
2.4. Thực hiện kiểm thử 
Để tiến hành kiểm thā cho mỗi trþąng hĉp 
N ngþąi sā dýng truy cập vào Āng dýng, ta cần 
bật webserver, bố trí hai Āng dýng Jmeter và 
VisualVM song song trên cāa sổ màn hình. 
Đồng thąi khći động kiểm thā mô phóng trên 
Jmeter, và kiểm thā bộ nhĆ sā dýng trên 
VisualVM, khi việc chạy trên Jmeter kết thúc, 
cüng đồng thąi nhấn kết thúc chþĄng trình chạy 
trên VisualVM. Việc xuất kết quả ra tệp csv 
trên hai Āng dýng diễn ra sau đò. Sau mỗi lần 
nhþ vậy ta thu đþĉc 2 tệp csv kết quả. Để kiểm 
thā vĆi mỗi giá trð số ngþąi sā dýng N khác 
nhau, cần thăc hiện khći động lại webserver để 
đảm bảo tài nguyên sā dýng cho lần kiểm thā 
trþĆc đþĉc giải phóng hoàn toàn 
3. KẾT QUẢ VÀ THẢO LUẬN 
Về tính đáng tin cậy cûa việc giả lập trên 
Jmeter, kiểm tra nội dung request gāi trên 
“View Result Tree” trong Jmeter, ta thấy nội 
dung dĂ liệu phản hồi tÿ webserver phản ánh 
đúng mã nguồn trang web tþĄng Āng trên 
trình duyệt vĆi bảng dĂ liệu. Điều này cûng cố 
thêm tính tin cậy cûa việc giả lập trên Jmeter. 
Có nhĂng framework nhþ Vaadin ta rất khó 
thăc hiện kiểm thā trên Jmeter bći dĂ liệu 
phản hồi tÿ webserver có chĀa mã động 
javascript, Jmeter chî có thể tải một phần dĂ 
liệu mong muốn dẫn đến kết quả kiểm thā 
không chính xác. 
Thăc hiện kiểm thā theo mẫu testcase đã 
đề ra và phþĄng pháp đþa ra ć mýc 2.4, ta thu 
đþĉc bảng số liệu (Bảng 3), tÿ đò ta vẽ đþĉc các 
biểu đồ so sánh thąi gian phản hồi (Hình 7), 
phần trăm CPU sā dýng (Hình 8) và bộ nhĆ sā 
dýng (Hình 9). 
Qua biểu đồ so sánh thąi gian phản hồi, ta 
thấy cả hai framework đều có thąi gian phản hồi 
tăng dần khi số ngþąi dùng truy cập tăng dần. 
Thąi gian phản hồi cûa ZK framework là nhanh 
hĄn trong mọi trþąng hĉp kiểm thā. Thąi gian 
phản hồi trung bình vĆi JSF framework là 
59995,4 (ms), vĆi ZK framework là 22607,6 
(ms), tính trung bình thąi gian phản hồi cûa ZK 
nhanh hĄn JSF 2,65 lần. 
Biểu đồ so sánh phần trăm sā dýng CPU 
cûa máy ảo Java cho thấy, JSF sā dýng CPU 
nhiều hĄn và ít biến động hĄn, trung bình JSF 
sā dýng là 87,9%. ZK sā dýng CPU ít hĄn JSF, 
khi số ngþąi dùng truy cập tăng (tÿ 800 đến 
1.000), ZK cho thấy xu hþĆng giảm phần trăm 
CPU sā dýng, đây là một điểm cộng cûa ZK. 
Trung bình ZK sā dýng 72,5% CPU. 
Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm 
493 
Bảng 3. Bảng kết quả kiểm thử 
Mã 
testcase 
Mô tả 
testcase 
Thời gian phản hồi trung bình(ms) 
Bộ nhớ sử dụng 
(Byte) 
CPU 
(%) 
 JSF ZK JSF ZK JSF ZK 
01 100 users/1s 24614 9275 337379315,2 448324734,77 80,38 61,35 
02 200 users/1s 42534 14733 385484710,22 586512438,59 85,97 77,28 
03 300 users/1s 46288 15550 412876526,96 722201673,33 86,86 85,04 
04 400 users/1s 54741 19127 400760045,61 803781468,31 89,32 78,6 
05 500 users/1s 62395 19286 396215852,92 828885223,38 91,13 77,35 
06 600 users/1s 68553 20607 411764396,61 917078304,94 88,49 73,01 
07 700 users/1s 64221 24934 396889074,54 959050239,79 88,95 76,42 
08 800 users/1s 81624 27910 389539320,61 1039310375,83 89,71 78,9 
09 900 users/1s 77185 34108 424241753,82 1195223791,89 89,54 67,03 
10 1000 users/1s 77799 40546 438933267,6 1391515294,33 89,37 50,2 
Hình 7. Biểu đồ so sánh thời gian phản hồi trung bình 
Biểu đồ so sánh dung lþĉng bộ nhĆ sā dýng 
cho thấy, JSF sā dýng ít bộ nhĆ hĄn ZK. Trong 
khoảng tÿ 100 đến 1.000 ngþąi sā dýng truy 
cập, bộ nhĆ sā dýng cûa JSF là ít biến động, ZK 
sā dýng nhiều bộ nhĆ hĄn và cò xu hþĆng tăng 
dần khi số lþĉng ngþąi dùng tăng. Trung bình 
JSF sā dýng 380,9 (MB), trung bình ZK sā dýng 
848 (MB), trung bình bộ nhĆ ZK sā dýng nhiều 
gấp 2,2 lần JSF. 
Trong các biểu đồ kết quả chúng tôi thu 
đþĉc, đồ thð biểu diễn số liệu Āng vĆi hai 
framework là tách biệt hoàn toàn, vì vậy trong 
nhận xét đánh giá, chúng tôi thấy cüng không 
cần thiết phải sā dýng thêm các mô hình kiểm 
nghiệm. Các thông số kết quả mà chúng tôi thu 
đþĉc trong phép kiểm thā khả năng tải trên 
môi trþąng máy cýc bộ, nhþ thąi gian phản hồi, 
chênh lệch nhiều so vĆi khoảng chấp nhận 
đþĉc trên môi trþąng triển khai thăc, đò là do 
đặc thù cûa phép kiểm thā truy cập đồng thąi 
trong thąi gian ngắn, lþĉng dĂ liệu cần tải lĆn, 
việc khći động lại webserver khiến một số đối 
tþĉng chĀc năng phải khći tạo lại và năng lăc 
hạn chế cûa máy cá nhân đþĉc dùng làm 
webserver. Tuy nhiên, các thông số đò là có giá 
trð giúp chúng tôi đạt đþĉc mýc đích so sánh 
hiệu năng cûa hai framework. 
So sánh hiệu năng của các framework tập trung xử lý phía máy chủ trên nền tảng web với công nghệ Java và 
ứng dụng tại Học viện Nông nghiệp Việt Nam 
494 
Hình 8. Biểu đồ so sánh phần trăm CPU sử dụng 
Hình 9. Biểu đồ so sánh dung lượng bộ nhớ sử dụng 
4. ỨNG DỤNG 
Sau khi tiến hành khảo sát, so sánh các 
framework cûa Java, chúng tôi quyết đðnh sā 
dýng ZK framework để xây dăng website đặt 
cĄm tại nhà hàng H+ Green VNUA cûa Học viện 
Nông nghiệp Việt Nam. Website nằm trong 
chþĄng trình cûa Học viện hỗ trĉ một phần tiền 
ăn trþa cho cán bộ Học viện, phối hĉp vĆi nhà 
hàng H+ Green Vnua cho phép các cán bộ học 
viện có thể đăng kċ suất ăn trþa trăc tuyến, 
quét thẻ xác nhận dùng cĄm và thống kê, xuất 
báo cáo danh sách các cán bộ đã dùng cĄm theo 
một khoảng thąi gian nhất đðnh. 
Nhą có nhĂng þu điểm cûa ZK framework, 
chúng tôi có thể triển khai xây dăng website 
trong thąi gian ngắn, website có giao diện đẹp, tối 
þu hòa trải nghiệm ngþąi dùng nhą các thành 
phần giao diện hỗ trĉ mạnh bći ZK framework. 
Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm 
495 
Hình 10. Hình ảnh giao diện website đặt cơm vnua 
Website phýc vý cho hĄn 10.00 cán bộ cûa 
Học viện đăng kċ ăn trþa và quét thẻ xác nhận 
hàng ngày, việc xuất báo cáo theo tháng vĆi file 
excel cĈ lĆn chĀa tÿ 3.000 đến 4.500 bản ghi dĂ 
liệu. Website vẫn hoạt động tốt kể tÿ khi triển 
khai tháng 9/2019 đến nay (tháng 6/2020). 
Trong thąi gian xây dăng website, chúng tôi gặp 
rất ít lỗi phải sāa và trong thąi gian tÿ khi triển 
khai, cüng cò rất ít lỗi phải bảo trì, điều này có 
đþĉc cüng nhą một phần ć tính þu việt cûa công 
nghệ ZK framework. Website có thể truy cập 
vào tÿ đða chî:  
Hiện chúng tôi đang tiếp týc vận dýng công 
nghệ ZK framework vào một đề tài cấp Học viện 
để phát triển website cho khoa Công nghệ thông 
tin. Đề tài sẽ hoàn thành vào tháng 12/2020 
5. KẾT LUẬN 
Trong bài báo này, chúng tôi đã đþa ra đþĉc 
phþĄng pháp so sánh hiệu năng cûa hai 
framework tiêu biểu trong nhóm các server-
centric java web framework hþĆng đến một lăa 
chọn sā dýng. Các kết quả đþa ra phản ánh 
khách quan hiệu năng cûa hai Āng dýng đþĉc 
xây dăng bći mỗi framework. 
Qua kết quả kiểm thā hiệu năng, chúng tôi 
thấy đþĉc ZK framework tối þu hĄn về mặt thąi 
gian phản hồi và phần trăm sā dýng CPU. 
Điểm trÿ cûa ZK framework so vĆi JSF 
framework là ć dung lþĉng bộ nhĆ sā dýng, ZK 
framework sā dýng dung lþĉng bộ nhĆ nhiều 
hĄn nhþng điểm này hoàn toàn có thể chấp 
nhận đþĉc khi thăc tế số lþĉng ngþąi dùng lĆn 
cùng truy cập vào Āng dýng trong 1 giây là ít 
xảy ra và bộ nhĆ cûa máy chû thþąng lĆn tÿ 
32GB đến 2TB. HĄn nĂa, nếu ngþąi dùng có 
điều kiện sā dýng các phiên bản thþĄng mại cûa 
ZK framework, tốc độ phản hồi và dung lþĉng 
bộ nhĆ sā dýng cñn đþĉc cải thiện nhiều. 
Cuối cùng, tổng hĉp tất cả các so sánh þu 
nhþĉc điểm, chúng tôi quyết đðnh lăa chọn ZK 
framework cho xây dăng Āng dýng cûa nhóm. 
Ứng dýng đã xây dăng thành công giảm thiểu 
công sĀc và thąi gian, Āng dýng hiện đang hoạt 
động tốt, ổn đðnh, đáp Āng nhanh, phýc vý cho 
công việc thăc tế cûa cán bộ Học viện. 
So sánh hiệu năng của các framework tập trung xử lý phía máy chủ trên nền tảng web với công nghệ Java và 
ứng dụng tại Học viện Nông nghiệp Việt Nam 
496 
LỜI CẢM ƠN 
Để hoàn thành bài báo trên, các tác giả xin 
bày tó ląi cảm Ąn đến Học viện Nông nghiệp 
Việt Nam đã phê duyệt đề tài cấp Học viện, mã 
số T2020-10-44. 
TÀI LIỆU THAM KHẢO 
1&1 IONOS Inc (2017). Web frameworks – overview 
and classification. Retrieved from 
https://www.ionos.com/digitalguide/websites/web-
development/web-frameworks-an-overview on 
June 15, 2020. 
Abdullah J.M., Mohammed M.A. & Muhammed D.A. 
(2015). Java 8 New Features Improvements and 
Complications. Int. J. of Multidisciplinary and 
Current research. 
Bathia S. (2018). PSD: Professional Scrum Developer 
Question Bank and Reference Guide. Retrieved 
from https://books.google.com.vn/books?id=a4C3 
DwAAQBAJ&printsec=copyright&redir_esc=y#v
=onepage&q&f=false on June 17, 2020. 
Ciugudean M. & Gorgan D. (2016). Methodology for 
Identification and Evaluation of Web Application 
Performance Oriented Usability Issues. 
Revista Romana de Interactiune Om-
Calculator. 9(2):155-176. 
Guru99 (2020). How to Use JMeter for Performance & 
Load Testing. Retrieved from 
https://www.guru99.com/jmeter-performance-
testing.html on June 15, 2020. 
Hamed O. & Kafri N. (2009). Performance Prediction 
of Web Based Application Architectures Case 
Study:.NET vs. Java EE. International Journal of 
Web Applications. 1(3): 146-156. 
Jha N. & Popli R. (2017). Comparative analysis of web 
applications using JMeter. International Journal of 
Advanced Research in Computer Science. 8(3). 
Oracle (2020). Command Line Reference. Retrieved 
from https://docs.oracle.com/cd/E13150_01/ 
jrockit_jvm/jrockit/jrdocs/refman/optionX.html on 
June 15, 2020. 
Oracle (2020). Java Platform, Standard Edition 
HotSpot Virtual Machine Garbage Collection 
Tuning Guide. Retrieved from https://docs.oracle. 
com/ javase/8/docs/technotes/guides/vm/gctuning/ 
considerations.html on June 15, 2020. 
Oracle (2020). VisualVM home page. Retrieved from 
https://visualvm.github.io on June 15, 2020. 
Perforce Software, Inc (2020). Best Java frameworks. 
Retrieved from https://www.jrebel.com/blog/best-
java-frameworks on June 15, 2020. 
Potix (2020). Faster And Lighter, The Performance 
Test On ZK8. Retrieved from 
https://www.zkoss.org/wiki/Small_Talks/2015/Sep
tember/Faster_And_Lighter,_The_Performance_T
est_On_ZK8 on June 15, 2020. 
Potix (2020). Our Story. Retrieved from 
https://www.zkoss.org/support/about on June 
15, 2020. 
Potix (2020). ZK home page. Retrieved from 
https://www.zkoss.org, on June 15, 2020. 
PrimeTek Informatics (2020). Choose a Product to 
View Available Templates. Retrieved from 
https://www.primefaces.org/store on June 
15, 2020. 
PrimeTek Informatics (2020). Prime faces home page. 
Retrieved from https://www.primefaces.org on 
June 15, 2020. 
Qing S. (2012). Web Performance Testing with Apache 
Jmeter. Intelligent Computer and Applications, 2. 
RedHat (2020). RichFaces home page. Retrieved from 
https://richfaces.jboss.org on June 15, 2020. 
Scholtz B. & Tijms A. (2018). The Definitive Guide to 
JSF in Java EE 8: Building Web Applications with 
JavaServer Faces. Apress. 
Shan T.C. & Hua W.W. (2006). Taxonomy of java web 
application frameworks. In 2006 IEEE 
International Conference on e-Business 
Engineering (ICEBE'06). IEEE. pp. 378-385. 
SoftwareTestingHelp (2020). Performance Testing Vs 
Load Testing Vs Stress Testing (Difference). 
Retrieved from https://www.softwaretestinghelp. 
com/what-is-performance-testing-load-testing-
stress-testing on June 15, 2020. 
The Apache Software Foundation (2020). Apache 
Jmeter home page. Retrieved from 
https://jmeter.apache.org on June 15, 2020. 
The Apache Software Foundation (2020). Apache 
Tomcat 9 Configuration Reference. Retrieved from 
https://tomcat.apache.org/tomcat-9.0-
doc/config/http.html on June 15, 2020. 
Try QA (2020). What is Load testing in software 
testing? Examples, How To Do, Importance, 
Differences. Retrieved from 
is-load-testing-in-software on June 15, 2020. 
Vosloo I., & Kourie D.G. (2008). Server-centric web 
frameworks: An overview. ACM Computing 
Surveys (CSUR). 40(2): 1-33. 

File đính kèm:

  • pdfso_sanh_hieu_nang_cua_cac_framework_tap_trung_xu_ly_phia_may.pdf