• Tidak ada hasil yang ditemukan

Kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực

Protected

Academic year: 2023

Membagikan "Kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực"

Copied!
79
0
0

Teks penuh

KẾT HỢP NODEJS VỚI MONGODB CHO VẤN ĐỀ XÂY DỰNG HỆ THỐNG QUẢN LÝ CƠ SỞ DỮ LIỆU THỜI GIAN THỰC. Tên dự án: Kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực. Việc lựa chọn hệ quản trị cơ sở dữ liệu là một trong những yếu tố dẫn tới sự thành công của dự án.

Để đáp ứng yêu cầu nhanh chóng và tức thời về hệ thống phần mềm, con người sẽ lựa chọn giải pháp sử dụng cơ sở dữ liệu thời gian thực. Nhưng loại cơ sở dữ liệu này có chi phí vận hành cao, trong khi nhiều dự án chỉ có kinh phí hạn chế. Dựa trên công nghệ phát triển và hướng sử dụng, hệ thống quản lý cơ sở dữ liệu MongoDB có nhiều ưu điểm.

Tôi chọn đề tài “Kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực”. với mong muốn được học hỏi thêm nhiều công nghệ mới để áp dụng trong sự nghiệp sau này.

KIẾN THỨC NỀN TẢNG

Đặt vấn đề

Cơ sở dữ liệu hướng tài liệu

Giao thức HTTP

  • Giới thiệu HTTP
  • Lịch sử phát triển
  • Nguyên lý hoạt động của HTTP
  • Uniform Resource Locator (URL)
  • Giao thức TCP/IP

Giao thức HTTP 2.0

  • Giới thiệu HTTP 2.0
  • Nguyên lí hoạt động

WebSocket

  • Giới thiệu Socket
  • Nguyên lí hoạt động của Socket
  • Phân loại Socket
  • Giới thiệu Web Socket
  • Cấu trúc của Web Socket
  • Các thuộc tính của WebSocket
  • Các sự kiện WebSocket
  • Các phương thức của WebSocket

MongoDB

  • Giới thiệu MongoDB
  • Một số câu lệnh cơ bản trên MongoDB
  • Ưu điểm của MongoDB
  • Nhược điểm của MongoDB
  • Các ứng dụng cần MongoDB

NodeJs

  • Giới thiệu
  • Những ứng dụng nên viết bằng Nodejs
  • Cài đặt NodeJs

Express

  • Giới thiệu Express
  • Cài đặt Express

Resful API

  • Giới thiệu RestFul API
  • Đặc điểm của Resful API

Angurlar Js

  • Giới thiệu Angular
  • Các tính năng cơ bản

KẾT HỢP NODEJS VỚI MONGODB

Cơ sở dữ liệu thời gian thực

  • Giới thiệu về cơ sơ dữ liệu thơi gian thực
  • So sánh cơ sở dữ liệu thời gian thực và cơ sở dữ liệu truyền thống
  • Một số ứng dụng

Thời gian thực có nghĩa là ứng dụng phản hồi người dùng ngay lập tức mà người dùng không cần phải làm mới. Cơ sở dữ liệu thời gian thực là hệ thống cơ sở dữ liệu sử dụng thời gian thực để xử lý khối lượng công việc cho các vấn đề liên tục thay đổi dữ liệu. Ví dụ: hệ thống bán hàng có các sản phẩm có giá trị thay đổi liên tục như vàng và dầu.

Xử lý theo thời gian thực có nghĩa là giao dịch được xử lý đủ nhanh để mang lại phản hồi và tác động ngay lập tức. Bằng cách truyền tải thông tin ngay lập tức đến người dùng, thời gian thực là một tính năng không thể thiếu trong hầu hết các ứng dụng phổ biến hiện nay. Có thể kể đến nhiều lĩnh vực sử dụng cơ sở dữ liệu theo thời gian thực như: Facebook với thông báo trên ứng dụng điện thoại hay Uber với tác dụng phát hiện vị trí ngay lập tức, chức năng đa người dùng Google Docs.

Cơ sở dữ liệu thời gian thực là công cụ quản lý hữu ích cho con người như kế toán, ngân hàng, hệ thống pháp luật, hồ sơ y tế, hệ thống đa phương tiện và hệ thống điều khiển, kiểm soát quy trình, hệ thống phòng chống thiên tai và hệ thống phân tích dữ liệu khoa học. Điều này khác với cơ sở dữ liệu truyền thống chứa dữ liệu liên tục và hầu như không bị ảnh hưởng bởi thời gian. Cơ sở dữ liệu thời gian thực về cơ bản là cơ sở dữ liệu truyền thống nhưng có phần mở rộng để cung cấp nhiều chức năng hơn để những cơ sở dữ liệu này có thể cung cấp phản hồi có ý nghĩa.

