Hệ thống phảicócácchức nănghọc vụcơ bản cũngnhưđaphânhệ đảmbảo cho sinhviên thuậntiện sửdụng, đồngthời hệthống phải luôn ổn định ởmọithời điểm.Chúng tôiđề xuất công cụ có tênlà “ERUKALEA
Trang 1TÔN LONGPHƯỚC1, LÊVĂNTÙNG1, PHAN TẤN TÀI1
}Khoa Công nghệ Thông tin, TrườngĐại học Công nghiệp Thành phổ Hồ Chỉ Minh
ton longph uoc@iuh edu vn, tuny ỉ ỉ 3tungle@gmail com, ta itoỉ đoraemon@gmaiỉ com
Tóm tăt. Trường Đại học Công nghiệp TP.HCM đượcxếphạng 10 trường đạihọchàngđầu Việt Nam năm2021 theo bảng xếp hạng QS Đây là mộttrường đàotạo đangành với điều kiện cơsở hạ tầng tốtvà
đội ngũ giảng viêncó chuyên môncao.Hiệntại, hườngcóhơn 36,000 sinh viên,học viên đanghọctậpvà nghiên cứutại đây Do đó,hường cần có mộtcông cụ hỗhợsinh viên, học viên trong quá trình họctậpvà nghiên cứu tốt hơn Hệ thống phảicócácchức nănghọc vụcơ bản cũngnhưđaphânhệ đảmbảo cho sinh
viên thuậntiện sửdụng, đồngthời hệthống phải luôn ổn định ởmọithời điểm.Chúng tôiđề xuất công cụ
có tênlà “ERUKALEARN”,mộtcôngcụ có đầy đủ các chức năng vềhọc vụcho sinh viên, cũng như giảng dạy cho giảng viên, nhân viên tạitrường Đại học Công cụ gồm hai phânhệ chính: ứng dụng Webvà ứng
dụngtrênthiết bị di động Chúng tôi dùng các côngnghệ như NodeJS, ReactNativevà đặc biệtlà AWS để hiển khai hệ thống thay vì dùng chủ vật lý giúp giải quyết vấn đề tắc nghẽn đang cấp thiết Hiệnhệ thống
đã được thử nghiệm cho một sốsinh viên tạiKhoa Côngnghệ thông tin tạihường Trong tươnglai, chúng tôi sẽmở rộng các chức năng cũng nhưtích hợpcác hệ thốngkháctrong trường nhằm nâng cao tính tiện dụng của hệthống
Từ khoá ứng dụngweb, ứng dụng diđộng, AWS, Điện toánđám mây
OF HO CHI MINH CITY
2021 according to the QS rankings This is amultidisciplinary training school with good infrastructure
conditions and highly qualified teaching staff Currently, the school has morethan 36,000 students and
trainees studying and researching here Therefore,the schoolneeds a tool to support students and learners
inthe process of studying andresearchinghere andtool need to be stable at all times The systemneeds to have academicfunctions as well as many modules for students and trainees to be convenient duringuse
Werecommend a toolcalled “ERUKALEARN”,a toolwithfull academic functions for students,trainees
as well as teaching for lecturers and staffat the University ofIndustry The tool consists of two main
modules: Web application and mobile application We usetechnologies like NodeJS, ReacteNative and specially AWS instead of physical serverto solve the urgent congestion Currently the system has been
tested forsome students atdie Facultyof Information Technology atdie university In diefuture, we will expand the functions as well as integrate other systems in the schoolto improvetheusabilityof thesystem
Keywords.Webapplication, Mobile application, AWS, Cloud-Computing
Trường ĐạihọcCông nghiệpTP.HCM (IUH)là một trong những trườngđạihọclớn của Bộ Công Thương,
cũng là trường có quỵmô đàotạo lớn với hơn 36,000sinh viên, đa ngành, đa bậchọcvànhiều chương trình
liênkết quốc tế Trường đượcđầu tư cơ sở vậtchất tốt, đáp ứng nhu cầu củangười họcvà các tiêu chuẩn
quốctế Bên cạnh,đội ngũgiảng viêncótrìnhđộ cao cùng với nhiều chương trình đào tạođạt chuẩnquốc
tế như AUN Vì vậy,Nhà trường cần có mộthệ thống website hỗ dợ đào tạo một cách hiệu quả chongười
Trang 2Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
học,người dạy,người quản lý Tuynhiên, hệ thống website hỗ trợ cho người học hiện nay còn nhiều hạn
chế.Vềmặthệthống, khảnăngđáp ứng huy cập đồngthờ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à hường mở đăng ký lớp học phầncho học kỳ mới hoặc
đầutiếthọc thì nhu cầutruy cập websitetăng cao một cách đột ngột Lúcnày hiện tượng hang không phản
hồikhi truy cập websitecủa nhà hường xảyra thường xuyêntrong nhiều ngày hoặckhôngthực hiện các
chức năng hên hệ thống Sinh viên không thể làm gì được hong vòngnhiều giờ dù đã tốn công thức khuya
dậy sớmđể đăng kýhọc phần chẳng hạn Tìnhhạng này có nhiềunguyên nhân Nguyên nhânđầutiên là
sốlượng sinhviên truy cập website của hường tăng đột biến, từđó dẫn đến việc sốlượngyêucầu (request) gửilên máy chủ tăng cao Thứhai, xửlýquánhiềuyêu cầuvượt quágiới hạn của máy chủvậtlýgây hiện tượng trang không phản hồi.Ngoài ra, cũngcòn có những nguyên nhân kháchquan khác như đường huyền
và hệ thống hạ tang của nhà trường chưa đáp ứng đủ mạnh Chính vì lẽ đó,giải pháp dễ thấy nhấtlànâng cấp cấuhình củamáychủ, thậm chí là tăngsố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ũngcần phải đưara cácgiải pháp này rõ ràng hơn như việc kết nối máy chủmớivào hệ thống xử lý cũ cũnglàmộtbài toánlớn Tương tựnhư với việc nâng cấp cấuhìnhcũng có nhiều câuhỏi đặt ra: Nâng cấptrong bao lâu?, baonhiêu? Có xảy rarủiro trong lúc nâng cấp không? Neu phát sinh những vấnđề ngoài ý muốn lúcnâng cấpthì phải ứng cứu kịp thời như thế nào?
Và cònrấtnhiều vấn đềcầngiải quyết nữa vấn đề cần bậntâmlà mộtnămchỉ xảyra haiđến ba đợt mở
lớp đăng ký học phần,nghĩa làchỉ có tạithời điểm đó thì nhu cầumớivượtquángưỡngxửlýcủa máy chủ
Vậy nhà hườngcó nêntốn kém hay không khi đầutưmột hệ thốngvớichi phí lớn chomột số sựcố xảy ra không thường xuyên? vềmặthọcvụ, việc thanh toán học phí hiện nay ởIUH vẫn còn thựchiện thủ công, dẫn đến việcsinh viên xếphàng và mấtthờigian
Đe giải quyết các vấnđềcủacác mặt, chúng tôiđã đưa ra 2 giải pháp chính:một là sử dụng điện toán đám
mây (cloud computing)vềmặthệ thống vàhai là tích hợp thanh toán họcphí online bằng các ví điện tử nội
địa (momo,vnpaỵ) vào hangsinh viên Đầu tiên,nóivề giải pháp sử dụng các dịch vụ trên điện toánđám mây như cho thuê máy chủ, dùng cácdịchvụ web, nổi tiếng trênthế giới hiện nay đó là các dịch vụcung cấp bởi các công ty nhưAmazonvới AWS,Microsoft với Azure, trong nước có các tổ chức như Viettel, FPT, Sao bắc đẩu Điện toánđám mâylà một giải pháp có tính xuhướngtoàn cầucho cáccánhân, tổ
chức, doanh nghiệp vừa và nhỏ [1] Hiện nay các 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 Hệ thốngtriển khai trên điệntoán đám mây sẽ có chiphírẻ, cấuhình đơngiản nhưng vẫn an toà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ếttrong các ưu điểm
hên là khả năng cân bằngtải, đó là ưu điểm tuyệt vời của điện toán đám mây Cân bằngtải (scale) là dịch
vụ có khả năng tự động điềuchỉnh sốlượngmáy chủ để đápứng nhu cầutruy cập của khách hàng (tăng
khi yêu cầunhiềuvà giảm khi yêucầu ít) Do đó nhàphát triển hệthống không còn phải đầutưquá nhiều chiphí chỉ đểgiải quyết nhu cầu cho việc sửdụngtài nguyêncủa hệ thống trong một quãng thời gian ngắn trongnăm Đó cũng là lý do chúng tôichọn giải pháp này cho bài toánxâ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ênsử dụng nhằm giải quyếtcác nguyên nhânđượcliệtkê sau đây Nguyên nhân thứ nhấtlàwebsite của trường IUH thựchiện cơ chế kết
xuất máy chủ Server Side Rendering(SSR) Cơ chế nàycó nhiều ưu điểm tuyệt vời nhưkhả năng Search
EngineOptimization(SEO) hiệu quả, chạyđược hên phần lớn cáctrình duyệt thông dụng (kểcả disable JavaScript vẫn chạytốt), hiệu năng cho lần tải trang đầutiêntốt Nhưnglạicó một nhượcđiểmlớn chính
làmáy chủ phải đảm nhiệm gánhnặngkết xuất hang web,gánhnặng trả về nội dung hang web (tốnnhiề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 hường hợpkhinhu cầu huy cập website tăng cao độtbiến, máy chủ phảithựchiện một sốlượng yêu cầu cực lớn và còn phải phụ trách gánhnặng kết xuấttrang web và gửi hả vềnó càng làm tìnhhình xấu đi Hơn nữa, các trang web như hang đăng ký học phần, quản lý thông tin cho sinh viênlà những trang web cótính
cánhânnên cầnrấtítkhảnăng SEO, tính chất tương thích với trình duyệt hoàn toàn có thể khắc phục được bởi lập hình viên Đó là lý do chúng tôixây dựngứng dụngcho thiếtbị diđộng nhằmhỗ trợ cánhân hóa
cũngnhư giảm tải cho máy chủ trong hệ thống
246 © 2023 TrườngĐạihọcCôngnghiệp ThànhphốHồ Chí Minh
Trang 32 CÁC CÔNG NGHỆ LIÊN QUAN
2.1.1 Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS) là một dịch TO tồ chức vàquản lý dữ liệuquan hệ
trênđám mây củaAWS, dịch vụnàygiúpcho người dùng dễ dàng thiết lập,vậnhànhvàquảntrịdữ liệu một cách hiệu quả
2.1.2 xAmazon Simple storage Sendee (S3)
AWS S3 là dịch TO lưu trữđốitượngdo AWS cung cấp Đây có lẽ là dịch vụlưutrữ được sử dụng phỗ
biếnnhất cho ngườidùng AWS nhờ các tínhnăng như tính khảdụng, bảo mậtcực cao và kếtnốiđơn giản
với các dịch vụAWskhác Chúng tôi dùng AWs S3 đểlưutrữ các file vớinhiều đỉnh dạng khác nhau:lưu trữ ảnh png, jpg 3x4 củasinhviên, file excel nhập điểm củagiảng viên tải lên, file backup bak mà nhân viên thực hiện backup để làm dự phòng, lưu trữ các tập tín tài nguyên của việc phát triển (keys, certificates, ) Sử dụng S3 kếthợpvóicác service khác của AWS cũng là một lợi thế [4, 5],
2.1.3 xAmazon Elastic Compute Cloud (Amazon EC2)
Đầu tiên, EC2 là viếttắt củaElastic Compute Cloud Amazon EC2 là một máy ảo cơ bảnvới các thành phần phần cứng có thể tùy chỉnh và một hệđiềuhành Elastic Compute Cloudlà hệ thốngdịchvụ chính và
được sử dụng nhiều tronghệ sinhthái AWs khốnglồ EC2giúp bạn không cầnphải mua phần cứng.Ngoài
ra, không có thêmchiphí khi bảo trì phần cứngđãthuê AWS cho phép bạn khởi chạy nhiều EC2.Nó cũng
cung cấp khả năng kiểm soát để mở rộng quỵ mô hoặc thunhỏ tương ứng với tốc độ của lưu lượng truy cập trangweb[6],
ẴUser
Hình 1: Đặc điểm AutoScale củamáychủEC2khắcphụcđiểm yếu củamáy chủ vật lý [5]
Chúng tôi sẽ dùng các máy chủ EC2này đểthaythếcác máy chủ vật lý tạiNhà trường Càng mua nhiều
EC2 thì việc chia tải saukhi áp dụng Load Balancer càng hiệu quả Việcmuanhiều phần mềm máy chủ
EC2 trên AWS giúp tiết kiệmchiphí hơn rất nhiều so với việc ta mua thêm phần cứngmáy chủ vậtlýđòi thực.Tronglần này, chúngtôi sẽ tạo ra (mua) khoản2 con EC2 để tiếnhành triển khai máy chủ.Mỗi EC2
sẽ được triển khai hệ thốngErukaLeamgiống nhauvà đồng bộhóa truy xuất dữ liệutừ cơ sởdữ liệu RDS
2.1.4 Load Balancers (EC2 Feature - Load Balancing)
Load Balancers - EC2 Feature cũng là mộtdịch TO cân bằng tải của AWS nhưng EC2-Featurecónghĩa là
nóthuộc về một chức năng củaEC2 cókhả năng phân phối tải công việc giữa nhiều máy ảo EC2, giúp cân bằng tải và tăng tính sẵn sàng củahệthống Chúng tôi sẽ sử dụng loạiLoadBalancernày (có nhiều cách
đểloadbalancing khác nữa) để tiện lợi cấu hìnhvì nó như là một service con của EC2service
Trang 4Hội Nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
EC2 Instance
Hình 2: Load Balancer sẽ là người điều khiển chia đều tải cho các máy chủ EC2 [6]
2.2 Framework React Native Expo
ReactNative Expo: làmộtcông cụ mã nguôn mở giúp xâydụng ứng dụng di động trênnên tản$ IO s và
Android Nócho phép lập trình viên sử dụng các công nghệ web nhưHTML,css vàJavaScript đe tạoúng dụng di động chât lượng cao Expo cungcâpmột loạt các công cụ và tính năng đê giúp đơn giản hóa việc
phát triển úng dụng, bao gôm cảthưviệnvà cáchướngdẫn Với React Native Expo, chúng tôi có the nhanh
chóng tạo ra cácúng dụng di động đa nên tảng chât lượng cao và pháttriển nó vớitôc độ nhanh chóng và hiệuquả [7,8] Chúng tôi chọnExpo thay vì React Native CLI đe phát triểnapp di động bởivì: Expo build úng dụng nhanh hơn; Chạy được đa nên tảng (hỗ trợ build web); Được cộngđônghướngdẫn và đónggóp
rộng rãi; Ngoài ra expocòncho phép deployứng dụng lênExpo Store như App Store, CHPlay
Môhình MVC (Model-View-Controller) là một kiêntrúc phân mêm được sử dụng rộng rãi trong phát triển ứng dụngphânmêm Chúng tôi dùngkiên trúc nàyvì nó mang lại nhũng lợi ích sau: Giúptách biệt logic
xử lý dữliệu (model), giao diện ngườidùng (view), và luông điêu khiển (controller) đe dễ dàng quản lý và bảotrì mãnguôn; Tái sử dụng mã các giao diện người dùng có cùng bô cục; Tích hợpdễdàngvớicáccông
nghệ và thư viện khác được cộng đông phát triểnhỗ trợ (Vídụ:phát triển tích hợp thanh toánonline);Phù hợp vớiúng dụng cho doanhnghiệp có quy mô vừa vànhỏ [9]
2.4 Docker
Docker là mộtnên tảng ảo hóa câpphân mêm, cho phép đóng gói ứng dụng và cácphụ thuộc của chúng
vào các container độc lập Giúp đơngiảnhóa việc chạyúng dụng trên nhiêu môi trường khác nhaumà
không cân quan tâm đên cài đặt hệ thông Docker Compose là công cụ đikèmvới Docker, cho phép định
nghĩa và quản lý việc chạy nhiêucontainercùnglúc Băng cách sửdụng tệpcâu hình docker-compose.yml, chúng tôi có the định nghĩacácúngdụngnhỏ,mạng và cáctùy chọn khác choúng dụng giao tiêp vớinhaư Docker Compose cho phép các service nhỏ giao tiêp với nhau thông qua mạngnội bộ Docker network
Chúng tôi dùng kỹ thuậtDocker Compose vì nhăm mục đích chia nhỏ các trang web dành cho các đôi
tượng người dùngnhư: sinh viên,nhânviên, giáo viên,thành tùng service (ứng dụng nhỏ) Ngoài ra còn nhiêu servee hỗ trợ khác Điêunày giúp việc triển khai úng dụng saunày tiêt kiệm chi phí, chạy đa nên
tảng [10]
248 © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh
Trang 53 PHÂN TÍCH HỆ THỐNG
Chúngtôisử dụngkiếntrúcClient -Server (chialàmFront-end vàB ack-end)để xây dựngứng dụng bằng cách xử lý tấtcả request từngười dùng gửi đến máy và hầu hết các côngnghệ ở phíamáychủ đều là các sendee của AWSnhằmmụcđích tận dụngcácưuđiểmcủa nó.Với kiến trúcnàyphần xử lý backend sẽ là quan trọng nhất Chúng tôi sẽgiảiquyếtcácvấnđề vềtắcnghẽn, phânluồng, mở rộngtàinguyên, bảo mật
vàlưu trữ dữliệu ở phíaserver (Hình 3)
3.2 Usecase tổng quát
Đối tượng người dùng cho hệ thống ERUKALEARN gồm có 3 actor chính: Sinh viên, Nhân viên, Giáo viên Tuynhiên chưongtrìnhtập trung vào việc phát triển hỗ trợ cho sinh viên trênnền tảngđiện thoại
thông minh Bởi lý dochính, hiện tại lượngsinh viênIUH cósốlượng đông nhưng chưacónềntảng hỗ
trợ trênđiện thoại Bảng use-casethểhiện rõ các chức năng hiện có trong ứng dụng củasinh viên cũng như
nhân viên.Nhân viênđóng vai trò là giáo vụ có thể quản lý đàotạosinh như việc sinh viên nhập học, mở lớp học phần, học phần Còn sinh viên thực hiệncác chức năng cơ bảnnhư theo dõi lịchhọc, kết quả học tập, đẵng kýhọc phần Dưới đây là bảng vẽ lược đồuse-case Những chức năngnàychúng tôi trinh bày trongHình 4
Trang 6Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH
Hình 4: Sơ đồUseCase tổng quátcủa hệ thốngERUKALEARN
3.3 So ’ đồ lớp
Từ cácusecase đã phân tích ở trên thì chúng tôi đã tạo ra được lược đồ lóp củahệ thống ERUKALEARN
Trong đó, chúng tôichútrọng đếncác lớpnhưSinhVien, Nhanvienvà GiaoVien Các lớpkhácđược sinh
rađể phục vụ cho 3 đối tượng này Trongđó chúng tôi tập trung lớpThoiKhoaBieu để đáp ứng nhu cầu xem lịch của Sinh viênvàGiáo viên, tiếpđó lớp ThanhToanGiaoDich nhằm thựchiệncác giao dịch của
sinh viên, đồng thòi cũng hỗ trợ cho đối tượng nhân viên kiểm soát dựavàođó chứng thực các giao địch Ngoài ra, các lóp khác nhằm phục vụ cho việc quản lý, hỗ trợhọc vụ, lưutrữdữ liệu của nhà trường Chi tiết hơn cho cácđối tượng nàỵ, chúng tôi trinh bàỵ tronglược đồ lớp được thiêtkênhư Hình5
rhoiKhoaBãní" LopHoc Phan
Khoaltoc' GiouVieii tuTretl loc Tietfloc
thoKhoafficuConr l.êKlboiKhoaB
ngayKotThuc: Date
rihomHoc hl
giaoVieti GiaoVieti
ghtChu string
- thulioc Thiriloc
ỉ- maThoiKhoaBieu: long
rinhVmn LopHocPhanr.
seriatVensitmUID: long
SflKSmhVi
kipHod’tiau I opHocPhan
den HelHoc 1 kitHlic
-thi: boolean
- phorxjllor string
! rigayBatDou Date
lealỉkroíHoc I oaiBuoiHoc
soluongDaDangKy Snt
iiumhloanGiaoDfcti
nxpirodTlmo Tknostamp
niaGianOkh string
status boolean
ghtChu Siring
.-unDebtlds: String
! sinhVkm SinhVien
balance: double
' iwaWVcminnlJID- long
Montloc thoiKboa»6«, UsKThoiKN tenKhoaHoc lenKho _loaiGwoVierr IoaiGmoVUn
kialHoc loalHoc -qiaoVien GiaoVen sol.uong ini
- mal cipliocPtian long
- lenLopllocPhan: String ktaaHoc Khoatloc hanNopHocPhl Dale serialVefsionUID long trangĩhal Trang I lull
- nxinHoc, MonHoc soLuongMax ini ngayBalDau Dale ngayKetThuc: Dato SinhVksi I op Hoc
- id: long lopllocPhan I opHocPti.rn sinhVkn SWrVren
Chuongĩrinh Khung Tôi Khoan -maKhoaHoc: long
ị namBatDair int setlafVeiskinlJID I
- namKet 1hue ini
alias String bocKy HocKy
Iiiiụ.
+ addCo<rrMi(Kbo.ilioq
thoiKhcallkiur SeKThiriKhoí jeifcilVetsionUID ki
- diaCtii String
- maGiaoVien: long sdt String -serialVersionUID long gtoffinh: Gloillnh
- avatar: String taiKhoan litKhoan
hocRii dwririe
- hocKy: HocKy
I nlioinMon ini tnuMonHoc long
- loaiMon: LoaiMon
monitor: Mont lor.
«1 long
- done: boolean
- sinhVien: SinhVlen snrialVerxionUID long
r.rtfiatVarsionUM) long user User -id: long
- type: LoaiTalKhoen oman string
+ g0K?nunterSlu<fente-.e tanGiaoVion string
r getCoursesByStuderi ng ạ-,'Sinh: Date HocKy
- soTinChr lot nganh Nganh
- leriliocKy String
- mallocKy: long monHocs SsKM
CongNo
lholKhoa8ieu lhuKhouKei + ad(iSr.mosloi(tM serlrrfVersiorilJIf) kxKj
IhoiKhoaBiouCnn TboiKhoi ngaytlangKy Dato
* daThuHocPhi.boolean
» getTongSoĩlnChi
t gelUstSemeslei
trang I hai String
- soTten: double congNo double lopHocl’lian t upHoc.
Id long ssrialVorsionUC Ion
•iiohVfari SinhVlen monHoc MoriHuc
PI1ĨCU I hi
crenleTii>risaclk>n(lorig s
giXPayni0ntByld(Str i ng
ijpdat<jPaymantroPasr.Bylil
* I donViltru String - maPhieuThu: long - solian doub&r ghIChu String
I t - tlwnti loanGiaoDlcÌL ItianhroanGãaoDkh
grriSwmistersB) njienGiam: float
t " ■* - khauTnr double
daNop double
loaiPhieuTlMr LoaiHikniThn
geHbkenByPaymerilAridSiudei I
gMS^TaKKltWtBz^k XXTswX
i)prtatoPaymondPN(CapNhat ngayihu; Date
maMonYouCau lorỊ, rụpnh Nganti -sol let ill Ini tanMonlioc String ons Sot«.Tboii so T k ILT ill
SinhVien
♦ gotSotmChjOoncByStiKlonJ ’ crealeAocoutíỉalKhoanDIC
I 4 updateAcixHinlt-maijlonj a
Diem
i - maSinhVien: long diems S<;t<Dwrn>
DaoTao
bacDaoTao BacDaoTao
nuiDierrc long
- (fiemGK: float pass boolean yhiChu String -slnhVien: SinhVtai uwlalVwsfonUID lunJ loallfinhllaolno looillinhDaa'
-sdt Sshg avatar String ogayVaoI ruong Dale
- coSo: CoSo
- điemTHỈ: float I cScmTongKet id diemCK fcal
- <fiemLT3: float
NtunVicn
phteuThus Set'-Phiêu I
- diaCM: String ngaySinh Dats hnTijn String
- noiSinh: String tnlKhotwv TaiKhonn
- sinhViwi lopHoirPhatt
LopllocDanhNghw
4 gelDebteByStudunllt.^!^ G|o|rmh
4 getUnDeblsB’ /Studei totNghlep boolean + gtriSononByDnbtldn IhongBaos SeKThong + iipdateUnDobfflyMtt eced String
matop- long tonLop Siring
- giaoVien: GlaoVien soLuong: Illi
- sinhViene: SeKSintf r.orialVorcionUII) In tHpinh Nganh
- khoaHoc- Khoallor
srri.lIVcrrJontltf
<SemLT2 float -dremlHI: float lopHocPhsn 1.0 d»emTH2: float
diaChi Siring svrialVer BtonUlD long maNhanVicn long -sdt: String avatar String
- talKhoan: Ta Khoan
- tenNhanVien: String ngayVuoLam Dato đemChu String tfmcVu ChucVu Ngarh
rnaNganh long khoa Khoa
- tenNganh: String
- lastBackup Timestamp
- gioilinh: Gioãĩĩnh nariiSiiih ini
§e<PayedDebt5(loog' ’ lopHocDanhNghla:
I - daoTao DaoTao IhanhĩoanGiaoDir.taỉ S«t<ThanhToanGi.n>Dil
14 uddaaasllopHocf nwintVersionUiD: long (Tirmllocr Scl<Monllo<>
- hocKres: SeKHocKy>
+ addTmployoo(NhjnVi
♦ removeLlslHnployee(l
♦ updaleCmpk>yee(Nhan
♦ golt:mploygeByld( lory gall i : i :-.I'> i - si udonrtk
Hình5: Sơ đồ ClassDiagramương hệthốngERUKALEARN
250 © 2023 TrườngĐạihọc Côngnghiệp ThànhphốHồ Chí Minh
Trang 74 KÉT QUẲ HIỆN THựC
4.1 Triển khai Load Balancing
Hình 6: Khởitạocác máy chủEC2trên AWS đùngđểchiađều tài Quỵ trình triển khai toàn ứng dụng gồm 4 bước chính: i)Khởitạovà cấu hình số lượng EC2 đủcần thiết;
ii) Triển khai source code ứng dụng lên các EC2 vừa tạo; iii) Tiến hành cấu hìnhvà kích hoạt con Load
Balancers để điềukhiển tải trên các EC2; iv)Gắntên miền và chứngchỉ cho con LoadBalancersđể người dùng truy cập
Chúng tôi sẽ thực hiện quy trình từng bước chính thôngquatùng quy trình nhỏ: Đầu tiênlàcần tạo lượng EC2để cânbằng tải.Mỗi EC2 hãy cứhình dung nó nhung 1 chương trình và được nhân bản ra Sau đó truy cập vào tùng EC2 để kéo (pull) source code ErukaLeam từ Github về Source code và cách deploy trên mỗi
EC2đều giống nhau lên và chúng được cấu hìnhđểcùngkếtnối đếnmột database RDS Chi tiết quỵ trình triển khai lên lên máy chủEC2: Bước 1: Tạo 2 conEC2 vàđặt tên dễ nhớlà ec2_lvà ec2_2với hệ điều hành linuxvà cấu hìnhchúng (mở port, tạo rule, ); Bước 2:Kếtnối vào ec2_l rồikéo source code từgithub về; Bước 3: Thay đồi, cấu hình các biến môi trườngkết nối tới RDS, S3, các biếnenvironment; Bước4:
Build ứng dụng bằng docker-compose.yml và ứng dụng ErukaLeam được chạy; Bước 5: Làm tương tự
bước 1 đen 4 cho EC2thứ2 (Hình 6)
Tiếp theo là đến triển khai một Load Balancer (người điều khiển tải cácEC2) Quy trình cấu hình Load
Balancer lên 2 con EC2 đã tạo trước đó như sau: Bước 1:Tạo ra một Target Group - EC2 Feature; Bước 2: Gom (đăng ký) nhóm các EC2 lạivói nhau trênport 4000 (càng nhiều EC2 thi tải chia ra càng nhiềurà
cànglàmgiảmtắc nghẽn); Bước2: Tạo 1 load balancer, chúng tôi chọn loạiLoad Balancer Networkvà cấu hình điều khiểntarget group Vàload balancersẽ cótrạngthái'Active'; Bước 3: Theo dõi monitor Theo
lý thuyết các luồng request đến serversẽ đi đến qua domain củaLoad Balancer (Hình 7)
Trang 8Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
Hình7: Khởi tạoLoad Balancer thành côngvàcấuhình trạngthái Active
Vàđây làmột sốbiểuđồ (monitor) Load B alancers dodịchvụ phân tích trong Hình8
Hình 8:Cácbiểuđồ LoadBalancers của dịchvụcungcấp
Sau khi đã cấu hình Load Balancer ta sẽ cấp cho nó một tên miền (hiện Namecheap.com tài trợ cho tài khoản sinhviênmột domain miễn phí).Với cáchiệu năng cơ bảnchỉ qua vài bước đãngkýsẽ có kết quả
trong Hình 9 Chúngtôi xin phép đặt têncho ứng dụng mang tênlà “ERUKALE ARN” và các tên liên quan
được đề cập trong ứng dụng,tài liệu, video demosảnphẩm hoặc tên miền đặtcho ứng dụng đều sẽ nhắc đến cụm từ ErukaLeam này để nhất quán dễ gợi nhớ khi nhắc đếnchương trình này
o Actions »
52 erukalearn.rne
Hình 9: Tên miền erukaleam saukhimuabằng Namecheap
Trang 9Draft Expiring Soon Issued Pending Validation Expired Cancelled
Hình 10: Tên miềnLoadBalancer được xác thực SSL bằng Namecheap
Ngoài ra ứng dụng còn sử dụng vài tên miền chạy ngầm với các cồng (port) khác nhau như: erukaleam.iuh.edu.vn:8080 - domain cửa sendee springboot; erukalearn.iuh.edu.vn:8000 - domain của
service Apache PHP; Để các ứngdụng có thể giao tiếp frontend và backendvới nhau Tiếp theo chúng tôi
sẽtiến hành việc xác thực SSL - Chứngchỉ khóa xanh để đảm bảotrang web thực hiện chứng năng Socket (Cámơn Namecheap.comcũng tài trợmộtSSLmiễn phí 1 năm) Sau khi có domaincho Load Balancerlà
đã thànhcôngviệc cấu hình cân bằng tải và đã thành công một bướcgiảiquyếtbàitoánlưulượng truy cập cùnglúc tại mộtthòi điểm tăng cao độtngột Load Balancer sẽ là người điềuphối tải hoàn hảo giúp giải
quyếtvấn đề tắc nghẽn ỏ’ phía server Việc còn lại là theo dõihiệu quả Load Balancer thông quacác biểu
đồ monitorcó sẵn
4.2 Triển khai trên hai nền tảng Web và App
ứng dụng hỗ trợ học vụ đượctriển khaitrên hainền tảng là web và app (úng dụng web và ứng dụng trên
mobile; điện thoạidi động cho cả Androidvà IOS) Trong đó web app sẽ được ưu tiên phát triển và triển
khai đầu tiên tập trungvi đơn giản hon ứng dụngwebsẽ được triển khai lên cloud computingcủa AWS
và được trỏmột tên miềnđại diện vào.Hai nền tảng web và app sẽ được đồng bộ hóadữ liệu (data) do tất
cả nền tảng đều sử dụng chung một cơ sởdữ liệu khi thực hiện truy vấn, đọcghi thông tin
Nền tảngdiđộngcủa ứng dụng nàycung cấp tính năng linh hoạt, cho phép sinh viên truy cập thông tin học
tập và quản lý nhiệm vụ của mình bấtcứ lúc nào và ởbấtkỳ đâu Nềntảng web app cũng cung cấptrải nghiệm sử dụng tốt trêncác thiết bị desktop hoặc app sẽ nhắcđến(Hình 11)
Hình 11: ErukaLeam đãtriểnkhaitrênhaiflatformweb vàmobileđồng bộ datatrên cloud
Trang 10Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
Trong giao diện đăng kýhọc phần, đầu tiên sinhviênsẽ chọn học kỳcần đãng ký, học kỳnào vừa được
giáo vụ (nhânviên) mở thì sẽ được đánh tick xanh lá để sinhviên biết và chọn Các hộp thoạicủa học kỳ
cũ sẽ hiển thị các môn học đã mởởquá khứrà các lớp học phần đã đãngkýtươngđương cho học kỳ đó
(Hình 12)
Hình 12: Giaodiện đăng ký học phầntrên 2nền tảng
Việc đăngký học phần đốivới sinh viên vào nhũngđợtmởlópcũnglàcần “chiến thuật” ErukaLeam cung cấp khả năng cập nhậtsĩsốcủa một láp học phần theomônhọc màsinh viên đang quan tâm realtime, giúp
sinh viên cóthể nắm bắtsĩsố mỗilớphọc phần ứng nhanh chóng mà khôngcần phải tải lại trang và chọn môn Chúngtôi tin chức năng này sẽ hữu ích với sinhviên đang cần đãng ký nhiềumôn vàmuốn sắp xếp thờigian hợp lý (Hình 13)
10000 *0
looocet
I« n»»f Hé Chi Minh I.<vinr*l»uor.ĩ umn r.r
o nÃONUnôoiiMiNtt w*aw><*
o
Hình 13: Sinhviên đăngkýhọcphần cập nhật realtime sĩsố lớp màkhôngcần tải lại trang
Tính năng thanh toán học phí đơn giản, dễ dàng,có thể thựchiện ở bất ki nơi nào, bấtkì thiết bị nào gồm
cả máytính, laptop, điện thoại Sau khi thựchiệnmột giao dịch điện tử số tiền lớn ErukaLeamsẽ từng bước