Bao cao do an Phát triển hệ thống game server Online

3,501 views
3,363 views

Published on

Published in: Education
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,501
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
267
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Bao cao do an Phát triển hệ thống game server Online

  1. 1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ──────── * ─────── ĐỒ ÁNTỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TINPHÁT TRIỂN HỆ THỐNG GAME SERVER ONLINE CHO THIẾT BỊ DI ĐỘNG Sinh viên thực hiện : Phạm Ngọc Hoàng Lớp KSTN-CNTT-K52 Giáo viên hướng dẫn: ThS Lê Tấn Hùng HÀ NỘI 6 - 2012
  2. 2. PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP1. Thông tin về sinh viênHọ và tên sinh viên: Phạm Ngọc HoàngĐiện thoại liên lạc: 01656110452 Email: hoangpn412@gmail.comLớp: KSTN-CNTT-K52 Hệ đào tạo: Đại học chính quyĐồ án tốt nghiệp được thực hiện tại: Trung tâm đào tạo tài năng và Chất lượngcao – Đại học Bách Khoa Hà Nội.Thời gian làm ĐATN: Từ ngày 1/3/2012 đến 31/5 /20122. Mục đích nội dung của ĐATNĐồ án tốt nghiệp tập trung nghiên cứ và xây dựng hệ thống Game server Online trênmobile. Mục đích của đề tài là xây dựng được một hệ thống hoàn chỉnh, có thể đưara thì trường game, cạnh tranh với các game online mobile hiện có.3. Các nhiệm vụ cụ thể của ĐATN- Nghiên cứu mô hình client Server, giao thức TCP/IP- Nghiên cứu công nghệ Java, J2ME- Nghiên cứu mô hình truyền tin qua SOCKET- Phân tích, thiết kế hệ thống của hệ thống game server online trên mobile.- Xây dựng chương trình và kiểm thử.- Đưa sản phẩm chạy thật trên thực tế.- Tổng kết và đánh giá.4. Lời cam đoan của sinh viên:Tôi – Phạm Ngọc Hoàng - cam kết ĐATN là công trình nghiên cứu của bản thân tôidưới sự hướng dẫn của học ThS Lê Tấn Hùng.Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bấtkỳ công trình nào khác. Hà Nội, ngày tháng 6 năm 2012 Tác giả ĐATN Phạm Ngọc Hoàng5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phépbảo vệ: Hà Nội, ngày tháng 6 năm 2012 Giáo viên hướng dẫn ThS Lê Tấn Hùng 2Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  3. 3. LỜI CẢM ƠN Để có thể hoàn thành đồ án tốt nghiệp này. Em xin chân thành cảm ơn cácthầy cô giáo trong trường đại học Bách Khoa Hà Nội nói chung, khoa công nghệthông tin nói riêng đã đào tạo cho em những kiến thức bổ ích, những kinh nghiệmquý báu trong suốt thời gian học tập và rèn luyện. Em xin gửi lời cảm ơn tới thầy giáo, ThS Lê Tấn Hùng – Giảng viên bộ môncông nghệ phần mềm, khoa công nghệ thông tin đại học Bách Khoa Hà Nội đã tậntình hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp.Em cũng xin gửi lờicảm ơn chân thành tới các anh chị và các bạn trong công ty cổ phần giải pháp côngnghệ thông tin và truyền thông SunNet đã giúp đỡ, hỗ trợ em rất nhiều trong quátrình làm đồ án. Do thời gian có hạn, những kinh nghiệm tích lũy từ thực tế còn chưa nhiềunên trong quá trình làm đồ án vẫn còn gặp nhiều sai sót. Em rất mong nhận được sựđóng góp ý kiến, những hướng dẫn chỉ bảo từ phía các thầy cô giáo. Em xin chân thành cảm ơn ! Hà Nội, tháng 6 năm 2010 Sinh viên: Phạm Ngọc Hoàng 3Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  4. 4. TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Ngày nay, công nghệ thông tin đang ngày một phát triển, đặc biệt là sự phát triểntrong lĩnh vực di động. Với sự phát triển không ngừng của các mạng viễn thông, sự pháttriển của mạng Internet 3G, GPRS, Wifi, các dòng điện thoại cấu hình cao ngày càngphong phú, đa dạng về tính năng và chủng loại. Đồ án tốt nghiệp của em sẽ tập trung xây dựng một hệ thống game online dành chođiện thoại di động. Nội dung đồ án bao gồm: Phần 1: Đặt vấn đề, định hƣớng và giải pháp: Chương này tập trung đưa ra cái nhìn tổng quát về Game mobile, bao gồm các kháiniệm về Game Mobile, sự phát triển, tiềm năng của thị trường game Mobile đặc biệt là thịtrường game Mobile Online tại Việt Nam. Phát biểu bài toán xây dựng hệ thống game online trên mobile, đưa ra hướng pháttriển sản phẩm, giải pháp giải quyết bài toán. Giới thiệu về các nền tảng phát triển ứng dụng. Phần 2: Phân tích và thiết kế hệ thống: Chương này tập trung khảo sát và phân tích, thiết kế hệ thống game server online.Phần đầu tập trung phân tích các chức năng của hệ thống cần phải có, quy trình hoạt độngcủa các chức năng cụ thể như thế nào. Phần hai đưa ra mô hình kiến trúc hệ thống, thiết kế server, thiết kế cơ sở dữ liệu,thiết kế Client và các module chức năng cụ thể của hệ thống. Phần 3: Các kết quả đạt đƣợc Phần này giới thiệu về môi trường cài đặt hệ thống, kết quả cài đặt thử nghiệm hệthống, kết quả thực nghiệm khi chạy trên môi trường thực tế. Một số hình ảnh về giao diệnphiên bản Client, giao diện Tool report hệ thống. Kết luận Nhìn lại những gì đã làm được trong đồ án tốt nghiệp và những gì còn chưa làmđược. Đưa ra những ưu, nhược điểm và phương hướng phát triển đồ án trong tương lai. 4Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  5. 5. ABSTRACT OF THESIS Nowadays the significant development has been achieved in the informationtechnology, especially the mobile area. The emergence and increasing advance oftelecommunication networks including 3G, GPRS and Wifi have brought about greatchange in functionality and diversity of mobile phones and portable devices. My thesis mainly focuses on building an online-game for mobile devices. The thesis is organized as follows: Part 1: Problem statement, orientation and solution: This chapter gives some overview about Mobile Game, including some basicconcepts about Game Mobile, its recent development and the potential of Game Onlinemarket in Vietnam. It also states some major problems of building Game Online on mobile devices,suggests several development orientation of Game Online product, the solution for theproblem and introduces the platform for application development. Part 2: System design and analysis This chapter focuses on designing and analyzing game online server system. The first part of the chapter makes an analysis of required functionalities andspecific functions of the system. The second part puts forward an architecture model, server design, database design,client design and specific modules of the system. Part 3: Results This chapter shows the experimental environment, some experiment results in realenvironment, pictures of Client interfaces and Tool report of the system. Conclusion In this section, I summarize major results of my thesis and analyze its strengths andweaknesses and give some directions for future development. 5Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  6. 6. MỤC LỤCPHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP...............................................2LỜI CẢM ƠN ............................................................................................................3 TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP .....................................................4 ABSTRACT OF THESIS ................................................................................5MỤC LỤC ..................................................................................................................6DANH MỤC CÁC BẢNG ........................................................................................8DANH MỤC HÌNH VẼ ............................................................................................9DANH MỤC TỪ VIẾT TẮT..................................................................................10MỞ ĐẦU ..................................................................................................................11Chƣơng 1: ĐẶT VẤN ĐỀ, ĐỊNH HƢỚNG VÀ GIẢI PHÁP .............................12 1. Tổng quan về Game Mobile: .....................................................................12 1.1. Khái niệm Game Mobile .........................................................................12 1.2. Tiềm năng thị trường Game Mobile .......................................................12 2. Phát biểu bài toán .......................................................................................13 3. Định hướng phát triển đề tài ......................................................................14 4. Giải pháp giải quyết bài toán .....................................................................14Chƣơng 2: NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG..........................................15 1. Mô hình Client – Server ....................................................................................15 2. Giao thức TCP/IP............................................................................................... 15 2.1. Giao thức điều khiển truyền dữ liệu TCP ...............................................16 2.2. Giao thức UDP ........................................................................................20 3. Mô hình truyền tin SOCKET .............................................................................21 4. Ngôn ngữ lập trình Java ....................................................................................23 5. Công nghệ J2ME .......................................................................................24Chƣơng 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .......................................27 1. Phân tích hệ thống......................................................................................27 1.1 Biểu đồ phân rã chức năng .......................................................................29 1.1.1 Chức năng người dùng: .........................................................................29 1.1.2. Chức năng report hệ thống ..................................................................39 1.1.3. Chức năng chăm sóc khách hàng ........................................................41 2. Thiết kế hệ thống .......................................................................................42 2.1. Kiến trúc hệ thống.................................................................................42 2.1.1. Kiến trúc tổng quan ...........................................................................42 6Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  7. 7. 2.1.2. Kiến trúc Slave Server:......................................................................44 2.2. Xây dựng biểu đồ lớp ...........................................................................46 2.2.1. Xây dựng biểu đồ lớp cho server ......................................................46 2.2.1.1. Thiết kế gói SlaveServer .............................................................. 47 2.2.1.2. Thiết kế gói DataEngine .............................................................. 48 2.2.1.3. Thiết kế gói FetchData .................................................................49 2.2.1.4. Thiết kế gói Log ...........................................................................50 2.2.2. Xây dựng biểu đồ lớp cho Client ......................................................51 2.3. Thiết kế Database..................................................................................52 2.3.1. Database server user ..........................................................................53 2.3.2. Database server content .....................................................................56 2.4. Thiết kế gói tin ......................................................................................57Chƣơng 4: KẾT QUẢ ĐẠT ĐƢỢC.......................................................................58 1. Môi trường cài đặt hệ thống.......................................................................58 2. Cài đặt và thử nghiệm hệ thống .................................................................58 3. Kết quả thực nghiệm ..................................................................................62KẾT LUẬN ..............................................................................................................66TÀI LIỆU THAM KHẢO ......................................................................................68 7Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  8. 8. DANH MỤC CÁC BẢNGBảng 1: Bảng liệt kê một vài cổng TCP phổ biến .....................................................17Bảng 2: Bảng mô tả các lớp trong gói Slave Server. ................................................48Bảng 3: Bảng mô tả các lớp trong gói DataEngine. ................................................49Bảng 4: Bảng mô tả các lớp trong gói FetchData. ...................................................50Bảng 5: Bảng mô tả các lớp trong gói Log. .............................................................. 51Bảng 6: Bảng mô tả các lớp trong thiết kế Client.....................................................52Bảng 7: Bảng mô tả các table trong database server user. ......................................56Bảng 8: Bảng mô tả các table trong Database server content. ................................ 57 8Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  9. 9. DANH MỤC HÌNH VẼHình 1: Mô hình Client – server ...............................................................................15Hình 2: Cổng truy nhập dịch vụ TCP. ......................................................................16Hình 3: Dạng thức của segment TCP. ......................................................................19Hình 4: Dạng thức của gói tin UDP. ........................................................................20Hình 5: Mô hình quan hệ họ giao thức TCP/IP. .......................................................21Hình 6: Mô hình truyền tin Socket. ...........................................................................21Hình 7: Biểu đồ Use Case của hệ thống. ..................................................................27Hình 8: Biểu đồ phân rã chức năng của hệ thống. ...................................................29Hình 9: Biểu đồ tuần tự mô tả quá trình đăng nhập. ................................................30Hình 10: Biểu đồ tuần tự mô tả quá trình đăng ký tài khoản miễn phí. ...................31Hình 11: Biều đồ tuần tự mô tả quá trình đăng ký tài khoản qua tổng đài SMS......32Hình 12: Biểu đồ tuần tự mô tả quá trình lấy thông tin ngƣời chơi, Top User ........34Hình 13: Biểu đồ tuần tự mô tả quá trình mua đồ, lấy thông tin hòm đồ. ................35Hình 14: Biểu đồ tuần tự mô tả quá trình kết bạn. ...................................................36Hình 15: Biểu đồ mô tả tuần tự mô tả quá trình chơi game. ....................................38Hình 16: Kiến trúc tổng quan hệ thống. ...................................................................42Hình 17: Mô hình kiến trúc Slave Server. .................................................................44Hình 18: Biểu đồ kiến trúc Client. ............................................................................46Hình 19: Các packet của server ................................................................................46Hình 20: Biểu đồ class cho gói slave server .............................................................47Hình 21: Biểu đồ class cho gói DataEngine. ............................................................48Hình 22: Biểu đồ class gói FetchData. .....................................................................50Hình 23: Biểu đồ class gói Log. ................................................................................50Hình 24: Biểu đồ Class thiết kế Client. .....................................................................51Hình 25: Biểu đồ thiết kế database server user. .......................................................53Hình 26: Biểu đồ thiết kế database server content. ..................................................56Hình 27: Giao diện đăng nhập nhập, đăng ký, đổi mật khẩu, chọn server. .............59Hình 28: Giao diện nhân vật đi lại trong thành phố. ...............................................59Hình 29: Giao diện bản đồ, chọn khu vực. ............................................................... 60Hình 30: Giao diện xem thông tin cá nhân, kết bạn. ................................................60Hình 31: Giao diện hộp thƣ & bạn bè, menu các action sử dụng trong game. ........60Hình 32: Giao diện chọn phòng chơi, bàn chơi........................................................61Hình 33: Giao diện phòng chờ..................................................................................61Hình 34: Giao diện chơi game Ai là triệu phú, đánh bài .........................................62Hình 35: Giao diện trang Report hệ thống. .............................................................. 62 9Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  10. 10. DANH MỤC TỪ VIẾT TẮTSTT Từ viết tắt Ý nghĩa1 HTTP Hypertext Transfer Protocol: Giao thức truyền tải siêu văn bản.2 TCP Transmission Control Protocol: Giao thức điều khiển truyền vận, là một trong các giao thức cốt lõi của bộ giao thức TCP/IP3 IP Internet Protocol4 UDP User Datagram Protocol5 OOP Object-Oriented Programming: ngôn ngữ lập trình hướng đối tượng6 JVM Java Vitual Machine: bộ máy ảo Java7 CPU Central Processing Unit: đơn vị xử lý trung tâm8 J2SE Java 2 Standard Edition9 J2EE Java 2 Enterprise Edition10 J2ME Java 2 Micro Edition11 CLDC Connected Limited Device Configuration12 CDC Connected Device Configuration13 MIDP Mobile Information Device Profile14 API Application Programming Interface15 RGB Reg Green Blue (Ảnh RGB)16 SMS Short Message Service17 MYSQL MicroSoft SQL Server 10Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  11. 11. MỞ ĐẦU Hiện nay với sự phát triển nhanh chóng của khoa học công nghệ, các thiết bịđiện thoại di động ngày càng trở nên phổ biến. Các mạng viễn thông di động đã phủsóng tới từng ngõ ngách trên mọi miền tổ quốc. Cùng với sự phát triển của mạng3G, GPRS và sự ra đời của các dòng điện thoại đời cao ngày càng nhiều. Chiếc điệnthoại không chỉ được sử dụng với chức năng nghe gọi thông thường mà còn được sửdụng với rất nhiều mục đích giải trí như nghe nhạc, chơi game, … Từ nhu cầu đó, đã có rất nhiều công ty lớn nhỏ đã cho ra đời hàng loạt cácGame mobile để cung cấp cho người sử dụng. Tuy vậy, những Game Offline dườngnhư vẫn chưa thể đáp ứng hết nhu cầu của người dùng. Với mong muốn có thể kếtnối người dùng bằng chính chiếc điện thoại di động, em đã lựa chọn đề tài tốtnghiệp “Phát triển hệ thống Game Server Online trên Mobile”. Mục tiêu của đề tàilà hướng tới xây dựng thành công một hệ thống server game có khả năng đáp ứngtốt nhu cầu chơi game trên thiết bị di động. Điều này đòi hỏi người thực hiện khôngchỉ tập trung nghiên cứu và xây dựng hệ thống về phía Server mà còn phải có sựhiểu biết sâu rộng về lập trình ứng dụng trên các thiết bị di động. Trong quá trình thực hiện đề tài, em đã tìm hiểu để xây dựng kiến trúc cho hệthống server game, kiến trúc Client – Server, các giao thức truyền tin giữa Client –Server và các kiến thức để xây dựng phiên bản Client cho game cho thiết bị di độngtrên nền tảng J2ME. Cho đến thời điểm hiện tại, hệ thống đã được hoàn thành và đã được đưa đếntay người sử dụng và nhận được sự đón nhận khá tích cực từ phía khách hàng. Tuynhiên, do hệ thống rất lớn nên những kết quả đã đạt được vẫn còn nhiều nhượcđiểm. Trong thời gian tới hệ thống sẽ vẫn được tiếp tục phát triển để hoàn thiện hơnnữa. 11Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  12. 12. Chƣơng 1: ĐẶT VẤN ĐỀ, ĐỊNH HƢỚNG VÀ GIẢI PHÁP1. Tổng quan về Game Mobile:1.1. Khái niệm Game Mobile Game mobile là từ dùng để chỉ những trò chơi giải trí được dùng trên cácthiết bị di động, điện thoại thông minh, PDA, máy tính bảng, máy nghe nhạc đaphương tiện (MP4) hoặc máy tính xách tay. Điều này không bao gồm các trò chơidành riêng cho các dòng máy, hệ thống máy chơi game cầm tay như Nitendo DShoặc PlayStation Portable.1.2. Tiềm năng thị trƣờng Game Mobile Theo kết quả nghiên cứu thị trường quý II/2011 của công ty nghiên cứu thịtrường Nielsen, game đã trở thành hạng mục được sử dụng phổ biến nhất trong cácloại phần mềm ứng dụng cho các thiết bị điện thoại di động. Theo số liệu thống kê: 64% người tham gia khảo sát của Nielsen cho biết họ đã tải ít nhất một gametrong 30 ngày gần nhất, vượt qua tỉ lệ tương ứng của các ứng dụng thời tiết (60%)và mạng xã hội (56%). 93% người tải ứng dụng khẳng định họ sẵn sang trả tiền cho game mà họđang chơi.Thị trường Game Mobile tại Việt Nam Theo ước tính của VTC Mobile, năm 2010, tổng doanh thu trên toàn thịtrường game di động của Việt Nam đạt 120 tỷ đồng trên tổng số 110 triệu thuê baodi động. Nếu so với con số khoảng 2000 tỷ đồng mà ngành game PC đạt được trêntổng số chưa đến 10 triệu game thủ thì đây là một con số khá khiêm tốn.Tại sao Game Mobile chưa phát triển tại Việt Nam ??? Phân chia doanh thu thấp: Sự phát triển của toàn ngành nội dung số trên diđộng đã và đang bị cản trở bởi tỉ lệ phân chia doanh thu mà các nhà mạng áp đặtcho các doanh nghiệp cung cấp dịch vụ nội dung. Game mobile cũng không làngoại lệ. Với mức tỷ lệ nhận về từ nhà mạng khoảng từ 45-55%, các doanh nghiệpkinh doanh game chỉ biết “đi đàm phán” để có được các game thay vì mạo hiểm đầutư sản xuất, phát triển các game thuần Việt. Game chùa tràn lan: Game mobile phổ biến tại Việt Nam là các game Java.Quá trình bẻ khóa các game Java là tương đối dễ, do các game Chùa có cùng cáchchơi, cùng thể loại nhưng không có bản quyền, được phổ biến rộng rãi trên mạng,đặc biệt các diễn đàn như tinhte.vn, ddth.com, vozforum.com. Điều này một mặtảnh hưởng trực tiếp đến doanh thu của các doanh nghiệp trong ngành, một mặt còn 12Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  13. 13. hạ thấp uy tín của thị trường Việt Nam trong mắt các nhà cung cấp Game nướcngoài.Sự ra đời của Game online trên mobile là một bƣớc ngoặt Với những quy định quản lý ngày càng chặt chẽ đối với game online trênmáy tính, game online trên di điện thoại di động được coi là một hướng đi mớikhông ít tiềm năng với những nhà kinh doanh game. Để thu hút khách hang, hầu hếtcác nhà cung cấp đều miễn phí đăng ký cho người chơi. Trong quá trình chơi, ngườidung thường mua các vật phẩm để nâng cấp vũ khí, sức chiến đấu hoặc tính năngcho nhân vật của mình và phải trả chi phí dịch vụ dữ liệu cho nhà mạng. Hiện nay, các dòng điện thoại cao cấp, smartphone, Iphone đã đang dần dầnchiếm được thị phần người dùng di động. Sự ra đời của mạng 3G là điều kiện vôcùng thuận lợi cho sự phát triển của Game Online Mobile.Game Online Mobile kochỉ chơi được trên một loại dòng máy, nó có khả năng hỗ trợ trên các nền tảng khácnhau: Java, Android, Iphone, thậm chí là HTML5 trên PC. Game online cũng giải quyết được 2 bài toán mà Game offline đang mắcphải, đó là phân chia doanh thu và tình trạng crack game. Với cơ chế quản lý toànbộ tài khoản người dùng, game play trên server, việc crack game đã gần như đượcgiải quyết hoàn toàn. Cùng sự ra đời của các cổng thanh toán qua thẻ cào như Ngânlượng, VietPay với mức phí trên mỗi thẻ cào chỉ là 10% (so với mức thu 45-55%của nhà mạng qua tin nhắn SMS) thì bài toán phân chia doanh thu đã được giảiquyết một cách thỏa đáng. Hiện trên thị trường những game như “Minh Châu tam quốc” do Minh Châugame phát hành, “Báu vật thứ 7” của Phong Phú Sắc Việt, “Chúa Nhẫn” của VTCmobile, “Avatar” của Teamobi đang trở thành những game hot được cộng đồnggame thủ săn lùng.Theo ước tính doanh thu của các Game online này lên đến hàngchục tỷ đồng mỗi tháng.2. Phát biểu bài toán Như vậy, qua phân tích, đánh giá về tiềm năng, những ưu, nhược điểm của thịtrường Game Mobile Online tại Việt Nam. Mục tiêu của đồ án tốt nghiệp là xâydựng một Game online trên Mobile hoàn chỉnh. Đặc điểm của đường truyền mạng của mạng di động rất kém và không ổn định,do đó, các game được chọn để đưa vào hệ thống Game online là những Game nhỏ,cách chơi đơn giản, không cần đảm bảo tính thời gian thực. Trong khuôn khổ đồ án của mình, em lựa chọn phát triển Game Online trên nềntảng J2ME. Trong Game là một thành phố ảo mà trong đó cư dân và các bạn trẻ trênkhắp mọi miền đất nước cùng online trên chiếc điện thoại di động của mình. Khitham gia trò chơi, người chơi sẽ được thể hiện mình, bày tỏ tình cảm, nhắn tin, chat 13Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  14. 14. chít, kết bạn,…Ngoài ra game còn có các hoạt động khác như xem bói, chơi xổ số,đánh bài, chơi ai là triệu phú, …3. Định hƣớng phát triển đề tài Để xây dựng được một hệ thống Game Online, nhiệm vụ đặt ra là xây dựngmột hệ thống Server, một hệ thống cơ sở dữ liệu (database) và ít nhất một phiên bảnClient cho người dùng sử dụng. Ngoải ra, cần xây dựng một hệ thống thanh toánnạp tiền cho người dùng. Đây là phần không thể thiếu đối với một game trênmobile. Vấn đề đặt ra với hệ thống là làm thế nào để xây dựng được một hệ thống GameOnline có khả năng chịu tải lớn, khả năng chịu lỗi cao, tốc độ Game đáp ứng đượcnhu cầu của người sử dụng. Server có khả năng kết nối được với nhiều loại thiết bịkhác nhau trên các nền tảng khác nhau.4. Giải pháp giải quyết bài toán Để xây dựng được được hệ thống như đã nêu trên, ta cần xây dựng: - Một bản Client trên nền tảng J2ME - Một server cho Game - Mô hình truyền dữ liệu giữa Client và Server - Mô hình server để đáp ứng được các yêu cầu về tốc độ đáp ứng game, khả năng chịu tải, chịu lỗi. - Xây dựng bảng cơ sở dữ liệu cho game - Xây dựng các Tool để quản trị hệ thống Điều quan trọng nhất đối với hệ thống Game online là khả năng chịu tải. Đểgiải quyết bài toán đó, chúng ta đưa ra mô hình phân chia server thành càng servercon để giảm tải cho hệ thống. 14Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  15. 15. Chƣơng 2: NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG1. Mô hình Client – Server Các ứng dụng mạng thường hoạt động theo mô hình client/server như thưđiện tử, truyền nhận tập tin, game trên mạng, … Mô hình này gồm có một chươngtrình đóng vai trò là client và một chương trình đóng vai trò là server. Hai chươngtrình này sẽ giao tiếp với nhau thông qua mạng. Chương trình server đóng vai tròcung cấp dịch vụ. Chương trình này luôn luôn lắng nghe các yêu cầu từ phía Client,rồi tính toán và đáp trả kết quả tương ứng. Chương trình client cần một dịch vụ vàgửi yêu cầu dịch vụ tới chương trình server và đợi đáp trả từ server. Như vậy, quátrình trao đổi dữ liệu giữa client/server bao gồm: - Truyền một yêu cầu từ chương trình client tới chương trình server - Yêu cầu được server xử lý - Truyền đáp ứng cho client HÌNH 1 : MÔ HÌNH CLIENT – SERVER Mô hình truyền tin này thực hiện truyền hai thông điệp qua lại giữa client vàserver một cách đồng bộ hóa. Chương trình server nhận được thông điệp từ clientthì nó phát ra yêu cầu client chuyển sang trạng thái chờ (tạm dừng) cho tới khiclient nhận được thông điệp đáp ứng do server gửi về. Mô hình client/server thườngđược cài đặt dựa trên các thao tác cơ bản là gửi (send) và nhận (receive).2. Giao thức TCP/IP Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet và đượcdùng như giao thức mạng và vận chuyển trên mạng Internet. TCP (Transmission 15Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  16. 16. Control Protocol) là giao thức thuộc tầng vận chuyển và IP (Internet Protocol) làgiao thức thuộc tầng mạng của mô hình OSI. Họ giao thức TCP/IP hiện nay là giaothức được sử dụng rộng rãi nhất để liên kết các máy tính và mạng. Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thứcTCP/IP để liên kết với nhau thông qua nhiều hệ thống mạng với kỹ thuật khác nhau.Giao thức TCP/IP thực chất là một họ giao thức cho phép các hệ thống mạng cùnglàm việc với nhau thông qua việc cung cấp phương tiện truyền thông liên mạng.2.1. Giao thức điều khiển truyền dữ liệu TCP TCP là một giao thức “có liên kết” (connection - oriented), nghĩa là cần phảithiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với nhau.Một tiến trình ứng dụng trong một máy tính truy nhập vào các dịch vụ của giao thứcTCP thông qua một cổng (port) của TCP. Số hiệu cổng TCP được thể hiện bởi 2bytes. HÌNH 2: CỔNG TRUY NHẬP DỊCH VỤ TCP. Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket)duy nhất trong liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết logic giữamột cặp đầu nối TCP/IP. Một đầu nối TCP/IP có thể tham gia nhiều liên kết với cácđầu nối TCP/IP ở xa khác nhau. Trước khi truyền dữ liệu giữa 2 trạm cần phải thiếtlập một liên kết TCP giữa chúng và khi không còn nhu cầu truyền dữ liệu thì liênkết đó sẽ được giải phóng. Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi(function calls) trong đó có các hàm yêu cầu để yêu cầu, để trả lời. Trong mỗi hàmcòn có các tham số dành cho việc trao đổi dữ liệu Các bước thực hiện để thiết lập một liên kết TCP/IP. Thiết lập một liên kếtmới có thể được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động(passive). 16Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  17. 17. Phương thức bị động: người sử dụng yêu cầu TCP chờ đợi một yêu cầu liênkết gửi đến từ xa thông qua một đầu nối TCP/IP (tại chỗ). Người sử dụng dùng hàmpassive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức antoàn). Phương thức chủ động: người sử dụng yêu cầu TCP mở một liên kết với mộtđầu nối TCP/IP ở xa. Liên kết sẽ được xác lập nếu có một hàm Passive Open tươngứng đã được thực hiện tại đầu nối TCP/IP ở xa đó.Số hiệu cổng Mô tả0 Reserved5 Remote job entry7 Echo9 Discard11 Systat13 Daytime15 Nestat17 Quotd (quote odd day)20 ftp-data21 ftp (control)23 Telnet25 SMTP37 Time53 Name Server102 ISO - TSAP103 X.400104 X.400 Sending111 Sun RPC139 Net BIOS Session source160-223 Reserved BẢNG 1: BẢNG LIỆT KÊ MỘT VÀI CỔNG TCP PHỔ BIẾN Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông sốtrả lời từ TCP. Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cụcbộ (local connection name) cho liên kết được yêu cầu. Thông số này về sau được 17Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  18. 18. dùng để tham chiếu tới liên kết đó. (Trong trường hợp nếu TCP không thể thiết lậpđược liên kết yêu cầu thì nó phải gửi tham số Open Failure để thông báo).Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Success được dùng đểthông báo liên kết đã được thiết lập thành công. Thông báo này được chuyển đếntrong cả hai trường hợp bị động và chủ động. Sau khi một liên kết được mở, việctruyền dữ liệu trên liên kết đó có thể được thực hiện. Các bước thực hiện khi truyền và nhận dữ liệu: Sau khi xác lập được liên kếtngười sử dụng gửi và nhận dữ liệu. Việc gửi và nhận dữ liệu thông qua các hàmsend và receive. Hàm Send: Dữ liệu được gửi xuống TCP theo các khối (block). Khi nhậnđược một khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm (buffer). Nếu cờ PUSH đượcdựng thì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽ đượcgửi đi. Ngược lại cờ PUSH không được dựng thì dữ liệu được dữ lại trong bộ đệmvà sẽ gửi đi khi có cơ hội thích hợp (chẳng hạn chờ thêm dữ liệu nữa để gửi đi vớihiệu quả hơn) Hàm receive: ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗiliên kết. Nếu dữ liệu được đánh dấu với một cờ PUSH thì toàn bộ dữ liệu trong bộđệm (kể cả các dữ liệu được lưu từ trước) sẽ được chuyển lên cho người sử dụng.Còn nếu dữ liệu đến không được đánh dấu với cờ PUSH thì TCP chờ tới khi thíchhợp mới chuyển dữ liệu với mục đích tăng hiệu quả hệ thống. Nói chung việc nhận và giao dữ liệu cho người sử dụng đích của TCP phụthuộc vào việc cài đặt cụ thể. Trường hợp cần chuyển gấp dữ liệu cho người sửdụng đích của TCP phụ thuộc vào việc cài đặt cụ thể. Trường hợp cần chuyển gấpdữ liệu cho người sử dụng thì có thể dùng cờ URGENT và đánh dấu dữ liệu bằngbit URG để báo cho người sử dụng cần phải xử lý khẩn cấp dữ liệu đó. Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết khi khôngcần thiết được thực hiện theo một trong hai cách: dùng hàm Close hoặc dùng hàmAbort. Hàm Close: yêu cầu đóng liên kết một cách bình thường. Có nghĩa là việctruyền dữ liệu trên liên kết đó đã hoàn tất. Khi nhận được một hàm Close TCP sẽtruyền đi tất cả dữ liệu còn trong bộ đệm thông báo rằng nó đóng liên kết. Lưu ýrằng khi một người sử dụng đã gửi đi một hàm Close thì nó vẫn phải tiếp tục nhậndữ liệu đến trên liên kết đó cho đến khi TCP đã báo cho phía bên kia biết về việcđóng liên kết và chuyển giao hết tất cả dữ liệu cho người sử dụng của mình. Hàm Abort: Người sử dụng có thể đóng một liên kết bất thường và sẽ khôngchấp nhận dữ liệu qua liên kết đó nữa. Do vậy dữ liệu có thể bị mất đi khi đangđược truyền đi. TCP báo cho TCP ở xa biết rằng liên kết đã được hủy bỏ và TCP ởxa sẽ thông báo cho người sử dụng của mình. Một số hàm khác của TCP: 18Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  19. 19. Hàm Status: cho phép người sử dụng yêu cầu cho biết trạng thái của một liênkết cụ thể, khi đó TCP cung cấp thông tin cho người sử dụng. Hàm Error: thông báo cho người sử dụng TCP về các yêu cầu dịch vụ bấthợp lệ liên quan đến một liên kết có tên cho trước hoặc về các lỗi liên quan đến môitrường. Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có cáctham số với ý nghĩa như sau: HÌNH 3: DẠNG THỨC CỦA SEGMENT TCP. Source Port (16 bits): số hiệu cổng TCP của trạm nguồn Destination Port (16 bit): số hiệu cổng TCP của trạm đích Sequence Number (32 bit): số hiệu của byte đầu tiên của segment trừ khiSYN được được thiết lập. Nếu bit SYN được thiết lập thì Sequence Number là sốhiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN + 1. Acknowledgment Number (32 bit): số hiệu của segment tiếp theo mà trạmnguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích đã gửicho trạm nguồn. Data offset (4 bit): số lượng bội của 32 bit (32 bit words) trong TCP header(tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu). Reserved (6 bit): dành để dùng trong tương lai. Control bit (các bit điều khiển): URG: Vùng con trỏ khẩn (Ucgent Poiter) có hiệu lực. ACK: Vùng báo nhận (ACK number) có hiệu lực. PSH: chức năng PUSH RST: Khởi động lại (reset) liên kết. SYN: Đồng bộ hóa số hiệu tuần tự (sequence number). FIN: Không còn dữ liệu từ trạm nguồn. 19Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  20. 20. Window (16 bit): cấp phát credit để kiểm soát nguồn dữ liệu (cơ chế cửa sổ).Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong vùng ACKnumber, mà trạm nguồn đã sẵn sàng để nhận. Checksum (16 bit): mã kiểm soát lỗi cho toàn bộ segment (header + data) Urgemt Poiter (16 bit): con trỏ này trỏ tới số hiệu tuần tự của byte đi theo saudữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập. Options (độ dài thay đổi): khai báo các option của TCP, trong đó có độ dàitối đa của vùng TCP data trong một segment. Paddinh (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phầnheader luôn kết thúc ở một mốc 32 bit. Phần thêm này gồm toàn số 0. TCP data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầmđịnh là 536 byte. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùngoptions.2.2. Giao thức UDP UDP (User Datagram Protocol) là giao thức theo phương thức không liên kếtđược sử dụng thay thế cho TCP ở trên IP theo yêu cầu của từng ứng dụng. Khác vớiTCP, UDP không có các chức năng thiết lập và kết thúc liên kết. Tương tự như IP,nó cũng không cung cấp cơ chế báo nhận (ackowledgment), không sắp xếp tuần tựcác gói tin (datagram) đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu màkhông có cơ chế thông báo lỗi cho người gửi. Qua đó ta thấy UDP cung cấp cácdịch vụ vận chuyển không tin cậy như trong TCP. Khuôn dạng UDP datagram được mô tả với các vùng tham số đơn giản hơnnhiều so với TCP segment. HÌNH 4: DẠNG THỨC CỦA GÓI TIN UDP. UDP cũng cung cấp cơ chế gán và quản lý các số hiệu cổng (port number) đểđịnh danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do ít chứcnăng phức tạp nên UDP thường có xu thế hoạt động nhanh hơn so với TCP. Nóthường được dùng cho các ứng dụng không đòi hỏi đ ộ tin cậy cao trong giao vận. 20Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  21. 21. HÌNH 5: MÔ HÌNH QUAN HỆ HỌ GIAO THỨC TCP/IP.3. Mô hình truyền tin SOCKET Chương trình client và server sử dụng giao thức vận chuyển để gởi và nhậndữ liệu. Một vídụ là giao thức TCP/IP được sử dụng để giao tiếp qua mạng Internet. HÌNH 6: MÔ HÌNH TRUYỀN TIN SOCKET. 21Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  22. 22. TCP và UDP là các giao thức tầng giao vận để truyền dữ liệu. Mỗi giao thứccó những ưu và nhược điểm riêng. Chẳng hạn, giao thức TCP có độ tin cậy truyềntin cao, nhưng tốc độ truyền tin bị hạn chế do phải có giai đoạn thiết lập và giảiphóng liên kết khi truyền tin, khi gói tin có lỗi hay bị thất lạc thì giao thức TCP phảicó trách nhiệm truyền lại, … Ngược lại, giao thức UDP có tốc độ truyền tin rấtnhanh vì nó chỉ có một cơ chế truyền tin rất đơn giản: không cần phải thiết lập vàgiải phóng liên kết. Dữ liệu được truyền trên mạng Internet dưới dạng các gói (packet) có kíchthước hữu hạn được gọi là datagram. Mỗi datagram chứa một header và mộtpayload. Header chứa địa chỉ và cổng cần truyền gói tin đến, cũng như địa chỉ vàcổng xuất phát của gói tin, và các thông tin khác được sử dụng để đảm bảo độ tincậy truyền tin, payload chứa dữ liệu. Tuy nhiên do các datagram có chiều dài hữuhạn nên thường phải phân chia dữ liệu thành nhiều gói và khôi phục lại dữ liệu banđầu từ các gói ở nơi nhận. Trong quá trình truyền gói tin có thể có một hay nhiềugói bị mất hay bị hỏng và cần phải truyền lại hoặc các gói tin đến không theo đúngtrình tự. Để tránh những điều này, việc phân chia dữ liệu thành các gói, tạo cácheader, phân tích header của các gói đến, quản lý danh sách các gói đã nhận đượcvà các gói chưa nhận được, … rất nhiều công việc cần phải thực hiện, và đòi hỏi rấtnhiều phần mềm phức tạp. Để giải quyết bài toán này, đại học UC Berkeley đưa ra khái niệm Socket.Chúng cho phép người lập trình xem một liên kết mạng như là một luồng mà có thểđọc dữ liệu ra hay ghi dữ liệu vào từ luồng này. Các Socket che dấu người lập trìnhkhỏi các chi tiết mức thấp của mạng như kiểu đường truyền, các kích thước gói, yêucầu truyền lại gói, các địa chỉ mạng, … Một socket có thể thực hiện 7 thao tác cơ bản: - Kết nối với một máy ở xa (ví dụ: chuẩn bị để gửi và nhận dữ liệu) - Gửi dữ liệu - Nhận dữ liệu - Ngắt liên kết - Gán cổng - Nghe dữ liệu đến - Chấp nhận liên kết từ các máy ở xa trên cổng đã được gán Có nhiều kiểu Socket khác nhau tương ứng với mỗi kiểu giao thức được sử dụngđể giao tiếp giữa hai máy trên mạng Internet. Đối với chồng giao thức TCP/IP, cóhai kiểu Socket chính được sử dụng là stream socket và datagram socket. StreamSocket sử dụng giao thức TCP để cung cấp dịch vụ gửi dữ liệu tin cậy. DatagramSocket sử dụng giao thức UDP để cung cấp dịch vụ gởi gói tin đơn giản. Ngôn ngữlập trình Java hỗ trợ lớp Socket và ServerSocket cho kiểu stream socket và lớpDatagramPacket và DatagramSocket cho kiểu datagram socket. 22Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  23. 23. Đối với kiểu stream socket, lớp Socket được sử dụng bởi cả client và server. LớpSocket này có các phương thức tương ứng với bốn hao tác đầu tiên của thao tác cơbản của socket trình bày ở trên. Ba thao tác cuối được hỗ trợ bởi server để chờ cácclient liên kết tới. Các thao tác này được cài đặt bởi lớp ServerSocket.4. Ngôn ngữ lập trình JavaKhái niệm Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khácvới phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mãmáy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồnthành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment)chạy. Bằng cách này, Java thường chạy nhanh hơn những ngôn ngữ lập trình thôngdịch khác như Python, Perl, PHP,… Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướngđối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Một số đặc điểm nổi bật của ngôn ngữ lập trình Java:- Máy ảo Java (JVM – Java Vitual Machine): Tất cả các chương trình muốnthực thi được thì phải được biên dịch ra mã máy. Mã máy của từng kiến trúc CPUcủa mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPUMacintosh … là khác nhau), vì vậy trước đây một chương trình sau khi được biêndịch xong chỉ có thể chạy được trên một kiến trúc CPU cụ thể nào đó. Đối với CPUIntel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix,Linux,OS/2, …- Chương trình thực thi được trên Windows được biên dịch dưới dạng file cóđuôi .EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi .ELF, vì vậytrước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điềuhành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại.- Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trênđã được khắc phục. Một chương trình viết bằng ngôn ngữ lập trình Java sẽ đượcbiên dịch ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu tráchnhiệm chuyển mã java bytecode thành mã máy tương ứng. Sun Microsystem chịutrách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúcCPU khác nhau.Thông dịch Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch. Chương trìnhnguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịchthành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thông dịch thành mãmáy. 23Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  24. 24. Độc lập nền Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều máy tínhcó hệ điều hành khác nhau (Windows, Unix,Linux, …) miễn sao ở đó có cài đặtmáy ảo java (Java Virtual Machine). Viết một lần chạy mọi nơi (write once runanywhere).Hƣớng đối tƣợng Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữlập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề cập đến trong Java đều liênquan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chươngtrình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hướng đốitượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ màthay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa. Vấn đề này sẽđược bàn chi tiết trong phần sau.Đa nhiệm – Đa luồng (Multitasking - Multithreading) Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trìnhcó thể chạy song song cùng một thời điểm và tương tác với nhau.Khả chuyển (Portable) Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên máyảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo Java.“Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere).Hỗ trợ mạnh cho việc phát triển ứng dụng Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem”cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triểnnhiều loại hình ứng dụng khác nhau cụ thể như: J2SE (Java 2 Standard Edition) hỗtrợ phát triển những ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 EnterpriseEdition) hỗ trợ phát triển các ứng dụng thương mại, J2ME (Java 2 Micro Edition)hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây, …5. Công nghệ J2MEJava là công nghệ mã nguồn mở và do Sun Microsystem hỗ trợ và phát triễn. J2ME(Java 2 Platform, Micro Edition) được xem là 1 trong 3 công nghệ hiện nay củaJava và nó phát triển ứng dụng nhắm vào các thiết bị di động. Chuẩn của J2MEgồm 2 loại: 24Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  25. 25. CLDC ( Connected Limited Device Configuration): có khả năng truyềnthông trên mạng một cách rời rạc như: điện thoại di động (Mobile phones), máynhắn tin hai chiều (two-way pagers), máy trợ lý cá nhân dùng kỹ thuật số (personaldigital asisstants-PDAs). Loại này dùng cho một mục đích đặc biệt, thường giới hạnvề chức năng. CDC ( Connected Device Configuration): được kết nối cố định và liên tụcnhư set-top boxes, Internet TVs, Internet – enabled screen phones, high – endcommunicators, hệ thống điều hướng xe hơi. Loại này hỗ trợ về giao diện ngườidùng. J2ME được thiết kế để chạy trên các điện thoại di động có cấu hình tối thiểunhư sau: - Bộ nhớ tổng cộng: 128-512 KB. - Bộ xử lý: 16 đến 32 bit. - Tốc độ xử lý: 8-32 MHz. Năng lượng: giới hạn, hoạt động bằng pin. Băng thông: giới hạn, khoảng 9600 bps. MIDP (Mobile Information Device Profile): bổ sung các tính năng như hỗ trợkết nối, các thành phần hỗ trợ giao diện người dùng … vào CLDC. Profile này đượcthiết kế chủ yếu để nhắm vào điện thoại di động với đặc tính là màn hình hiển thịhạn chế, dung lượng chứa có hạn. Do đó MIDP sẽ cung cấp một giao diện ngườidùng đơn giản và các tính năng mạng đơn giản dựa trên HTTP. Có thể nói MIDP làprofile nổi tiếng nhất bởi vì nó là kiến thức cơ bản cho lập trình Java trên các máydi động. Những chức năng MIDP cung cấp: Các lớp và kiểu dữ liệu: phần lớn các lớp mà các lập trình viên Java quen thuộcvẫn còn được giữ lại ví dụ như các lớp trong gói java.util như Stack, Vector vàHastable cũng như Enumeration. Hỗ trợ đối tượng Display: đúng như tên gọi một chương trình MIDP sẽ hỗ trợduy nhất một đối tượng Display là đối tượng quản lý việc hiển thị dữ liệu trên mànhình điện thoại. Hỗ trợ Form và các giao diện người dùng. Hỗ trợ Timer và Alert. Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ dữliệu. Những chức năng MIDP không thể làm được: - Phép tính dấu chấm động (floating point): phép tính này đòi hỏi rất nhiều tàinguyên CPU và phần lớn các CPU cho các thiết bị di động không hỗ trợ phép tínhnày, do đó MIDP cũng không có. - Bộ nạp class (Class Loader). 25Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  26. 26. - Hỗ trợ từ khóa finalize( ) như trong J2SE: việc “dọn dẹp“ tài nguyên trước khi nó bị xóa do lập trình viên thực hiện. - Không hỗ trợ JNI (Java Native Interface). - Hỗ trợ hạn chế thao tác bắt lỗi. - Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được trong MIDP. - Không hỗ trợ các tính năng quản lý tập tin và thư mục, trong thực tế là các thiết bị J2ME không có hỗ trợ các thiết bị lưu trữ thông thường như ổ cứng…. Tuy nhiên, điều đó không có nghĩa là phải mất đi mọi dữ liệu quan trọng mỗi khi tắt máy, Sun đã cung cấp một chức năng khác tương đương gọi là Record Management System (RMS) để cung cấp khả năng lưu trữ cho các thiết bị này. MIDP 2.0 có một số các cải tiến nổi bật so với MIDP 1.0: Nâng cấp các tính năng bảo mật như: Download qua mạng an toàn hơn thôngqua việc hỗ trợ giao thức HTTPS, kiểm soát việc kết nối giữa máy di động vàserver, ví dụ các chương trình không thể kết nối tới server nếu không có sự chấpnhận của người dùng. Thêm các API hỗ trợ Multimedia. Một trong những cải tiến nổi bật nhất củaMIDP 2.0 là tập các API media của nó. Các API này là một tập con chỉ hỗ trợ âmthanh của Mobile Media API (MMAPI). Mở rộng các tính năng của Form. Nhiều cải tiến đã được đưa vào APIjavax.microedition.lcdui trong MIDP 2.0, nhưng các thay đổi lớn nhất (ngoài APIcho game) là trong Form và Item. Hỗ trợ các lập trình viên game bằng cách tung ra Game API. Được hưởng lợinhất từ Game API trong MIDP 2.0 không chỉ là các lập trình viên game mà còn cáclập trình viên cần sử dụng các tính năng đồ họa cao cấp. Hỗ trợ kiểu ảnh RGB: một trong những cải tiến hấp dẫn cho các nhà phát triểnMIDP là việc biểu diễn hình ảnh dưới dạng các mảng số nguyên, cho phép MIDletthao tác với dữ liệu hình ảnh một cách trực tiếp. 26Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  27. 27. Chƣơng 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 1. Phân tích 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 cú pháp của UML 2.0 để mô tả các biểu đồ của hệ thống. Các bước tiếnhành việc phân tích, thiết kế hướng đối tượng theo UML 2.0 bao gồm: phân tích,thiết kế, xây dựng và kiểm thử chương trình. Dựa trên quy trình đó, em có đưa racá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 và có minhhọa bằng thực nghiệm đã xây dựng được. Mô hình Use Case của hệ thống HÌNH 7: BIỂU ĐỒ USE CASE CỦA HỆ THỐNG. Hệ thống gồm có: Người sử dụng đăng ký, người chơi, bộ phận chăm sóckhách hàng và người quản trị hệ thống. Người sử dụng đăng ký: Người sử dụng mới có thể đăng ký tài khoản quagiao diện đăng ký của ứng dụng. Việc đăng ký tài khoản có thể thực hiện bằng 2cách: đăng ký miễn phí bằng việc kết nối trực tiếp đến server hoặc đăng ký mất phí 27Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  28. 28. qua tổng đài SMS. Việc đăng ký miễn phí hay đăng ký qua SMS sẽ do người quảntrị hệ thống quyết định. Người sử dụng đăng ký mới cũng có chức năng báo lỗi cho hệ thống. Trườnghợp này người sử dụng phải báo lỗi qua hệ thống SMS vì lúc này người sử dụngchưa đăng nhập được vào hệ thống để kết nối đến server (những trường hợp nàythường là do không đăng ký được tài khoản, mất mật khẩu hay dòng máy không hỗtrợ). Người chơi: Là người dùng đã đăng ký nick. Người chơi có thể đăng nhậpvào hệ thống, kết bạn, chat với bạn bè, quản lý hộp tin nhắn, gửi tin nhắn, chơigame, mua đồ, thực hiện giao dịch hoặc báo lỗi hệ thống, … Chăm sóc khách hàng: Đối với bất kỳ hệ thống online nào, bộ phận chămsóc khách hàng đóng vai trò rất quan trọng. Đây là bộ phận có thể giải đáp các thắcmắc cho người sử dụng. Ở hệ thống này, bộ phận chăm sóc khách hàng có nhiệm vụquản lý báo lỗi của khách hàng qua hệ thống tổng đài SMS và kênh báo lỗi. Từnhững phản hồi đó, bộ phận này có nhiệm vụ trả lời những thắc mắc của kháchhàng, đồng thời báo cho người quản trị hệ thống qua kênh báo lỗi đối với những lỗinghiêm trọng liên quan đến hệ thống. Quản trị hệ thống: Đây là bộ phận quan trọng nhất của hệ thống. Quản trị hệthống có 2 nhiệm vụ chính: quản lý server và quản lý kênh báo lỗi. Quản lý server: theo dõi tình hình hệ thống thông qua hệ thống report (sốlượng người online, CPU server, các lỗi phát sinh của hệ thống, tình trạng database,…). Người quản trị server còn có nhiệm vụ thay đổi các thông số của hệ thống khicần. Ví dụ: kích hoạt chương trình khuyến mãi, kích hoạt đăng ký tài khoản quaSMS hay đăng ký tài khoản miễn phí. Với những người dùng vi phạm nội quy,người quản trị hệ thống cũng có chức năng ban nick hoặc nhắc nhở những trườnghợp đó. Quản lý báo lỗi: Người quản trị hệ thống sẽ phải cập nhật thường xuyênnhững lỗi người dung phản ảnh qua hệ thống báo lỗi, từ đó kiểm tra hệ thống vàthông báo cho những người có trách nhiệm để sửa lỗi hệ thống. Với những lỗinghiêm trọng, hay thắc mắc của khách hàng liên quan đến hệ thống mà bộ phậnchăm sóc khách hàng không giải đáp được thì người quản trị hệ thống có nhiệm vụgiải đáp cho chăm sóc khách hàng để bộ phận này truyền đạt lại cho người dùng. 28Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  29. 29. 1.1 Biểu đồ phân rã chức năng HÌNH 8: BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CỦA HỆ THỐNG. Hệ thống Game có các chức năng chính là: Chức năng người dùng, quản lýhệ thống, quản lý góp ý – chăm sóc khách hàng. Vì hệ thống lớn nên trong thời gianthực tập tại công ty SunNet em đảm nhận công việc phát triển toàn bộ hệ thốnggame, còn lại phần thiết kế hệ thống report, quản lý log hệ thống hay chăm sóckhách hàng do một bộ phận khác đảm nhiệm.1.1.1 Chức năng ngƣời dùng: Chức năng người dùng được phân chia làm các chức năng nhỏ: - Đăng ký tài khoản, đăng nhập, đổi mật khẩu. - Chức năng quản lý thông tin cá nhân - Chức năng thống kê Top User - Chức năng mua đồ, quản lý hòm đồ. - Chức năng kết bạn, quản lý hộp thư, bạn bè. - Chức năng chat, gửi tin nhắn - Chức năng thể hiện cảm xúc, tương tác với người khác. - Chức năng xem bói - Chức năng mua xổ số, xem kết quả xổ số. - Chức năng chọn Game, chọn phòng, chọn bàn, chơi game - Chức năng báo lỗi lên hệ thống 29Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  30. 30. - Chức năng Update phiên bản mới của Game - Chức năng nạp tiền.Chức năng đăng ký, đăng nhập:Nhiệm vụ ban đầu của người dùng là đăng ký và đăng nhập. Việc đăng ký, đăngnhập ở hệ thống này không phức tạp như các hệ thống khác.Các thông tin khác người dùng có thể update sau khi đã đăng nhập thành công vàohệ thống. Bảo mật thông tin tốt chính là yếu tố rất quan trọng đem lại sự tin tưởngcủa người dùng đối với hệ thống.Quá trình đăng nhập: HÌNH 9: BIỂU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH ĐĂNG NHẬP. Từ màn hình đăng nhập, người dùng sẽ nhập tên username, password củamình sau đó gửi request tới một địa chỉ http để lấy danh sách các slave server. Saukhi lấy được danh sách slave server, người dùng có thể chọn một trong cácslaveserver để đăng nhập tương ứng vào slave server đó. Người dùng gửi requestđăng nhập tới slave server mà mình chọn. Khi nhận được request từ người dùng, 30Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  31. 31. slave sẽ kết nối tới hệ thống database để kiểm tra username, password của người sửdụng và trả về cho người dùng là họ đã đăng nhập thành công hay thất bại. Người dùng có thể chọn chức năng ghi nhớ tài khoản để ở những lần đăngnhập sau người dùng sẽ bỏ qua được bước nhập username, password.Quá trình đăng ký: Việc đăng ký có thể được thực hiện bằng 2 cách khác nhau. Việc lựa chọncách đăng ký nào người dùng sẽ không được quyết định mà sẽ do người quản trị hệthống Game quyết định. Hai hình thức đăng ký là: đăng ký miễn phí, đăng ký mất phí qua tổng đàiSMS. Quá trình đăng ký tài khoản miễn phí nhƣ sau: HÌNH 10: BIỂU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH ĐĂNG KÝ TÀI KHOẢN MIỄN PHÍ. Quá trình đăng ký nick miễn phí có quy trình cũng giống với quá trình đăngnhập. Người chơi cũng sẽ phải điền thông tin username, mật khẩu, giới tính, sau đólấy danh sách slave Server, chọn slave server, gửi request đăng ký tài khoản. Slave 31Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  32. 32. server truy xuất vào database server user để kiểm tra tài khoản đó đã được đăng kýhay chưa, sau đó trả về cho người dùng đăng ký thành công hay thất bại. Quá trình đăng ký tài khoản mất phí thông qua tin nhắn SMS: Đối với quá trình đăng ký tài khoản mất phí, người dùng sẽ cũng sẽ phảithêm một bước nhắn tin tới tổng đài SMS để đăng ký tài khoản. HÌNH 11: BIỀU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH ĐĂNG KÝ TÀI KHOẢN QUA TỔNG ĐÀI SMS Quá trình đăng ký tài khoản qua tổng đài SMS nhƣ sau:B1: Người dùng nhập Username, password, giới tính ở giao diện đăng ký.B2: Gửi request lấy thông tin Slave ServerB3: Hệ thống HTTP lưu trữ thông tin của các Slave server hiện có của hệ thống đểtrả về cho người dùng.B4: Người dùng chọn một slave server và gửi yêu cầu đăng ký lên slave server đó(thông tin về username, password, giới tính). 32Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  33. 33. B5: Slave server truy xuất vào database lưu trữ thông tin user để kiểm tra tài khoảnngười dùng đăng ký đã tồn tại trên hệ thống hay chưa.B6: Slave server xử lý thông tin request. Nếu tài khoản đã được đăng ký chuyểnsang bước 7, còn không thì chuyển sang bước 8.B7: Trả về cho client thông báo tài khoản này đã được đăng ký, kết thúc quá trìnhđăng kýB8: Trả về cho client thông báo tài khoản này chưa được đăng ký, chuyển sangbước 9.B9: Gửi tin nhắn đăng ký lên tổng đài SMS.B10: Tổng đài SMS nhận request từ người dùng và forward thông tin sang slaveserver.B11: Slave Server truy xuất vào database lưu trữ thông tin user để kiểm tra tàikhoản người dùng đăng ký đã tồn tại trên hệ thống hay chưa một lần nữa.B12: Slave server xử lý request. Nếu đăng ký không thành công thì sang B13, cònkhông thì sang B15.B13: Phản hồi lại tổng đài SMS là đăng ký không thành công.B14: Tổng đài SMS gửi tin nhắn phản hồi cho người dùng đăng ký không thànhcông.B15: Server trả về cho người dùng đăng ký không thành công, kết thúc quá trìnhđăng ký.B16: Thêm User mới đăng ký vào database user của hệ thống.B17: Phản hồi lại tổng đài SMS là đăng ký thành công.B18: Tổng đài SMS gửi tin nhắn phản hồi cho người dùng đã đăng ký thành công.B19: Server trả về cho người dùng đăng ký thành công, kết thúc quá trình đăng ký. Chức năng quản lý thông tin cá nhân Thông tin cá nhân của người chơi bao gồm: - Tên tài khoản - Cấp độ (Level) - Danh hiệu - Uy danh (điểm kinh nghiệm) - Gold : Để có gold người chơi phải nạp thẻ. Người chơi có thể dùng loại tiền này để chơi các trò chơi như đánh bài, Ai là triệu phú, xem bói, xổ số, mua đồ. - Xu: là loại tiền do người chơi nạp thẻ. Tuy nhiên loại tiền này chỉ có chức năng mua đồ. - Số trận thắng - Số trận thua - Số lần bỏ cuộc 33Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  34. 34. Chức năng thống kê Top User: Với một hệ thống game Online, chức năng quan trọng không thể thiếu đó làtop game thủ. Chức năng này có tác dụng kích thích người chơi đua top để có thứhạng cao nhất. Top user bao gồm: Top đại gia, top kỷ lục triệu phú, bảng vàng triệu phú, topcao thủ. Đối với Top cao thủ có thống kê top cao thủ chung và top cao thủ cho từngloại game. HÌNH 12: BIỂU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH LẤY THÔNG TIN NGƢỜI CHƠI, TOP USER Quá trình lấy thông tin được thực hiện qua 4 bước: User gửi request lênSlave server, Slave server kết nối đến database để lấy thông tin, slave server xử lýthông tin nhận được rồi gửi trả về cho người dùng. Chức năng mua đồ, quản lý hòm đồ: Mỗi người dùng trong Game có một nhận vật. Mỗi nhân vật sẽ có 2 vật phẩmlà quần áo và đầu tóc. Người dùng có thể thay đổi trang phục của mình bằng cáchmua trong cửa hàng. Những vật phẩm mà người dùng đã mua sẽ được cất trong hòmđồ. Quá trình mua đồ, lấy thông tin hòm đồ được thực hiện như sau: 34Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  35. 35. HÌNH 13: BIỂU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH MUA ĐỒ, LẤY THÔNG TIN HÒM ĐỒ. Đối với quá lấy thông tin hòm đồ, quá trình update dữ liệu vào databasekhông cần thực hiện. Chỉ quá trình mua đồ, Slave server phải thực hiện thêm bướcupdate dữ liệu mới vào bảng database hòm đồ của người dùng.Chức năng kết bạn Chức năng kết bạn được xây dựng sao cho người dùng có thể kết bạn vớinhiều người nhất, dễ dàng nhất. Người chơi có thể kết bạn bằng cách nhập tên người mà họ muốn làm bạn.Trong quá trình chơi game, người chơi có thể kết bạn với bất cứ người nào mà họgặp, cả kể ngoài đường phố hay trong phòng chờ của Game. 35Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  36. 36. HÌNH 14: BIỂU ĐỒ TUẦN TỰ MÔ TẢ QUÁ TRÌNH KẾT BẠN.Quá trình kết bạn được thực hiện qua 10 bước:B1: User 1 gửi thông tin kết bạn lên Slave server (thông tin người muốn kết bạncùng).B2: Slave server lấy thông tin database về thông tin của 2 người muốn kết bạn.B3: Slave server xử lý thông tin. Trường hợp thông tin kết bạn không hợp lệ chuyểnsang bước 4.B4: Thông báo cho User 1 là kết bạn không thành công, kết thúc việc kết bạn.B5: Slave server gửi thông tin kết bạn đến User 2.B6: User 2 xử lý thông tin kết bạn mà slave server gửi đếnB7: User 2 gửi phản hồi lên slave server là có đồng ý kết bạn hay không.B8: Slave server xử lý thông tin User 2 gửi lên.B9: Slave server update dữ liệu mới vào databaseB10: Thông báo với User 1 là kết bạn thành công. Chức năng quản lý hộp thƣ, bạn bè Ý tưởng về chức năng hộp thư, bạn bè được thiết kế giống với Yahoo Chat.Với chức năng này người dùng có thể lấy được danh sách bạn bè, có thể biết ai đangonline, offline. Có thể chat với bạn bè, hay có thể nhắn tin offline cho người đó. 36Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  37. 37. Tuy nhiên, chức năng này vẫn còn nhiều hạn chế do tính chất của mạng điệnthoại rất chậm. Người chơi chỉ có thể kết bạn với tối đa 30 người, hộp tin nhắn chỉcó thể hiện thị 20 tin nhắn.Chức năng trò chuyện (Chat) Một trong những chức năng quan trọng nhất của game online là chức năngchat với người cùng chơi. Với chức năng chat người chơi có thể giao lưu, kết bạn,trao đổi thông tin với nhau.Chức năng tƣơng tác ngƣời chơi trong Game Người chơi có thể tương tác với nhau trong Game bằng các hành động: hôn,đánh nhau hoặc cách biểu lộ trạng thái như quỳ, nằm, ngồi, chạy, nhảy, hát, … Cáchành động này sẽ làm tăng tính tương tác giữa các người chơi trong Game, giúpngười chơi có cảm giác như mình được hóa thân vào nhân vật.Chức năng xem bói Chức năng xem bói bao gồm: bói bài và bói ngày may mắn.Người chơi có thể sử dụng chức năng này sau khi đăng nhập vào hệ thống. Muốnbói người dùng phải trả phí bằng Gold trong Game.Dữ liệu của phần bói được lưu trữ trong Database content, có yêu cầu xem bói từphía ứng dụng người dùng, server sẽ truy xuất vào database content này để lấy nộidung, sau đó trả về cho người dùng.Chức năng chơi xổ số Với chức năng này người dùng có thể mua vé số, sau đó so kết quả vé số vào19h30 cùng ngày. Kết quả xổ số trả về sẽ trùng với kết quả xổ số ngoài thực tế.Ngoài việc chơi xổ số, người dùng còn có thể xem kết quả xổ số của ngảy hômtrước.Chức năng chơi Game Chức năng quan trọng nhất của hệ thống Game là người dùng có thể chơi cáctrò chơi. Đây là nơi người chơi có sự trao đổi, tương tác với nhau nhiều nhất. Chứcnăng này đặc biệt quan trọng, đòi hỏi hệ thống phải xử lý tốt, tránh trường hợp bịlag, hack, … Hệ thống có rất nhiều game để người dùng lựa chọn, bao gồm: Ai là triệuphú, tá lả, tiến lên miền bắc, tiền lên miền nam, 3 cây. Ngoài ra, còn có các gameđang phát triển: Ghét nhau ném đá, đào vàng đôi, nông trại vui vẻ. 37Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  38. 38. HÌNH 15: BIỂU ĐỒ MÔ TẢ TUẦN TỰ MÔ TẢ QUÁ TRÌNH CHƠI GAME. Để vào chơi game, người chơi sẽ phải thực hiện các thao tác: đăng nhập,chọn khu vực chơi, chọn game muốn chơi, chọn phòng, chọn bàn chơi, vào phòngchờ (thực hiện các thao tác cài đặt, chỉnh thông số game), cuối cùng là chơi game.Chức năng báo lỗi hệ thống Đối với bất kỳ hệ thống nào, việc phát sinh lỗi là không thể tránh khỏi. Vớihàng ngàn người dùng sử dụng phần mềm, đây chính là đối tượng gần với hệ thốngnhất. Khi gặp lỗi, người dùng có thể vào mục báo lỗi để gửi lỗi lên server, serversẽ tiếp nhận lỗi và ghi vào kênh báo lỗi để người quản trị được biết. Ngoài báo lỗi, người dùng có thể đóng góp ý kiến của mình về hệ thốngthông qua chức năng báo lỗi này.Chức năng update phiên bản mới Phiên bản Client chính của game được public tại địa chỉ m.qplay.vn. Khi cóphiên bản mới, người chơi sẽ nhận được thông báo đã có phiên bản mới.Người dùng có thể update phiên bản mới bằng cách vào mục update Game. Khi đóứng dụng sẽ chuyển người chơi đến trang web chứa phiên bản mới nhất của gameđể người dùng tải về. Khi có phiên bản mới, người dùng có 2 lựa chọn: hoặc là vẫn sử dụng phiênbản cũ, hoặc tải phiên bản mới về sử dụng. Tuy nhiên cũng có trường hợp ngườidùng phải bắt buộc tải phiên bản mới thì mới có thể sử dụng được. Việc này dongười quản trị Game điều chỉnh trên server.Chức năng nạp tiền Để sử dụng được các chức năng trong Game, người chơi phải gold hoặc xu.Đây là loại tiền ảo trong game, nó chỉ có tác dụng trong game mà không được quyđổi ngược lại thành tiền thật.Có hai hình thức nạp tiền: Nạp tiền qua tin nhắn SMS: chức năng này khá tiện dụng cho người dùng,bởi chỉ cần thực hiện thao tác nhắn tin SMS trong Game là người dùng có thể nạptiền một cách dễ dàng. Để có chức năng này, yêu cầu hệ thống phải có một đầu sốtổng đài, một hệ thống xử lý tin nhắn trên tổng đài. Khi nhận được tin nhắn SMS từkhách hàng, dựa vào mã tin nhắn, tổng đài sẽ gửi về server của game nội dung tinnhắn, server xử lý và trả về cho người dùng. 38Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  39. 39. Nạp tiền bằng mã số thẻ cào (Viettel, Mobi, VinaPhone): Sẽ có nhiềungười thắc mắc tại sao chức năng nạp tiền qua tin nhắn SMS tiện dụng như vậy màlại phải có thêm chức năng nạp tiền qua thẻ cào??? Trên thực tế, chức năng này khá bất tiện bởi muốn nạp tiền người dùng phảimua thẻ cào, sau đó điền mã thẻ để nạp tiền. Tuy nhiên, hệ thống game vẫn có chứcnăng này là do hai nguyên nhân: + Thứ nhất: Việc thu tiền qua tin nhắn SMS sẽ bị hao hụt rất lớn, thôngthường mỗi tin nhắn SMS nhà sản xuất sẽ phải trả 45-55% tiền phí cho nhà mạng(với 1 tin nhắn 5000đ thì phải trả cho nhà mạng khoảng 2750đ). Bù lại, với mỗi lầnngười dùng nạp tiền bằng thẻ cào, nhà sản xuất game chỉ phải trả cho nhà cung cấpdịch vụ thẻ cào 10% giá trị của thẻ cào đó. + Thứ hai: không phải người dùng nào cũng sử dụng điện thoại để chơigame. Họ có thể chơi bằng giả lập trên PC, hay chơi trên các thiết bị khác hỗ trợgame nhưng không hỗ trợ việc nhắn tin SMS. Hoặc sau này khi phát triển game trênnền Web thì việc nạp tiền qua thẻ cào cũng rất tiện lợi.1.1.2. Chức năng report hệ thống Thống kê danh sách người dùng đăng ký trong ngày Chức năng này dùng để liệt kê danh sách những tài khoản đã đăng ký nicktrong ngày hiện tại. Ngoài ra, người quản trị còn có thể lựa chọn xem danh sáchngười dùng đã đăng ký nick của những ngày trước đó. Các thông tin thống kê trong danh sách người dùng bao gồm: username, giớitính, số điện thoại, số tiền, cấp độ, điểm kinh nghiệm, thắng, thua, đối tác, ngàyđăng ký tài khoản, trạng thái Online, slave server hiện tại đang kết nối đến, thờiđiểm đăng nhập lần cuối cùng, version hiện tại đang sử dụng. Ở mục này có thêm chức năng search tài khoản người dùng theo username.Chức năng này giúp người quản trị hệ thống dễ dàng quản lý được người sử dụng,đặc biệt là khi có khiếu nại hay vấn đề gì đó không bình thường từ phía người sửdụng. Thống kê danh sách người dùng đang online Chức năng này giúp người quản trị biết được tại thời điểm hiện tại có baonhiêu người đang online và danh sách những tài khoản đang online. Thống kê danh sách giao dịch trong ngày Mục này sẽ liệt kê danh sách người dùng đã nạp tiền ở ngày hiện tại. Ngườiquản trị cũng có thể xem giao dịch của những ngày trước đó. Thông tin thống kê danh sách giao dịch bao gồm: - Số lượng giao dịch trong ngày 39Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  40. 40. - Danh sách các tài khoản thực hiện giao dịch: tên tài khoản, hình thức thành toán (tin nhắn SMS, thẻ cào VINA, thẻ cào MOBI, thẻ cào VIETTEL), đối tác, số tiền giao dịch, thời gian thực hiện giao dịch. Thống kê log người dùng chơi game Chức năng này đặc biệt quan trọng, bởi nó giúp cho người quản trị hệ thốngcó thể theo dõi được tình hình người chơi đang sử dụng dịch vụ như thế nào. Ở mục này, hệ thống sẽ liệt kê tất cả những dữ liệu liên quan đến việc thayđổi số tiền của người dùng trong game. Bao gồm: tiền thay đổi khi người chơi sửdụng dịch vụ trong game, tiền thay đổi khi người chơi đánh bài, chơi ai là triệu phúhay mua đồ, … Bảng thống kê này sẽ giúp cho người quản trị theo dõi được những tài khoảnnào có biểu hiện gian lận để xử lý kịp thời. Đồng thời cũng là kênh đối soát đối vớinhững trường hợp khiếu nại của khách hàng. Nhược điểm: khi số lượng người chơi nhiều, số lượng log sẽ rất lớn dẫn đếngây nặng hệ server. Chính việc ghi log sẽ làm lag mạng, gây khó chịu cho ngườichơi. Do đó phải tìm ra phương án ghi log một cách hiệu quả, chỉ chọn lọc nhữngthông tin cần thiết để ghi lại. Thống kê Top User Mục này sẽ thống kê top người dùng theo thứ tự giảm dần từ trên xuống dựatheo tiền và điểm kinh nghiệm. Cụ thể có các loại Top cần thống kê bao gồm: Topđại gia, Top cao thủ, top ba cây, top phỏm, top tiến lên. Ở ứng dụng ở phía client, người dùng chỉ xem được Top này với số lượngthống kê là 10 người. Còn ở bảng thống kê này, người quản trị có thể có thể theodõi danh sách thống kê bao gồm tất cả người dùng của hệ thống được sắp xếp theothứ tự giảm dần. Từ bảng thống kê này người quản trị có thể biết được hiện tại tình hình cóbao nhiêu tài khoản đang có bao nhiêu tiền. Ví dụ có bao nhiêu tài khoản có số tiềntrên 1 triệu, trên 500 nghìn, …. Từ đó có thể đưa ra các chương trình khuyến mãinạp tiền cho hợp lý. Thống kê lượng truy cập theo từng ngày Chức năng này sẽ thống kê lượng người dùng truy cập vào hệ thống trongmột ngày. Số lượng truy cập được tính bằng số lần người chơi đăng nhập vào hệthống. Thống kê danh sách người dùng mua đồ theo ngày Chức năng này ghi lại danh sách người chơi thực hiện giao dịch mua đồtrong ngày. Bao gồm: tên tài khoản, vật phẩm chọn mua, mã hàng và thời điểm muađồ. Vật phẩm ở đây là quần áo, hoặc tóc. Mã hàng là loại quần áo hoặc đầu tócmà người dùng đã mua. 40Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  41. 41. 1.1.3. Chức năng chăm sóc khách hàng Chức năng thống kê ý kiến phản hồi Mục này sẽ liệt kê những ý kiến mà khách hàng phản hồi về chất lượng dịchvụ, tình trạng hệ thống hay những đóng góp, góp ý để hệ thống tốt hơn. Danh sách thống kê bao gồm: tên tài khoản, nội dung phản hồi và thời gianphản hồi. Từ các phản hồi này, bộ phận chăm sóc khách hàng có thể giải đáp thắc mắcvới người dùng bằng chức năng gửi tin nhắn trực tiếp từ hệ thống hoặc thông quaviệc gọi điện cho khách hàng. Những trường hợp phức tạp, bộ phận chăm sóc kháchhàng sẽ tổng hợp lại phản hồi của khách hàng và gửi cho người quản lý hệ thống đểxử lý. Chức năng thống kê giao dịch trong ngày Thông thường những ý kiến khiếu nại của khách hàng liên quan đến hệ thốngtiền ảo trong game. Để đối soát với những phản hồi của khách hàng trong trườnghợp khách hàng đã nạp tiền nhưng không được cộng vào tài khoản. Bộ phận chămsóc khách hàng có thể kiểm tra xem trong thống kê giáo dịch đã có giao dịch củakhách hàng đó chưa và cộng lại tiền cho khách hàng. Chức năng gửi tin nhắn đến khách hàng Chức năng này có tác dụng để giải đáp những thắc mắc cho khách hàng mộtcách nhanh chóng nhất. Sau khi gửi tin nhắn, người sử dụng sẽ nhận được tin nhắnkhi đăng nhập vào Game. Chức năng cập nhật gold vào tài khoản cho khách hàng Chức năng này giúp người quản lý có thể cập nhật lại số tiền cho khách hàngkhi có sai phạm trong quá trình nạp tiền hay lỗi game dẫn đến việc khách hàng bịmất tiền. 41Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  42. 42. 2. Thiết kế hệ thống 2.1. Kiến trúc hệ thống 2.1.1. Kiến trúc tổng quan Để giảm tải cho server khi có nhiều người sử dụng cùng kết nối vào hệthống, ta đưa ra mô hình server phân tán. Hệ thống server sẽ được chia nhỏ thànhcác Slave Server. Và tất nhiên các Slave Server này sẽ dùng chung cơ sở dữ liệu củahệ thống và các dịch vụ thanh toán nạp tiền. Với cách phân chia thành các Slave Server, hệ thống vẫn đảm bảo đáp ứngđược nhu cầu của người chơi game và giảm được gánh nặng cho hệ thống. HÌNH16: KIẾN TRÚC TỔNG QUAN HỆ THỐNG. Info Slave Server - Là file lưu trữ thông tin về các slave server - Bao gồm: địa chỉ IP và Port của mỗi slave server. Là nơi mà client sẽ gọi đến đầu tiên để lấy danh sách các slave server. Saukhi lấy được danh sách các slave server, client sẽ lựa chọn 1 slave server để kết nốiđến Database Server User - Là hệ thống quản lý tài khoản tập trung 42Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  43. 43. - Lưu trữ toàn bộ thông tin tài khoản người dùng - Cung cấp các giao diện webservice, URL cho các ứng dụng khác truy cập lấy thông tin - Có cơ chế backup dự phòng, đảm bảo cung cấp dịch vụ 24/7 trong mọi tình huống - Thành phần bao gồm: Webserver, Database Server. Database Server Content - Là hệ thống quản lý nội dung tập trung - Lưu trữ các nội dung, media phục vụ cho hoạt động kinh doanh trên toàn hệ thống - Cung cấp các giao diện Webservice, URL cho các ứng dụng khác truy cập lấy thông tin - Có cơ chế backup dự phòng, đảm bảo cung cấp dịch vụ 24/7 trong mọi tình huống - Thành phần bao gồm: webserver, Database Server Yocity Slave Server - Đóng vai trò một game Server - Phục vụ yêu cầu kết nối từ Yocity client. - Duy trì và điều phối Game Play của người chơi - Truyền tải nội dung cho Client, kiểm soát thông tin tài khoản người dùng thông qua Database Server User và Database Server Content SMS Server - Tiếp nhận tin nhắn SMS từ phía Client và trả lại tin nhắn phản hồi cho client. - Xử lý tin nhắn từ phía Client, truyền tải nội dung đến slave server thông qua hỀ

×