Sử dụng công nghệ Node.js

Một phần của tài liệu Ứ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 (Trang 63 - 68)

7. Bố cục luận văn

3.2.2. Sử dụng công nghệ Node.js

- 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ệu suấ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ều cá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ản ngô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ạp cá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.

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ành trướ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 đó, cung cấ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ông dị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

Đ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òn khi 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ác luồng dữ liệu.

KẾT LUẬN CHƯƠNG 3

Như vậy, dựa trên những ưu điểm của Node.js được mô tả ở chương 1 và những đánh giá phân tích hệ thống ở chương 2, chương 3 của luận văn đã phần nào làm rõ hệ thống hiện tại đang sử dụng tại trường Cao đẳng Giao thông vận tải II có những vấn đề hạn chế, đặc biệt là hạn chế về hiệu năng, từ đó tìm ra và lựa chọn giải pháp cai thiện hiệu năng hệ thống thích hợp.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trong luận văn này, đã 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ôn ngữ 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 tại 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ải II; 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ường phá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, luận văn đã 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à luận văn đã đạt được trong thời gian nghiên cứu, thực hiện. Nếu có điều kiện, đề tài có thể được mở rộng nghiên cứ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ũ.

TÀI LIỆU THAM KHẢO Tiếng Việt

[1] PGS.TSKH. Trần Quốc Chiến (2002), Giáo trình Cơ sở dữ liệu, Đại học Đà Nẵng.

Tiếng Anh

[2] Kristina Chodorow, Michael Dirolf (2010), MongoDB: The Definitive

Guide, O’reilly.

[3] Mike Cantelon, Marc Harter, T.J. Holowaychuk, Nathan Rajlich (2014), Node.js in Action.

[4] Steve Francia (2012), MongoDB and PHP, United States of America.

Website

[5] Bui Minh Hieu (2015), Hướng dẫn Flux qua ví dụ, https://viblo.asia/ hieubm/posts/57rVRq14R4bP.

[6] T.Anh (2015), So sánh hiệu suất hoạt động của MongoDB và SQL

Server 2008,http://quantrimang.com/so-sanh-hieu-suat-hoat-dong-cua-

mongodb-va-sql-server-2008-84584.

[7] Tran Thanh (2005), Tìm hiểu về Node Js cơ bản, https://viblo.asia/thanhsm/posts/ojaqG0dGEKwZ. [8] Nguyễn Nhân (2015), React.js là gì?,

https://www.businesscard.vn/blog/react-js-la-gi/. [9] Tran Duc Thang (2015), Flux - Under the hood,

https://viblo.asia/thangtd90/posts/NznmMd34Rr69. [10] Sơ lược về React.js,

http://blog.ows.vn/so-luoc-ve-reactjs/

[11] Nguyen Thanh Tung (2015), Xây dựng ứng dụng đơn giản với Flux, https://viblo.asia/tungshooter/posts/jdWrvwjzGw38.

[12] http://nodejs.vn/. [13] http://vietjack.com/nodejs/nodejs_la_gi.jsp [14] http://freetuts.net/tong-quan-ve-mongodb-203.html. [15] http://kipalog.com/posts/Gioi-thieu-MongoDB. [16] http://expressmagazine.net/development/2330/dinh-nghia-mongodb- nosql-la-gi. [17] http://devpro.edu.vn/tim-hieu-ve-blocking-va-non-blocking/. [18] http://blog.ows.vn/so-luoc-ve-reactjs/. [19] https://nodejs.org/. [20] http://nodejs.org/documentation/. [21] https://facebook.github.io/react/index.html. [22] http://blog.mimacom.com/introduction-to-react-and-flux/. [23] http://facebook.github.io/flux/docs/overview.html. [24] http://www.mongodb.org. [25] http:// log.andrewray.me/reactjs-for-stupid-people/. [26] https://bigsonata.wordpress.com/2014/06/05/mongodb/.

Một phần của tài liệu Ứ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 (Trang 63 - 68)

Tải bản đầy đủ (PDF)

(68 trang)