Một hệ thống hiệu quả phải có khả năng xử lý các truy vấn gần thời gian thực và trả về dữ liệu hợp lệ theo thời gian. Cơ sở dữ liệu thời gian thực sử dụng cơ chế thời gian để biểu thị một phạm vi giá trị nhất định trong đó dữ liệu được coi là đúng. Phạm vi này được gọi là giá trị tạm thời, trong khi cơ sở dữ liệu thông thường không thể hoạt động trong những trường hợp dữ liệu bị ràng buộc.

Cơ sở dữ liệu truyền thống sử dụng các ràng buộc dữ liệu, vì vậy nếu nhiều trường thay đổi thì cần phải tạo thêm nhiều bảng. Ứng dụng sự kiện: Theo dõi dữ liệu tương tác của khách hàng.

Hình 2. 1: Minh họa kiễn trúc cơ sở dữ liệu thời gian thực
Hình 2. 1: Minh họa kiễn trúc cơ sở dữ liệu thời gian thực

Sử dụng MongoDB như cơ sở dữ liệu thời gian thực với NodeJS

  • Thư viện SocketIO
  • So sánh MongoDb với Firebase

Có luồng dữ liệu hai chiều giữa máy khách và máy chủ, cũng như các tính năng thời gian thực vì bạn luôn có kết nối TCP mở. Vì vậy, sau lần sử dụng HTTP đầu tiên, Ổ cắm có thể giao tiếp với ít tài nguyên hơn nhiều. Bằng cách gửi nhiều yêu cầu hơn, nó cũng sẽ tăng thời gian phản hồi từ máy chủ đến máy khách.

Đây là một giải pháp hoàn chỉnh được sử dụng để xây dựng các ứng dụng web và di động. Cơ sở dữ liệu thời gian thực của Google Firebase hoàn hảo cho các ứng dụng cần xử lý dữ liệu theo thời gian thực trên nhiều thiết bị. Nó hoạt động gần như theo thời gian thực, ghi nhận các thay đổi từ cơ sở dữ liệu của bạn khi chúng xảy ra.

Firestore là một phần của Dịch vụ đám mây Firebase, có nghĩa là nó hoạt động hoàn hảo với tất cả các sản phẩm Firebase khác. Không giống như Firebase, nơi cung cấp toàn bộ hệ sinh thái dịch vụ, MongoDB chỉ là một cơ sở dữ liệu hướng văn bản (rất mạnh mẽ). Khi nói về MongoDB, chúng tôi nói về khả năng mở rộng và tính linh hoạt, hai yếu tố mà chúng tôi cân nhắc khi phát triển MongoDB.

29 về lưu trữ dữ liệu, nhưng MongoDB vẫn được sử dụng rộng rãi nhờ khả năng lưu trữ mạnh mẽ mà nó mang lại. Đối với các nhà phát triển, việc sử dụng MongoDB mang lại sức mạnh trong việc phát triển ứng dụng. MongoDB đáp ứng nhu cầu ngày càng tăng của họ về các ứng dụng lưu trữ dữ liệu hiệu quả.

Máy khách iOS, Android và JavaScript chia sẻ một phiên bản Cơ sở dữ liệu thời gian thực và tự động nhận các bản cập nhật với dữ liệu mới nhất. Một trong những kho tài liệu quan trọng nhất có sẵn trong Dịch vụ đám mây.

Bảng 2. 1: So sánh thành phần MongoDB với Firebase
Bảng 2. 1: So sánh thành phần MongoDB với Firebase

Sử dụng thư viện SocketIO xây dựng ứng dụng cơ sở dữ liệu thời gian thực

THỬ NGHIỆM HỆ THỐNG

Phát biểu bài toán

Khi nhận được lệnh, người quản lý sẽ tiến hành lập lệnh điều động và điều phối xe với thông tin tuyến đường cần đưa đi. Mỗi chiếc xe sẽ được ghép nối với một chiếc xe kéo để hoàn thành một chiếc xe tải. Đến một thời điểm nào đó tài xế sẽ được cấp phương tiện và được phép bắn địa bàn theo thông tin lộ trình như trên trong lệnh điều xe đã được phê duyệt.

Xác định yêu cầu của hệ thống

  • Yêu cầu phi chức năng
  • Yêu cầu chức năng

Yêu cầu chuyên môn Quản lý người lái xe, phương tiện, rơ moóc, tuyến đường, lệnh lái và điều khiển phương tiện.

Xác định các tác nhân, các UC sử dụng và biểu đồ UC

  • Các tác nhân
  • Các UseCase sử dụng

Biểu đồ các use case

  • Biểu đồ use case tổng quát
  • Biểu đồ Use case đăng nhập
  • Biểu đồ Use case quản lý lái xe
  • Biểu đồ Use case quản lý đầu xe
  • Biểu đồ Use case quản lý mooc xe
  • Biểu đồ use case quản lý tuyến đường
  • Biểu đồ use case quản lý lệnh điều xe
  • Biểu đồ use case quản lý điều khiển xe

Hệ thống hiển thị danh sách driver - Quản lý thêm driver mới. Hệ thống hiển thị danh sách xe - Quản lý bổ sung xe mới. Hệ thống hiển thị danh sách trailer - Quản lý thêm trailer mới.

