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

xây dựng ứng dụng quản lý khách sạn trên nền tảng android kết hợp web services

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 (2.79 MB, 58 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI

XÂY DỰNG ỨNG DỤNG QUẢN LÝ
KHÁCH SẠN TRÊN NỀN TẢNG ANDROID
KẾT HỢP WEB SERVICES

Sinh viên: Lê Thanh Hùng
Mã số: 1117874
Khóa K37

Cần Thơ, 05/2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

Đề Tài

XÂY DỰNG ỨNG DỤNG QUẢN LÝ


KHÁCH SẠN TRÊN NỀN TẢNG ANDROID
KẾT HỢP WEB SERVICES

Người hướng dẫn
Ths. Hồ Văn Tú

Sinh viên: Lê Thanh Hùng
Mã số: 1117874
Khóa: K37

Cần Thơ, 05/2015


LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn quý Thầy Cô trong Khoa Công Nghệ Thông
Tin và Truyền Thông Trường Đai Học Cần Thơ đã tận tình dạy bảo cho chúng em
nhiều kiến thức bổ ích trong suốt thời gian học tập tại trường, cũng như đã tạo điều
kiện cho chúng em hoàn thành tốt đề tài này. Kính chúc quý Thầy Cô dồi dào sức
khỏe và thành công trong cuộc sống.
Xin gửi lời cảm ơn chân thành đến cha mẹ và gia đình, những người đã luôn
ở bên, ủng hộ và động viên con trên con đường con đã chọn trong suốt những năm
học vừa qua.
Đặc biệt, tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy Hồ Văn Tú, người đã tận
tình hướng dẫn tôi trong suốt thời gian thực hiện đề tài, giúp tôi theo kịp tiến độ thực
hiện và rút ra nhiều bài học kinh nghiệm quý báo mỗi khi vấp phải những khó khăn.
Tôi khó có thể hoàn thành được đề tài này nếu không có sự nhiệt tình chỉ bảo của
thầy.
Bên cạnh đó, tôi xin cảm ơn các bạn sinh viên ngành Tin Học Ứng Dụng khóa
37. Các bạn đã giúp đỡ, hỗ trợ tôi rất nhiều, cũng như đóng góp cho tôi nhiều ý kiến
quí báu. Qua đó, giúp tôi hoàn thiện đề tài này hơn.

Mặc dù đã cố gắng và nổ lực hoàn thành đề tài trong phạm vi và khả năng cho
phép nhưng chắc chắn sẽ không tránh khỏi những sai sót. Tôi rất mong nhận được sự
thông cảm, góp ý và tận tình chỉ bảo của thầy cô và các bạn.
Một lần nữa tôi xin chân thành cảm ơn!
Cần Thơ, ngày 05 tháng 05 năm 2015
Người thực hiện
Lê Thanh Hùng

i


MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................i
MỤC LỤC .................................................................................................................. ii
DANH MỤC BẢNG ...................................................................................................v
DANH MỤC HÌNH ...................................................................................................vi
TÓM TẮT ................................................................................................................ vii
ABSTRACT ............................................................................................................ viii
CHƯƠNG 1 GIỚI THIỆU ..........................................................................................1
1.1 ĐẶT VẤN ĐỀ ...................................................................................................1
1.2 MỤC TIÊU ĐỀ TÀI ..........................................................................................1
1.3 PHẠM VI ĐỀ TÀI.............................................................................................1
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ .....................................................................2
1.4.1 Phương pháp thực hiện ................................................................................2
1.4.2 Hướng giải quyết .........................................................................................2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ............................................................................3
2.1 GIỚI THIỆU VỀ NỀN TẢNG HỆ ĐIỀU HÀNH ANDROID [1] ...................3
2.2 GOOGLE MAPS ...............................................................................................3
2.2.1 Giới thiệu về google maps ...........................................................................3
2.2.2 Các apis và công nghệ nổi bật [3] ...............................................................4

2.3 GOOGLE MAPS API WEB SERVICES [3] ....................................................4
2.3.1 Sử dụng google maps api web services .......................................................4
2.3.2 Google direction api ....................................................................................5
2.3.3 Google distance matrix api ..........................................................................6
2.3.4 Google geocoding api ..................................................................................6
2.4 GOOGLE MAP PLACES API [3] ....................................................................6
2.4.1 Place Search ................................................................................................7
2.4.2 Place Details API.........................................................................................8
2.4.3 Place Actions ...............................................................................................8
2.4.4 Place Photos Service ...................................................................................9
2.5 ANDROID SDK VÀ CÁC LỚP TRONG ANDROID .....................................9
2.6 KHÁI NIỆM VỀ WEB SERVICES VÀ SOAP [4] [5]...................................10

ii


2.6.1 Các kiến trúc giao tiếp giữa ứng dụng Android và web services dựa trên
giao thức SOAP ..................................................................................................11
2.6.2 Thư viện KSOAP API trong android ........................................................13
2.6.3 Code một số chức năng quan trọng ...........................................................14
CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .........................................21
3.1 PHÂN TÍCH VÀ THIẾT KẾ ..........................................................................21
3.1.1 Mô hình ER ...............................................................................................21
3.1.2 Tập thực thể ...............................................................................................22
3.2 MÔ HÌNH USECASE .....................................................................................26
3.2.1 Xác định các tác nhân của hệ thống ..........................................................26
3.2.2 Xác định các Use case và vẽ biểu đồ ........................................................26
3.2.3 Sơ đồ tổng quát Usecase............................................................................26
3.2.4 Kịch bản các Use case ...............................................................................28
CHƯƠNG 4 KẾT QUẢ ĐẠT ĐƯỢC ......................................................................33

4.1 GIAO DIỆN ĐĂNG NHẬP ............................................................................33
4.2 GIAO DIỆN ĐĂNG KÝ .................................................................................34
4.3 GIAO DIỆN CHÍNH CHƯƠNG TRÌNH .......................................................34
4.3.1 Giao diện người dùng ................................................................................35
4.3.2 Giao diện thành viên..................................................................................36
4.3.3 Giao diện người quản trị............................................................................37
4.4 GIAO DIỆN THÊM KHÁCH SẠN ................................................................37
4.5 GIAO DIỆN THÔNG TIN KHÁCH SẠN ......................................................39
4.6 GIAO DIỆN ĐẶT PHÒNG .............................................................................40
4.7 GIAO DIỆN TÌM KIẾM ĐIỂM BẤT KÌ ........................................................41
4.8 GIAO DIỆN QUẢN LÝ PHÒNG ...................................................................42
4.9 GIAO DIỆN QUẢN LÝ LOẠI PHÒNG ........................................................42
4.10 GIAO DIỆN DANH SÁCH ĐẶT PHÒNG ..................................................43
4.11 GIAO DIỆN DANH SÁCH KHÁCH SẠN ..................................................43
4.12 GIAO DIỆN QUẢN LÝ ĐẶT PHÒNG TRÊN WEB ..................................44
4.13 GIAO DIỆN DANH SÁCH THUÊ PHÒNG TRÊN WEB ...........................45
4.14 GIAO DIỆN DANH SÁCH KHÁCH SẠN TRÊN WEB .............................45
4.15 GIAO DIỆN DANH SÁCH KHUYẾN MÃI TRÊN WEB ..........................46
iii


CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...........................................47
5.1 KẾT LUẬN......................................................................................................47
5.1.1 Ưu điểm .....................................................................................................47
5.1.2 Hạn chế ......................................................................................................47
5.2 HƯỚNG PHÁT TRIỂN ..................................................................................47
TÀI LIỆU THAM KHẢO .........................................................................................48

iv



DANH MỤC BẢNG
Bảng 3.1 Mô tả thực thể khách sạn ...........................................................................22
Bảng 3.2 Mô tả thực thể loại phòng ..........................................................................22
Bảng 3.3 Mô tả thực thể phòng .................................................................................23
Bảng 3.4 Mô tả tập thực thể đặt phòng .....................................................................23
Bảng 3.5 Mô tả thực thể tài khoản thành viên ..........................................................24
Bảng 3.6 Mô tả thực thể khách hàng.........................................................................25
Bảng 3.7 Mô tả thực thể khuyến mãi ........................................................................25
Bảng 3.8 – Kịch bản use case đăng nhập ..................................................................28
Bảng 3.9 – Kịch bản use case Tìm kiếm điểm bất kì ................................................29
Bảng 3.10 – Kịch bản use case Danh sách khách sạn ...............................................30
Bảng 3.11 – Kịch bản use case Thêm xóa sửa phòng ...............................................30
Bảng 3.11 – Kịch bản use case Đặt phòng ................................................................31

v


DANH MỤC HÌNH
Hình 2.1 – Mô hình HTML frontend ........................................................................11
Hình 2.2 – Mô hình Direct Web services invocation ................................................12
Hình 2.3 – Web services gateway .............................................................................12
Hình 2.4 – Code thêm phòng ....................................................................................14
Hình 2.5 – Code xóa phòng.......................................................................................15
Hình 2.6 – Code sửa phòng .......................................................................................15
Hình 2.8 – Code thêm phòng bên android ................................................................17
Hình 2.9 – Code xóa phòng bên android ..................................................................18
Hình 2.10 – Code sửa phòng bên android .................................................................19
Hình 2.11 – Code đặt phòng bên android .................................................................20
Hình 3.1 – Mô hình ER .............................................................................................21

Hình 3.2 – Use case người dùng ...............................................................................26
Hình 3.3 – Use case thành viên .................................................................................27
Hình 3.4 – Use case người quản trị ...........................................................................28
Hình 4.1 – Giao diện đăng nhập................................................................................33
Hình 4.2 – Giao diện đăng ký tài khoản ...................................................................34
Hình 4.3 – Giao diện người dùng ..............................................................................35
Hình 4.4 – Giao diện thành viên ...............................................................................36
Hình 4.5 – Giao diện người quản trị .........................................................................37
Hình 4.6 và 4.7 – Giao diện thêm khách sạn ............................................................38
Hình 4.8 và 4.9 – Giao diện thông tin khách sạn của người dùng và quản trị ..........39
Hình 4.10 – Giao diện đặt phòng ..............................................................................40
Hình 4.11 và 4.12 -Giao diện tìm kiếm điểm bất kì và Giao diện chỉ đường ...........41
Hình 4.13- Giao diện quản lý phòng và Hình 4.14- Giao diện quản lý loại phòng ..42
Hình 4.15 – Giao diện danh sách đặt phòng và Hình 4.16 – Giao diện danh sách
khách sạn ...................................................................................................................43
Hình 4.17 – Danh sách đặt phòng trên web ..............................................................44
Hình 4.18– Giao diện Danh sách thuê phòng. ..........................................................45
Hình 4.19 – Danh sách khách sạn .............................................................................45
Hình 4.20 – Danh sách khuyến mãi ..........................................................................46

vi


TÓM TẮT
Ứng dụng quản lý khách sạn là một ứng dụng hỗ trợ người dùng có thể dễ
dàng tìm kiếm khách sạn trên bản đồ theo tỉnh hoặc tìm được những khách sạn gần
người sử dụng nhất trên danh sách khách sạn. Người dùng có thể xem thông tin về
khách sạn, tìm hiểu những chương trình khuyến mãi mà khách sạn đó đưa ra, thời
gian khuyến mãi, số phòng trống có trong khách sạn. Từ những thông tin có được từ
khách sạn, người dùng có thể đưa ra quyết định đặt phòng ở khách sạn đó. Người

dùng cần đăng nhập trước khi thực hiện đặt phòng. Bên cạnh đó, ứng dụng còn cung
cấp cho thành viên của hệ thống các chức năng như xem danh sách khách sạn, danh
sách đặt phòng, quản lý phòng và thêm khách sạn trên bản đồ. Thành viên đã thêm
khách sạn nào trên bản đồ, có quyền xác nhận việc đặt phòng của khách hàng tại
khách sạn đó. Ngoài ra, đối với người quản trị, ứng dụng sẽ hỗ trợ cho người quản trị
việc thêm hay xóa bất kì khách sạn, đăng thông tin khuyến mãi cho các khách sạn.
Hơn nữa, ứng dụng được thiết kế với giao diện thân thiện với người dùng và dễ dàng
sử dụng.
Ứng dụng được xây dựng theo các bước cụ thể: thu thập dữ liệu, phân tích mô
hình và xây dựng cơ sở dữ liệu, thiết kế giao diện theo từng chức năng của người sử
dụng, tiến hành xây dựng ứng dụng dựa trên giao diện và chức năng của hệ thống.
Qua quá trình thực hiện, ứng dụng đã đáp ứng nhu cầu người sử dụng với các
chức năng cơ bản. Do thời gian có hạn nên ứng dụng chưa hoàn toàn tối ưu và tốc độ
chạy chưa nhanh, phụ thuộc vào tốc độ mạng rất nhiều. Vì vậy, ứng dụng sẽ được cải
thiện, mở rộng và sẽ đưa vào sử dụng thực tiễn trong tương lai không xa.
Từ khóa: google map api, ksoap, json android, quản lý khách sạn.

vii


ABSTRACT
Hotel management system is an system that supports the user can easily search
for hotel on the map by province or find hotel near the most users on the hotel list.
Users can see the information about the hotel, find out the promotion that hotel offer.
Promotion period, the number of vacant rooms in hotels. The information obtained
from the hotel, you can make a decision at the hotel reservation. Users need to log in
before making a reservation. In addition, the app also provides members of the system
functions as hotel list, list of reservation, room management and more hotels on a
map. Members have more hotel on the map who are allowed to confirm the
reservation at that hotel. Also, for the administrator, the system will assist the

administrator to add or remove any hotel and post promotions for the hotel. Moreover,
the application is designed to interface with user which is friendly and easy to use.
Application was built according to the specific steps: data collection, analysis
and model building database, interface design for each function of the user, the
construction-based application delivery presence and functionality of the system.
Through the implementation process, the application was built to serve the
needs of users eith basic functions. Because time is limited, the application is not fully
optimized and the speed is not fast, it depends on network speed a lot. Therefore, the
application is going to be improved, expanded and put into practical in the future.
Key words: google map api, ksoap, json android, hotel management.

viii


CHƯƠNG 1 GIỚI THIỆU
1.1 ĐẶT VẤN ĐỀ
Ngày nay cùng với sự phát triển không ngừng của xã hội thì nhu cầu của con
người ngày càng tăng, đặc biệt là nhu cầu về việc sử dụng các công nghệ hỗ trợ có
kích thước nhỏ, gọn cho cuộc sống hằng ngày. Nắm bắt được nhu cầu đó mà các công
ty không ngừng đổi mới, phát triển và tạo ra nhiều công nghệ hơn. Trong đó, công
nghệ nổi bật và rất phổ biến hiện nay là công nghệ di động và các ứng dụng trên di
động.
Bên cạnh đó, kinh tế cũng không ngừng phát triển, cùng với đó là sự phát triển
vượt bậc của ngành du lịch. Sự phát triển vượt bậc này đã dẫn đến một vấn đề nan
giải đối với các công ty du lịch, các khách sạn và khách du lịch là sự tìm kiếm khách
sạn, tìm đường đi. Đặc biệt là sự quản lý các khách sạn trên bản đồ, bao gồm quản lý
loại phòng, phòng, chính sách khuyến mãi,… bằng cách thông qua một thiết bị di
động. Vì thế, sự ra đời của một ứng dụng giúp giải quyết vấn đề trên là hết sức cần
thiết.
Nhận thấy được nhu cầu đó nên em quyết định nghiên cứu và xây dựng một

ứng dụng áp dụng công nghệ di dộng vào việc quản lý khách sạn bao gồm tìm kiếm
khách sạn, xem thông tin và dịch vụ về khách sạn, chính sách khuyến mãi, có thể đặt
phòng trực tiếp từ ứng dụng. Bên cạnh đó, ứng dụng còn cho phép người dùng tìm
kiếm địa điểm bất kì trên bản đồ, tìm đường đi đến địa điểm đó,…Sau khi cân nhắc,
em đã quyết định chọn đề tài “Xây dựng ứng dụng quản lý khách sạn trên nền tảng
Android kết hợp Web Services”.
1.2 MỤC TIÊU ĐỀ TÀI
Xây dựng ứng dụng quản lý khách sạn trên nền tảng android cho người quản
lý. Cung cấp cho người dùng những công cụ cần thiết như tìm kiếm khách sạn, đặt
phòng, tìm đường…
Xây dựng Web services cung cấp và lưu trữ dữ liệu qua mạng cho ứng dụng
trên android của người sử dụng.
Xây dựng trang Web đơn giản cho người quản lý để có cách nhìn tổng quan
hơn về ứng dụng và xác nhận việc đăt phòng của khách hàng.
1.3 PHẠM VI ĐỀ TÀI
Với đề tài “Xây dựng ứng dụng quản lý khách sạn trên nền tảng Android kết
hợp Web Services” tương đối rộng nên trong bài luận văn này sẽ tập trung chủ yếu
vào xây dựng một ứng dụng trên nền tảng android. Cụ thể, ứng dụng sẽ giúp người
dùng dễ dàng quản lý tất cả các khách sạn trên bản đồ thông qua việc thêm hay xóa
1


bất kì khách sạn nào với quyền sử dụng Admin. Quản lý chặc chẽ từng khách sạn
riêng biệt bằng việc quản lý phòng, loại phòng, giá, chính sách khuyễn mãi, khách
hàng, cho phép đặt phòng trước trực tiếp trên điện thoại. Khi người dùng đặt phòng
trước, thông tin về người dùng sẽ được đưa đến web services và sẽ được xác nhận
thuê phòng khi gặp trực tiếp chủ khách sạn.
Bên cạnh đó, ứng dụng sẽ cho phép người dùng xem danh sách các khách sạn
trên bản đồ ờ gần mình nhất để dễ dàng xem thông tin khách sạn, từ đó giúp việc lựa
chọn khách sạn và đặt phòng dễ dàng hơn. Ngoài ra, người dùng dễ dàng tìm thấy các

khách sạn theo tỉnh hoặc một địa điểm bắt kì thông qua chức năng tìm kiếm do ứng
dụng cung cấp. Giúp người dùng biết đường đến điểm cần tìm, thời gian và phương
tiện đi thông qua chức năng chỉ đường.
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ
1.4.1 Phương pháp thực hiện
 Về lý thuyết
̶ Nắm vững kiến thức cơ bản về lập trình android và Web services.
̶ Trang bị kiến thức về Google Map Api.
̶ Năm vững các phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu.
 Về kỹ thuật
̶ Dùng công cụ Power Designer 15.1 để thiết kế cơ sở dữ liệu.
̶ Dùng Microsoft Visual Studio 2012 tạo web services và websites
̶ Phần mềm máy ảo Genymotion 2.2.2.
̶ Lập trình Android với Eclipse.
1.4.2 Hướng giải quyết
Thu thập thông tin, yêu cầu và nhu cầu trên thị trường để làm cơ sở phân tích
đề tài.
Từ những thông tin thu thập được, xác định các tác nhân tác động vào hệ thống
và cách thức mà tác nhân đó tác động vào để có thể phân tích chính xác và cung cấp
các chức năng phù hợp với nhu cầu sử dụng.
Xây dựng cơ sở dữ liệu và các sơ đồ cần thiết.
Thiết kế giao diện dựa trên mô tả và các chức năng. Xác định và hiểu rõ từng
chức năng của hệ thống.
Tiến hành xây dựng ứng dụng dựa trên các giao diện và chức năng đã thiết kế.

2


CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ NỀN TẢNG HỆ ĐIỀU HÀNH ANDROID [1]

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra
mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một
hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh
các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android
được bán vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một
cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng
của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10 năm
2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google
Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời
điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu
lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành
mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là
"cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
2.2 GOOGLE MAPS
2.2.1 Giới thiệu về google maps
Google Maps là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên
web miễn phí được cung cấp bởi Google và hỗ trợ nhiều dịch vụ dựa vào bản đồ như
Google Ride Finder và một số có thể dùng để nhúng vào các trang web của bên thứ
ba thông qua Google Maps API. Nó cho phép thấy bản đồ đường sá, đường đi cho xe
đạp, cho người đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vực cũng
như khắp nơi trên thế giới.
Google Map là một trong những ứng dụng phổ biến nhất của Google hiện nay.

Khi mà việc sử dụng bản đồ giấy đã trở nên lỗi thời, thì dịch vụ tìm kiếm bản đồ số,
bản đồ vệ tinh, hệ thống GPS là hết sức cần thiết. Giờ thì ta có thể dễ dàng truy cập
vào Google Map ở bất cứ nơi đâu để tìm địa điểm , tìm đường, …

3


2.2.2 Các apis và công nghệ nổi bật [3]
Maps Image APIs: cho phép nhúng một hình ảnh của bản đồ hoặc hình ảnh từ
StreetView vào một trang web.
Map API Web services: sử dụng giao thức HTTPs để gửi các yêu cầu truy
nhập vào vị trí địa lý, phương hướng , múi giờ , …..
Places API: truy cập vào các thông tin về vị tri địa lý , hoặc những địa điểm
được quan tâm.
Google Earth API: truy cập bất cứ nơi nào trên thế giới chỉ với trình duyệt web
của máy tính.
2.3 GOOGLE MAPS API WEB SERVICES [3]
Google Maps API Web services là một tập các giao diện HTTP cung cấp thông
tin về địa lý cho ứng dụng.
Nó bao gồm:






Directions API
Distance Matrix API
Elevation
Geocoding API

Time Zone API

2.3.1 Sử dụng google maps api web services
Google Maps API cung cấp các dịch vụ như là các interface phục vụ cho việc
yêu cầu hiển thị dữ liệu địa lý và sử dụng dữ liệu đó.
Sử dụng Google Map API yêu cầu nhà phát triển phải chỉ ra rằng ứng dụng có
sử dụng một cảm biến ( ví dụ như cảm biến GPS) để xác định vị trí người dùng trong
bất cứ yêu cầu nào cho service. Nó khá quan trọng cho điện thoại. Nếu ứng dụng
Google Map API sử dụng bất cứ dạng cảm biến để xác định vị trí của thiết bị phải
thiết lập giá trị của tham số sensor = true.
Các dịch vụ này sử dụng các HTTP request để gửi các chuỗi URL lên cho web
services. Web services sẽ trả về kết quả thuộc một trong hai định dạng Json hoặc
XML. App client cần phân tích nội dung trong kết quả nhận được để sử dụng.
Cú pháp URL request:
/>Trong đó:
 serivice: loại dịch vụ
 output: kết quả ở dạng tập tin JSON hay XML

4


 parameters: các tham số phù hợp.
Ngoài giao thức HTTP chúng ta có thể truy cập GooGle Maps API Web
Services thông qua giao thức HTTPs có độ bảo mật cao hơn. Nó được khuyến khích
sử dụng nếu như ứng dụng chứa những dữ liệu nhạy cảm của người dùng .
Cú pháp để truy nhập theo dạng này là:
/>2.3.2 Google direction api
Google Direction API là dịch vụ tính toán đường đi giữa hai điểm sử
dụng HTTP request. Thông tin đầu vào của điểm đầu, điểm kết thúc, điểm trung gian
có thể ở dạng tên xác định địa điểm hay giá trị kinh độ và vĩ độ. Direction API có thể

trả về nhiều hướng đi khác nhau sử dụng một tập các điểm trung gian.
Dịch vụ này được thiết kế để tính toán đường đi giữa những vị trí xác định rõ
thông tin trên bản đồ Google Map. Vì quá trình tính toán đường đi mất thời gian và
phức tạp (phụ thuộc vào khoảng cách hai điểm) nên bất cứ khi nào có thể nên thực
hiện công việc tính toán trước và lưu trữ tạm thời kết quả nhận được.
Cú pháp của Direction URL Request:
directions /output?parameters
Response trả về có định dạng là XML hoặc JSON.
Các tham số của chuỗi request: một số tham số là bắt buộc, một số tham số là
tùy chọn. Được phân cách bằng ký tự "&".
 Bắt buộc:
- origin: địa chỉ hoặc kinh vĩ độ của điểm xuất phát.
- destionation: địa chỉ hoặc kinh vĩ đỗ của điểm đến.
- sensor: có sử dụng thiết bị cảm biến hay không (true or false).
 Tùy chọn:
- mode( mặc định là driving) : xác định kiểu di chuyển là đi bộ, đường xe ô tô,
….
- waypoints: xác đinh một tập hợp các điểm trung gian mà đường đi đi qua.
- alternatives ( true or false ) : nếu giá trị true được thiết lập thì kết quả trả về sẽ
nhiều hơn một tuyến đường để lựa chọn.
- region: mã vùng, bao gồm hai kí tự xác định vùng.
Ví dụ về Direction Request : tính đường đi từ đại học cần thơ đến bến xe hùng
vương.
/>20tho&destination=ben%20xe%20hung%20vuong&sensor=false

5


2.3.3 Google distance matrix api
Google Distance Matrix API là một dịch vụ cung cấp khoảng cách và thời gian

di chuyển cho một ma trận các điểm gốc và điểm đích. Thông tin trả về phụ thuộc
vào đường đi giữa điểm gốc và điểm đích. Nó bao gồm các giá trị khoảng cách và
thời gian cho mỗi cặp điểm.
Dịch vụ Google Distance Matrix API không cung cấp chi tiết đường đi.
Muốn tìm thông tin chi tiết đường đi có thể sử dụng dịch dụ Google Direction API
với chỉ một cặp điểm gốc và điểm đích.
Cú pháp chuỗi request URL như sau:
distancematrix /output?parameters
Ví dụ : tính khoảng cách giữa hai địa điểm cần thơ và đồng tháp.
/>n%20th%C6%A1&destinations=%C4%91%E1%BB%93ng%20th%C3%A1p&mod
e=driving&language=vi-VN&sensor=false
Kết quả trả về :
{ "destination_addresses" : [ "Đồng Tháp, Việt Nam" ],
"origin_addresses" : [ "Cần Thơ, Ninh Kiều, Cần Thơ, Việt Nam" ],
"rows" : [
{

"elements" : [
{ "distance" : { "text" : "90,1 km" "value" : 90140 },
"duration" : { "text" : "1 giờ 32 phút", "value" : 5529 },
"status" : "OK"
}

] } ], "status" : "OK"}

2.3.4 Google geocoding api
Geocoding API là quá trình chuyển đổi một địa chỉ cụ thể sang tọa độ địa lý
của nó ( bao gồm kinh vĩ độ ). Nó có thể được sử dụng trong trường hợp đánh dấu
hoặc đặt vị trí bản đồ.
Geocoding request :

geocode /output?parameters
2.4 GOOGLE MAP PLACES API [3]
Google Places API cho phép truy vấn thông tin của địa điểm trên nhiều thể
loại, như: thể loại vị trí, vị trí địa lý, điểm nối bật, ….. Một kết quả trả về của Place
Search là một danh sách các địa điểm cùng thông tin tổng hợp của mỗi địa điểm.
6


2.4.1 Place Search
2.4.1.1 NearBy Search Request
Một NearBy Search cho phép tìm kiếm các địa điểm trong một khu vực xác
định. Cú pháp HTTP của Nearby Search Request:
/output?parameters
Trong đó: output có thể nhận giá trị là json hoặc xml. Đó chính là định dạng
của kết quả trả về tương ứng với request được gửi tới.
Dưới đây là một số đối số bắt buộc và tùy chọn của một Nearby Search
Request. Các đối số này sẽ được cách nhau bởi kí hiệu “&“.
-

key: khóa API của ứng dụng.
location: vị trí địa lý của điểm cần lây thông tin
radius: xác định 1 bán kính từ vị trí hiện tại tới các điểm cần lấy thông tin.
types: loại địa điểm tìm kiếm

Ví dụ về Nearby Search Request
/>18,105.7468535&radius=5000&types=hospital&key=AIzaSyBXOsoOCyY67v3Z6v
ARC3L2ZNzb1DiILUc
2.4.1.2 Text Search Request
Google Places API Text Search Service là một dịch vụ web trả về thông tin về
một tập hợp các điểm dựa trên một chuỗi đầu vào. Kết quả của tìm kiếm sẽ bao gồm

một danh sách các địa điểm, bạn có thể gửi một Place Details Request đề lấy thêm
thông tin từ một trong những địa điểm được gửi về.
Cú pháp của một Place Text Search Request:
/output?parameters
Ví dụ về một Text Search Request:
/>+Can+Tho&sensor=true&key=AIzaSyBXOsoOCyY67v3Z6vARC3L2ZNzb1DiILUc
2.4.1.3 Radar Search Request
Radar Search Request cho phép bạn tìm kiếm cùng một lúc hơn 200 địa điểm
gần đó , nhưng thông tin trả về sẽ ít hơn là Text Search hoặc Nearby Search. Với api
này bạn có thể tạo một ứng dụng giúp người dùng xác định các vùng cụ thể , quan
tâm trong một khu vực địa lý.

7


Cú pháp:
/output?parameters
2.4.2 Place Details API
Một khi đã có được một kết quả từ Place Search thì bạn có thể yêu cầu lấy
thêm chi tiết về địa điểm bằng cách sử dụng Place Details API. Một Place Details
Request sẽ trả về thông tin một cách đầy đủ hơn , ví dụ như một địa chỉ hoàn chỉnh,
số điện thoại, số đánh giá và nhận xét từ người dùng.
Cú pháp của một Place Detail Request:
/>Trong đó đối số reference được xác định từ Place Search
Ví dụ: lấy thông tin cụ thể về Bún bò huế Vĩ Dạ, địa chỉ : 15 Xô Viết Nghệ
Tĩnh, An Cư, Ninh Kiều, Cần Thơ.
/>ERx-su2a3HuMLn9AW-s1uaVooNjHDgzLID2NxuCjA09Cb_jt2aNTARR6ZxLd9VZWJc2rKxfxYolMvk-apja-XhfJfnA2n7bmOZJEKY0rb9ycVHL6wD2fy6ULUFCydF5Sve2YBIfikxwqcAEuVi45hBoxw97fkQrK2V0t6dfrSsTwuA9
FgyBn6PexTa1rOBIQjxhMaV3dqq_KLIlX8HYzRoU0yNUzMfLAG0BOBmKyt0xJ87F6RM&sensor=true&key=AIza
SyBIEb7fr_bDzmBv9TnCHaoVzkoXCkK32oE
2.4.3 Place Actions

Place Actions cho phép chúng ta bổ sung các dữ liệu hiện có trong cơ sở dữ
liệu hiện có của Google với dữ liệu từ ứng dụng của chúng ta. Dữ liệu được thêm vào
bằng cách dùng Place Actions như một ứng dụng cụ thể, và nó được truy vấn bởi các
ứng dụng có cùng một API key.
Chúng ta có thể thêm, loại bỏ một địa điểm, đặt lịch hoặc chấp nhận cho các
người dùng tạo ra bảng xếp hạng theo tiêu chí của họ.
2.4.3.1 Thêm một địa điểm
Cú pháp:
/>apiKey
Kết quả trả về nếu địa điểm được thêm thành công:

8

{ "status" :"OK"}


2.4.3.2 Xóa một địa điểm
Cú pháp:
/>=apiKey
Thông Bản tin được gửi đi gồm các đối số sau:
reference: mã tham chiếu của một địa điểm.
Kết quả trả về nếu xóa địa điểm thành công:

{ "status" :"OK"}

2.4.3.3 Thêm một sự kiện
Events Service được thiết kế để cung cấp các thông báo, thông tin về các sự
kiện đang xảy ra.
Cú pháp:
/>sensor=true_or_false&key=apiKey

Kết quả trả về nếu xóa địa điểm thành công: Status sẽ là OK nếu sự kiện được
bổ sung thành công , và kèm theo đó mà một mã id đại diện cho sự kiện.
2.4.3.4 Xóa một sự kiện
Cú pháp:
/>sensor=true_or_false&key=apiKey
Thông tin được gửi đi gồm các đối số sau: mã tham chiếu và event_id của sự
kiện đó.
2.4.4 Place Photos Service
Place Photos Service cho phép người dùng có thể lấy những hình ảnh được
lưu trữ trong cơ sở dữ liệu địa điểm của Google .
Khi chúng ta sử dụng Place Search hoặc Place Details Request, kết quả trả về
sẽ chứa một đường dẫn ảnh có liên quan.
Place Photo Response: nếu thành công thì kết quả trả về sẽ là một hình ảnh cụ
thể. Ngược lại server sẽ trả về một thông báo HTTP 400 rằng có thể là mã của hình
ảnh được cung cấp không hợp lệ hoặc độ dài, rộng không được cung cấp.
2.5 ANDROID SDK VÀ CÁC LỚP TRONG ANDROID
Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo
ra các ứng dụng cho các thiết bị di động sử dụng nền tảng android. Android SDK bao

9


gồm nền tảng android, các công cụ, chương trình mẫu và các tài liệu hỗ trợ. Nó cũng
là thành phần bổ sung trong bộ phát triển java và có thể tích hợp vào Eclipse.
Hiện này Google đã phát hành phiên bản Android 4.4.2 (API 19).Android chứa
các gói hổ trợ chức năng tính toán cơ bản như quản lý xâu, quản lý vào ra, tính toán
từ các gói cơ bản trong java:
̶
̶


Java.lang - lớp ngôn ngữ cơ bản của java.
Java.io - quản lý vào ra.
Java.net - quản lý kết nối mạng.
Java.text – tiện ích xử lý văn bản.
Java.math – hỗ trợ tính toán.
Java.xml – các lớp về XML.
̶
̶
̶
̶

Ngoài ra android có các lớp riêng như:
̶
̶
̶
̶
̶
̶
̶

Android.app – truy cập mô hình ứng dụng android.
Android.bluetooth – chức năng Bluetooth của android.
Android.content – quản lý dữ liệu trong android.
Android.net – chứa các lớp Uri dùng để truy cập dữ liệu.
Android.location – các dịch vụ liên quan đến vị trí ( ví dụ như GPS);
Android.view – chứa các thành phần giao diện.
Android.widget – các thành phần giao diện khác.

Chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú
các thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lý và

điều khiển các yếu tố khác của ứng dụng Android trực tiếp từ Eclipse IDE.
2.6 KHÁI NIỆM VỀ WEB SERVICES VÀ SOAP [4] [5]
Web services là một dịch vụ cung cấp cơ chế triệu gọi các đối tượng từ xa
thông qua giao thức HTTP cùng với cơ chế truyền tải định dạng đối tượng theo công
nghệ XML. Chính vì sử dụng giao thức HTTP của Web nên giờ đây các lời gọi trở
nên đơn giản và thông qua được các rào cản về tường lửa. Để đảm bảo điều này, một
giao thức mới là SOAP (Simple Object Access Protocol) ra đời để hỗ trợ cho Web
services. SOAP được định nghĩa dựa trên giao thức chuẩn HTTP. SOAP cho phép dữ
liệu chuyển đi bằng HTTP và định dạng theo chuẩn XML. Các lời gọi hàm tham số
truyền hàm, dữ liệu trả về từ hàm, tất cả đều được chuyển sang dạng XML và có thể
dễ dàng xử lý bởi tất cả các ngôn ngữ. Một thế mạnh khác đó là nếu các đối tượng
phân tán xây dựng trên mô hình Web services sẽ có thể triệu gọi lẫn nhau, bất chấp
đối tượng đó được viết trên ngôn ngữ Java của Sun hay .NET của Microsoft. Hiện
tại, SOAP được coi là một sự thay đổi lớn kể từ khi COM, RMI, CORBA ra đời.

10


2.6.1 Các kiến trúc giao tiếp giữa ứng dụng Android và web services dựa
trên giao thức SOAP
Ba mô hình kiến trúc client/server được xác định phù hợp cho thiết bị di động:
html frontend, web services gateway và direct web services invocation.
2.6.1.1 HTML frontend
Dịch vụ web client được đặt trên một server như một ứng dụng web tự động
tạo ra phản hồi HTML để yêu cầu đến máy chủ HTTP. Một trình duyệt web được sử
dụng cho điện thoại di động client để truy cập và giao tiếp với ứng dụng web. Như
đã thấy ở hình [2.1], yêu cầu đơn giản là HTTP yêu cầu từ trình duyệt web đến HTTP
server. HTTP server chạy trên một ứng dụng web sử dụng các dịch vụ SOAP có sẵn,
và trả về một ứng dụng định dạng HTML. Người dùng nhập vào được xử lý thông
qua các bài viết dưới dạng chuẩn HTML.


Hình 2.1 – Mô hình HTML frontend
HTML frontend thường là lý tưởng khi một thiết bị dự kiến sẽ luôn có một kết
nối internet và các ứng dụng tương tự phải có sẵn trên một loạt các nền tảng thiết bị
khác nhau. Ngoài ra, HTML frontend cho phép phát triển hiệu quả hơn nhờ các các
công cụ phát triển có sẵn với sự hỗ trợ SOAP.
 Ưu điểm:
HTMT frontend được tạo ra một cách nhanh chóng và dễ dàng. Có thể được
triển khai trên mọi web server và một phần của SOAP client framework có sẵn cho
các ứng dụng web. Ngoài ra, HTML frontend là một phương pháp độc lập. Bất kỳ
thiết bị di động với một trình duyệt internet có thể truy cập các ứng dụng web tương
tự.
 Nhược điểm:
Không thể đồng bộ hóa với thiết bị ứng dụng như lịch, danh sách liên lạc, bản
đồ, tin nhắn SMS, …
Không may, client cần được online cho các ứng dụng web có sẵn. Khi mất kết
nối internet, ứng dụng không sử dụng được, có thể bị mất dữ liệu mà người dung đang
làm trên submit.

11


2.6.1.2 Direct Web Services Invocation
Tất cả các yêu cầu đến dịch vụ Web được thực hiện từ thiết bị di động. Ngụ ý
rằng điện thoại di động client phải có khả năng wrap và unwrap thông điệp SOAP.

Hình 2.2 – Mô hình Direct Web services invocation
Direct Web services invocation là một cách lý tưởng khi một ứng dụng client
có thể sử dụng mà không cần kết nối internet và cần đến tính linh hoạt trong thay đổi.
Ưu điểm: Thiết bị di động client có thể có bộ nhớ đệm nội bộ và logic đồng

bộ hóa. Một số client có thể kết nối với cùng một dịch vụ và tạo ra bất kỳ ứng dụng
dịch vụ được hỗ trợ bởi các dịch vụ nhất định mà không cần bất kỳ dịch vụ thiết kế
cụ thể nào.
Nhược điểm: SOAP messages dựa trên XML, thường lớn và phức tạp. Như
vậy sự phức tạp ở cả trên việc tính toán và chuyển giao dữ liệu.
2.6.1.3 Web Services Gateway
Một dịch vụ Web client được đặt như một máy chủ gateway và chuyển đổi các
yêu cầu gửi đến từ điện thoại di động client đến Web services invocations. Sự phản
hồi dịch vụ Web này sau đó được chuyển đổi sang một định dạng nhẹ hơn SOAP và
trả lại cho client. Sự có phản hồi thường thể được định dạng như XML, BXML, JSON
hoặc các định dạng khác với một cấu trúc đơn giản hơn thông điệp SOAP. Chú ý rằng
một trong những yêu cầu đến cổng gateway, có thể dẫn đến nhiều SOAP yêu cầu và
phản hồi.

Hình 2.3 – Web services gateway

12


Web services gateway có lợi khi kiểu Direct Web Services Invocation không
thể sử dụng do chi phí nhắn tin quá nhiều hoặc khi dịch vụ web này không mở cho
những thay đổi.
 Ưu điểm:
- Bằng cách sử dụng một cổng nối giữa các điện thoại di động client và dịch vụ
web, ta có thể để lại các dịch vụ không thay đổi trong khi xây dựng giao diện
nhẹ hơn cho các điện thoại di động client.
- Khả năng sử dụng nén dữ liệu, làm giảm lưu lượng và xử lý dữ liệu. Điều này
cải thiện hiệu suất ứng dụng và làm giảm độ trễ ứng dụng.
 Nhược điểm:
- Một cổng tạo ra một yếu tố kiến trúc để duy trì. Bất kỳ tính năng mới nào đều

phải triển khai trên cả dịch vụ web server, gateway và điện thoại di động client.
- Ngoài ra, phương pháp tiếp cận gateway không được chuẩn hóa. Vì vậy, nó dễ
dàng trở thành ứng dụng cụ thể và bỏ qua nguyên tắc của dịch vụ Web.
2.6.2 Thư viện KSOAP API trong android
2.6.2.1 Giới thiệu về KSOAP
KSOAP là một bộ API được phát triển để hỗ trợ các thiết bị chạy nền Java
(Java-based device) trong đó có thiết bị Android có thể giao tiếp được với web
services sử dụng phương thức truyền đạt thông điệp bằng các gói SOAP (bao gồm
SOAP v1.1 và SOAP v1.2), hỗ trợ ngôn ngữ WSDL như một phần không thể thiếu
và tách rời. WSDL cung cấp một chuẩn mực chung cho các Web services, khiến cho
việc liên lạc, truyền – nhận thông điệp giữa các thiết bị client và web services diễn ra
nhanh, gọn, tính tương thích cao. Tuy nhiên, phiên bản đầu của kSOAP không hỗ trợ
WSDL, nói một cách khác là tính tương thích của bộ API này không cao, không theo
kịp xu thế chung của công nghệ. Kể từ phiên bản thứ 2 (kSOAP v2), một bản vá
(patch) đã được bổ sung, cho phép kSOAP2 mang đến cho các ứng dụng client (nền
Java, Android) khả năng tương thích cao hơn).
KSOAP2 (hay chính xác là kSOAP v2) sử dụng phương pháp liên lạc trực tiếp,
tức là thông điệp được gói trong một đối tượng SOAP, truyền trực tiếp giữa ứng dụng
client và web services, như đã đề cập ở trên. Phương pháp này được ưa chuộng bởi
sự nhanh lẹ, không cần một trạm trung gian trong quá trình truyền tải thông điệp.
Thông điệp yêu cầu (Requests) được truyền đi bởi chính thiết bị client, và thiết
bị cần thiết phải có một cơ chế đóng gói (wrapping) và mở gói (unwrapping) các đối
tượng thông điệp SOAP (SOAP Messages). KSOAP v2 cung cấp những chức năng
này, và rất dễ tiếp cận và sử dụng chúng.

