AcadIUH: Công cụ hỗ trợ sinh viên tại trường đại học công nghiệp Thành phố Hồ Chí Minh

pdf 16 trang Gia Huy 17/05/2022 2390
Bạn đang xem tài liệu "AcadIUH: Công cụ hỗ trợ sinh viên tại trường đại học công nghiệp Thành phố Hồ Chí Minh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfacadiuh_cong_cu_ho_tro_sinh_vien_tai_truong_dai_hoc_cong_ngh.pdf

Nội dung text: AcadIUH: Công cụ hỗ trợ sinh viên tại trường đại học công nghiệp Thành phố Hồ Chí Minh

  1. Tạp chí Khoa học và Cơng nghệ, Số 50, 2021 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH TƠN LONG PHƯỚC, ĐỖ ANH BƠN, TẠ MINH HIẾU Khoa Cơng nghệ thơng tin, Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh tonlongphuoc@iuh.edu.vn Tĩm tắt. Trường đại học Cơng nghiệp Tp.HCM là trường thuộc top 10 trường đại học hàng đầu của Việt Nam trong bảng xếp hạng QS năm 2021. Nơi đào tạo đa ngành nghề với cở sở hạ tầng đạt chuẩn và đội ngũ giảng viên cĩ chuyên mơn cao. Trường hiện nay cĩ hơn 30,000 sinh viên đang học tập và nghiên cứu. Vì vậy, việc hỗ trợ các cơng tác học vụ cho sinh viên đang học tập và nghiên cứu tại đây là cấp thiết. Chúng tơi, đề xuất một cơng cụ cĩ tên là AcadIUH nhằm hỗ trợ cho sinh viên thực hiện các nghiệp vụ học vụ tại trường. Cơng cụ này chúng tơi tập trung vào 2 phân hệ: Ứng dụng web và ứng dụng cho thiết bị di động. Hai phân hệ này chúng tơi triển khai đồng bộ với nhau nhằm tăng cường khả năng xử lý và truyền tải thơng tin kịp thời đến sinh viên. Cả hai phân hệ này chúng tơi tập trung giải quyết các vấn đề như: Đăng ký học phần của sinh viên; Quản lý thời khĩa biểu của sinh viên; Kế hoạch học tập của sinh viên; Quản lý kết quả học tập của sinh viên cũng như quản lý cơng nợ của sinh viên. Chúng tơi chọn lựa cơng nghệ để triển khai cho cả hai phân hệ trên là: Ngơn ngữ lập trình Java và Javascript, framework React Native, ReactJS, Nodejs và NPM, Spring Boot và Cloud Computing, cơ sở hạ tầng dưới dạng code bằng Terraform (HCL), các cơng cụ trong CI/CD. AcadIUH sẽ được triển khai cho các sinh viên thuộc bộ mơn SE khoa CNTT của trường nhằm đánh giá mức độ hiệu quả của cơng cụ. Trong tương lai, chúng tơi cũng sẽ phát triển cơng cụ này với việc tích hợp chúng vào hệ thống PMT và mở rộng cho phạm vi đối tượng sử dụng của cơng cụ. Từ khĩa. Cơng cụ hỗ trợ, Học vụ, Ứng dụng web, Ứng dụng trên di động. AcadIUH: ACADEMIC SUPPORT TOOL FOR STUDENTS AT INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY Abstract. Industrial University of Ho Chi Minh City is one of the top 10 universities in Vietnam in the QS rankings in 2021. The university also trains students for multiple industries. It has full standard infrastructure and highly qualified teaching staff. The school currently has more than 30,000 students studying and researching. Because of that, it is urgent to support academic work for students who are studying and doing research here. We are proposing a tool called AcadIUH to assist students in carrying out academic careers on campus. In AcadIUH, we focus on 2 modules: web applications and mobile applications. These two modules we deploy synchronously to enhance the ability to process and transmit information promptly to students. In both of these modules we focus on managing academic such as student enrollment; student timetable; student study plan; student performance and student debt. We choose the technology to deploy for both modules above: Java and Javascript programming language, framework React Native, ReactJS, Nodejs and NPM, Spring Boot and Cloud Computing, infrastructure as code by Terraform (HCL), tools CI/CD. AcadIUH will be deployed to students in the Information Technology department to assess the effectiveness of the tool. In the future, we will also develop this tool by integrating them into the PMT system and expanding the scope of the tool's audience. Keywords. Support Tools, Academic, Web Application, Mobile Application 1 GIỚI THIỆU TỔNG QUAN Trường ĐH Cơng nghiệp TP.HCM (IUH) là một trong những trường đại học hàng đầu của Bộ Cơng thương, cũng là trường cĩ qui mơ đào tạo lớn với hơn 30000 sinh viên học tập. Trường cũng đào tạo đa ngành, đa © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  2. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 269 THÀNH PHỐ HỒ CHÍ MINH bậc học và nhiều chương trình liên kết quốc tế1. Trường được đầu tư cơ sở vật chất tốt, đáp ứng nhu cầu của người học và các tiêu chuẩn quốc tế. Bên cạnh, đội ngũ giảng viên cĩ trình độ cao cùng với nhiều chương trình đào tạo đạt chuẩn quốc tế như AUN. Chính vì lẻ đĩ, nhà trường cần cĩ một hệ thống website hỗ trợ đào tạo một cách hiệu quả và kịp thời cho người hoc. Tuy nhiên, hệ thống website hỗ trợ cho người học hiện nay cịn nhiều hạn chế, điển hình là khả năng đáp ứng truy cập đồng thời của sinh viên trong một số thời điểm nhất định khơng được ổn định. Ví dụ như vào thời điểm nhà trường mở đăng ký lớp học phần cho học kì mới, mở đợt xét tuyển đầu cho các thí sinh thì nhu cầu truy cập website tăng cao một cách đột ngột. Lúc này hiện tượng trang khơng phản hồi khi truy cập website của nhà trường xảy ra thường xuyên trong nhiều ngày hoặc khơng thực hiện các chức năng trên hệ thống. Sinh viên khơng thể làm gì được trong vịng nhiều giờ dù đã tốn cơng sức và thời gian để đăng ký học phần chẳng hạn. Để xảy ra tình trạng này cũng cĩ nhiều nguyên nhân. Nguyên nhân đầu tiên là số lượng sinh viên truy cập website của trường tăng đột biến, từ đĩ dẫn đến việc số lượng yêu cầu (request) gửi lên máy chủ tăng cao. Thứ hai, xử lý quá nhiều yêu cầu vượt quá giới hạn của máy chủ gây hiện tượng trang khơng phản hồi trong vào nhiều giờ, nhiều ngày liền. Ngồi ra, cũng cịn cĩ những nguyên nhân khách quan khác như đường truyền và hệ thống hạ tầng của nhà trường chưa đáp ứng đủ mạnh. Vì vậy, giải pháp dễ thấy nhất là nâng cấp cấu hình của máy chủ, thậm chí là tăng số lượng máy chủ lên để xử lý được nhiều yêu cầu hơn. Đồng thời, nếu như việc đầu tư này đã đáp ứng, chúng ta cũng cần phải đưa ra các giải pháp này rõ ràng hơn như việc kết nối máy chủ mới vào hệ thống xử lý cũ cũng là một bài tốn lớn. Tương tự như với việc nâng cấp cấu hình cũng cĩ nhiều câu hỏi đặt ra: Nâng cấp trong bao lâu? Cĩ xảy ra rủi ro trong lúc nâng cấp khơng? Nếu phát sinh những vấn đề ngồi ý muốn lúc nâng cấp thì phải ứng cứu kịp thời như thế nào? Và cịn rất nhiều vấn đề cần giải quyết nữa. Trong đĩ một vấn đề chúng ta cũng cần lưu ý, đĩ là một năm chỉ xảy ra hai đến ba đợt mở lớp đăng ký học phần. Nghĩa là chỉ cĩ tại thời điểm đĩ thì nhu cầu mới vượt quá ngưỡng xử lý của máy chủ. Vậy nhà trường cĩ nên tốn kém hay khơng khi đầu tư một hệ thống với chi phí lớn cho một số sự cố xảy ra khơng thường xuyên? Để giải quyết các vấn đề đĩ, chúng tơi đã đưa ra các giải pháp như dùng điện tốn đám mây (cloud computing) nhằm tổ chức lưu trữ và xử lý các nghiệp vu; xây dựng hệ thống website và ứng dụng trên di động (app) cho sinh viên dễ dàng xử lý và giảm tải cho máy chủ. Nĩi về giải pháp sử dụng các dịch vụ trên điện tốn đám mây như cho thuê máy chủ, dùng các dịch vụ web nổi tiếng trên thế giới hiện nay đĩ là các dịch vụ cung cấp bởi các cơng ty như Amazon với AWS, Microsoft với Azure, trong nước cĩ các tổ chức như Viettel, FPT, Sao bắc đẩu Điện tốn đám mây là một giải pháp cĩ tính xu hướng tồn cầu cho các cá nhân, tổ chức, doanh nghiệp vừa và nhỏ [1]. Hiện nay, nhu cầu tạo ra các hệ thống dịch vụ trực tuyến phục vụ cho nhu cầu cá nhân, kinh doanh ngày càng nhiều. Những hệ thống này khi triển khai trên điện tốn đám mây sẽ cĩ chi phí rẻ, cấu hình đơn giản nhưng vẫn an tồn, bảo mật tốt, khả năng nâng cấp bảo trì hệ thống dễ dàng. Hơn hết, trong các ưu điểm trên là khả năng cân bằng tải, đĩ là ưu điểm tuyệt vời của điện tốn đám mây. Trong đĩ, Scale là dịch vụ cĩ khả năng tự động điều chỉnh số lượng máy chủ để đáp ứng nhu cầu truy cập của khách hàng (tăng khi yêu cầu nhiều và giảm khi yêu cầu ít). Do đĩ nhà phát triển hệ thống khơng cịn phải đầu tư quá nhiều chi phí chỉ để giải quyết nhu cầu cho việc sử dụng tài nguyên của hệ thống trong một quãng thời gian ngắn trong năm. Đĩ cũng là lý do chúng tơi chọn giải pháp này cho bài tốn xây dựng hệ thống hỗ trợ đào tạo cho sinh viên của IUH. Riêng giải pháp xây dựng website và ứng dụng trên di động cho sinh viên sử dụng nhằm giải quyết các nguyên nhân được liệt kê sau đây. Nguyên nhân thứ nhất là website của trường IUH thực hiện cơ chế kết xuất máy chủ Server-Side Rendering (SSR). Cơ chế SSR cĩ nhiều ưu điểm tuyệt vời như khả năng Search Engine Optimization (SEO) hiệu quả, chạy được trên phần lớn các trình duyệt thơng dụng (kể cả bị vơ hiệu hĩa JavaScript thì vẫn chạy tốt), hiệu năng cho lần tải trang đầu tiên tốt Nhưng cơ chế SSR lại cĩ một nhược điểm lớn chính là máy chủ phải đảm nhiệm gánh nặng kết xuất trang web (thuật tốn kết xuất lại tốn nhiều chi phí), gánh nặng trả về nội dung trang web (tốn nhiều băng thơng) và vơ tình làm tăng số lượng như cầu phải xử lý cho máy chủ [2]. Nguyên nhân thứ hai, đặt trường hợp khi nhu cầu truy cập website tăng cao đột biến, máy chủ phải thực hiện một số lượng yêu cầu cực lớn và cịn phải phụ trách gánh nặng kết xuất trang web và gửi trả về nĩ càng làm tình hình xấu đi. Hơn nữa, các trang web như trang đăng ký 1 www.iuh.edu.vn accessed 3/4/2021 © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  3. 270 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH học phần, quản lý thơng tin cho sinh viên là những trang web cĩ tính cá nhân nên cần rất ít khả năng SEO, tính chất tương thích với trình duyệt hồn tồn cĩ thể khắc phục được bởi lập trình viên. Đĩ cũng là lý do chúng tơi xây dựng ứng dụng cho thiết bị di động nhằm hỗ trợ cá nhân hĩa cũng như giảm tải cho máy chủ trong hệ thống. Để triển khai giải pháp trên, chúng tơi đã triển khai hệ thống web với kiến trúc micro-services. Micro-service là một kỹ thuật phát triển phần mềm, một biến thể của kiến trúc hướng dịch vụ (SOA), trong đĩ cấu trúc một ứng dụng như một tập hợp các dịch vụ được ghép với nhau [3]. Trong kiến trúc micro- service, các dịch vụ được xử lý tốt và các giao thức rất nhẹ. Lợi ích của việc phân tách một ứng dụng thành các dịch vụ nhỏ hơn là nĩ cải thiện tính mơ đun. Điều này làm cho ứng dụng trở nên gọn nhẹ, dễ hiểu, dễ phát triển và trở nên linh hoạt hơn. Cụ thể chúng tơi chia hệ thống làm hai phần chính: Front-end và Back- end. Front-end của chúng tơi ở đây chính là ứng dụng di động AcadIUH cho sinh viên, ứng dụng website AcadIUH cho quản trị viên và giảng viên của nhà trường. Front-end cũng sẽ đảm nhận trách nhiệm nhận dữ liệu, hiển thị dữ liệu cũng như các tương tác cho người dùng. Riêng website dành cho quản trị viên, giảng viên của nhà trường, chúng tơi sử dụng cơ chế kết xuất máy khách Client-Side Rendering (CSR) thay vì dùng cơ chế SSR trước đây. Chúng tơi chọn hướng tiếp cận này vì website cho quản trị viên vốn dĩ khơng cần quảng cáo (SEO) trên các cơng cụ tìm kiếm nên cơ chế CSR vơ cùng thích hợp. Back-end chúng tơi xây dựng hệ thống máy chủ khơng cần phải đảm nhiệm vai trị kết xuất trang web mà chỉ cần xử lý, lấy dữ liệu từ hệ cơ sở dữ liệu và trả về dưới định dạng JSON. Ngồi ra, khả năng phát triển song song và tương đối độc lập giữa Front-end và Back-end cũng là ưu điểm cho việc bảo trì và nâng cấp. Nhằm hỗ trợ cho giải pháp trên, việc bảo trì, sửa lỗi, nâng cấp, triển khai cũng là vấn đề quan trọng cần phải giải quyết. Chúng tơi ứng dụng Jenkins và Docker để tối ưu hĩa việc này. Jenkins nĩi riêng và các hệ thống CI/CD nĩi chung cho phép lập trình viên viết kịch bản cho quy trình bằng ngơn ngữ chuyên dụng và tự động hĩa mọi việc chỉ bằng một thao tác đơn giản [4]. Jenkins sẽ tự động thực hiện kiểm tra lỗi, kiểm tra hiệu năng ứng dụng, tự động xây dựng, triển khai phiên bản mới Quá trình triển khai hệ thống cũng tốn nhiều cơng sức, lập trình viên phải cài đặt mơi trường thích hợp để chạy được chương trình. Trong đĩ, cài đặt càng nhiều thì càng phát sinh nhiều vấn đề như phiên bản khơng tương thích, xung đột giữa các phần mềm được cài đặt Docker là cơng nghệ cho phép tạo ra các máy ảo, lập trình viên chỉ cần khai báo những thành phần cần thiết cho cấu hình thơng qua Dockerfile và Docker sẽ tự động cài đặt nĩ. Máy chủ khơng cần phải cài đặt quá nhiều thứ để chạy ứng dụng nữa mà chỉ cần cài đặt Docker. Bài báo của chúng tơi chia làm 5 phần: Phần 1 Giới thiệu tổng quan về hệ thống; Phần 2 Các cơng nghệ liên quan; Phần 3 Cơng cụ AcadIUH; Phần 4 Kiểm nghiệm thực tế và Phần 5 Kết luận và hướng phát triển. Trong đĩ Phần 3 là phần đĩng gĩp chính của bài báo. 2 CÁC CƠNG NGHỆ LIÊN QUAN 2.1 Ngơn ngữ phát triển ứng dụng 2.1.1 Ngơn ngữ lập trình Java Java là ngơn ngữ lập trình hướng đối tượng đang được duy trì và phát triển bởi Oracle. Java được sử dụng trong phát triển phần mềm ứng dụng desktop, website, game hay ứng dụng trên các thiết bị di động. Java cũng là một ngơn ngữ cho phép phát triển các ứng dụng chạy trên mọi nền tảng. Hiện nay, đội ngũ phát triển ứng ụng dùng ngơn ngữ Java ngày càng hùng hậu. Đội ngũ này cũng cung cấp một tập hợp các chương trình giúp lập trình viên phát triển và chạy các ứng dụng một cách hiệu quả. Java được tổ chức bao gồm một cơng cụ thực thi, một trình biên dịch và một bộ thư viện. James Gosling đã phát triển nền tảng Java tại Sun Microsystems và tập đồn Oracle sau đĩ đã mua lại nĩ và phát triển đến ngày hơm nay [5]. 2.1.2 Ngơn ngữ lập trình Javascript Javascript ra đời năm 1995, ban đầu Javascript khơng được xem là một ngơn ngữ lập trình mà chỉ được xem là một ngơn ngữ kịch bản (scripting language). Nguyên nhân là thời bấy giờ Javascript chỉ được sử dụng để xây dựng các tương tác với trang Web. Bản thân nĩ phải thực thi trong một chương trình khơng phải hệ điều hành (cụ thể là trình duyệt Web) [6]. Nhưng sau này, khi vai trị và sự phổ biến của websites ngày càng lớn, cộng với đĩ là sự ra đời và lớn mạnh thần tốc của NodeJS (2009) giúp Javascript khơng cịn là một ngơn ngữ phải thực thi trong trình duyệt. Hiện Javascript chính thức được cơng nhận là một ngơn ngữ lập trình chính thống. Javascript hoạt động được trên nhiều nền tảng (Web, Server) và là ngơn ngữ đơn giản, dễ học cho người mới sử dụng. Hiện nay, nhiều cơng nghệ xây dựng dựa trên Javascript như Nodejs, © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  4. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 271 THÀNH PHỐ HỒ CHÍ MINH React, VueJS Đồng thời Javasript cũng được dùng cho việc xây dựng nhiều ứng dụng với vai trị khác nhau từ Web, ứng dụng Mobile và một số ứng dụng khác (Hình 2.1.1). Hình 2.21 Những ứng dụng được phát triển bởi JavaScript [6] 2.2 Những framework hỗ trợ phát triển ứng dụng 2.2.1 Framework Spring Boot Spring Boot là khuơn mẫu (framework) phát triển dựa trên ngơn ngữ Java trong hệ sinh thái Spring framework [7]. Nĩ giúp cho các lập trình viên đơn giản hĩa quá trình lập trình một ứng dụng với Spring. Trong Spring Boot, người lập trình chỉ tập trung vào việc phát triển các nghiệp vụ cho ứng dụng mà khơng quan tâm nhiều về kiến trúc và mã nguồn của ứng dụng. Một kiến trúc webserver xây dựng dựa trên spring boot gồm các thành phần cơ bản như sau: Repository Class Extending, Service Layer, Model, Controller (Hình 2.2.2) Hình 2.2.2 Kiến trúc của luồng hoạt động của Spring Boot [7] Repository Class Extending là các thư viện hoặc framework được phát triển và duy trì bởi cộng đồng các lập trình viên Java để hỗ trợ quá trình xây dựng hệ thống một cách nhanh chĩng hoặc cũng cĩ thể là các lớp chứa các phương thức xử lý, truy xuất dữ liệu (CRUD) do lập trình viên viết ra; Service Layer là lớp dịch vụ chứa các phương thức (hàm) xử lý các yêu cầu như chỉnh sửa, lớp Service thường sử dụng các phương thức của các lớp trong Repository Class Extending (bằng cách gọi tới một hay kết hợp nhiều phương thức với nhau) để truy xuất, thêm, xĩa dữ liệu trong cơ sở dữ liệu. Nĩ là nơi tập trung các xử lý nghiệp vụ của hệ thống Back-end; Model là thành phần được đính kèm theo các truy vấn của Services Layer xuống cơ sở dữ liệu. Model đĩng nhiều vai trị quan trọng như phát sinh hệ cơ sở dữ liệu theo liên kết các lớp của lập trình viên, chuyển đổi kết quả truy xuất từ cơ sở dữ liệu thành các thực thể lớp; Controller là thành phần giao tiếp trực tiếp với phía client, tồn tại dưới dạng các API. Model cĩ trách nhiệm xử lý yêu cầu của client, xác minh các yêu cầu đĩ. Model truy cập đến phương thức phù hợp trong Service Layer để đạt được kết quả mong muốn, trả kết quả về cho phía client. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  5. 272 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH 2.2.2 React Native, React.js React Native là một thư viện mở dùng xây dựng ứng dụng di động dựa trên JavaScript. React Native được phát triển và duy trì bởi Facebook [8]. React Native giúp phát triển ứng dụng di động một cách nhanh chĩng. Nĩ hỗ trợ cho các ứng dụng chạy được trên hai nền tảng iOS và Android. React Native giúp lập trình viên chỉ cần phát triển ứng dụng trên một mã nguồn duy nhất mà vẫn cĩ thể tương thích với cả hai hệ điều hành Android và iOS (thậm chí là cả các hệ điều hành cho Ipad và và các dịng tivi). Ngồi ra, React.js nĩi chung và React Native nĩi riêng là cơng nghệ được yêu thích hiện nay. Phong cách xây dựng mã nguồn trong React Native là phân chia các khối chức năng giúp dễ dàng trong việc quản lý, bảo trì, sửa lỗi, nâng cấp ứng dụng. Tương tự React Native, ReactJs là cơng nghệ sử dụng việc xây dựng ứng dụng web dựa trên JavaScript được duy trì và phát triển bởi Facebook. ReactJs được nhận xét là dễ học, dễ hiểu, dễ làm quen nhưng hiệu quả lại cao, phù hợp với nhiều ứng dụng web, kể cả những ứng dụng cĩ quy mơ cực lớn (như Facebook). Tương tự React Native, ReactJs cũng cĩ cộng đồng lớn mạnh, nhiều thư viện và framework hỗ trợ [9]. Đội ngũ phát triển React cũng đang khơng ngừng làm việc hằng ngày để phát triển cơng nghệ này ngày một tốt hơn. Theo khảo sát của Stack Overflow, ReactJS là cơng nghệ Front- end được nhiều người quan tâm nhất trong vịng những năm từ 2019 trở lại đây (Hình 2.2.3). Cụ thể trong năm 2020, React.js dẫn đầu bảng khảo sát ở mức độ phổ biến và yêu thích trong danh sách các framework Front-end [10]. Hình 2.2.3 Khảo sát sự phổ biến của các framework Frontend [10] Node JS Node JS là một mơi trường máy chủ thực thi Javascript mã nguồn mở, hoạt động trên nhiều nền tảng như Windows, MacOS, Linux NodeJs là 1 cơng nghệ cĩ cộng đồng hỗ trợ và phát triển lớn mạnh. Năm 2019 Node JS bổ sung thêm được hơn 50% số lượng lập trình viên sử dụng trên thế giới. Đến nay vẫn chiếm vị thế là cơng nghệ được ưa chuộng và sử dụng nhiều nhất [11]. NodeJS khơng cần phải cấu hình phức tạp, xây dựng dựa trên Javascript, cho nên NodeJ S được nhiều lập trình viên ưa chuộng bởi tính đơn giản và tiện dụng của nĩ. Node JS được sử dụng làm webserver, làm mơi trường phát triển web (ReactJS), ứng dụng di động (React Native), Webserver được phát triển bằng Node JS cĩ hiệu năng, tốc độ xử lý cao nhưng vẫn cĩ khả năng bảo trì nâng cấp tốt. Hệ thống web xây dựng từ Node JS cĩ khả năng hoạt động ổn định, khắc phục nhiều điểm yếu của các webserver xây dựng dựa trên các cơng nghệ đa luồng (các bài tốn chống ách tắc luồng, xử lý đồng bộ và bất đồng bộ khi cùng truy cập đến một hoặc nhiều tài nguyên, là những bài tốn lớn đối với các lập trình viên). Bên cạnh đĩ, NodeJS cĩ số lượng rất lớn các thư viện được phát triển bởi cộng đồng lập trình viên. Hiện nay số lượng thư viện đã vượt qua con số 1,3 triệu là minh chứng cho thấy sức ảnh hưởng của cơng nghệ này. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  6. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 273 THÀNH PHỐ HỒ CHÍ MINH Hình 2.2.4 Kiến trúc của luồng hoạt động của Node JS [11] 2.3 Cloud Computing Điện tốn đám mây (Cloud Computing) là việc ảo hĩa các tài nguyên tính tốn và các ứng dụng. Thay vì việc sử dụng một hoặc nhiều máy chủ thật (ngay trước mắt, cĩ thể sờ được, cĩ thể tự bạn ấn nút bật tắt được) thì nay sẽ sử dụng các tài nguyên được ảo hĩa (virtualized) thơng qua mơi trường internet [12]. Việc phân phối các tài nguyên máy tính theo nhu cầu qua internet với chính sách thanh tốn theo mức sử dụng. Thay vì mua, sở hữu và bảo trì các trung tâm dữ liệu và máy chủ vật lý, cĩ thể tiếp cận các dịch vụ cơng nghệ, như năng lượng điện tốn, lưu trữ và cơ sở dữ liệu, khi cần thiết [13]. Hiện cĩ nhiều nhà cung cấp dịch vụ đám mây như Amazon Web Services (AWS), Google Cloud, Microsoft cĩ Azure. Lợi ích của Cloud Computing mang lại cho người dùng rất nhiều như tiết kiệm chi phí, khả năng mở rộng linh hoạt về quy mơ, hiệu năng cao, bảo mật, tốc độ truy xuất dữ liệu, năng suất của một hệ thống [14]. Hiện nay, Cloud cung cấp dịch vụ theo ba mơ hình cơ bản: Cơ sở hạ tầng như một dịch vụ (IaaS – Infrastructure as a Service), nền tảng như một dịch vụ (PaaS – Platform as a Service), phần mềm như một dịch vụ (SaaS – Software as a Service) [15]. Việc cung cấp nhiều mơ hình sẽ đáp ứng được nhu cầu đa dạng của các doanh nghiệp hiện nay. Ngồi ra, điện tốn đám mây cịn cĩ mơ hình triển khai như public/private cloud. 3. ACADIUH: CƠNG CỤ HỖ TRỢ HỌC TẬP CHO SINH VIÊN ĐẠI HỌC CƠNG NGHIỆP TP.HCM 2.4 Giới thiệu Để triển khai các giải pháp mà chúng tơi nêu ra trong phần giới thiệu, chúng tơi đề xuất xây dựng ứng dụng AcadIUH. Ứng dụng này chúng tơi xây dựng dựa vào các cơng nghệ như Spring Boot, ReactJS, React Navtive. Đồng thời, để triển khai ứng dụng AcadIUH đến thiết bị người dùng (sinh viên, giảng viên và quản trị), chúng tơi cũng dùng các dịch vụ như AWS và CI/CD. Hệ thống AcadIUH gồm ứng dụng trên điện thoại (app) và hệ thống website (Hình 3.1.1). Hình 3.1.1 Mơ hình Micro-Services của AcadIUH Trong đĩ, React Native tạo ứng dụng trên điện thoại hệ điều hành Android/iOS, phục vụ cho các chức năng của sinh viên. ReactJS tạo website cho admin, các chức năng cho admin như tuyển sinh, quản lý đào tạo Spring Boot chịu trách nhiệm tạo ra các API, xử lý các request. SQLServer dùng lưu trữ dữ liệu của tồn © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  7. 274 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH hệ thống như dữ liệu sinh viên, dữ liệu học phần Các dịch vụ điện tốn đám mây sử dụng trong AWS gồm: Elastic Container Service (ECS); RDS; AutoScalling; Load Balancer; Elastic Container Registry (ECR). Cụ thể các dịch vụ này đảm nhiệm các cơng việc như sau: ECS điều phối container hiệu suất cao cĩ hỗ trợ Docker; RDS lưu trữ dữ liệu quan hệ của hệ thống trên cloud; AutoScalling giúp tạo hoặc tắt số lượng server tuỳ vào lượng truy cập vào web/app trong một thời điểm; Load Balancer giúp điều hướng lượng truy cập, giúp cân bằng tải cho số lượng server hiện cĩ và ECR, nơi lưu trữ các hình ảnh trên AWS. 3.2 Kiến trúc phần mềm Micro-service là một kỹ thuật phát triển phần mềm, một biến thể của kiến trúc hướng dịch vụ (SOA), trong đĩ cấu trúc một ứng dụng như một tập hợp các dịch vụ được ghép với nhau [3]. Trong kiến trúc micro-service, các dịch vụ được xử lý tốt và các giao thức rất nhẹ. Đĩ cũng là lý do chúng tơi đề xuất cho kiến trúc của cơng cụ AcadIUH ở theo mơ hình Microservice. Trong kiến trúc này chúng tơi tách các service thành Profile Service, Manage Learning Service, Sign Up Modules Service, Authentication Service và Admin Service. Đồng thời, chúng tơi cũng đề xuất phần AWS Load Balancer cho việc triển khai hệ thống trên nền tảng điện tốn đám mây. Ngồi ra, dữ liệu chúng tơi cũng đề xuất tổ chức lưu trữ trên AWS RDS SQL sever (Hình 3.2.1). Hình 3.2.1 Kiến trúc microservice của cơng cụ AcadIUH đề xuất 2.3 Phân tích hệ thống cơng cụ AcadIUH Đối tượng người dùng cho hệ thống AcadIUH gồm cĩ sinh viên và quản trị viên của trường. Các chức năng của từng đối tượng được mơ tả trong Bảng 3.3.1. Trong đĩ, chúng tơi tập trung vào các chức năng chính của hệ thống mà hiện nay nhà trường đang gặp phải vấn đề khĩ khăn như đăng ký học phần. Ngồi ra, các chức năng của quản trị viên cũng được đưa vào nhằm hỗ trợ cho hệ thống đồng bộ các nghiệp vụ đào tạo và các thao tác của sinh viên. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  8. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 275 THÀNH PHỐ HỒ CHÍ MINH Bảng 3.3.1 Danh các chức năng trong cơng cụ AcadIUH Đối tượng Tên chức năng Mơ tả Xem thơng tin cá nhân Xem thơng tin cá nhân của sinh viên đã đăng nhập vào ứng dụng Đăng nhập tài khoản Đăng nhập vào hệ thống với tài khoản được tạo Đổi mật khẩu Đổi mật khẩu của tài khoản đã đăng nhập vào ứng dụng Quản lý đăng ký học phần Gồm các chức năng như xem danh sách học phần đã đăng ký, đăng ký lớp học phần, hủy đăng ký lớp học Sinh viên Sinh phần, xem chi tiết lịch học lớp học phần Quản lý thơng báo Cho phép nhận thơng báo cảnh báo lịch thi, cảnh báo học vụ, xem lịch sử thơng báo Tra cứu cơng nợ Xem cơng nợ của sinh viên (cơng nợ đã thanh tốn, chưa thanh tốn, tổng cơng nợ) Quản lý khoa cho phép thêm, xĩa, sửa thơng tin của khoa, xem danh sách khoa Quản lý chuyên ngành Cho phép thêm, xĩa, sửa thơng tin của chuyên ngành, xem danh sách chuyên ngành Quản lý sinh viên Cho phép thêm, xĩa, sửa thơng tin của sinh viên, xem danh sách sinh viên Quản lý mơn học Cho phép thêm, xĩa, sửa thơng tin của mơn học, xem danh sách mơn học Quản trị viên Quản Quản lý học phần Cho phép thêm, xĩa, sửa thơng tin của học phần, xem danh sách học phần Quản lý lớp học phần Cho phép thêm, xĩa, sửa thơng tin của lớp học phần, xem danh sách lớp học phần Từ những chức năng trên, chúng tơi tập trung vào các chức năng chính như: Đăng ký học phần, quản lý lớp học phần. Sau đĩ chúng tơi mở rộng các chức năng tương ứng như trong Hình 3.3.1. Trong mơ hình use-case chúng tơi trình bày, gồm cĩ hai thành phần actor chính mơ tả cho hai đối tượng người dùng mà chúng tơi hướng đến (sinh viên, nhân viên quản trị trường học). Trong đĩ, những use-case chính và phức tạp về nghiệp vụ địi hỏi nhiều xử lý cho hệ thống đĩ là: use-case số UC004-manage to sign up modules và use-case UC014-manage list of modules. Ngồi ra, chúng tơi cũng mở rộng các use-case cho các chức năng của hệ thống nhằm tạo điều kiện thuận lợi cho người dùng là sinh viên và nhân viên quản trị. Tuy nhiên, những chức năng của các dịch vụ trên hệ thống điện tốn đám mây như dịch vụ cân bằng (Load Balancer service), dịch vụ chứng thực (Authentication service) và các dịch vụ khác chúng tơi chưa đề cập ở đây. Chúng tơi sẽ trình bày các dịch vụ này trong phần 3.2 Kiến trúc của phần mềm. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  9. 276 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Hình 3.3.1 Danh sách các Use-case trong cơng cụ AcadIUH Với danh sách các chức năng trên, chúng tơi xây dựng mơ hình dữ liệu thể hiện tồn bộ cấu trúc cơ sở dữ liệu của AcadIUH (Hình 3.3.2). Trong đĩ, chúng tơi đặc biệt quan tâm đến quan hệ sinh_vien, khi số lượng thuộc tính khá nhiều và phức tạp. Đồng thời, quan hệ này cũng cĩ số lượng mối kết hợp nhiều nhất. Việc xác định sinh_vien càng chi tiết như thế, giúp cho việc đặc tả sinh viên trong thế giới thực một cách rõ ràng và tường minh. Bên cạnh đĩ, quan hệ lop_hoc_phan cũng là quan hệ cần phải bận tâm. Đây là quan hệ mà các thao tác xử lý cho cả hai đối tượng sinh viên và quản trị viên đều thường xuyên truy xuất. Việc xác định các thuộc tính chính xác cũng gĩp phần cho nghiệp vụ xử lý dễ dàng hơn. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  10. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 277 THÀNH PHỐ HỒ CHÍ MINH Hình 3.3.2 Lược đồ cơ sở dữ liệu trong cơng cụ AcadIUH 2.4 Giao diện đồ họa Cơng cụ AcadIUH triển khai trên hai nền tảng là web và app. Trong đĩ hệ thống app cho phép người dùng download và cài đặt trên các thiết bị chạy trên nền Android/iOS. Cơng cụ này sẽ cĩ giao diện người dùng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  11. 278 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH thân thiệt và đảm bảo tính ổn định trên các dịng điện thoại khác nhau. Chúng tơi cũng xin giới thiệu vài giao diện cho các chức năng trên ứng dụng trên. Đầu tiên, người dùng đăng nhập vào hệ thống, tài khoản sinh viên sử dụng là tài khoản do nhà trường cung cấp với tên đăng nhập ứng là mã số sinh viên và mật khẩu (Hình 3.4.1) Hình 3.4.1 Giao diện đăng nhập của AcadIUH Ở chức năng đổi mật khẩu, người dùng cĩ thể đổi mật khẩu theo ràng buộc nhất định, thay vì sử dụng mật khẩu mặc định mà nhà trường đã cung cấp. Giao diện đổi mật khẩu bao gồm mật khẩu hiện tại, mật khẩu mới và xác nhận mật khẩu, người dùng phải điền đầy đủ thơng tin ba trường này để đổi mật khẩu. Sau khi người dùng bấm đổi mật khẩu, ứng dụng sẽ hiển thị thơng báo rõ ràng đổi mật khẩu thành cơng hay thất bại, và ghi rõ lý do nếu thất bại (Hình 3.4.2) Hình 3.4.2 Giao diện thay đổi mật khẩu người dùng Ở mục Cá nhân, người dùng cĩ thể xem được các chức năng cơ bản một cách nhanh chĩng như xem lịch, đăng ký học phần. Thêm vào đĩ, tính năng đăng ký học phần sẽ là chức năng chính cho hệ thống. Ta cĩ thể © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  12. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 279 THÀNH PHỐ HỒ CHÍ MINH biết được chi tiết lớp, kiểm tra lịch trùng, kiểm tra mơn đã đăng ký hay những lớp học phần được mở trong học kỳ đĩ. Để thực hiện chức năng này, sinh viên phải thực hiện trong 4 bước. - Bước một: sinh viên phải chọn học kì cần đăng ký học phần, danh sách học kì hiển thị dưới dạng danh sách (dropdown). Ứng dụng sẽ tìm nạp và hiển thị những học phần sẽ mở lớp trong học kì đĩ. - Bước hai: sinh viên phải chọn học phần muốn đăng ký. Sau khi chọn, ứng dụng sẽ tìm nạp và hiển thị danh sách những lớp học phần tương ứng với học phần đã chọn. - Bước ba: sinh viên chọn lớp muốn đăng ký học. Ứng dụng sẽ tìm nạp và hiển thị chi tiết (thời khĩa biểu, nhĩm thực hành) của lớp học đĩ. Nếu đĩ là lớp cĩ học phần thực hành, sinh viên phải chọn nhĩm thực hành cho mình rồi mới cĩ thể chọn nút đăng ký. - Bước cuối: sinh viên nhấn nút đăng ký, ứng dụng sẽ thơng báo rõ ràng đăng ký thành cơng hay thất bại, nếu thất bại thì sẽ nêu rõ lý do. Ngồi ra, người dùng cĩ thể kiểm tra xem lớp học phần và nhĩm thực hành đã chọn cĩ trùng với những mơn học đã đăng ký trước đĩ hay khơng. Ứng dụng sẽ hiển thị danh sách các học phần bị trùng lịch học (Hình 3.4.3). Ở cuối giao diện là danh sách các lớp học phần đã đăng ký trong học kì này. Người dùng cĩ thể chọn hủy lớp học phần nếu muốn. Khi hủy, ứng dụng sẽ thơng báo thành cơng hay khơng và lý do đi kèm nếu thất bại (lớp học phần đã chấp nhận mở lớp, lớp học phần đã khĩa ). Người dùng cĩ thể chọn xem lịch học chi tiết của lớp học phần đã đăng ký đĩ. Hệ thống sẽ hiển thị chi tiết thời khĩa biểu. Hình 3.4.3 Quá trình đăng ký học phần trên cơng cụ AcadIUH Tính năng xem lịch học theo tuần, cĩ thể xem lịch học ở các tuần quá khứ, hiện tại, tương lai. Song với đĩ tính năng này sẽ thơng báo người dùng mỗi khi cĩ tiết, cĩ mơn sắp học trong ngày sau (hoặc tuần sau ). Cũng như việc thơng báo lịch thi giữa kỳ, cuối kỳ . Người dùng cĩ thể click vào các link học online ở mỗi mơn để được dẫn tới các app tương ứng trong điện thoại như Zoom, Google Meet, LMS của IUH. (Hình 3.4.4). © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  13. 280 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Hình 3.4.4 Màn hình xem thời khĩa biểu và các thơng báo cho các lịch học tiếp theo Ngồi ra, các tính năng xử lý trên Web cho nhân viên đào tạo (Quản trị viên) chúng tơi cũng đã triển khai. Nhân viên đào tạo cĩ thể đăng nhập vào hệ thống và thực hiện các chức năng như: Thêm các chương trình đào tạo, mở các học phần trong các học kỳ, Bên cạnh đĩ, hệ thống cũng sẽ cho phép thực hiện các chức năng với ràng buộc về thời gian cũng như các ràng buộc nghiệp vụ khác trong cơng tác đào tạo tại trường (Hình 3.4.5). Hình 3.4.5 Màn hình hệ thống Web dành cho nhân viên đào tạo với các chức năng tương ứng 4. KIỂM NGHIỆM THỰC TẾ Chúng tơi đã tiến hành triển khai hệ cơng cụ AcadIUH trên hệ thống điện tốn đám mây của AWS2. Trong giai đoạn này chúng tổ sử dụng Infrastructure của AWS. Dịch vụ này gồm một ECS Cluster dùng để quản lý các instance (máy chủ). Mỗi service sẽ được xác định chạy các container như hình service type là EC2 (chúng tơi chọn hệ điều hành Linux, phiên bản t2.micro) như Hình 4.1 2 © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  14. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 281 THÀNH PHỐ HỒ CHÍ MINH Hình 4.1 Cấu hình chi tiết của ECS Các service được tạo ra hoạt động ổn định cho cơng cụ AcadIUH (Hình 4.2). Những thơng số về tài nguyên sử dụng CPU (CPU credit balance) cũng như dung lượng đường truyền (Network packets) được đảm bảo trong các khoảng thời gian khi hệ thống tăng tốc xử lý (Bảng 4.1 mơ tả ý nghĩa của các thơng số). Tuy nhiên đây là phiên bản thử nghiệm nên sẽ dùng các service cĩ hiệu suất thấp hơn phiên bản triển khai trong thực tế. Ứng dụng web đã triển khai trên AWS, đường dẫn truy cập https sẽ được xác định bởi nhà trường. Ngồi ra ứng dụng chạy trên di động cũng sẽ được đưa lên CHPlay với tên là AcadIUH. Hình 4.2 Các thơng số Mornitoring hệ thống khi triển khai AcadIUH Bảng 4.1 Ý nghĩa các chỉ số trong monitoring Network in (bytes) Số byte mà ứng dụng sẽ nhận được trên tất cả các giao diện mạng. Số liệu này xác định khối lượng lưu lượng mạng đến cho một ứng dụng duy nhất. Đơn vị: Byte Network out (bytes) Số byte được gửi bởi ứng dụng trên tất cả các giao diện mạng. Số liệu này xác định khối lượng lưu lượng mạng đi từ một ứng dụng duy nhất. Đơn vị: Byte Network packets in Số lượng gĩi tin mà ứng dụng nhận được trên tất cả các giao diện mạng. Số (count) liệu này xác định khối lượng lưu lượng đến về số lượng gĩi trên một ứng dụng. Đơn vị: count Disk reads (bytes) Các byte được đọc từ tất cả các khối lượng lưu trữ ứng dụng cĩ sẵn cho ứng dụng. Số liệu này được sử dụng để xác định khối lượng dữ liệu mà ứng dụng đọc từ đĩa cứng. Điều này cĩ thể được sử dụng để xác định tốc độ của ứng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  15. 282 AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH dụng. Nếu khơng cĩ khối lượng lưu trữ nào, thì giá trị là 0 hoặc số liệu khơng được báo cáo. Đơn vị: Byte Disk, read operations Các thao tác đọc đã hồn thành từ tất cả các khối lượng lưu trữ ứng dụng cĩ (operations) sẵn cho ứng dụng trong một khoảng thời gian cụ thể. Nếu khơng cĩ khối lượng lưu trữ nào, thì giá trị là 0 hoặc số liệu khơng được báo cáo. Đơn vị: count Disk writes (bytes) Các byte được ghi vào tất cả các khối lượng lưu trữ cĩ sẵn cho ứng dụng đĩ. Số liệu này được sử dụng để xác định khối lượng dữ liệu mà ứng dụng ghi vào đĩa cứng. Điều này cĩ thể được sử dụng để xác định tốc độ của ứng dụng. Nếu khơng cĩ khối lượng lưu trữ nào, thì giá trị là 0 hoặc số liệu khơng được báo cáo. Đơn vị: Byte Disk, write operations Các thao tác ghi đã hồn thành vào tất cả khối lượng lưu trữ cĩ sẵn cho ứng (operations) dụng trong một khoảng thời gian cụ thể. Nếu khơng cĩ khối lượng lưu trữ nào, thì giá trị là 0 hoặc số liệu khơng được báo cáo. Đơn vị: count CPU credit usage (count) CPU Creadit quy định số lượng CPU bùng nổ của một phiên bản. Cĩ thể sử dụng CPU Creadit này để tăng hiệu suất của CPU trong suốt thời gian Burst. Giả sử đang vận hành ứng dụng ở 100% hiệu suất CPU trong 5 phút, sẽ tiêu tốn 5 (tức là 5 * 1,0) CPU Creadit. Tương tự, nếu chạy một ứng dụng ở 50% hiệu suất CPU trong 5 phút, sẽ tiêu tốn 2,5 (tức là 5 * 0,5) Tín dụng CPU. CPU credit balance CPU Credit Balance là số lượng CPU Creadit cĩ sẵn trong tài khoản của bất (count) kỳ lúc nào. 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Bài báo này chúng tơi đã đưa ra hai giải pháp cho bài tốn xây dựng cơng cụ AcadIUH nhằm hỗ trợ cho cơng việc học tập của sinh viên trường đại học Cơng nghiệp Tp.HCM. Trong đĩ, giải pháp đầu tiên chúng tơi đã triển khai ứng dụng chạy trên thiết bị di động cĩ tên là AcadIUH. Ứng dụng này chạy trên cả hai nền tảng thơng dụng là Android và iOS. Giải pháp thứ hai, chúng tơi cũng triển khai cho cơng cụ trên và hệ thống website trên nền tảng điện tốn đám mây. Đồng thời cũng kiểm chứng được tính ổn định của hệ thống khi triển khai trên nền tảng này. Trong cả hai giải pháp trên chúng tơi đều áp dụng cơng nghệ phù hợp nhằm tối ưu tài nguyên cũng như đảm bảo được tính hiệu quả của hệ thống. Cụ thể là phần ứng dụng trên di động chúng tơi triển khai trên cơng nghệ như React Native tạo ứng dụng, ReactJS tạo website cho quản trị, Spring Boot tạo các hàm API trong kiến trúc microservice. Phần triển khai trên điện tốn đám mây chúng tơi dùng Elastic Container Service (ECS); RDS; AutoScalling; Load Balancer; Elastic Container Registry (ECR). Tuy nhiên, cơng cụ vẫn cịn một số hạn chế là quá trình chúng tơi thử nghiệm chỉ với số lượng truy xuất vừa và nhỏ. Hệ thống cần thêm việc thử nghiệm DOS server, tạo ra lượng truy cập ảo (cĩ thể lên tới 100.000 request) để tiến hành monitoring, maintain nhằm đảm bảo tính mở rộng của hệ thống. Ngồi ra, các chức năng trên hệ thống web dành cho nhà quản trị vẫn cịn hạn chế, chưa đáp ứng hết các chức năng hỗ trợ. Phần ứng dụng trên thiết bị di động cũng chưa được triển khai trên các store để hỗ trợ cho sinh viên sử dụng. Trong tương tai, chúng tơi sẽ dành tài nguyên và nhân lực để giải quyết các hạn chế trên. © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh
  16. AcadIUH: CƠNG CỤ HỖ TRỢ SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP 283 THÀNH PHỐ HỒ CHÍ MINH REFERENCES [1] Liu, J., Ahmed, E., Shiraz, M., Gani, A., Buyya, R., & Qureshi, A. (2015). Application partitioning algorithms in mobile cloud computing: Taxonomy, review and future directions. Journal of Network and Computer Applications, 48, 99-117. [2] Kishore, P., & Mahendra, B. M. (2020). Evolution of Client-Side Rendering over Server-Side Rendering. Recent Trends in Information Technology and its Application, 3(2). [3] Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2016). Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE Software, 33(3), 42-52. [4] Philips, J. (2019). Workflow automation using Docker Swarm and GitLab CI at Flanders Institute for Biomechanical Experimentation. In procceeding of NL-RSE19 conference on Research Software Engineering, Amsterdam, Netherlands. [5] accessed 03/4/2021 [6] acccessed 03/4/2021 [7] Walls, C. (2015). Spring Boot in action. Simon and Schuster. [8] Danielsson, W. (2016). React Native application development. Linkưpings universitet, Swedia, 10(4). [9] Rawat, P., & Mahajan, A. N. (2018) ReactJS: A Modern Web Development Framework. [10] acccessed 10/4/2021 [11] acccessed 03/4/2021 acccessed 05/4/2021 [12] Correia, R. C. M. (2020). Analysis of Node. js Application Performance Using MongoDB Drivers. Information Technology and Systems: In Proceedings of ICITS 2020, 1137, 213. [13] acccessed 05/4/2021 [14] acccessed 05/4/2021 [15] acccessed 05/4/2021 Ngày nhận bài: 28/04/2021 Ngày chấp nhận đăng:15/07/2021 © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh