Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh khoa học công nghệ phát triển nhanh chóng, việc ứng dụng công nghệ thông tin vào quản trị và vận hành doanh nghiệp đã trở thành xu thế tất yếu. Theo số liệu thống kê được tác giả trích dẫn từ Liên Hợp Quốc và VNetWork (tính đến ngày 27/06/2021), Việt Nam có khoảng 68 triệu người dùng Internet trên tổng số 98 triệu dân, chiếm tỷ lệ xấp xỉ 70%. Tỷ lệ tiếp cận mạng lưới trực tuyến cao thúc đẩy nhu cầu chuyển dịch các hoạt động quản lý truyền thống sang nền tảng web.

Trong quá khứ, công tác quản lý thông tin chủ yếu dựa trên việc ghi chép thủ công vào sổ sách và lưu trữ vật lý, gây tốn kém thời gian và công sức khi cần cập nhật hoặc tra cứu dữ liệu mới. Hiện nay, các doanh nghiệp áp dụng nhiều giải pháp phần mềm hiện đại (như BambooHR, SmartRecruiters hoặc các hệ thống tự phát triển). Đối với các cơ sở hạ tầng kỹ thuật phức tạp như nhà máy điện—nơi vận hành hàng nghìn thiết bị và cảm biến—việc giám sát thông số và quản lý trạng thái thiết bị đòi hỏi một hệ thống tập trung, trực quan và có độ tin cậy cao.

Nhiệm vụ nghiên cứu chính của đề tài bao gồm:

  1. Đánh giá tổng quan về nhu cầu và giải pháp xây dựng website quản lý thông tin chuyên dụng cho nhà máy điện.
  2. Hệ thống hóa các kiến thức, công nghệ lập trình web hiện đại (.NET Core, ASP.NET Core MVC, Web API, ABP Framework, SQL Server) và giao thức truyền thông IoT (MQTT).
  3. Phân tích, thiết kế hệ thống quản lý cảm biến bằng ngôn ngữ mô hình hóa thống nhất (UML).
  4. Thiết kế mô hình kết nối cảm biến và xây dựng ứng dụng web hoàn chỉnh phục vụ việc giám sát, quản lý cảm biến, thiết bị và người dùng theo kiến trúc đa người thuê (Multi-tenancy).

Đối tượng nghiên cứu là quy trình quản lý thông tin thiết bị, chỉ số kỹ thuật và luồng thu thập dữ liệu từ cảm biến trong nhà máy điện. Phạm vi nghiên cứu tập trung vào việc thiết kế kiến trúc phần mềm, xây dựng cơ sở dữ liệu và triển khai giao diện điều hành trên nền tảng web.


Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa nghiên cứu lý thuyết về kiến trúc phần mềm với phương pháp phân tích thiết kế hướng đối tượng và thực nghiệm phần mềm:

  • Nền tảng .NET Core và ASP.NET Core: .NET Core là nền tảng thực thi đa nền tảng (Windows, Linux) do Microsoft phát hành phiên bản đầu tiên vào ngày 27/06/2016. Chương trình được biên dịch sang mã trung gian IL (Intermediate Language) và chạy trên môi trường máy ảo CoreCLR thông qua trình biên dịch JIT (Just-in-Time). ASP.NET Core cung cấp kiến trúc mô-đun hóa gồm ba tầng: Platform (Web Server Kestrel, Middleware, URL Routing, Dependency Injection), Utility Frameworks (Identity, Entity Framework) và Application Frameworks (MVC, Web API, Razor Pages).
  • Mô hình kiến trúc MVC và Web API: Phân tách rõ ràng giữa Model (lưu trữ dữ liệu và trạng thái), View (giao diện người dùng HTML/CSS) và Controller (tiếp nhận và xử lý yêu cầu HTTP). Web API cho phép trả về dữ liệu định dạng JSON/XML phục vụ các ứng dụng độc lập trên đa thiết bị.
  • Hệ quản trị cơ sở dữ liệu SQL Server: Hệ quản trị cơ sở dữ liệu quan hệ và đối tượng (RDBMS/ORDBMS), hỗ trợ đa nền tảng từ phiên bản SQL Server 2017, hoạt động qua mô hình kết hợp giữa Workstation (SSMS, SQLEM) và Server (Default Instance, Named Instance).
  • Khung phát triển ABP Framework: Framework mã nguồn mở hỗ trợ phát triển ứng dụng web dựa trên các nguyên tắc Thiết kế hướng miền (Domain-Driven Design - DDD) và cấu trúc ứng dụng phần mềm dạng dịch vụ (SaaS) hỗ trợ Multi-tenancy.
  • Giao thức MQTT và thư viện MQTTnet: Giao thức truyền thông điệp theo mô hình Publish/Subscribe dành cho các thiết bị IoT yêu cầu băng thông thấp, hoạt động ổn định trên đường truyền không tin cậy. Thư viện MQTTnet trong hệ sinh thái .NET được sử dụng để xây dựng MQTT Client và MQTT Broker.
  • Phương pháp phân tích và thiết kế hệ thống: Sử dụng chuẩn UML để xây dựng các biểu đồ Use Case, biểu đồ lớp, biểu đồ trạng thái (State Diagram) và biểu đồ tuần tự (Sequence Diagram).

