Đặc biệt, với việc chuyển đổi đào tạo theo học chế tín chỉ thì việc ứng dụng công nghệ thông tin là hết sức cần thiết để đáp ứng yêu cầu quản lý việc dạy và học theo đặc thù của hệ thống
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
LÊ THANH TÙNG
ỨNG DỤNG CÔNG NGHỆ NODE.JS VÀ REACT.JS ĐỂ TỐI ƯU HỆ THỐNG
QUẢN LÝ ĐIỂM TẠI TRƯỜNG CAO ĐẲNG
GIAO THÔNG VẬN TẢI II
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60.48.01.04
TÓM TẮT LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Đà Nẵng - Năm 2017
Trang 2Công trình được hoàn thành tại
ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: PGS.TSKH Trần Quốc Chiến
Phản biện 1: PGS.TS Nguyễn Thanh Bình
Phản biện 2: TS Nguyễn Quang Thanh
Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Hệ thống thông tin họp tại Đại học Đà Nẵng
vào ngày 07 tháng 01 năm 2017
Có thể tìm hiểu luận văn tại:
Thư viện trường Đại học Sư phạm, Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài
Trong những năm gần đây, cùng với sự phát triển của xã hội và nền kinh tế thị trường thì công việc quản
lý ngày càng khó khăn và phức tạp, đóng góp một vai trò quan trọng trong các cơ quan, công ty, xí nghiệp Việc áp dụng các thành tựu của khoa học kỹ thuật nói chung và thành tựu của công nghệ thông tin nói riêng vào công tác quản lý trở thành yêu cầu cấp bách.
Ở nước ta, ứng dụng công nghệ thông tin vào các lĩnh vực quản lý đang từng bước được triển khai Đặc biệt, với việc chuyển đổi đào tạo theo học chế tín chỉ thì việc ứng dụng công nghệ thông tin là hết sức cần thiết
để đáp ứng yêu cầu quản lý việc dạy và học theo đặc thù của hệ thống đào tạo này, điển hình là hệ thống quản
lý điểm.
Hiện nay, trường Cao đẳng Giao thông Vận tải II đã áp dụng hình thức đào tạo theo hệ thống tín chỉ, đòi hỏi quản lý kết quả học tập phức tạp hơn (xét học bổng, xét học tiếp, xét nhận đồ án, khóa luận tốt nghiệp, thang điểm 4, thang điểm chữ, ) Tuy nhiên việc cập nhật điểm còn thủ công, mất rất nhiều thời gian và dễ xảy ra sai sót Quy trình công bố điểm còn phức tạp, qua nhiều công đoạn Thời gian xử lý, truy xuất dữ liệu của hệ thống còn chậm trễ gây mất thời gian, ảnh hưởng tới công việc của phòng Đào tạo.
Vì những lý do như trên, tôi đề xuất chọn đề tài luận văn cao học:" ỨNG DỤNG CÔNG NGHỆNODE.JS VÀ REACT.JS ĐỂ TỐI ƯU HỆ THỐNG QUẢN LÝ ĐIỂM TẠI TRƯỜNG CAOĐẲNG GIAO THÔNG VẬN TẢI II"
2 Mục đích của luận văn
- Ứng dụng công nghệ mới nhằm mục đích tối ưu hệ thống quản lý điểm;
- Đề xuất giải pháp góp phần tối ưu hiệu năng của hệ thống quản lý điểm, giải quyếttình trạng sai sót trong việc nhập liệu thủ công, giảm thiểu đáng kể thời gian nhập liệu, xử lý
dữ liệu;
- Xây dựng cơ sở khoa học trong vấn đề cải thiện hiệu năng và xử lý dữ liệu của các hệthống cũ
3 Đối tượng nghiên cứu
- Người sử dụng ( chuyên viên phòng Đào tạo, phòng Công tác Học sinh - Sinh viên, sinhviên, ), người quản lý ( quản trị mạng);
- Công nghệ Node.js, React.js, và mô hình Flux;
- Cơ sở dữ liệu MongoDB;
- Các công cụ hỗ trợ
Trang 44 Phạm vi nghiên cứu
Đề tài thực hiện khảo sát quy trình quản lý điểm tại trường Cao đẳng Giao thông vậntải II
5 Phương pháp nghiên cứu
- Phương pháp tài liệu: Với phương pháp này, chúng tôi nghiên cứu các tài liệu về cơ sở
lý thuyết bao gồm các tài liệu về Node.js, React.js, MongoDB và các tài liệu liên quan đến một
số nghiên cứu khác;
- Phương pháp thực nghiệm: Với phương pháp này, chúng tôi sử dụng hệ thống quản lýđiểm có sẵn, so sánh thời gian xử lý, tốc độ truy xuất dữ liệu với hệ thống dùng công nghệNode.js, React.js để rút ra kết luận tối ưu
6 Ý nghĩa khoa học, thực tiễn của đề tài
- Về khoa học: Xây dựng cơ sở khoa học trong vấn đề cải thiện hiệu năng và xử lý dữ liệucủa các hệ thống cũ;
- Về thực tiễn: Đề xuất giải pháp góp phần tối ưu hiệu năng của hệ thống quản lý điểm,giải quyết tình trạng sai sót trong việc nhập liệu thủ công, giảm thiểu đáng kể thời gian nhậpliệu, xử lý dữ liệu
7 Bố cục luận văn
Luận văn gồm có ba chương:
Chương 1: Nghiên cứu tổng quan;
Chương 2: Phân tích, thiết kế hệ thống;
Chương 3: Giải pháp tối ưu hệ thống
Trang 5Chương 1 NGHIÊN CỨU TỔNG QUAN
Node.js là một mã nguồn mở, môi trường thời gian chạy đa nền tảng cho phía máy chủ
và các ứng dụng mạng Ứng dụng Node.js được viết bằng JavaScript, và có thể hoạt động như
OS X, Microsoft Windows, Linux và FreeBDS
- Ứng dụng trên một trang( Single page Application)
- Shelling tools unix
- Streamming Data (Luồng dữ liệu)
- Ứng dụng Web thời gian thực
b Khi nào dùng Node.js?
Không nên sử dụng Node.js khi:
- Xây dựng các ứng dụng hao tốn tài nguyên;
- Một ứng dụng chỉ toàn CRUD;
- Khi chưa hiểu hết về Node.js thì sẽ gặp nhiều khó khăn
Vậy nên dùng Node.js khi nào?
- Node.js thực sự tỏa sáng trong việc xây dựng RESTful API (json) ;
- Những ứng dụng đòi hỏi các giao thức kết nối khác chứ không phải chỉ có http ;
- Những ứng dụng thời gian thực;
Trang 6- Xây dựng websocket server (Chat server);
- Hệ thống Notification (Giống như facebook hay Twitter);
- Ứng dụng upload file trên client;
- Các máy chủ quảng cáo;
- Các ứng dụng dữ liệu thời gian thực khác
a Ưu điểm của React.js
- Sẽ luôn luôn biết được component sinh ra mã HTML như thế nào chỉ bằng việc nhìn vàomột file source;
- Tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn;
Trang 7- Có thể render React.js phía server.
b Nhược điểm của React.js
- Nếu chỉ dùng React.js đứng một mình, nó vô dụng đối với các yêu cầu thực tế;
- Tài liệu nghèo nàn;
- React.js khá nặng nếu so với các framework khác
- Được dùng để tạo ra các giao diện cho người dùng ( user interface) nhằm giải quyết cáckhó khăn khi phát triển các ứng dụng đơn trang ( Single-Page Applications viết tắt làSPAs)
- SPAS là web app mà chỉ load một trang HTML và tự động update content khi người dùngtương tác nó
- Được sử dụng để xây dựng các ứng dụng lớn mà có dữ liệu thay đổi theo thời gian
- React.js chỉ xử lý User Interface trong ứng dụng, nó chỉ được xem như là View trong môhình thiết kế MVC
- React.js có thể kết hợp được với các thư viện Js khác hoặc các framework lớn hơn nhưAngularJS
- React.js không phải là Template Language;
- Chia thành các component;
- Sử dụng JSX
a JSX là gì?
JSX = Javascript + XML
JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript Đặc điểm:
- Faster: Nhanh hơn;
- Safer: An toàn hơn;
- Easier: Dễ dàng hơn
Trang 8b Components trong React.js
a Khái niệm NoSQL
NoSQL là cơ sở dữ liệu không quan hệ, ràng buộc giữa các Collection (hay còn gọi làbảng trong cơ sở dữ liệu bình thường)
b Ưu, nhược điểm của CSDL NoSql
*Ưu điểm của NoSQL
- Là mã nguồn mở;
- Linh hoạt trong việc mở rộng và phát triển;
- Áp dụng được công nghệ điện toán đám mây;
- Được các hãng lớn sử dụng như Amazon, BBC, Facebook và Google.;
Trang 9- NoSQL chủ yếu lựa chọn mô hình lưu trữ tập dữ liệu theo cặp giá trị key/value để dễdàng trong việc truy xuất Mô hình đó cho phép tăng cường hiệu suất nhập/ xuất.
- Thế hệ CSDL NoSQL giảm thiểu tối đa các phép tính toán, tác vụ đọc ghi, đảm bảo đượcyêu cầu xử lý dữ liệu của các dịch vụ mạng xã hội Hệ CSDL này có thể lưu trữ, xử lý từlượng rất nhỏ đến hàng petabytes dữ liệu với khả năng chịu tải, chịu lỗi cao nhưng chỉ đòihỏi về tài nguyên phần cứng thấp
- NoSQL sẽ là lựa chọn tốt nhất cho các công ty nhỏ không đủ kinh phí cho việc đầu tư vềbản quyền hoặc server mạnh, cấu hình cao
* Nhược điểm của NoSQL
- Hỗ trợ không đồng đều cho các doanh nghiệp;
- Chưa được sử dụng rộng rãi;
- Còn mới lạ với một số lập trình viên;
- Chia sẻ dữ liệu chưa theo một tiêu chuẩn chung
a Khái niệm về MongoDB
MongoDB là một mã nguồn mở và được viết bởi ngôn ngữ C++ MongoDB là một CSDL
có khả năng mở rộng, hiệu suất cao, mã nguồn mở và hướng đi văn bản, nó hoạt động trênkhái niệm collection và document
b Các tính năng chính
- Hiệu suất cao;
- Dễ dàng tăng tính mở rộng
c Các khái niệm trong MongoDB CRUD
d Một số đặc trưng của MongoDB
e Các điểm lưu ý khi lựa chọn MongoDB
- Nếu ứng dụng của có tính chất INSERT cao;
- Ứng dụng ở dạng thời gian thực nhiều;
- Ứng dụng bạn có nhiều dữ liệu quá;
Trang 10- Máy chủ không có hệ quản trị CSDL.
f Ưu điểm của MongoDB
- Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn;
- Lập chỉ mục trên bất kỳ thuộc tính nào;
- Các truy vấn đa dạng;
- Cập nhật nhanh hơn
Trang 11Chương 2
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG
CAO ĐẲNG GIAO THÔNG VẬN TẢI II
Hiện nay, trường Cao đẳng giao thông vận tải II đang quản lý điểm bằng phần mềm tínchỉ BSC EMIS STUDENT do công ty BSC phát hành tháng 7/2010 phiên bản V1.0.Nhượcđiểm của hệ thống này:
- Đây là một hệ thống chạy trên desktop nên tốc độ phụ thuộc chủ yếu vào phần cứngmáy tính người sử dụng;
- Người sử dụng bắt buộc phải cài đặt chương trình trên máy tính cá nhân, quá trình càiđặt mất nhiều thời gian và tính linh động thấp trong trường hợp máy tính gặp sự cố;
- Các công nghệ trước năm 2010 được sử dụng trong hệ thống quản lý điểm của trường
đã không theo kịp các công nghệ hiện tại
a Cập nhật hồ sơ, cập nhật điểm cho từng sinh viên
b Tính điểm, xếp loại
c Thống kê báo cáo các biểu mẫu cần thiết
Có chức năng tạo tài khoản của sinh viên, tạo tài khoản của quản lý và phân quyền.Chức năng backup dữ liệu
Trang 122.3.2 Sinh viên
a Chức năng xem điểm
b Chức năng phản hồi thông tin điểm
a Chức năng quản lý điểm
b Chức năng quản lý sinh viên
Trang 132.4.2 Thiết kế hệ thống
a Sơ đồ tổng thể của hệ thống, mô hình hoạt động
Hình 2.1: Sơ đồ quản lý điểm sinh viên.
Trang 14b Lược đồ của hệ thống
* Danh sách tác nhân
* Lược đồ usecase tổng quát
Trang 15c Thiết kế cơ sở dữ liệu
* Xác định thực thể
Hình 2.2: Thực thể SECTORS
- Chức năng: lưu thông tin các ngành đào tạo
- Quy ước: Trường sector_id là mã ngành đào tạo được quy ước trong chương trình đàotạo, sector_id là khóa chính và là duy nhất
- Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin
Trang 16+ Trường sector_id là khóa phụ tham chiếu đến trường sector_id trong bảng SECTORS.
- Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin
Trang 17Hình 2.5: Thực thể SUBJECTS
- Chức năng: lưu thông tin môn học
- Quy ước: Trường subject_id là mã môn học được quy ước trong chương trình đào tạo,trường subject_id là khóa chính và là duy nhất
- Ràng buộc:
+ Các trường có required giá trị True phải nhập đầy đủ thông tin;
+ Trường number được đặt mặc định trong chương trình đào tạo và chỉ nhận giá trị từ
1 đến 8
Trang 19* Xây dựng mô hình thực thể kết hợp
Hình 2.7: Mô hình thực thể kết hợp
* Xây dựng mô hình cơ sở dữ liệu quan hệ
Trang 20Hình 2.8: Mô hình cơ sở dữ liệu quan hệ
d Thiết kế giao diện
Đăng nhập chương trình, màn hình sau sẽ xuất hiện:
Hình 2.9: Giao diện đăng nhập.
Hình 2.10: Quản lý sinh viên.
Mục quản lý sinh viên để nhập danh sách sinh viên (bao gồm mã số sinh viên, họ tên, ngàytháng năm sinh, quê quán, giới tính) vào hệ thống, có thể nhập trực tiếp bằng tay hoặc nhập
từ file excel
Trang 21+ Công nghệ kỹ thuật Giao thông;
+ Công nghệ kỹ thuật công trình Xây dựng;
+ Kế toán;
+ Công nghệ kỹ thuật Cơ khí
Trang 22Hình 2.13: Quản lý điểm của từng lớp học phần.
Trong quản lý điểm thể hiện điểm của sinh viên theo lớp học phần
Hình 2.14: Quản lý lớp sinh hoạt.
Quản lý lớp sinh hoạt được sắp xếp theo từng ngành đào tạo Trong từng lớp sinh hoạtthể hiện danh sách sinh viên của chuyên ngành đó
Hình 2.15: Quản lý lớp học phần.
Trang 23Chương 3 GIẢI PHÁP TỐI ƯU HỆ THỐNG
- Sử dụng Node.js thay cho PHP
PHP không quá nặng nề và có những dự án và các tùy chọn làm cho nó nhanh hơn Ngay
cả các nhà phát triển PHP đòi hỏi khắt khe nhất cũng hiếm khi lo lắng về tốc độ, nhưng hiệusuất của Node.js nói chung là tốt hơn Tất nhiên, hiệu suất phần lớn là kết quả của kinh nghiệm
và sự chăm sóc được thực hiện bởi đội ngũ phát triển, nhưng Node.js có khá nhiều ưu điểm
- Ít dependencies hơn
Tất cả các request tới một ứng dụng PHP phải được định tuyến thông qua một máy chủweb rồi trình thông dịch PHP mới bắt đầu chạy đoạn code đó Node.js không cần quá nhiềucác dependencies, trong khi gần như chắc chắn sẽ sử dụng một server framework như Express,
nó khá nhẹ và là một phần trong ứng dụng
- Trình thông dịch nhỏ hơn và nhanh hơn
Node.js nhỏ hơn và nhanh hơn so với trình thông dịch PHP Nó ít bị cản trở bởi di sảnngôn ngữ hỗ trợ và Google đã đầu tư rất lớn để nâng cao hiệu suất của engine V8
- Các ứng dụng là Permanently On
PHP tuân theo mô hình client-server điển hình Mọi page request khởi tạo ứng dụng nạpcác thông số cấu hình, kết nối với một cơ sở dữ liệu, lấy thông tin và xuất ra dạng HTML Mộtứng dụng Node.js chạy vĩnh viễn và nó chỉ cần khởi tạo một lần duy nhất
Trang 24Khởi tao ứng dụng sẽ tiến hành kết nối đến database và lắng nghe các yêu cầu từ cổng
3008 Các API được tạo ra để lắng nghe các yêu cầu được gửi tới
- Một Event-driven, Non-Blocking I/O
PHP và các ngôn ngữ phía máy chủ khác sử dụng một mô hình thực thi blocking rõ ràng.Khi phát ra một lệnh như lấy thông tin từ một cơ sở dữ liệu, lệnh đó sẽ thực hiện hoàn thànhtrước, rồi tiến hành các câu lệnh tiếp theo Còn Node.js sẽ không chờ đợi Thay vào đó, cungcấp một callback function sẽ được thực thi một khi hành động đó hoàn thành, ví dụ:
Trong ví dụ này, cửa sổ console sẽ xuất ra dòng chữ ’finished’ trước ’N records returned’bởi vì function process được gọi khi tất cả dữ liệu đã được lấy ra Nói cách khác, trình thôngdịch được tự do làm việc khác trong khi những tiến trình khác đang bận rộn
- Áp dụng vào chương trình
Trang 25Đoạn lệnh trên dùng để lấy danh sách sinh viên, danh sách lớp học phần và danh sáchđiểm Giả sử mỗi hàm xử lý hết 1 giây Với 3 dòng lệnh gọi hàm trên sử dụng Non-blocking để
xử lý thì 3 dòng lệnh trên sẽ đồng thời được xử lý cùng lúc, thời gian xử lý sẽ mất 1 giây Cònkhi không sử dụng Non-blocking các dòng lệnh gọi hàm sẽ lần lượt được xử lý Dòng 1 (line 1)
xử lý xong dòng 2 (line 2) mới bắt đầu chạy và dòng 2 xử lý xong thì dòng 3 (line 3) mới bătđầu thực thi Như vậy sẽ mất 3 giây để xử lý xong hết các tiến trình
Như vậy, Node.js là sự lựa chọn thích hợp sử dụng ở phía server để tối ưu việc xử lý cácluồng dữ liệu
Trang 26KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong luận văn này, chúng tôi đã nghiên cứu Node.js và React.js để thấy khả năng và ưuđiểm của công nghệ mới Đây là những ngôn ngữ lập trình mới, nó không đồng nhất với ngônngữ cũ của hệ thống, để áp dụng vào hệ thống cũ và làm tối ưu hệ thống cũ rất phức tạp vàtốn nhiều thời gian Chính vì thế giải pháp để tối ưu hệ thống quản lý điểm của trường Caođẳng Giao thông vận tải II, là xây dựng một hệ thống sử dụng Node.js và React.js rồi chuyển
cơ sở dữ liệu từ SQL server sang cơ sở dữ liệu mongoDB
Các công việc đã thực hiện trong luận văn được tóm tắt như sau:
1 Đã trình bày tổng quan về Node.js, React.js, Flux và MongoDB;
2 Đã trình bày về hiện trạng công tác quản lý điểm tại trường Cao đẳng Giao thông vận tảiII; Tổng quan chức năng của hệ thống, đưa ra sơ đồ tổng thể của hệ thống, mô hình hoạtđộng; Trên cơ sở những phân tích, chúng tôi sử dụng các công cụ hỗ trợ và môi trườngphát triển để tiến hành xây dựng và thiết kế chương trình
3 Trên cơ sở phân tích những nguyên nhân làm chậm hệ thống đang sử dụng tại trường Caođẳng Giao thông vận tải II, chúng tôi đã tìm ra và lựa chọn giải pháp cải thiện hiệu năng
hệ thống thích hợp
Trên đây là những kết quả mà chúng tôi đã đạt được trong thời gian nghiên cứu, thựchiện và hoàn thành luận văn này Nếu có điều kiện, đề tài có thể được mở rộng nghiên cứu xâydựng cơ sở khoa học trong vấn đề cải thiện hiệu năng và xử lý dữ liệu của các hệ thống cũ