13


2.6.2.2 Các gói thư viện trong kSOAP v2
org.ksoap2: chứa các lớp cơ bản cần thiết để thao tác với các đối tượng SOAP,

kSOAP gọi chúng là SOAP Envelopes. Ngoài ra, chuẩn XML cũng được hỗ trợ bởi
gói này.
Org.ksoap2.serialization: hỗ trợ tính năng Serialization và Deserialization
org.ksoap2.servlet: gói chứa các lớp hỗ trợ giao tiếp với server, bao gồm các
giao diện được hiện thực bởi các lớp ở các gói khác, bao gồm org.ksoap2.transport
và org.ksoap2.
org.ksoap2.transport: quản lý các kết nối HTTP truyền nhận các đối tượng
SOAP.
2.6.3 Code một số chức năng quan trọng
2.6.3.1 Trong web services
Khi tạo một web services, chương trình sẽ cung cấp tự động một Namespace có tên
mặc định, được dùng để bên android có thể gọi đến web services.
[WebService(Namespace = " /> Chức năng thêm phòng
Người dùng sẽ thêm phòng bao gồm các thông tin: tên phòng, số giường, mô tả vào
khách sạn đã chọn trước. Phòng sẽ thuộc 1 trong những loại phòng mà admin đã
cung cấp. Ở đây, loại phòng được dùng chung cho tất cả các khách sạn. Mã phòng
tự động tăng giúp tránh trùng lập mã phòng đã có.

Hình 2.4 – Code thêm phòng

14


 Chức năng xóa phòng
Chức năng xóa phòng sẽ xóa phòng ở một khách sạn bất kì đã chọn trước. Thông tin
về phòng sẽ được xóa cùng với phòng.

Hình 2.5 – Code xóa phòng
 Chức năng sửa phòng
Cho phép cập nhật thông tin của phòng như loại phòng, tên phòng, số giường của.


Hình 2.6 – Code sửa phòng

15


×