Your SlideShare is downloading. ×
Bao cao do an Phát triển hệ thống game server Online
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

2,025
views

Published on

Published in: Education

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,025
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
182
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Đố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. Độ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. 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. - 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. 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. 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. 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. - 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. - 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. 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. 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. - 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ệ thống webservice. - Lưu lại thông tin SMS từ phía người dùng vào database. Web service SMS - Là hệ thống trung gian để truyền tải nội dung từ SMS server đến slave server tương ứng. - Có cơ chế lưu trữ thông tin vào database. - Đảm bảo cung cấp dịch vụ 24/7 - Có thể phục vụ cho nhiều hệ thống khác nhau. Web service Vietpay - Có vai trò trong việc đối soát mã số thẻ cào với nhà mạng Vietpay. 43Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 44. - Nhận mã số thẻ cào từ slave server, sau đó kết nối với hệ thống của nhà cung cấp thẻ cào VietPay để kiểm tra tính hợp lệ của mã số thẻ, lấy mệnh giá mã thẻ và trả về cho slave server. - Có cơ chế lưu trữ thông tin mã thẻ vào database. - Đảm bảo cung cấp dịch vụ 24/7 - Có thể phục vụ cho nhiều hệ thống khác nhau. 2.1.2. Kiến trúc Slave Server: Slave server đóng vai trò quan trọng nhất trong hệ thống, nó chính là trái timcủa hệ thống. Slave server có nhiệm vụ tiếp nhận kết nối từ phía client, nhậnmessage, xử lý message, trả message cho client, điều phối toàn bộ hệ thống, … Dođó, hệ thống chỉ có thể chạy tốt khi Slave server được thiết kế một cách hợp lý, cókhả năng xử lý nhanh, có khả năng chịu lỗi và chịu tải lớn. HÌNH 17: MÔ HÌNH KIẾN TRÚC SLAVE SERVER. Transport Manager: - Quản lý kết nối của các Client, thực hiện trao đổi thông tin với Client. 44Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 45. Dynamic module manager - Load động các module chức năng vào hệ thống. Client Instance: - Duy trì kết nối của Client, thực hiện trung chuyển message giữa các Client - Tiếp nhận các yêu cầu khác như: gửi yêu cầu kết bạn, cập nhật dịch vụ, .. Game Play Modules: - Là các module chức năng, thực hiện kịch bản cho mỗi game và duy trì ván chơi cho các client. Config Manager - Quản lý cấu hình ứng dụng - Load/reload cấu hình Logger - Thực hiện ghi History Log của ứng dụng ra file Database Manager - Thực hiện kết nối và cung cấp các phương thức truy cập Cơ sở dữ liệu cho các module khác của ứng dụng Data loading Kết nối và lấy dữ liệu từ các hệ thống server quản lý tài khoản, nội dung tậptrung qua Internet. 2.1.3. Kiến trúc Client Client của ứng dụng được thiết kế trên nền tảng J2ME, bao gồm các thànhphần: GUI (Graphical user interface): Bao gồm các lớp và phương thức xử lýtrong Game. NetWork Connection Hander: Đây là khối quản lý việc giao tiếp với SlaveServer, nó bao gồm 2 thành phần Reader và Writer. Reader: Có nhiệm vụ đọc dữ liệu nhận được từ slave server, sau đó đẩy góidữ liệu nhận được vào Incoming message Writer: Gửi dữ liệu từ Client lên Slave Server Incomming message: Lớp nhận dữ liệu nhận được dưới dạng các gói, tổnghợp lại để xử lý, sau đó đẩy dữ liệu nhận được vào Thread Pool. Thread Pool: dữ liệu nhận được được đưa vào hàng đợi để xử lý lần lượt 45Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 46. HÌNH 18: BIỂU ĐỒ KIẾN TRÚC CLIENT. 2.2. Xây dựng biểu đồ lớp 2.2.1. Xây dựng biểu đồ lớp cho server Server được xây dựng gồm có 4 thành phần chính được chia thành 4 packet:SlaveServer, DataEngine, FetchData, Log. SlaveServer: Gói chính để xử lý giao tiếp với các Client, là khối trung tâmđiều hành mọi hoạt động của hệ thống. DataEngine: Đây là gói để thao tác đọc, ghi dữ liệu với Database server user. FetchData: gói để đọc dữ liệu từ Database server content. Log: gói để ghi lại toàn bộ log của hệ thống HÌNH 19: CÁC PACKET CỦA SERVER 46Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 47. 2.2.1.1. Thiết kế gói SlaveServer Gói SlaveServer bao gồm các lớp phục vụ cho việc kết nối, trao đổi dữ liệuvới Client. Nó là gói thực hiện việc điều phối hệ thống Game. HÌNH 20: BIỂU ĐỒ CLASS CHO GÓI SLAVE SERVERSTT Tên lớp Chức năng1 Main Lớp chính bắt đầu khi chạy server2 SlaveServer Đây là lớp chính thực hiện việc bắt kết nối khi các client kết nối tới server. Khi nhận được kết nối mới từ client, slaveserver sẽ thực hiện việc bắt tay kết nối, sau đó chuyển nhiệm vụ xử lý với Client đó sang cho lớp ClientThread3 ClientThread Lớp này sẽ quản lý Client tương ứng mà nó đảm nhiệm. ClientThread gồm có 2 lớp con là ReaderThread và ProcessThread4 ReaderThread Lớp này có nhiệm vụ đọc dữ liệu nhận được từ Client và đẩy vào hàng đợi để lớp ProcessThread xử lý5 ProcessThread Đây là lớp chính điều phối quá trình chơi game của người dùng. Lớp này sẽ đọc dữ liệu từ hàng đợi chứa dữ liệu người dùng lên, xử lý dữ liệu nhận được và trả phản hồi về cho người dùng. 47Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 48. 6 Config Đây là lớp lưu trữ toàn bộ cấu hình của hệ thống7 Loto Lớp này thực hiện việc đọc kết quả xổ số hàng ngày. Khi có kết quả xổ số, nó thực hiện nhiệm vụ cộng tiền vào tài khoản người dùng và thông báo cho người chơi.8 StringHelper Lớp này xử lý việc cắt chuỗi thành các chuỗi nhỏ hơn9 GameTimer Bộ đếm thời gian trong Game BẢNG 2: BẢNG MÔ TẢ CÁC LỚP TRONG GÓI SLAVE SERVER.2.2.1.2. Thiết kế gói DataEngine Gói DataEngine có nhiệm vụ kết nối đến Database server user để đọc và ghidữ liệu khi có yêu cầu từ Slave Server. HÌNH 21: BIỂU ĐỒ CLASS CHO GÓI DATAENGINE.STT Tên lớp Chức năng1 DataEngine Kết nối với database Mysql, thực hiện việc gọi kết nối 48Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 49. đến database, lấy dữ liệu, update dữ liệu và trả dữ liệu về cho slave server.2 User Xử lý các lệnh query, update tới bảng user trong database3 Playmoney Xử lý các lệnh query, update tới bảng paymoney trong database4 Message Xử lý các lệnh query, update tới bảng message trong database5 MoneyLog Xử lý các lệnh query, update tới bảng moneylog trong database6 Loto Xử lý các lệnh query, update tới bảng loto trong database7 Friends Xử lý các lệnh query, update tới bảng friends trong database8 LogShop Xử lý các lệnh query, update tới bảng logshop trong database9 Notice Xử lý các lệnh query, update tới bảng notice trong database10 InfoServer Xử lý các lệnh query, update tới bảng infoserver trong database11 TotalUser Xử lý các lệnh query, update tới bảng totaluser trong database12 LogSMS Xử lý các lệnh query, update tới bảng logsms trong database13 ErrorMessage Xử lý các lệnh query, update tới bảng errormessage trong database BẢNG 3: BẢNG MÔ TẢ CÁC LỚP TRONG GÓI DATAENGINE.2.2.1.3. Thiết kế gói FetchData Gói FetchData có nhiệm vụ lấy dữ liệu từ database server content thông quagiao thức HTTP qua mạng Internet. Lý do việc lấy dữ liệu này lại phải thông qua giao thức HTTP mà không phảilà lấy trực tiếp từ database được lý giải là do nội dung dữ liệu này không chỉ đượcsử dụng cho riêng dịch vụ của hệ thống này, mà nó còn được dùng cho các dịch vụkhác. Việc tạo một kết nối HTPP để lấy dữ liệu sẽ giúp các dịch vụ khác dễ dànglấy được dữ liệu mà không cần phải viết lại các phương thức để lấy dữ liệu từdatabase ra. Mặt khác, việc sử dụng dữ liệu tập trung giúp cho việc đồng bộ dữ liệu 49Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 50. được dễ dàng, khi có thay đổi, thêm, sửa dữ liệu thì nội dung sẽ được cập nhật lạicho tất cả các dịch vụ. Hiện tại, dữ liệu ở database server content có 2 loại dữ liệu: dữ liệu xổ số vàdữ liệu bói toán. HÌNH 22: BIỂU ĐỒ CLASS GÓI FETCHDATA.STT Tên lớp Chức năng1 Boi Lấy dữ liệu về phần bói toán và trả về cho SlaveServer2 Loto Lấy dữ liệu về phần xổ số và trả về cho SlaveServer BẢNG 4: BẢNG MÔ TẢ CÁC LỚP TRONG GÓI FETCHDATA. Ở phần này em không đề cập đến việc lấy dữ liệu từ database server contentlên một địa chỉ HTTP như thế nào. Do hệ thống lớn, có nhiều phần nên trong quátrình thực tập tại công ty SunNet, phần lấy dữ liệu từ database server user lên địachỉ HTTP do một thành viên khác đảm nhiệm. Nhiệm vụ của em là lấy nội dung từđịa chỉ HTTP đó và trả về cho slave server.2.2.1.4. Thiết kế gói Log Gói Log có nhiệm vụ ghi lại toàn bộ nhật ký của hệ thống. Có 2 loại log cầnghi lại: log của người chơi trong Game và log ghi lại lỗi phát sinh của hệ thống. HÌNH 2: BIỂU ĐỒ CLASS GÓI LOG. 50Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 51. STT Tên bảng Chức năng1 LogLevel Phân loại dạng dữ liệu để ghi ra File2 LogWriter Xử lý in dữ liệu cần ghi ra File3 MoneyLog Ghi dữ liệu nhật ký thay đổi tiền của người dùng vào database BẢNG 5: BẢNG MÔ TẢ CÁC LỚP TRONG GÓI LOG. Khi hệ thống gặp lỗi, nó sẽ đẩy lỗi ghi nhận được vào hàng đợi và đẩy cholớp ghi log. Lớp ghi log có nhiệm vụ đọc các lỗi nhận được từ hàng đợi và ghi rafile trên server. Tương tự với việc ghi log của người chơi, trong quá trình chơi game, hệthống sẽ đẩy dữ liệu cần ghi vào hàng đợi cho lớp ghi log, lớp này sẽ đọc dữ liệunhận được từ hàng đợi và ghi vào database của hệ thống. 2.2.2. Xây dựng biểu đồ lớp cho Client HÌNH 3: BIỂU ĐỒ CLASS THIẾT KẾ CLIENT.STT Lớp Chức năng1 Midlet Lớp chính để start ứng dụng2 Record Lớp đọc ghi dữ liệu vào bộ nhớ RMS của ứng dụng J2ME3 HTTPconnection Lớp kết nối tới địa chỉ InfoServer để lấy thông tin về địa chỉ IP, port của các SlaveServer4 Sound Lớp điều chỉnh âm thanh của Game5 TextBox Lớp điều chỉnh bộ gõ chữ trong Game6 SendSMS Lớp gửi tin nhắn SMS tới tổng đài 51Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 52. 7 GameDesign Lớp thiết kế bản đồ, các Sprite, TiledLayer trong Game8 Shop Lớp phục vụ cho việc mua đồ, hòm đồ9 ReaderThread Lớp đọc dữ liệu nhận được từ slave server, đẩy dữ liệu vào hàng đợi10 ThreadPool Lớp xử lý dữ liệu nhận được từ hàng đợi mà ReaderThread đẩy vào. Đẩy dữ liệu sang hàng đợi gửi dữ liệu.11 WriterThread Lớp này đọc dữ liệu từ hàng đợi mà ThreadPool đẩy vào, sau đó gửi dữ liệu lên slave server.12 Login Lớp giao diện phần Login: đăng ký, đăng nhập, đổi mật khẩu, báo lỗi qua SMS13 City Lớp giao diện phần đi lại, giao tiếp, sử dụng dịch vụ trong thành phố (xem bói, chơi xổ số), xem thông tin cá nhân, hộp thư, kết bạn, …14 ListRoom Lớp giao diện phần chọn phòng chơi15 ListTable Lớp giao diện phần chọn bàn chơi16 WaitingRoom Lớp giao diện phần phòng chờ của người chơi17 Game Lớp phục vụ cho việc chơi Game, bao gồm các game: Tá lả, Tiến lên miền bắc, tiền lên miền nam, ba cây, Ai là triệu phú. BẢNG 6: BẢNG MÔ TẢ CÁC LỚP TRONG THIẾT KẾ CLIENT. 2.3. Thiết kế Database Trong hệ thống chia làm 2 loại database: Database server user: lưu trữ toàn bộ thông tin liên quan đến tài khoảnngười dùng. Database server content: lưu trữ thông tin về nội dung của game như câu hỏiAi là triệu phú, dữ liệu về bói. 52Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 53. 2.3.1. Database server user HÌNH 4: BIỂU ĐỒ THIẾT KẾ DATABASE SERVER USER.STT Tên bảng Chức năng1 user Đây là bảng chính lưu trữ thông tin cơ bản của người dùng. ID: số thứ tự đăng ký của người dùng Username: tên tài khoản Password: mật khẩu Sex: giới tính người dùng đăng ký Hair: loại tóc mà nhân vật của người chơi đang sử dụng Clothes: loại quần áo mà người dùng đang sử dụng Money: số gold hiện tại mà người dùng đang có Isplay: trạng thái của người chơi đang online hay offline Idlogin: thứ tự đăng nhập của người dùng trên server ở thời điểm hiện tại Level: cấp độ của người chơi. Experience: điểm kinh nghiệm của người chơi Win: số trận thắng Lose: số trận thua 53Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 54. Quitgame: số lần bỏ cuộc Hat: loại mũ đang sử dụng Xu: số xu hiện tại của người dùng Dateregister: ngày đăng ký nick slaveID: đanh dấu xem người dùng đang đăng nhập vào slave server nào của hệ thống company: đánh dấu người dùng này thuộc sở hữu của công ty nào companyDetail: mô tả về công ty đó phonenumber: số điện thoại mà người dùng đăng ký. Millionlevel: kỷ lục cao nhất của người dùng trong game Ai là triệu phú Millionscore: số điểm của người chơi trong game Ai là triệu phú Clothesbox: hòm đồ quần áo của người chơi Hairbox: hòm đồ tóc của người chơi. Version: phiên bản hiện tại mà người chơi đang sử dụng Lastlogin: lần cuối cùng người dùng đăng nhập vào hệ thống Phomexp: điểm kinh nghiệm của game tá lả Tienlenexp: điểm kinh nghiệm của game tiến lên Bacayexp: điểm kinh nghiệm của game ba cây. Milliontimes: số lần người chơi vượt qua câu 15 của game Ai là triệu phú.2 Paymoney Ghi log lại giao dịch nạp tiền của người dùng. ID: số thứ tự Username: tên người dùng SMSmaster: đầu số người dùng nhắn tin tới SMSkind: loại tin nhắn nạp tiền SMSdetail: mô tả về loại hình nạp tiền. Company: giao dịch nạp tiền thuộc về đối tác nào CompanyDetail: mô tả về đối tác Money: số tiền nạp Date: thời gian thực hiện giao dịch.3 Messages Bảng lưu tin nhắn của người dùng trong game cho nhau ID: số thứ tự. 54Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 55. Usersend: tên tài khoản của người gửi Message: nội dung tin nhắn Userreceive: tên tài khoản người gửi.4 moneylog Bảng ghi lại các thay đổi về gold của người chơi trong quá trình chơi game. ID: số thứ tự Username: tên tài khoản Moneychange: số tiền thay đổi Date: thời gian số gold bị thay đổi5 loto Bảng ghi thông tin người dùng mua vé số. ID: số thứ tự Username: tên tài khoản lotoID: vé số mà người dùng mua money: mệnh giá tiền của vé số time: thời gian mua vé số6 friends Bảng lưu trữ thông tin bạn bè của người chơi ID: số thứ tự User1: tên tài khoản người thứ nhất User2: tên tài khoản người thứ hai7 logshop Bảng ghi lại giao dịch mua đồ của người chơi. ID: số thứ tự Username: tên tài khoản. Item: loại đồ đã mua (quần áo hoặc đầu tóc) Number: số thứ tự của loại đồ mà người dùng đã mua Date: ngày mua đồ8 notice Bảng ghi nội dung thông báo của hệ thống đến người dùng. ID: số thứ tự Message: nội dung cần thông báo9 infoserver Bảng ghi thông số của server. Maxgame: số lượng game tối đa hiện có trên server Maxserver: số lượng slave server tối đa. Maxroom: số lượng phòng chơi tối đa Maxuser: số lượng người chơi tối đa trong 1 bàn chơi.10 totaluser Bảng ghi log số lượng người dùng đăng nhập vào hệ thống trong ngày. 55Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 56. ID: số thứ tự Date: ngày hiện tại ghi log Sum: tổng số lần đăng nhập11 logSMS Ghi lại nội dung tin nhắn người dùng gửi đến server. ID: số thứ tự Fullcontent: nội dung tin nhắn Date: thời gian nhận được tin nhắn.12 Errormessage Bảng ghi nội dung báo lỗi, góp ý của người dùng. ID: số thứ tự Username: tên tài khoản Content: nội dung báo lỗi Time: thời gian báo lỗi BẢNG 7: BẢNG MÔ TẢ CÁC TABLE TRONG DATABASE SERVER USER. 2.3.2. Database server content HÌNH 26: BIỂU ĐỒ THIẾT KẾ DATABASE SERVER CONTENT.STT Bảng Chức năng1 ailatrieuphu_question Lưu trữ thông tin câu hỏi của game Ai là triệu phú. ID: số thứ tự Question: nội dung câu hỏi CaseA: đáp án A CaseB: đáp án B CaseC: đáp án C 56Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 57. CaseD: Đáp án D TrueCase: câu trả lời đúng Area: Lĩnh vực của câu hỏi Note: Ghi chú về câu hỏi Level: cấp độ của câu hỏi.2 boi Lưu trữ dữ liệu về phần bói toán. ID: số thứ tự Title: tiêu đề của lời phán Comment1: Nội dung thứ nhất của lời phán Comment2: Nội dung thứ hai của lời phán Comment3: Nội dung thứ ba của lời phán. BẢNG 8: BẢNG MÔ TẢ CÁC TABLE TRONG DATABASE SERVER CONTENT. 2.4. Thiết kế gói tin Giữa Client và server có thể giao tiếp được với nhau bằng cách truyền cácgói tin qua SOCKET. Để server và client có thể hiểu được gói tin mà bên kia gửisang, các gói tin truyền đi phải được định nghĩa theo một định dạng nhất định. Do tốc độ truyền tin giữa ứng dụng mobile và server rất chậm, việc truyềnnhận gói tin sẽ rất có thể bị mất hoặc bị chậm trễ. Các gói tin phải thiết kế sao cho dung lượng nhỏ nhất, bên nhận có thể hiểuđược khi nhận được gói tin và bảo toàn được dữ liệu khi gửi đi. Gói tin truyền nhận giữa Client và server được thiết kế như sau: }MA|Segment1|Segment2|……|SegmentN& Mỗi gói tin gồm có 3 phần: }: Ký hiệu đánh dấu bắt đầu gói tin. &: Ký hiệu đánh dấu kết thúc gói tin. MA|Segment1|Segment2|……|SegmentN: nội dung của gói tin. Ở đây, nội dung gói tin bao gồm: MA: mã gói tin. Mã gói tin dùng để phân biệt các loại gói tin với nhau.Client và server sẽ nhận diện loại gói tin dựa vào Mã gói tin. Segment1|Segment2|….|SegmentN: Các khối nội dung của gói tin. Ở đây,các thông tin riêng biệt được tác rời nhau bằng dấu “|”. Các gói tin trước khi truyền đi sẽ được mã hóa sang một mảng byte, sau đósẽ được truyền sang cho bên nhận. Bên nhận gói tin sẽ chuyển gói tin từ dạng bytesang dạng text, sau đó đọc nội dung gói tin dựa vào mã gói tin và nội dung gói tin. 57Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 58. Chƣơng 4: KẾT QUẢ ĐẠT ĐƢỢC Qua quá trình nghiên cứu, tìm hiểu dưới sự hướng dẫn của ThS Lê Tấn Hùngem đã xây dựng thành công hệ thống Game server Online trên nền tảng Java. Được sự hộ trợ của công ty cổ phần giải pháp truyền thông và công nghệthông tin SunNet, hệ thống game đã được cài đặt và đưa vào hoạt động. 1. Môi trƣờng cài đặt hệ thống Do tính chất phức tạp của hệ thống Online nên để đưa vào cài đặt hoànchỉnh, cần phải có sự hỗ trợ rất nhiều về máy móc và các phần mềm kỹ thuật liênquan. Hệ thống server được cài đặt trên môi trường: Máy chủ: HP Proliant DL360 G5 E5430 (2x Quad Core E5430 2.66GHz,Ram 4GB, HDD 3x72GB, PS 700W) Hệ điều hành: Windows Server 2008 Hệ quản trị cơ sở dữ liệu: Mysql 5.5 Ngôn ngữ lập trình: Java, J2ME (đây là phần xây dựng server và client doem đảm nhiệm), ngoài ra còn có sử dụng các ngôn ngữ lập trình PHP, HTML đểxây dựng các Tool hỗ trợ việc quản lý hệ thống (được sự hỗ trợ của các anh chịtrong công ty cổ phần giải pháp công nghệ thông tin và truyền thông SunNet). 2. Cài đặt và thử nghiệm hệ thống Hệ thống đã được cài đặt thử nghiệm thành công và chạy khá ổn định. Baogồm: 1 địa chỉ Info Slave được đặt tại địa chỉ http://server.yocity.vn/infoslave.php,một slave server (quá trình thử nghiệm đã chạy thử với 2 slave server) được chạythật trên thực tế, 1 database server user được cài đặt trên cùng server với slaveserver, 1 database server content, 1 địa chỉ http để lấy nội dung xổ số và nội dungphần bói toán, 1 phiên bản client trên J2ME.Giao diện chƣơng trình Client: Chương trình Client được thiết kế là một thành phố trên mây, với giao diệnthân thiện, dễ nhìn, phù hợp với những đối tượng trẻ tuổi. 58Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 59. HÌNH 27: GIAO DIỆN ĐĂNG NHẬP, ĐĂNG KÝ, ĐỔI MẬT KHẨU, CHỌN SERVER. HÌNH 28: GIAO DIỆN NHÂN VẬT ĐI LẠI TRONG THÀNH PHỐ. 59Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 60. HÌNH 29: GIAO DIỆN BẢN ĐỒ, CHỌN KHU VỰC. HÌNH 30: GIAO DIỆN XEM THÔNG TIN CÁ NHÂN, KẾT BẠN. HÌNH 31: GIAO DIỆN HỘP THƢ & BẠN BÈ, MENU CÁC ACTION SỬ DỤNG TRONG GAME. 60Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 61. HÌNH 32: GIAO DIỆN CHỌN PHÒNG CHƠI, BÀN CHƠI. HÌNH 33: GIAO DIỆN PHÒNG CHỜ. 61Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 62. HÌNH 34: GIAO DIỆN CHƠI GAME AI LÀ TRIỆU PHÚ, ĐÁNH BÀIGiao diện Tool report hệ thống: HÌNH 35: GIAO DIỆN TRANG REPORT HỆ THỐNG. Trang report hệ thống được thiết kế đơn giản và trực quan, có phân quyềncho người sử dụng. 3. Kết quả thực nghiệm Hệ thống game được đưa vào chạy thử nghiệm từ tháng 11/2011 và cho đếnnay vẫn đang được tiếp tục phát triển. Đã có 9 phiên bản Client được update chongười sử dụng cập nhật. Hiện tại, em đang phát triển tiếp phiên bản tiếp theo củagame với nhiều tính năng và giao diện hoàn toàn mới, phù hợp với các dòng điệnthoại hiện nay. Hệ thống server được xây dựng theo mô hình nhiều slave server nên có thểchịu tải được với hàng nghìn user cùng online tại cùng một thời điểm. Qua kiểm thửbằng cách tự sinh các client bằng tool, em đã kiểm nghiệm được khả năng chịu tảitối đa của một slave server là khoảng 1400 client cùng đăng nhập và chơi một lúc. 62Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 63. Tốc độ phản hồi dữ liệu từ phía server về các Client: Hình 36: Tốc độ phản hồi dữ liệu của server về Client. Khối đầu đánh giá tốc độ phản hồi của server khi được chạy trên hệ thốngserver thật. Khối thứ 2 đánh giá tốc độ phản hồi của server khi cài đặt server trênmáy chủ Local host trên máy tính. Khối màu đỏ là tốc độ phản hồi đối với ứng dụngClient chạy bằng giả lập trên PC, khối màu xanh là tốc độ phản hồi đối với ứngdụng chạy trên thiết bị di động sử dụng mạng GPRS của nhà mạng Viettel, sử dụngmáy Nokia C3-00. Trục tung là thời gian phản hồi của server (tính bằng ms). Sau 7 tháng đưa ra thị trường, sản phẩm đã khá thu hút được sự chú ý củakhách hàng. Lượng người chơi đăng ký sử dụng sản phẩm cho đến thời điểm hiệntại là gần 170.000 user. Số lượng người dùng online vào một thời điểm khoảng 600user, thời điểm cao nhất là gần 800 user Số lượng người dùng nạp tiền hàng ngày làkhoảng 600 người. Đem lại doanh thu trung bình 1 ngày vào khoảng gần 3 triệuđồng. Thống kê tình trạng người dùng sử dụng hệ thống theo ngày: số lần đăngnhập Game, số lượng tài khoản đăng nhập hệ thống, số người đăng ký mới. Hình 37: Biểu đồ thống kê tình trạng ngƣời dùng sử dụng hệ thống. 63Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 64. Theo số liệu thống kê, hàng ngày có khoảng gần 1000 người sử dụng đăngký mới vào hệ thống. Số lượng tài khoản đăng nhập vào hệ thống một ngày là hơn8000 tài khoản. Số lần đăng nhập một ngày dao động trong khoảng 30000 lần đăngnhập. Hình 38: Biểu đồ thống kê số lƣợng ngƣời dùng đang đăng nhập vào hệ thống. Lượng người dùng đăng nhập trong ngày là khoảng 500 – 600 user. Vàothời gian cao điểm, lượng người dùng đăng nhập vào hệ thống đạt mức 800 usercùng đăng nhập vào hệ thống. Khả năng chịu tải của hệ thống: Server được phân tải thành các slave server để đáp ứng được số lượng ngườidùng rất lớn. Trên thực tế, số lượng người dùng chưa đủ lớn để đánh giá đúng khảnăng chịu tải của server, do vậy việc thử nghiệm khả năng chịu tải của server bằngphương pháp tự sinh Client tự động cho hệ thống. Hình 39: Biểu đồ tình trạng tài nguyên hệ thống trên server. 64Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 65. Số user CPU (%) Memory (MB) Handles Threads400 0 395 7857 763800 3 504 8906 18061000 5 695 1176 23971400 7 990 1317 2949 Bảng 9: Bảng mô tả tình trạng tải của server. Qua thử nghiệm, bằng số liệu thống kê, khả năng chịu tải của 1 slave serverlà khoảng 1400 user. Như vậy, với khoảng 10 slave server, hệ thống có khả năngchịu tải với khoảng 14000 user. Sản phẩm nhìn chung đã đáp ứng được nhu cầu của người dùng với giao diệnđẹp và dễ sử dụng. Hệ thống chạy ổn định, chất lượng dịch vụ đảm bảo. Tuy nhiên,do tính chất của đường truyền của mạng 3G/GPRS thấp và thiếu ổn định nên vẫncòn xảy ra các trường hợp bị lag khi chơi game. Đây là bài toán khó giải quyết đốivới các game mobile online hiện nay. So với các game tương tự trên thị trường hiệnnay (Avatar, Iwin,…) sản phẩm có khả năng cạnh tranh. Tuy nhiên, do kịch bản củagame còn chưa hay, nội dung chưa phong phú nên hiện tại so với các game kháctrên thị trường, lượng người dùng sử dụng sản phẩm vẫn còn hạn chế. 65Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 66. KẾT LUẬN Sau đây là một kết quả chính mà em đã đạt được sau quá trình làm đồ án tốtnghiệp:Lý thuyết: Tìm hiểu, nghiên cứu về game mobile trên J2ME Tìm hiểu, nghiên cứu mô hình client server để áp dụng vào hệ thống gameserver online cho mobile. Nghiên cứu xây dựng mô hình server phân tán để tăng khả năng chịu tải củahệ thống. Nghiên cứu kỹ thuật lập trình Socket trong Java để trao đổi dữ liệu giữaClient và server.Chƣơng trình: Xây dựng được hệ thống game server online trên mobile hoàn chỉnh, đã đượcđưa vào sử dụng. Tạo ra được một thế giới ảo trên điện thoại di động mà ở đó người chơi cóthể chơi trên chính điện thoại của mình. Với cách thức đăng ký đơn giản, ngườidùng chỉ cần có GPRS, 3G hoặc Wifi là có thể đăng nhập vào chơi game mọi lúc,mọi nơi. Là nơi mà người chơi có thể giao lưu, kết bạn, chia sẻ cảm xúc và chơi cáctrò chơi Online với nhau. Bước đầu đã có được chỗ đứng trên thị trường game online mobile tại ViệtNam với số lượng người dùng khá lớn.Hạn chế Sản phẩm vẫn còn nhiều hạn chế về chất lượng sản phẩm chưa tốt, kịch bảngame chưa hay. Các chức năng người dùng vẫn còn thiếu, chưa mang lại sự hấp dẫncho người dùng. Game vẫn còn hay bị lag vào giờ cao điểm khi số lượng người sử dụng đông,đặc biệt là khi mạng GPRS bị quá tải. Phiên bản Client hiện có chỉ hỗ trợ các dòng máy Java có cấu hình tương đối,một số máy cấu hình thấp game không hỗ trợ. Chưa có các phiên bản cho các điệnthoại thông minh Android, Iphone hay trên các nền tảng khác. Hệ thống bảo mật còn chưa tốt.Phƣơng hƣớng phát triển Mạng di động đang ngày một phát triển và chưa có dấu hiệu dừng lại. Thịtrường Game mobile online đang phát triển rất mạnh mẽ tại Việt Nam. Đặc biệt sựphát triển mạnh mẽ của các điện thoại đời cao đang dần chiếm lĩnh thị trường,hướng phát triển của hệ thống như sau: 66Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 67. Cải thiện chất lượng hệ thống: tăng khả năng chịu tải, chịu lỗi, hạn chế lagmạng khi chơi game. Thêm các tính năng mới cho Game: tính năng cập nhật thông tin cá nhân,thêm các dịch vụ xã hội mới như đọc truyện, xem kết quả thi đại học, ôn thi trựctuyến, cập nhật tin tức xã hội, bóng đá, … Tích hợp thêm các game mới vào sảnphẩm cho phong phú. Phát triển hệ thống thành mạng xã hội về Game sau này, có thể sử dụng tàikhoản của Yahoo để đăng nhập vào hệ thống. Phát triển thêm bản client trên các nền tảng Android, Iphone, HTML5, đưahệ thống trở thành một hệ thống game online đa nền tảng. 67Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
  • 68. TÀI LIỆU THAM KHẢO 1. Cay S. Horstmann, Gary Cornell, Core 2 Java, 2 Volume I - Fundamentals, Seventh Edition, Prentice Hall PTR, August 17, 2004. 2. David Reilly, Michael Reilly, Java™ Network Programming and Distributed Computing, Addison Wesley, March 25, 2002. 3. Paul Hyde, Java Thread Programming, 1999. 4. Scott Oaks, Henry Wong, Java Threads, Third Edition, OReilly, September 2004. 5. John W. Muchow, Core J2ME™ Technology & MIDP, Prentice Hall PTR, December 21, 2001. 6. MARTIN J.WELLS, Game Programming, 2004 7. Giáo trình mạng máy tính, http://www.scribd.com/doc/983321/giao-trinh- mang-may-tinh, last visited 6-2012. 8. Tài liệu giới thiệu về Socket, http://tailieu.vn/xem-tai-lieu/gioi-thieu-ve- socket.554313.html, last visited 6-2012. 9. Tài liệu hệ phân tán, http://www.wattpad.com/72987-H-ph-n-t-n#!p=2, last visited 6-2012. 10. Connection Pooling, http://java.sun.com/developer/onlineTraining/Programming/JDCBook/conpo ol.html, last visited 6-2012. 11. JDBC basics, http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html, last visited 6-2012. 12. Network Programming with J2ME Wireless Devices, http://www.wirelessdevnet.com/channels/java/features/j2me_http.phtml, Yu Feng, last visited 6-2012. 13. Chi-Chang Chen Cheng-Jong Lee, A dynamic load balancing model for the multi – server online game systems, http://www.csie.isu.edu.tw/homepage/ccchen/poster.pdf , last visited 6-2012. 14. Eric Cronin Burton Filstrup Anthony Kurc Electrical Engineering and Computer Science Department University of Michigan, A distributed Multiplayer Game System, 2001, http://warriors.eecs.umich.edu/games/papers/quakefinal.pdf, last visited 6- 2012. 68Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT