Xây dựng hệ thống tương tác trực tuyến
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG HỆ THỐNG TƯƠNG TÁC TRỰC TUYẾN Sinh viên thực hiện: Lê Văn Thành Lớp: CNTT – K55 Giáo viên hướng dẫn: ThS. Hoàng Anh Việt HÀ NỘI 05-2015 Xây dựng hệ thống tương tác trực tuyến PHIẾU GIAO NHIỆM ĐỒ ÁN TỐT NGHIỆP 1. Thông tin sinh viên Họ tên sinh viên: Lê Văn Thành Điện thoại liên lạc: 0987 886 025 Lớp: CNTT Email: lethanhbk55@gmail.com Hệ đào tạo: Chính quy Đồ án tốt nghiệp thực tại: Bộ môn công nghệ phần mềm - Viện CNTT TT Thời gian làm ĐATN: Từ ngày 28/02/2015 đến 28/05/2015 2. Mục đích nội dung ĐATN Mục đích đồ án xây dựng giải pháp hệ thống tương tác trực tuyến, từ xây dựng game online để demo hệ thống. 3. Các nhiệm vụ cụ thể ĐATN Nghiên cứu áp dụng chế Non-blocking IO Network giải xử lý số lượng kết nối đồng thời dùng lớn Nghiên cứu giải pháp phân cụm Clustering áp dụng Hazelcast vào giải vấn đề mở rông, chịu tải, chịu lỗi. Nghiên cứu giải pháp chế Extension (Plugin) cho phép nhà phát triển chạy đoạn mã phần mở rộng Xây dựng hệ thống tương tác trực tuyến client – server áp dụng cho game online. 4. Lời cam đoan sinh viên Tôi - Lê Văn Thành - cam kết ĐATN công trình nghiên cứu thân hướng dẫn Ths. Hoàng Anh Việt. Các kết nêu ĐATN trung thực, chép toàn văn công trình khác. Hà Nội, ngày 29 tháng 05 năm 2015 Tác giả ĐATN Lê Văn Thành 5. Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ: Hà Nội, ngày 29 tháng 05 năm 2015 Giáo viên hướng dẫn Ths. Hoàng Anh Việt Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Sự phát triển vũ bão Intenet mạng di động mở hội lớn cho thị trường dịch vụ tương tác trực tuyến. Mục tiêu đồ án pháp triển giải pháp hỗ trợ xây dựng hệ thống tương tác trực tuyến, từ tới xây dựng game online để demo hệ thống. Trong đồ án trình bày phân tích, thiết kế hệ thống giải pháp cụ thể giải vấn đề hệ thống tương tác online. Đồ án chia thành chương: Chương 1: Đặt vấn đề, định hướng, giải pháp Chương 2: Phân tích, thiết kế hệ thống Chương 3: Cài đặt thử nghiệm hệ thống Kết luận hướng phát triển Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến LỜI CẢM ƠN Lời đầu tiên, em xin được gửi lời cảm ơn chân thành đến thầy cô trường Đại Học Bách Khoa Hà Nội như thầy cô giáo Viện Công Nghệ Thông Tin Truyền Thông truyền dạy cho em những kiến thức kinh nghiệm quý báu suốt trình học tập tu dưỡng năm qua. Em xin được gửi lời cảm ơn chân thành tới thầy Ths. Hoàng Anh Việt - Giảng viên môn công nghệ phần mềm, Viện Công Nghệ Thông tin Truyền hướng dẫn, dạy giúp đỡ em nhiều trình học tập nghiên cứu. Thầy không cho em những kiên thức chuyên môn mà những kĩ mềm sống, kĩ định giúp em trưởng thành nhiều. Em xin gửi lời cảm ơn tới anh Nguyễn Hoàng Bách – CNPM K51 giúp đỡ em, cho em nhiều kiến thức, kinh nghiệm làm việc thực tế suốt trình làm đồ án. Em xin cảm ơn tới anh Vũ Trọng Quý tập thể công ty Tap Studio tạo điều kiện để em hoàn thành đồ án cách tốt nhất. Cuối cùng, em xin được gửi lời cảm ơn chân thành tới gia đình, bạn bè quan tâm, động viên, đóng góp ý kiến giúp đỡ em trình học tập, nghiên cứu hoàn thành đồ án tốt nghiệp. Hà Nội, Ngày 29 tháng năm 2015 Lê Văn Thành Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến MỤC LỤC PHIẾU GIAO NHIỆM ĐỒ ÁN TỐT NGHIỆP TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP . LỜI CẢM ƠN . MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC CÁC BẢNG . DANH MỤC CÁC TỪ VIẾT TẮT . Chương 1: ĐẶT VẤN ĐỀ, ĐỊNH HƯỚNG VÀ GIẢI PHÁP 1.1. Đặt vấn đề 1.1.1. Khái niệm hệ thống tương tác trực tuyến 1.1.2. Tiềm thị trường dịch vụ tương tác trực tuyến 1.2. Phát biểu toán . 11 1.3. Phương hướng giải toán 12 Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 13 2.1. Mô tả hệ thống . 13 2.2. Phân tích thiết kế hệ thống . 14 2.2.1. Kiến trúc hệ thống . 14 2.2.1.1. Kiến trúc tổng quan 14 2.2.1.2. Kiến trúc game engine . 16 2.2.2. Biểu đồ UseCase . 18 2.2.3. Thiết kế database . 19 2.2.4. Thiết kế phần mở rộng 20 2.2.5. Biểu đồ chức 24 2.2.5.1. Chức đăng nhập . 24 2.2.5.2. Chức chọn phòng 26 2.2.5.3. Chức gửi lời mời thách đấu . 27 2.2.5.4. Chức chấp nhận lời mời thách đấu 28 2.2.5.5. Chức chơi game . 30 Chương 3: CÁC GIẢI PHÁP TRỌNG TÂM . 32 3.1. Cơ chế NIO Network 32 Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến 3.1.1. Giao thức truyền tin TCP/IP UDP 32 3.1.1.1. Giao thức TCP/IP . 32 3.1.1.2. Giao thức UDP . 35 3.1.2. Cơ chế NIO Network 37 3.2. Hệ thống phân cụm Clustering 41 3.2.1. Khái niệm hệ thống phân cụm 42 3.2.2. Giới thiệu Hazelcast ứng dụng . 44 3.3. Cơ chế Extension (Plugin) 47 Chương 4: Kết đạt 51 4.1. Môi trường cài đặt 51 4.2. Cài đặt kiểm thử hệ thống . 51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56 Đánh giá kết đạt 56 Phương hướng phát triển 56 TÀI LIỆU THAM KHẢO . 57 Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến DANH MỤC HÌNH ẢNH Hình 1.1: Thống kê sử dụng Intenet Việt Nam .9 Hình 2.1: Mô hình hệ thống PIS 13 Hình 2.2: Kiến trúc tổng quan hệ thống .14 Hình 2.3: Kiến trúc game engine .16 Hình 2.4: Biểu đồ usecase hệ thống .18 Hình 2.5: Mô hình phần lõi database .20 Hình 2.6: Biểu đồ usecase game Đấu Trí Online .21 Hình 2.7: Mô hình CSDL game Đấu Trí Online .23 Hình 2.8: Biểu đồ chức đăng nhập 24 Hình 2.9: Biểu đồ chức chọn phòng .26 Hình 2.10: Biểu đồ chức gửi lời mời thách đấu 27 Hình 2.11: Biểu đồ chức chấp nhận lời mời .28 Hình 2.12: Biểu đồ chức chơi game 30 Hình 3.1: Cổng truy nhập dịch vụ TCP .32 Hình 3.2: Dạng thức Segment TCP .34 Hình 3.3: Dạng thức gói tin UDP 36 Hình 3.4: Mô hình quan hệ họ giao thức TCP/IP 37 Hình 3.5: Các công đoạn xử lý request hệ thống 39 Hình 3.6: Mô hình NIO Network .40 Hình 3.7: Kiến trúc Apache Mina 41 Hình 3.8: Biểu đồ hoạt động sử dụng Hazelcast 46 Hình 3.9: Biểu đồ hoạt động cài đặt buffer insert (update) Hazelcast .47 Hình 3.10: Cấu trúc thư mục cài đặt phần mở rộng .48 Hình 3.11: Cơ chế load class Java 49 Hình 3.12: Biểu đồ hoạt động load extension 50 Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến DANH MỤC CÁC BẢNG Bảng 1: Giá sản phẩm phiên SmartFoxBasic .10 Bảng 2: Giá sản phẩm Smartfox 2X 11 Bảng 3: Giá các sản phẩm Electro Server .11 Bảng 4: Giá sản phẩm PhotonServer .11 Bảng 5: Thiết kế database phần lõi PIS .20 Bảng 6: Thiết kế database phần mở rộng Đấu Trí Online .23 Bảng 7: Các kết kiểm thử hệ thống .55 DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Ý nghĩa OTT Over The Top: giải pháp cung cấp nội dung dựa Internet mà nhà cung cấp dịch vụ Internet (ISP) đưa đến LTV lập trình viên HTTP Hypertext Transfer Protocol: Giao thức truyền tải siêu văn TCP Transmission Control Protocol: Giao thức điều khiển truyền vận, giao thức cốt lõi giao thức TCP/IP IP Internet Protocol UDP User Datagram Protocol JVM Java Vitual Machine: máy ảo Java CPU Central Processing Unit: đơn vị xử lý trung tâm CCUs Concurrent Users: số lượng người truy cập đồng thời 10 NIO Non-blocking IO 11 CSDL Cơ sở dữ liệu 12 RAM Random Access Memory: nhớ truy cập ngẫu nhiên Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến Chương 1: ĐẶT VẤN ĐỀ, ĐỊNH HƯỚNG VÀ GIẢI PHÁP Nội dung chương trình bày những vấn đề sau: Giới thiệu hệ thống tương tác trực tuyến Tiền phát triển dịch vụ tương tác trực tuyến Một số giải pháp hệ thống tương tác trực tuyến có Mục tiêu đề tài Giải pháp cụ thể giải đề tài 1.1. Đặt vấn đề 1.1.1. Khái niệm hệ thống tương tác trực tuyến Hệ thống tương tác trực tuyến hệ thống cho phép người dùng tương tác, kết nối trực tiếp với nhiều người khác việc trao đổi thông tin sử dụng dịch vụ đó. Một hệ thống tương tác trực tuyến phải có khả tích hợp nhiều dịch vụ, có tính kết nối, chia sẻ, thời gian trả đáp ứng nhu cầu người sử dụng. Một số hệ thống tương tác trực tuyến phổ biến mạng xã hội (facebook, twitter,…), dịch vụ OTT (zalo, viber,…), hệ thống đào tạo trực tuyến, dịch vụ giải trí online xem TV, video chat, game online… 1.1.2. Tiềm thị trường dịch vụ tương tác trực tuyến Sự phát triển Internet Việt Nam Cùng với phát triển Internet giới, Việt Nam liên tục đứng top 20 quốc gia có số lượng người dùng Internet lớn giới, với tỷ lệ 30% [1] dân số. Sự phát triển hạ tầng công nghệ 3G nhà mạng với gói cước hấp dẫn khiến cho người truy cập Internet điện thoại di động tăng lên thời gian gần chiếm 30%, tổng số 27,5 [2] triệu thuê bao di động. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến Hình 1.1: Thống kê sử dụng Intenet Việt Nam [3] Internet mạng di động thúc đẩy loại hình dịch vụ trực tuyến. Sự phát triển Internet kéo theo những nhu cầu thông tin, chia sẻ tăng lên theo. Cụ thể, thay những trang web tĩnh mang nội dung xuất những trang web có tính chia sẻ forum, trang mạng chia sẻ ảnh, video. Tiếp đến thời kỳ dịch vụ có tính tương tác cao gọi video, chơi game online, học online, mạng xã hội, nhắn tin qua mạng… Thị trường dịch vụ tương tác trực tuyến Theo thống kê số 31 triệu người sử dụng Internet có đến 86% sử dụng truy cập mạng xã hội, 6.5 triệu [4] người sử dụng dịch vụ OTT. Sự phát triển mạnh mẽ ứng dụng OTT chí mối lo cho nhà mạng, công nghệ kết nối Wifi, 3G ngày phổ biến, việc sử dụng ứng dụng OTT với chi phí rẻ dần thay cách nhắn tin, gọi điện truyền thống. Về giáo dục, xu hướng phát triển hệ thống đào tạo trực tuyến điều tất yếu. Song việc triển khai dự án đào tào trực tuyến Việt Nam gặp nhiều khó khăn dịch vụ bị coi phụ thay cho cách học (học trực tiếp lớp) tính tương tác chưa cao chưa khai thác hết tiện ích việc học qua Internet. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 Xây dựng hệ thống tương tác trực tuyến database. Người viết đồ án lựa chọn Hazelcast hỗ trợ xây dựng hệ thống phân cụm tính toán, phân tán dữ liệu cache để cài đặt vào hệ thống mình. 3.2.1. Khái niệm hệ thống phân cụm Tổng quan công nghệ Clustering Clustering kiến trúc nhằm đảm bảo nâng cao khả sẵn sàng cho hệ thống mạng máy tính. Clustering cho phép sử dụng nhiều máy chủ kết hợp với tạo thành cụm (cluster) có khả chịu đựng hay chấp nhận sai sót (faulttolerant) nhằm nâng cao độ sẵn sàng hệ thống mạng. Cluster hệ thống bao gồm nhiều máy chủ kết nối với theo dạng song song hay phân tán sử dụng tài nguyên thống nhất. Nếu máy chủ ngừng hoạt động bị cố để nâng cấp, bảo trì, toàn công việc mà máy chủ đảm nhận tự động chuyển sang cho máy chủ khác (trong cluster) mà không làm cho hoạt động hệ thống bị ngắt hay gián đoạn. Quá trình gọi “fail-over” việc phục hồi tài nguyên máy chủ hệ thống (cluster) gọi “failback”. Việc thiết kế lắp đặt cluster cần thoả mãn yêu cầu sau: Yêu cầu tính sẵn sàng cao (availability): tài nguyên mạng phải sẵn sàng khả cao để cung cấp phục vụ người dùng cuối giảm thiểu ngưng hoạt động hệ thống ý muốn. Yêu cầu độ tin cậy cao (reliability): khả giảm thiểu tần số xảy cố, nâng cao khả chịu đựng sai sót hệ thống. Yêu cầu khả mở rộng (scalability): hệ thống phải có khả dễ dàng cho việc nâng cấp, mở rộng tương lai. Việc nâng cấp mở rộng bao hàm việc thêm thiết bị, máy tính vào hệ thống để nâng cao chất lượng dịch vụ, việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ thêm tài nguyên mạng khác. Cấu trúc Cluster Cluster tổ chức thành nhóm gọi farm hay pack. Trong hầu hết trường hợp, dịch vụ tầng trước giữa (front-end and middle-tiers services) tổ chức thành farm sử dụng clone, dịch vụ tầng sau (back-end services) tổ chức thành pack. Cluster Farm nhóm máy chủ chạy dịch vụ giống nhau, không dùng chung sở dữ liệu. Được gọi farm (trang trại) chúng xử lý yêu cầu gửi đến cho chúng sở dữ liệu (tài nguyên) giống hệt lưu giữ cục bộ, không dùng chung sở dữ liệu. Cũng tính chất nên máy chủ thành viên farm làm việc độc lập chúng Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 42 Xây dựng hệ thống tương tác trực tuyến gọi clone (clone máy tính thiết kế để mô chức máy tính khác). Cluster Pack nhóm máy chủ hoạt động với chia sẻ với phần sở dữ liệu. Được gọi pack (khối) hoạt động máy chủ thành viên pack có liên hệ chặt chẽ với chúng làm việc theo phương thức thống để quản lý trì dịch vụ. Chế độ hoạt động Cluster Mỗi máy chủ cluster gọi nút (cluster node), thiết lập chế độ chủ động (active) hay thụ động (passive). Khi nút chế dộ chủ động, chủ động xử lý yêu cầu. Khi nút thụ động, nằm chế độ dự phòng nóng (stanby) chờ để sẵn sàng thay cho nút khác bị hỏng. Trong cluster có nhiều nút kết hợp nút chủ động nút thụ động. Trong những mô hình loại việc định nút cấu hình chủ động hay thụ động quan trọng. Nếu nút chủ động bị cố có nút thụ động sẵn sàng, ứng dụng dịch vụ chạy nút hỏng chuyển sang nút thụ động. Vì máy chủ đóng vai trò nút thụ động chưa chạy ứng dụng hay dịch vụ nên gánh toàn công việc máy chủ hỏng mà không ảnh hưởng đến ứng dụng dịch vụ cung cấp cho người dùng cuối (Ngầm định các máy chủ cluster có cấu trúc phần cứng giống nhau). Nếu tất máy chủ cluster chủ động có nút bị cố, ứng dụng dịch vụ chạy máy chủ hỏng phải chuyển sang máy chủ khác đóng vai trò nút chủ động. Vì nút chủ động nên bình thường máy chủ phải đảm nhận số ứng dụng hay dịch vụ đó, có cố xảy phải gánh thêm công việc máy chủ hỏng. Do để đảm bảo hệ thống hoạt động bình thường kể có cố máy chủ cluster cần phải có cấu hình dư đủ để gánh thêm khối lượng công việc máy chủ khác cần. Trong cấu trúc cluster mà nút chủ động dự phòng nút thụ động, máy chủ cần có cấu hình cho với khối lượng công việc trung bình chúng sử dụng hết khoảng 50% CPU dung lượng nhớ. Trong cấu trúc cluster mà số nút chủ động nhiều số nút bị động, máy chủ cần có cấu hình tài nguyên CPU nhớ mạnh nữa để xử lý khối lượng công việc cần thiết nút bị hỏng. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 43 Xây dựng hệ thống tương tác trực tuyến Các nút cluster thường phận vùng (domain) cấu hình máy điều khiển vùng (domain controllers) hay máy chủ thành viên. Lý tưởng cluster nhiều nút có hai nút làm máy điều khiển vùng đảm nhiệm việc failover những dịch vụ vùng thiết yếu. Nếu không khả sẵn sàng tài nguyên cluster bị phụ thuộc vào khả sẵn sàng máy điều khiển domain. Cluster nhiều địa điểm phân tán Với hệ thống mạng lớn có người dùng phân bố rải rác, hiệu việc phòng chống cố nâng cao tính sẵn sàng mạng cải thiện nhiều xây dựng hệ thống cluster bố trí nhiều địa điểm. Kiến trúc nhiều địa điểm thiết kế theo nhiều cách khác nhau, phổ biến có điểm gốc số điểm xa. Với kiểu thiết kế đầy đủ, toàn cấu trúc điểm gốc xây dựng lại đầy đủ điểm xa. Điều cho phép điểm xa hoạt động độc lập xử lý toàn khối lượng công việc điểm gốc cần. Trong trường hợp này, việc thiết kế phải đảm bảo cho sở dữ liệu ứng dụng giữa điểm gốc điểm xa phải đồng cập nhật lặp chế độ thời gian thực. Với kiểu thiết kế thực phần có thành phần cài đặt điểm xa nhằm xử lý khối lượng công việc tải cao điểm, trì hoạt động mức trường hợp điểm gốc site bị cố, cung cấp số dịch vụ hạn chế cần. Cả kiểu thiết kế đầy đủ hay phần dùng phương cách phân tán máy chủ rải rác mặt địa lý. Cluster phân tán địa lý sử dụng mạng LAN ảo (Virtual LAN) để kết nối mạng khu vực lưu trữ SAN (storage area network) qua những khoảng cách lớn. Để trì hoạt động cluster cách hiệu quả, yêu cầu kết nối mạng LAN ảo phải có độ trễ khoảng 500 ms. 3.2.2. Giới thiệu Hazelcast ứng dụng Hazelcast giải pháp mã nguồn mở, hỗ trợ in-memory data grids. Inmemory data grids thường sử dụng với database để nâng cao hiệu ứng dụng, phân tán dữ liệu nhiều server với tốc độ tính toán ưu việt khả quản lý khối lượng lớn dữ liệu. Hazelcast thiết kế theo mô hình phân cụm, server chia sẻ dữ liệu với theo cấu trúc Cluster Pack. Hazelcast cho phép: Scale-out computing: khả tính toán mở rộng nhiều server mạnh mẽ. Resilience (khả phục hồi): node bị lỗi mà không dữ liệu, tối thiểu hóa yếu tố làm ảnh hưởng tới hiệu ứng Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 44 Xây dựng hệ thống tương tác trực tuyến dụng (trên node lưu trữ 1/n real data + 1/n backup data với n số node). Programming Model: tạo mô hình lập trình cho người phát triển dễ dàng tạo cụm máy tính mà đảm bảo tính thống hệ thống máy tính đơn lẻ. Fast Application Performance: đẩy nhanh hiệu ứng dụng việc lưu trữ dữ liệu in-memories, đảm bảo tốc độ đọc ghi nhanh chóng. Dynamic Scalability (khả mở rộng động): máy tính kết hợp động với nhau, tự động mở rộng thêm node hệ thống scale. Elastic Main Memory: Bộ nhớ cấp phát sử dụng lưu trữ cache có khả co giãn, phù hợp với nhu cầu sử dụng, tối ưu nguồn tài nguyên hệ thống. Hazelcast viết Java dễ dàng tương thích với ứng dụng Java. Hazelcast cung cấp cho người phát triển API làm việc với đối tượng cache giống Java (Map, Set, List, Queue) có khả mở rộng tới hàng trăm node. Việc lập trình Hazelcast giống lập trình máy tính, Hazelcast tự động hóa việc đồng bộ, liên kết node, cung cấp cho người phát triển môi trường làm việc suốt, dễ sử dụng. Biểu đồ hoạt động miêu tả cách cài đặt Hazelcast hệ thống PIS. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 45 Xây dựng hệ thống tương tác trực tuyến Game Server Application requests id = id already in Hazelcast Cache yes no Retrieve id from database Retrieve id from Hazelcast Return id to game server application Store id in Hazelcast Hình 3.8: Biểu đồ hoạt động sử dụng Hazelcast Các dữ liệu thay đổi thông tin user, thông tin application, loại tài sản người chơi… thông tin lần truy xuất từ database cache lại, sau lần hệ thống cần truy xuất vào cache lấy dữ liệu cách nhanh chóng. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 46 Xây dựng hệ thống tương tác trực tuyến Insert to Hazelcast cache Retrieve data from Hazelcast cache Interval Loop Batch insert/ batch update database Evict cache in Hazelcast Hình 3.9: Biểu đồ hoạt động cài đặt buffer insert (update) Hazelcast Biểu đồ mô tả cách hệ thống làm việc với những ghi phải insert (update) nhiều liên tục vào hệ thống log transaction, log game, log actity… Với việc áp dụng Hazelcast, hệ thống insert trực tiếp dữ liệu log vào hệ thống Hazelcast, sau cài đặt khoảng thời gian “interval” định kỳ lấy ghi cache thực batch insert (update) database. Những dữ liệu cache sau insert thành công xóa giải phóng nhớ hệ thống. Thông qua cách hệ thống giảm số lượng lớn câu query giảm thời gian truy vấn database cách đáng kể. 3.3. Cơ chế Extension (Plugin) Khái niệm Extension (Plugin) Extension chế cho phép chạy đoạn mã đóng gói từ bên ngoài, với hệ thống, ứng dụng mà không làm ảnh hưởng đến phần lõi hệ thống, ứng dụng đó. Một hệ thống cho phép cài đặt extension, hệ thống có khả mềm dẻo, cho phép người phát triển tự xây dựng phần mở rộng dựa api mà hệ thống cung cấp. Một Extension tập hợp file cài đặt, cấu hình để extension chạy được. Plugin là phần mở rộng, cắm thêm vào hệ thống đảm nhiệm chức năng, nhiệm vụ cụ thể. Các Plugin chứa Extension. Đặc thù Plugin thực nhiệm vụ cụ thể chúng thường gắn với Class với hành vi thuộc tính riêng nó. Với chế Extension, hệ thống hoàn toàn quản lý bật tắt phần mở rộng, giảm thiểu ngăn ngừa lỗi từ phần mở rộng cách tạo khuôn mẫu đòi hỏi extension phải cài đặt muốn tích hợp vào hệ thống, đảm bảo hệ Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 47 Xây dựng hệ thống tương tác trực tuyến thống hoạt động bình thường extension bị lỗi, từ tăng khả chịu lỗi hệ thống. Extension xuất nhiều hệ thống, ứng dụng, framework khác như: extension hệ điều hành, extension với trình duyệt web (Chorme, Firefox, IE), extension web framework (joomla, wordpress)… Cơ chế extension game server engine trở nên rõ ràng người phát triển xây dựng nhiều game logic khác nhau, nghiệp vụ đa dạng có đặc điểm chung quản lý user, quản lý luồng vào phòng, giao tiếp giữa user hệ thống. Do hệ thống game server cần có chế extension, cho phép người phát triển tùy biến, cài đặt phần mở rộng thông qua API mà hệ thống cung cấp. Cấu trúc thư mục cài đặt phần mở rộng Hình 3.10: Cấu trúc thư mục cài đặt phần mở rộng Theo cấu trúc thư mục phần mở rộng sau đóng gói đặt thư mục extensions. Cấu trúc file phần mở rộng bao gồm: thư mục có tên tương ứng với phần mở rộng, thư mục chứa thư mục khác config lib. Trong thư mục config người phát triển cấu hình plugin, đối tượng sử dụng file Extension.xml. Thư mục lib chứa file .jar file thực thi Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 48 Xây dựng hệ thống tương tác trực tuyến thư viện phần mở rộng. Sau hệ thống có chế để duyệt qua thư mục này, khởi tạo extension chạy server. Cơ chế chạy phần mở rộng Các chương trình viết Java IDE hỗ trợ biên dịch file .java thành file .class dạng byte code, sau sử dụng JVM để thông dịch file .class thành mã máy tương ứng, từ chương trình nạp chạy thông qua CPU. Để chạy phần mở rộng ta sử dụng ClassLoader Java hỗ trợ nạp file class từ file thư viện đóng gói (.jar) vào máy ảo JVM mà không cần phải đặt chúng vào –classpath chạy chương trình. Hình 3.11: Cơ chế load class Java Trong Java có loại Class Loader: Bootstrap Class Loader (Bộ nạp Lớp Khởi động): nạp lớp java (core class) thuộc gói java.lang, java.util, v.v Những lớp phần môi trường thực thi java (JRE). Bootstrap Class Loader triển khai riêng cho tảng nên khác giữa JVM. Extensions Class Loader (Bộ nạp Lớp Mở rộng): nạp lớp java từ thư mục JRE/lib/ext thư mục định nghĩa biến môi trường java.ext.dirs System Class Loader (Application Class Loader): load lớp cấu hình biến môi trường CLASSPATH, -cp, -classpath thuộc tính Class-Path file Manifest gói JAR. Java cung cấp lớp mở rộng từ java.lang.ClassLoader như: java.net.URLClassLoader, java.security.SecureClassLoader… để LTV sử Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 49 Xây dựng hệ thống tương tác trực tuyến dụng để nạp file class lúc chạy chương trình. Ngoài ra, LTV cũng tạo lớp Class Loader riêng cách mở rộng class java.lang.ClassLoader. Biểu đồ hoạt động sau mô tả cách hệ thống chạy phần mở rộng: Browse extension folder Load all file .jar in lib folder load class by URLClassLoader Read config/Extension.xml init and run object by className use URLClassLoader Hình 3.12: Biểu đồ hoạt động load extension Hệ thống duyệt phần mở rộng thư mục extensions, sau đọc vào thư mục lib, load tất file .jar. Sau đó, hệ thống sử dụng URLClassLoader để nạp class file .jar vào máy ảo JVM. Từ hệ thống khởi tạo class từ class name đọc từ file Extension.xml. Nhờ chế đối tượng từ phần mở rộng khởi tạo điều khiển theo logic người phát triển. Kết chương Trong chương này, người viết đồ án trình bày giải pháp trọng tâm giải toán là: nghiên cứu cài đặt chế NIO Network, chế phân cụm dữ liệu áp dụng Hazelcast, chế Extension (Plugin). Trong chương tiếp theo, người viết đồ án xin trình bày cách cài đặt hệ thống đồng thời kiểm thử hiệu hệ thống. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 50 Xây dựng hệ thống tương tác trực tuyến Chương 4: Kết đạt Nội dung trình bày chương này: Cài đặt hệ thống môi trường thực tế Kiểm thử hiệu hệ thống Qua trình nghiên cứu, tìm hiểu hướng dẫn thầy ThS Hoàng Anh Việt anh Nguyễn Hoàng Bách em xây dựng thành công giải pháp tương tác trực tuyến Parrot Interactive Solution. Được hỗ trợ công ty TapStudio, hệ thống game đưa vào hoạt động thời gian. 4.1. Môi trường cài đặt Hệ thống server cài đặt mội trường: Máy chủ: máy server vật lý Supermicro X8DTL (8x Intel® Xeno® CPU E506 2.13 GHz), 16 GB RAM Hệ điều hành: Centos 6.6 x64 Hệ quản trị CSDL: Mysql 5.5 Hệ thống phân cụm tính toán: instance chạy server vật lý, server chạy instance (1 instace độc lập instance nhúng game server) Môi trường thực thi: máy ảo JVM sử dụng JRE 1.7 Trong thư mục cài đặt chương trình (Hình 3.10), người viết đồ án xây dựng file shell script để điều khiển server. Người phát triển dễ dàng khởi động, ngưng tiến trình server thực thi file start.sh, stop.sh 4.2. Cài đặt kiểm thử hệ thống Client Side xây dựng tảng Unity hỗ trợ chạy đa nên tảng, nhiều thiết bị khác nhau. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 51 Xây dựng hệ thống tương tác trực tuyến Giao diện game client Hình 4.1: Màn hình trang chủ thách đấu Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 52 Xây dựng hệ thống tương tác trực tuyến Hình 4.2: Màn hình gửi thách đấu chơi game Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 53 Xây dựng hệ thống tương tác trực tuyến Hình 4.3: Màn hình quà tặng, vòng quay may mắn Hệ thống cài đặt thử nghiệm thành công cho kết chạy ổn định, kho dữ liệu gồm 1500 câu hỏi đa dạng bước đầu đem lại trải niệm thú vị cho người chơi. Hệ thống game đưa vào chạy thử nghiệm từ tháng 11/3/2015 có 924 người đăng ký sử dụng hệ thống. Nhưng sản phẩm phát triển mội trường công ty thời gian phát triển hạn chế nên sản phẩm đạt lượng người dùng khiêm tốn. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 54 Xây dựng hệ thống tương tác trực tuyến Để thư nghiệm khả chịu tải hệ thống, người viết đồ án xây dựng client test cho những thông số sau: Test Message Time (ms) CPU (%) RAM (%) 12000 817 13 1.3 13000 821 20.6 1.3 14000 1005 21.6 1.3 15000 939 24.3 1.3 15000 922 23 1.3 15000 970 25 1.3 16000 960 27.3 1.3 16000 1023 23 1.3 17000 1026 26.3 1.3 10 17000 1105 25.3 1.3 Bảng 7: Các kết kiểm thử hệ thống Như hệ thống xử lý trung bình 15000 message/s, với ước tính máy client thực tế gửi message/s hệ thống xử lý 5000 CCUs. Với số hệ thống đáp ứng mục tiêu đề cho thấy khả thi giải pháp. Kết chương Trong chương người viết đồ án cài đặt kiểm thử hệ thống. Hệ thống vào hoạt động bước đầu chứng khả thi giải pháp Trong chương người viết đồ án xin đưa kết luận, đánh giá đồ án dựa những mục tiêu kết đạt Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 55 Xây dựng hệ thống tương tác trực tuyến KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Đánh giá kết đạt Những mục tiêu đề - Xây dựng giải pháp hệ thống tương tác trực tuyến từ xây dựng game online để demo hệ thống Nghiên cứu cài đặt chế NIO Network đáp ứng số lượng kết nối đồng thời lớn Nghiên cứu hệ thống phân cụm dữ liệu áp dụng giải pháp Hazelcast vào hệ thống Nghiên cứu xây dựng chế Extension (Plugin) cho phép nhà phát triển chạy đoạn mã phần mở rộng. Những kết đạt Hệ thống xây dựng đưa vào chạy thực tế thể qua số lượng người chơi game tương tác với hệ thống Nghiên cứu cài đặt thành công tư tưởng NIO Network vào hệ thống PIS xử lý 5000 CCUs Áp dụng thành công Hazelcast vào việc xây dựng hệ thống phân cụm chia sẻ dữ liệu in-memories Xây dựng áp dụng chế Extensions (Plugin) cho phép nhà phát triển chạy đoạn mã phần mở rộng. Những vấn đề tồn Do thời gian phát triển ngắn sản phẩm phụ thuộc vào phát triển công ty nên hệ thống đạt lượng người dùng khiêm tốn. Bên cạnh đó, hệ thống nhiều hạn chế cần phải cải thiện hiệu hệ thống, chế xử lý message cần tối ưu nhằm tăng tốc độ truyền nhận, tư tưởng extensions mức đơn giản, người phát triển tùy biến với hệ thống chưa linh hoạt. Phương hướng phát triển Với phát triển vũ bão Internet mạng di động nay, phát triển hệ thống tương tác online đóng vai trò quan trọng việc phát triển kinh tế nước ta, phương hướng phát triển hệ thống sau: Tiếp tục tối ưu, cải thiện hiệu hệ thống Tiếp tục hoàn thiện chế Extension (Plugin). Cơ chế đóng gói message cần tối ưu để tăng tốc truyền nhận. Phát triển hệ thống online, không game online mà tới xây dựng hệ thống giáo dục online Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 56 Xây dựng hệ thống tương tác trực tuyến TÀI LIỆU THAM KHẢO [1] “Việt Nam vào top 20 quốc gia có nhiều người dùng Internet nhất,” http://netnam.vn/index.php/en/news/about-netnam/52-bao-chinoi-v-netnam/328-viet-nam-vao-top-20-quoc-gia-co-nhieu-nguoidung-internet-nhat.html. [2] “Thống kê Việt Nam có 27,5 triệu thuê bao sử dụng 3G,” http://dangky3gmobifone.net/thong-ke-viet-nam-co-27-trieu-thue-baosu-dung-3g/. [3] “Thống kê mạng xã hội Việt Nam đầu năm 2014,” http://vanmy.net/social-media/thong-ke-moi-nhat-ve-mang-xa-hoi-taiviet-nam-dau-nam-2014/. [4] “Bùng nổ dịch vụ OTT,” http://nld.com.vn/khoa-hoc/bung-nodich-vu-ott-20130313093110579.htm. [5] A. Leonard, Pro Java NIO.2, 2011. [6] "SmartFoxServer Shop" http://www.smartfoxserver.com/shop/ index.php?dispatch=categories.view&category_id=2. [7] "PhotonServer OnPremise/Pricing. Pricing" https://www.exitgames.com/en/ [8] "Java Extensions" https://docs.oracle.com/javase/tutorial/ext/. [9] "Hazelcast," http://hazelcast.com/products/hazelcast/. [10] “Công nghệ Clustering cho hệ thống máy tính,” http://forum.thegioimaychu.vn/high-avability-failover-clustering/6165cong-nghe-clustering-cho-cac-he-thong-may-tinh.html. [11] “Giao thức TCP/IP,” http://sinhvienit.net/@tut/mang-maytinh/mang-can-ban/131-chuong-7-giao-thuc-tcp-ip.html. Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 57 [...]... triển được một Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 11 Xây dựng hệ thống tương tác trực tuyến giải pháp hỗ trợ xây dựng các hệ thống tương tác trực tuyến, từ đó xây dựng một game online để demo hệ thống 1.3 Phương hướng giải quyết bài toán Để phát triển được một giải pháp hỗ trợ xây dựng các hệ thống tương tác trực tuyến, người viết đồ án phải giải quyết một số vấn đề cụ thể như: duy.. .Xây dựng hệ thống tương tác trực tuyến Bên cạnh đó, các dịch vụ giải trí online có tính tương tác cao phát triển mạnh, xuất hiện ngày nhiều càng và đa dạng như chơi game online, video call, xem TV trực tuyến, các chương trình game show, trò chuyện với thần tượng… Một số giải pháp xây dựng hệ thống tương tác trực tuyến Sự đa dạng trong các dịch vụ tương tác trực tuyến đòi khỏi các... 20102156 Khóa 55 19 Xây dựng hệ thống tương tác trực tuyến 4 device các thiết bị mà người dùng đăng nhập tương tác với hệ thống 5 user_device cho biết user đang sở hữu các thiết bị nào 6 permission định nghĩa các quyền truy cập toàn user trong hệ thống, khi cần quản lý quyền đăng nhập các hệ thống front-end 7 user_permission thông tin những người phần quyền, được phân quyền trong hệ thống 8 application... nghiệm đã xây dựng được 2.2.1 Kiến trúc hệ thống 2.2.1.1 Kiến trúc tổng quan Cluster Cluster Hazelcast DataGrid Hazelcast DataGrid Cluster Server Server Hazelcast DataGrid Mysql Database Payment WebService Server Internet WebBrowser Mobile Desktop Tablet Hình 2.2: Kiến trúc tổng quan hệ thống Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 14 Xây dựng hệ thống tương tác trực tuyến Hệ thống. .. usecase hệ thống Hệ thống (game engine) cung cấp các API cho người phát triển để giao tiếp với hệ thống, từ đó người phát triển có thể thực hiện các chức năng sau: Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 18 Xây dựng hệ thống tương tác trực tuyến Quản lý các phần mở rộng (extensions): người phát triển có thể quản lý phần mở rộng thông qua file config Extension.xml Bộ ExtensionLoader có tác dụng... tương tác trực tuyến, một số giải pháp sẵn có trên thị trường và mục tiêu của đồ án Sang chương 2 người viết đồ án sẽ trình bày về phân tích, thiết kế hệ thống cho phần engine và phần mở rộng game online Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 12 Xây dựng hệ thống tương tác trực tuyến Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG Nội dung chương này trình bày những vấn đề sau: Mô tả hệ thống PIS Phân... trì hệ thống 2.2 Phân tích thiết kế hệ thống Bài báo cáo này sử dụng phương pháp phân tích thiết kế hướng đối tượng, sử dụng các kí pháp của UML 2.0 để mô hình hóa, đặc tả hệ thống Các bước tiến hành thiết kế hệ thống được xây dựng theo mô hình prototype trong quy trình phát triển phần mềm Dựa trên quy trình này người viết đồ án đưa ra các mô hình phân tích, mô hình thiết kế, tiến hành xây dựng hệ thống. .. trong cùng hệ thống, khi hệ thống có nhiều game) B7b: Yêu cầu người dùng nhập username do tài khoản máy chưa được đăng ký Hệ thống yêu cầu người dùng đăng ký 1 username cùng với tài khoản máy này, sau khi đăng ký xong thực hiện tiếp theo B8 B8: Người dùng đăng nhập thành công client chuyển sang màn hình chính Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 25 Xây dựng hệ thống tương tác trực tuyến 2.2.5.2... thanh toán, kết bạn, tặng quà Để xây dựng PIS (Parrot Interactive Solution) người viết đồ án lựa chọn ngôn ngữ lập trình Java bởi sự tiện lợi và sức mạnh khi làm việc với hệ thống lớn cần đòi hỏi tốc độ cao, khả năng xử lý song song, đa tiến trình rất phù hợp với hệ thống online Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 13 Xây dựng hệ thống tương tác trực tuyến Mặc khác, Java là một ngôn ngữ... database 2.2.4 Thiết kế phần mở rộng Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 20 Xây dựng hệ thống tương tác trực tuyến Thông qua kiến trúc giải pháp trên, người viết đồ án tiến hành áp dụng xây dựng phần mở rộng là game “Đấu Trí Online” Biểu đồ usecase game Đấu Trí Online Với phần mở rộng này, hệ thống có thêm tác nhân là người dùng cuối, là người chơi game “Đấu Trí Online” Biểu đồ usecase sau . được một Xây dựng hệ thống tương tác trực tuyến Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 12 giải pháp hỗ trợ xây dựng các hệ thống tương tác trực tuyến, từ đó xây dựng một game. tài 1.1. Đặt vấn đề 1.1.1. Khái niệm hệ thống tương tác trực tuyến Hệ thống tương tác trực tuyến là hệ thống cho phép người dùng tương tác, kết nối trực tiếp với nhiều người khác trong việc. các dịch vụ tương tác trực tuyến. Mục tiêu của đồ án là pháp triển một giải pháp hỗ trợ xây dựng các hệ thống tương tác trực tuyến, từ đó đi tới xây dựng một game online để demo hệ thống. Trong