z
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thanh Xuân
NGHIÊN CỨU LẬP TRÌNH ỨNG DỤNG CHO CÁC
THIẾT BỊ DI ĐỘNG ÁP DỤNG CHO BÀI TOÁN
CAMPUS GUIDE
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Mạng và truyền thông máy tính
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Mạng và truyền thông máy tínhCán bộ hướng dẫn: ThS. Nguyễn Việt Anh
HÀ NỘI - 2010 LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công nghệ -
Đại học Quốc gia Hà Nội ñã tận tình giúp ñỡ và truyền ñạt kiến thức cho em trong suốt
4 năm học qua ñể em có ñủ kiến thức hoàn thành khóa luận này.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới thầy Nguyễn Việt Anh – người ñã
Lý do chọn ñề tài 1
1.2.
Nhiệm vụ nghiên cứu 1
1.3.
Bố cục của khóa luận 2
CHƯƠNG 2.
BÀI TOÁN 3
2.1.
Bài toán 3
2.2.
Mô tả 3
2.3.
Mô hình ñề xuất 4
2.3.1.
Mô hình người sử dụng 4
3.1.1.a.
Đăng nhập, ñăng ký 11
3.1.1.b.
Xem bản ñồ 11
3.1.1.c.
Tìm kiếm ñịa ñiểm 11
3.1.1.d.
Danh sách trường, khoa 11
3.1.1.e.
Trợ giúp 11
3.1.1.f.
Xem chi tiết 12
3.1.2.
Đối tượng sử dụng 12
3.2.
Luồng xử lý chương trình 18
3.4.2.a.
Các chức năng chính 20
3.4.2.b.
Luồng chương trình 24
3.5.
Chức năng phía Server 25
3.5.1.
Web service 25
3.5.2.
Servlet 26
3.6.
Các Module xử lý 26
3.6.1.
Phía client 26
CÔNG NGHỆ SỬ DỤNG 29
4.1.
Lĩnh vực ứng dụng không dây với công nghệ Java 29
4.1.1.
Các phiên bản Java 2 29
4.1.2.
Java 2 Enterprise Edition 29
4.1.3.
Java 2 Micro Edition 30
4.1.3.a.
Các kiểu ứng dụng MIDP 30
4.1.3.b.
Hạn chế của các thiết bị di ñộng 31
4.2.
Lập trình Web Service với MIDP 31
SOAP 35
4.3.
Công nghệ bản ñồ 38
4.3.1.
Ảnh SVG 38
4.3.1.a.
Các thuộc tính của ảnh SVG 38
4.3.1.b.
Các chức năng và ñặc trưng 39
4.3.1.c.
Ưu ñiểm 39
4.3.1.d.
Nhược ñiểm 40
4.3.2.
6.2.
Hướng phát triển 45
TÀI LIỆU THAM KHẢO 46 1
CHƯƠNG 1. MỞ ĐẦU
1.1. Lý do chọn ñề tài
Công nghệ thông tin là một phần quan trọng của cuộc sống. Các thiết bị kỹ thuật
cao ngày càng gần gũi với mọi hoạt ñộng của con người. Đặc biệt những năm gần ñây,
các thiết bị không giây - với ưu thế nhỏ gọn, dẽ mang chuyển, ñã chứng tỏ ñược lợi ích
to lớn cho người sử dụng. Trong ñó ñiện thoại di ñộng, với chức năng liên lạc nổi bật
lên như một vật bất ly thân. Với sự phát triển nhanh chóng của công nghệ sản xuất
thiết bị không dây, ñiện thoại di ñộng ñã trở thành phương tiện ña chức năng(nghe
nhạc, chơi trò chơi, lịch làm việc ) phục vụ cho nhu cầu giải trí, làm việc, cập nhật
thông tin mọi lúc, mọi nơi.
Trong cuộc sống, nhu cầu liên lạc, cập nhật thông tin là hết sức cần thiết. Hiện
nay có rất nhiều phương pháp liên lạc khác nhau như thư ñiện tử, ñiện thoại ñể bàn,
ñiện thoại di ñộng, kết nối Wi-fi, WiMax… Trong ñó, ñiện thoại di ñộng nổi bật với
sự tiện lợi, hữu ích. Nhờ chức năng ñàm thoại trực tiếp mọi lúc mọi nơi, mà ñiện thoại
di ñộng ngày càng ñược sử dụng rộng rãi. Điện thoại di ñộng là thiết bị phát triển
nhanh chóng nhất cả về công nghệ lẫn tính năng, ứng dụng. Ngày nay, hầu như mỗi
người ñều mang theo bên mình một chiếc ñiện thoại di ñộng.
Nhu cầu tìm hiểu về Đại học Quốc Gia Hà Nội cũng như các trường ñại học
- Chương 5. Cài ñặt và thử nghiệm.
Chi tiết cách cài ñặt, triển khai chương trình, các kết quả thử nghiệm chương
trình.
3
CHƯƠNG 2. BÀI TOÁN
2.1. Bài toán
Khuôn viên Đại học Quốc gia Hà Nội rộng với nhiều tòa nhà, một sinh viên mới
hay khách tham quan chưa biết ñược vị trí các tòa nhà, ñịa ñiểm. Thông tin chi tiết mô
tả về các trường, khoa trong Đại học Quốc gia cũng cần thiết ñối với họ. Một bảng chỉ
dẫn ñơn thuần không thể thỏa mãn nhu cầu tìm hiểu thông tin.
Ngày nay, hầu hết mọi người ñều có bên mình chiếc ñiện thoại di ñộng nhỏ gọn,
nhiều chức năng. Với sự phát triển công nghệ như ngày nay, các thiết bị di ñộng ngày
càng ña dạng, năng lực xử lý càng tăng. Việc xây dựng các ứng dụng cho thiết bị di
ñộng ngày càng trở lên dễ dàng hơn.
Vì vậy việc một ứng dụng cho phép mọi người dễ dàng xác ñịnh tòa nhà, ñịa
ñiểm ở vị trí nào trong khuôn viên là cần thiết. Ngoài ra ứng dụng phải cung cấp thông
tin cần thiết cho người dùng theo ngữ cảnh.
2.2. Mô tả
Mục tiêu của chương trình là người dùng tìm kiếm ñịa ñiểm, truy xuất thông tin
cần thiết về các trường, khoa trong Đại học Quốc gia nếu họ có ñiều kiện sở hữu một
chiếc ñiện thoại di ñộng hỗ trợ ứng dụng Java.
Cần có giao diện cho phép người dùng xem bản ñồ khu vực ñể xác ñịnh các tòa
nhà, ñịa ñiểm trong Đại học Quốc gia Hà Nội.
Mỗi người dùng ñều có nhu cầu tìm hiểu thông tin khác nhau, vì thế lượng thông
tin cung cấp cho từng người cũng phải khác nhau.
Các thông tin cung cấp phải tùy thuộc vào người dùng và thông tin cũng như
lượng thông tin ñã xem trong quá khứ.
Tính di ñộng
Với một thiết bị di ñộng có hỗ trợ Java, người dùng có thể sử dụng chương trình
Luật lựa chọn
thông tin
Nội dung theo
ngữ cảnh
Hệ thống
Thông tin
yêu cầu
Xử lý
thông tin
5 Vị trí: là thông tin thực về vị trí hiện tại của người dùng. Ta có thể biểu diễn nó
theo kinh ñộ và vĩ ñộ. Do vị trí của người dùng thay ñổi thường xuyên nên việc xác
ñịnh vị trí của người dùng là ñược ưu tiên. Có nhiều cách ta có thể xác ñịnh ñược vị
trí hiện tại của người sử dụng như sử dụng công nghệ ñịnh vị A-GPS, E-OTD hay
Cell-ID hoặc TOA… Ngoài ra, location còn bao gồm cả các thông tin không gian, và
vị trí hiện tại của người sử dụng.
Thời gian: Thời gian ở ñây là thời gian sử dụng chương trình, mỗi người dùng
có ñộ tập trung cũng như lượng thời gian có thể dùng ñể xem thông tin khác nhau.
Thông tin người dùng: Mỗi người dùng có thông tin khác nhau, lượng thông tin
cung cấp cho các ñối tượng người dùng khác nhau cũng phải khác nhau phù hợp với
ñộ tuổi, sở thích…
Lịch sử xem thông tin: Mỗi khi xem một thông tin rồi thì người dùng thường
không muốn xem tiếp trong lần tiếp theo, do ñó cần lưu trữ lịch sử xem thông tin ñể xử
lý trong những lần tiếp theo.
2.3.2. Yếu tố ngữ cảnh
"Bối cảnh là bất kỳ thông tin có thể ñược sử dụng ñể ñặc trưng cho hoàn cảnh
của một thực thể. Thực thể là một người, ñịa ñiểm, hoặc ñối tượng ñó ñược coi là có
không là theo ngữ cảnh liên quan ñến một số hoạt ñộng cụ thể.
o Thay vì xem như ngữ cảnh có thể ñược khoanh ñịnh và ñược xác ñịnh trước,
cách nhìn thay thế chỉ ra rằng phạm vi của các tính năng ñược ñịnh nghĩa ñộng.
o Thay vì xem ngữ cảnh là ổn ñịnh, bối cảnh ñược xem rằng là cụ thể cho từng
lần hoạt ñộng hoặc hành ñộng. Bối cảnh là một thuộc tính thời ñiểm, có liên
quan ñến các cài ñặt cụ thể, ñặc biệt trường hợp hành ñộng và các phần cụ thể
ñể hành ñộng.
o Thay vì ñặt bối cảnh và nội dung thành hai thực thể riêng biệt, xem rằng bối
cảnh phát sinh từ hoạt ñộng. Bối cảnh không chỉ là “ở ñó”, mà là ñang ñược
tạo ra, duy trì và ñưa ra trong quá trình hoạt ñộng.
Ngữ cảnh chương trình:
7
- Thông tin người dùng: mỗi người dùng sẽ có thông tin khác nhau như: tên, kiểu
người dùng, lượng thông tin cần xem…
- Vị trí: Vị trí người dùng ñược xác ñịnh dựa trên Location-Based Service hoặc do
người dùng chủ ñộng lựa chọn. Khi ở ví trị xác ñịnh, thông tin cung cấp sẽ tương
ứng với ñịa ñiểm ñó.
- Thời gian xem thông tin: mức ñộ chi tiết của thông tin sẽ dựa vào thời gian người
dùng muốn xem, người dùng có nhiều thời gian có thể xem thông tin với mức ñộ
chi tiết cao hơn.
- Lịch sử xem thông tin: Khi một người ñã xem một thông tin thì không cần thiết
phải xem lại, do ñó cần loại bỏ tùy chọn xem thông tin ñó ở những lần sau.
2.3.3. Mô hình nội dung
Thông tin sẽ ñược phân cấp theo mức ñộ chi tiết. Để phân cấp theo mức ñộ chi
tiết, ta chọn mô hình thông tin hình cây. Mỗi nút sẽ có một lượng thông tin nhất ñịnh.
Tùy thuộc vào ngữ cảnh thì sẽ lấy thông tin ở một nhánh các nút khác nhau.
8
6
Đỉnh cây
nút nút
nút nút
…
nút nút
…
…
nút nút
…
nút nút
…
…
…
…
9
2.3.4. Các cách cài ñặt cây thông tin
Thông tin về Trường, khoa cần tổ chức phân cấp theo mức ñộ chi tiết của thông
tin. Ngoài ra cần chia thông tin theo từng ñối tượng người dùng. Do dó nên tổ chức
A
A
A
A
11
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH VNU
CAMPUS GUIDE
3.1. Phân tích
3.1.1. Phân tích các yêu cầu chức năng
3.1.1.a. Đăng nhập, ñăng ký
Thông tin của chương trình cung cấp theo ngữ cảnh. Ngữ cảnh bao gồm cả thông
tin người dùng, do ñó cần xác thực người dùng ñể ñưa ra lượng thông tin phù hợp. Vì
vậy cần yêu cầu Đăng nhập.
Khi ñăng nhập cần tài khoản người dùng, do ñó cần yêu cầu Đăng ký tài khoản
ñối với người dùng mới.
3.1.1.b. Xem bản ñồ
Khuôn viên Đại học Quốc gia rộng với nhiều tòa nhà. Cần có bản ñồ ñể người
dùng có cái nhìn tổng quan, xác ñịnh, tìm kiếm ñịa ñiểm thích hợp. Do ñó chương
trình có màn hình chính thể hiện bản ñồ với các tương tác cơ bản như: dịch chuyển bản
ñồ, phóng to, thu nhỏ…
3.1.1.c. Tìm kiếm ñịa ñiểm
Với nhiều tòa nhà trong khuôn viên thì khó có thể xác ñịnh ngay ñược một ñịa
ñiểm nào ñó, vì vậy cần có chức năng tìm kiếm ñịa ñiểm sau ñó hiển thị trên bản ñồ.
3.1.1.d. Danh sách trường, khoa
Người dùng có nhu cầu tìm hiểu thông tin có thể trực tiếp chọn Trường, khoa ñể
xem thông tin.
3.1.1.e. Trợ giúp
Người dùng mới của chương trình có thể không quen và chưa biết chức năng nên
cần có chức năng Trợ giúp cung cấp thông tin chương trình và hướng dẫn sử dụng.
12
3.1.1.f. Xem chi tiết
Bảng 3.1. Hồ sơ người dùng
Tên field Kiểu dữ liệu Mô tả
usrID varchar(30) Định danh người dùng
passwd varchar(30) Mật khẩu
usrType int Kiểu người dùng, 1: Sinh viên, 2: Khách tham quan
Hình 3.1. Sơ ñồ biểu diễn các bảng trong cơ sở dữ liệu
<pk>: Primary key, Khóa chính
<fk>: Foreign key, Khóa ngoài
owner
ownerID
ownerName
topInfoID
int
varchar(50)
varchar(10)
user
usrID
passwd
usrType
varchar(30)
info
infoID
content
childID
varchar(10)
varchar(500)
varchar(10)
<pk >
brotherI
varchar(10)
<fk >
<fk >
log
logID
ownerID
usrID
int
int
varchar(30)
<pk >
topicID
ownerID int Định danh của trường, khoa quản lý ñịa ñiểm này
description varchar(500) Mô tả ñịa ñiểm, thông tin các phòng (nếu là tòa nhà).
4. info: Bảng lưu trữ thông tin về các trường, khoa
Bảng 3.4. Các bản ghi thông tin trường, khoa
Tên field Kiểu dữ liệu Mô tả
infoID varchar(10) Định danh nút info.
content varchar(500) Nội dung của một nút
childID varchar(10) Định danh của nút con trưởng
brotherID varchar(10) Định danh nút em kề
5. log: Bảng lưu trữ lịch sử người dùng xem các topic của các ñịa ñiểm nào.
Bảng 3.5. Lịch sử người dùng
Tên field Kiểu dữ liệu Mô tả
logID int Định danh lịch sử, tự ñộng thêm vào.
ownerID int Định danh trường, khoa
usrID varchar(30) Định danh người dùng
topicID varchar(10)
Định danh nút là ñỉnh của 1 cây con chứa thông tin
trong từng topic (các nút trong bảng info).
3.2.3. Mô tả cây thông tin
Tất cả các thông tin về Trường, khoa ñược lưu trong bảng info. Tổ chức cơ sở dữ
liệu theo hình cây sẽ phân cấp thông tin thành nhiều mức, do ñó tùy người dùng chọn
sẽ xem thông tin theo mức nào.
15
Cây thông tin lưu trữ theo kiểu con trưởng và em kề. Mỗi bản ghi trong bảng info
tương ứng một nút trong cây. Mỗi nút trong cây có thông tin về con trưởng và em kề.
Sơ ñồ tổ chức cây như sau:
info
infoID
content
brotherID
childID
… …
infoID
content
brotherID
childID
Hình 3.2. Mô hình tổ chức cây thông tin
16
3.3. Mô hình kết nối
Hình 3.3. Mô hình kết nối
Ứng dụng viết trên ñiện thoại ñóng vai trò là client giao tiếp với server qua giao
thức HTTP. Dựa vào giao thức HTTP các request từ phía client chuyển ñến server,
server sẽ truy vấn ñến cơ sở dữ liệu MySQL và trả lại response tương ứng. Gói tin
ñược ñược máy di ñộng gửi ñến webserver là những gói tin HTTP request, và thiết bị
di ñộng sẽ nhận ñược các HTTP response từ webserver.
Các gói tin HTTP request và HTTP response này sẽ chứa bên trong các thông
ñiệp SOAP request và SOAP response tương ứng. Các thông ñiệp SOAP sẽ chứa các
operation của web service dùng ñể xử lý kết nối ñến cơ sở dữ liệu tạo thành mô hình
truy cập hàm từ xa RPC (Remote Procedure Call).
Đối với dữ liệu nhị phân như hình ảnh, âm thanh, thì việc truyền trực tiếp qua các
gói tin HTTP mà không phải qua giao thức SOAP sẽ nhanh và thuận tiện hơn. Hình
ảnh sẽ ñược trả lại qua một servlet.
17