Tải bản đầy đủ (.pdf) (68 trang)

Đồ án TN Phát triển hệ thống Game Server Online cho thiết bị di động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.01 MB, 68 trang )



TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
──────── * ───────




ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN




PHÁ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


Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Phạm Ngọc Hoàng
Điện thoại liên lạc: 01656110452 Email:
Lớ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ượng
cao – Đại học Bách Khoa Hà Nội.
Thời gian làm ĐATN: Từ ngày 1/3/2012 đến 31/5 /2012
2. 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ên
mobile. Mục đích của đề tài là xây dựng được một hệ thống hoàn chỉnh, có thể đưa
ra 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ôi
dướ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ất
kỳ 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àng
5. 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ép
bả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


3
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ác
thầ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ệm
quý 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ôn
công nghệ phần mềm, khoa công nghệ thông tin đại học Bách Khoa Hà Nội đã tận
tì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ời
cả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ông
nghệ 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ều
nê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


4
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ển
trong 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át
triể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àng
phong 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ái
niệ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át
triể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 động
củ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ện
phiê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.













5
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
ABSTRACT OF THESIS
Nowadays the significant development has been achieved in the information
technology, especially the mobile area. The emergence and increasing advance of
telecommunication networks including 3G, GPRS and Wifi have brought about great

change 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 basic
concepts about Game Mobile, its recent development and the potential of Game Online
market 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 the
problem 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 and
specific 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 real
environment, 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 and
weaknesses and give some directions for future development.


6
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
LỜI CẢM ƠN 3
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4

ABSTRACT OF THESIS 5
MỤC LỤC 6
DANH MỤC CÁC BẢNG 8
DANH MỤC HÌNH VẼ 9
DANH MỤC TỪ VIẾT TẮT 10
MỞ ĐẦU 11
Chƣơ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 14
Chƣơ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 24
Chƣơ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


7
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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 57
Chƣơ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 62
KẾT LUẬN 66
TÀI LIỆU THAM KHẢO 68



8
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
DANH MỤC CÁC BẢNG
Bảng 1: Bảng liệt kê một vài cổng TCP phổ biến 17
Bảng 2: Bảng mô tả các lớp trong gói Slave Server. 48
Bảng 3: Bảng mô tả các lớp trong gói DataEngine. 49

Bảng 4: Bảng mô tả các lớp trong gói FetchData. 50
Bảng 5: Bảng mô tả các lớp trong gói Log. 51
Bảng 6: Bảng mô tả các lớp trong thiết kế Client 52
Bảng 7: Bảng mô tả các table trong database server user. 56
Bảng 8: Bảng mô tả các table trong Database server content. 57



9
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
DANH MỤC HÌNH VẼ
Hình 1: Mô hình Client – server 15
Hình 2: Cổng truy nhập dịch vụ TCP. 16
Hình 3: Dạng thức của segment TCP. 19
Hình 4: Dạng thức của gói tin UDP. 20
Hình 5: Mô hình quan hệ họ giao thức TCP/IP. 21
Hình 6: Mô hình truyền tin Socket. 21
Hình 7: Biểu đồ Use Case của hệ thống. 27
Hình 8: Biểu đồ phân rã chức năng của hệ thống. 29
Hình 9: Biểu đồ tuần tự mô tả quá trình đăng nhập. 30
Hình 10: Biểu đồ tuần tự mô tả quá trình đăng ký tài khoản miễn phí. 31
Hình 11: Biều đồ tuần tự mô tả quá trình đăng ký tài khoản qua tổng đài SMS 32
Hình 12: Biểu đồ tuần tự mô tả quá trình lấy thông tin ngƣời chơi, Top User 34
Hình 13: Biểu đồ tuần tự mô tả quá trình mua đồ, lấy thông tin hòm đồ. 35
Hình 14: Biểu đồ tuần tự mô tả quá trình kết bạn. 36
Hình 15: Biểu đồ mô tả tuần tự mô tả quá trình chơi game. 38
Hình 16: Kiến trúc tổng quan hệ thống. 42
Hình 17: Mô hình kiến trúc Slave Server. 44
Hình 18: Biểu đồ kiến trúc Client. 46
Hình 19: Các packet của server 46

Hình 20: Biểu đồ class cho gói slave server 47
Hình 21: Biểu đồ class cho gói DataEngine. 48
Hình 22: Biểu đồ class gói FetchData. 50
Hình 23: Biểu đồ class gói Log. 50
Hình 24: Biểu đồ Class thiết kế Client. 51
Hình 25: Biểu đồ thiết kế database server user. 53
Hình 26: Biểu đồ thiết kế database server content. 56
Hình 27: Giao diện đăng nhập nhập, đăng ký, đổi mật khẩu, chọn server. 59
Hình 28: Giao diện nhân vật đi lại trong thành phố. 59
Hình 29: Giao diện bản đồ, chọn khu vực. 60
Hình 30: Giao diện xem thông tin cá nhân, kết bạn. 60
Hình 31: Giao diện hộp thƣ & bạn bè, menu các action sử dụng trong game. 60
Hình 32: Giao diện chọn phòng chơi, bàn chơi. 61
Hình 33: Giao diện phòng chờ. 61
Hình 34: Giao diện chơi game Ai là triệu phú, đánh bài 62
Hình 35: Giao diện trang Report hệ thống. 62