Chức năng use case: cho phép thêm, bớt, chỉnh sửa thông tin tuyến đường. Hệ thống hiển thị danh sách tuyến đường - Quản lý thêm tuyến đường mới. 46 Tính năng use case: Cho phép bạn quản lý việc thêm, xóa, chỉnh sửa thông tin đặt xe.

Hệ thống hiển thị danh sách lệnh điều động xe - Quản lý bằng cách thêm lệnh điều động xe mới. 47 Chức năng Use Case: Cho phép quản lý thêm, xóa, chỉnh sửa thông tin quản lý xe. Hệ thống hiển thị danh sách điều khiển xe - Quản lý bằng cách thêm lệnh điều khiển xe mới.

Hình 3. 2: Biểu đồ Use Case đăng nhập
Hình 3. 2: Biểu đồ Use Case đăng nhập

Biểu đồ tuần tự

  • Biểu đồ tuần tự chức năng đăng nhập
  • Biểu đồ tuần tự cho chức năng thêm lái xe
  • Biểu đồ tuần tự cho chức năng sửa lái xe
  • Biểu đồ tuần tự cho chức năng xóa lái xe
  • Biểu đồ tuần tự cho chức năng thêm tuyến đường
  • Biểu đồ tuần tự cho chức năng sửa tuyến đường
  • Biểu đồ tuần tự cho chức năng xóa tuyến đường
  • Biểu đồ tuần tự cho chức năng thêm đầu xe
  • Biểu đồ tuần tự cho chức năng sửa đầu xe
  • Biểu đồ tuần tự cho chức năng xóa đầu xe
  • Biểu đồ tuần tự cho chức năng thêm mooc xe
  • Biểu đồ tuần tự cho chức năng sửa mooc xe
  • Biểu đồ tuần tự cho chức năng xóa mooc xe
  • Biểu đồ tuần tự cho chức năng thêm lệnh điều xe
  • Biểu đồ tuần tự cho chức năng sửa lênh điều xe
  • Biểu đồ tuần tự cho chức năng xóa lệnh điều xe
  • Biểu đồ tuần tự cho chức năng thêm điều khiển xe
  • Biểu đồ tuần tự cho chức năng sửa điều khiển xe

Biểu đồ lớp

Xây dựng cơ sở dữ liệu

  • Bảng “Laixe”
  • Bảng “Dauxe”
  • Bảng “Moocxe”
  • Bảng “Tuyenduong”
  • Bảng “Lenhdieuxe”
  • Bảng “Dieukhienxe”

Giao diện chương trình

  • Giao diện danh sách đầu xe
  • Giao diện danh sách mooc xe
  • Giao diện danh sách lái xe
  • Giao diện danh sách tuyến đường

Tìm các phong cách và kỹ thuật sử dụng NodeJS và Socket.IO để kết nối với cơ sở dữ liệu MongoDB nhằm xử lý dữ liệu theo thời gian thực. Xây dựng một website có các chức năng như cập nhật, xóa, chỉnh sửa với các chức năng phân tích như trên. Trong thời gian qua tôi đã cố gắng tìm hiểu và áp dụng đề tài này.

Nhưng với kinh nghiệm và thời gian hạn chế thì không thể tránh khỏi những thiếu sót trong dự án. Vì là công nghệ mới, thời gian và kỹ năng còn hạn chế nên hệ thống xây dựng trong dự án chỉ ở mức thử nghiệm. Vì vậy, nếu muốn đưa nó vào thực tế thì cần có thời gian và công sức để hoàn thiện.

Nó chỉ dừng lại ở những thao tác cơ bản như quản lý phương tiện, lộ trình và xe moóc. Xây dựng phần mềm quản lý toàn diện bao gồm bảo dưỡng, giám sát phương tiện, giám sát nhiên liệu và quản lý lái xe nhằm đảm bảo an toàn cho người lái và phương tiện, giúp giảm thiểu rủi ro tai nạn, quá trình đầu tư và vận hành phương tiện. Cung cấp cho người quản lý những thông tin cần thiết trong việc bảo dưỡng phương tiện cũng như cân bằng hiệu quả kinh tế: tổng nhiên liệu sử dụng, số km đã đi, mức dầu, mực nước, doanh thu trên mỗi xe, mỗi chuyến, theo các mốc thời gian.

Hình 3. 30: Giao diện danh sách lái xe
Hình 3. 30: Giao diện danh sách lái xe

Gambar

Hình 1. 2: Kiến trúc giao thức TCP/IP so với OSI
Hình 1. 3: Sơ đồ hoạt động của Socket trong việc truyền nhận dữ liệu
Bảng 1. 2 : Bảng các sự kiện WebSocket  Event handlers có thể được tạo ra bằng cách sử dụng phương  thức   addEventListener()
Hình 1. 7: So sánh thời gian chèn dữ liệu của MongoDB với SQL
+7

Referensi

Dokumen terkait