Tổng quan nghiên cứu

Theo ước tính của ngành công nghiệp giải trí kỹ thuật số, có khoảng 70% người dùng Internet thường xuyên nghe nhạc trực tuyến như một hình thức thư giãn hàng ngày không thể thiếu. Sự bùng nổ của các nền tảng streaming âm nhạc đã tạo ra một thị trường sôi động nhưng cũng bộc lộ những rào cản nhất định. Tại Việt Nam, các nền tảng âm nhạc truyền thống như Zing MP3 hay Nhaccuatui chủ yếu vận hành theo mô hình phân phối nội dung một chiều, nơi chỉ có quản trị viên hoặc nghệ sĩ đối tác mới có quyền tải lên các bản nhạc. Người dùng phổ thông gần như bị hạn chế tối đa quyền chia sẻ những giai điệu cá nhân tự sáng tác hoặc trao đổi trực tiếp với cộng đồng có cùng gu thưởng thức.

Xuất phát từ thực trạng đó, nghiên cứu này tập trung vào mục tiêu xây dựng một hệ thống nghe và chia sẻ nhạc online toàn diện, định hình một không gian mạng xã hội âm nhạc tương tác mở. Mục tiêu cụ thể là phát triển nền tảng web hiện đại cho phép mọi người dùng tự do nghe nhạc, tải bài hát lên hệ thống, quản lý danh sách phát cá nhân, bình luận, tương tác thời gian thực và kết nối bạn bè qua âm nhạc mà không bị giới hạn bởi quyền hạn khắt khe.

Đề tài được triển khai trong phạm vi thời gian 7 tháng từ tháng 1 năm 2021 đến tháng 7 năm 2021, hoàn thiện nghiệm thu vào tháng 9 năm 2021 tại Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh. Luận văn đạt kết quả đánh giá xuất sắc với điểm số 8.5 trên thang điểm 10 từ hội đồng chuyên môn. Nghiên cứu mang ý nghĩa thực tiễn lớn khi cung cấp một giải pháp công nghệ mã nguồn mở hoàn chỉnh, tối ưu hóa trải nghiệm tương tác cộng đồng và sẵn sàng mở rộng quy mô phục vụ hàng nghìn người dùng trực tuyến đồng thời.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng kết hợp các mô hình kiến trúc phần mềm tiên tiến cùng các công nghệ web hiện đại:

Mô hình kiến trúc 3 lớp gồm Tầng hiển thị, Tầng xử lý logic nghiệp vụ và Tầng truy xuất dữ liệu. Mô hình này giúp phân tách rõ ràng trách nhiệm giữa các thành phần mã nguồn, gia tăng tính độc lập và khả năng bảo trì hệ thống lâu dài.

Mô hình luồng dữ liệu một chiều Flux kết hợp thư viện Redux, hỗ trợ quản lý trạng thái ứng dụng tập trung tại một nguồn duy nhất, ngăn ngừa sự phân mảnh dữ liệu khi giao diện mở rộng nhiều nhánh phức tạp.

Mô hình tương tác PubSub cùng công nghệ GraphQL Subscriptions cho phép thiết lập kênh giao tiếp hai chiều thời gian thực giữa máy chủ và trình duyệt mà không cần thăm dò liên tục.

Các khái niệm kỹ thuật trọng tâm bao gồm kiến trúc ứng dụng trang đơn kết hợp cơ chế kết xuất phía máy chủ của NextJS, mô hình tài liệu phi quan hệ BSON trong MongoDB, và cơ chế xác thực bảo mật thông qua chuỗi mã hóa JSON Web Token gồm 3 phần tiêu chuẩn là Header, Payload và Signature.

Phương pháp nghiên cứu

Nguồn dữ liệu của nghiên cứu bao gồm việc khảo sát tính năng từ 8 nền tảng âm nhạc trực tuyến tiêu biểu trên thế giới và tại Việt Nam, kết hợp tập dữ liệu thử nghiệm kỹ thuật gồm 100 tệp âm thanh đa định dạng và 50 kịch bản ca sử dụng được chuẩn hóa.

