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

Trong bối cảnh công nghệ thông tin và truyền thông phát triển nhanh chóng, các thiết bị điện tử như máy tính và điện thoại thông minh đã trở thành phương tiện liên lạc thiết yếu trong đời sống thường nhật cũng như trong hoạt động kinh doanh. Nhu cầu trao đổi thông tin từ xa đòi hỏi các giải pháp phần mềm liên lạc trực tuyến có khả năng kết nối nhanh chóng, giao diện thân thiện, vận hành thuận tiện và tiết kiệm thời gian. Xuất phát từ yêu cầu thực tiễn đó, đề tài "Xây dựng chương trình chat room" được tác giả Hoàng Văn Tùng (sinh viên lớp 21JIT, Khoa Khoa học Máy tính, Trường Đại học Công nghệ Thông tin & Truyền thông Việt - Hàn) thực hiện dưới sự hướng dẫn của TS. Lê Tân.

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

  1. Xây dựng một ứng dụng trò chuyện trực tuyến (Chat Room) hoạt động trên nền tảng máy tính cá nhân (desktop), hỗ trợ người dùng đăng ký, đăng nhập và giao tiếp từ xa thông qua hệ thống mạng.
  2. Khảo sát, hệ thống hóa cơ sở lý thuyết về mạng máy tính, mô hình truyền thông dữ liệu, bộ giao thức TCP/IP, giao thức truyền tệp FTP và cơ chế lập trình truyền thông qua Socket.
  3. Phân tích các yêu cầu chức năng và yêu cầu phi chức năng của hệ thống; xây dựng biểu đồ ca sử dụng (Use Case) và đặc tả quy trình tương tác giữa người dùng (Client) và máy chủ (Server).
  4. Thiết kế giao diện ứng dụng, lập trình thử nghiệm các phân hệ màn hình của Server và Client, đánh giá kết quả đạt được và đề xuất các hướng hoàn thiện phần mềm trong tương lai.

Đối tượng và phạm vi nghiên cứu của đề tài được xác định như sau:

  • Đối tượng nghiên cứu: Cơ chế truyền nhận thông tin qua giao thức Socket trong mô hình Client - Server; quy trình phân tích, thiết kế và cài đặt phần mềm phòng chat (Chat Room).
  • Phạm vi không gian: Ứng dụng chạy trên môi trường hệ điều hành Windows dành cho máy tính để bàn (desktop) trong mạng cục bộ hoặc kết nối mạng diện rộng.
  • Phạm vi thời gian: Đề tài được hoàn thành và nghiệm thu vào tháng 01 năm 2023 tại Trường Đại học Công nghệ Thông tin & Truyền thông Việt - Hàn.

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

Đề tài vận dụng các khái niệm nền tảng trong lĩnh vực lập trình mạng và kỹ thuật phần mềm để làm cơ sở xây dựng ứng dụng:

  1. Khái niệm và cấu trúc liên kết mạng (Network Topology): Khảo sát ba dạng topo mạng cơ bản gồm mạng hình sao (Star Network) sử dụng thiết bị trung tâm (Hub/Switch/Router) với liên kết Point-to-Point; mạng tuyến tính (Bus Network) sử dụng cáp trục chính kết thúc bằng Terminator và đầu nối chữ T theo liên kết Point-to-Multipoint/Broadcast; và mạng hình vòng (Ring Network) truyền tín hiệu một chiều qua các bộ chuyển tiếp (Repeater).
  2. Phân loại mạng máy tính: Phân cấp mạng theo quy mô địa lý gồm mạng cục bộ (LAN - phạm vi dưới 1 km, tốc độ từ 10 Mbps đến 100 Gbps), mạng đô thị (MAN - phạm vi vài km, vận tốc đến 10 Gbps) và mạng diện rộng (WAN - quy mô quốc gia, lục địa kết nối qua các subnet).
  3. Mô hình tham chiếu OSI và Bộ giao thức TCP/IP:
    • Mô hình OSI 7 tầng: Vật lý (Physical), Liên kết dữ liệu (Data-Link), Mạng (Network), Giao vận (Transport), Phiên (Session), Trình diễn (Presentation), và Ứng dụng (Application).
    • Mô hình TCP/IP 4 tầng: Tầng Vật lý (Physical/Network Access), Tầng Mạng (Internet - giao thức IP, ICMP, ARP), Tầng Giao vận (Transport - giao thức TCP, UDP xử lý phân đoạn Segment dưới 64KB), và Tầng Ứng dụng (Application - HTTP, FTP, SMTP, SSH).
  4. Giao thức truyền file FTP (File Transfer Protocol): Hoạt động qua cổng 20 và 21, vận hành đồng thời hai kết nối TCP là Control Connection (điều khiển phiên) và Data Connection (truyền tải dữ liệu qua lệnh GET/PUT). FTP hỗ trợ ba chế độ truyền: Stream mode (luồng byte không cấu trúc), Block mode (chia khối chuẩn), và Compressed mode (nén dữ liệu theo thuật toán Run-Length Encoding).
  5. Cơ chế Socket trong giao tiếp Client - Server: Socket đóng vai trò là điểm cuối (endpoint) của liên kết hai chiều giữa hai tiến trình (process) chạy trên mạng, thực hiện gắn kết (binding) với một số hiệu cổng (Port) cụ thể để truyền tải dữ liệu.

