BCKH 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 liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
1,21 MB
Nội dung
Vietnam J Agri Sci 2021, Vol 19, No 4: 486-496 Tạp chí Khoa học Nơng nghiệp Việt Nam 2021, 19(4): 486-496 www.vnua.edu.vn 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 Trần Trung Hiếu*, Phạm Quang Dũng, Đỗ Thị Nhâm Khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam * Tác giả liên hệ: tthieu@vnua.edu.vn Ngày chấp nhận đăng: 23.12.2020 Ngày nhận bài: 20.07.2020 TÓM TẮT Trong nghiên cứu này, thực so sánh hiệu hai framework tiêu biểu nhóm framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ZK JSF hướng đến lựa chọn sử dụng Bằng phương pháp kiểm thử hiệu dựa tiêu chí thời gian phản hồi dung lượng nhớ sử dụng, nghiên cứu cách mơ phỏng, cấu hình thơng số công cụ Jmeter, VisualVM máy ảo Java, kết đưa phản ánh khách quan hiệu hai ứng dụng xây dựng framework Qua kết kiểm thử hiệu năng, chọn ZK framework có hiệu tốt JSF ZK framework áp dụng vào thực tiễn, xây dựng ứng dụng đưa vào sử dụng Học viện Nông nghiệp Việt Nam Từ khóa: ZK, JSF, PrimeFaces, framework, server-centric, hiệu Comparing Performances of Server-Centric Java Web Frameworks and Applying at Vnua ABSTRACT In this study, we compared the performances of two typical frameworks in the server-centric java web framework group, ZK and JSF, towards a usage option Using a performance test method based on the response time and memory usage criteria, studying simulations, parameter configurations on Jmeter, VisualVM and Java virtual machines were made The results revealed objective reflection on the performance of the two applications built by each framework Through the performance test results, we chose ZK, which had a better performance framework than JSF ZK framework was the applied in practice, building applications that have been put into use at Vietnam National University of Agriculture Keywords: ZK, JSF, PrimeFaces, framework, server-centric, Jmeter, VisualVM, performance ĐẶT VẤN ĐỀ Trong 20 năm trć lại đây, ngơn ngĂ lập trình Java lăa chọn hàng đầu để xây dăng phn mm ng dýng, nhiu nm Java thỵng xp thĀ nhì bảng xếp hạng ngơn ng lp trỡnh ỵc s dýng nhiu nht (Bng 1) Các framework lập trình Āng dýng Web vĆi cơng nghệ Java ỵc chia thnh nhúm, nhúm client-centric phõn tỏn nhiều cơng việc xā lý phía máy khách, nhóm server-centric tập trung 486 đa phần xā lý ć phía máy chû (1&1 IONOS Inc, 2017) Nhóm client-centric framework đđi hói lập trình viên cần am hiểu ngôn ngĂ HTML, Javascript Do đặc thù cûa nhĂng ngôn ng ny, chỵng trỡnh thỵng phc hn v tn nhiều thąi gian cơng sĀc để phát triển hĄn Nhóm cỏc server-centric framework ó xõy dng sn nhiu thỵ vin n gin húa vic lp trỡnh cỷa ngỵi s dýng nờn thỵng d phỏt trin hn, thi gian xõy dăng ngắn hĄn tập trung phần lĆn công việc xā lý ć phía server nên tính bảo mật cüng cao hĄn, tiêu Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm chí quan trọng lăa chọn cûa nhiều doanh nghiệp Tốc độ xā lý cỷa cỏc client-centric framework thỵng nhanh hn cỏc server-centric framework, nhiên cân nhắc nhiều yếu tố, nhiều trỵng hp, server-centric framework l mt la chn tt Trong số server-centric web framework xây dăng tảng ngụn ng lp trỡnh Java nhỵ JavaServer Faces (JSF), Wicket, Tapestry, Vaadin, ZK, thỡ JSF ỵc s dýng nhiu nht (Perforce Software Inc, 2020) JSF đąi năm 2001, mt framework mó ngun m ỵc vit bi Sun Microsystems JSF thỵng phi s dýng kốm vi mt thỵ vin h tr to giao din ngỵi dựng nhỵ PrimeFaces (PrimeTek Informatics, 2020) hay RichFaces (RedHat, 2020) Hin nay, JSF ỵc hỗ trĉ phát triển bći Oracle, tập đoàn tiếp quản cụng ngh Java t Sun Microsystems, JSF ó ỵc Oracle ỵa thnh chun Java cho cỏc ng dýng trờn nn web (Scholtz & cs., 2018), JSF thỵng ỵc dựng kt hp vi PrimeFaces nhiu nht, giỏ cỷa thỵ viện GUI (Graphic User Interface) rẻ bất ngą vĆi chợ 19$-79$ i vi cỏc layout riờng l, hay chỵa n 200$ cho mt phiờn bn nhiu ngỵi dựng (PrimeTek Informatics, 2020), cị lẽ hai lý JSF ỵc s dýng nhiu hn cỏc framework khỏc, dự nú cú mt s nhỵc im ZK ỵc vit bi Potix Đài Loan năm 2005 (Potix, 2020), ZK bao gồm hai phiờn bn, phiờn bn thỵng mi v phiờn bn mã nguồn mć dành miễn phí cho cộng đồng Dù đąi sau, ZK nhanh chòng phát triển chim ỵc s tin tỵng cỷa nhiu cụng ty, on ln trờn th gii nhỵ Samsung, Sony, Toyota, HTC, Airbus, Barclays, Ebay, Bank of America, Deutsche Bank, US Department of Defense„ Oracle cüng sā dýng ZK Triết lý cûa ZK “Ajax without Javascript”, nò cho phép ngỵi dựng xõy dng ng dýng web m khụng cn biết bất kĊ kiến thĀc Ajax Javascript ZK h tr s lỵng ln cỏc thnh phn giao din ó ỵc xõy dng sn vi trờn 200 thnh phần, framework hỗ trĉ bảng tính (spreadsheet), mơ hình MVVM (Model-ViewViewModel) web Theo phản hồi t phớa ngỵi s dýng, thi gian xõy dng ng dýng vĆi ZK giảm tÿ đến 16 lần ZK bảo vệ Āng dýng chống lại hình thĀc tn cụng XSS, DoS v CSRF, ZK tng cỵng hn nĂa xác thăc ûy quyền vĆi khuôn khổ bo mt cỷa bờn th ba nhỵ Spring Security, hon toàn cung cấp bảo vệ tÿ cấp độ trang đến să kiện Ajax, cüng lý quan trọng để doanh nghiệp lĆn lăa chọn ZK Ngoài ra, ZK cho phép tích hĉp nhiều cơng nghệ khác nhỵ JSP, Struts, Spring, EJB, Hibernate, CDI, JDBC, Bootstrap (Potix, 2020) vi ti liu hỵng dn chi tit, õy l yếu tố quan trọng Āng dýng lĆn cần kết hĉp nhiều công nghệ khác Về mt tớnh nng, ZK cũ nhiu ỵu im vỵt tri so vĆi JSF Tuy nhiên, tính năng, chĀc cûa hệ thống phần mềm mối quan tâm nhất, hiệu cûa phần mềm cüng yếu tố đáng ċ Hiệu bao gm cỏc yu t nhỵ thi gian phn hi (response time), độ tin cậy (reliability), mĀc độ sā dýng tài nguyên (resource usage) khả mć rộng (scalability) (Bathia & cs., 2018), cỏc yu t ny nh hỵng khụng nhú n cht lỵng dch vý cung cp cho ngỵi dựng, cỹng nhỵ s tiờu tn ti nguyờn phớa nh cung cấp phải đáp Āng Nghiên cĀu nhằm so sánh hiệu cûa hai framework, thăc nghiệm vĆi hai framework tiêu biểu cûa nhóm server-centric java web framework JSF ZK, tÿ đò lăa chọn framework tốt hĄn cho xây dăng Āng dýng PHƯƠNG PHÁP NGHIÊN CỨU Có nhiều loại kiểm thā hiệu bao gồm: load test (kiểm thā khả tải), stress test (kim th xem h thng hot ng nhỵ tải cách hệ thống phýc hi xy li), capacity test (kim th lỵng giao dðch đĄn vð thąi gian), endurance test (kim th lỵng ti n nh mt khong thi gian dài), spike test (kiểm thā phản Āng cûa phần mm trỵc cỏc thay i ln hoc t ngt tải), volume test (kiểm thā hiệu suất cûa hệ thống ng vi cỏc lỵng c s d liu khỏc nhau), scalability test (kiểm thử khả mở rộng tải ứng dụng), reliability test (kiểm thử độ tin cậy hệ thống, hay khả thực hoạt động khơng có lỗi khoảng thời gian định) (SoftwareTestingHelp, 2020) 487 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nông nghiệp Việt Nam Bảng Thứ hạng ngơn ngữ lập trình Java qua 20 năm theo Tiobe Programming Language Java 2020 2015 2010 2005 2000 2 “Load test” trình thêm nhu cầu vào hệ thống thiết bð o lỵng phn ng cỷa nũ Load testing ỵc thc để xác đðnh Āng xā cûa hệ thống cỏc iu kin ti bỡnh thỵng v cao hn iu kiện tải dă kiến (Try QA, 2020) “Load test” cò th ỵc s dýng so sỏnh hiu nng cỷa Āng dýng Ví dý, nghiên cứu so sánh hiệu ứng dụng web hai tảng.NET Java EE (Enterprise Edition) s dýng phỵng phỏp Load test vĆi công cý Load Runner Webking để đo thąi gian phn hi v dung lỵng b nh s dýng ng vi cỏc trỵng hp gi lp s ngỵi dựng khác Āng dýng (Hamed & cs., 2009) Tại website trang chû cûa ZK framework, nghiên cĀu cûa tác giả James Chu so sánh hiệu cûa phiờn bn ZK 7, ZK ỵc thc hin trờn mt mỏy tớnh cỏ nhõn thụng thỵng, s dýng cụng cý Apache Jmeter gi lp ngỵi dựng v kim thā thąi gian phản hồi, công cý Visual VM để kim th dung lỵng b nh s dýng ng vi cỏc trỵng hp gi lp s ngỵi dựng tng dn tÿ 100, 200 tĆi 1.500 thąi gian giây, Āng dýng thā nghiệm cò giao diện nặng vĆi khoảng 900 khối div label (Potix, 2020) Để so sánh hiệu cûa hai framework, báo chọn loại kiểm thā “load test” để so sỏnh thi gian phn hi (response time), dung lỵng b nhĆ sā dýng (memory consumption) phần trăm sā dýng CPU tỵng ng Cỏc bỵc kim th bao gm: xỏc nh mụi trỵng kim th, thit k trỵng hp kim th (testcase), ci t mụi trỵng kim th v thc kiểm thā 2.1 Xác định môi trường kiểm thử Về phần cĀng, sā dýng máy cýc (localhost) địng vai trđ làm webserver để chạy hai Āng dýng Āng vĆi hai framework có cấu hình: 488 CPU: Intel(R) Processor @ 2.50GHz Core(TM) i5-3210M Bộ nhĆ: 8GB Về phần mềm, sā dýng phần mềm sau: ZK 9.0.0 CE: phiên ZK framework miễn phí dành cho cộng đồng JSF 2.1: sā dýng kết hĉp vĆi PrimeFaces PrimeFaces 8.0: sā dýng phiên miễn phí dành cho cộng đồng JDK 1.8.0_241: Bộ công cý phát triển Java, bao gồm máy ảo Java Apache Tomcat 9: Webserver Eclipse IDE 2020-03: Mụi trỵng phỏt trin tớch hp cho Āng dýng Java EE Apache Jmeter 5.3 (The Apache Software Foundation, 2020): Công cý kiểm thā hiệu Āng dýng Visual VM 1.4.2 (The Apache Software Foundation, 2020): Công cý kiểm thā nhĆ sā dýng cho Āng dýng Java VĆi ZK, khơng cị điều kiện sā dýng phiên phí nên chúng tơi sā dýng phiên miễn phí dành cho cộng đồng Phiên ZK, JSF, PrimeFaces ỵc chn l mi nht ti thi im tiến hành kiểm thā, phiên phần mềm lại tùy chọn, cho đảm bảo să tỵng thớch l ỵc V cỏc thụng s cu hỡnh, m bo vic so sỏnh ỵc khỏch quan, chỳng tơi cần cấu hình số thơng số webserver cho cĄ chế quản lý cûa webserver không gây nh hỵng n vic so sỏnh Cỏc thụng s cu hình Tomcat webserver bao gồm: Session timeout mặc đðnh: Thąi gian kiểm thā Āng dýng ngắn nên không cần cấu hình đặc biệt cho tham số - Xms 2048MB: kớch thỵc b nh heap to máy ảo Java hoạt động Trần Trung Hiếu, Phạm Quang Dng, Th Nhõm - Xmx 2048MB: kớch thỵc b nh heap ti a kớch thỵc b nh Heap khi to cỹng nhỵ ti a bng nhau, u l 2048MB - XX: MetaspaceSize 1024MB: kớch thỵc b nh Metaspace to Trỵc phiờn bn Java 8, b nh PermGen nm Heap ỵc s dýng ng dýng cn ti s lỵng ln cỏc lp (class), b hn ch bi kớch thỵc b nh Heap, nờn ng dýng dễ có khả bð lỗi tràn nhĆ (java.lang OutOfMemoryError: PermGen space) Tÿ phiên Java 8, nhĆ PermGen ỵc loi bú, thay th bi b nh Metaspace (Oracle, 2020) Metaspace phần cûa nhĆ Heap nhỵ PermGen, kớch thỵc cỷa nú khụng gii hn, tựy thuc vo b nh ỵc h iu hnh cp cho máy ảo Java Bộ nhĆ Metaspace không giĆi hn nhỵng ta nờn t gii hn cho nũ tránh việc rị rỵ nhĆ (memory leak) - XX: MaxMetaspaceSize 1024MB: kớch thỵc b nh Metaspace ti a maxThreads: 2000: s yờu cu ti a cũ th ỵc x lċ đồng thąi bći webserver, mặc đðnh giá trð tomcat 200 (The Apache Software Foundation, 2020) acceptCount: 1024: Độ dài hàng đĉi tối đa cho yêu cu kt ni n webserver Mi yờu cu nhn ỵc hàng đĉi đầy bð tÿ chối Giá trð mặc đðnh 100 (The Apache Software Foundation, 2020) Số lỵng ngỵi dựng ti a th nghim l 1000 nờn giỏ tr ny ỵc thit lp l 1024 B nh heap cha cỏc i tỵng (Object) Java, cỏc bin tùnh, cỏc bin ton cýc B nh heap ỵc dn dẹp tă động bći dọn rác GC (garbage collector), mc nh kớch thỵc b nh heap ti a l 64MB (Oracle, 2020) Mỗi framework sā dýng nhĆ Heap khác nhau, để việc dọn dẹp nhĆ bći GC m ta khụng oỏn nh ỵc khụng nh hỵng chỵng trỡnh, v phũng kim th s lỵng ngỵi dùng truy cập lĆn thiếu nhĆ, thiết lập 2.2 Thiết kế kịch kiểm thử Để so sánh hiệu cûa hai framework, kim tra kh nng cỷa hai ng dýng ỵc xõy dăng tÿ hai framework, thăc tải trang web có chĀa bảng dĂ liệu vĆi cột 2.000 dũng, mụ phúng vi ln lỵt 100, 200, 1.000 ngỵi dùng đồng thąi truy cập 1s ghi nhận thi gian phn hi, dung lỵng b nh s dýng Bảng Mẫu testcase kiểm thử so sánh hai framework Mã testcase XX Mô tả testcase Kiểm thử khả tải N user dùng đồng thời truy cập 1s Dữ liệu kiểm thử Trang web với bảng liệu cột, 2.000 dịng Các bước thực Mơ N user đồng thời truy cập 1s Jmeter Thời gian phản hồi Bộ nhớ sử dụng % CPU sử dụng JSF ZK JSF ZK JSF ZK ? ? ? ? ? ? Đồng thời theo dõi nhớ sử dụng VisualVM Xuất tệp csv kết hai cơng cụ kết thúc Hình Mẫu liệu kiểm thử minh họa cho 2.000 ghi 489 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nơng nghiệp Việt Nam Hình Thiết lập thơng số cho máy ảo Java Eclipse 2.3 Thiết lập mụi trng kim th Mụi trỵng kim th ỵc thc máy cýc vĆi cấu hình khai bỏo Cỏc phn mm ỵc ci t theo th t: JDK, Jmeter, VisualVM, Eclipse Webserver Tomcat ỵc ci t mụi trỵng phỏt trin tớch hp Eclipse Cỏc thụng s cu hỡnh cho mỏy o Java ỵc thc hin ti chế độ chạy cấu hình Āng dýng (Run configuration) Eclipse (Hình 2) Các thơng số cấu hình cho webserver Tomcat gm maxThreads v acceptCount ỵc cu hỡnh file server.xml nm thỵ mýc ci t Tomcat: Hai project Āng dýng ỵc xõy dng trờn Eclipse v thc hin chy trờn webserver Tomcat Giỏ tr cỏc trỵng d liu ỵc sinh ngu nhiờn t mt mng 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 thit k ging v ỵc sinh động, ghi dĂ liệu Āng vĆi i tỵng ỵc to b nh nờn nũ cüng cò tác dýng làm tăng yêu cầu kiểm thā khả tải cûa webserver vĆi Āng dýng framework tỵng ng gi lp truy cp ng thi cỷa nhiu ngỵi s dýng vo mt ng dýng chỳng tụi sā dýng công cý Jmeter Jmeter thăc giả lập mt nhũm ngỵi dựng gi cỏc yờu cu ti mt máy chû, nhận xā lý phản hồi tÿ máy chû cung cấp kết báo cáo hiu sut dỵi dng biu trc quan, d hiu (Hình 3) Các tham số cần thiết lập Jmeter: - Thread group: Number of Thread (users): N S ngỵi dựng ng thi truy cp h thng, N ỵc thay đổi lần kiểm thā Ramp-up period (seconds): Khong thi gian m N ngỵi dựng ng thi truy cập Loop count: Số lần kiểm thā lặp lại Hình Cơ chế giải lập Jmeter (Guru99, 2020) 490 Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm Hình Cách bố trí cửa sổ hai ứng dụng kiểm thử để đảm bảo đồng liệu Hình Dữ liệu phản hồi từ request Jmeter gi ti ng dng ZK - Http request: Phỵng thc gāi request tĆi webserver Protocol: http Path: http://localhost:8080/TestZKforArticle/ 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 lng nghe yờu cu cỷa webserver tomcat Request: GET ỵng dn truy cp ng dýng, thay ỵng dn 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 Thread group - View results tree: Cõy theo dừi cỏc request ỵc gi v d liệu phản hồi tÿ server cần thêm vào Thread group 491 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nơng nghiệp Việt Nam Hình Dữ liệu phản hồi từ request 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 để theo dõi xuất dĂ liệu dỵi dng csv 2.4 Thc hin kim th tin hnh kim th cho mi trỵng hp 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 VisualVM song song cāa sổ hình Đồng thąi khći động kiểm thā mơ phóng Jmeter, kiểm thā nhĆ sā dýng VisualVM, việc chạy Jmeter kt thỳc, cỹng ng thi nhn kt thỳc chỵng trỡnh chạy VisualVM Việc xuất kết tệp csv hai Āng dýng diễn sau đò Sau ln nhỵ vy ta thu ỵc csv kt qu kim th vi mi giỏ tr s ngỵi sā dýng N khác nhau, cần thăc khći động lại webserver để đảm bảo tài nguyên sā dýng cho ln kim th trỵc ỵc gii phúng hon ton KẾT QUẢ VÀ THẢO LUẬN Về tính đáng tin cậy cûa việc giả lập Jmeter, kiểm tra nội dung request gāi “View Result Tree” Jmeter, ta thấy nội dung dĂ liệu phản hồi tÿ webserver phản ánh ỳng mó ngun trang web tỵng ng trờn trỡnh duyt vĆi bảng dĂ liệu Điều cûng cố 492 thêm tính tin cậy cûa việc giả lập Jmeter Có nhng framework nhỵ Vaadin ta rt khú thc hin kim thā Jmeter bći dĂ liệu phản hồi tÿ webserver có chĀa mã động javascript, Jmeter chỵ tải phần dĂ liệu mong muốn dẫn đến kết kiểm thā khơng xác Thăc kiểm thā theo mu testcase ó v phỵng phỏp ỵa mýc 2.4, ta thu ỵc bng s liu (Bng 3), t ũ ta v ỵc cỏc biu so sánh thąi gian phản hồi (Hình 7), phần trăm CPU sā dýng (Hình 8) nhĆ sā dýng (Hình 9) Qua biểu đồ so sánh thąi gian phản hồi, ta thấy hai framework có thąi gian phản hi tng dn s ngỵi dựng truy cp tng dần Thąi gian phản hồi cûa ZK framework nhanh hn mi trỵng hp kim th Thi gian phn hồi trung bình vĆi JSF framework 59995,4 (ms), vĆi ZK framework 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 biến động hĄn, trung bình JSF sā dýng 87,9% ZK sā dýng CPU hĄn JSF, s ngỵi dựng truy cp tng (t 800 n 1.000), ZK cho thy xu hỵng gim phn trm CPU s dýng, đ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 Bảng Bảng kết kiểm thử Mã testcase Mô tả testcase Bộ nhớ sử dụng (Byte) Thời gian phản hồi trung bình(ms) JSF ZK CPU (%) 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 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 thy, JSF sā dýng nhĆ hĄn ZK Trong khoảng tÿ 100 n 1.000 ngỵi s dýng truy cp, b nh sā dýng cûa JSF biến động, ZK sā dýng nhiu b nh hn v cũ xu hỵng tng dn s lỵng ngỵi dựng tng Trung bỡnh JSF sā dýng 380,9 (MB), trung bình ZK sā dýng 848 (MB), trung bình nhĆ ZK sā dýng nhiều gấp 2,2 lần JSF Trong biểu đồ kết chúng tụi thu ỵc, th biu din s liu ng vĆi hai framework tách biệt hồn tồn, nhận xét đánh giá, thấy cüng không cần thiết phải sā dýng thêm mơ hình kiểm nghiệm Các thông số kết mà thu ỵc phộp kim th kh nng ti trờn mụi trỵng mỏy cýc b, nhỵ thi gian phn hi, chờnh lch nhiu so vi khong chp nhn ỵc trờn mụi trỵng trin khai thc, ũ l c thự cỷa phép kiểm thā truy cập đồng thąi thąi gian ngn, lỵng d liu cn ti ln, vic ng li webserver khin mt s i tỵng chc nng phi khći tạo lại lăc hạn chế cûa máy cỏ nhõn ỵc dựng lm webserver Tuy nhiờn, cỏc thụng số đị có giá trð giúp chúng tơi đạt ỵc mýc ớch so sỏnh hiu nng cỷa hai framework 493 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nông nghiệp Việt Nam Hình Biểu đồ so sánh phần trăm CPU sử dụng Hình Biểu đồ so sánh dung lượng nhớ sử dụng ỨNG DỤNG Sau tiến hành khảo sát, so sánh framework cûa Java, đðnh sā dýng ZK framework để xây dăng website đặt cĄm nhà hàng H+ Green VNUA cûa Học viện Nông nghiệp Việt Nam Website nằm chỵng trỡnh cỷa Hc vin h tr mt phn tin n trỵa cho cỏn b Hc vin, phi hp vĆi nhà hàng H+ Green Vnua cho phép cán học 494 viện đăng kċ suất ăn trỵa trc tuyn, quột th xỏc nhn dựng cm v thống kê, xuất báo cáo danh sách cán dùng cĄm theo khoảng thąi gian đðnh Nh cú nhng ỵu im cỷa ZK framework, chỳng tụi triển khai xây dăng website thąi gian ngn, website cú giao din p, ti ỵu hũa tri nghim ngỵi dựng nh cỏc thnh phn giao din h trĉ mạnh bći ZK framework Trần Trung Hiếu, Phạm Quang Dũng, Đỗ Thị Nhâm 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 Hc vin 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 ghi dĂ liệu Website hoạt động tốt kể tÿ triển khai tháng 9/2019 đến (tháng 6/2020) Trong thąi gian xây dăng website, gặp lỗi phải sāa thąi gian tÿ triển khai, cüng cị lỗi phải bo trỡ, iu ny cú ỵc cỹng nh mt phn tớnh ỵu vit cỷa cụng ngh ZK framework Website truy cập vào tÿ đða chỵ: http://datcom.vnua.edu.vn/ Hiện tiếp týc vận dýng công nghệ ZK framework vào đề tài cấp Học viện để phát triển website cho khoa Công nghệ thông tin Đề tài hoàn thành vào tháng 12/2020 KẾT LUẬN Trong bi bỏo ny, chỳng tụi ó ỵa ỵc phỵng pháp so sánh hiệu cûa hai framework tiêu biểu nhúm cỏc servercentric java web framework hỵng n mt la chn s dýng Cỏc kt qu ỵa phn ỏnh khỏch quan hiu nng cỷa hai ng dýng ỵc xây dăng bći framework Qua kết kiểm thā hiu nng, chỳng tụi thy ỵc ZK framework ti ỵu hĄn mặt thąi gian phản hồi 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 nhiu hn nhỵng im ny hon ton cú th chp nhn ỵc thc t s lỵng ngỵi dựng ln cựng truy cập vào Āng dýng giây xảy v b nh cỷa mỏy chỷ thỵng ln t 32GB n 2TB Hn na, nu ngỵi dựng cú iu kin s dýng cỏc phiờn bn thỵng mi cỷa ZK framework, tc phn hi v dung lỵng b nh s dýng củn ỵc ci thin nhiu Cui cựng, tng hp tt c cỏc so sỏnh ỵu nhỵc im, chỳng đð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 thąi gian, Āng dýng 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 Học viện 495 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nơng nghiệp Việt Nam LỜI CẢM ƠN Để hồn thành báo trên, 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/webdevelopment/web-frameworks-an-overview on June 15, 2020 Abdullah J.M., Mohammed M.A & Muhammed D.A (2015) Java 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 OmCalculator 9(2):155-176 Guru99 (2020) How to Use JMeter for Performance & Load Testing Retrieved from https://www.guru99.com/jmeter-performancetesting.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 496 Perforce Software, Inc (2020) Best Java frameworks Retrieved from https://www.jrebel.com/blog/bestjava-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, 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-testingstress-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 Configuration Reference Retrieved from https://tomcat.apache.org/tomcat-9.0doc/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 http://tryqa.com/whatis-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 ... framework 493 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nơng nghiệp Việt Nam Hình Biểu đồ so sánh phần trăm CPU sử dụng Hình Biểu đồ so sánh dung... định) (SoftwareTestingHelp, 2020) 487 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nông nghiệp Việt Nam Bảng Thứ hạng ngơn ngữ lập trình Java. .. thêm vào Thread group 491 So sánh hiệu framework tập trung xử lý phía máy chủ tảng web với công nghệ Java ứng dụng Học viện Nơng nghiệp Việt Nam Hình Dữ liệu phản hồi từ request Jmeter gửi tới ứng