10
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
DANH MỤC TỪ VIẾT TẮT
STT
Từ viết tắt
Ý nghĩa
1
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/IP
3
IP
Internet Protocol
4
UDP
User Datagram Protocol
5
OOP
Object-Oriented Programming: ngôn ngữ lập trình hướng đối
tượng
6
JVM
Java Vitual Machine: bộ máy ảo Java
7
CPU
Central Processing Unit: đơn vị xử lý trung tâm
8
J2SE
Java 2 Standard Edition
9
J2EE
Java 2 Enterprise Edition
10
J2ME
Java 2 Micro Edition

11
CLDC
Connected Limited Device Configuration
12
CDC
Connected Device Configuration
13
MIDP
Mobile Information Device Profile
14
API
Application Programming Interface
15
RGB
Reg Green Blue (Ảnh RGB)
16
SMS
Short Message Service
17
MYSQL
MicroSoft SQL Server


11
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ạng
3G, 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ện

thoạ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ác
Game mobile để cung cấp cho người sử dụng. Tuy vậy, những Game Offline dường
như 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ết
nố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ốt
nghiệp “Phát triển hệ thống Game Server Online trên Mobile”. Mục tiêu của đề tài
là hướng tới xây dựng thành công một hệ thống server game có khả năng đáp ứng
tố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ông
chỉ 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 động
trê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 đến
tay 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. Tuy
nhiê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ơn
nữa.



12
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
Chƣơng 1: ĐẶT VẤN ĐỀ, ĐỊNH HƢỚNG VÀ GIẢI PHÁP
1. 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ác
thiết bị di động, điện thoại thông minh, PDA, máy tính bảng, máy nghe nhạc đa

phươ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ơi
dành riêng cho các dòng máy, hệ thống máy chơi game cầm tay như Nitendo DS
hoặ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ác
loạ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 game
trong 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ê bao
di động. Nếu so với con số khoảng 2000 tỷ đồng mà ngành game PC đạt được trên
tổ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 đặt
cho 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ệp
kinh doanh game chỉ biết “đi đàm phán” để có được các game thay vì mạo hiểm đầu
tư 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ách
chơ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

13
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ước
ngoà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ên
máy tính, game online trên di điện thoại di động được coi là một hướng đi mới
không ít tiềm năng với những nhà kinh doanh game. Để thu hút khách hang, hầu hết
các nhà cung cấp đều miễn phí đăng ký cho người chơi. Trong quá trình chơi, người
dung 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ăng
cho 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ần
chiế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 ko
chỉ 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ác
nhau: 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ắc
phải, đó là phân chia doanh thu và tình trạng crack game. Với cơ chế quản lý toàn
bộ tài khoản người dùng, game play trên server, việc crack game đã gần như được
giả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ân
lượ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ải
quyế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âu
game phát hành, “Báu vật thứ 7” của Phong Phú Sắc Việt, “Chúa Nhẫn” của VTC
mobile, “Avatar” của Teamobi đang trở thành những game hot được cộng đồng
game thủ săn lùng.Theo ước tính doanh thu của các Game online này lên đến hàng

chụ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ây
dự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ền
tảng J2ME. Trong Game là một thành phố ảo mà trong đó cư dân và các bạn trẻ trên
khắ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. Khi
tham 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

14
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ựng
mộ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ản
Client cho người dùng sử dụng. Ngoải ra, cần xây dựng một hệ thống thanh toán
nạp tiền cho người dùng. Đây là phần không thể thiếu đối với một game trên
mobile.
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 Game
Online có khả năng chịu tải lớn, khả năng chịu lỗi cao, tốc độ Game đáp ứng được
nhu 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 server
con để giảm tải cho hệ thống.