Phương pháp nghiên cứu được tác giả triển khai bao gồm:

  • Phương pháp nghiên cứu lý thuyết: Thu thập, đọc hiểu, phân tích và tổng hợp tài liệu chuyên ngành về kiến trúc mạng máy tính, giao thức truyền thông và kỹ thuật lập trình socket.
  • Phương pháp phân tích và thiết kế phần mềm: Áp dụng kỹ thuật biểu đồ Use Case trong kỹ thuật phần mềm để phân rã chức năng, xác định tác nhân và mô tả luồng tương tác của hệ thống.
  • Phương pháp thực nghiệm kỹ thuật: Cài đặt ứng dụng trên hệ điều hành Windows, kiểm thử giao diện và luồng kết nối giữa các tiến trình Client và Server.

Nguồn dữ liệu và tài liệu tham khảo chính được sử dụng trong báo cáo gồm có Giáo trình Lập trình mạng của tác giả Hà Mạnh Đào, Giáo trình Lập trình mạng của ThS. Văn Thiên Hoàng, cùng các chuẩn tài liệu mở về giao thức TCP, FTP và lập trình Socket.

Thiết kế và triển khai

Hệ thống được thiết kế dựa trên kiến trúc Client - Server hoạt động trên nền tảng desktop Windows:

Thành phần thiết kế Nội dung chi tiết được xác định trong văn bản
Kiến trúc mạng Mô hình Client - Server sử dụng giao tiếp Socket trên nền giao thức TCP/IP.
Tác nhân hệ thống (Actors) - Người dùng (User / Old User / Reader): Đăng nhập, gửi tin nhắn, gửi icon, tham gia chat nhóm, gửi tệp tin, gọi điện (Video Call / Voice Chat).
- Máy chủ (Server): Tiếp nhận kết nối, quản lý danh sách phòng, cấp quyền truy cập chat cho người dùng.
Yêu cầu chức năng 1. Chức năng gửi tin nhắn qua lại giữa các tài khoản.
2. Chức năng truyền file (trong tài liệu có đoạn đặc tả liên quan đến quản lý tài liệu/sách).
3. Chức năng gọi điện thoại (Voice/Video Call).
4. Chức năng chat nhóm (Chat Room).
Yêu cầu phi chức năng Hoạt động trên desktop Windows; giao diện thân thiện, dễ sử dụng; ứng dụng chạy nhẹ, vận hành ổn định, không giật lag.
Công nghệ & Kỹ thuật Sử dụng thư viện lập trình desktop, kỹ thuật vẽ giao diện trên drawable để thiết kế các khung hình hiển thị.

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

Chương 1: Tổng quan về lập trình mạng

Chương này tập trung trình bày các kiến thức nền tảng về mạng máy tính và giao thức truyền thông:

  • Khái niệm mạng máy tính và đặc tính kỹ thuật của 3 mô hình topo mạng:
    • Mạng hình sao: Dễ cấu hình, dễ kiểm soát sự cố, tận dụng tốt tốc độ vật lý; hạn chế về bán kính kết nối (khoảng 100m).
    • Mạng tuyến tính: Dễ thiết kế, chi phí thấp; nhược điểm là tính ổn định kém, một nút hỏng làm toàn bộ mạng tê liệt.
    • Mạng hình vòng: Tín hiệu truyền một chiều qua repeater; nhược điểm là quy trình truy nhập phức tạp và một trạm hỏng sẽ dừng toàn bộ mạng.
  • Phân tích 3 cấp độ mạng theo quy mô: LAN, MAN, WAN.
  • Cấu trúc 7 tầng của mô hình OSI và đối sánh với mô hình TCP/IP 4 tầng (Physical, Internet, Transport, Application).
  • Cơ chế hoạt động của giao thức FTP, phân biệt hai kênh kết nối (Control Connection và Data Connection), lệnh GET/PUT và 3 phương thức truyền dữ liệu (Stream, Block, Compressed mode).
  • Bản chất của giao tiếp Socket Client - Server, vai trò của Port và cơ chế tạo kết nối logic giữa các tiến trình qua mạng.

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

