1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứ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 121 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 1,51 MB

Nội dung

Đặ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 1

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

Trang 2

Cô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 3

MỞ ĐẦ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 4

4 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 5

Chươ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 8

b 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 11

Chươ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 12

2.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 13

2.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 14

b Lược đồ của hệ thống

* Danh sách tác nhân

* Lược đồ usecase tổng quát

Trang 15

c 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 17

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 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 20

Hì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 22

Hì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 23

Chươ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 24

Khở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 26

KẾ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ũ

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w