15
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
Chƣơng 2: NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG
1. 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ương
trình đóng vai trò là client và một chương trình đóng vai trò là server. Hai chương
trì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ừ client
thì nó phát ra yêu cầu client chuyển sang trạng thái chờ (tạm dừng) cho tới khi
client 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à được
dùng như giao thức mạng và vận chuyển trên mạng Internet. TCP (Transmission

16
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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à giao
thứ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ức
TCP/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ùng
là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ải
thiế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ức
TCP thông qua một cổng (port) của TCP. Số hiệu cổng TCP được thể hiện bởi 2
bytes.


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ữa
mộ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ết
lậ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ên
kế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àm
cò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ết
mới có thể được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động
(passive).

17
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ên
kế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àm
passive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức an
toà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
Reserved
5
Remote job entry
7
Echo
9
Discard
11
Systat
13
Daytime
15
Nestat
17
Quotd (quote odd day)
20
ftp-data
21
ftp (control)
23
Telnet
25
SMTP
37
Time
53
Name Server
102
ISO - TSAP

103
X.400
104
X.400 Sending
111
Sun RPC
139
Net BIOS Session source
160-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ục
bộ (local connection name) cho liên kết được yêu cầu. Thông số này về sau được

18
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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 đến
trong cả hai trường hợp bị động và chủ động. Sau khi một liên kết được mở, việc
truyề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ết
ngườ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àm
send 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 được

dự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ẽ được
gửi đi. Ngược lại cờ PUSH không được dựng thì dữ liệu được dữ lại trong bộ đệm
và 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ới
hiệ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ỗi
liê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ích
hợ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ấp
dữ liệu cho người sử dụng thì có thể dùng cờ URGENT và đánh dấu dữ liệu bằng
bit 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ông
cầ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àm
Abort.
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ệc
truyề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ận
dữ 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ông
chấ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:

19

Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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ên
kế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ất
hợ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ôi
trường.
Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có các
tham 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ừ khi
SYN đượ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ạm
nguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích đã gửi
cho 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.


20
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
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 ACK
number, 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 sau
dữ 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ài
tố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ần
header 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ùng
options.

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ới
TCP, 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ác
dị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ơn
nhiề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ức
nă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.

21
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT

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ận
dữ 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.


22
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
TCP và UDP là các giao thức tầng giao vận để truyền dữ liệu. Mỗi giao thức
có những ưu và nhược điểm riêng. Chẳng hạn, giao thức TCP có độ tin cậy truyền
tin 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ải
phó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ải
có trách nhiệm truyền lại, … Ngược lại, giao thức UDP có tốc độ truyền tin rất
nhanh 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ích
thước hữu hạn được gọi là datagram. Mỗi datagram chứa một header và một
payload. 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 độ tin
cậy truyền tin, payload chứa dữ liệu. Tuy nhiên do các datagram có chiều dài hữu
hạ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ều
gó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 đúng
trì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ác
header, phân tích header của các gói đến, quản lý danh sách các gói đã nhận được
và 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ất
nhiề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ình
khỏ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êu
cầ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. Stream
Socket sử dụng giao thức TCP để cung cấp dịch vụ gửi dữ liệu tin cậy. Datagram
Socket 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ớp
DatagramPacket và DatagramSocket cho kiểu datagram socket.


23
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
Đối với kiểu stream socket, lớp Socket được sử dụng bởi cả client và server. Lớp
Socket 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ác
client 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 Java
Khá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ác
vớ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ồn
thà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ông
dị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ốn
thự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 CPU
của mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU
Macintosh … là khác nhau), vì vậy trước đây một chương trình sau khi được biên
dịch xong chỉ có thể chạy được trên một kiến trúc CPU cụ thể nào đó. Đối với CPU
Intel 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ậy
trước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điều
hà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ẽ được
biên dịch ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu trách
nhiệm chuyển mã java bytecode thành mã máy tương ứng. Sun Microsystem chịu
trá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úc
CPU 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ình
nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịch
thà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.

24
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT

Độ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ính
có hệ điều hành khác nhau (Windows, Unix,Linux, …) miễn sao ở đó có cài đặt
máy ảo java (Java Virtual Machine). Viết một lần chạy mọi nơi (write once run
anywhere).

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ên
quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương
trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hướng đối
tượ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ình
có 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ển
nhiề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 Enterprise
Edition) 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ệ J2ME
Java 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ủa
Java và nó phát triển ứng dụng nhắm vào các thiết bị di động. Chuẩn của J2ME
gồm 2 loại:

25
Sinh viên thực hiện: Phạm Ngọc Hoàng – SHSV: 20071254 – Khóa 52 – Lớp : KSTN - CNTT
CLDC ( Connected Limited Device Configuration): có khả năng truyền
thông trên mạng một cách rời rạc như: điện thoại di động (Mobile phones), máy
nhắn tin hai chiều (two-way pagers), máy trợ lý cá nhân dùng kỹ thuật số (personal
digital asisstants-PDAs). Loại này dùng cho một mục đích đặc biệt, thường giới hạn
về chức năng.
CDC ( Connected Device Configuration): được kết nối cố định và liên tục

như set-top boxes, Internet TVs, Internet – enabled screen phones, high – end
communicators, hệ thống điều hướng xe hơi. Loại này hỗ trợ về giao diện người
dù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ểu
như 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 được
thiế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ười
dù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áy
di độ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ộc
vẫ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àn
hì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ài
nguyê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ính

này, do đó MIDP cũng không có.
- Bộ nạp class (Class Loader).

×