Thiết kế và triển khai

Hệ thống được thiết kế phục vụ hai nhóm tác nhân chính trên nền tảng đa người thuê: Quản trị viên (Admin) và Người dùng thuê (TenantUser). Trong đó, Admin được chia thành Quản trị viên toàn hệ thống (Không Tenant) và Quản trị viên của từng đơn vị thuê (Tenant).

Nhóm tác nhân Chức năng xác thực & hệ thống Chức năng quản lý thiết bị & cảm biến Chức năng quản trị người dùng & tenant
Admin (Không Tenant) Đăng nhập, Quên mật khẩu, Đổi mật khẩu Quản lý cảm biến, thiết bị, chỉ số kỹ thuật, thông số cài đặt, lịch sử thiết bị Quản lý người dùng, phân quyền (Permission/Role), Quản lý Tenant
Admin (Tenant) Đăng nhập, Quên mật khẩu, Đổi mật khẩu Quản lý cảm biến, thiết bị, chỉ số kỹ thuật, thông số cài đặt, lịch sử thiết bị Quản lý người dùng, phân quyền trong phạm vi Tenant
TenantUser Đăng nhập, Quên mật khẩu, Đổi mật khẩu Xem và quản lý cảm biến, thiết bị, chỉ số kỹ thuật, thông số cài đặt, lịch sử thiết bị Không có quyền quản trị người dùng và Tenant

Hệ thống phân chia cấu trúc chức năng thành hai phân hệ lớn:

  1. Phân hệ quản lý người dùng và cấu trúc tổ chức: Bao gồm quản lý tài khoản người dùng (AbpUsers), nhóm quyền (AbpRoles), quyền chi tiết (AbpUserRoles) và danh sách người thuê (Tenant).
  2. Phân hệ kỹ thuật và thiết bị: Bao gồm quản lý cảm biến (ExtTag), danh mục cảm biến theo bộ (ExtTagSet), cảm biến phân bổ cho người dùng (ExtUserTag), thiết bị (ExtEquipment), chỉ số kỹ thuật và thông số cài đặt.

Luồng xử lý tuần tự của các chức năng quan trọng:

  • Đăng nhập (AuthController): Tiếp nhận thông tin định danh (TenantName, UserName, Password), kiểm tra sự tồn tại của Tenant, xác thực tài khoản User, thiết lập Claim và lưu trữ phiên làm việc qua Cookie.
  • Quên mật khẩu (AccountController): Nhận email yêu cầu, kiểm tra bản ghi AbpUser, khởi tạo mã Reset Password ngẫu nhiên, lưu vào User và đăng ký một Background Job để tự động gửi đường dẫn xác thực qua email. Khi người dùng bấm vào liên kết có chứa mã truy vấn (Query String Code), hệ thống giải mã, so sánh thông tin và cập nhật mật khẩu mới.
  • Thêm/Sửa cảm biến (ExtTagController, ExtTagAppService): Tải dữ liệu từ các bảng liên kết ExtTagSet và ExtUserTag, khởi tạo đối tượng CreateTagViewModel hoặc TagSetModel/UserModel, nhận dữ liệu từ form, kiểm tra hợp lệ và lưu đồng bộ vào cơ sở dữ liệu.

Nội dung chính theo từng chương

Chương 1: Mô tả bài toán xây dựng website quản lý cảm biến và kết nối cảm biến nhà máy điện

Chương này tập trung trình bày lý do lựa chọn đề tài và phân tích thực trạng chuyển đổi số. Tác giả chỉ ra sự khác biệt giữa các website thông dụng (thương mại điện tử, quản lý nhân sự) với website giám sát kỹ thuật chuyên ngành trong các nhà máy điện. Bài toán đặt ra là phải giải quyết đồng thời hai yêu cầu: quản lý cấu trúc dữ liệu thiết bị phức tạp và xây dựng quy trình kết nối dữ liệu cảm biến phục vụ thực tế sản xuất điện năng.

Chương 2: Sơ lược về các công nghệ được sử dụng trong đề tài