Chương 2 mô tả quá trình thu thập yêu cầu và mô hình hóa chức năng của ứng dụng Chat Room:

  • Đặc tả yêu cầu người dùng dưới dạng các câu lệnh User Story cho các vai trò User, Old User, Reader và Server.
  • Phân loại các yêu cầu chức năng (Gửi tin nhắn, Truyền file, Gọi điện, Chat nhóm) và yêu cầu phi chức năng (Chạy trên desktop Windows, giao diện thân thiện, hiệu năng nhẹ).
  • Xây dựng biểu đồ Use Case tổng quát với 2 tác nhân chính là Người dùng và Server, bao gồm 6 ca sử dụng: Đăng nhập, Gửi tin nhắn, Gửi icon, Chat Group, Video Call, Voice Chat.
  • Trình bày đặc tả Use Case cho giao diện người dùng.

Chương 3: Kết quả đề tài

Chương này công bố kết quả xây dựng ứng dụng thông qua 7 giao diện màn hình chính:

  1. Màn hình Server: Giao diện quản lý hoạt động của máy chủ tiếp nhận kết nối.
  2. Màn hình danh sách server: Hiển thị các máy chủ đang khả dụng trong mạng.
  3. Màn hình tạo danh sách server để kết nối: Cho phép thiết lập cấu hình kết nối mới tới máy chủ.
  4. Nhập tên tham gia nhóm: Giao diện tiếp nhận định danh (tên hiển thị) của người dùng trước khi vào phòng.
  5. Màn hình Client: Giao diện chính của người dùng đầu cuối khi kết nối vào hệ thống.
  6. Màn hình tạo group: Phân hệ cho phép khởi tạo phòng trò chuyện nhóm mới.
  7. Màn hình ChatRoom: Khung giao diện trao đổi tin nhắn trực tiếp giữa các thành viên trong nhóm.

Chương 4: Kết luận và Hướng phát triển

Chương cuối tổng kết quá trình thực hiện đồ án:

  • Tác giả tự đánh giá đã thiết kế thành công một ứng dụng chatroom trên desktop, ứng dụng kỹ thuật sử dụng thư viện và vẽ trên drawable.
  • Ghi nhận phản hồi tích cực từ giảng viên và sinh viên trong khoa về tính khả thi của đề tài.
  • Trình bày các hạn chế còn tồn đọng và vạch ra định hướng phát triển trong tương lai.

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

  • Kết quả thực nghiệm:
    • Hoàn thành thiết kế hệ thống phần mềm trò chuyện mạng hoạt động trên môi trường desktop Windows.
    • Xây dựng thành công quy trình kết nối giữa Client và Server thông qua Socket TCP/IP.
    • Thiết lập và hiển thị được 7 phân hệ màn hình chức năng từ cấu hình máy chủ, tạo nhóm, đăng nhập tên hiển thị cho đến khung chat trực tuyến (ChatRoom).
  • Đóng góp của tác giả:
    • Tổng hợp có hệ thống cơ sở lý thuyết về các giao thức mạng cốt lõi (OSI, TCP/IP, FTP, Socket).
    • Áp dụng các kỹ thuật lập trình giao diện (sử dụng thư viện và drawable) để hiện thực hóa sản phẩm phần mềm chạy trên desktop phục vụ học tập và nghiên cứu môn Lập trình mạng.
    • Thu thập ý kiến đánh giá thực tế từ giảng viên và sinh viên trong khoa để kiểm chứng tính khả quan của ứng dụng.

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

Dựa trên nội dung được tác giả trình bày tại Chương 2 và Chương 4, các hạn chế và hướng mở rộng của đề tài bao gồm:

