Bài viết trình bày việc đề 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 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ệ 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.
Tạp chí Khoa học 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 trường thuộc top 10 trường đại học hàng đầu Việt Nam 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 đội ngũ giảng viên có chun mơn cao Trường có 30,000 sinh viên học tập nghiên cứu Vì vậy, việc hỗ trợ công tác học vụ cho sinh viên học tập nghiên cứu cấp thiết Chúng tơi, đề xuất cơng cụ có tên AcadIUH nhằm hỗ trợ cho sinh viên thực nghiệp vụ học vụ trường Công cụ tập trung vào phân hệ: Ứng dụng web ứng dụng cho thiết bị di động Hai phân hệ triển khai đồng với nhằm tăng cường khả xử lý truyền tải thông tin kịp thời đến sinh viên Cả hai phân hệ tập trung giải vấn đề như: Đăng ký học phần sinh viên; Quản lý thời khóa biểu sinh viên; Kế hoạch học tập sinh viên; Quản lý kết học tập sinh viên quản lý công nợ sinh viên Chúng chọn lựa công nghệ để triển khai cho hai phân hệ là: Ngôn ngữ lập trình Java Javascript, framework React Native, ReactJS, Nodejs NPM, Spring Boot Cloud Computing, sở hạ tầng dạng code Terraform (HCL), công cụ CI/CD AcadIUH triển khai cho sinh viên thuộc môn SE khoa CNTT trường nhằm đánh giá mức độ hiệu công cụ Trong tương lai, phát triển công cụ với việc tích hợp chúng vào hệ thống PMT mở rộng cho phạm vi đối tượng sử dụng cơng cụ Từ khóa Cơng cụ hỗ trợ, Học vụ, Ứng dụng web, Ứng dụng 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 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 GIỚI THIỆU TỔNG QUAN Trường ĐH Công nghiệp TP.HCM (IUH) trường đại học hàng đầu Bộ Cơng thương, trường có qui mô đào tạo lớn với 30000 sinh viên học tập Trường đào tạo đa ngành, đa © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 269 bậc học nhiều chương trình liên kết quốc tế1 Trường đầu tư sở vật chất tốt, đáp ứng nhu cầu người học tiêu chuẩn quốc tế Bên cạnh, đội ngũ giảng viên có trình độ cao với nhiều chương trình đào tạo đạt chuẩn quốc tế AUN Chính lẻ đó, nhà trường cần có hệ thống website hỗ trợ đào tạo cách hiệu kịp thời cho người hoc Tuy nhiên, hệ thống website hỗ trợ cho người học cịn nhiều hạn chế, điển hình khả đáp ứng truy cập đồng thời sinh viên số thời điểm định không ổn định Ví dụ 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 thí sinh nhu cầu truy cập website tăng cao cách đột ngột Lúc tượng trang không phản hồi truy cập website nhà trường xảy thường xuyên nhiều ngày không thực chức hệ thống Sinh viên khơng thể làm vịng nhiều dù tốn cơng sức thời gian để đăng ký học phần chẳng hạn Để xảy tình trạng có nhiều ngun nhân Ngun nhân số lượng sinh viên truy cập website 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ý nhiều yêu cầu vượt giới hạn máy chủ gây tượng trang không phản hồi vào nhiều giờ, nhiều ngày liền Ngồi ra, cịn có ngun nhân khách quan khác đường truyền hệ thống hạ tầng nhà trường chưa đáp ứng đủ mạnh Vì vậy, giải pháp dễ thấy nâng cấp cấu hình máy chủ, chí tăng số lượng máy chủ lên để xử lý nhiều yêu cầu Đồng thời, việc đầu tư đáp ứng, cần phải đưa giải pháp rõ ràng việc kết nối máy chủ vào hệ thống xử lý cũ toán lớn Tương tự với việc nâng cấp cấu hình có nhiều câu hỏi đặt ra: Nâng cấp bao lâu? Có xảy rủi ro lúc nâng cấp không? Nếu phát sinh vấn đề ngồi ý muốn lúc nâng cấp phải ứng cứu kịp thời nào? Và nhiều vấn đề cần giải Trong vấn đề cần lưu ý, năm xảy hai đến ba đợt mở lớp đăng ký học phần Nghĩa có thời điểm nhu cầu vượt q ngưỡng xử lý máy chủ Vậy nhà trường có nên tốn hay không đầu tư hệ thống với chi phí lớn cho số cố xảy khơng thường xun? Để giải vấn đề đó, đưa giải pháp dùng điện toán đám mây (cloud computing) nhằm tổ chức lưu trữ xử lý nghiệp vu; xây dựng hệ thống website ứng dụng di động (app) cho sinh viên dễ dàng xử lý giảm tải cho máy chủ Nói giải pháp sử dụng dịch vụ điện toán đám mây cho thuê máy chủ, dùng dịch vụ web… tiếng giới dịch vụ cung cấp công ty Amazon với AWS, Microsoft với Azure, nước có tổ chức Viettel, FPT, Sao bắc đẩu… Điện toán đám mây giải pháp có tính xu hướng tồn cầu cho cá nhân, tổ chức, doanh nghiệp vừa nhỏ [1] Hiện nay, nhu cầu tạo hệ thống dịch vụ trực tuyến phục vụ cho nhu cầu cá nhân, kinh doanh ngày nhiều Những hệ thống triển khai điện tốn đám mây có chi phí rẻ, cấu hình đơn giản an tồn, bảo mật tốt, khả nâng cấp bảo trì hệ thống dễ dàng Hơn hết, ưu điểm khả cân tải, ưu điểm tuyệt vời điện tốn đám mây Trong đó, Scale dịch vụ có khả tự động điều chỉnh số lượng máy chủ để đáp ứng nhu cầu truy cập khách hàng (tăng yêu cầu nhiều giảm u cầu ít) Do nhà phát triển hệ thống khơng cịn phải đầu tư q nhiều chi phí để giải nhu cầu cho việc sử dụng tài nguyên hệ thống quãng thời gian ngắn năm Đó lý chúng tơi chọn giải pháp cho toán xây dựng hệ thống hỗ trợ đào tạo cho sinh viên IUH Riêng giải pháp xây dựng website ứng dụng di động cho sinh viên sử dụng nhằm giải nguyên nhân liệt kê sau Nguyên nhân thứ website trường IUH thự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 khả Search Engine Optimization (SEO) hiệu quả, chạy phần lớn trình duyệt thơng dụng (kể bị vơ hiệu hóa JavaScript chạy tốt), hiệu cho lần tải trang tốt Nhưng chế SSR lại có nhược điểm lớn 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ả nội dung trang web (tốn nhiều băng thơng) vơ tình làm tăng số lượng cầu phải xử lý cho máy chủ [2] Nguyên nhân thứ hai, đặt trường hợp nhu cầu truy cập website tăng cao đột biến, máy chủ phải thực số lượng yêu cầu cực lớn phải phụ trách gánh nặng kết xuất trang web gửi trả làm tình hình xấu Hơn nữa, trang web trang đăng ký www.iuh.edu.vn accessed 3/4/2021 © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 trang web có tính cá nhân nên cần khả SEO, tính chất tương thích với trình duyệt hồn tồn khắc phục lập trình viên Đó lý xây dựng ứng dụng cho thiết bị di động nhằm hỗ trợ cá nhân hóa giảm tải cho máy chủ hệ thống Để triển khai giải pháp trên, triển khai hệ thống web với kiến trúc micro-services Micro-service kỹ thuật phát triển phần mềm, biến thể kiến trúc hướng dịch vụ (SOA), cấu trúc ứng dụng tập hợp dịch vụ ghép với [3] Trong kiến trúc microservice, dịch vụ xử lý tốt giao thức nhẹ Lợi ích việc phân tách ứng dụng thành dịch vụ nhỏ cải thiện tính mơ đun Điều làm cho ứng dụng trở nên gọn nhẹ, dễ hiểu, dễ phát triển trở nên linh hoạt Cụ thể chia hệ thống làm hai phần chính: Front-end Backend Front-end chúng tơi ứng dụng di động AcadIUH cho sinh viên, ứng dụng website AcadIUH cho quản trị viên giảng viên nhà trường Front-end đảm nhận trách nhiệm nhận liệu, hiển thị liệu tương tác cho người dùng Riêng website dành cho quản trị viên, giảng viên nhà trường, sử dụng chế kết xuất máy khách Client-Side Rendering (CSR) thay dùng chế SSR trước Chúng tơi chọn hướng tiếp cận website cho quản trị viên không cần quảng cáo (SEO) cơng cụ tìm kiếm nên chế CSR vơ 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à cần xử lý, lấy liệu từ hệ sở liệu trả định dạng JSON Ngoài ra, khả phát triển song song tương đối độc lập Front-end Back-end ưu điểm cho việc bảo trì 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 vấn đề quan trọng cần phải giải Chúng ứng dụng Jenkins Docker để tối ưu hóa việc Jenkins nói riêng hệ thống CI/CD nói chung cho phép lập trình viên viết kịch cho quy trình ngơn ngữ chun dụng tự động hóa việc thao tác đơn giản [4] Jenkins tự động thực kiểm tra lỗi, kiểm tra hiệu ứng dụng, tự động xây dựng, triển khai phiên Quá trình triển khai hệ thố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 chương trình Trong đó, cài đặt nhiều phát sinh nhiều vấn đề phiên không tương thích, xung đột phần mềm cài đặt…Docker công nghệ cho phép tạo máy ảo, lập trình viên cần khai báo thành phần cần thiết cho cấu hình thơng qua Dockerfile Docker tự động cài đặt Máy chủ khơng cần phải cài đặt nhiều thứ để chạy ứng dụng mà cần cài đặt Docker Bài báo chia làm phần: Phần Giới thiệu tổng quan hệ thống; Phần Các công nghệ liên quan; Phần Công cụ AcadIUH; Phần Kiểm nghiệm thực tế Phần Kết luận hướng phát triển Trong Phần phần đóng góp báo 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 ngơn ngữ lập trình hướng đối tượng trì phát triển Oracle Java sử dụng phát triển phần mềm ứng dụng desktop, website, game hay ứng dụng thiết bị di động Java ngôn ngữ cho phép phát triển ứng dụng chạy tảng Hiện nay, đội ngũ phát triển ứng ụng dùng ngôn ngữ Java ngày hùng hậu Đội ngũ cung cấp tập hợp chương trình giúp lập trình viên phát triển chạy ứng dụng cách hiệu Java tổ chức bao gồm cơng cụ thực thi, trình biên dịch thư viện James Gosling phát triển tảng Java Sun Microsystems tập đoàn Oracle sau mua lại phát triển đến ngày hơm [5] 2.1.2 Ngơn ngữ lập trình Javascript Javascript đời năm 1995, ban đầu Javascript không xem ngơn ngữ lập trình mà xem ngôn ngữ kịch (scripting language) Nguyên nhân thời Javascript sử dụng để xây dựng tương tác với trang Web Bản thân phải thực thi chương trình khơng phải hệ điều hành (cụ thể trình duyệt Web) [6] Nhưng sau này, vai trò phổ biến websites ngày lớn, cộng với đời lớn mạnh thần tốc NodeJS (2009) giúp Javascript khơng cịn ngơn ngữ phải thực thi trình duyệt Hiện Javascript thức cơng nhận ngơn ngữ lập trình thống Javascript hoạt động nhiều tảng (Web, Server) ngôn ngữ đơn giản, dễ học cho người sử dụng Hiện nay, nhiều công nghệ xây dựng dựa Javascript Nodejs, © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 271 React, VueJS Đồng thời Javasript dùng cho việc xây dựng nhiều ứng dụng với vai trò khác từ Web, ứng dụng Mobile số ứng dụng khác (Hình 2.1.1) Hình 2.21 Những ứng dụng phát triển JavaScript [6] 2.2 Những framework hỗ trợ phát triển ứng dụng 2.2.1 Framework Spring Boot Spring Boot khuôn mẫu (framework) phát triển dựa ngôn ngữ Java hệ sinh thái Spring framework [7] Nó giúp cho lập trình viên đơn giản hóa q trình lập trình ứng dụng với Spring Trong Spring Boot, người lập trình tập trung vào việc phát triển nghiệp vụ cho ứng dụng mà không quan tâm nhiều kiến trúc mã nguồn ứng dụng Một kiến trúc webserver xây dựng dựa spring boot gồm thành phần sau: Repository Class Extending, Service Layer, Model, Controller (Hình 2.2.2) Hình 2.2.2 Kiến trúc luồng hoạt động Spring Boot [7] Repository Class Extending thư viện framework phát triển trì cộng đồng lập trình viên Java để hỗ trợ trình xây dựng hệ thống cách nhanh chóng lớp chứa phương thức xử lý, truy xuất liệu (CRUD) lập trình viên viết ra; Service Layer lớp dịch vụ chứa phương thức (hàm) xử lý yêu cầu chỉnh sửa, lớp Service thường sử dụng phương thức lớp Repository Class Extending (bằng cách gọi tới hay kết hợp nhiều phương thức với nhau) để truy xuất, thêm, xóa liệu sở liệu Nó nơi tập trung xử lý nghiệp vụ hệ thống Back-end; Model thành phần đính kèm theo truy vấn Services Layer xuống sở liệu Model đóng nhiều vai trò quan trọng phát sinh hệ sở liệu theo liên kết lớp lập trình viên, chuyển đổi kết truy xuất từ sở liệu thành thực thể lớp; Controller thành phần giao tiếp trực tiếp với phía client, tồn dạng API Model có trách nhiệm xử lý yêu cầu client, xác minh yêu cầu Model truy cập đến phương thức phù hợp Service Layer để đạt kết mong muốn, trả kết cho phía client © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 thư viện mở dùng xây dựng ứng dụng di động dựa JavaScript React Native phát triển trì Facebook [8] React Native giúp phát triển ứng dụng di động cách nhanh chóng Nó hỗ trợ cho ứng dụng chạy hai tảng iOS Android React Native giúp lập trình viên cần phát triển ứng dụng mã nguồn mà tương thích với hai hệ điều hành Android iOS (thậm chí hệ điều hành cho Ipad và dịng tivi) Ngồi ra, React.js nói chung React Native nói riêng cơng nghệ u thích Phong cách xây dựng mã nguồn React Native phân chia khối chức giúp dễ dàng 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 công nghệ sử dụng việc xây dựng ứng dụng web dựa JavaScript trì phát triển Facebook ReactJs nhận xét dễ học, dễ hiểu, dễ làm quen hiệu lại cao, phù hợp với nhiều ứng dụng web, kể ứng dụng có quy mơ cực lớn (như Facebook) Tương tự React Native, ReactJs có cộng đồng lớn mạnh, nhiều thư viện framework hỗ trợ [9] Đội ngũ phát triển React không ngừng làm việc ngày để phát triển công nghệ ngày tốt Theo khảo sát Stack Overflow, ReactJS công nghệ Frontend nhiều người quan tâm vòng năm từ 2019 trở lại (Hình 2.2.3) Cụ thể năm 2020, React.js dẫn đầu bảng khảo sát mức độ phổ biến yêu thích danh sách framework Front-end [10] Hình 2.2.3 Khảo sát phổ biến framework Frontend [10] Node JS Node JS môi trường máy chủ thực thi Javascript mã nguồn mở, hoạt động nhiều tảng Windows, MacOS, Linux NodeJs cơng nghệ có cộng đồng hỗ trợ phát triển lớn mạnh Năm 2019 Node JS bổ sung thêm 50% số lượng lập trình viên sử dụng giới Đến chiếm vị công nghệ ưa chuộng sử dụng nhiều [11] NodeJS khơng cần phải cấu hình phức tạp, xây dựng dựa Javascript, NodeJ S nhiều lập trình viên ưa chuộng tính đơn giản tiện dụng Node JS 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 phát triển Node JS có hiệu năng, tốc độ xử lý cao có khả bảo trì nâng cấp tốt Hệ thống web xây dựng từ Node JS có khả hoạt động ổn định, khắc phục nhiều điểm yếu webserver xây dựng dựa công nghệ đa luồng (các toán chống ách tắc luồng, xử lý đồng bất đồng truy cập đến nhiều tài nguyên,… tốn lớn lập trình viên) Bên cạnh đó, NodeJS có số lượng lớn thư viện phát triển cộng đồng lập trình viên Hiện số lượng thư viện vượt qua số 1,3 triệu minh chứng cho thấy sức ảnh hưởng cơng nghệ © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 273 Hình 2.2.4 Kiến trúc luồng hoạt động Node JS [11] 2.3 Cloud Computing Điện toán đám mây (Cloud Computing) việc ảo hóa tài ngun tính tốn ứng dụng Thay việc sử dụng nhiều máy chủ thật (ngay trước mắt, sờ được, tự bạn ấn nút bật tắt được) sử dụng tài ngun ảo hóa (virtualized) thơng qua môi trường internet [12] Việc phân phối tài nguyên máy tính theo nhu cầu qua internet với sách tốn theo mức sử dụng Thay mua, sở hữu bảo trì trung tâm liệu máy chủ vật lý, tiếp cận dịch vụ cơng nghệ, lượng điện tốn, lưu trữ sở liệu, cần thiết [13] Hiện có nhiều nhà cung cấp dịch vụ đám mây Amazon Web Services (AWS), Google Cloud, Microsoft có Azure Lợi ích Cloud Computing mang lại cho người dùng nhiều tiết kiệm chi phí, khả mở rộng linh hoạt quy mô, hiệu cao, bảo mật, tốc độ truy xuất liệu, suất hệ thống [14] Hiện nay, Cloud cung cấp dịch vụ theo ba mơ hình bản: Cơ sở hạ tầng dịch vụ (IaaS – Infrastructure as a Service), tảng dịch vụ (PaaS – Platform as a Service), phần mềm dịch vụ (SaaS – Software as a Service) [15] Việc cung cấp nhiều mơ hình đáp ứng nhu cầu đa dạng doanh nghiệp Ngồi ra, điện tốn đám mây cịn có mơ hình triển khai public/private cloud 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 giải pháp mà nêu phần giới thiệu, đề xuất xây dựng ứng dụng AcadIUH Ứng dụng xây dựng dựa vào công nghệ 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 quản trị), dùng dịch vụ AWS CI/CD Hệ thống AcadIUH gồm ứng dụng điện thoại (app) hệ thống website (Hình 3.1.1) Hình 3.1.1 Mơ hình Micro-Services AcadIUH Trong đó, React Native tạo ứng dụng điện thoại hệ điều hành Android/iOS, phục vụ cho chức sinh viên ReactJS tạo website cho admin, chức cho admin tuyển sinh, quản lý đào tạo… Spring Boot chịu trách nhiệm tạo API, xử lý request SQLServer dùng lưu trữ liệu tồn © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 liệu sinh viên, liệu học phần…Các dịch vụ điện toán đám mây sử dụng AWS gồm: Elastic Container Service (ECS); RDS; AutoScalling; Load Balancer; Elastic Container Registry (ECR) Cụ thể dịch vụ đảm nhiệm công việc sau: ECS điều phối container hiệu suất cao có hỗ trợ Docker; RDS lưu trữ liệu quan hệ hệ thống cloud; AutoScalling giúp tạo tắt số lượng server tuỳ vào lượng truy cập vào web/app thời điểm; Load Balancer giúp điều hướng lượng truy cập, giúp cân tải cho số lượng server có ECR, nơi lưu trữ hình ảnh AWS 3.2 Kiến trúc phần mềm Micro-service kỹ thuật phát triển phần mềm, biến thể kiến trúc hướng dịch vụ (SOA), cấu trúc ứng dụng tập hợp dịch vụ ghép với [3] Trong kiến trúc micro-service, dịch vụ xử lý tốt giao thức nhẹ Đó lý đề xuất cho kiến trúc công cụ AcadIUH theo mơ hình Microservice Trong kiến trúc tách service thành Profile Service, Manage Learning Service, Sign Up Modules Service, Authentication Service Admin Service Đồng thời, đề xuất phần AWS Load Balancer cho việc triển khai hệ thống tảng điện tốn đám mây Ngồi ra, liệu chúng tơi đề xuất tổ chức lưu trữ AWS RDS SQL sever (Hình 3.2.1) Hình 3.2.1 Kiến trúc microservice 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 quản trị viên trường Các chức đối tượng mô tả Bảng 3.3.1 Trong đó, chúng tơi tập trung vào chức hệ thống mà nhà trường gặp phải vấn đề khó khăn đăng ký học phần Ngoài ra, chức quản trị viên đưa vào nhằm hỗ trợ cho hệ thống đồng nghiệp vụ đào tạo thao tác sinh viên © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 275 Bảng 3.3.1 Danh chức công cụ AcadIUH Quản trị viên Sinh viên Đối tượng Tên chức Mô tả Xem thông tin cá nhân Xem thông tin cá nhân 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 tạo Đổi mật Đổi mật tài khoản đăng nhập vào ứng dụng Quản lý đăng ký học phần Gồm chức 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 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ợ sinh viên (công nợ tốn, chưa tốn, tổng cơng nợ) Quản lý khoa cho phép thêm, xóa, sửa thơng tin 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 chun 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 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 mơn học, xem danh sách môn học Quản lý học phần Cho phép thêm, xóa, sửa thơng tin 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 lớp học phần, xem danh sách lớp học phần Từ chức trên, chúng tơi tập trung vào chức như: Đăng ký học phần, quản lý lớp học phần Sau mở rộng chức tương ứng 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 mơ tả cho hai đối tượng người dùng mà hướng đến (sinh viên, nhân viên quản trị trường học) Trong đó, use-case phức tạp nghiệp vụ địi hỏi nhiều xử lý cho hệ thống là: use-case số UC004-manage to sign up modules use-case UC014-manage list of modules Ngồi ra, chúng tơi mở rộng use-case cho chức hệ thống nhằm tạo điều kiện thuận lợi cho người dùng sinh viên nhân viên quản trị Tuy nhiên, chức dịch vụ hệ thống điện toán đám mây dịch vụ cân (Load Balancer service), dịch vụ chứng thực (Authentication service) dịch vụ khác chưa đề cập Chúng trình bày dịch vụ phần 3.2 Kiến trúc phần mềm © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 Use-case công cụ AcadIUH Với danh sách chức trên, chúng tơi xây dựng mơ hình liệu thể toàn cấu trúc sở liệu AcadIUH (Hình 3.3.2) Trong đó, chúng tơi đặc biệt quan tâm đến quan hệ sinh_vien, số lượng thuộc tính nhiều phức tạp Đồng thời, quan hệ có số lượng mối kết hợp nhiều Việc xác định sinh_vien chi tiết thế, giúp cho việc đặc tả sinh viên giới thực cách rõ ràng tường minh Bên cạnh đó, quan hệ lop_hoc_phan quan hệ cần phải bận tâm Đây quan hệ mà thao tác xử lý cho hai đối tượng sinh viên quản trị viên thường xuyên truy xuất Việc xác định thuộc tính xác góp phần cho nghiệp vụ xử lý dễ dàng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 277 Hình 3.3.2 Lược đồ sở liệu công cụ AcadIUH 2.4 Giao diện đồ họa Công cụ AcadIUH triển khai hai tảng web app Trong hệ thống app cho phép người dùng download cài đặt thiết bị chạy Android/iOS Công cụ có giao diện người dùng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 đảm bảo tính ổn định dịng điện thoại khác Chúng xin giới thiệu vài giao diện cho chức ứng dụng Đầ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 tài khoản nhà trường cung cấp với tên đăng nhập ứng mã số sinh viên mật (Hình 3.4.1) Hình 3.4.1 Giao diện đăng nhập AcadIUH Ở chức đổi mật khẩu, người dùng đổi mật theo ràng buộc định, thay sử dụng mật mặc định mà nhà trường cung cấp Giao diện đổi mật bao gồm mật tại, mật xác nhận mật khẩu, người dùng phải điền đầy đủ thông tin ba trường để đổi mật Sau người dùng bấm đổi mật khẩu, ứng dụng hiển thị thông báo rõ ràng đổi mật thành công hay thất bại, ghi rõ lý thất bại (Hình 3.4.2) Hình 3.4.2 Giao diện thay đổi mật người dùng Ở mục Cá nhân, người dùng xem chức cách nhanh chóng xem lịch, đăng ký học phần Thêm vào đó, tính đăng ký học phần chức cho hệ thống Ta © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 279 biết chi tiết lớp, kiểm tra lịch trùng, kiểm tra môn đăng ký hay lớp học phần mở học kỳ Để thực chức này, sinh viên phải thực 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ạng danh sách (dropdown) Ứng dụng tìm nạp hiển thị học phần mở lớp học kì - Bước hai: sinh viên phải chọn học phần muốn đăng ký Sau chọn, ứng dụng tìm nạp hiển thị danh sách 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 tìm nạp hiển thị chi tiết (thời khóa biểu, nhóm thực hành) lớp học Nếu 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 chọn nút đăng ký - Bước cuối: sinh viên nhấn nút đăng ký, ứng dụng thông báo rõ ràng đăng ký thành cơng hay thất bại, thất bại nêu rõ lý Ngồi ra, người dùng kiểm tra xem lớp học phần nhóm thực hành chọn có trùng với mơn học đăng ký trước hay khơng Ứng dụng hiển thị danh sách học phần bị trùng lịch học (Hình 3.4.3) Ở cuối giao diện danh sách lớp học phần đăng ký học kì Người dùng chọn hủy lớp học phần muốn Khi hủy, ứng dụng thông báo thành công hay không lý kèm 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 chọn xem lịch học chi tiết lớp học phần đăng ký Hệ thống hiển thị chi tiết thời khóa biểu Hình 3.4.3 Q trình đăng ký học phần cơng cụ AcadIUH Tính xem lịch học theo tuần, xem lịch học tuần khứ, tại, tương lai Song với tính thơng báo người dùng có tiết, có mơn học ngày sau (hoặc tuần sau…) Cũng việc thông báo lịch thi kỳ, cuối kỳ… Người dùng click vào link học online môn để dẫn tới app tương ứng điện thoại Zoom, Google Meet, LMS IUH (Hình 3.4.4) © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 thông báo cho lịch học Ngồi ra, tính xử lý Web cho nhân viên đào tạo (Quản trị viên) triển khai Nhân viên đào tạo đăng nhập vào hệ thống thực chức như: Thêm chương trình đào tạo, mở học phần học kỳ,…Bên cạnh đó, hệ thống cho phép thực chức với ràng buộc thời gian ràng buộc nghiệp vụ khác cơng tác đào tạo 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 chức tương ứng KIỂM NGHIỆM THỰC TẾ Chúng tiến hành triển khai hệ công cụ AcadIUH hệ thống điện toán đám mây AWS2 Trong giai đoạn chúng tổ sử dụng Infrastructure AWS Dịch vụ gồm ECS Cluster dùng để quản lý instance (máy chủ) Mỗi service xác định chạy container hình service type EC2 (chúng tơi chọn hệ điều hành Linux, phiên t2.micro) Hình 4.1 https://www.youtube.com/watch?v=PJLdOdJR69g&t=1s © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 281 Hình 4.1 Cấu hình chi tiết ECS Các service tạo hoạt động ổn định cho cơng cụ AcadIUH (Hình 4.2) Những thơng số tài nguyên sử dụng CPU (CPU credit balance) dung lượng đường truyền (Network packets) đảm bảo khoảng thời gian hệ thống tăng tốc xử lý (Bảng 4.1 mô tả ý nghĩa thông số) Tuy nhiên phiên thử nghiệm nên dùng service có hiệu suất thấp phiên triển khai thực tế Ứng dụng web triển khai AWS, đường dẫn truy cập https xác định nhà trường Ngoài ứng dụng chạy di động đưa lên CHPlay với tên AcadIUH Hình 4.2 Các thơng số Mornitoring hệ thống triển khai AcadIUH Bảng 4.1 Ý nghĩa số monitoring Network in (bytes) Số byte mà ứng dụng nhận tất giao diện mạng Số liệu xác định khối lượng lưu lượng mạng đến cho ứng dụng Đơn vị: Byte Network out (bytes) Số byte gửi ứng dụng tất giao diện mạng Số liệu xác định khối lượng lưu lượng mạng từ ứng dụng Đơn vị: Byte Network packets in (count) Số lượng gói tin mà ứng dụng nhận tất giao diện mạng Số liệu xác định khối lượng lưu lượng đến số lượng gói ứng dụng Đơn vị: count Disk reads (bytes) Các byte đọc từ tất khối lượng lưu trữ ứng dụng có sẵn cho ứng dụng Số liệu sử dụng để xác định khối lượng liệu mà ứng dụng đọc từ đĩa cứng Điều sử dụng để xác định tốc độ ứng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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, giá trị số liệu không báo cáo Đơn vị: Byte Disk, read operations (operations) Các thao tác đọc hoàn thành từ tất khối lượng lưu trữ ứng dụng có sẵn cho ứng dụng khoảng thời gian cụ thể Nếu khơng có khối lượng lưu trữ nào, giá trị số liệu không báo cáo Đơn vị: count Disk writes (bytes) Các byte ghi vào tất khối lượng lưu trữ có sẵn cho ứng dụng Số liệu sử dụng để xác định khối lượng liệu mà ứng dụng ghi vào đĩa cứng Điều sử dụng để xác định tốc độ ứng dụng Nếu khơng có khối lượng lưu trữ nào, giá trị số liệu khơng báo cáo Đơn vị: Byte Disk, write operations (operations) Các thao tác ghi hoàn thành vào tất khối lượng lưu trữ có sẵn cho ứng dụng khoảng thời gian cụ thể Nếu khơng có khối lượng lưu trữ nào, giá trị số liệu không báo cáo Đơn vị: count CPU credit usage (count) CPU Creadit quy định số lượng CPU bùng nổ phiên Có thể sử dụng CPU Creadit để tăng hiệu suất CPU suốt thời gian Burst Giả sử vận hành ứng dụng 100% hiệu suất CPU phút, tiêu tốn (tức * 1,0) CPU Creadit Tương tự, chạy ứng dụng 50% hiệu suất CPU phút, tiêu tốn 2,5 (tức * 0,5) Tín dụng CPU CPU credit balance (count) CPU Credit Balance số lượng CPU Creadit có sẵn tài khoản lúc KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Bài báo chúng tơi đưa hai giải pháp cho tốn xây dựng công cụ AcadIUH nhằm hỗ trợ cho công việc học tập sinh viên trường đại học Công nghiệp Tp.HCM Trong đó, giải pháp chúng tơi triển khai ứng dụng chạy thiết bị di động có tên AcadIUH Ứng dụng chạy hai tảng thông dụng Android iOS Giải pháp thứ hai, triển khai cho công cụ hệ thống website tảng điện toán đám mây Đồng thời kiểm chứng tính ổn định hệ thống triển khai tảng Trong hai giải pháp áp dụng công nghệ phù hợp nhằm tối ưu tài nguyên đảm bảo tính hiệu hệ thống Cụ thể phần ứng dụng di động triển khai công nghệ React Native tạo ứng dụng, ReactJS tạo website cho quản trị, Spring Boot tạo hàm API kiến trúc microservice Phần triển khai điện toán đám mây dùng Elastic Container Service (ECS); RDS; AutoScalling; Load Balancer; Elastic Container Registry (ECR) Tuy nhiên, công cụ cịn số hạn chế q trình chúng tơi thử nghiệm với số lượng truy xuất vừa nhỏ Hệ thống cần thêm việc thử nghiệm DOS server, tạo 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 hệ thống Ngồi ra, chức hệ thống web dành cho nhà quản trị hạn chế, chưa đáp ứng hết chức hỗ trợ Phần ứng dụng thiết bị di động chưa triển khai store để hỗ trợ cho sinh viên sử dụng Trong tương tai, dành tài nguyên nhân lực để giải hạn chế © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 283 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] https://java.com/en/download/help/whatis_java.html, accessed 03/4/2021 [6] https://www.javatpoint.com/what-are-the-uses-of-javascript, 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] https://www.simform.com/best-frontend-frameworks/, acccessed 10/4/2021 [11]https://scoutapm.com/blog/nodejs-architecture-and-12-best-practices-for-nodejs-development 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] https://aws.amazon.com/vi/getting-started/hands-on acccessed 05/4/2021 [14] https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html acccessed 05/4/2021 [15] https://www.terraform.io/docs/cloud/ 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 ... © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 trang... mềm © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 Use-case công cụ AcadIUH... xác góp phần cho nghiệp vụ xử lý dễ dàng © 2021 Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh 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 277 Hình 3.3.2