Nhằm phục vụ cho các đối tượng du lịch cá nhân, hành trình không theo các tour du lịch do các công ty lữ hành cung cấp và sự kết hợp công nghệ phát triển của điệnthoại thông minh thì việ
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI : XÂY DỰNG KHO DỮ LIỆU TRỰC TUYẾN ĐỊA ĐIỂM DU LỊCH
TRÊN ĐIỆN THOẠI DI ĐỘNG
Mã số : 07T2-051 Ngày bảo vệ : 13-14/06/2012
SINH VIÊN : LÊ PHƯƠNG TIẾN
ĐÀ NẴNG, 06/2012
Trang 2Tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin, trường Đại học Bách khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho tôi trong những năm học vừa qua và nhất là đã tạo điều kiện thuận lợi cho tôi học tập, thực hiện đề tài tốt nghiệp này.
Đặc biệt, tôi xin chân thành cảm ơn Thầy giáo PGS.TS.Phan Huy Khánh đã trực tiếp, tận tình giúp đỡ và hướng dẫn tôi trong suốt thời gian thực hiện đề tài.
Để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình Ông Bà, Cha Mẹ và những người thân trong gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất về vật chất lẫn tinh thần trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này.
Mặc dù đã cố gắng hoàn thành đồ án 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 thiếu 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 quý Thầy Cô và các bạn.
Một lần nữa xin chân thành cám ơn!
Đà Nẵng, ngày 01 tháng 06 năm 2012 Sinh viên thực hiện
Lê Phương Tiến
Trang 3Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy PGS.TS.Phan Huy Khánh.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên
Lê Phương Tiến
Trang 4
Trang 5
Trang 6
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của
thầy PGS.TS.Phan Huy Khánh 3
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố 3
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm 3
DANH MỤC HÌNH ẢNH 5
DANH MỤC BẢNG 8
MỞ ĐẦU 9
.I GIỚI THIỆU ĐỀ TÀI 9
.I.1 Bối cảnh đề tài 9
.I.2 Mục đích 10
.I.3 Ý nghĩa 10
.II PHẠM VI ĐỀ TÀI 10
.III TRIỂN KHAI ĐỀ TÀI 10
.III.1 Các bước thực hiện 10
.III.2 Mục tiêu cần đạt được 11
.IV KẾT QUẢ DỰ KIẾN 11
CƠ SỞ LÝ THUYẾT 13
.I NỀN TẢNG DI ĐỘNG 13
.I.1 Giới thiệu các nền tảng di động 13
.I.1.1 iOS 13
.I.1.2 Android 14
.I.1.3 Windows Phone 14
.I.1.4 Symbian 15
.I.1.5 BlackBerry 15
.I.2 Hệ điều hành iOS 15
.I.2.1 Giới thiệu 16
.I.2.2 Kiến trúc 17
.I.3 Ngôn ngữ lập trình Objective-C 19
.I.3.1 Giới thiệu 19
.I.3.2 Các thành phần 19
.I.3.3 Các thế mạnh 20
.I.3.4 Môi trường lập trình Xcode 21
.II CÁC DỊCH VỤ 22
.II.1 Công nghệ định vị toàn cầu GPS 22
.II.1.1 Giới thiệu 22
.II.1.2 Hoạt động 22
.II.1.3 Khả năng định vị toàn cầu của các thiết bị iOS 23
.II.2 Google Map và Google Map API 24
.II.2.1 Google Map 24
.II.2.2 Google Map API 24
Trang 7.III.3 Thành phần 28
.III.3.1 XML – eXtensible Markup Language 28
.III.3.2 WSDL – Web Service Description Language 28
.III.3.3 Universal Description, Discovery, and Integration (UDDI) 29
.III.3.4 SOAP – Simple Object Access Protocol 30
.III.4 Hoạt động 32
.IV SERVER 33
.IV.1 Hệ quản trị cơ sở dữ liệu MySQL 33
.IV.2 Ngôn ngữ lập trình PHP 33
.IV.3 Web server Apache 34
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 35
.I PHÂN TÍCH YÊU CẦU 35
.I.1 Mô tả bài toán 35
.I.2 Phân tích hiện trạng du lịch Việt Nam 36
.I.2.1 Tổng quan 36
.I.2.2 Du lịch Ba lô 36
.I.2.3 Tiềm năng du lịch Ba lô 37
.I.2.4 Vấn đề nan giải 37
.I.3 Phân tích yêu cầu bài toán 38
.I.3.1 Người sử dụng 38
.I.3.2 Kho dữ liệu 39
.I.3.3 Công nghệ 41
.I.4 Phân tích khả thi 42
.I.4.1 Tính khả dụng 42
.I.4.2 Chi phí phát triển 42
.I.5 Xác định các chức năng chính của hệ thống 42
.II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 45
.II.1 Yêu cầu hệ thống 45
.II.1.1 Yêu cầu chức năng và đặc tả ca sử dụng 45
.II.1.2 Yêu cầu phi chức năng 55
.II.2 Tác nhân hệ thống 57
.II.3 Biểu đồ ca sử dụng 58
.II.3.1 Mức 0 58
.II.3.2 Mức 1 59
.II.4 Biểu đồ hoạt động 64
.II.5 Biểu đồ tuần tự 68
.II.6 Biểu đồ lớp 73
.II.6.1 Biểu đồ lớp mức phân tích 73
.II.6.2 Biểu đồ lớp 74
.II.7 Biểu đồ triển khai 74
.III XÂY DỰNG CƠ SỞ DỮ LIỆU 75
.III.1 Bảng dữ liệu 75
.III.1.1 Nhóm người dùng 75
.III.1.2 Nhóm địa điểm 75
.III.1.3 Nhóm phân loại và đánh giá 76
Trang 8.III.2 Mô hình quan hệ dữ liệu 77
.IV THIẾT KẾ GIAO DIỆN ỨNG DỤNG 79
.IV.1 Người dùng 79
.IV.2 Các danh sách địa điểm 79
.IV.3 Các nhóm chức năng chính 80
.IV.4 Địa điểm 82
.IV.4.1 Xem thông tin địa điểm 82
.IV.4.2 Đăng tải địa điểm 83
XÂY DỰNG HỆ THỐNG 84
.I KẾ HOẠCH THỰC HIỆN 84
.II XÂY DỰNG HỆ THỐNG 84
.II.1 Nhu cầu người dùng 84
.II.1.1 Đối tượng người dùng 84
.II.1.2 Mục đích người dùng 84
.II.1.3 Nhu cầu thực tiễn 85
.II.2 Quản lý hệ thống 86
.II.2.1 Về hệ thống Server 86
.II.2.2 Về cơ sở dữ liệu hệ thống 86
.II.3 Xây dựng kho dữ liệu 87
.II.3.1 Xây dựng dữ liệu 87
.II.3.2 Khai thác dữ liệu 87
.II.3.3 Cập nhập dữ liệu 88
.II.3.4 Tra cứu dữ liệu 88
.III CẤU TRÚC VÀ MÔ HÌNH 89
.III.1 Thiết kế cấu trúc 89
.III.1.1 Cấu trúc dữ liệu 89
.III.1.2 Cấu trúc hệ thống 90
.III.2 Mô hình 90
.III.2.1 Mô hình triển khai cho server 91
.III.2.2 Mô hình triển khai cho client 92
.IV TRIỂN KHAI HỆ THỐNG 93
.IV.1 Hệ thống server 93
.IV.1.1 Môi trường triển khai 93
.IV.1.2 Cài đặt cơ sở dữ liệu 93
.IV.1.3 Cài đặt Web Service 93
.IV.1.4 Khai thác Web Service 94
.IV.1.5 Phát triển Web Service 96
.IV.2 Ứng dụng trên điện thoại di động iPhone 98
.IV.2.1 Môi trường triển khai 98
.IV.2.2 Cài đặt ứng dụng 98
.IV.2.3 Giao diện ứng dụng 99
.IV.2.4 Luồng màn hình ứng dụng 100
.IV.2.5 Thao tác dữ liệu với Web Service 101
.IV.2.6 Ứng dụng Google MAP API vào triển khai ứng dụng 104
.IV.2.7 Các nhóm chức năng chính ứng dụng 106
ĐÁNH GIÁ TRIỂN KHAI 107
.I KẾT QUẢ 107
Trang 9.I.2 Kết quả cho trang Web Admin 109
.I.3 Kết quả triển khai ứng dụng trên điện thoại di động 110
.II ĐÁNH GIÁ 118
.II.1 Bảng đánh giá kết quả thực hiện 118
.II.1.1 Ứng dụng trên điện thoại di động 118
.II.1.2 Hệ thống server 119
.II.2 Những điều đạt được 119
.II.3 Những điều chưa đạt được 120
.III HƯỚNG PHÁT TRIỂN 121
PHỤ LỤC 122
TÀI LIỆU THAM KHẢO 123
[1] Bill Dudney and Chris Adamson iPhone SDK Development Building iPhone Applications 123
[2] Dave Mark, Jack Nutting, Jeff LaMarche Beginning iPhone 4 Development Exploring the iOS SDK 123
[3] James Bucanek Beginning XCode 123
[4] PHP Site: http://php.net/ 123
[5] Webservice with NuSoap: http://www.nusphere.com/php_script/nusoap.htm 123
[6] Google MAP API : https://developers.google.com/maps/documentation/webservices .123
[7] Xcode Developer : https://developer.apple.com/technologies/tools/ 123
[8] Wiki GPS : http://en.wikipedia.org/wiki/Global_Positioning_System 123
[9] Du lịch Việt Nam: httpL//vi.wikipedia.org/wiki/Du_lich_Viet_Nam 123
TÓM TẮT LUẬN VĂN TỐT NGHIỆP 124
Trang 10DANH MỤC HÌNH ẢNH
HÌNH 1 : KIẾN TRÚC IOS 17
HÌNH 2 : ỨNG DỤNG GPS TRÊN IOS 23
HÌNH 3 : CHỒNG GIAO THỨC CỦA DỊCH VỤ WEB 27
HÌNH 4 : MÔ HÌNH HOẠT ĐỘNG CỦA WEB SERVICE 32
HÌNH 5 : USECASE TỔNG QUÁT - VIETBALO 58
HÌNH 6 : USECASE ĐĂNG KÝ, ĐĂNG NHẬP 59
HÌNH 7 : USECASE QUẢN LÝ THÔNG TIN CÁ NHÂN 59
HÌNH 8 : USECASE ĐỊA ĐIỂM 60
HÌNH 9 : USECASE TRA CỨU 61
HÌNH 10 : USECASE PHẢN HỒI 61
HÌNH 11 : USECASE THỐNG KÊ 62
HÌNH 12 : USECASE QUẢN LÝ NGƯỜI DÙNG 62
HÌNH 13 : USECASE QUẢN LÝ ĐỊA ĐIỂM 63
HÌNH 14 : USECASE QUẢN LÝ PHẢN HỒI 63
HÌNH 15 : BIỂU ĐỒ HOẠT ĐỘNG - ĐĂNG KÝ 64
HÌNH 16: BIỂU ĐỒ HOẠT ĐỘNG - ĐĂNG NHẬP 64
HÌNH 17: BIỂU ĐỒ HOẠT ĐỘNG - XEM THÔNG TIN NGƯỜI DÙNG64 HÌNH 18: BIỂU ĐỒ HOẠT ĐỘNG - CHỈNH SỬA THÔNG TIN CÁ NHÂN 64
HÌNH 19: BIỂU ĐỒ HOẠT ĐỘNG - QUÊN MẬT KHẨU 64
HÌNH 20: BIỂU ĐỒ HOẠT ĐỘNG - XEM ĐỊA ĐIỂM 65
HÌNH 21: BIỂU ĐỒ HOẠT ĐỘNG - CẬP NHẬP THÔNG TIN ĐỊA ĐIỂM 65
66
HÌNH 22: BIỂU ĐỒ HOẠT ĐỘNG - CHỈNH SỬA THÔNG TIN ĐỊA ĐIỂM 66
66
HÌNH 23: BIỂU ĐỒ HOẠT ĐỘNG - THÊM ĐỊA ĐIỂM 66
HÌNH 24: BIỂU ĐỒ HOẠT ĐỘNG - TÌM KIẾM, TRA CỨU 66
HÌNH 25: BIỂU ĐỒ HOẠT ĐỘNG - PHẢN HỒI HỆ THỐNG 67
HÌNH 26: BIỂU ĐỒ HOẠT ĐỘNG - XEM THỐNG KÊ 67
Trang 11HÌNH 27: BIỂU ĐỒ HOẠT ĐỘNG - QUẢN LÝ THÀNH VIÊN 67
HÌNH 28: BIỂU ĐỒ HOẠT ĐỘNG - QUẢN LÝ ĐỊA ĐIỂM 67
68
HÌNH 29: BIỂU ĐỒ HOẠT ĐỘNG - QUẢN LÝ PHẢN HỒI 68
HÌNH 30 : BIỂU ĐỒ TUẦN TỰ - ĐĂNG KÝ 68
69
HÌNH 31 : BIỂU ĐỒ TUẦN TỰ - ĐĂNG NHẬP 69
69
HÌNH 32 : BIỂU ĐỒ TUẦN TỰ - CHỈNH SỬA THÔNG TIN CÁ NHÂN69 HÌNH 33 : BIỂU ĐỒ TUẦN TỰ - XEM THÔNG TIN ĐỊA ĐIỂM 70
HÌNH 34 : BIỂU ĐỒ TUẦN TỰ - CHỈNH SỬA THÔNG TIN ĐỊA ĐIỂM70 71
HÌNH 35 : BIỂU ĐỒ TUẦN TỰ - CẬP NHẬP THÔNG TIN ĐỊA ĐIỂM71 71
HÌNH 36 : BIỂU ĐỒ TUẦN TỰ - TRA CỨU ĐỊA ĐIỂM 71
72
HÌNH 37 : BIỂU ĐỒ TUẦN TỰ - TÌM KIẾM ĐỊA ĐIỂM 72
72
HÌNH 38 : BIỂU ĐỒ TUẦN TỰ - ĐĂNG TẢI ĐỊA ĐIỂM 72
HÌNH 39 : BIỂU ĐỒ TUẦN TỰ - PHẢN HỒI 73
HÌNH 40: BIỂU ĐỒ LỚP MỨC PHÂN TÍCH 73
HÌNH 41: BIỂU ĐỒ LỚP 74
HÌNH 42: BIỂU ĐỒ TRIỂN KHAI 74
HÌNH 43 : MÔ HÌNH QUAN HỆ DỮ LIỆU 78
HÌNH 44 : KẾ HOẠCH THỰC HIỆN 84
HÌNH 45 : SƠ ĐỒ XÂY DỰNG DỮ LIỆU CỦA HỆ THỐNG THÔNG QUA ĐỐI TƯỢNG 87
HÌNH 46 : MÔ HÌNH TRA CỨU DỮ LIỆU 88
HÌNH 47 : MÔ HÌNH QUAN HỆ DỮ LIỆU 89
HÌNH 48 : BIỂU ĐỒ TRIỂN KHAI 90
HÌNH 49 : MÔ HÌNH TRIỂN KHAI HỆ THỐNG 90
Trang 12HÌNH 51 : SƠ ĐỒ HOẠT ĐỘNG CỦA MÔ HÌNH MVC CHO SERVER91
HÌNH 52 : MÔ HÌNH 3 LỚP TRIỂN KHAI CHO CLIENT 92
HÌNH 53 : KẾT QUẢ CHẠY WEB SERVICE VỚI 1 SỐ PHƯƠNG THỨC CƠ BẢN ĐẦU TIÊN 94
HÌNH 54 : SỬ DỤNG WEB SERVICE TRÊN SOAP UI 94
HÌNH 55 : CẤU TRÚC MÃ NGUỒN PHÁT TRIỂN WEB SERVICE TRÊN MÔI TRƯỜNG NETBEAN 96
HÌNH 56 : GIAO DIỆN CƠ BẢN CỦA ỨNG DỤNG 99
HÌNH 57 : CÁC LUỒNG MÀN HÌNH CHÍNH CỦA ỨNG DỤNG 100
HÌNH 58 : SƠ ĐỒ KẾT NỐI GIỮA ỨNG DỤNG VỚI SERVER 101
HÌNH 59 : SƠ ĐỒ NHẬN DỮ LIỆU TỪ WEB SERVICE CỦA ỨNG DỤNG 102
HÌNH 60 : SƠ ĐỒ ĐỌC DỮ LIỆU XML CỦA ỨNG DỤNG 103
HÌNH 61 : SỬ DỤNG GOOGLE MAP API ĐỂ LẤY VỊ TRÍ TRÊN BẢN ĐỒ 105
Trang 13DANH MỤC BẢNG
BẢNG 1 : BẢNG CÁC CHỨC NĂNG ĐĂNG KÝ, ĐĂNG NHẬP 42
BẢNG 2 : BẢNG CÁC CHỨC NĂNG QUẢN LÝ THÔNG TIN CÁ NHÂN 42
BẢNG 3 : BẢNG CÁC CHỨC NĂNG ĐỊA ĐIỂM 43
BẢNG 4 : BẢNG CÁC CHỨC NĂNG TRA CỨU 43
BẢNG 5 : BẢNG CÁC CHỨC NĂNG PHẢN HỒI 43
BẢNG 6 : BẢNG CÁC CHỨC NĂNG THỐNG KÊ 43
BẢNG 7 : BẢNG CÁC CHỨC NĂNG QUẢN LÝ HỆ THỐNG 44
BẢNG 8 : BẢNG USERS 75
BẢNG 9 : BẢNG REGIONS 75
BẢNG 10 : BẢNG PLACES 76
BẢNG 11 : BẢNG COMMENTS 76
BẢNG 12 : BẢNG RATES 76
BẢNG 13 : BẢNG REPORTS 76
BẢNG 14 : BẢNG SYSTEMREPORTS 77
BẢNG 15 : BẢNG USERS_PLACES 77
BẢNG 16 : KẾT QUẢ THỰC HIỆN - NGƯỜI DÙNG 118
BẢNG 17 : KẾT QUẢ THỰC HIỆN - ĐỊA ĐIỂM 118
BẢNG 18 : KẾT QUẢ THỰC HIỆN - TRA CỨU, TÌM KIẾM CÁC ĐỊA ĐIỂM 118
BẢNG 19 : KẾT QUẢ THỰC HIỆN - TRA CỨU CÁC ĐỊA ĐIỂM XUNG QUANH NGƯỜI DÙNG 119
BẢNG 20 : KẾT QUẢ THỰC HIỆN - HỆ THỐNG SERVER 119
Trang 14.I GIỚI THIỆU ĐỀ TÀI
.I.1 Bối cảnh đề tài
Ngày nay, khi cuộc sống vật chất đã được đảm bảo thì con người sẽ tìm tới cácdịch vụ nhằm nâng cao đời sống tinh thần và vật chất Sự phát triển của các ngànhcông nghiệp dịch vụ không khói được đẩy mạnh, trong đó du lịch dịch vụ là mộtngành mang lại nhiều tiềm năng trong công cuộc phát triển bền vững của một quốcgia
Nhu cầu du lịch của mọi người đã trở thành phổ biến Ngoài các tour du lịch docác công ty cung cấp thì ngày nay cũng đã xuất hiện nhiều các hình thái du lịch cánhân, mang tích chất tự do Đồi với nước ngoài thì loại hình này đã được phát triểnrất lâu, người du lịch bỏ ra chi phí thấp cho một chuyến du lịch và họ sẽ được trảinghiệm hoàn toàn theo cách riêng của mình Đối với nước ta, thì loại hình này đanggiai đoạn phát triển, việc nắm bắt loại hình này sẽ giúp cho các địa phương nâng caophát triển các ngành du lịch dịch vụ và mang lại nguồn lợi to lớn cũng như quảng báhình ảnh của đất nước
Đồng thời, sự phát triển của khoa học công nghệ ngày càng nhanh chóng Điệnthoại di động không còn đơn thuần là thiết bị liên lạc, mà trở thành một công cụ giảitrí đa phương tiện và một vật không thể thiếu của mọi người Đối với người du lịchthì một chiếc điện thoại sẽ hỗ trợ họ rất nhiều trong chuyến du lịch, nhất là nhừngngười du lịch tự do ( không theo các tour du lịch ) Điện thoại giúp họ tìm đường, xácđịnh vị trí, ghi lại những hình ảnh đẹp, chia sẻ cho bạn bè, người thân và còn nhiềulợi ích khác mang lại cho người dùng
Nhằm phục vụ cho các đối tượng du lịch cá nhân, hành trình không theo các tour
du lịch do các công ty lữ hành cung cấp và sự kết hợp công nghệ phát triển của điệnthoại thông minh thì việc phát triển một kho dữ liệu các địa điểm du lịch và một ứngdụng kèm theo trên điện thoại di động sẽ là công cụ cần thiết trong hành trang củangười du lịch
Chính vì vậy, ý tưởng của tôi đưa ra là xây dựng kho dữ liệu trực tuyến các địa
điểm du lịch trên điện thoại di động với tên gọi là "Việt Balô".
Trang 15.I.2 Mục đích
Luận văn tốt nghiệp trên ý tưởng đề tài với hai mục đích chính :
• Xây dựng kho dữ liệu trực tuyến các địa điểm du lịch
• Xây dựng ứng dụng trên điện thoại di động iPhone, nhằm sử dụng, khaithác, xây dựng kho dữ liệu
.I.3 Ý nghĩa
"Việt Balô" là một kho dữ liệu các địa điểm du lịch được thiết kế để sử dụng trên
các thiết bị di động Nhằm cung cấp các địa điểm hay được nhiều người du lịch đi tới,bình luận cũng nhưng đánh giá về các địa điểm
Người du lịch có thể tìm kiếm các địa điểm du lịch mà không cần theo sự cung cấpcác công ty du lịch lữ hành Ngoài ra, họ có thể chia sẻ các địa điểm đã đi qua, chia sẻkết nối bạn bè Các công ty hoặc các địa phương có thể tham khảo và đề ra nhiều tour
du lịch với các địa điểm du lịch tiềm năng được kho dữ liệu cung cấp
Các nhà phát triển, lập trình viên có thể sử dụng các phương thức được cung cấpcủa kho dữ liệu để phát triển ứng dụng kho dữ liệu trên nhiều nền tảng khác nhau,nhằm đưa kho dữ liệu phát triển và đến với nhiều người dùng hơn
Quan trọng hơn, "Việt Balô" đem lại lợi ích cho đại đa số người dùng, với mỗi
người dùng đều là người khai thác và người phát triển kho dữ liệu
.III TRIỂN KHAI ĐỀ TÀI
.III.1 Các bước thực hiện
• Phân tích các yêu cầu sử dụng của đề tài
• Phân tích thiết kế hệ thống
• Xây dựng cơ sở dữ liệu
• Xây dựng hệ thống webservice
Trang 16• Xây dựng ứng dụng trên điện thoại di động iPhone.
• Triển khai hoạt động cho kho dữ liệu và ứng dụng, đồng thời tiến hànhkiểm thử đảm bảo chất lượng
• Viết báo cáo tổng kết đề tài và đề ra hướng phát triển
.III.2 Mục tiêu cần đạt được
Dự kiến "Việt Balô" hoàn toàn có khả năng triển khai thực tiễn Các mục tiêu cần
đạt được:
• Xây dựng thành công hệ thống kho dữ liệu ở Server với Web Service cungcấp việc giao tiếp giữa điện thoại với kho dữ liệu
• Xây dựng thành công ứng dựng trên điện thoại di động iPhone
• Triển khai thành công hệ thống chạy trên môi trường thực tiễn, cụ thể là:internet cho server và trên điện thoại di động iPhone cho ứng dụng
.IV KẾT QUẢ DỰ KIẾN
Với mục đích đề ra thì kết quả cần đạt được trong đề tài luận văn tốt nghiệp này:
• Tìm hiểu nền tảng di động iOS
• Phân tích yêu cầu người dùng và thiết kế hệ thống
• Xây dựng và triển khai hệ thống trong thực tế
Trang 17.I NỀN TẢNG DI ĐỘNG
.I.1 Giới thiệu các nền tảng di động
Ngày này, thị trường di động đang pháttriển mạnh mẽ chưa từng thấy với vô vàngcác nhãn hiệu, kiểu dáng, tính năng Đãbiến chiếc điện thoại thành một thiết bị giảitrí đa phương tiện không thể thiếu Với lợithế nhỏ gọn, được mọi người sử dụng đemtheo mọi lúc mọi nơi, nhưng cũng vì nhỏgọn như vậy cũng là một bất lợi về xử lý vàtốc độ Để đảm bảo một chiếc điện thoạithông minh hoạt động tốt thì nó cần có một
hệ điều hành quản lý thiết bị
Đi kèm với sự phát triển phần cứng trên thiết bị động thì cuộc chiến của các nhàphát triển các hệ điều hành trên điện thoại di động cũng diễn ra hết sức khốc liệt.Hiện nay, các nền tảng di động lớn được biết đến như sau
.I.1.1 iOS
Nền tảng di động iOS với điện thoại di động thông minh iPhone, với thiết kế đẹp,thời trang, cảm ứng mượt mà, màn hình đẹp và sắc nét cùng với tài năng của "thánh"
Steve Jobs đã khiến cho iPhone trở thành hiện tượng trên mọi thị trường, đặc biệt là
ở Mỹ Doanh số bán ra của iPhone tăng dần qua các năm, và dần dần thống lĩnh thịtrường của nhiều nước iPhone dù mỗi năm chỉ ra một phiên bản mới nhưng sức nóng
đủ lan tỏa khắp làng di động, do đó, iOS vẫn chưa bao giờ "già"
iOS là hệ điều hành "đóng" hoạt động trên iPhone, iPad, iPod iOS đã quyết định
rất nhiều đối với sự thành công của Apple, với giao diện bóng bẩy, đẹp mắt, và dễ sửdụng Tất cả chỉ là chạm và vuốt để thực thi Cùng với chính sách hợp lý để thu hútcác lập trình viên viết ứng dụng, kho ứng dụng Appstore ngày càng lớn khiến chongười dùng càng thêm thích thú, mọi nhu cầu của từng người đều có thể được đápứng Cũng như việc Apple cũng tung ra cập nhật, vá các lỗi liên tục khi phát hiện,khiến cho iOS ngày càng trở nên "thông minh" hơn, an toàn hơn
Nhưng nếu gọi iOS là thống trị năm 2012 thì điều đó cũng là chưa thể Vì iOS chỉđược cài giới hạn trên thiết bị của Apple gồm những thiết bị như iPhone, iPad, iPod Thị phần của thiết bị Apple trên thế giới nói chung là không lớn, số liệu các bạn thấy
Trang 18.I.1.2 Android
Mặc dù sinh sau đẻ muộn, nhưng Android đang có những bước tiến thần tốc, trongthời gian ngắn đã đạt được nhiều điều khiến mọi hệ điều hành di động mơ ước:khoảng 700.000 điện thoại Android được kích hoạt mỗi ngày
Khi mà iOS ngày càng bành trướng mà Symbian lại không đủ sức để cạnh tranh.Các lập trình viên, các nhà sản xuất điện thoại chú ý đến Android Hệ điều hành diđộng mở được Google phát triển dựa trên nền tảng Linux
Android ngày càng lớn mạnh về số lượng và chất lượng bởi sự linh hoạt từ nền
tảng Google, phù hợp với cả smartphone tầm thấp lẫn giá cao Hàng loạt các nhà sảnxuất điện thoại di động sử dụng Android làm hệ điều hành chính cho các sản phẩmcủa mình Như HTC, Samsung, LG, Motorola, Sony Ericsson Từ điện thoại, chođến máy tính bảng của các hãng này đều dùng hệ điều hành Android Các nhà lậptrình viết ứng dụng ngày càng nhiều trên Android Market Kho ứng dụng đang cạnhtranh trực tiếp với AppStore của Apple Chính vì điều này mà đã khiến Android ngàycàng bành trướng trên thị trường khắp các châu lục, và đến năm sau, năm 2012,Android sẽ là hệ điều hành thống trị
Nhưng các bạn có thể thấy, dường như Android đang ở trên đỉnh cao của mình.Chính vì có quá nhiều thiết bị, mỗi thiết bị có cấu hình riêng, nhà sản xuất tùy biếnriêng và việc có quá nhiều ứng dụng, nhưng lại không theo một chuẩn cụ thể nào.Khiến Android ngày càng bị phân mảnh và rời rạc
Android được cập nhật quá thường xuyên, dẫn đến tình trạng trên thị trường cónhiều phiên bản cùng tồn tại, được phát hành song song với nhau Google đang dầnmuốn kiểm soát và hạn chế sự phân mảnh, nhưng đồng thời cũng làm mất dần tính
"mở" vốn là triết lý cơ bản của Android
.I.1.3 Windows Phone
Sau sự kiện Microsoft hợp tác cùng Nokia Nokia sẽ chạy hệ điều hành WindowsPhone trên các smartphone của mình song song với Symbian và MeeGo Với lợi thế
là nhà sản xuất điện thoại chiếm thị phần cao trên thế giới Windows Phone bắt đầu
khiến các hệ điều hành di động khác lo lắng
Windows Phone 7 không có gì giống Windows Mobile Hệ điều hành mới này có
một diện mạo hoàn mới, hợp thời, với giao diện Metro đầy mới lạ, gần giống như một
tờ tạp chí, và cực kỳ dễ sử dụng mặc dù cách xử lý mọi việc rất khác WindowsPhone 7 cũng đã tạo ra một sức hấp dẫn mới cho làng công nghệ Kho ứng dụngMarketplace tuy có khiêm tốn nhưng rất nhiều phần mềm hữu ích và được kiểm soátbởi Microsoft
Trang 19.I.1.4 Symbian
Symbian, hệ điều hành di động được đánh giá là thân thiện, dễ sử dụng Symbian
rất mạnh đối với các dòng điện thoại sử dụng màn hình cứng, bàn phím T9 cơ bản Vàkho ứng dụng của Symbian trong 10 năm qua không phải là ít Những ứng dụng nàyđáp ứng không nhỏ trong công việc, đời sống hằng ngày của mọi người
Từ bản Symbian^3, giao diện đã thay đổi rất nhiều Nhưng chưa rõ rệt cho lắm.
Cho đến bản Symbian Anna, Symbian Belle toàn bộ đã khác: Biểu tượng trau chuốthơn, giao diện mượt mà hơn, loại bỏ nhiều thứ không cần thiết Mọi sự cố gắng củaSymbian khi thuộc về Nokia có vẻ như đang có sự tiến bộ rõ rệt Có điều năm 2012không phải là năm của Symbian khi chính Nokia cũng đang xuống dốc
.I.1.5 BlackBerry
Là dòng máy Smartphone cao cấp và nổi tiếng trên thế giới do hãng Research InMotion cung cấp Ngoài những tính năng thông thường, điểm tạo nên sự khác biệtcủa máy BlackBerry là kiểu thiết kế rất đặc trưng; pin tốt và hơn cả là dịch vụ PushMail nổi tiếng và thương hiệu BlackBerry được xây dựng rất thành công
BlackBery OS 6 được RIM công bố tại sự kiện Wireless Enterprise Symposium(diễn ra từ 27 đến 29/4 tại Mỹ) RIM chưa đưa ra chi tiết về hệ điều hành mới, ngoàimột đoạn video quảng cáo khá ấn tượng Theo những thông tin đầu tiên, nhiều cảitiến từ giao diện, màn hình Home mới, menu pop-up, khả năng chuyển dịch, trìnhduyệt web mới dựa trên nền tảng WebKit tương thích HTML5 Ngoài ra, BlackBerry
OS 6 hỗ trợ khả năng điều khiển trên màn hình cảm ứng đa điểm tốt hơn
.I.2 Hệ điều hành iOS
Trang 20.I.2.1 Giới thiệu
iOS là hệ điều hành chạy trên các thiết bị di động được sản xuất bởi Apple nhưiPhone, iPod touch,iPad Hệ điều hành này quản lý hoạt động của cácthiết bị phầncứng và cung cấp tiện ích cũng như ứng dụng phục vụ cho hệ thống, ví dụ như: điệnthoại, tin nhắn SMS, email, trình duyệt web Safari…
Hệ điều hành này được tiết lộ tại Hội nghị và Triển lãm Macworld diễn ra vàotháng 1 năm 2007 và được phát hành vào tháng 9 năm đó Khi đó, hệ điều hành nàychưa có tên riêng, nên chỉ đơn giản được gọi là “iPhone chạy OS X” Vào ngày 17tháng 10 năm 2007, Apple thông báo một bộ phát triển phần mềm đang được xâydựng và họ dự định sẽ đưa nó đến "tay của các nhà phát triển vào tháng 2" Ngày 6tháng 3 năm 2008, Apple đã phát hành bản dùng thử đầu tiên, cùng với một cái tênmới cho hệ điều hành, đó là “iPhone OS”
Tháng 6 năm 2010, Apple đổi cái tên iPhone OS thành iOS Nhãn hiệu "IOS" đãđược Cisco dùng để đặt tên cho hệ điều hành của mình Để trách các vụ kiện cáo,Apple đã xin giấy phép sử dụng nhãn hiệu iOS từ Cisco
Trang 21• Quản lý vòng đời ứng dụng
• Đa nhiệm
• Local notification
• Nhận diện các thao tác trên màn hình cảm ứng
• Map Kit: Cung cấp các giao diện lập trình và thư viện để xây dựng các ứngdụng dựa trên bản đồ, định tuyến, xác định địa điểm hiện tại của ngườidùng
• Message UI Framework: Cung cấp thư viện để soạn và gởi email
• iAd Framework: Cho phép lập trình viên nhúng các banner quảng cáo vàoứng dụng
Trang 22• Push notification: Là dịch vụ chạy thường trực trên thiết bị, cho phép nhậnthông báo được gởi bằng Push notification service ngay cả khi ứng dụngkhông được chạy.
Trang 23 Core Media
System Configuration
.4 Tầng Core OS
Đây là lớp chứa các đặc trưng ở mức thấp (low-level features) Lập trình viên sẽ ít
sử dụng trực tiếp lớp này (trừ khi thao tác với các thiết bị phần cứng khác hoặc cácvấn đề bảo mật) mà sẽ sử dụng gián tiếp thông qua các lớp phía trên Lớp này baogồm các thành phần sau:
• Accelerate framework
• External Accessory framework
• Security framework
• System
.I.3 Ngôn ngữ lập trình Objective-C
.I.3.1 Giới thiệu
Ngôn ngữ lập trình Objective-C là một ngôn ngữlập trình hướng đối tượng được xây dựng chủ yếudựa trên nền tảng ANSI C Ngoài ra nó còn được
mở rộng từ Smalltalk, một trong những ngôn ngữlập trình hướng đối tượng đầu tiên Objective-Cđược thiết kế với mục đích đưa vào C các tính nănghướng đối tượng một các đơn giản và dễ hiểu nhất
Objective-C được thiết kế bởi Brad Cox khi ônglàm việc cho công ty Stepstone vào đầu những năm 1980 Objective-C được thiết kế
để phục vụ mục đích lập trình hướng đối tượng Nó hoạt động giống như là một tậphợp các thành phần mở rộng rất mạnh mẽ của ngôn ngữ C Objective-C kết hợp cácđặc điểm ưu tú nhất của C và ngôn ngữ SmallTalk Objective-C khá đơn giản để học
và có đầy đủ các khả năng của một ngôn ngữ lập trình hướng đối tượng.Hiện tại,Objective-C trở nên phổ biến vì nó được Apple chọn làm ngôn ngữ lập trình cho hệthống Mac và iPhone
.I.3.2 Các thành phần
Hầu hết các ngôn ngữ lập trình hướng đối tượng đều cung cấp:
• Một thư viện các Objects
Trang 24• Các công cụ phát triển cần thiết
• Hỗ trợ hướng đối tượng và các thư viện liên quan
Là ngôn ngữ hướng đối tượng nên Objective-C giải quyết các vấn đề lập trình dựatrên khái niệm các Object Nó bao gồm 3 phần:
• Là ngôn ngữ lập trình hướng đối tượng đơn giản nhưng mạnh mẽ
• Là ngôn ngữ được Apple sử dụng để phát triển các ứng dụng cho hệ thống máy Mac và iPhone
• Nó là thành phần mở rộng của chuẩn ANSI C vì vậy các chương trình viết bằng C của framework này sẽ không bị mất đi tính năng nào và người dùngđược hưởng các lợi thế của ngôn ngữ C.Với ngôn ngữ này, người dùng có thể lựa chọn cả lập trình hướng đối tượng và lập trình thủ tục khi cần thiết
• Nó đơn giản và dễ học bởi cú pháp của nó khá ngắn gọn nên nó giúp cho
Trang 25• Nó là một ngôn ngữ mạnh bởi vì các quyết định có thể được đưa ra lúc biêndịch sẽ được trì hoãn cho tới khi chương trình chạy.
• Nó hỗ trợ ràng buộc động và mở tạo ra một cấu trúc đơn giản đối với giao diện tương tác người dùng
Nó cho phép phát triển các công cụ phát triển phức tạp Một giao diện cho hệthống run time tạo điều kiện cho việc tiếp cận các thông tin lúc run time giúp cho việcmonitor ứng dụng viết bằng Objective-C
.I.3.4 Môi trường lập trình Xcode
Xcode là môi trường phát triển tích hợp (IDE) chứa đầy đủ các công cụng cho cácnhà phát triển, các lập trình viên khi phát triển ứng dụng trên hệ điều hành MAC OS
và nền tảng di động iOS Được phát hành từ năm 2003 và tới nay đã trải qua bốnphiên bản với phiên bản cuối cùng là 4.3.2 được cung cấp miễn phí cho các nhà lậptrình thông qua AppStore
Các thành phần chính của Xcode:
• Apple LLVM Compiler : trình biên dịch của Xcode, được Apple phát triểnlên từ trình biên dịch GNU trong phiên bản Xcode 3.2 Được hoàn thiệntrong các phiên bản sau này, tốc độ cũng nhưng tính hiệu quả được tăngcường
• Instruments for Performance và Behavior Analysis : công cụ phân tích hiệusuất và hành vi Đây là bộ công cụ hỗ trợ cho các lập trình viên có thể quản
lý tài nguyên hệ điều hành hay bộ nhớ của ứng dụng khi vận hành
• iOS Simulator : là thiết bị đi động ảo được tích hợp để giúp cho các nhà lậptrình di động cài đặt và chạy thử trước khi đưa vào thiết bị thật Công cụ ảonày có đầy đủ tính năng như thiết bị thật và ngày càng được Apple pháttriển nhằm đem lại những gì tốt nhất cho các lập trình viên
Trang 26.II CÁC DỊCH VỤ
.II.1 Công nghệ định vị toàn cầu GPS
.II.1.1 Giới thiệu
GPS (Global Positioning System):Hệ thống định vị toàn cầu - là hệ thống xác định
vị trí dựa trên vị trí của các vệ tinh nhân tạo Trong cùng một thời điểm, ở một vị trítrên mặt đất nếu xác định được khoảng cách đến ba vệ tinh (tối thiểu) thì sẽ tính đượctoạ độ của vị trí đó
GPS được thiết kế và quản lý bởi Bộ Quốc phòng Hoa Kỳ, nhưng chính phủ Hoa
Kỳ cho phép mọi người sử dụng nó miễn phí, bất kể quốc tịch từ năm 1980, GPS hoạtđộng trong mọi điều kiện thời tiết, mọi nơi trên Trái Đất, 24 giờ một ngày
GPS là hệ dẫn đường dựa trên một mạng lưới 24 quả vệ tinh được đặt trên quỹđạo không gian, hoạt động dựa trên các trạm phát tín hiệu vô tuyến điện Được biếtnhiều nhất là các hệ thống có tên gọi LORAN - hoạt động ở giải tần 90-100 kHz chủyếu dùng cho hàng hải, hay TACAN - dùng cho quân đội Mỹ và biến thể với độ chínhxác thấp VOR/DME - VHF dùng cho hàng không dân dụng
.II.1.2 Hoạt động
Các vệ tinh GPS bay vòng quanh Trái Đất hai lần trong một ngày theo một quỹđạo rất chính xác và phát tín hiệu có thông tin xuống Trái Đất Các máy thu GPSnhận thông tin này và bằng phép tính lượng giác tính được chính xác vị trí của ngườidùng Về bản chất máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh vớithời gian nhận được chúng Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinhbao xa Rồi với nhiều quãng cách đo được tới nhiều vệ tinh máy thu có thể tính được
vị trí của người dùng và hiển thị lên bản đồ điện tử của máy
Máy thu GPS phải nhận được với tín hiệu của ít nhất ba quả vệ tinh để tính ra vịtrí hai chiều (kinh độ và vĩ độ) và để theo dõi được chuyển động Với bốn hay nhiềuhơn số quả vệ tinh trong tầm nhìn thì máy thu có thể tính được vị trí ba chiều (kinh
độ, vĩ độ và độ cao) Một khi vị trí người dùng đã tính được thì máy thu GPS có thểtính các thông tin khác như: tốc độ, hướng chuyển động, bám sát di chuyển, khoảnghành trình, quãng cách tới điểm đến, thời gian Mặt Trời mọc, lặn và nhiều thứ khácnữa
Trang 27.II.1.3 Khả năng định vị toàn cầu của các thiết bị iOS
Hình 2 : Ứng dụng GPS trên iOS
• Các thiết bị iPhone, iPad có thể sử dụng nhiều cơ chế khác nhau cho việc thu thập thông tin về vị trí địa lí hiện tại của thiết bị Những cơ chế này baogồm: GPS, tam giác tháp di động, hoặc địa chỉ IP của kết nối Wi-Fi có sẵn (kém chính xác nhất) Các cơ chế này được sử dụng bởi các lập trình viên
để xây dựng các ứng dụng cần khai thác thông tin vị trị địa lí của thiết bị thông qua framework Core Location
• Dự liệu trả về từ máy chủ mỗi khi thiết bị cập nhật thông tin vị trí địa lí dưới dạng đối tượng CLLocation Đối tượng này có các thuộc tính như sau:
Latitude/Longtitude: thông tin kinh độ, vĩ độ của thiết bị
Altitude: Độ cao của vị trí của thiết bị
Accuary: Độ chính xác của dữ liệu
• Các ứng dụng dựa trên địa điểm là một trong ba loại ứng dụng được cho phép tiếp tục thực thi ngay cả khi nó đang ở chế độ chạy nền Thiết bị vẫn
có thể cập nhật vị trí địa lí liên tục khi nó đang chạy ngầm Tuy nhiên, để đảm bảo thời lượng pin thì các nhà phát triển cần phải giảm việc cập nhật
vị trí khi ứng dụng đang ở chế độ nền
Trang 28.II.2 Google Map và Google Map API
.II.2.1 Google Map
Google Maps (thời gian trước còn gọi là Google Local) 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épthấy bản đồ đường xá, đường đi cho xe đạp, cho người đi bộ (những đường đi ngắnhơn 6.2 dặm) và xe hơi, và những địa điểm kinh doanh trong khu vực cũng như khắpnơi trên thế giới Lúc đó chúng ta có thể nhấp và kéo bản đồ để xem ngay các khuvực lân cận Xem hình ảnh vệ tinh của vị trí mong muốn mà bạn có thể thu nhỏ,phóng to và quay
Với các thiết bị di động thì Google Map cung cấp một bộ hỗ trợ trên nhiều dòngđiện thoại và được phát triển trên nền tảng web Địa chỉ truy cập :
• Xem bản đồ giao thông, địa lý, thời tiết
• Tìm kiếm bằng giọng nói
• Tìm kiếm các địa điểm công cộng, như: nhà hàng, khách sạn, bệnh viện,chợ
• Cho phép người dùng đăng tải vị trí địa điểm của mình
•
.II.2.2 Google Map API
Là một dịch vụ được cung cấp miễn phí cho các lập trình viên để khai thác dữ liệusẵn có khổng lồ và nhiều tiện ích khác của Google Map Trên các thiết bị di động, ta
có thể sử dụng Google Maps API thông qua các Google Maps API webservices
• Thành phần chính của Google Map API
Directions API : là công cụ tính toán khoảng cách giữa các đốitượng tĩnh trên bản đồ thông qua giao thức HTTP
Trang 29 Distance Matrix API : là công cụ tính toán thời gian và khoảng cách
di chuyển giữa các điểm trên bản đồ, không mang tính chất chỉđường
Elevation API : là công cụ tính toán độ cao của một điểm thông qua
vị trí được cung cấp là khinh tuyến và vĩ tuyến
Geocoding API : là công cụ chuyển đổi trực tiếp từ một địa chỉ cụthể thành vị trí trên bản đồ và ngược lại Ví dụ : địa chỉ "1600Amphitheatre Parkway, Mountain View, CA" có tọa độ latitude =37.423021 và longitude = -122.083739
Places API : là công cụ trả về thông tin đầy đủ của một địa điểm trênbản đồ được xác định thông qua vị trí trên bản đồ Sử dụng giaothức HTTP để gởi yêu cầu
• Hoạt động của webservice:
Các yêu cầu HTTP thông thường được tạo ra theo khuôn mẫu:
http://maps.googleapis.com/maps/api/service/output?parameters
Hoặc
https://maps.googleapis.com/maps/api/service/output?parameters
Dữ liệu trả về từ hệ thống dưới dang JSON hoặc XML Sau khi nhận được
dữ liệu trả về, chúng ta phải phân tích cú pháp dữ liệu để có thông tin cầnthiết trong ứng dụng
Trong các ứng dụng iPhone, chúng ta chủ yếu sử dụng kiểu dữ liệu XML
Thư viện để phân tích cú pháp XML trả vể được sử dụng trên iOS làXPath Với thư viện này, việc phân tích cú pháp trở nên dễ dàng hơn, và ta
có thể lấy được dữ liệu cần thiết nhanh chóng
Trang 30.III WEBSERVICE
.III.1 Giới thiệu
Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web
(Web-based applications) Các ứng dụng có thể sử dụng các thành phần khác nhau để tạothành một dịch vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết nốivới cổng thanh toán điện tử qua một API - Application Programming Interface ( tạobởi công nghệ NET thì web services chính là nền máy chủ (IIS - Internet InformationServices), và các thành phần thanh toán, các thành phần NET được coi là component(các thành phầm bên ngoài) Các thành phần này được gọi bởi phương thức SOAP(Khác phương thức POST, GET) nên không bị gặp phải firewall khi truy xuất cácthành phần bên ngoài máy chủ Và toàn bộ các thành phần đó gọi là một WebServices
Các Web Services cho phép các tổ chức thực hiện truyền thông dữ liệu mà khôngcần phải có kiến thức về hệ thống IT phía sau tường lửa Một số Web Services hiệnnay có sẵn miễn phí và càng ngày càng hướng dần vào các doanh nghiệp
Một ví dụ về Web Service sẵn có là dịch vụ được cung cấp bởi PayPal cho phépnhững người có tài khoản có thể thanh toán hoặc trả một phần hoặc thực hiện cácgiao dịch tìm kiếm, và lấy lại các thông tin của từng giao dịch cụ thể
Ngày này, web service được phát triển trên hầu hết các nên tảng web server hiệntại, như là :
• Apache với PHP
• Tomcat với JSP, Java
• IIS với Net, ASP
• Nâng cao khả năng tái sử dụng
• Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service
Trang 31• Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
• Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác
Nhược điểm:
• Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành
• Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt
• Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
.III.2 Kiến trúc
Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),WSDL (Web Service Description Language) và UDDI (Universal Description,Discovery, and Integration) Hình 3 mô tả chồng giao thức của Web service, trong đóUDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ thểtrong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đócác ứng dụng SOAP yêu cầu một Web service Các thông điệp SOAP được gửi đichính xác bởi HTTP và TCP/IP
Hình 3 : Chồng giao thức của dịch vụ Web
Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sửdụng để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác vớinhững ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính:
Trang 32• Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệpgiữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP,FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (BlocksExtensible Exchange Protocol- BEEP).
• Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạngXML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiệntại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP vàREST
• Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Webservice cụ thể WSDL thường được sử dụng cho mục đích này, nó là mộtngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web service sẽ sửdụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác
và chức năng mà Web service cung cấp
• Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ
đó giúp một Web service có thể dễ dàng khám phá ra những dịch vụ nào đã
có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tươngtác Một Web service cũng phải tiến hành đăng ký để các dịch vụ khác cóthể truy cập và giao tiếp Hiện tại, UDDI API thường được sử dụng đểthực hiện công việc này
.III.3 Thành phần
.III.3.1 XML – eXtensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng
để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B Vềhình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTMLđịnh nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thànhphần đó chứa cái gì Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗitrang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả
mã nguồn mở
Do Web service là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng cáctính năng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ chính đểgiải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một Web service, tất
cả dữ liệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽhoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thểtương tác với nhau trong một thể thống nhất
.III.3.2 WSDL – Web Service Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, baogồm các thông tin:
Trang 33• Tên dịch vụ.
• Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Web service
• Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụ Web cộng với tên cho giao diện này)
Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thứckết nối) và phần thi hành mô tả thông tin truy xuất CSDL Cả hai phần này sẽ đượclưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch
vụ Giao diện của một Web service được miêu tả trong phần này đưa ra cách thức làmthế nào để giao tiếp qua Web service Tên, giao thức liên kết và định dạng thông điệpyêu cầu để tương tác với Web service được đưa vào thư mục của WSDL
WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấpWeb service qua Internet Một client khi kết nối tới Web service có thể đọc WSDL đểxác định những chức năng sẵn có trên server Sau đó, client có thể sử dụng SOAP đểlấy ra chức năng chính xác có trong WSDL
.III.3.3 Universal Description, Discovery, and Integration (UDDI)
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thôngtin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ UDDI định nghĩamột số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhậnnhững thông tin được yêu cầu khi sử dụng Web service
• Cấu trúc UDDI :
Trang trắng – White pages: chứa thông tin liên hệ và các định dạng chính yếu của Web service, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ
Trang vàng – Yellow pages: chứa thông tin mô tả Web service theo những loại khác nhau Những thông tin này cho phép các đối tượng thấy được Web service theo từng loại với nó
Trang xanh – Green pages: chứa thông tin kỹ thuật mô tả các hành vi
và các chức năng của Web service
Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng
Những thông tin về Web service được sử dụng và công bố lên mạng sử dụng giaothức này Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của Web service khácnhằm xác định xem dịch vụ nào sẽ cần đến nó
Trang 34.III.3.4 SOAP – Simple Object Access Protocol
Chúng ta đã hiểu cơ bản Web service như thế nào nhưng vẫn còn một vấn đề kháquan trọng Đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là cácWeb service có thể truy xuất bằng một giao thức là Simple Object Access Protocol –SOAP Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọihoàn toàn theo định dạng của SOAP
SOAP là một giao thức giao tiếp có cấu trúc như XML Nó được xem là cấu trúcxương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệđiều hành khác nhau SOAP là giao thức thay đổi các thông điệp dựa trên XML quamạng máy tính, thông thường sử dụng giao thức HTTP
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửinhững thông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớpứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngàynay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm cácphần tử sau:
• Phần tử gốc – envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản XML như là một thông điệp SOAP
• Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản Header còn có thể mang những dữ liệuchứng thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác
• Phần tử khai báo nội dung chính trong thông điệp – body, chứa các thông tin yêu cầu và thông tin được phản hồi
• Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong qúa trình xử lý thông điệp
Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, tham chiếutới một thể hiện của dịch vụ, một hoặc nhiều tham số Có 3 kiểu thông báo sẽ đượcđưa ra khi truyền thông tin: request message(tham số gọi thực thi một thông điệp),respond message (các tham số trả về, được sử dụng khi yêu cầu được đáp ứng) vàcuối cùng là fault message (thông báo tình trạng lỗi)
Kiểu truyền thông: Có 2 kiểu truyền thông
• Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng Kiểu này được khai thác bởi nhiều Web service
• Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn
Trang 35Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đếncác API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp vớiWeb service cần xây dựng.
Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trongcác ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiềuphức tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặttrong namespace SOAP-ENC
Mã hóa: Giả sử service rquester và service provider được phát triển trong Java, khi
đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML
và ngược lại, bởi vì định dạng cho Web Service chính là XML Bất kỳ một môitrường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyểnđổi từ ngôn ngữ Java sang XML và từ XML sang Java – bảng đó được gọi làSOAPMappingRegistry Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóathì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó
Trang 36.III.4 Hoạt động
Hình 4 : Mô hình hoạt động của Web service
Trong mô hình hoạt động của mỗi Web service, thông thường sẽ có 3 thành phầntham gia
• Đầu tiên là các nhà cung cấp dịch vụ, tạm gọi là Provider Công việc là xây dựng và cài đặt đối tượng dịch vụ lên 1 web server và cung cấp bản mô tả dịch
vụ để hướng dẫn mọi người cách khai thác Ngôn ngữ sử dụng cho các bản mô
tả dịch vụ là SDL - Service Description Language, với cấu trúc cú pháp của XML
• Thành phần thứ 2: các nhà khai thác dịch vụ, tạm gọi là Consumer Công việc
là xem xét bản mô tả dịch vụ của nhà cung cấp, dựa vào đó để xây dựng lớp trung gian truy xuất đối tượng dịch vụ, và cuối cùng, thiết kế giao diện cho ứng dụng
• Thành phần thứ 3 trong chuỗi là những người dùng cuối, End - user Họ truy cập trang web của các nhà khai thác dịch vụ, và sử dụng, một cách gián tiếp, Web Service của Provider
Trang 37.IV SERVER
.IV.1 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và đượccác nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ
sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trênnhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ
và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trêninternet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệđiều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, NovellNetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ
sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làmnơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
.IV.2 Ngôn ngữ lập trình PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trìnhkịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết chomáy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và cóthể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩmtương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành mộtngôn ngữ lập trình web phổ biến nhất thế giới
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ dàng nhưthế nào:
Trang 38Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua
đó máy chủ biết để xử lý và dịch mã cho đúng Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có
sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp
.IV.3 Web server Apache
Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máychủ đối thoại qua giao thức HTTP Apache chạy trên các hệ điều hành tương tự nhưUnix, Microsoft Windows, Novell Netware và các hệ điều hành khác Apache đóngmột vai trò quan trọng trong quá trình phát triển của mạng web thế giới (tiếng Anh:World Wide Web)
Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn mở duynhất có khả năng cạnh tranh với chương trình máy chủ tương tự của NetscapeCommunications Corporation mà ngày nay được biết đến qua tên thương mại SunJava System Web Server Từ đó trở đi, Apache đã không ngừng tiến triển và trở thànhmột phần mềm có sức cạnh tranh mạnh so với các chương trình máy chủ khác về mặthiệu suất và tính năng phong phú Từ tháng 4 nãm 1996, Apache trở thành mộtchương trình máy chủ HTTP thông dụng nhất Hơn nữa, Apache thường được dùng
để so sánh với các phần mềm khác có chức năng tương tự Tính đến tháng 1 năm
2007 thì Apache chiếm đến 60% thị trường các chương trình phân phối trang web.Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảotrợ của Apache Software Foundation Apache được phát hành với giấy phép ApacheLicense và là một phần mềm tự do và miễn phí
Môi trường tốt nhất để sử dụng Apache là Unix Apache trên Unix có 3 chế độhoạt động khác nhau : winnt, prefork và worker Apache prefork và worker cho phép
mở nhiều Child Process, với 1 thread/1 child process (prefork) hoặc many thread/1child process (worker) Do đó Apache cho phép xử lý mạnh hơn với prefork và càngmạnh hơn nữa với worker Tuy nhiên cái gì mạnh thì tốn tài nguyên, còn về ổn địnhthì prefork là ổn định nhất (đây là mpm thường dùng)
Với prefork và 1 server Unix tầm trung phải chia xẻ cho khoảng 500 người dùngnhiều dịch vụ khác cùng lúc, Apache có thể đạt tới mức xử lý 5000 request/1 second
Trang 39.I PHÂN TÍCH YÊU CẦU
.I.1 Mô tả bài toán
• Đối tượng
Cho các khách du lịch tự do ( không đi theo tour du lịch )
Cho các công ty khai thác các tour du lịch
Các nhà phát triển và lập trình viên
• Mục đích
Ứng dụng cung cấp các địa điểm du lịch ở từng vùng cho người du lịch
Ứng dụng cung cấp các địa điểm du lịch thông qua việc thống kê các địađiểm du lịch do người du lịch bình chọn và đánh giá, như : mới nhất, haynhất, nhiều người tới nhất hoặc cảnh báo về địa điểm xấu
Ứng dụng cung cấp các địa điểm công cộng ( như bệnh viện, khách sạn,quán ăn ) giúp người du lịch có thể tìm đường và tham khảo
Người du lịch có thể tìm kiếm các địa điểm du lịch ( do người khác đăng tảilên ) theo vị trí hiện tại của họ hoặc theo từng vùng Thông qua đó người
du lịch có thể đánh giá và bình luận địa điểm này
Người du lịch có thể đăng tải thông tin về địa điểm mà mình yêu thích hoặc
đã đi qua để cho những người khác có thể tìm đến
Người du lịch chính là người dùng và xây dựng kho dữ liệu
• Cơ sỡ dữ liệu ( gồm 2 nguồn )
Google Map : cung cấp các địa điểm công cộng ( như bệnh viện, nhà hàng,khách sạn ) để người du lịch tìm đường và tham khảo Mang tính chất dữliệu cứng
Do người dùng cung cấp Mang tính chất dữ liệu mở
• Triển khai
Điện thoại di động ( cụ thể là iPhone ) : cài đặt ứng dụng Nhằm giúp người
du lịch có thể tìm kiếm và hiển thị các địa điểm du lịch
Server : thu thập các địa điểm do người du lịch đăng tải, phân tích và chọnlọc các địa điểm theo các tiêu chí nhất định Cung cấp các địa điểm du lịchcho người dùng ứng dụng
Trang 40.I.2 Phân tích hiện trạng du lịch Việt Nam
.I.2.1 Tổng quan
Việt Nam có đủ các yếu tố để phát triển ngành du lịch trở thành ngành kinh tế mũinhọn Với tiềm năng du lịch đa dạng và phong phú, đất nước này đang là điểm đếnnổi tiếng của thế giới Năm 2008, Việt Nam đã đón 4,218 triệu lượt khách quốc tế,con số này năm 2009 là 3,8 triệu lượt, giảm 11% so với năm trước Tổng cục Du lịchViệt Nam dự báo con số lượt khách du lịch quốc tế đến Việt Nam năm 2010 là 4,5-4,6triệu lượt, số lượt khách du lịch nội địa là 28 triệu lượt năm 2010, tăng 12% so vớinăm 2009
Doanh thu ngành du lịch Việt Nam năm 2009 đạt từ 68.000 đến 70.000 tỷ đồng.Theo dự báo của Tổng cục du lịch Việt Nam, năm 2015 ngành du lịch Việt Nam sẽthu hút 7-8 triệu lượt khách quốc tế, 32-35 triệu khách nội địa, con số tương ứng năm
2020 là 11-12 triệu khách quốc tế; 45-48 triệu khách nội địa Doanh thu từ du lịch sẽđạt 18-19 tỷ USD năm 2020
Tuy nhiên, ngành du lịch Việt Nam từ nhiều năm nay, cũng đang bị báo động vềnạn "chặt chém", bắt nạt du khách, hạ tầng cơ sở yếu kém và chất lượng dịch vụ kém,tạo ấn tượng xấu với du khách
.I.2.2 Du lịch Ba lô
Du lịch "bụi" (hay còn gọi là du lịch ba-lô, tiếng Anh: Backpacking Tourism) là
loại hình du lịch thường được các cá nhân hay một nhóm nhỏ áp dụng Hình thức nàyphù hợp cho việc khám phá thiên nhiên và trải nghiệm cuộc sống thường ngày củadân địa phương Hoàn toàn khác với hình thức đi tour, du khách sẽ bị bó buộc trong
một không gian và phải bị giới hạn thời gian lịch trình của chuyến tour "Ta Ba-Lô" là
một khái niệm khá quen thuộc trong giới trẻ năng động ngày nay
• Sử dụng các phương tiện công cộng làm phương tiện di chuyển chính cho chuyến hành trình
• Lưu trú tại các hostel, các phương tiện lưu trú giá rẻ
• Hình ảnh của khách du lịch bụi gắn liền với ba lô, sách hướng dẫn du lịch
• Thời gian đi du lịch lâu hơn so với các loại hình du lịch khác
• Lịch trình chuyến đi mang tính độc lập và linh động Khi được hỏi về lịch trìnhcủa chuyến đi, một số du khách nói rằng “The plan is there is no plan” (kế hoạch là không có kế hoạch nào cả) Mục tiêu khi đi du lịch là được trải
nghiệm, tìm hiểu phong cách sống và được gặp gỡ người dân nước bản địa
• Tham gia nhiều vào các hoạt động khám phá, giải trí