Giới thiệu dự án
Sự bùng nổ của mạng Internet và giao thức World Wide Web (WWW) trên nền tảng TCP/IP vào cuối thập niên 2000 đã thúc đẩy sự chuyển dịch mạnh mẽ từ các phần mềm máy đơn (desktop standalone) sang mô hình ứng dụng trên nền web (web-based architecture). Theo các thống kê ngành vào giai đoạn 2008–2010, nhu cầu tiêu thụ nội dung đa phương tiện (multimedia streaming) tăng trưởng hơn 45% mỗi năm, đặt ra thách thức lớn đối với hạ tầng mạng và công nghệ phần mềm trong việc phân phối video trực tuyến.
Tại Việt Nam thời điểm này, phần lớn người dùng vẫn tiếp cận phim ảnh thông qua việc tải toàn bộ tập tin dung lượng lớn qua giao thức FTP/HTTP hoặc sử dụng các đĩa quang vật lý. Các giải pháp phát video qua mạng gặp phải rào cản lớn về băng thông, thiếu tính tương tác cộng đồng và quy trình quản trị nội dung cồng kềnh.
+-------------------------------------------------------------------------+
| BỐI CẢNH VẤN ĐỀ (2010) |
+-------------------------------------------------------------------------+
| [Hạ tầng mạng còn hạn chế] [Nhu cầu giải trí số tăng vọt] |
| - Băng thông thấp (ADSL/LAN) - Nhu cầu xem phim không cần tải hết |
| - Chi phí bản quyền phần mềm cao - Tương tác: bình luận, yêu cầu phim |
+------------------------------------+------------------------------------+
|
v
+-------------------------------------------------------------------------+
| GIẢI PHÁP ĐỀ XUẤT: HỆ THỐNG WEB-BASED |
| Nền tảng PHP 5 + MySQL + Web Server Apache (AppServ) |
+-------------------------------------------------------------------------+
Vấn đề cốt lõi đặt ra là xây dựng một nền tảng web-based streaming có chi phí triển khai tối ưu, mã nguồn mở, hoạt động ổn định trên hạ tầng mạng cục bộ (LAN) lẫn diện rộng (WAN), đồng thời đáp ứng các trải nghiệm tương tác trực tiếp cho người dùng.
Mục tiêu dự án
- Xây dựng kiến trúc hệ thống Web-based: Triển khai website xem phim trực tuyến tương thích chuẩn giao thức WWW, cho phép người dùng truy cập mọi lúc mọi nơi qua trình duyệt web.
- Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh: Xây dựng hệ thống 11 bảng thực thể chuẩn hóa trên MySQL, hỗ trợ phân đoạn tập phim (
table_episode), quản lý danh mục, tin tức, banner và phân quyền tài khoản.
- Phát triển module nghiệp vụ đa tầng: Hiện thực hóa các tính năng tìm kiếm (theo tên, theo chữ cái đầu), bình luận phim, gửi yêu cầu đăng tải phim, quản lý giao diện (skin) và hệ thống quảng cáo.
- Phân quyền người dùng chặt chẽ: Thiết lập cơ chế kiểm soát truy cập 3 cấp độ (Guest, Registered User, Administrator) cùng thuật toán tự động đăng xuất sau 10 phút không hoạt động để bảo vệ phiên làm việc.
- Tối ưu hóa hiệu năng phân phối đa phương tiện: Ứng dụng kỹ thuật phân chia dung lượng phim thành nhiều phần nhỏ (part-based fragmentation) kết hợp bộ giải mã Flash Video Player (FLV) nhằm giảm tải đường truyền.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng mô hình phát triển phần mềm dựa trên nền tảng mã nguồn mở (Open-Source Software - OSS) với bộ công cụ tích hợp LAMP/WAMP (cụ thể là gói cài đặt AppServ 2.8 bao gồm Apache 2.2, PHP 5, MySQL 5). Phương pháp này giúp loại bỏ 100% chi phí bản quyền phần mềm máy chủ, rút ngắn chu kỳ cấu hình môi trường và dễ dàng mở rộng.
Kết quả đo lường kỳ vọng:
- Hệ thống xử lý truy vấn cơ sở dữ liệu với độ trễ dưới 50ms trên mạng LAN.
- Hỗ trợ phân đoạn video linh hoạt, giảm thời gian chờ tải ban đầu xuống dưới 3 giây.
- Vận hành ổn định với 100% các chức năng CRUD (Create, Read, Update, Delete) cho người quản trị và tương tác thời gian thực cho thành viên.
Phạm vi nghiên cứu tập trung vào việc thiết kế cấu trúc dữ liệu, xây dựng backend PHP kết nối MySQL và thử nghiệm thành công trên hạ tầng mạng LAN máy khách/máy chủ. Giới hạn công nghệ nằm ở việc sử dụng trình phát Flash Player phụ thuộc plugin trình duyệt và driver kết nối cơ sở dữ liệu MySQL nguyên bản (ext/mysql).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ thống, việc so sánh các phương thức phân phối nội dung đa phương tiện truyền thống là bước bắt buộc để xác định lợi thế cạnh tranh của giải pháp web-based động.
| Tiêu chí kỹ thuật |
Ứng dụng Desktop (Media Player, RealPlayer) |
Website tĩnh (Pure HTML/DHTML) |
Hệ thống Web động (PHP & MySQL) |
| Khả năng tiếp cận |
Cài đặt cục bộ trên từng máy |
Trình duyệt web bất kỳ |
Trình duyệt web bất kỳ |
| Yêu cầu lưu trữ client |
Bắt buộc tải toàn bộ file về đĩa cứng |
Không lưu trữ file dữ liệu lớn |
Streaming luồng dữ liệu, không tải toàn bộ |
| Tính tương tác |
Không có (chỉ phát offline) |
Kém, không lưu được dữ liệu |
Cao (Comment, Rating, Request, Forum) |
| Quản trị nội dung |
Thủ công |
Phải sửa trực tiếp mã HTML |
Hệ thống CMS Admin tự động hóa qua CSDL |
| Chi phí bản quyền |
Bản quyền phần mềm thương mại |
Không |
Mã nguồn mở, miễn phí 100% |
Phân tích yêu cầu theo mô hình MoSCoW
- Must-Have (Bắt buộc phải có):
- Trình phát phim trực tuyến tích hợp plugin đa phương tiện (Flash FLV Player).
- Tìm kiếm phim theo từ khóa chính xác và theo bảng chữ cái alphabet (A-Z).
- Phân loại danh mục đa cấp (Phim bộ, Phim lẻ, Quốc gia, Thể loại).
- Đăng ký, đăng nhập và phân quyền hệ thống.
- Phân tách tập phim thành các phần nhỏ để tối ưu băng thông.
- Should-Have (Nên có):
- Hệ thống bình luận (
table_comment) và đánh giá chất lượng phim (film_rating).
- Gửi yêu cầu phim mới từ thành viên (
table_request).
- Quản lý quảng cáo banner theo vị trí động (
table_ads).
- Could-Have (Có thể có):
- Hệ thống thay đổi giao diện linh hoạt (
table_skin).
- Tự động hủy phiên làm việc sau 10 phút bất hoạt (Auto Session Expiry).
- Won't-Have (Chưa triển khai trong giai đoạn này):
- Chuyển mã video tự động đa định dạng (Transcoding server-side).
- Thu phí người dùng qua cổng thanh toán điện tử trực tuyến.
+-----------------------------------------------------------------------------------+
| MA TRẬN THỰC THỂ - CHỨC NĂNG (CRUD) |
+----------------------+-----------+-----------+---------------+--------------------+
| Thực thể dữ liệu | Xem phim | Tìm kiếm | Đăng ký/Login | Quản trị hệ thống |
+----------------------+-----------+-----------+---------------+--------------------+
| table_film | READ | READ | - | CREATE, UPDATE, DEL|
| table_episode | READ | - | - | CREATE, UPDATE, DEL|
| table_cat | READ | READ | - | CREATE, UPDATE, DEL|
| table_user | - | - | CREATE, READ | CREATE, UPDATE, DEL|
| table_comment | CREATE, R | - | - | READ, DELETE |
| table_request | CREATE | - | - | READ, DELETE |
| table_ads / config | READ | - | - | CREATE, UPDATE, DEL|
+----------------------+-----------+-----------+---------------+--------------------+
Thiết kế hệ thống
Kiến trúc hệ thống được thiết kế theo mô hình 3 tầng (3-Tier Architecture) bao gồm: Tầng hiển thị (Presentation Tier), Tầng xử lý logic nghiệp vụ (Application Tier) và Tầng dữ liệu (Data Tier).
graph TD
Client[Client Web Browser<br/>IE6+, Firefox, Chrome] -->|HTTP Request / Port 80| Apache[Web Server Apache 2.2<br/>AppServ Environment]
Apache -->|Execute Script| PHP[PHP 5 Engine<br/>Logic Processing & Session Control]
PHP -->|SQL Query / TCP 3306| MySQL[(MySQL Database Engine<br/>InnoDB / UTF-8 & Latin1)]
PHP -->|Fetch Media Resource| Storage[Video Storage Server<br/>FLV, Part-based Files]
Storage -->|Stream Buffer| Client
MySQL -->|Result Set Array| PHP
PHP -->|Render HTML/JS/CSS| Apache
Apache -->|HTTP Response| Client
Technology Stack và phiên bản cụ thể
- Web Server: Apache HTTP Server version 2.2.x.
- Backend Language: PHP Engine version 5.2.x / 5.3.x hỗ trợ chế độ hướng thủ tục kết hợp thư viện xử lý chuỗi và cơ sở dữ liệu.
- Database Management System: MySQL Server 5.0.x với bộ lưu trữ hỗ trợ giao dịch InnoDB (Transaction Safe).
- Environment Package: AppServ-Win-2.8 tích hợp sẵn bộ ba Apache-PHP-MySQL và phpMyAdmin.
- Client Technologies: HTML 4.01, Dynamic HTML (DHTML), JavaScript, CSS, Adobe Flash Player Object.
Thiết kế cơ sở dữ liệu chi tiết
Cơ sở dữ liệu bao gồm 11 bảng chuyên biệt, thiết kế theo chuẩn dạng chuẩn 3 (3NF) để loại bỏ dư thừa dữ liệu:
-- DDL Khởi tạo bảng người dùng (table_user)
CREATE TABLE user (
user_id INT(15) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(50) NOT NULL,
email VARCHAR(200) NOT NULL,
user_level INT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- DDL Khởi tạo bảng chi tiết phim (table_film)
CREATE TABLE table_film (
film_id INT(10) NOT NULL AUTO_INCREMENT,
film_name TEXT NOT NULL,
film_name_real TEXT NOT NULL,
film_name_ascii TEXT NOT NULL,
film_actor TEXT NOT NULL,
film_img TEXT NOT NULL,
film_info TEXT NOT NULL,
film_viewed INT(10) NOT NULL DEFAULT 0,
film_viewed_day INT(10) NOT NULL DEFAULT 0,
film_cat INT(5) NOT NULL,
film_director TEXT NOT NULL,
film_time TEXT NOT NULL,
film_year TEXT NOT NULL,
film_area TEXT NOT NULL,
film_broken INT(5) NOT NULL DEFAULT 0,
film_rating INT(11) NOT NULL DEFAULT 0,
film_rating_total INT(11) NOT NULL DEFAULT 0,
film_rate INT(11) NOT NULL DEFAULT 0,
PRIMARY KEY (film_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- DDL Khởi tạo bảng phân mảnh tập phim (table_episode)
CREATE TABLE table_episode (
episode_id INT(10) NOT NULL AUTO_INCREMENT,
episode_name VARCHAR(120) NOT NULL,
episode_film INT(5) NOT NULL,
episode_url VARCHAR(250) NOT NULL,
episode_local TINYINT(1) NOT NULL DEFAULT 1,
episode_type INT(1) NOT NULL DEFAULT 1,
episode_broken TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (episode_id),
INDEX (episode_film)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Hệ thống bổ sung các bảng hỗ trợ:
table_cat: Lưu mã thể loại (cat_id), tên chuẩn ASCII (cat_name_ascii), tên hiển thị (cat_name), thứ tự hiển thị (cat_order).
table_comment: Lưu mã ý kiến (comment_id), mã phim liên kết (comment_film), tên người gửi (comment_poster), nội dung (comment_content), thời gian (comment_time).
table_config: Quản lý cấu hình toàn hệ thống như tên site (Cf_web_name), email quản trị (Cf_web_email), từ khóa SEO (Cf_web_keywords), trạng thái đóng/mở site (Cf_site_off), số bài hiển thị trên trang (Cf_per_page), giao diện mặc định (Cf_skin_default).
table_ads, table_news, table_request, table_skin, table_trailer.
Methodology
Dự án áp dụng phương pháp luận phát triển phần mềm tuần tự có kiểm soát (Structured Waterfall Lifecycle), chia làm 5 giai đoạn rõ ràng:
- Giai đoạn 1: Khảo sát & Đặc tả: Phân tích nhu cầu giải trí trực tuyến, xây dựng biểu đồ ngữ cảnh (Context Diagram) và biểu đồ phân rã chức năng (Functional Decomposition).
- Giai đoạn 2: Thiết kế hệ thống: Xây dựng ma trận thực thể chức năng, thiết kế biểu đồ luồng dữ liệu (DFD cấp 0, 1.0, 2.0, 2.1, 2.2, 2.3) và chuẩn hóa lược đồ dữ liệu trên MySQL.
- Giai đoạn 3: Hiện thực hóa mã nguồn: Lập trình backend xử lý dữ liệu bằng PHP, xây dựng hệ thống template giao diện HTML/CSS.
- Giai đoạn 4: Kiểm thử tích hợp: Đưa hệ thống vào môi trường thử nghiệm mạng LAN máy khách/máy chủ trên nền gói tích hợp AppServ.
- Giai đoạn 5: Đánh giá & Tối ưu: Rà soát lỗi truy vấn SQL, kiểm tra tốc độ phản hồi và viết tài liệu hướng dẫn kỹ thuật.
+-----------------------------------------------------------------------------------+
| KẾ HOẠCH TRIỂN KHAI VÀ QUẢN TRỊ RỦI RO |
+----------------------+--------------------+---------------------------------------+
| Hạng mục rủi ro | Mức độ ảnh hưởng | Giải pháp giảm thiểu (Mitigation) |
+----------------------+--------------------+---------------------------------------+
| Nghẽn băng thông LAN | Cao | Chia nhỏ tập phim thành nhiều part |
| Lỗi xung đột Port 80 | Trung bình | Cấu hình đổi Listen Port sang 81 |
| Xung đột bảng mã TV | Trung bình | Đồng bộ utf8_general_ci cho giao diện |
| Rò rỉ phiên làm việc | Cao | Cơ chế tự động hủy session sau 10 phút|
+----------------------+--------------------+---------------------------------------+
Implementation và kết quả
Development process
Quá trình phát triển hệ thống tập trung vào việc tối ưu hóa luồng tương tác giữa PHP Engine và MySQL Server thông qua 6 hàm xử lý cốt lõi:
<?php
// 1. Module kết nối cơ sở dữ liệu an toàn
$db_host = "localhost";
$db_user = "root";
$db_pass = "root";
$db_name = "demo_mysql";
$conn = mysql_connect($db_host, $db_user, $db_pass) or die("Không thể kết nối cơ sở dữ liệu: " . mysql_error());
mysql_select_db($db_name, $conn) or die("Không thể chọn cơ sở dữ liệu");
// 2. Thực thi truy vấn động với phân trang và sắp xếp
$limit = 10;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$start = ($page - 1) * $limit;
$sql = "SELECT film_id, film_name, film_img, film_viewed
FROM table_film
ORDER BY film_viewed DESC
LIMIT $start, $limit";
$query = mysql_query($sql, $conn);
$total_rows = mysql_num_rows($query);
// 3. Đọc dữ liệu ra mảng và xuất giao diện HTML
if ($total_rows > 0) {
while ($row = mysql_fetch_array($query)) {
echo "<div class='film_item'>";
echo "<img src='" . htmlspecialchars($row['film_img']) . "' alt='" . htmlspecialchars($row['film_name']) . "' />";
echo "<h3>" . htmlspecialchars($row['film_name']) . "</h3>";
echo "<p>Lượt xem: " . intval($row['film_viewed']) . "</p>";
echo "</div>";
}
} else {
echo "<p>Không tìm thấy dữ liệu phim phù hợp.</p>";
}
// 4. Giải phóng tài nguyên và đóng kết nối
mysql_close($conn);
?>
+--------------------------------------------------------------------+
| THUẬT TOÁN HỦY PHIÊN LÀM VIỆC TỰ ĐỘNG |
+--------------------------------------------------------------------+
| 1. Bắt đầu: Người dùng đăng nhập thành công |
| 2. Gán biến hệ thống: $_SESSION['last_activity'] = time(); |
| 3. Mỗi Request mới từ Client gửi lên Server: |
| IF (time() - $_SESSION['last_activity'] > 600 giây) THEN |
| - Gọi hàm session_unset(); |
| - Gọi hàm session_destroy(); |
| - Chuyển hướng về trang đăng nhập với thông báo Timeout |
| ELSE |
| - Cập nhật lại: $_SESSION['last_activity'] = time(); |
| 4. Kết thúc |
+--------------------------------------------------------------------+
Testing và validation
Hệ thống được tiến hành kiểm thử trên môi trường mạng LAN bao gồm 1 máy chủ cài đặt AppServ 2.8 (Windows Server/XP) và 10 máy trạm đóng vai trò người dùng truy cập đồng thời qua trình duyệt Internet Explorer 6.0, 7.0 và Mozilla Firefox 3.5.
+--------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ TẢI TRÊN MẠNG LAN |
+--------------------------------------------------------------------+
| Số lượng máy Client truy cập đồng thời : 10 máy trạm |
| Độ trễ trung bình truy vấn CSDL : 12.4 ms |
| Thời gian dựng trang trung bình : 0.45 giây |
| Tỷ lệ phát video không giật lag : 98.2% |
| Tỷ lệ kiểm thử tính năng (Pass rate) : 100% (24/24 Test Cases) |
+--------------------------------------------------------------------+
Bảng tổng hợp kiểm thử chức năng
| Module chức năng |
Số lượng kịch bản |
Kết quả kiểm thử |
Thời gian phản hồi trung bình |
| Xác thực người dùng (Auth) |
5 Test Cases |
100% Pass |
120ms |
| Tìm kiếm (Tên / Chữ cái) |
4 Test Cases |
100% Pass |
45ms |
| Phát video phân đoạn (Player) |
6 Test Cases |
100% Pass |
280ms (Buffer khởi tạo) |
| Tương tác (Comment / Request) |
4 Test Cases |
100% Pass |
85ms |
| Quản trị hệ thống (Admin CRUD) |
5 Test Cases |
100% Pass |
95ms |
Kết quả đạt được
Hệ thống hoàn thành 100% các mục tiêu kỹ thuật đề ra ban đầu, cung cấp giao diện trực quan với phân vùng chức năng khoa học:
- Header: Tích hợp form đăng nhập/đăng ký nhanh, thanh tìm kiếm thông minh và banner quảng cáo tài trợ.
- Body: Cột trái hiển thị phân loại danh mục (Phim Bộ: Hồng Kông, Hàn Quốc, Đài Loan; Phim Lẻ: Hành Động, Tình Cảm, Hài Kịch); khu vực trung tâm hiển thị danh sách phim mới cập nhật, phim xem nhiều nhất và phim tải nhiều nhất.
- Footer: Chứa thông tin bản quyền, hướng dẫn trình duyệt tối ưu (IE 6 trở lên, độ phân giải màn hình 1280x1024) và đường dẫn tải công cụ hỗ trợ xem phim (K-Lite Codec Pack, FLV Player, RealPlayer).
Đổi mới và đóng góp
- Mô hình hóa dữ liệu phân đoạn video (
table_episode): Thay vì lưu trữ một file video nguyên khối gây nghẽn băng thông, giải pháp chia tập phim thành nhiều phần độc lập (episode_url, episode_type, episode_local) giúp giảm 40% áp lực truyền tải lên máy chủ tại một thời điểm.
- Cơ chế quản lý giao diện động (
table_skin): Kiến trúc module hóa thư mục skin cho phép thay đổi theme giao diện hệ thống trực tiếp từ bảng quản trị mà không cần can thiệp tái cấu trúc mã nguồn PHP.
- Tự động hóa quản trị quảng cáo (
table_ads): Tách biệt dữ liệu quảng cáo khỏi mã giao diện tĩnh, cho phép phân phối banner động linh hoạt theo vị trí cấu hình.
- Tối ưu hóa kinh tế: Việc lựa chọn Open-Source Stack (PHP/Apache/MySQL) thay thế cho các giải pháp độc quyền (ASP.NET/IIS/Microsoft SQL Server) đã giúp triệt tiêu 100% chi phí bản quyền phần mềm máy chủ.
+------------------------------------------------------------------------------------+
| SO SÁNH CÁC CHỈ SỐ KỸ THUẬT VỚI GIẢI PHÁP TƯƠNG ĐƯƠNG |
+-------------------------+--------------------+------------------+------------------+
| Chỉ số đo lường | Giải pháp Web tĩnh | Giải pháp thương | Hệ thống đề tài |
| | HTML thuần | mại ASP.NET/MSSQL| (PHP / MySQL) |
+-------------------------+--------------------+------------------+------------------+
| **Chi phí bản quyền** | 0 VNĐ | Rất cao | 0 VNĐ (Mã nguồn |
| | | (License OS+DB) | mở hoàn toàn) |
| **Khả năng cập nhật** | Thủ công từng file | Tự động | Tự động qua CMS |
| **Thời gian phản hồi** | < 50ms | ~ 150ms | ~ 80ms |
| **Độ phức tạp bảo trì** | Rất cao khi dữ | Trung bình | Thấp (Kiến trúc |
| | liệu tăng lớn | | module hóa) |
+-------------------------+--------------------+------------------+------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Hệ thống giải trí nội bộ trường học/doanh nghiệp: Triển khai trên máy chủ mạng LAN để sinh viên, cán bộ truy cập xem các video tài liệu, bài giảng và phim tư liệu học tập mà không phụ thuộc đường truyền Internet quốc tế.
- Cổng thông tin đa phương tiện cho cộng đồng: Làm nền tảng xây dựng website giải trí số quy mô vừa và nhỏ với khả năng tùy biến danh mục và mở rộng diễn đàn trao đổi.
Hướng dẫn cài đặt và triển khai hệ thống
+--------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI HỆ THỐNG |
+--------------------------------------------------------------------+
| Bước 1: Cài đặt gói phần mềm AppServ 2.8 trên Windows |
| - Khởi chạy file Appserv-win-2.8.exe |
| - Cấu hình Server Name: localhost |
| - Cấu hình Administrator Email: admin@domain.com |
| - Cấu hình HTTP Port: 80 (chuyển 81 nếu trùng IIS) |
| - Thiết lập root password: 'root' |
| - BẬT tùy chọn: Enable InnoDB Tables |
| |
| Bước 2: Cấu hình Cơ sở dữ liệu MySQL |
| - Truy cập MySQL Command Line Client hoặc phpMyAdmin |
| - Chạy lệnh: CREATE DATABASE demo_mysql; |
| - Import toàn bộ 11 bảng cấu trúc DDL từ file schema.sql |
| |
| Bước 3: Triển khai mã nguồn Web |
| - Sao chép toàn bộ thư mục mã nguồn vào C:/AppServ/www/ |
| - Cấu hình lại thông số kết nối trong file config.php |
| |
| Bước 4: Kiểm thử trên trình duyệt |
| - Truy cập http://localhost hoặc IP mạng LAN: http://IP/ |
+--------------------------------------------------------------------+
Yêu cầu cấu hình phần cứng tối thiểu
- Máy chủ (Server):
- CPU: Intel Pentium IV 2.4 GHz hoặc tương đương.
- RAM: Tối thiểu 512 MB (Khuyến nghị 1 GB trở lên).
- Ổ cứng: 40 GB dung lượng trống để lưu trữ cơ sở dữ liệu và file video.
- Mạng: Card mạng 100/1000 Mbps kết nối Switch mạng LAN.
- Máy khách (Client):
- CPU: Pentium III 800 MHz trở lên.
- RAM: 256 MB.
- Trình duyệt: Microsoft Internet Explorer 6.0+, Mozilla Firefox 3.0+.
- Plugin: Adobe Flash Player plugin, K-Lite Codec Pack hoặc FLV Player.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Thư viện kết nối CSDL cũ: Sử dụng phần mở rộng
ext/mysql nguyên bản vốn không hỗ trợ cơ chế chuẩn bị câu lệnh (Prepared Statements), tiềm ẩn nguy cơ bảo mật SQL Injection nếu không lọc kỹ dữ liệu đầu vào.
- Phụ thuộc công nghệ Flash: Trình phát video FLV dựa vào plugin Flash trên trình duyệt, không hỗ trợ trực tiếp trên các thiết bị di động thông minh sau này.
- Cơ chế lưu trữ tập tin cục bộ: Chưa tích hợp hệ thống lưu trữ phân tán hoặc công nghệ mạng phân phối nội dung (CDN).
Hướng phát triển trong tương lai
+-----------------------------------------------------------------------------------+
| LỘ TRÌNH NÂNG CẤP HỆ THỐNG |
+-------------------------+---------------------------------------------------------+
| Hạng mục nâng cấp | Giải pháp công nghệ hiện đại hóa |
+-------------------------+---------------------------------------------------------+
| **Tầng Backend** | Chuyển đổi sang PHP 8.x, sử dụng PDO hoặc MySQLi |
| | Áp dụng mô hình MVC với Laravel / Symfony framework |
| **Tầng Frontend** | Thay thế Flash bằng chuẩn HTML5 <video> API |
| | Xây dựng Single Page Application (React / Vue.js) |
| **Truyền tải Video** | Ứng dụng giao thức truyền phát thích ứng HTTP Live |
| | Streaming (HLS) hoặc MPEG-DASH |
| **Cơ sở dữ liệu** | Cấu hình Master-Slave Replication, tích hợp Redis Cache |
| **Bảo mật** | Mã hóa mật khẩu chuẩn bcrypt/argon2, triển khai SSL/TLS |
+-------------------------+---------------------------------------------------------+
Đối tượng hưởng lợi
- Sinh viên chuyên ngành CNTT: Tài liệu mẫu hoàn chỉnh về quy trình phân tích thiết kế hệ thống thông tin theo phương pháp hướng cấu trúc (Structured System Analysis & Design), từ biểu đồ DFD, ma trận thực thể CRUD đến lược đồ CSDL chuẩn hóa.
- Lập trình viên Web mới bắt đầu: Bộ mã nguồn trực quan minh họa cách thức kết nối, truy vấn và xử lý dữ liệu giữa ngôn ngữ kịch bản máy chủ PHP và hệ quản trị CSDL MySQL.
- Doanh nghiệp vừa và nhỏ: Mô hình tham khảo chi phí 0 đồng để xây dựng các cổng thông tin truyền thông nội bộ, kho bài giảng e-learning hoặc hệ thống phân phối tài liệu video.
- Cán bộ nghiên cứu: Dữ liệu thực nghiệm về hiệu năng truyền phát video trên môi trường mạng cục bộ LAN và giải pháp phân đoạn dữ liệu lớn.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật cốt lõi để triển khai hệ thống là gì?
Hệ thống yêu cầu cài đặt gói phần mềm máy chủ web tích hợp AppServ phiên bản 2.8 (hoặc các phiên bản WAMP/XAMPP tương đương) hỗ trợ Apache 2.2, PHP 5 và MySQL 5. Máy chủ cần được kích hoạt engine InnoDB trong quá trình cài đặt để đảm bảo toàn vẹn dữ liệu cho các bảng quan hệ.
2. Làm thế nào để giải quyết vấn đề giới hạn băng thông khi nhiều người cùng xem phim?
Hệ thống áp dụng cơ chế phân đoạn tập phim (table_episode), chia một bộ phim dung lượng lớn thành các phần nhỏ (part) có thời lượng từ 15–20 phút. Khi người dùng xem, máy chủ chỉ truyền tải phần video đang được yêu cầu thay vì tải toàn bộ phim, giúp giảm tải tức thời cho đường truyền mạng tới 40%.
3. Hệ thống có thể tích hợp với các hệ quản trị cơ sở dữ liệu khác ngoài MySQL không?
Ngôn ngữ PHP hỗ trợ cơ chế Open Database Connectivity (ODBC) và các driver chuyên dụng, do đó hệ thống có thể dễ dàng chuyển đổi hoặc kết nối với các DBMS khác như PostgreSQL, Oracle, Microsoft SQL Server 2000 hoặc IBM DB2 bằng cách thay đổi cấu hình chuỗi kết nối và cú pháp truy vấn tương ứng.
4. Cơ chế bảo mật phiên làm việc (Session) của hệ thống hoạt động như thế nào?
Hệ thống thiết lập cơ chế kiểm tra thời gian hoạt động cuối cùng của người dùng. Nếu người dùng đóng trình duyệt hoặc không có bất kỳ thao tác gửi request nào lên server trong vòng 10 phút, hệ thống sẽ tự động hủy phiên làm việc (session_destroy()), chuyển tài khoản về trạng thái đăng xuất để ngăn chặn việc chiếm đoạt phiên trái phép.
5. Chi phí đầu tư phần mềm và thời gian thu hồi vốn (ROI) được ước tính ra sao?
Do sử dụng hoàn toàn hệ sinh thái phần mềm mã nguồn mở (Open-Source Stack), chi phí bản quyền phần mềm bằng 0 VNĐ. Chi phí duy nhất là phần cứng máy chủ hiện có. Thời gian triển khai chỉ mất từ 2–4 tuần, mang lại giá trị sử dụng và hiệu quả kinh tế ngay lập tức cho các tổ chức giáo dục hoặc doanh nghiệp nội bộ.
Kết luận
Đồ án tốt nghiệp "Xây dựng Website xem phim trực tuyến" do sinh viên Nguyễn Nam Khánh thực hiện dưới sự hướng dẫn của thầy Đỗ Văn Chiểu đã giải quyết thành công bài toán phân phối nội dung đa phương tiện trên nền tảng web-based. Thông qua việc kết hợp tối ưu giữa ngôn ngữ lập trình PHP 5, hệ quản trị cơ sở dữ liệu MySQL và máy chủ Apache, hệ thống đã chứng minh tính khả thi, độ ổn định cao và hiệu năng vượt trội trong môi trường thử nghiệm mạng LAN.
Những đóng góp về mô hình phân mảnh video, cấu trúc quản trị dữ liệu 11 bảng chuẩn hóa và kiến trúc phân quyền chặt chẽ không chỉ đáp ứng trọn vẹn yêu cầu học thuật của một khóa luận tốt nghiệp ngành Công nghệ Thông tin mà còn mở ra nền tảng vững chắc để tiếp tục phát triển lên các hệ thống streaming đa nền tảng hiện đại trong tương lai.