Hiện nay, lập trình ngôn ngữ Java là một ngôn ngữ thu hút nhiều lập trình viên. Việc xây dựng các ứng dụng là rất cần thiết do sự phát triển của công nghệ thông tin. Trong phạm vi đề tài, chúng em sẽ trình bày những phần cơ bản nhất về mô hình client – server trong một hệ phân tán. Những phần này đã được nghiên cứu, tìm hiểu qua quá trình học tập cũng như làm việc. Hi vọng đề tài này sẽ trở thành một công cụ tham khảo có ích cho những người đang tham gia tìm hiểu mô hình client – server.
BỘ LAO ĐỘNG THƯƠNG BINH XÃ HỘI TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VĨNH LONG BÁO CÁO ĐỒ ÁN MẠNG VÀ TRUYỀN THƠNG ĐỀ TÀI: MƠ PHỎNG TRỊ CHƠI AI LÀ TRIỆU PHÚ TRÊN MẠNG LAN Giáo viên hướng dẫn: Th.S Lê Hoàng An Sinh viên: Nguyễn Thị Cẩm Lài - MSSV: 17304015 Lớp CNTT - K42A Vĩnh Long, tháng năm 2021 MỤC LỤC LỜI MỞ ĐẦU…………………………………………………………….1 CHƯƠNG I: LÝ THUYẾT VỀ MẠNG MÁY TÍNH VÀ HỆ PHÂN TÁN … Mạng máy tính …………………………………… ………………………… 1.1 Mạng máy tính gì? ……………………………………………………….2 1.2 Vai trị mạng máy tính …………………………………………………2 1.3 Phân loại mạng máy tính ………………………………………………… Hệ phân tán …………………………………………………………………… 2.1 Định nghĩa: Có nhiều định nghĩa hệ phân tán ………………………… 2.2 Phân loại hệ phân tán ……………………………………………………….3 2.3 Mục tiêu hệ phân tán ………………………………………………….4 2.3 Kết nối người sử dụng tài nguyên ……………………………… 2.3.2 Tính suốt ………………………………………………………4 2.3.3 Tính mở (Openness) …………………………………………………5 2.3.4 Tính co giãn (Scalability) ……………………………………………5 Các giao thức mạng …………………………………………………………… 3.1 Giao thức IP ……………………………………………………………… 3.2 Giao thức UDP …………………………………………………………… 3.3 Giao thức TCP …………………………………………………………… Mơ hình client - server …………………………………………………………11 4.1 Tổng quan mơ hình Client - server ……………………………………11 4.2 Phân tầng ứng dụng……………………………………………………11 Lập trình socket ……………………………………………………………… 11 5.1 Khái niệm Socket …………………………………………………………11 5.2 Lập trình Socket …………………… ……………………………………12 5.2.1 TCP Socket ………………………………………………………….12 5.2.2 UDP Socket …………………………………………………………13 CHƯƠNG II: CÁC CHỨC NĂNG CỦA PHẦN MỀM ………………………16 Lược Đồ Phân Rả Các Model ………………………………………………….16 Chi Tiết Kỹ Thuật Xử Lý Model ………………………………………………16 2.1 Module Thao Tác Với Cơ Sở Dữ Liệu … …….………………………….16 2.2 Module chơi Game … ……………….….……………………………… 20 Lược đồ sở liệu quan hệ ……………………………………………… 23 Giao Diện Và Các Form Của Chương Trình………………………………… 23 4.1 Form Main … ……………………………………………………………23 4.2 Form Đăng Nhập Hệ Thống ……… …………………………………….23 4.3 Form Quản Lý Câu Hỏi ……………… ……………………………………25 CHƯƠNG III: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ……………………26 Ưu điểm……………………………………………………………………… 26 Khuyết điểm……………………………………………………………………26 Hướng phát triển……………………………………………………………… 26 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ĐỒ ÁN MẠNG VÀ TRUYỀN THÔNG Đề tài: Mơ trị chơi Ai triệu phú mạng LAN Sinh viên thực hiện: Nguyễn Thị Cẩm Lài MSSV: 17304015 Lớp CNTT - K42A Nhận xét giáo viên hướng dẫn Vĩnh Long, ngày tháng năm 2021 Giáo viên hướng dẫn Lê Hoàng An LỜI CẢM ƠN Chúng em xin chân thành cảm ơn thầy Ths Lê Hoàng An - Giảng viên khoa Cơng nghệ thơng tin tận tình hướng dẫn, giải đáp thắc mắc cho em suốt thời gian thực đồ án Mặc dù cố gắng hoàn thành đề tài tốt thời gian kiến thức cịn giới hạn khơng thể tránh khỏi thiếu sót, mong nhận cảm thơng, chia sẻ đóng góp hướng dẫn thêm thầy để đồ án em hoàn thiện Một lần chân thành cám ơn thầy Chúc thầy vui, khỏe thành công Sinh viên thực Nguyễn Thị Cẩm Lài LỜI MỞ ĐẦU -oOo "Ai triệu phú" chuyển thể từ phiên game phát Truyền hình Việt Nam hàng tuần trở nên quen thuộc với tất người Cơ hội để ngồi ghế nóng chương trình trường quay khó cho hầu hết người, tựa game đời đáp ứng yêu cầu Đây thể loại game chơi hiểu biết bạn tất vấn đề, lĩnh vực sống với hình thức trả lời câu hỏi trắc nghiệm khách quan lựa chọn với quyền trợ giúp: 50/50, gọi điện thoại cho người thân, hỏi ý kiến khán giả trường quay quyền ngưng chơi mốc để bảo tồn số điểm thưởng có Với kiến thức nhiều lĩnh vực khác mà câu hỏi đem lại, thật phần mềm vừa chơi vừa học thú vị giúp ta mở mang kiến thức thật nhiều CHƯƠNG I GIỚI THIỆU Lí chọn đề tài - Hiện nay, lập trình ngơn ngữ Java ngơn ngữ thu hút nhiều lập trình viên Việc xây dựng ứng dụng cần thiết phát triển công nghệ thông tin Trong phạm vi đề tài, chúng em trình bày phần mơ hình client – server hệ phân tán Những phần nghiên cứu, tìm hiểu qua trình học tập làm việc Hi vọng đề tài trở thành công cụ tham khảo có ích cho người tham gia tìm hiểu mơ hình client – server Mục tiêu đề tài Bạn thích chương trình “Ai triệu phú” phát sóng VTV3 khơng có dịp thử sức truyền hình, thử tài bạn qua game "Ai triệu phú" máy tính bạn - Đây game mô lại chương trình “Ai triệu phú” VTV3, nhằm đáp ứng nhu cầu giải trí cho người, với chưa có hội ngồi ghế nóng nơi để bạn vừa giải trí kiểm tra lại kiến thức Vấn đề đề tài giải - Nhìn chung game tạo đáp ứng nhu cầu giải trí người chơi Giao diện thân thiện, đơn giản, dễ sử dụng thao tác - Tuy nhiên số tính game chưa tích hợp đầy đủ, thời gian cho câu hỏi, trợ giúp, lưu điểm người chơi… - Tuy vậy, hạn chế trình độ, thời gian thiết bị nên chúng em khơng thể tránh khỏi vướng mắc sai sót trình tìm hiểu, nghiên cứu Chúng em mong đánh giá chỉnh sửa thầy hướng dẫn bạn sinh viên đọc qua tài liệu CHƯƠNG II: LÝ THUYẾT VỀ MẠNG MÁY TÍNH VÀ HỆ PHÂN TÁN Mạng máy tính 1.1 Mạng máy tính gì? Mạng máy tính tập hợp máy tính kết nối với đường truyền vật lý theo cấu trúc để đáp ứng số yêu cầu người dùng 1.2 Vai trị mạng máy tính Ngày với lượng lớn thông tin, nhu cầu xử lý thông tin ngày cao Mạng máy tính trở nên quen thuộc chúng ta, lĩnh vực khoa học, quân sự, quốc phòng, thương mại, dịch vụ, giáo dục Hiện nhiều nơi mạng trở thành nhu cầu thiếu Người ta thấy việc kết nối máy tính thành mạng cho khả to lớn như: Sử dụng chung tài nguyên: tài nguyên mạng (như thiết bị, chương trình, liệu) trở thành tài nguyên chung thành viên mạng tiếp cận mà khơng quan tâm tới tài nguyên đâu Tăng độ tin cậy hệ thống: người ta dễ dàng bảo trì máy móc lưu trữ (backup) liệu chung có trục trặc hệ thống chúng khơi phục nhanh chóng Trong trường hợp có trục trặc trạm làm việc người ta sử dụng trạm khác thay Nâng cao chất lượng hiệu khai thác thơng tin: thơng tin sử dụng chung mang lại cho người sử dụng khả tổ chức lại công việc với thay đổi chất như: - Ðáp ứng nhu cầu hệ thống ứng dụng kinh doanh đại - Cung cấp thống liệu - Tăng cường lực xử lý nhờ kết hợp phận phân tán - Tăng cường truy nhập tới dịch vụ mạng khác cung cấp giới 1.3 Phân loại mạng máy tính Dựa khoảng cách địa lý: - Mạng cục (Local Area Network - LAN): có phạm vi hẹp, bán kính khoảng vài chục km - Mạng thị (Metropolitan Area Network - MAN): phạm vi rộng hơn, với bán kính nhỏ 100km - Mạng diện rộng (Wide Area Network - WAN): phạm vi mạng vượt biên giới quốc gia, lục địa - Mạng toàn cầu(Global Area Network - GAN): phạm vi trải rộng toàn giới Dựa kiến trúc mạng - Mạng kiểu Bus (Bus Topology) - Mạng hình Sao (Star Topology) - Mạng Vòng tròn (Ring Topology) Hệ phân tán 2.1 Định nghĩa: Có nhiều định nghĩa hệ phân tán: - Định nghĩa 1: Hệ phân tán tập hợp máy tính tự trị kết nối với mạng máy tính cài đặt phần mềm hệ phân tán - Định nghĩa 2: Hệ phân tán hệ thống có chức liệu phân tán trạm (máy tính) kết nối với mạng máy tính - Định nghĩa 3: Hệ phân tán tập máy tính độc lập giao tiếp với người dùng hệ thống thống nhất, tồn vẹn Như vậy, nói : Hệ phân tán = mạng máy tính + phần mềm hệ phân tán 2.2 Phân loại hệ phân tán: Trước đây, hệ phân tán chia thành ba loại : hệ điều hành hệ phân tán, sở liệu hệ phân tán hệ thống tính tốn hệ phân tán.Ngày nay, hệ phân tán phân chia sau: - Hệ phân tán mang tính hệ thống: hệ điều hành phân tán - Hệ phân tán mang tính ứng dụng: hệ thống truyền tin phân tán 2.3 Mục tiêu hệ phân tán 2.3 Kết nối người sử dụng tài nguyên Giải toán chia sẻ tài nguyên hệ thống (resource sharing) 2.3.2 Tính suốt - Ẩn giấu rời rạc nhược điểm có hệ phân tán người sử dụng (end-user ) nhà lập trình ứng dụng (application programmer) - Theo tiêu chuẩn ISO cho hệ phân tán ISO / IS / 10746 tên "Open distributed processing reference model" 1995 cụ thể hóa tám dạng suốt: Trong suốt truy cập (Access transparency): che giấu khác biệt cách biểu diễn cách truy cập tài nguyên - Trong suốt vị trí (Location transparency): che giấu vị trí tài ngun Hai dạng suốt vừa trình bày gọi chung suốt mạng (network transparency) - Trong suốt di trú (Migration transparency): che giấu khả chuyển vị trí tài nguyên - Trong suốt việc định vị lại (Relocation transparency): che giấu việc di chuyển tài nguyên sử dụng - Trong suốt nhân (Replication transparency): che giấu tình trạng tình trạng sử dụng tài nguyên - Che giấu che sẻ tài nguyên tương tranh (Concurency transparency) - Trong suốt cố (Failure transparency): che giấu lỗi hệ thống có CHƯƠNG III PHÂN TÍCH THIẾT KẾ HỆ THỐNG Khảo sát thực trạng 1.1 phân tích nhu cầu thực tiễn Trị chơi Ai triệu phú cho phép nhiều Client kết nối đến Server chơi lúc Mỗi câu hỏi có thời gian trả lời phút 30 giây Máy trả lời nhanh phần thưởng tương ứng giống game show thực tế Nếu trả lời sai khơng trị chơi kết thúc, cần ý mốc câu hỏi lãnh thưởng 5, 10, 15, 20 Lập trình Trị chơi Ai triệu phú máy tính nối mạng với - với yêu cầu sau: - Sử dụng kỹ thuật lập trình đối tượng - Máy chủ (server) truyền nội dung câu hỏi đến máy người chơi (client) - Các câu hỏi người chơi (client) chọn phương án trả lời vài so sánh phương án với phương án mà máy chủ (server) gửi đến 1.2 Yêu cầu đề - Trước tiên máy phần mềm chạy hiển thị giao diện trị chơi, admin thêm vào sửa đổi câu hỏi, người chơi đăng ký thơng tin người chơi đăng nhập có tài khoản - người chơi đăng nhập bắt đầu trị chơi Khi câu hỏi gửi đến, câu hỏi có thời gian trả lời phút 30 giây - Nếu người chơi trả lời cộng thêm phần thưởng chuyển sang câu hỏi Nếu trả lời sai hết thời gian mà không trả lời kết thúc trị chơi - Mỗi lượt chơi có 20 câu hỏi, kết thúc phần thưởng cao chương trình - Ngồi chơi cịn có trợ giúp 50-50 hỏi ý kiến khán giả Mơ hình tổng thể 17 Giới thiệu Xampp XAMPP chương trình tạo web server ứng dụng hệ điều hành Linux, MacOS, Windows, Cross-platform, Solaris Ưu điểm lớn XAMPP trả phí quyền sử dụng mã nguồn mở, bên cạnh cấu hình web server tương đối đơn giản, gọn nhẹ nên sử dụng ngày phổ biến XAMPP hoạt động dựa tích hợp phần mềm Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) Perl (P), nên tên gọi XAMPP viết tắt từ chữ đầu phần mềm này: - Chữ X viết tắt hệ điều hành mà hoạt động với: Linux, Windows Mac OS X - Apache: Web Server mã nguồn mở Apache máy chủ sử dụng rộng rãi toàn giới để phân phối nội dung Web Ứng dụng cung cấp dạng phần mềm miễn phí Apache Software Foundation - MySQL / MariaDB: Trong MySQL, XAMPP chứa hệ quản trị sở liệu quan hệ phổ biến giới Kết hợp với Web Server Apache ngơn ngữ lập trình PHP, MySQL cung cấp khả lưu trữ liệu cho dịch vụ Web Các phiên XAMPP thay MySQL MariaDB (một nhánh dự án MySQL cộng đồng phát triển, thực nhà phát triển ban đầu) - PHP: Ngơn ngữ lập trình phía máy chủ PHP cho phép người dùng tạo trang Web ứng dụng động PHP cài đặt tất tảng hỗ trợ số hệ thống sở liệu đa dạng - Perl: ngôn ngữ kịch Perl sử dụng quản trị hệ thống, phát triển Web lập trình mạng Giống PHP, Perl cho phép người dùng lập trình ứng dụng Web động Giới thiệu Neatbin Như biết IDE mơi trường tích hợp dùng để phát triển phần mềm, có nhiều loại IDE thơng dụng NetBeans IDE IDE nhiều người sử dụng NetBeans IDE công cụ hỗ trợ lập trình viết mã code miễn phí cho tốt nay, sử dụng chủ yếu cho lập trình viên phát triển Java nhiên phần mềm có dung lượng nặng dành cho máy cấu hình có RAM, CPU tương đối cao để vận hành NetBeans IDE môi trường phát triển tích hợp cần thiết cho lập trình viên, cơng cụ hoạt động tốt với nhiều tảng hệ điều hành khác Linux, Windows, MacOS, mã nguồn mở cung cấp tính cần thiết nhăm ứng dụng web, thiết bị di động, desktop NetBeans IDE hỗ trợ nhiều ngôn ngữ lập trình Python, Ruby, JavaScript, Groovy, C / C + +, PHP 18 Qua nhiều phiên bả, công cụ lập trình NetBeans IDE từ phiên 8.2 có nhiều thay đổi nâng cấp so với phiên cũ kể đến như: - Nâng cao ngơn ngữ lập trình C C++ - Nâng cấp, cải tiến công cụ soạn thảo Profiler Java - Hỗ trợ Docker, PHP - ECMAScript hỗ trợ thử nghiệm ECMAScript - Nâng cấp, cải tiến HTML Javascript Để cài đặt NetBeans IDE bạn phải cài đặt cấu hình sẵn JDK máy cài đặt NetBean IDE chia thành nhiều gói khác để người dùng tải phần, tiết kiệm dung lượng, tùy theo nhu cầu Giống với Notepad++, NetBean IDE có gợi ý cú pháp tốt, cịn nhiều tính thú vị tự động chỉnh mã nguồn, Remote FTP, SVN … Chính thế, xem mơi trường phát triển khơng thể bỏ qua cho lập trình viên Tính NetBeans IDE: - Hỗ trợ nhiều loại ngơn ngữ lập trình - Chỉnh sửa mã nguồn thông minh - Giao diện trực quan, dễ thao tác, sử dụng, - Là cơng cụ lập trình phần mềm máy tính phần mềm thiết bị di động - Gỡ lỗi mạng nội từ xa - Thử nghiệm tính xây dựng giao diện đồ họa - Tính QuickSearch (Tìm kiếm nhanh), tự động biên dịch, hỗ trợ Framework cho website, trình ứng dụng máy chủ GlassFish sở liệu Mối quan hệ Xampp Neatbin đề tài Trong đề tài ta sử dụng Xampp để cài đặt chạy hệ quản trị sở liệu MySQL MariaDB Kết hợp với Neatbin ngơn ngữ lập trình Java, MySQL/ MariaDB cung cấp khả lưu trữ liệu cho ứng dụng Các phiên XAMPP thay MySQL MariaDB (một nhánh dự án MySQL cộng đồng phát triển, thực nhà phát triển ban đầu) 19 CHƯƠNG IV: CÁC CHỨC NĂNG CỦA PHẦN MỀM Sơ đồ lớp tổ chức hệ thống 20 Chi Tiết Kỹ Thuật Xử Lý Model 2.1 Module Thao Tác Với Cơ Sở Dữ Liệu 21 - Quản lý câu hỏi: + Thêm câu hỏi: giao diện thêm câu hỏi, admin tiến hành nhập câu hỏi, phương án trả lời, đán án đúng, mức độ lĩnh vực câu hỏi Nếu nhấn “Lưu” câu hỏi lưu vào csdl, nhấn “Trở về” lại trang trước 22 + Sửa/Xóa câu hỏi: giao diện sửa/xóa câu hỏi, admin tiến hành sửa câu hỏi, phương án trả lời, đán án đúng, mức độ lĩnh vực câu hỏi Nếu nhấn “Lưu” câu hỏi sửa update vào csdl, nhấn “Xóa” câu hỏi bị đánh dấu delete phục hồi (nếu muốn), nhấn “Trở về” lại trang trước 23 - Đăng nhập: người dùng phải đăng nhập chơi game, nội dung đăng nhập gồm username mật Nếu chưa có tài khoản, nhấn vào nút “Đăng ký” để đến trang đăng ký tài khoản - Đăng ký: người dùng tiến hành nhập username, mật khẩu, họ tên, giới tính, năm sinh, quê quán Nếu nhấn “Đăng ký” hàng liệu lưu vào csdl 24 2.2 Module chơi Game Module chủ yếu dựa module thao tác với CSDL để xử lý xử lý giao diện người dùng + câu đầu có mức độ dễ, câu có mức độ trung bình, câu cuối có mức độ khó + Mỗi phương án button, người dùng nhấn vào thông báo hỏi người chơi có chắn chọn đáp án khơng, người chơi chọn Cancel chọn lại câu hỏi, cịn chọn Yes kiểm tra đáp án câu hỏi 25 + Nếu chọn thông báo hỏi người chơi muốn chơi tiếp hay dừng lại, chơi tiếp qua câu hỏi tiếp theo, cịn dừng lại khỏi trị chơi trở trang chính, đáp án người chơi chọn sai dừng chơi + Có trợ giúp 50:50 gợi ý câu trả lời * Nếu nhấn vào 50:50 thi bỏ phương án sai, lại phương án phương án sai * Nếu nhấn vào gợi ý câu trả lời lên chart có cột, cột cao phương án 26 + Nếu trả lời tiếp cấu cuối, sai dừng lại - Chức điều khiển: - Trò chơi mới: Trò chơi đưa cách sau: xác định người chơi Sinh tự động liệu 15 câu hỏi vào đệm bắt đầu thực chơi từ câu số Sử dụng phím Chọn câu trả lời Sử dụng chuột Trả lời Kiểm tra câu trả lời Trả lời sai 50/50 Modue chơi Trợ giúp 27 Xem Xem Điều bảng lý khiển lịch vàng Hỏi ý kiến khan giả Lược đồ sở liệu quan hệ Giao Diện Và Các Form Của Chương Trình 4.1 Form Main Form xuất mở chương trình 28 4.2 Form Đăng Nhập Hệ Thống - Form có chức nhập thơng tin người chơi chương trình - Sau điền đầy đăng nhập, phần mềm hiển thị thông báo bấm vào nút ‘OK’ để vào giao diện chương trình 29 4.3 Form Quản Lý Câu Hỏi ` - Sau đăng nhập thành công người quản trị thêm câu hỏi lưu lại - Hoặc người quản trị sửa câu hỏi có sẵn lưu lại 30 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Ưu điểm - Nắm cách tạo thành phần xử lí đối tượng - Biết cách kết hợp đối tượng để tạo giao diện - Nắm vững câu lệnh Java - Có thể chơi lúc với nhiều máy - Có thể tổng kết điểm người chơi, đưa người thắng - Cơ thể u cầu mơ trị chơi “Ai triệu phú” - Được hướng dẫn tận tình thầy - Tài liệu hướng dẫn phong phú Khuyết điểm - Các đoạn mã chưa thực tối ưu - Do hạn chế kinh nghiệm kiến thức nên chương trình cịn nhiều thiếu sót chúng em mong bảo thầy đóng gớp ý kiến bạn để báo cáo hồn thiện - Chưa hiều sâu ngơn ngữ Java nên gặp khó khăn viết code - Giao diện chưa tiện dụng Hướng phát triển - Cần bổ sung nhiều chức để chương trình hồn thiện - Tìm hiểu thêm ngơn ngữ java - Mở rộng chương trình đưa chương trình vào thực tế 31 ... thích chương trình ? ?Ai triệu phú” phát sóng VTV3 khơng có dịp thử sức truyền hình, thử tài bạn qua game "Ai triệu phú" máy tính bạn - Đây game mơ lại chương trình ? ?Ai triệu phú” VTV3, nhằm đáp ứng... Nâng cao chất lượng hiệu khai thác thông tin: thông tin sử dụng chung mang lại cho người sử dụng khả tổ chức lại công việc với thay đổi chất như: - Ðáp ứng nhu cầu hệ thống ứng dụng kinh doanh... Network - LAN): có phạm vi hẹp, bán kính khoảng vài chục km - Mạng đô thị (Metropolitan Area Network - MAN): phạm vi rộng hơn, với bán kính nhỏ 100km - Mạng diện rộng (Wide Area Network - WAN): phạm