Chương 2 thuyết minh chi tiết các nền tảng kỹ thuật được lựa chọn:

  • Nền tảng .NET Core: Cấu tạo Toolchain với Roslyn Compiler, Common Language Runtime (CLR), cơ chế thu gom rác tự động (Garbage Collector).
  • Kiến trúc ASP.NET Core: Mô hình vòng đời yêu cầu HTTP qua Web Server trung gian (Reverse Proxy) kết hợp Web Server tích hợp Kestrel, luồng chuyển tiếp qua các Middleware đến MVC Middleware.
  • Nguyên lý hoạt động của mẫu thiết kế MVC, cơ chế định tuyến (Routing) ánh xạ URL tới Action Result trong Controller.
  • Mô hình kiến trúc phân tán với Web API, phân tách giữa tầng giao diện hiển thị và tầng dịch vụ cung cấp dữ liệu định dạng JSON/XML.
  • Hệ quản trị cơ sở dữ liệu SQL Server và nguyên lý tích hợp của ABP Framework theo hướng Domain Driven Design.
  • Giao thức MQTT và thư viện MQTTnet trong việc truyền nhận gói tin telemetry của thiết bị cảm biến.

Chương 3: Phân tích và thiết kế hệ thống

Đây là chương trọng tâm về kỹ thuật phần mềm của khóa luận. Tác giả tiến hành:

  • Xác định các Actor và phân rã hệ thống Use Case chi tiết cho từng nghiệp vụ (Đăng nhập, Quên mật khẩu, Đổi mật khẩu, Quản lý cảm biến, Thiết bị, Người dùng, Quyền, Tenant, Chỉ số kỹ thuật, Thông số cài đặt, Lịch sử thiết bị).
  • Thiết lập đặc tả UML với biểu đồ Use Case có các mối quan hệ <<include>>, <<extend>>.
  • Xây dựng hệ thống biểu đồ trạng thái (State Diagram) chi tiết cho từng hành vi người dùng (thêm, sửa, xóa, tìm kiếm, lọc dữ liệu theo thời gian, vẽ biểu đồ xu hướng thông số).
  • Xây dựng biểu đồ tuần tự (Sequence Diagram) mô tả luồng tương tác giữa các lớp Controller, AppService, Data Transfer Object (DTO) và bảng thực thể cơ sở dữ liệu.

Phần: Kết nối cảm biến

Nội dung phần này mô tả mô hình hoạt động và nguyên lý truyền nhận tín hiệu từ các điểm đo cảm biến trong nhà máy điện về hệ thống trung tâm qua giao thức MQTT. Trình bày phương thức kết nối giữa MQTT Broker và các Module phần mềm tiếp nhận dữ liệu thời gian thực.

Chương 5: Mô tả và chạy thử

Chương 5 minh họa kết quả triển khai thực tế của hệ thống phần mềm với các giao diện chức năng:

  • Nhóm chức năng hệ thống: Trang đăng nhập hệ thống đa người thuê, biểu mẫu khôi phục mật khẩu.
  • Nhóm quản lý dữ liệu thiết bị: Trang tổng quan (Trang chính), giao diện quản lý cảm biến (Tag Manager), quản lý chỉ số kỹ thuật, quản lý thông số cài đặt.
  • Nhóm báo cáo và theo dõi: Giao diện tra cứu lịch sử cảm biến, bảng giá trị lịch sử và biểu đồ xu hướng vận hành thiết bị (History Trend and Value).
  • Nhóm quản trị hệ thống: Quản lý danh mục quyền (Role Manager), quản lý đơn vị thuê (Tenant Manager), quản lý danh sách người dùng (User Manager).
  • Nhóm kết nối dữ liệu: Giao diện cập nhật thông tin cảm biến và giao diện cập nhật, truyền nhận dữ liệu đo đạc trực tiếp.

Kết quả và đóng góp

  • Kết quả triển khai phần mềm: Xây dựng thành công hệ thống website hoàn chỉnh bao gồm đầy đủ các module: xác thực tài khoản đa người thuê, quản trị người dùng và phân quyền chi tiết, quản lý danh mục cảm biến/thiết bị, quản lý thông số kỹ thuật và hệ thống tra cứu biểu đồ lịch sử vận hành.
  • Giải pháp kỹ thuật: Ứng dụng thành công mô hình MVC và Web API trên nền tảng ASP.NET Core kết hợp với ABP Framework, giúp kiến trúc ứng dụng đạt tính mô-đun hóa cao, dễ bảo trì và mở rộng theo mô hình SaaS Multi-tenancy.
  • Tích hợp giao thức IoT: Xây dựng cơ chế kết nối dữ liệu cảm biến thông qua giao thức MQTT và thư viện MQTTnet, đáp ứng yêu cầu thu thập dữ liệu kỹ thuật từ các thiết bị đo đạc trong nhà máy điện.