Phương pháp chọn mẫu có chủ đích được áp dụng để lựa chọn các nền tảng đại diện cho hai nhóm hình mẫu: nền tảng phân phối bản quyền thương mại quy mô lớn và nền tảng âm thanh định hướng cộng đồng sáng tạo mở.

Lý do lựa chọn phương pháp phân tích và công cụ kỹ thuật xuất phát từ yêu cầu hiệu năng thực tế. Tác giả lựa chọn ngôn ngữ truy vấn GraphQL thay vì RESTful API truyền thống nhằm triệt tiêu hoàn toàn hiện tượng thừa hoặc thiếu dữ liệu khi tải trang. Nền tảng NextJS trên nền ReactJS được chọn để dung hòa giữa trải nghiệm mượt mà của ứng dụng trang đơn và khả năng tối ưu hóa công cụ tìm kiếm. Cơ sở dữ liệu MongoDB cùng thư viện Mongoose được chỉ định để lưu trữ linh hoạt 8 kiểu dữ liệu có cấu trúc tài liệu mở rộng.

Timeline nghiên cứu được chia làm 8 giai đoạn khép kín kéo dài 200 ngày, bao gồm: phân tích yêu cầu, thiết kế kiến trúc và cơ sở dữ liệu, xây dựng module backend, phát triển giao diện frontend với hệ thống thiết kế Ant Design, tích hợp API, triển khai kiểm thử và đóng gói hệ thống bằng Docker Container.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình phân tích thực nghiệm và kiểm thử hệ thống đã mang lại những phát hiện kỹ thuật mang tính định lượng rõ nét:

Thứ nhất, việc ứng dụng giao thức kết nối thời gian thực qua GraphQL Subscriptions giúp giảm độ trễ trao đổi tin nhắn và thông báo tương tác giữa người dùng xuống dưới mức 100 mili-giây, mang lại trải nghiệm trò chuyện trực tiếp mượt mà ngang tầm với các ứng dụng nhắn tin chuyên nghiệp.

Thứ hai, cấu trúc truy vấn định danh của GraphQL giúp giảm khoảng 45% dung lượng truyền tải mạng cho mỗi lượt gọi dữ liệu so với kiến trúc REST API tương đương, do máy khách chỉ yêu cầu chính xác các trường thông tin cần hiển thị.

Thứ ba, cơ chế kết xuất trước phía máy chủ của NextJS giúp rút ngắn thời gian hiển thị giao diện trang chủ ban đầu xuống còn khoảng 1.2 giây, đồng thời nâng cao khoảng 60% chỉ số đánh giá khả năng thu thập dữ liệu của các công cụ tìm kiếm tự động so với các ứng dụng React truyền thống.

Thứ tư, giải pháp đóng gói toàn bộ môi trường thực thi với Docker Container đã cắt giảm 80% thời gian thiết lập hạ tầng khi chuyển đổi giữa môi trường phát triển cục bộ và môi trường triển khai thực tế trên đám mây.

Thảo luận kết quả

Nguyên nhân chính giúp hệ thống đạt hiệu năng vượt trội là việc xóa bỏ cơ chế thăm dò định kỳ bằng cách tận dụng kênh truyền liên tục qua WebSocket của Apollo Client. Việc sử dụng cơ sở dữ liệu MongoDB giúp giảm thiểu chi phí của các phép kết nối bảng phức tạp thường thấy trong các hệ quản trị cơ sở dữ liệu quan hệ, từ đó tăng tốc độ đọc ghi dữ liệu danh sách bài hát và danh mục phân loại theo quốc gia.

So với các nghiên cứu phần mềm cùng thời điểm sử dụng kiến trúc MVC đơn khối, giải pháp phân tách API Client-Server trong đề tài này thể hiện tính linh hoạt vượt trội. Backend viết bằng NodeJS và Express có thể dễ dàng phục vụ đồng thời cho cả ứng dụng Web lẫn các ứng dụng di động trong tương lai mà không cần viết lại mã nguồn xử lý nghiệp vụ.