Hạn chế tồn tại

  • Chức năng tìm kiếm trong ứng dụng chưa được tối ưu hóa.
  • Các chức năng nâng cao như gọi điện thoại (Voice Chat), gọi có hình (Video Call) và tạo ghi chú chưa được hoàn thiện trong phiên bản thử nghiệm, dù đã được đưa vào biểu đồ ca sử dụng ban đầu.
  • Người dùng chưa thể thực hiện các tùy chỉnh nâng cao trong giao diện ứng dụng.
  • Trong văn bản báo cáo có sự nhầm lẫn về mặt nội dung tại phần đặc tả chức năng truyền file (xuất hiện nội dung quản lý, thêm/sửa/xóa sách và thể loại sách của quản trị viên).

Hướng phát triển

  • Tối ưu hóa thuật toán và giao diện của công cụ tìm kiếm trong phần mềm.
  • Bổ sung và hoàn thiện tính năng thoại trực tiếp (nói, ghi âm, Voice Chat) và gọi video (Video Call) giữa các người dùng.
  • Tích hợp thêm các tiện ích mở rộng như ghi chú và cải thiện khả năng tương tác đa phương tiện giữa các tài khoản.
  • Nâng cao hiệu năng ứng dụng, xử lý triệt để các lỗi phát sinh nhằm hướng tới một phần mềm hoàn chỉnh có thể ứng dụng trong thực tế.

Giá trị tham khảo

Báo cáo đề tài có giá trị tham khảo hữu ích cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm: Là tài liệu tham khảo thực tế cho môn học Lập trình mạng, đặc biệt ở phần tổng quan lý thuyết về mô hình mạng OSI, bộ giao thức TCP/IP, cơ chế truyền tệp FTP và nguyên lý kết nối Socket.
  • Người học thực hiện đồ án lập trình mạng cơ bản: Cung cấp mẫu phân tích yêu cầu, xây dựng biểu đồ Use Case và quy trình phân chia các màn hình chức năng cho một ứng dụng Client - Server trên nền tảng desktop.

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

1. Đề tài sử dụng kiến trúc mạng và mô hình truyền thông nào để xây dựng phòng chat? Hệ thống được thiết kế theo mô hình Client - Server (Máy khách - Máy chủ) sử dụng cơ chế giao tiếp Socket hoạt động trên nền tảng bộ giao thức TCP/IP.

2. Giao thức FTP được trình bày trong đồ án có những phương thức truyền dữ liệu nào? Trong Chương 1, tác giả nêu rõ FTP sử dụng 3 phương thức truyền dữ liệu gồm: Stream mode (dữ liệu truyền dưới dạng luồng byte không liên tiếp dựa trên TCP), Block mode (dữ liệu chia thành các khối chuẩn FTP blocks), và Compressed mode (nén dữ liệu bằng kỹ thuật run-length encoding).

3. Biểu đồ Use Case tổng quát của hệ thống bao gồm những tác nhân và ca sử dụng nào? Hệ thống gồm 2 tác nhân chính là Người dùng (User) và Máy chủ (Server), cùng 6 ca sử dụng: Đăng nhập, Gửi tin nhắn, Gửi icon, Chat Group, Video Call, và Voice Chat.

4. Ứng dụng đã hoàn thiện được những màn hình chức năng nào trong kết quả thực nghiệm? Tại Chương 3, đề tài công bố 7 màn hình kết quả gồm: (1) Màn hình server, (2) Màn hình danh sách server, (3) Màn hình tạo danh sách server để kết nối, (4) Nhập tên tham gia nhóm, (5) Màn hình Client, (6) Màn hình tạo group, và (7) Màn hình ChatRoom.

5. Những tính năng nào chưa được cài đặt hoàn thiện trong phiên bản báo cáo? Tác giả xác nhận ứng dụng chưa tối ưu được tính năng tìm kiếm, chưa hiện thực hóa được tính năng gọi điện thoại (voice/video call), tính năng ghi âm và tiện ích ghi chú trong phần mềm.

Kết luận

Báo cáo đề tài "Xây dựng chương trình chat room" của tác giả Hoàng Văn Tùng đã hệ thống hóa toàn diện các kiến thức nền tảng về lập trình mạng máy tính, giao thức truyền thông TCP/IP, FTP và cơ chế lập trình Socket. Thông qua phương pháp phân tích Use Case và kỹ thuật lập trình desktop trên hệ điều hành Windows, tác giả đã thiết kế và thử nghiệm thành công giao diện kết nối phòng chat giữa Client và Server. Dù còn một số hạn chế về tính năng gọi thoại và công cụ tìm kiếm, kết quả nghiên cứu đã phản ánh đúng quy trình phát triển một ứng dụng mạng cơ bản và đặt ra định hướng nâng cấp rõ ràng cho các giai đoạn tiếp theo.