Phía Client là điện thoại di động có hỗ trợ ứng dụng Java và hỗ trợ mạng. Trong
quá trình xây dựng ứng dụng và thử nghiệm, client có thể là trình giả lập thiết bị di
động như Sun Java Wireless Toolkit.
Server là máy chủ có cầu hình đủ mạnh để chạy các ứng dụng Java.
53 trang |
Chia sẻ: lylyngoc | Lượt xem: 2501 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận vă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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
bất kỳ đâu, vào bất kỳ thời gian nào.
Tĩnh ngữ cảnh
Với ngữ cảnh người dùng, ngữ cảnh mơi trường, lượng thơng tin cung cấp sẽ
khác nhau.
4
2.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:
Người dùng
Thơng tin
Trường, khoa
Hình 2.1. Mơ hình đề xuất xây dựng hệ thống
Thơng tin
ngữ cả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… Ngồ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 hồ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ĩ
Ví trị Thời gian
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
6
liê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:
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
- Đỉ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
Đỉnh được gắn với một
trường, khoa
Chia ra 2 nhánh tương
ứng với kiểu người dùng
Mức topic: chia ra
nhiều topic khác
Mức thơng tin 1:
Tĩm tắt từng phần.
Mức thơng tin 2:
Tiêu đề các đoạn
Mức thơng tin 3:
Nội dung các đoạn
1
2
3
4
5
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. Ngồ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ỏ ngồ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ề.
root
A
A
A
A
A
A
A
Hình 2.4. Cài đặt cây bởi mảng con trỏ
10
Hì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
đĩ.
Đối với từng kiểu người dùng sẽ đi theo nhánh tương ứng ở mức 2. Ta sẽ cĩ các
topic khác nhau ở mức 3.
Khi lựa chọn một topic với thời gian tương ứng, thơng tin sẽ được lấy ở nhánh
của topic như sau:
- 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.
A
B C D
G F E
root
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
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:
13
Cá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
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
: Primary key, Khĩa chính
: Foreign key, Khĩa ngồi
owner
ownerID
ownerName
topInfoID
int
varchar(50)
varchar(10)
user
usrID
passwd
usrType
varchar(30)
varchar(30)
int
location
locID
locName
image
varchar(20)
varchar(50)
blob
ownerID int
description varchar(500)
info
infoID
content
childID
varchar(10)
varchar(500)
varchar(10)
brotherI varchar(10)
log
logID
ownerID
usrID
int
int
varchar(30)
topicID varchar(10)
level int
logo blob
14
2. 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
Tên field Kiểu dữ liệu Mơ tả
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à
Tên field Kiểu dữ liệu Mơ tả
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
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
info
infoID
content
brotherID
childID
info
infoID
content
brotherID
childID
…
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
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
3.4. Chức năng của ứng dụng Midlet
3.4.1. Các chức năng của ứng dụng
Hình 3.4. Biểu đồ phân rã chức năng
Khi người dùng mở ứng dụng, chương trình sẽ hiển thị màn hình chờ trong một
khoảng thời gian, sau đĩ sẽ vào màn hình đăng nhập. Sau khi đăng nhập, chương trình
sẽ chuyển đến màn hình chính hiển thị bản đồ khuơn viên Đại học Quốc Gia Hà Nội.
Các chức năng chính:
- Đăng ký: Người dùng mới sử dụng cần cĩ tài khoản để sử dụng chương trình sẽ
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.
- Tìm trường, khoa: Hiển thị danh sách các trường, khoa trong cơ sở dữ liệu, khi
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.
18
- 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 đồ.
- Trợ giúp: Hiển thị các thơng tin về chương trình và trợ giúp.
3.4.2. Luồng xử lý chương trình
(File ảnh flow.png)
19
H
ìn
h
3.
5.
Sơ
đ
ồ
lu
ồ
n
g
ch
ư
ơ
n
g
tr
ìn
h
20
3.4.2.a. Các chức năng chính
Chương trình gồm 12 Displayable chính: signInForm, signUpForm, mainForm,
mainMenu, helpForm, findForm, chooseLocOwner, viewLocDetail, viewOwners,
chooseTopic, chooseLevel, viewOwnerDetail. Chi tiết các Displayable như sau:
• signInForm là một Displayable thể hiện dưới dạng Form. Đây là màn hình đăng
nhập, nĩ cĩ 2 TextField để nhập tài khoản, mật khẩu và 4 command:
- cmSignIn: Đăng nhập vào hệ thống, nếu thành cơng chuyển đến mainForm.
- cmSignUp: Chuyển đến màn hình đăng ký (signUpForm).
- cmViewOnly: Bỏ qua đăng nhập và chuyển đến màn hình chính (mainForm).
- cmExit: Kết thúc chương trình.
• signUpForm là một Displayable thể hiện dưới dạng Form. Đây là màn hình đăng
ký tài khoản, nĩ cĩ 2 TextField để nhập tài khoản, mật khẩu, một ChoiceGroup để
chọn kiểu người dùng và 2 command:
- cmSignUp: Đăng ký tài khoản mới với tên, mật khẩu và kiểu người dùng đã chọn.
- cmBack: Quay lại màn hình đăng nhập.
Hình 3.6. Màn hình đăng nhập (signInForm)
Hình 3.7. Màn hình đăng ký (signUpForm)
• mainForm là một Displayable thể hiện dưới dạng GameCanvas. Nĩ cho phép xử
lý sự kiện bàn phím, vẽ ảnh bản đồ chi tiết. Cĩ 2 command:
- cmMenu: Chuyển đến mainMenu.
- cmExit: Kết thúc chương trình.
21
• mainMenu là một Displayable thể hiện dưới dạng List. Đây là một màn hình thể
hiện danh sách chức năng, nĩ bao gồm danh sách 5 phần tử.
- Chi tiết: Chức năng “Xem chi tiết”
- Danh sách trường, khoa: Chức năng “Tìm trường, khoa”
- Đăng nhập lại: Chuyển đến màn hình đăng nhập signInForm.
- Tìm địa điểm: Chức năng “Tìm địa điểm”
- Trợ giúp: Chức năng “Trợ giúp”
Hình 3.8. Màn hình chính (mainForm)
Hình 3.9. Màn hình chức năng (mainMenu)
• helpForm là một Displayable thể hiện dưới dạng Form. Màn hình này thể hiện
thơng tin chương trình và một số trợ giúp, nĩ cĩ 2 command
- cmOk: Chuyển về màn hình chính mainForm.
- cmBack: Quay lại màn hình chức năng mainMenu.
• findForm là một Displayable thể hiện dưới dạng Form. Màn hình này bao gồm
một TextField cho phép người dùng nhập để lọc địa điểm, một ChoiceGroup hiển
thị các kết quả tìm thấy. Cĩ 2 command:
- cmOK: Chuyển về mainForm, dịch chuyển bản đồ tới địa điểm đã chọn.
- cmBack: Quay lại màn hình chức năng mainMenu.
22
Hình 3.10. Màn hình trợ giúp (helpForm)
Hình 3.11. Tìm kiếm địa điểm (findLocation)
• chooseLocOwner là một Displayable thể hiện dưới dạng List. Màn hình này đưa ra
2 lựa chọn tương ứng với hai phần tử:
- Xem chi tiết địa điểm: Chuyển đến màn hình xem thơng tin địa điểm
viewLocDetail.
- Thơng tin trường, khoa: Chuyển đến màn hình lựa chọn topic thơng tin
chooseTopic.
• viewLocDetail là một Displayable thể hiện dưới dạng Form. Màn hình hiển thị
hình ảnh và thơng tin về địa điểm (nếu cĩ). Cĩ 2 command:
- cmOk: Chuyển về màn hình chính mainForm.
- cmBack: Chuyển về màn hình chức năng mainMenu.
Hình 3.12. Màn hình lựa chọn
(chooseLocOwner)
Hình 3.13. Thơng tin địa điểm
(viewLocDetail)
23
• viewOwners là một Displayable thể hiện dưới dạng Form. Màn hình này gồm một
ChoiceGroup chứa các trường, khoa. Cĩ 2 command:
- cmOk: Chuyển tới màn hình lựa chọn topic thơng tin chooseTopic.
- cmBack: Quay lại màn hình chức năng mainMenu.
• chooseTopic là một Displayable thể hiện dưới dạng Form. Màn hình gồm một
ChoiceGroup chứa các chủ đề tương ứng được cung cấp theo ngữ cảnh. Cĩ 3
command:
- cmAll: Chọn tất cả các chủ đề.
- cmNone: Bỏ chọn tất cả các chủ đề.
- cmOk: Chuyển đến màn hình chooseLevel.
Hình 3.14. Chọn trường, khoa (viewOwners)
Hình 3.15. Chọn chủ đề (chooseTopic)
• chooseLevel là một Displayable thể hiện dưới dạng Form. Màn hình cho phép lựa
chọn mức độ chi tiết đối với từng chủ đề đã chọn. Cĩ 2 command:
- cmOk: Chuyển đến màn hình viewOwnerDetail.
- cmBack: Chuyển về màn hình chooseTopic.
• viewOwnerDetail là một Displayable thể hiện dưới dạng Form. Màn hình hiển thị
thơng tin chi tiết về trường, khoa ứng với chủ đề và mức độ chi tiết thơng tin đã
chọn. Cĩ 2 command:
- cmOk: Chuyển đến màn hình mainForm.
- cmBack: Chuyển về màn hình chooseLevel.
24
Hình 3.16. Chọn mức độ chi tiết (chooseLevel)
Hình 3.17. Xem thơng tin (viewOwnerDetail)
3.4.2.b. Luồng chương trình
- Đăng ký
Từ màn hình đăng nhập signInForm, người dùng chọn cmSignUp, chương
trình chuyển đến màn hình đăng ký signUpForm.
Tại signUpForm, người dùng sẽ nhập tên tài khoản, mật khẩu và kiểu
người dùng. Sau khi nhập thơng tin và chọn cmSignUp, chương trình thực hiện
đăng ký, thơng báo kết quả cho người dùng và quay lại màn hình đăng nhập
signInForm.
- 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 2 tùy chọn:
Xem chi tiết địa điểm.
Thơng tin về Trường, khoa quản lý địa điểm đã chọn.
Khi chọn Xem chi tiết địa điểm chương trình sẽ chuyển đến màn hình
viewLocDetail để xem thơng tin về địa điểm.
Khi chọn Thơng tin về Trường, khoa chương trình sẽ chuyển đến màn hình
chooseTopic để lựa chọn chủ đề xem. Sau khi chọn chủ đề xem, sẽ chuyển đến
màn hình chooseLevel để chọn mức độ chi tiết, cuối cùng là chuyển đến màn
hình viewOwnerDetail để xem thơng tin về Trường, khoa.
- Tìm trường, khoa
25
Từ màn hình menuMain, người dùng chọn “Danh sách trường, khoa”,
chương trình chuyển đến màn hình viewOwners hiển thị danh sách các trường,
khoa.
Sau khi người dùng chọn một trường, khoa và ấn cmOk thì chuyển đến
màn hình chooseTopic chooseLevel viewOwnerDetail.
- Tìm địa điểm
Từ màn hình menuMain, người dùng chọn “Tìm địa điểm”, chương trình
chuyển đến màn hình findForm, màn hình hiển thị danh sách tối đa 10 địa
điểm.
Khi người dùng nhập từ khĩa tìm kiếm, chương trình tự động lọc các địa
điểm và hiển thị.
Sau khi chọn một địa điểm và chọn cmOk chương trình chuyển đến màn
hình mainForm và dịch chuyển bản đồ đến vị trí tương ứng.
- Trợ giúp
Từ màn hình menuMain, người dùng chọn “Trợ giúp”, chương trình
chuyển đến màn hình helpForm, màn hình hiển thị thơng tin chương trình và
trợ giúp.
Khi chọn cmOk chương trinh chuyển về màn hình mainForm.
3.5. Chức năng phía Server
Phía server bao gồm 2 phần chính:
3.5.1. Web service
Web service cĩ các operator tương tự như các hàm trong lập trình, cho phép ứng
dụng sử dụng các operator này một cách dễ dàng mà khơng phải quan tâm đến việc
làm thế nào để kết nối …
Các operator của Web service phục vụ cho truy vấn từ client qua SOAP.
• checkNetwork(): Kiểm tra kết nối mạng và cơ sở dữ liệu.
• signUp(String usrID, String passwd, int usrType): Tạo mới tài khoản.
• checkLogin(String usrID, String passwd): Kiểm tra việc đăng nhập.
• getOwnerID(String locID): Lấy ID của trường, khoa.
26
• getOwnerName(String locID): Lấy tên của trường, khoa.
• getLocName(String locID): Lấy tên của địa điểm.
• getLocDescription(String locID): Lấy thơng tin mơ tả địa điểm.
• getOwnerIDs(): Lấy tất cả ID của các trường, khoa.
• getOwnerNames(): Lấy tất cả tên của các trường, khoa.
• getTopicIDs(String usrID, String ownerID): Lấy ID của các topic phù hợp.
• getTopicNames(String[] topicIDs): Lấy tên của các topic.
• getMaxLevel(String usrID, String topicID): Lấy mức độ chi tiết cao nhất đã
xem với một topic.
• logging(String usrID, String locID, String topicIDs[], String levels[]): Ghi
nhớ lịch sử lượng thơng tin đã xem của người dùng.
• resetLog( String usrID, String ownerID): Xĩa bản ghi lịch sử lượng thơng
tin đã xem với một trường, khoa.
• getInfo(String tpIDs[], String tpLvs[], int length): Lấy thơng tin chi tiết về
trường, khoa với chủ đề và mức độ chi tiết đã chọn.
3.5.2. Servlet
Servlet làm nhiệm vụ xử lý HTTP request, lấy hình ảnh từ cơ sở dữ liệu (dịng
byte dữ liệu) và truyền cho client. Client sẽ xử lý dịng byte nhận được và tạo thành
ảnh hiển thị cho người dùng.
3.6. Các Module xử lý
3.6.1. Phía client
Ứng dụng phía client được chia làm hai gĩi chính và một gĩi bổ sung chứa dữ
liệu cần thiết.
3.6.1.a. Gĩi hello
Gồm lớp MIDlet ứng dụng chính và các phụ trợ.
- MainMidlet.java: Lớp ứng dụng chính của chương trình J2ME, thừa kế từ lớp
javax.microedition.midlet.MIDlet.
27
- ImageCanvas.java: Lớp dùng để hiển thị bản đồ, xử lý các sự kiện bàn phím cho
việc thay đổi bàn đồ tương ứng, thừa kế từ lớp
javax.microedition.lcdui.game.GameCanvas.
- SplashScreen.java: Lớp hiển thị màn hình chờ của chương trình trong một khoảng
thời gian nhất định, thừa kế từ lớp javax.microedition.lcdui.Canvas.
- CampusHttpClient.java: Lớp dùng để kết nối đến server lấy ảnh về trực tiếp qua
giao thức Http.
3.6.1.b. Gĩi campusservice
Chứa các lớp hỗ trợ cho việc kết nối với server thơng qua cơ chế WSDL.
- CampusService.java: Một giao diện mơ tả các hàm cĩ thể dùng của lớp
CampusService_Stub, các hàm này tương ứng với các hàm phía server.
- CampusService.wsclient: Một tệp tin XML mơ tả về server kết nối.
- CampusService.wsdl: Một tệp tin XML để mơ tả các dịch vụ, các thủ tục, thơng
điệp cĩ thể truyền từ server về client.
- CampusService_Stub.java: Lớp cho phép người dùng kết nối đến server thơng
qua các hàm, thủ tục tương ứng trên server WSDL.
3.6.1.c. Gĩi data
Hình 3.18. Bản đồ Đại học Quốc gia Hà Nội (tệp
tin map.svg)
Hình 3.19. Màn hình chờ khởi
động (tệp tin splash.jpg)
28
- map.svg: Tệp tin ảnh svg bản đồ khuơn viên Đại học Quốc Gia Hà Nội.
- splash.jpg: Tệp tin ảnh màn hình chờ khởi động.
- cursor.png: Tệp tin ảnh con trỏ dùng di chuyển chọn địa điểm trên bản đồ.
- mark.png: Tệp tin ảnh đánh dấu địa điểm khi con trỏ vào một địa điểm cụ thể.
Hình 3.20. Con trỏ (tệp tin cursor.png)
Hình 3.21. Đánh dấu địa điểm (tệp mark.png)
- location.txt: Tệp tin dữ liệu văn bản chứa thơng tin địa điểm dùng khi xử lý bản
đồ. Dữ liệu được lưu theo dạng CSV (comma-separated values). Các trường dữ
liệu được phân cách bởi dấu chấm phẩy “;”. Ví dụ:
gd2;Giảng đường 2
G3;Giảng đường G3
3.6.2. Phía server
3.6.2.a. GetMysqlConnection.java
Là một lớp dùng để tạo kết nối đến cơ sở dữ liệu mySQL.
3.6.2.b. CampusHttpServer.java
Là một servlet dùng để truyền hình ảnh cho client thơng qua HTTP.
3.6.2.c. Campus.java
Là một Web Service cung cấp các operator cho client gọi các hàm tương ứng để
nhận thơng tin thơng qua SOAP.
29
CHƯƠNG 4. CƠNG NGHỆ SỬ DỤNG
4.1. Lĩnh vực ứng dụng khơng dây với cơng nghệ Java
4.1.1. Các phiên bản Java 2
Nền tảng Java 2 được chia thành ba phiên bản, mỗi phiên bản hỗ trợ một dạng
phần mềm trên các hệ thống khác nhau.
Phiên bản chuẩn, hay J2SE (Java 2 platform, Standard Edition): hỗ trợ các ứng
dụng Java, applet, lập trình desktop và các hệ thống lớn hơn – chủ yếu là cho PC - cĩ
thể cĩ nối mạng hoặc khơng nối mạng.
Phiên bản doanh nghiệp, hay J2EE (Java 2 platform, Enterprise Edition): mở
rộng với các API cĩ các “tính năng doanh nghiệp” (enterprise features). J2EE hỗ trợ
Web service thơng qua các servlet và JSP, dữ liệu bằng JDBC, và các hệ thống giao
tác lớn thơng qua EJB – đây là một vài cơng nghệ chính của J2EE.
Phiên bản thu nhỏ, hay J2ME (Java 2 platform, Micro Edition): hỗ trợ các thiết bị
“micro” đa dạng, mà J2ME gọi là các “hiện trạng” (profile) nhưng tất cả chúng đều
kém khả năng hơn so với máy tính cá nhân. Trong J2ME, sức mạnh CPU, bộ nhớ, lưu
trữ và khả năng kết nối đều bị hạn chế, cĩ thể là rất nghiêm ngặt.
4.1.2. Java 2 Enterprise Edition
Các MIDlet client khơng yêu cầu phải kết nối đến các server chạy Java. Một
MIDlet cĩ thể được viết để tạo HTTP request đến một trang Web đã cĩ từ trước, và nĩ
khơng cần quan tâm là trang Web đĩ được hỗ trợ bởi ASP, PHP, hay servlet... Tuy
nhiên, trên thực tế, khi tồn bộ hệ thống phân tán được phát triển mới, thì Java nên
được dùng ở mọi mức.
Phiên bản Java 2 Enterprise Edition, hay J2EE – là một tập các chuẩn để áp dụng
cơng nghệ Java cho các hoạt động “loại doanh nghiệp (enterprise-class)”, ví dụ như:
- Dịch vụ HTTP (servlet), bao gồm ứng dụng Web và dịch vụ Web.
- Lưu trữ và lấy dữ liệu từ cơ sở dữ liệu quan hệ
- Xử lý giao tác trực tuyến
- Thực hiện đối tượng phân tán (bằng CORBA)
- Truyền thơng điệp tin cậy giữa server và các tiến trình
30
- Xử lý tài liệu XML
Servlet
Java Servlet API cho phép nhà phát triển phần mềm thêm những nội dung động
vào Web server sử dụng Java platform. Nĩ phát sinh nội dung thơng thường là HTML,
đơi khi cũng cĩ thể là các ngơn ngữ khác như XML. Servlets là bản sao Java của các
kỹ thuật trình bày nội dung Web động khác như là PHP, CGI và ASP.NET.
4.1.3. Java 2 Micro Edition
J2ME được tổ chức thành các mức, mỗi mức xác định một định nghĩa tăng dần
của các thiết bị đích. Cĩ nhiều lựa chọn kiến trúc tồn tại ở mỗi mức, và ràng buộc tùy
chọn ở các mức cao hơn. Lập trình viên chỉ cần quan tâm đến hiện trạng (profile), định
nghĩa các API. Các đặc tả cho các thiết bị khơng dây là Connected Limited Device
Configuration hay CLDC, và Mobile Information Device Profile hay MIDP.
Các thiết bị đặc tả với CLDC thường cĩ cấu hình như sau:
- Bộ xử lý 16-bit hoặc 32-bit với tốc độ 16MHz hoặc cao hơn.
- Ít nhất 160KB bộ nhớ cố định phân bổ cho thư viện CLDC và máy ảo.
- Ít nhất 192KB tổng bộ nhớ cho nền Java.
- Tiêu thụ điện năng thấp, thường hoạt động bằng pin.
- Cĩ khả năng kết nối đến một vài kiểu mạng, thường với một mạng khơng dây, kết
nối gián đoạn và giới hạn băng thơng.
4.1.3.a. Các kiểu ứng dụng MIDP
Các ứng dụng MIDP được gọi là các MIDlet. Hầu hết các MIDlet đều ở một
trong hai dạng sau:
• Ứng dụng đơn (standalone application) được nạp hồn tồn vào thiết bị và cĩ thể
chạy bất kỳ lúc nào thiết bị mở, khơng yêu cầu tài nguyên bên ngồi.
• Ứng dụng nối mạng (networked application) được chia thành ít nhất hai thành
phần, một thành phần là client được triển khai trên thiết bị di động. Thành phần
này sẽ ít được dùng nếu khơng cĩ kết nối đến ít nhất một server trên hệ thống.
Server thường là được đặt trong mơi trường J2EE, và phục vụ bằng Web hoặc
các giao thức Internet khác.
31
4.1.3.b. Hạn chế của các thiết bị di động
- Hạn chế về bộ xử lý: Các dịng điện thoại cĩ tốc độ xử lý thấp so với tốc độ xử lý
của máy tính để bàn.
- Hạn chế về bộ nhớ và khả năng lưu trữ: Bộ nhớ ROM và RAM nhìn chung đều cĩ
dung lượng nhỏ.
- Hạn chế về kích thước màn hình: Màn hình của điện thoại di động thường rất hạn
chế về cả độ rộng màn hình và độ phân giải.
4.2. Lập trình Web Service với MIDP
4.2.1. Dịch vụ Web (Web service)
4.2.1.a. Định nghĩa
Một dịch vụ web là một mạng lưới giao diện để truy cập các chức năng ứng
dụng, xây dựng sử dụng cơng nghệ Internet chuẩn. Điều này được minh họa trong hình
4.1 [2].
Nĩi cách khác, nếu một ứng dụng cĩ thể được truy cập qua mạng bằng cách sử
dụng một sự kết hợp của các giao thức như HTTP, XML, SMTP, hoặc Jabber, như vậy
nĩ là một dịch vụ web. Các dịch vụ Web khơng cĩ gì mới. Thay vào đĩ, chúng đại
diện cho sự phát triển của các nguyên tắc đã hướng dẫn Internet trong nhiều năm.
Hình 4.1. Một dịch vụ web cho phép truy cập vào các mã ứng dụng bằng cách sử dụng các
cơng nghệ Internet chuẩn.
Một dịch vụ Web là một hệ thống phần mềm được nhận dạng bằng một URI
(Uniform Resource Identifier), mà các giao diện chung và sự gắn kết của nĩ được
định nghĩa và mơ tả bằng XML. Định nghĩa của nĩ cĩ thể được nhận ra bằng các hệ
thống phần mềm khác. Các hệ thống này sau đĩ cĩ thể tương tác với dịch vụ Web theo
phương cách được mơ tả trong định nghĩa của nĩ, sử dụng các thơng điệp theo XML
được chuyển bằng các giao thức Internet [W3C].
32
4.2.1.b. Các đặc điểm chính của dịch vụ We:
- Cĩ thể chuyển đổi các ứng dụng của bạn vào các ứng dụng Web.
- Được xuất bản, tìm thấy, và được sử dụng thơng qua Web.
- Là những thành phần ứng dụng.
- Giao tiếp bằng cách sử dụng giao thức mở.
- Được khép kín và tự mơ tả.
- Cĩ thể được phát hiện bằng cách sử dụng UDDI.
- Cĩ thể được sử dụng bởi các ứng dụng khác.
- Các nền tảng cơ bản của dịch vụ Web là XML + HTTP. Dịch vụ Web sử dụng
XML để mã hĩa và giải mã dữ liệu, và SOAP để truyền tải nĩ.
4.2.1.c. Tại sao dùng dịch vụ Web
Dịch vụ Web được xây dựng để cĩ thể sử dụng bởi bất kỳ trình duyệt trên nền
tảng nào cũng cĩ thể truy cập, bằng cách sử dụng dịch vụ Web, các ứng dụng cĩ thể
tương tác được với nhau.
4.2.1.d. Các thành phần cơ bản
Dịch vụ Web cĩ ba thành phần nền tảng cơ bản: WSDL, UDDI và SOAP
Hình 4.2. Kiến trúc dịch vụ Web.
4.2.2. WSDL
WSDL là một ngơn ngữ dựa trên XML để mơ tả các dịch vụ Web và làm thế nào
để truy cập chúng. Tài liệu WSDL mơ tả một dịch vụ Web. Quy định cụ thể vị trí của
dịch vụ và các hoạt động (hoặc các phương thức) các dịch vụ đưa ra. Nĩ chứa tập các
33
định nghĩa để mơ tả một dịch vụ Web. WSDL đặc tả kỹ thuật xác định làm thế nào để
mơ tả các dịch vụ web trong một ngữ pháp XML nĩi chung. WSDL mơ tả bốn phần
quan trọng của dữ liệu:
Giao diện thơng tin mơ tả tất cả các chức năng cơng bố cơng khai.
Dữ liệu thơng tin cho tất cả các loại tin nhắn yêu cầu và trả lời tin nhắn.
Ràng buộc thơng tin về các giao thức vận chuyển sẽ được sử dụng
Thơng tin địa chỉ cho định vị các dịch vụ cụ thể.
WSDL đại diện cho một hợp đồng giữa Người yêu cầu dịch vụ và Nhà cung cấp
dịch vụ, trong cách cũng giống như một giao diện Java đại diện cho một hợp đồng
giữa mã khách hàng và đối tượng Java thực tế. Sự khác biệt quan trọng là WSDL là
nền tảng và ngơn ngữ độc lập và được sử dụng chủ yếu (mặc dù khơng độc quyền) để
mơ tả các dịch vụ SOAP. Sử dụng WSDL, một khách hàng cĩ thể định vị một dịch vụ
web và gọi bất kỳ chức năng của mình cơng bố cơng khai. Với các cơng cụ nhận biết
WSDL, bạn cũng cĩ thể tự động hố quá trình này, cho phép các ứng dụng để dễ dàng
tích hợp các dịch vụ mới với mã số hướng dẫn sử dụng ít hoặc khơng cĩ. WSDL do đĩ
đại diện cho một nền tảng của kiến trúc dịch vụ web, bởi vì nĩ cung cấp một ngơn ngữ
chung để mơ tả các dịch vụ và một nền tảng cho tự động tích hợp các dịch vụ [2].
Hinh 4.3. Định nghĩa tài liệu WSDL 1.1 và WSDL 2.0
34
Những yếu tố chính:
Bảng 4.1. Những yếu tố chính của tài liệu WSDL
WSDL 1.1 WSDL 2.0 Ý nghĩa
Service Service Dịch vụ cĩ thể được dùng như một lớp chứa cho một tập
hợp các hàm hệ thống đã được đưa ra với các giao thức dựa
trên Web.
Port Endpoint Định nghĩa địa chỉ hoặc điểm kết nối tới một dịch vụ Web.
Nĩ thường được biểu diễn bởi một chuỗi http url đơn giản.
Binding Binding Các giao thức truyền thơng được sử dụng bởi các dịch vụ
Web. Định nghĩa định dạng thơng điệp và chi tiết giao thức
cho mỗi cổng.
PortType Interface Là thành phần WSDL quan trọng nhất. Nĩ mơ tả một dịch
vụ Web, các hoạt động mà cĩ thể được thực hiện, và những
thơng điệp được sử dụng để thực hiện hoạt động. Tương tự
một thư viện chức năng (hoặc mơ-đun, hoặc một lớp) trong
một ngơn ngữ lập trình truyền thống.
Operation Operation Mỗi hoạt động cĩ thể so sánh với một phương thức hoặc
một lời gọi hàm trong ngơn ngữ lập trình. Các hành động
SOAP được định nghĩa và cách thức thơng điệp được mã
hĩa.
Message Thơng thường, một thơng điệp tương ứng với một hoạt
động. Thơng điệp này chứa các thơng tin cần thiết để thực
hiện các hoạt động.
Message đã được loại bỏ trong WSDL 2.0, chúng ta cĩ thể
trực tiếp tham khảo tới XML Schema để xác định thân của
đầu vào, đầu ra và lỗi.
Types Types Mục đích là mơ tả dữ liệu. XML Schema được sử dụng.
Cấu trúc chính của một tài liệu WSDL 1.1 tương tự như sau:
definition of types........
definition of a message....
definition of a port.......
definition of a binding....
35
4.2.3. UDDI
UDDI (Universal Description, Discovery and Integration) là một đặc tả kỹ thuật
để mơ tả, phát hiện, và tích hợp các dịch vụ web. UDDI do đĩ là một phần quan trọng
của giao thức dịch vụ web, cho phép các cơng ty xuất bản và tìm thấy dịch vụ web [3].
Universal Description, Discovery and Integration – “Mơ tả thống nhất, khám phá
và hội nhập” là một dịch vụ thư mục nơi mà các doanh nghiệp cĩ thể đăng ký và tìm
kiếm các dịch vụ Web.
UDDI là một khung khơng phụ thuộc nền để mơ tả các dịch vụ, phát hiện các
doanh nghiệp, và tích hợp các dịch vụ kinh doanh bằng cách sử dụng Internet.
UDDI là viết tắt của Universal mơ tả, khám phá và hội nhập
UDDI là một thư mục lưu trữ thơng tin về các dịch vụ Web
UDDI là một thư mục của các giao diện dịch vụ Web mơ tả bởi WSDL
UDDI giao tiếp thơng qua SOAP
4.2.4. SOAP
SOAP là gì?
SOAP là một giao thức đĩng gĩi tiêu chuẩn hĩa cho các tin nhắn được chia sẻ
bởi các ứng dụng. Đặc tả định nghĩa khơng gì hơn là một phong bì đơn giản dựa trên
XML để biết thơng tin đang được chuyển giao, và một bộ quy tắc chuyển sang ứng
dụng và kiểu dữ liệu trên nền cụ thể thành dạng biểu diễn XML [2].
SOAP cho phép các ứng dụng trao đổi thơng tin qua HTTP, là một giao thức để
truy cập một dịch vụ Web. SOAP là viết tắt của Simple Object Access Protocol (Giao
thức truy cập đối tượng đơn giản). SOAP là một giao thức truyền thơng qua Internet,
là một định dạng để gửi thơng điệp, nĩ cho phép giao tiếp giữa các ứng dụng.
Thơng điệp XML
Thơng điệp XML là nơi mà các ứng dụng trao đổi thơng tin bằng cách sử dụng
các tài liệu XML (Hình 2-1). Nĩ cung cấp một cách linh hoạt cho các ứng dụng để
giao tiếp, và các hình thức cơ bản của SOAP. Một tin nhắn cĩ thể là bất cứ điều gì.
Hình 4.4 Thơng điệp XML
36
Ràng buộc SOAP HTTP:
Một phương thức SOAP là một yêu cầu / hồi đáp HTTP cái mà tuân theo luật mã
hĩa SOAP. Một yêu cầu SOAP cĩ thể là HTTP POST hoặc HTTP GET.
HTTP + XML = SOAP
Tại sao dùng SOAP:
Ứng dụng ngày nay giao tiếp bằng cách sử dụng “Gọi hàm từ xa” (Remote
Procedure Calls - RPC) giữa các đối tượng như DCOM và CORBA, nhưng HTTP
khơng được thiết kế cho việc này. RPC đại diện cho một khả năng tương thích và các
vấn đề an ninh; tường lửa và máy chủ proxy thường sẽ chặn RPC.
Cách tốt hơn để giao tiếp giữa các ứng dụng trên HTTP, bởi vì HTTP được hỗ
trợ bởi tất cả các trình duyệt Internet và máy chủ. SOAP được tạo ra để thực hiện việc
này.
SOAP cung cấp một cách để giao tiếp giữa các ứng dụng chạy trên hệ điều hành
khác nhau, với các cơng nghệ và ngơn ngữ lập trình khác nhau.
Cú pháp SOAP
Một thơng điệp SOAP là một tài liệu XML thơng thường cĩ chứa các yếu tố sau:
- Envelope (phong bì) mà xác định các tài liệu XML như là một thơng điệp SOAP
- Header (tiêu đề) chứa thơng tin tiêu đề
- Body (thân) cĩ chứa các lời gọi và trả lời thơng tin
- Fault (lỗi) cĩ chứa các lỗi và thơng tin hiện trạng
Một số quy tắc cú pháp quan trọng:
- Một thơng điệp SOAP phải được mã hĩa bằng cách sử dụng XML.
- Một thơng điệp SOAP phải sử dụng SOAP Envelope namespace.
- Một thơng điệp SOAP phải sử dụng SOAP Encoding namespace.
- Một thơng điệp SOAP phải khơng cĩ một tham chiếu DTD.
- Một thơng điệp SOAP phải khơng chứa chỉ dẫn xử lý XML.
37
Khung của thơng điệp SOAP:
<soap:Envelope
xmlns:soap=""
soap:encodingStyle="">
...
...
...
Ưu điểm:
SOAP là đủ linh hoạt để cho phép việc sử dụng các giao thức vận tải khác nhau.
Thường sử dụng HTTP như là một giao thức vận tải, nhưng các giao thức khác cũng
cĩ thể sử dụng (ví dụ Java Message Service – Dịch vụ tin nhắn Java, Simple Mail
Transfer Protocol – Giao thức truyền tải thư tín đơn giản).
Kể từ khi mơ hình đường hầm SOAP tốt trong mơ hình nhận / hồi đáp HTTP, nĩ
cĩ thể dễ dàng vượt đường hầm qua tường lửa và proxy, mà khơng phải sửa đổi giao
thức SOAP, và cĩ thể sử dụng cơ sở hạ tầng hiện cĩ.
Nhược điểm:
Bởi vì định dạng XML dài dịng, SOAP cĩ thể chậm hơn đáng kể so với các cơng
nghệ cạnh tranh phần mềm giữa (middleware) như CORBA (Common Object Request
Broker Architecture – Kiến trúc mơi giới yêu cầu đối tượng chung).
Khi dựa vào HTTP là một giao thức vận chuyển, một bức tường lửa được thiết kế
để chỉ cho phép duyệt Web là bắt buộc phải thực hiện chi tiết hơn (và do đĩ tốn kém
hơn) phân tích các gĩi HTTP.
Mặc dù SOAP là một tiêu chuẩn mở, khơng phải tất cả các ngơn ngữ cung cấp hỗ
trợ thích hợp. Java, Curl, Delphi, PHP, .NET và Flex cung cấp IDE tích hợp hỗ trợ.
Một số Perl và Python hỗ trợ tồn tại.
38
4.3. Cơng nghệ bản đồ
4.3.1. Ảnh SVG
SVG, viết tắt của Scalable Vector Graphics, là một ứng dụng của XML mà làm
cho nĩ cĩ thể đại diện cho thơng tin đồ họa trong một hình thức nhỏ gọn, cầm tay [4].
SVG là một ngơn ngữ đánh dấu (markup language) XML và dùng để miêu tả các
hình ảnh đồ họa véc tơ hai chiều, tĩnh và hoạt hình, thường dành cho ứng dụng trên
các trang mạng. SVG thuộc tiêu chuẩn mở và được quản lí bởi tổ chức World Wide
Web Consortium, một tổ chức quản lý nhiều chuẩn khác như HTML, XHTML...
Các tập tin cĩ đuơi ".svg" được mặc định hiểu là tập tin SVG. SVG cĩ thể phĩng
to thu nhỏ mọi kích cỡ mà khơng giảm chất lượng hình ảnh. Vì thế, nĩ được dùng
nhiều trong các bản đồ, sơ đồ.
Ví dụ dưới đây là nội dung tệp SVG và hình ảnh hiển thị.
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"">
<svg width="100" height="100" version="1.1"
xmlns="">
<circle cx="50" cy="50" r="25" stroke="black"
stroke-width="2" fill="red"/>
4.3.1.a. Các thuộc tính của ảnh SVG
- SVG là một ngơn ngữ để mơ tả đồ họa 2D và các ứng dụng đồ họa trong XML.
Các đối tượng trong ảnh SVG tường là các đối tượng hình học. Ảnh sẽ lưu các tọa
độ, kích thước hình học.
- SVG được sử dụng để định nghĩa đối tượng đồ họa dựa trên vecto cho ứng dụng
Web.
- SVG định nghĩa các đối tượng đồ họa theo định dạng XML.
- Các đối tượng đồ họa SVG khơng bị giảm chất lượng khi phĩng to hoặc thay đổi
kích thước.
- Mỗi thành phần và thuộc tính trong tệp SVG cĩ thể thay đổi.
- SVG là một khuyến nghị của W3C.
- SVG được tích hợp với các tiêu chuẩn W3C khác như DOM và XSL.
39
4.3.1.b. Các chức năng và đặc trưng
Mơ tả SVG 1.1 định nghĩa 14 chức năng và đặc trưng quan trọng
- Đường dẫn (Paths)
- Các hình vẽ cơ bản (Basic Shapes)
- Văn bản (Text)
- Tơ vẽ (Painting)
- Màu sắc (Color)
- Đường trượt màu và mẫu (Gradients and Patterns)
- Cắt xén, mặt nạ và tổ hợp (Clipping, Masking and Compositing)
- Hiệu ứng lọc (Filter Effects)
- Tính tương tác (Interactivity)
- Liên kết (Linking)
- Kịch bản (Scripting)
- Hoạt hình (Animation)
- Phơng chữ (Fonts)
- Siêu dữ liệu (Metadata)
4.3.1.c. Ưu điểm
Vì là định dạng đồ họa vectơ, lợi điểm của SVG là khả năng hiển thị tốt ở mọi
kích cỡ và độ phân giải. Với một kích thước tương tự, một tập tin SVG cĩ thể chứa
nhiều thơng tin hơn là một tập tin định dạng nhị phân khác (GIF, PNG, ...).
SVG là một chuẩn mở, nĩ cho phép việc tùy biến theo mục đích sử dụng một
cách dễ dàng. Các hình ảnh SVG cĩ thể được dễ dàng sửa chữa và phát triển sau này,
khác với đồ họa mảng thường là sản phẩm cuối cùng của các xử lý ảnh, khơng chứa
mã nguồn các lớp ảnh.
Các tập tin SVG ở dạng văn bản, việc chỉnh sửa cĩ thể thực hiện bằng các trình
soạn thảo đơn giản nhất.
Kích thước các tệp SVG nhỏ, phù hợp với ứng dụng Web và ứng dụng trên các
thiết bị di động.
40
4.3.1.d. Nhược điểm
SVG là ngơn ngữ khơng được thiết kế để sửa chữa trực tiếp trên mã nguồn. Để
tạo ra các hình ảnh SVG nĩi chung, cần dùng các cơng cụ hỗ trợ.
Dù SVG cĩ thể là một lựa chọn cho hình ảnh của các trang mạng trong tương lai
khơng xa, nĩ vẫn cịn khá mới mẻ và cần sự hỗ trợ từ các trình duyệt mạng. Hiện nay
Mozilla Firefox đã hỗ trợ tương đối đầy đủ cho SVG, tuy nhiên Internet Explorer và
một số trình duyệt khác cần cĩ plug-in đặt riêng lẻ.
4.3.2. SVG tiny
Mỗi thiết bị di động cĩ đặc điểm khác nhau về tốc độ CPU, kích thước bộ nhớ,
và hỗ trợ màu sắc. Để giải quyết cho các dịng thiết bị khác nhau, hai cấu hình được
xác định. Cấu hình cấp thấp đầu tiên, SVG Tiny (SVGT) thích hợp cho thiết bị di động
rất hạn chế như điện thoại di động, trong khi cấu hình thứ hai, SVG Basic (SVGB) là
nhắm mục tiêu cho các thiết bị di động cấp cao hơn như PDA.
Sự khác biệt chính giữa SVG Tiny 1.1 và SVG Basic 1.1 là khơng cĩ kịch bản và
tạo kiểu trong SVG Tiny 1.1, và do đĩ bất kỳ yêu cầu đều thực hiện với một
Document Object Model (DOM). Điều này đã tiết kiệm một số lượng đáng kể bộ nhớ
khi chạy chương trình.
4.3.3. Xử lý các đối tượng trong ảnh SVG
Một số lớp và giao diện cần thiết cho việc xử lý ảnh SVG trong java được cung
cấp trong gĩi javax.microedition.m2g, org.w3c.dom, org.w3c.dom.svg,
org.w3c.dom.events. Các gĩi này đảm bảo cho việc xử lý các thành phần, sự kiện, vẽ
đồ họa… của ảnh SVG.
41
CHƯƠNG 5. CÀI ĐẶT VÀ THỬ NGHIỆM
5.1. Yêu cầu
Phần cứng:
Phía Client là điện thoại di động cĩ hỗ trợ ứng dụng Java và hỗ trợ mạng. Trong
quá trình xây dựng ứng dụng và thử nghiệm, client cĩ thể là trình giả lập thiết bị di
động như Sun Java Wireless Toolkit.
Server là máy chủ cĩ cầu hình đủ mạnh để chạy các ứng dụng Java.
Phần mềm:
Máy chủ dịch vụ cĩ thể cài trên bất kỳ hệ điều hành gì do Java hỗ trợ đa nền. Cụ
thể hệ thống này được xây dựng trên máy tính cài hệ điều hành Windows XP
Professional. Tuy nhiên vẫn cĩ thể triển khai trên máy chủ hệ điều hành Linux hay
Macintosh... Các phần mềm cần thiết:
Máy ảo Java JDK 1.6
Sun Java Wireless toolkit 2.5.2 for CLDC
Server: Sun GlassFish Enterprise Server v3
Database: mySQL server 5.1
IDE lập trình: Netbeans (đã bao gồm thư viện MySQL JDBC Driver).
5.2. Cài đặt
Phía thiết bị di dộng, chỉ cần copy file ứng dụng vào là cĩ thể chạy được. File
ứng dụng bao gồm 2 file: CampusGuide.jad và CampusGuide.jar.
Phía server, khi triển khai thực tế, chỉ cần upload CampusServer.war lên server
hỗ trợ J2EE.
5.3. Thử nghiệm chương trình
- Với người dùng khác nhau
Chương trình thử nghiệm với người dùng A (khách tham quan) và B (sinh viên).
Khi cùng lựa chọn xem thơng tin về Đại học Quốc gia, chương trình sẽ đưa ra lựa chọn
chủ đề khác nhau, do đĩ thơng tin cũng khác nhau.
42
Hình 5.1. Lựa chọn chủ đề xem với người
dùng sinh viên
Hình 5.2. Lựa chọn chủ đề xem với người
dùng khách tham quan
- Với lượng thơng tin khác nhau
Cùng với chủ đề Giới thiệu chung về Đại học Quốc gia với người dùng khách
tham quan. Lượng thơng tin khác nhau khi người dùng chọn lựa mức độ chi tiết khác
nhau.
Bảng 5.1. Nội dung cung cấp cho người dùng tùy vào mức độ chi tiết
Mức Lượng thơng tin Số dịng (line) Số từ (word)
1 9 134
2 23 353
3 46 729
- Với lịch sử xem thơng tin
Mỗi lần người dùng xem thơng tin, chương trình sẽ ghi vào lịch sử xem thơng
tin. Dựa vào lịch sử xem thơng tin, chương trình sẽ đưa ra các lựa chọn thích hợp cho
những lần xem tiếp theo.
Khi người dùng xem một mức thơng tin của một chủ đề thì các mức nhỏ hơn sẽ
khơng xuất hiện trong lần chọn tiếp theo.
43
Hình 5.3. Lần lựa chọn mức chi tiết đầu tiên
Hình 5.4. Lần lựa chọn mức chi tiết lần tiếp theo
Khi người dùng đã xem thơng tin với mức chi tiết cao nhất của một chủ đề (xem
hết chủ đề) thì lần xem tiếp theo, chủ đề đĩ sẽ khơng xuất hiện ở màn hình lựa chon.
Hình 5.5. Chọn chủ đề lần đầu tiên
Hình 5.6. Chọn chủ đề sau khi đã xem hết thơng
tin chủ đề Giới thiệu chung
Khi đã xem hết các thơng tin của một Trường, khoa, chương trình sẽ đưa ra lựa
chọn cho phép người dùng xĩa lịch sử xem thơng tin của Trường, khoa đĩ. Nếu đồng
ý, chương trình sẽ xĩa lịch sử và chuyển đến màn hình lựa chọn chủ đề.
44
Hình 5.7. Lựa chọn xĩa lịch sử
Hình 5.8. Nếu đồng ý xĩa lịch sử, chuyển đến
màn hình chọn chủ đề
45
CHƯƠNG 6. KẾT LUẬN
6.1. Kết quả đạt được
Tìm hiểu ngơn ngữ lập trình trên nền di dộng J2ME.
Cơng nghệ J2EE, Servlet.
Tìm hiểu Web service.
Tìm hiểu về cơng nghệ bản đồ, cách tạo và xử lý.
Tìm hiểu vể “Xử lý dữ liệu theo ngữ cảnh”.
Xây dựng ứng dụng “Hướng dẫn, cung cấp thơng tin khuơn viên Đại học Quốc
Gia VNU Campus Guide”, bước đầu xử lý sự chi tiết của thơng tin theo độ sâu là 3
mức. Ngữ cảnh của chương trình là kiểu người dùng, mức độ chi tiết thơng tin, lịch sử
xem thơng tin.
Hạn chế:
Chưa cĩ cơ chế định vị, xác định vị trí người dùng tự động.
Chương trình mới chỉ giới hạn ở khuơn viên Đại học Quốc gia Hà Nội 144 Xuân
Thủy, các tịa nhà trong khuơn viên cũng chưa đầy đủ.
Lượng thơng tin cung cấp chưa đầy đủ.
6.2. Hướng phát triển
Bổ sung thêm Dịch vụ hướng vị trí (Location Based Service), vị trí người dùng
cĩ thể xác định bằng GPS. Qua đĩ hiển thị vị trí người dùng trên bản đồ một cách tự
động.
Làm chi tiết hơn bản đồ.
Tìm hiểu và đưa vào thơng tin chi tiết hơn.
Phát triển mở rộng chương trình sang các khu vực khác của Đại học Quốc gia Hà
Nội cũng như các Trường lớn trong khu vực.
46
TÀI LIỆU THAM KHẢO
[1] Anind K. Dey, Gregory D. Abowd. Towards a Better Understanding of Context
and Context-Awareness. Georgia Institute of Technology, 1999, tr 3-4.
[2] Doug Tidwell, James Snell, Pavel Kulchenko. Programming Web Services with
SOAP. 1st Edition, O'Reilly, 2001, tr 6, 15.
[3] Ethan Cerami. Web Services Essentials. 1st Edition, O'Reilly, 2002, tr 103, 135.
[4] J. David Eisenberg. SVG Essentials. 1st Edition, O'Reilly, 2002, tr 12 [4.3].
[5] Paul Dourish. What we talk about when we talk about context. Volume 8 , Issue 1,
2004, tr 20-23.
Các file đính kèm theo tài liệu này:
- LUẬN VĂ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.pdf