Toàn bộ kết quả thử nghiệm và cấu trúc hệ thống được trình bày trực quan hóa thông qua 24 sơ đồ giao diện người dùng chi tiết, 3 sơ đồ kiến trúc lớp tổng quan và 2 bảng dữ liệu so sánh kỹ thuật giữa REST API và GraphQL, cùng bảng tổng hợp phân vai các tác nhân trong hệ thống.

Đề xuất và khuyến nghị

Dựa trên kết quả xây dựng hệ thống và những hạn chế được hội đồng phản biện chỉ ra, tác giả đưa ra các khuyến nghị hành động với lộ trình cụ thể:

Nâng cấp giao diện đáp ứng đa thiết bị: Đội ngũ phát triển Frontend cần hoàn thiện việc tùy biến CSS và SCSS kết hợp lưới bố cục của Ant Design để đạt mục tiêu 100% tương thích mượt mà trên tất cả các loại màn hình điện thoại di động và máy tính bảng trong vòng 60 ngày tới.

Tăng cường hệ thống bảo mật đa tầng: Các kỹ sư Backend cần bổ sung cơ chế xác thực chữ ký số nâng cao RSA-256 cho chuỗi khóa JSON Web Token, áp dụng kỹ thuật giới hạn tần suất truy vấn nhằm ngăn chặn 99% nguy cơ tấn công từ chối dịch vụ và brute-force trong lộ trình 3 tháng.

Ứng dụng thuật toán gợi ý thông minh: Nhóm nghiên cứu dữ liệu nên tích hợp mô hình học máy lọc cộng tác dựa trên lịch sử nghe nhạc và hành vi yêu thích của người dùng, phấn đấu nâng độ chính xác gợi ý bài hát theo gu âm nhạc lên trên 85% trong chu kỳ phát triển 6 tháng tiếp theo.

Mở rộng hạ tầng lưu trữ đám mây phân tán: Bộ phận quản trị hệ thống cần tích hợp các dịch vụ lưu trữ tệp tin chuyên dụng như Amazon S3 hoặc Firebase Storage để xử lý các tệp nhạc dung lượng lớn, đáp ứng khả năng phục vụ trên 10.000 người dùng trực tuyến đồng thời trong vòng 1 năm tới.

Đối tượng nên tham khảo luận văn

Tài liệu luận văn này mang lại giá trị học thuật và ứng dụng thực tiễn cao cho 4 nhóm đối tượng chính:

Sinh viên và học viên cao học ngành Công nghệ Thông tin: Nắm bắt toàn diện quy trình phân tích và thiết kế hệ thống thông tin từ sơ đồ ca sử dụng, sơ đồ cơ sở dữ liệu quan hệ thực thể đến hiện thực hóa mã nguồn Full-stack.

Kỹ sư phát triển phần mềm Web: Tiếp cận phương pháp tích hợp công nghệ GraphQL vào môi trường NodeJS và ReactJS, làm chủ kỹ thuật quản lý trạng thái tập trung với Redux và đóng gói ứng dụng với Docker.

Các nhà sáng lập khởi nghiệp trong lĩnh vực công nghệ số: Tham khảo mô hình xây dựng nền tảng mạng xã hội kết hợp truyền thông đa phương tiện do người dùng tự tạo nội dung, kèm theo cơ chế quản trị kiểm duyệt bản quyền.

Chuyên gia thiết kế giao diện và trải nghiệm người dùng: Khám phá cách áp dụng các nguyên lý thiết kế tối giản của thư viện Ant Design để xây dựng các luồng tương tác nghe nhạc, tạo danh sách phát và trò chuyện trực tuyến tự nhiên, liền mạch.

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

Nền tảng mạng xã hội âm nhạc trong luận văn có điểm gì khác biệt so với các website nghe nhạc phổ biến? Điểm khác biệt cốt lõi nằm ở tính mở và tính tương tác xã hội. Trong khi các trang nghe nhạc truyền thống chỉ cho phép quản trị viên đăng tải bài hát, hệ thống này cho phép 100% người dùng đăng ký tự do tải lên bản nhạc của mình, tạo danh sách phát cá nhân, bình luận trực tiếp và kết nối theo dõi người dùng khác như một mạng xã hội âm thanh thực thụ.

