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 dan
Trang 1BỘ 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
Cần Thơ, 05/2015
Trang 2BỘ 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
Trang 3LỜ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
Trang 4MỤ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
Trang 52.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
Trang 6CHƯƠ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
Trang 7DANH 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
Trang 8DANH 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
Trang 9TÓ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
Trang 10ABSTRACT
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
Trang 11CHƯƠ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
Trang 12bấ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ế
Trang 13CHƯƠ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, …
Trang 142.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
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
Trang 15 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à:
https://maps.googleapis.com/maps/api/service/output?parameters
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:
http://maps.googleapis.com/maps/api/ 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
http://maps.googleapis.com/maps/api/directions/json?origin=dai%20hoc%20can% 20tho&destination=ben%20xe%20hung%20vuong&sensor=false
Trang 162.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:
http://maps.googleapis.com/maps/api/ distancematrix /output?parameters
Ví dụ : tính khoảng cách giữa hai địa điểm cần thơ và đồng tháp
http://maps.googleapis.com/maps/api/distancematrix/json?origins=c%E1%BA%A7n%20th%C6%A1&destinations=%C4%91%E1%BB%93ng%20th%C3%A1p&mode=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 :
http://maps.googleapis.com/maps/api/ 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
Trang 172.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:
https://maps.googleapis.com/maps/api/place/nearbysearch /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
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=10.04516 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:
https://maps.googleapis.com/maps/api/place/textsearch /output?parameters
Ví dụ về một Text Search Request:
https://maps.googleapis.com/maps/api/place/textsearch/json?query=restaurants+in +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ý
Trang 18Cú pháp:
https://maps.googleapis.com/maps/api/place/textsearch /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:
https://maps.googleapis.com/maps/api/place/details/output?parameters
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ơ
https://maps.googleapis.com/maps/api/place/details/json?reference=CpQBhgAAAJ ERx-su2a3HuMLn9AW-s1uaVooNjHDgzLID2NxuCjA09C-
HL6wD2fy6ULUFCydF5Sve2YBIfikxwqcAEuVi45hBoxw97fkQrK2V0t6dfrSsTwuA9 FgyBn6PexTa1rOBIQjxhMaV3d-
b_jt2aNTARR6ZxLd9VZWJc2rKxfxYolMvk-apja-XhfJfnA2n7bmOZJEKY0rb9ycV-qq_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:
https://maps.googleapis.com/maps/api/place/add/json?sensor=true_or_false&key= apiKey
Kết quả trả về nếu địa điểm được thêm thành công: { "status" :"OK"}
Trang 192.4.3.2 Xóa một địa điểm
Cú pháp:
https://maps.googleapis.com/maps/api/place/delete/json?sensor=true_or_false&key
=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"}
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.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
Trang 20gồ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
Trang 212.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
Trang 222.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
Trang 23Web 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
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
Trang 242.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 = "http://tempuri.org/" )]
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
Trang 25 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
Trang 26 Chức năng đặt phòng
Dùng để thêm những thông tin đặt phòng mà khách hàng đã đăng ký vào bảng DANGKYDATPHONG bao gồm: ngày đăng ký, ngày ở, ngày đi, mã khách hàng, tình trạng khách sạn đã đăng ký, mã phòng đăng ký Ngày đăng ký được lấy theo ngày hiện tại đăng ký Thông tin thành viên đặt phòng sẽ chuyển sang thông tin khách hàng đặt phòng
Hình 2.7 – Code đặt phòng
2.6.3.2 Trong android
Các phương thức đã được viết trên web services, bên android chỉ cần gọi và sử dụng những phương thức này Tuy nhiên để sử dụng được các phương thức bên web services ta phải khai báo trong android như sau:
String NAMESPACE = "http://tempuri.org/";
String METHOD_NAME = "datPhong";
String SOAP_ACTIONS = "http://tempuri.org/datPhong";
String URL = "http://quanlyks.somee.com/WebServiceKS.asmx?WSDL";
Trong đó:
- NAMESPACE: địa chỉ http do web services cung cấp, có thể thay đổi địa chỉ
bất kỳ
- METHOD_NAME: tên phương thức được viết trong web services
- SOAP_ACTIONS: là NAMESPACE+ METHOD_NAME
- URL: địa chỉ của web services
Trang 27 Chức năng thêm phòng
Hình 2.8 – Code thêm phòng bên android
Trang 28 Chức năng xóa phòng
Hình 2.9 – Code xóa phòng bên android
Trang 29 Chức năng sửa phòng
Hình 2.10 – Code sửa phòng bên android