Ứ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

26 118 0
Ứ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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ 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 Cơng trình hồn thành ĐẠ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 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 Đạ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:  Trung tâm Thông tin-Học liệu, Đại học Đà Nẵng  Thư viện trường Đại học Sư phạm, Đại học Đà Nẵng MỞ ĐẦU Lý chọn đề tài Trong năm gần đây, với phát triển xã hội kinh tế thị trường cơng việc quản lý ngày khó khăn phức tạp, đóng góp vai trò quan trọng quan, cơng ty, xí nghiệp Việc áp dụng thành tựu khoa học kỹ thuật nói chung thành tựu 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 lĩnh vực quản lý bước triển khai Đặc biệt, với việc chuyển đổi đào tạo theo học chế tín việc ứng dụng công nghệ thông tin cần thiết để đáp ứng yêu cầu quản lý việc dạy học theo đặc thù hệ thống đào tạo này, điển hình 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 học tập phức tạp (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 thủ cơng, nhiều thời gian dễ xảy sai sót Quy trình cơng bố điểm phức tạp, qua nhiều cơng đoạn Thời gian xử lý, truy xuất liệu hệ thống chậm trễ gây thời gian, ảnh hưởng tới công việc phòng Đào tạo Vì lý trên, đề 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" Mục đích luận văn - Ứng dụng cơng nghệ 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 hệ thống quản lý điểm, giải tình trạng sai sót việc nhập liệu thủ công, giảm thiểu đáng kể thời gian nhập liệu, xử lý liệu; - Xây dựng sở khoa học vấn đề cải thiện hiệu xử lý liệu hệ thống cũ Đối tượng nghiên cứu - Người sử dụng ( chun viên phòng Đào tạo, phòng Cơng tác Học sinh - Sinh viên, sinh viên, ), người quản lý ( quản trị mạng); - Công nghệ Node.js, React.js, mơ hình Flux; - Cơ sở liệu MongoDB; - Các công cụ hỗ trợ Phạm vi nghiên cứu Đề tài thực khảo sát quy trình quản lý điểm trường Cao đẳng Giao thông vận tải II Phương pháp nghiên cứu - Phương pháp tài liệu: Với phương pháp này, nghiên cứu tài liệu sở lý thuyết bao gồm tài liệu Node.js, React.js, MongoDB tài liệu liên quan đến số nghiên cứu khác; - Phương pháp thực nghiệm: Với phương pháp này, 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 liệu với hệ thống dùng công nghệ Node.js, React.js để rút kết luận tối ưu Ý nghĩa khoa học, thực tiễn đề tài - Về khoa học: Xây dựng sở khoa học vấn đề cải thiện hiệu xử lý liệu hệ thống cũ; - Về thực tiễn: Đề xuất giải pháp góp phần tối ưu hiệu hệ thống quản lý điểm, giải tình trạng sai sót việc nhập liệu thủ công, giảm thiểu đáng kể thời gian nhập liệu, xử lý liệu 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 Chương NGHIÊN CỨU TỔNG QUAN 1.1 TỔNG QUAN VỀ NODE.JS 1.1.1 Khái niệm Node.js mã nguồn mở, môi trường thời gian chạy đa tảng cho phía máy chủ ứng dụng mạng Ứng dụng Node.js viết JavaScript, hoạt động OS X, Microsoft Windows, Linux FreeBDS 1.1.2 Lịch sử phát triển 1.1.3 Ưu điểm Node.js a Ưu điểm - Đặc điểm bật Node.js nhận xử lý nhiều kết nối với single-thread - JSON APIs - Ứng dụng trang( Single page Application) - Shelling tools unix - Streamming Data (Luồng liệu) - Ứng dụng Web thời gian thực b Khi dùng Node.js? Không nên sử dụng Node.js khi: - Xây dựng ứng dụng hao tốn tài nguyên; - Một ứng dụng toàn CRUD; - Khi chưa hiểu hết Node.js gặp nhiều khó khăn Vậy nên dùng Node.js nào? - Node.js thực tỏa sáng việc xây dựng RESTful API (json) ; - Những ứng dụng đòi hỏi giao thức kết nối khác khơng phải có http ; - Những ứng dụng thời gian thực; - Những website stateful 1.1.4 Kỹ thuật Node.js 1.1.5 Các đặc tính Node.js - Khơng đồng bộ; - Chạy nhanh; - Đơn luồng khả mở rộng cao; - Khơng đệm; - Có giấy phép 1.1.6 Ứng dụng Node.js - Xây dựng websocket server (Chat server); - Hệ thống Notification (Giống facebook hay Twitter); - Ứng dụng upload file client; - Các máy chủ quảng cáo; - Các ứng dụng liệu thời gian thực khác 1.1.7 1.2 Cài đặt Node.js TỔNG QUAN VỀ REACT.JS 1.2.1 Khái niệm React JavaScript framework để xây dựng giao diện người sử dụng (User interface) ứng dụng 1.2.2 Lịch sử phát triển 1.2.3 Ưu, nhược điểm React.js a Ưu điểm React.js - Sẽ luôn biết component sinh mã HTML việc nhìn vào file source; - Tích hợp javascript HTML vào JSX làm cho component dễ hiểu hơn; - Có thể render React.js phía server b Nhược điểm React.js - Nếu dùng React.js đứng mình, vơ dụng yêu cầu thực tế; - Tài liệu nghèo nàn; - React.js nặng so với framework khác 1.2.4 Tính - Được dùng để tạo giao diện cho người dùng ( user interface) nhằm giải khó khăn phát triển ứng dụng đơn trang ( Single-Page Applications viết tắt SPAs) - SPAS web app mà load trang HTML tự động update content người dùng tương tác - Được sử dụng để xây dựng ứng dụng lớn mà có liệu thay đổi theo thời gian - React.js xử lý User Interface ứng dụng, xem View mơ hình thiết kế MVC - React.js kết hợp với thư viện Js khác framework lớn AngularJS 1.2.5 Cấu trúc, thành phần React.js - React.js Template Language; - Chia thành component; - Sử dụng JSX a JSX gì? JSX = Javascript + XML JSX dạng ngôn ngữ cho phép viết mã HTML Javascript Đặc điểm: - Faster: Nhanh hơn; - Safer: An toàn hơn; - Easier: Dễ dàng b Components React.js c Virtual DOM d Data Flow 1.3 TỔNG QUAN VỀ KIẾN TRÚC FLUX 1.3.1 Khái niệm Flux kiến trúc phát triển ứng dụng mà Facebook dùng để xây dựng phần client-side cho ứng dụng web họ Nó giúp làm việc với components React cách dễ dàng cách sử dụng luồng liệu chiều (Unidirectional Data Flow) Flux khái niệm, khơng phải thư viện Nếu tồn thư viện giống với pattern framework 1.3.2 Cấu trúc Flux 1.3.3 Data Flow 1.3.4 Sự khác biệt Flux so với MVC 1.3.5 Implement Flux 1.4 TỔNG QUAN VỀ MONGODB 1.4.1 Tìm hiểu sở liệu NoSQL a Khái niệm NoSQL NoSQL sở liệu không quan hệ, ràng buộc Collection (hay gọi bảng sở liệu bình thường) b Ưu, nhược điểm CSDL NoSql *Ưu điểm NoSQL - Là mã nguồn mở; - Linh hoạt việc mở rộng phát triển; - Áp dụng cơng nghệ điện tốn đám mây; - Được hãng lớn sử dụng Amazon, BBC, Facebook Google.; - NoSQL chủ yếu lựa chọn mô hình lưu trữ tập liệu theo cặp giá trị key/value để dễ dàng 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 phép tính tốn, tác vụ đọc ghi, đảm bảo u cầu xử lý liệu dịch vụ mạng xã hội Hệ CSDL lưu trữ, xử lý từ lượng nhỏ đến hàng petabytes liệu với khả chịu tải, chịu lỗi cao đòi hỏi tài nguyên phần cứng thấp - NoSQL lựa chọn tốt cho công ty nhỏ khơng đủ kinh phí cho việc đầu tư quyền server mạnh, cấu hình cao * Nhược điểm NoSQL - Hỗ trợ không đồng cho doanh nghiệp; - Chưa sử dụng rộng rãi; - Còn lạ với số lập trình viên; - Chia sẻ liệu chưa theo tiêu chuẩn chung 1.4.2 Hệ quản trị sở liệu MongoDB a Khái niệm MongoDB MongoDB mã nguồn mở viết ngôn ngữ C++ MongoDB CSDL có khả mở rộng, hiệu suất cao, mã nguồn mở hướng văn bản, hoạt động khái niệm collection document b Các tính - Hiệu suất cao; - Dễ dàng tăng tính mở rộng c Các khái niệm MongoDB CRUD d Một số đặc trưng MongoDB e Các điểm lưu ý lựa chọn MongoDB - Nếu ứng dụng 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 liệu q; - Máy chủ khơng có hệ quản trị CSDL f Ưu điểm MongoDB - Ít Schema hơn; - Cấu trúc đối tượng rõ ràng; - Khơng có Join phức tạp; - Khả truy vấn sâu hơn; - MongoDB dễ dàng để mở rộng; - Việc chuyển đổi/ánh xạ đối tượng ứng dụng đến đối tượng sở liệu không cần thiết - Sử dụng nhớ nội để lưu giữ phần công việc, giúp truy cập liệu nhanh hơn; - Lập mục thuộc tính nào; - Các truy vấn đa dạng; - Cập nhật nhanh 10 2.3.2 Sinh viên a Chức xem điểm b Chức phản hồi thơng tin điểm 2.3.3 Phòng Đào tạo a Chức quản lý điểm b Chức quản lý sinh viên 2.4 THIẾT KẾ HỆ THỐNG 2.4.1 Công cụ hỗ trợ - Node.js v4.4.5; - Sublime Text 3; - SourceTree; - Robomongo 0.8.5; - Notepad++ 6.9.1 11 2.4.2 Thiết kế hệ thống a Sơ đồ tổng thể hệ thống, mơ hình hoạt động Hình 2.1: Sơ đồ quản lý điểm sinh viên 12 b Lược đồ hệ thống * Danh sách tác nhân * Lược đồ usecase tổng quát 13 c Thiết kế sở 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 ngành đào tạo - Quy ước: Trường sector_id mã ngành đào tạo quy ước chương trình đào tạo, sector_id khóa - Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thơng tin Hình 2.3: Thực thể CLSS - Chức năng: lưu thông tin lớp sinh hoạt - Quy ước: + Trường class_id mã lớp sinh hoạt quy ước ngành đào tạo, class_id khóa nhất; 14 + Trường sector_id khóa phụ tham chiếu đến trường sector_id bảng SECTORS - Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thơng tin Hình 2.4: Thực thể STUDENTS - Chức năng: lưu thông tin sinh viên - Quy ước: + Trường student_id mã sinh viên quy ước định thành lập lớp, trường student_id khóa nhất; + Trường class_id khóa phụ tham chiếu đến trường class_id bảng CLSS; + Trường gender quy ước: (nam), (nữ) - Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin 15 Hì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 mã mơn học quy ước chương trình đào tạo, trường subject_id khóa - Ràng buộc: + Các trường có required giá trị True phải nhập đầy đủ thông tin; + Trường number đặt mặc định chương trình đào tạo nhận giá trị từ đến 16 Hình 2.6: Thực thể MARKS - Chức năng: Lưu thơng tin điểm môn học - Quy ước: + Trường student_id, subject_id khóa ngoại bảng - Ràng buộc: + Các trường có required giá trị True phải nhập đầy đủ thông tin + Các trường cc, gk, t1, t2, by_number nhận giá trị từ đến 10 17 * 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 sở liệu quan hệ 18 Hình 2.8: Mơ hình sở liệu quan hệ d Thiết kế giao diện Đăng nhập chương trình, hình sau 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ày tháng năm sinh, q qn, giới tính) vào hệ thống, nhập trực tiếp tay nhập từ file excel 19 Hình 2.11: Quản lý mơn học Trong quản lý môn học chứa tất môn học chương trình đào tạo, số tín kí hiệu mơn học Hình 2.12: Quản lý ngành đào tạo Có tất ngành đào tạo: + Công nghệ kỹ thuật Giao thơng; + Cơng nghệ kỹ thuật cơng trình Xây dựng; + Kế tốn; + Cơng nghệ kỹ thuật Cơ khí 20 Hình 2.13: Quản lý điểm lớp học phần Trong quản lý điểm thể điểm 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 xếp theo ngành đào tạo Trong lớp sinh hoạt thể danh sách sinh viên chun ngành Hình 2.15: Quản lý lớp học phần 21 Chương GIẢI PHÁP TỐI ƯU HỆ THỐNG 3.1 PHÂN TÍCH NGUYÊN NHÂN LÀM CHẬM HỆ THỐNG 3.1.1 3.1.2 3.2 Truy vấn database: sử dụng SQL server 2008 Quá trình xử lý luồng liệu: Kiểu truyền thống (blocking) GIẢI PHÁP TỐI ƯU HỆ THỐNG 3.2.1 Sử dụng MongoDB để tối ưu hoá truy vấn Database 3.2.2 Sử dụng công nghệ Node.js - Sử dụng Node.js thay cho PHP PHP khơng q nặng nề có dự án tùy chọn làm cho nhanh Ngay nhà phát triển PHP đòi hỏi khắt khe lo lắng tốc độ, hiệu suất Node.js nói chung tốt Tất nhiên, hiệu suất phần lớn kết kinh nghiệm chăm sóc thực đội ngũ phát triển, Node.js có nhiều ưu điểm - Ít dependencies Tất request tới ứng dụng PHP phải định tuyến thông qua máy chủ web trình thơng dịch PHP bắt đầu chạy đoạn code Node.js khơng cần q nhiều dependencies, gần chắn sử dụng server framework Express, nhẹ phần ứng dụng - Trình thơng dịch nhỏ nhanh Node.js nhỏ nhanh so với trình thơng dịch PHP Nó bị cản trở di sản ngôn ngữ hỗ trợ Google đầu tư lớn để nâng cao hiệu suất engine V8 - Các ứng dụng Permanently On PHP tn theo mơ hình client-server điển hình Mọi page request khởi tạo ứng dụng nạp thông số cấu hình, kết nối với sở liệu, lấy thông tin xuất dạng HTML Một ứng dụng Node.js chạy vĩnh viễn cần khởi tạo lần 22 Khởi tao ứng dụng tiến hành kết nối đến database lắng nghe yêu cầu từ cổng 3008 Các API tạo để lắng nghe yêu cầu gửi tới - Một Event-driven, Non-Blocking I/O PHP ngơn ngữ phía máy chủ khác sử dụng mơ hình thực thi blocking rõ ràng Khi phát lệnh lấy thông tin từ sở liệu, lệnh thực hồn thành trước, tiến hành câu lệnh Còn Node.js khơng chờ đợi Thay vào đó, cung cấp callback function thực thi hành động hồn thành, ví dụ: Trong ví dụ này, cửa sổ console xuất dòng chữ ’finished’ trước ’N records returned’ function process gọi tất liệu lấy Nói cách khác, trình thông dịch tự làm việc khác tiến trình khác bận rộn - Áp dụng vào chương trình 23 Đoạn lệnh dùng để lấy danh sách sinh viên, danh sách lớp học phần danh sách điểm Giả sử hàm xử lý hết giây Với dòng lệnh gọi hàm sử dụng Non-blocking để xử lý dòng lệnh đồng thời xử lý lúc, thời gian xử lý giây Còn khơng sử dụng Non-blocking dòng lệnh gọi hàm xử lý Dòng (line 1) xử lý xong dòng (line 2) bắt đầu chạy dòng xử lý xong dòng (line 3) băt đầu thực thi Như giây để xử lý xong hết tiến trình Như vậy, Node.js lựa chọn thích hợp sử dụng phía server để tối ưu việc xử lý luồng liệu 24 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong luận văn này, nghiên cứu Node.js React.js để thấy khả ưu điểm cơng nghệ Đây ngơn ngữ lập trình mới, khơng đồng với ngơn ngữ cũ hệ thống, để áp dụng vào hệ thống cũ làm tối ưu hệ thống cũ phức tạp tốn nhiều thời gian Chính giải pháp để tối ưu hệ thống quản lý điểm trường Cao đẳng Giao thông vận tải II, xây dựng hệ thống sử dụng Node.js React.js chuyển sở liệu từ SQL server sang sở liệu mongoDB Các công việc thực luận văn tóm tắt sau: Đã trình bày tổng quan Node.js, React.js, Flux MongoDB; Đã trình bày trạng cơng tác quản lý điểm trường Cao đẳng Giao thông vận tải II; Tổng quan chức hệ thống, đưa sơ đồ tổng thể hệ thống, mơ hình hoạt động; Trên sở phân tích, chúng tơi sử dụng công cụ hỗ trợ môi trường phát triển để tiến hành xây dựng thiết kế chương trình Trên sở phân tích nguyên nhân làm chậm hệ thống sử dụng trường Cao đẳng Giao thơng vận tải II, chúng tơi tìm lựa chọn giải pháp cải thiện hiệu hệ thống thích hợp Trên kết mà đạt thời gian nghiên cứu, thực hồn thành luận văn Nếu có điều kiện, đề tài mở rộng nghiên cứu xây dựng sở khoa học vấn đề cải thiện hiệu xử lý liệu hệ thống cũ ... lý 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" Mục đích luận văn - Ứng dụng. .. KẾ HỆ THỐNG 2.1 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ẢI II 2.1.1 Giới thiệu trường Cao đẳng Giao thông vận tải II 2.1.2 Công tác quản lý điểm Hiện nay, trường Cao. .. việc ứng dụng công nghệ thông tin cần thiết để đáp ứng yêu cầu quản lý việc dạy học theo đặc thù hệ thống đào tạo này, điển hình hệ thống quản lý điểm Hiện nay, trường Cao đẳng Giao thông Vận tải

Ngày đăng: 25/05/2019, 13:58

Từ khóa liên quan

Mục lục

  • Bia TTLV

  • ThanhTungLV

Tài liệu cùng người dùng

Tài liệu liên quan