Hạn chế và hướng nghiên cứu tiếp

  • Hệ thống tập trung chủ yếu vào việc mô hình hóa phân tích thiết kế phần mềm quản lý và kết nối giao thức, việc thử nghiệm mới dừng lại ở quy mô chạy thử giao diện và mô phỏng luồng dữ liệu.
  • Trong tương lai, hệ thống có thể mở rộng khả năng kết nối trực tiếp với các hệ thống điều khiển công nghiệp thực tế (SCADA, DCS) và xử lý dữ liệu lớn (Big Data) khi số lượng cảm biến đo lường tăng lên hàng chục nghìn điểm đo theo thời gian thực.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho:

  • Sinh viên các ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm đang thực hiện đồ án hoặc khóa luận tốt nghiệp về xây dựng hệ thống web trên nền tảng .NET Core và ABP Framework.
  • Các nhà phát triển phần mềm cần tài liệu thực tế về quy trình phân tích thiết kế hệ thống hướng đối tượng chuẩn UML, đặc biệt là hệ thống biểu đồ tuần tự (Sequence Diagram) và biểu đồ trạng thái (State Diagram) cho các nghiệp vụ xác thực và quản lý đa người thuê.
  • Các kỹ sư công nghệ quan tâm đến giải pháp kết nối và quản lý dữ liệu thiết bị công nghiệp/IoT qua giao thức MQTT.

Câu hỏi thường gặp

1. Đề tài được thực hiện bởi ai và thuộc cơ sở đào tạo nào?
Khóa luận do sinh viên Lê Anh Đông (Mã sinh viên: 11160904, Lớp Công nghệ thông tin 58A, Ngành Khoa học máy tính, Hệ Chính quy) thực hiện tại Viện Công nghệ thông tin và Kinh tế số – Trường Đại học Kinh tế Quốc dân, dưới sự hướng dẫn của TS. Đặng Minh Quân.

2. Nền tảng công nghệ chính được sử dụng để xây dựng website là gì?
Hệ thống sử dụng nền tảng .NET Core, framework ASP.NET Core (kết hợp MVC và Web API), ABP Framework hỗ trợ kiến trúc SaaS Multi-tenancy, hệ quản trị cơ sở dữ liệu Microsoft SQL Server và thư viện MQTTnet để kết nối giao thức MQTT.

3. Hệ thống hỗ trợ những nhóm người dùng nào và phân quyền ra sao?
Hệ thống có hai nhóm tác nhân chính: Quản trị viên (Admin) và Người dùng (TenantUser). Trong đó Admin được chia làm hai cấp: Quản trị viên toàn hệ thống (có quyền quản lý Tenant) và Quản trị viên của từng đơn vị thuê (chỉ quản trị người dùng và thiết bị trong phạm vi Tenant của mình).

4. Chức năng quên mật khẩu được xử lý tuần tự qua các thành phần nào?
Yêu cầu quên mật khẩu gửi từ giao diện đến AccountController, hệ thống kiểm tra thông tin người dùng trong AbpUser, tạo mã đặt lại mật khẩu, kích hoạt Background Job để gửi liên kết qua email; khi người dùng truy cập liên kết, hệ thống giải mã tham số để xác thực và cập nhật lại mật khẩu mới vào cơ sở dữ liệu.

5. Giao thức MQTT và thư viện MQTTnet đóng vai trò gì trong đồ án?
MQTT đóng vai trò là giao thức truyền thông điệp gọn nhẹ theo mô hình Publish/Subscribe để truyền nhận tín hiệu cảm biến từ nhà máy điện; thư viện MQTTnet được tích hợp trong môi trường .NET để xây dựng các thành phần Client và Broker xử lý luồng dữ liệu này.


Kết luận

Khóa luận tốt nghiệp của tác giả Lê Anh Đông đã giải quyết trọn vẹn bài toán xây dựng website quản lý và kết nối cảm biến cho nhà máy điện dựa trên quy trình kỹ thuật phần mềm bài bản. Đề tài kết hợp hiệu quả giữa nền tảng ASP.NET Core, ABP Framework và giao thức MQTT để xây dựng hệ thống quản lý thiết bị đa người thuê có tính ứng dụng thực tiễn. Bản báo cáo cung cấp hệ thống phân tích thiết kế chi tiết bằng UML, là tài liệu tham khảo có giá trị cao cho sinh viên và kỹ sư phát triển phần mềm trong lĩnh vực giám sát công nghiệp.