Ứng dụng ñã ñáp ứng ñược những chức năng cần thiết nhất trong việc xem bản ñồ, cung cấp thông tin theo ngữ cảnh về Đại học Quốc gia Hà Nội... Ngoài ra ứng dụng phải cung cấp thông tin cầ
Trang 1ĐẠ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
Trang 2ĐẠ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
Cán bộ hướng dẫn: ThS Nguyễn Việt Anh
HÀ NỘI - 2010
Trang 3LỜ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 ñã
nhiệt tình giúp ñỡ, ñịnh hướng cũng như ñộng viên em trong quá trình nghiên cứu và hoàn thành khóa luận
Em xin cảm ơn sự nhiệt tình chia sẻ kinh nghiệm, ñóng góp ý kiến của nhóm nghiên cứu do thầy Nguyễn Việt Anh hướng dẫn, của các anh chị cao học
Mặc dù ñã rất cố gắng hoàn thành khóa luận này, xong khóa luận sẽ khó tránh khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo giúp em Một lần nữa em xin cảm ơn tất cả mọi người
Hà Nội, tháng 5 năm 2010
Sinh viên Nguyễn Thanh Xuân
Trang 4TÓM TẮT
Khóa luận tập trung nghiên cứu và phân tích một số vấn ñề sau:
- Tìm hiểu về công nghệ J2ME, Web service, Servlet, bản ñồ
- Áp dụng xử lý dữ liệu theo ngữ cảnh vào các bài toán thực tế
- Xây dựng thành công chương trình “Hướng dẫn cung cấp thông tin về Đại học Quốc gia Hà Nội - VNU Campus Guide” Ứng dụng ñã ñáp ứng ñược những chức năng cần thiết nhất trong việc xem bản ñồ, cung cấp thông tin theo ngữ cảnh về Đại học Quốc gia Hà Nội
Trang 5MỤC LỤC
CHƯƠNG 1 MỞ ĐẦU 1
1.1 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
2.3.2 Yếu tố ngữ cảnh 5
2.3.3 Mô hình nội dung 7
2.3.4 Các cách cài ñặt cây thông tin 9
2.3.5 Luật lựa chọn thông tin cung cấp cho từng người dùng 10
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH VNU CAMPUS GUIDE 11
3.1 Phân tích 11
3.1.1 Phân tích các yêu cầu chức năng 11
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 Thiết kế cơ sở dữ liệu 12
3.2.1 Sơ ñồ dữ liệu 12
3.2.2 Chi tiết thiết kế cơ sở dữ liệu 13
3.2.3 Mô tả cây thông tin 14
3.3 Mô hình kết nối 16
3.4 Chức năng của ứng dụng Midlet 17
Trang 63.4.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
3.6.1.a Gói hello 26
3.6.1.b Gói campusservice 27
3.6.1.c Gói data 27
3.6.2 Phía server 28
3.6.2.a GetMysqlConnection.java 28
3.6.2.b CampusHttpServer.java 28
3.6.2.c Campus.java 28
CHƯƠNG 4 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
4.2.1 Dịch vụ Web (Web service) 31
4.2.1.a Định nghĩa 31
4.2.1.b Các ñặc ñiểm chính của dịch vụ We: 32
4.2.1.c Tại sao dùng dịch vụ Web 32
4.2.1.d Các thành phần cơ bản 32
4.2.2 WSDL 32
4.2.3 UDDI 35
4.2.4 SOAP 35
Trang 74.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 SVG tiny 40
4.3.3 Xử lý các ñối tượng trong ảnh SVG 40
CHƯƠNG 5 CÀI ĐẶT VÀ THỬ NGHIỆM 41
5.1 Yêu cầu 41
5.2 Cài ñặt 41
5.3 Thử nghiệm chương trình 41
CHƯƠNG 6 KẾT LUẬN 45
6.1 Kết quả ñạt ñược 45
6.2 Hướng phát triển 45
TÀI LIỆU THAM KHẢO 46
Trang 8CHƯƠ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 thành viên là cần thiết Bên cạnh ñó, do khuôn viên rộng, có nhiều tòa nhà ñịa ñiểm nên nhu cầu tìm vị trí tòa nhà là cần thiết Việc phát triển ứng dụng trên ñi dộng cho hướng dẫn trong khuôn viên Đại học Quốc Gia Hà Nội rất hữu ích Người dùng có thể ngay lập tức tìm ñược ñịa ñiểm bất cứ lúc nào
Vì những lý do này, em quyết ñịnh thực hiện ñề tài “VNU Campus Guide – hướng dẫn, thông tin về Đại học Quốc Gia Hà Nội – trên nền J2ME”
1.2 Nhiệm vụ nghiên cứu
Đề tài cần giải quyết những nhiệm vụ sau:
Thứ nhất: Xây dựng ứng dụng chính trên nền J2ME Ứng dụng cần hiển thị ñược
bản ñồ khuôn viên Đại học Quốc Gia Hà Nội, lấy thông tin về trường từ server
Thứ hai: Cần xây dựng một ứng dụng Web server cung cấp, xử lý thông tin cho
Trang 9Thứ ba: Tìm hiểu thông tin, tổ chức thông tin phù hợp ñể cung cấp cho người
dùng với ngữ cảnh khác nhau:
Người dùng khác nhau (sinh viên, khách tham quan, …)
Thời gian xem thông tin
1.3 Bố cục của khóa luận
Khóa luận gồm 5 chương
- Chương 1 Mở ñầu
Nêu khái quát ñề tài, nhiệm vụ nghiên cứu
- Chương 2 Bài toán
Nêu bài toán, các yếu tố ngữ cảnh, mô hình ñề xuất
- Chương 3 Phân tích thiết kế chương trình VNU Campus Guide
Thiết kế chi tiết mô tả hệ thống VNU Campus Guide
- Chương 4 Công nghệ
Trình bày các công nghệ dùng trong hệ thống VNU Campus Guide: J2ME, J2EE, công nghệ bản ñồ
- 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
Trang 10CHƯƠ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ứ
Trang 112.3 Mô hình ñề xuất
Mục tiêu của nghiên cứu là phát triển một ứng dụng giúp mọi người có thể dễ dàng truy cập thông tin, tìm hiểu về Đại học Quốc gia ở bất cứ ñâu, bất cứ lúc nào chỉ với một thiết bị di dộng hỗ trợ Java và có khả năng kết nối Internet
Hệ thống sẽ cung cấp thông tin, hình ảnh, chỉ dẫn phù hợp với ngữ cảnh Bên cạnh ñó trong quá trình hoạt ñộng hệ thống sẽ tự ñộng nhận biết sự thay ñổi ngữ cảnh
ñể thay ñổi nội dung cho phù hợp
Mỗi khi người dùng yêu cầu lấy thông tin, hệ thống sẽ lấy thông tin, yêu cầu của người dùng ñể cập nhật thông tin ngữ cảnh Thông tin ngữ cảnh này sẽ ñược một luật lựa chọn thông tin sử dụng Sau khi chọn lựa ñược thông tin, chương trình sẽ thay ñổi ngữ cảnh như lịch sử xem thông tin …
2.3.1 Mô hình người sử dụng
Mỗi người dùng có nhiều thông tin cá nhân cũng như thông tin về môi trường khác nhau, rất nhiều yếu tố ảnh hưởng nhưng ta chỉ chọn những yếu tố chính, quan trọng ảnh hưởng ñến ngữ cảnh người dùng
Các tác nhân thể hiện ngữ cảnh của người sử dụng:
N ộ i dung theo
ng ữ c ả nh
H ệ th ố ng
Thông tin yêu c ầ u
X ử lý thông tin
Trang 12Vị 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
Lịch sử xem thông tin Thông tin
người dùng
Hình 2.2 Mô hình ng ườ i dùng
Trang 13liên quan ñến sự tương tác giữa người sử dụng và một ứng dụng, bao gồm cả người dùng và ứng dụng chính họ" - Dey, Abowd & Salber [1]
Paul Dourish ñã nói rằng có hai góc nhìn khác nhau về ngữ cảnh [5]:
- Ngữ cảnh như một ñại diện
o Ngữ cảnh là một hình thức của thông tin Nó có thể ñược biết ñến (và do ñó mã hóa và biểu diễn như các thông tin khác trong các hệ thống phần mềm)
o Ngữ cảnh là có khả năng khoanh ñịnh Chúng ta có thể xác ñịnh những gì có giá trị như là bối cảnh của hoạt ñộng mà hỗ trợ ứng dụng
o Ngữ cảnh là ổn ñịnh Mặc dù các yếu tố chính xác của một biểu diễn ngữ cảnh
có thể khác nhau tùy theo ứng dụng, chúng không thay ñổi trong cách thể hiện của một hoạt ñộng hay một sự kiện Xác ñịnh sự liên quan của bất kỳ yếu tố tiềm năng theo ngữ cảnh có thể ñược thực hiện một lần và cho tất cả
o Ngữ cảnh và các hoạt ñộng ñược tách riêng Hoạt ñộng xảy ra “trong” một ngữ cảnh Ngữ cảnh mô tả các ñặc trưng của môi trường trong ñó các hoạt ñộng diễn ra, nhưng ñó là tách biệt với hoạt ñộng
- Ngữ cảnh như một tương tác
o Thay vì xem xét ngữ cảnh ñể ñược thông tin, ngữ cảnh ñược xem như một thuộc tính quan hệ ở giữa các ñối tượng hoặc các hoạt ñộng Nó không ñơn giản là trường hợp cái mà cái gì ñó là ngữ cảnh hoặc không, mà nó có thể hoặ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:
Trang 14- 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
Trang 15- Đỉnh cây là một nút tương ứng với một phần thông tin
- Mức thứ 2 tương ứng với từng kiểu người dùng
- Mức thứ 3 tương ứng với từng topic của cho từng kiểu người dùng
- Mức thứ 4, 5, 6 tương ứng với 3 mức thông tin theo tùy chọn của người dùng
o Mức bốn: Mức thông tin 1, tóm tắt từng phần
o Mức năm: Mức thông tin 2, tiêu ñề từng ñoạn
o Mức sáu: Mức thông tin 3, nội dung từng ñoạn
Hình 2.3 Cây thông tin l ư u tr ữ v ề các tr ườ ng, khoa
Trang 162.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 theo mô hình cây
Cây có thể cài ñặt bởi các cách khác nhau Sau ñây, chúng ta trình bày hai phương pháp cài ñặt cây thông dụng nhất
Phương pháp 1: chỉ ra danh sách các ñỉnh con của mỗi ñỉnh
Với mỗi ñỉnh của cây, ta sử dụng một con trỏ trỏ tới một ñỉnh con của nó Và như vậy, mỗi ñỉnh của cây ñược biểu diễn bởi một cấu trúc gồm hai thành phần: một biến data lưu dữ liệu chứa trong ñỉnh ñó và một mảng child các con trỏ trỏ tới các ñỉnh con Cần có một con trỏ ngoài trỏ tới gốc cây root Giả sử mỗi ñịnh có nhiều nhất 4
ñỉnh con, ta có mô hình như sau:
Cách cài ñặt này thường không hiệu quả, tốn bộ nhớ do số lượng nút con của các nút là khác nhau, một nút có thể không có tối ña các nút con, do ñó con trỏ ñể trống
Phương pháp 2: chỉ ra con cả và em liền kề của mỗi ñỉnh
Thay vì sử dụng mảng con trỏ, ta chỉ sử dụng hai con trỏ: con trỏ firstChild trỏ tới ñỉnh con cả và con trỏ nextBrother trỏ tới em liền kề
Trang 17Hình 2.5 Cài ñặ t cây s ử d ụ ng hai con tr ỏ
Với cách này, cây trong hình 3.1 ñược cài ñặt bởi CTDL như trong hình 3.2 Dễ dàng thấy rằng, xuất phát từ gốc ñi theo con trỏ firstChild hoặc con trỏ nextBrother, ta
có thể truy cập tới ñỉnh bất kỳ trong cây Ta có nhận xét rằng, các con trỏ nextBrother liên kết các ñỉnh tạo thành một danh sách liên kết biểu diễn danh sách các ñỉnh con của mỗi ñỉnh
Cách cài ñặt này hiệu quả hơn vì nó chỉ sử dụng 2 con trỏ, lượng bộ nhớ dư thừa
ít hơn Vì vậy chương trình sẽ dùng cách này ñể biểu diễn thông tin
2.3.5 Luật lựa chọn thông tin cung cấp cho từng người dùng
Khi chọn một trường, khoa thì sẽ ñi theo cây có ñỉnh tương ứng với trường, khoa
- Mức thời gian 1: Lấy tất cả thông tin trong cây ở mức bốn
- Mức thời gian 2: Lấy tất cả thông tin trong cây ở mức bốn và năm
- Mức thời gian 3: Lấy tất cả thông tin trong cây ở mức bốn, năm và sáu
Trang 18CHƯƠ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
Trang 193.1.1.f Xem chi tiết
Khi chọn một ñịa ñiểm trên bản ñồ, người dùng muốn xem thông tin, chương trình cần ñưa ra thông tin về ñịa ñiểm, tòa nhà cũng như Trường, khoa quản lý ñịa
ñiểm ñó
Lượng thông tin cung cấp phải tùy thuộc vào ngữ cảnh: người dùng, lượng thông tin…
3.1.2 Đối tượng sử dụng
Hệ thống ñược xây dựng ñể hỗ trợ cho các nhóm sau:
- Khách tham quan: Những người muốn tham quan tìm hiểu về Đại học Quốc gia
- Sinh viên: Những sinh viên mới chưa biết và tìm hiểu ñược hết thông tin về Trường có thể sử dụng chương trình
3.2 Thiết kế cơ sở dữ liệu
3.2.1 Sơ ñồ dữ liệu
Cở sở dữ liệu ñược xây dựng trên hệ quản trị cơ sở dữ liệu mySql Các thông tin
về trường, khoa ñược lưu trữ theo hình cây, tương ứng với mỗi người dùng, các mức
ñộ khác nhau thì ñưa ra thông tin khác nhau Dữ liệu của hệ thống là dữ liệu mã
Unicode
Sơ ñồ cơ sở dữ liệu:
Trang 20Các bảng cơ sở dữ liệu:
user (usrID, passwd, usrType)
owner (ownerID, ownerName, topInfoID, logo)
location (locID, locName, image, ownerID, description)
info (infoID, content, childID, brotherID)
log (logID, ownerID, usrID, topicID, level)
3.2.2 Chi tiết thiết kế cơ sở dữ liệu
Mô tả các bảng cơ sở dữ liệu:
1 user: Bảng lưu ñịnh danh người dùng và thông tin
B ả ng 3.1 H ồ s ơ ng ườ i dùng
usrID varchar(30) Định danh người dùng
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
user
usrID passwd usrType
varchar(30) varchar(30) int
varchar(10) varchar(500) varchar(10)
int int varchar(30)
<pk >
topicID varchar(10) level int
<fk>
<fk>
<pk>
logo blob
Trang 212 owner: Bảng lưu các trường ñại học và các khoa
B ả ng 3.2 Thông tin tr ườ ng, khoa
ownerID int Định danh trường, khoa
ownerName varchar(50) Tên trường, khoa
topInfoID varchar(10) Nút info ở ñỉnh cây lưu trữ thông tin
logo blob Logo của trường
3 location: Bảng lưu trữ thông tin về các ñịa ñiểm
B ả ng 3.3 Đị a ñ i ể m, tòa nhà
locID varchar(20) Định danh ñịa ñiểm
locName varchar(50) Tên ñịa ñiểm
image blob Ảnh của ñịa ñiểm
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
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
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
Trang 22Câ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
info
infoID content brotherID childID
info
infoID content brotherID childID
info
infoID content brotherID childID
info
infoID content brotherID childID
infoID content brotherID childID
Hình 3.2 Mô hình t ổ ch ứ c cây thông tin
Trang 233.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
Trang 243.4 Chức năng của ứng dụng Midlet
sử dụng chức năng này ñăng ký một tài khoản mới
- Xem chi tiết: Khi người dùng xem bản ñồ và chọn một ñịa ñiểm Sau ñó chọn
Xem chi tiết, chương trình sẽ ñưa ra tùy chọn xem chi tiết mô tả ñịa ñiểm hoặc xem thông tin về Trường, khoa quản lý ñịa ñiểm ñã chọn
người dùng chọn một trường, khoa thì hiển thị các tùy chọn khác ñể hiển thị thông tin
Trang 25- Tìm ñịa ñiểm: Hiển thị danh sách các ñịa ñiểm trong bản ñồ, có một trường nhập
dữ liệu Khi người dùng nhập dữ liệu thì sẽ lọc ra các ñịa ñiểm phù hợp Khi chọn một ñịa ñiểm thì sẽ hiển thị ñịa ñiểm ñó trên bản ñồ
3.4.2 Luồng xử lý chương trình
(File ảnh flow.png )