Tại sao tác giả lại ưu tiên sử dụng GraphQL thay vì RESTful API truyền thống? GraphQL cung cấp một điểm cuối duy nhất cho phép máy khách chủ động định nghĩa chính xác cấu trúc dữ liệu cần nhận về. Điều này giúp loại bỏ 100% tình trạng thừa hoặc thiếu dữ liệu, tối ưu hóa băng thông mạng và hỗ trợ tính năng truyền tải dữ liệu thời gian thực mạnh mẽ thông qua cơ chế Subscription.

Cơ sở dữ liệu MongoDB và Mongoose đóng vai trò gì trong việc tối ưu hóa hiệu năng? MongoDB lưu trữ dữ liệu dưới dạng tài liệu JSON linh hoạt, không đòi hỏi cấu trúc bảng cứng nhắc. Thư viện Mongoose cung cấp 8 kiểu dữ liệu lược đồ rõ ràng, hỗ trợ lập chỉ mục truy vấn nhanh chóng và xử lý mượt mà hàng nghìn bản ghi thông tin bài hát cùng lịch sử nghe nhạc của người dùng.

Cơ chế xác thực người dùng trong hệ thống được thực hiện bằng cách nào để đảm bảo an toàn? Hệ thống sử dụng phương thức xác thực dựa trên mã thông báo JSON Web Token. Khi đăng nhập thành công, máy chủ cấp cho người dùng một chuỗi mã hóa gồm 3 phần để thực hiện các yêu cầu tiếp theo mà không cần máy chủ phải lưu trữ trạng thái phiên làm việc, vừa an toàn vừa giảm tải bộ nhớ máy chủ.

Kết quả đánh giá chất lượng học thuật của đề tài này đạt mức độ nào? Đề tài đã hoàn thành xuất sắc toàn bộ các yêu cầu kỹ thuật đặt ra và được Hội đồng chấm bảo vệ luận văn tốt nghiệp Trường Đại học Bách Khoa – ĐHQG TP.HCM đánh giá loại Giỏi với điểm số chính thức 8.5 trên 10 điểm.

Kết luận

Những đóng góp chính và lộ trình tiếp theo của đề tài được tổng hợp qua các điểm then chốt:

  • Hoàn thiện trọn vẹn một hệ thống nghe và chia sẻ nhạc online với đầy đủ các tính năng tương tác mạng xã hội, tải nhạc và quản trị nội dung.
  • Làm chủ và tích hợp thành công chuỗi công nghệ tiên tiến bao gồm NextJS, ReactJS, NodeJS, GraphQL, MongoDB và Docker.
  • Hiện thực hóa thành công kênh truyền thông tin thời gian thực với độ trễ tối thiểu, phục vụ hiệu quả cho tính năng trò chuyện và thông báo đẩy.
  • Xây dựng hệ thống quản trị nội dung Admin chặt chẽ, cho phép kiểm duyệt bản quyền âm nhạc và xử lý báo cáo vi phạm cộng đồng.
  • Đạt kết quả nghiệm thu xuất sắc với điểm số 8.5 trên 10 tại Trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh.

Đóng góp lớn nhất của luận văn là đã đề xuất và chứng minh tính khả thi của một mô hình kiến trúc phần mềm hiện đại, kết hợp nhuần nhuyễn giữa streaming âm thanh và mạng xã hội chia sẻ ngang hàng. Trong lộ trình 6 đến 12 tháng tới, hệ thống sẽ tiếp tục được tối ưu hóa giao diện di động và nâng cấp kiến trúc microservices. Bạn đọc quan tâm đến việc triển khai các ứng dụng web hiện đại có thể tham khảo toàn văn tài liệu kỹ thuật của luận văn để ứng dụng hiệu quả vào các dự án phần mềm thực tế.