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
DANH MỤC HÌNH ẢNH 5
DANH MỤC BẢNG 7
MỞ ĐẦU 8
I GIỚI THIỆU ĐỀ TÀI 8
I.1 Bối cảnh đề tài 8
I.2 Mục đích 9
I.3 Ý nghĩa 9
II PHẠM VI ĐỀ TÀI 9
III TRIỂN KHAI ĐỀ TÀI 9
III.1 Các bước thực hiện 9
III.2 Mục tiêu cần đạt được 10
IV KẾT QUẢ DỰ KIẾN 10
CƠ SỞ LÝ THUYẾT 11
I NỀN TẢNG DI ĐỘNG 11
I.1 Giới thiệu các nền tảng di động 11
I.1.1 iOS 11
I.1.2 Android 12
I.1.3 Windows Phone 12
I.1.4 Symbian 13
I.1.5 BlackBerry 13
I.2 Hệ điều hành iOS 14
I.2.1 Giới thiệu 14
I.2.2 Kiến trúc 15
I.3 Ngôn ngữ lập trình Objective-C 17
I.3.1 Giới thiệu 17
I.3.2 Các thành phần 17
I.3.3 Các thế mạnh 18
I.3.4 Môi trường lập trình Xcode 19
II CÁC DỊCH VỤ 20
II.1 Công nghệ định vị toàn cầu GPS 20
II.1.1 Giới thiệu 20
II.1.2 Hoạt động 20
II.1.3 Khả năng định vị toàn cầu của các thiết bị iOS 21
II.2 Google Map và Google Map API 22
II.2.1 Google Map 22
II.2.2 Google Map API 22
III WEBSERVICE 24
III.1 Giới thiệu 24
III.2 Kiến trúc 25
III.3 Thành phần 26
III.3.1 XML – eXtensible Markup Language 26
Trang 7IV SERVER 31
IV.1 Hệ quản trị cơ sở dữ liệu MySQL 31
IV.2 Ngôn ngữ lập trình PHP 31
IV.3 Web server Apache 32
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 33
I PHÂN TÍCH YÊU CẦU 33
I.1 Mô tả bài toán 33
I.2 Phân tích hiện trạng du lịch Việt Nam 34
I.2.1 Tổng quan 34
I.2.2 Du lịch Ba lô 34
I.2.3 Tiềm năng du lịch Ba lô 35
I.2.4 Vấn đề nan giải 35
I.3 Phân tích yêu cầu bài toán 36
I.3.1 Người sử dụng 36
I.3.2 Kho dữ liệu 37
I.3.3 Công nghệ 39
I.4 Phân tích khả thi 40
I.4.1 Tính khả dụng 40
I.4.2 Chi phí phát triển 40
I.5 Xác định các chức năng chính của hệ thống 40
II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 43
II.1 Yêu cầu hệ thống 43
II.1.1 Yêu cầu chức năng và đặc tả ca sử dụng 43
II.1.2 Yêu cầu phi chức năng 53
II.2 Tác nhân hệ thống 54
II.3 Biểu đồ ca sử dụng 55
II.3.1 Mức 0 55
II.3.2 Mức 1 56
II.4 Biểu đồ hoạt động 61
II.5 Biểu đồ tuần tự 65
II.6 Biểu đồ lớp 70
II.6.1 Biểu đồ lớp mức phân tích 70
II.6.2 Biểu đồ lớp 71
II.7 Biểu đồ triển khai 71
III XÂY DỰNG CƠ SỞ DỮ LIỆU 72
III.1 Bảng dữ liệu 72
III.1.1 Nhóm người dùng 72
III.1.2 Nhóm địa điểm 72
III.1.3 Nhóm phân loại và đánh giá 73
III.1.4 Nhóm hệ thống 74
III.2 Mô hình quan hệ dữ liệu 75
IV THIẾT KẾ GIAO DIỆN ỨNG DỤNG 76
IV.1 Người dùng 76
IV.2 Các danh sách địa điểm 76
IV.3 Các nhóm chức năng chính 77
IV.4 Địa điểm 78
Trang 8IV.4.1 Xem thông tin địa điểm 78
IV.4.2 Đăng tải địa điểm 79
XÂY DỰNG HỆ THỐNG 80
I KẾ HOẠCH THỰC HIỆN 80
II XÂY DỰNG HỆ THỐNG 80
II.1 Nhu cầu người dùng 80
II.1.1 Đối tượng người dùng 80
II.1.2 Mục đích người dùng 80
II.1.3 Nhu cầu thực tiễn 81
II.2 Quản lý hệ thống 82
II.2.1 Về hệ thống Server 82
II.2.2 Về cơ sở dữ liệu hệ thống 82
II.3 Xây dựng kho dữ liệu 83
II.3.1 Xây dựng dữ liệu 83
II.3.2 Khai thác dữ liệu 83
II.3.3 Cập nhập dữ liệu 84
II.3.4 Tra cứu dữ liệu 84
III CẤU TRÚC VÀ MÔ HÌNH 85
III.1 Thiết kế cấu trúc 85
III.1.1 Cấu trúc dữ liệu 85
III.1.2 Cấu trúc hệ thống 86
III.2 Mô hình 86
III.2.1 Mô hình triển khai cho server 87
III.2.2 Mô hình triển khai cho client 88
IV TRIỂN KHAI HỆ THỐNG 89
IV.1 Hệ thống server 89
IV.1.1 Môi trường triển khai 89
IV.1.2 Cài đặt cơ sở dữ liệu 89
IV.1.3 Cài đặt Web Service 89
IV.1.4 Khai thác Web Service 90
IV.1.5 Phát triển Web Service 91
IV.2 Ứng dụng trên điện thoại di động iPhone 94
IV.2.1 Môi trường triển khai 94
IV.2.2 Cài đặt ứng dụng 94
IV.2.3 Giao diện ứng dụng 95
IV.2.4 Luồng màn hình ứng dụng 96
IV.2.5 Thao tác dữ liệu với Web Service 97
IV.2.6 Ứng dụng Google MAP API vào triển khai ứng dụng 100
IV.2.7 Các nhóm chức năng chính ứng dụng 102
ĐÁNH GIÁ TRIỂN KHAI 103
I KẾT QUẢ 103
I.1 Kết quả triển khai Web Service 103
I.2 Kết quả cho trang Web Admin 105
I.3 Kết quả triển khai ứng dụng trên điện thoại di động 106
II ĐÁNH GIÁ 114
II.1 Bảng đánh giá kết quả thực hiện 114
II.1.1 Ứng dụng trên điện thoại di động 114
Trang 9II.2 Những điều đạt được 115
II.3 Những điều chưa đạt được 116
III HƯỚNG PHÁT TRIỂN 117
PHỤ LỤC 118
TÀI LIỆU THAM KHẢO 119
TÓM TẮT LUẬN VĂN TỐT NGHIỆP 120
Trang 10DANH MỤC HÌNH ẢNH
Hình 1 : Kiến trúc iOS 15
Hình 2 : Ứng dụng GPS trên iOS 21
Hình 3 : Chồng giao thức của dịch vụ Web 25
Hình 4 : Mô hình hoạt động của Web service 30
Hình 5 : UseCase tổng quát - VietBalo 55
Hình 6 : UseCase Đăng ký, đăng nhập 56
Hình 7 : UseCase Quản lý thông tin cá nhân 56
Hình 8 : UseCase Địa điểm 57
Hình 9 : UseCase Tra cứu 58
Hình 10 : UseCase Phản hồi 58
Hình 11 : UseCase Thống kê 59
Hình 12 : UseCase Quản lý người dùng 59
Hình 13 : UseCase Quản lý địa điểm 60
Hình 14 : UseCase Quản lý phản hồi 60
Hình 15 : Biểu đồ hoạt động - Đăng ký 61
Hình 16: Biểu đồ hoạt động - Đăng nhập 61
Hình 17: Biểu đồ hoạt động - Xem thông tin người dùng 61
Hình 18: Biểu đồ hoạt động - Chỉnh sửa thông tin cá nhân 61
Hình 19: Biểu đồ hoạt động - Quên mật khẩu 61
Hình 20: Biểu đồ hoạt động - Xem địa điểm 62
Hình 21: Biểu đồ hoạt động - Cập nhập thông tin địa điểm 62
Hình 22: Biểu đồ hoạt động - Chỉnh sửa thông tin địa điểm 63
Hình 23: Biểu đồ hoạt động - Thêm địa điểm 63
Hình 24: Biểu đồ hoạt động - Tìm kiếm, tra cứu 63
Hình 25: Biểu đồ hoạt động - Phản hồi hệ thống 64
Hình 26: Biểu đồ hoạt động - Xem thống kê 64
Hình 27: Biểu đồ hoạt động - Quản lý thành viên 64
Hình 28: Biểu đồ hoạt động - Quản lý địa điểm 64
Hình 29: Biểu đồ hoạt động - Quản lý phản hồi 65
Hình 30 : Biểu đồ tuần tự - Đăng ký 65
Hình 31 : Biểu đồ tuần tự - Đăng nhập 66
Hình 32 : Biểu đồ tuần tự - Chỉnh sửa thông tin cá nhân 66
Hình 33 : Biểu đồ tuần tự - Xem thông tin địa điểm 67
Hình 34 : Biểu đồ tuần tự - Chỉnh sửa thông tin địa điểm 67
Hình 35 : Biểu đồ tuần tự - Cập nhập thông tin địa điểm 68
Hình 36 : Biểu đồ tuần tự - Tra cứu địa điểm 68
Hình 37 : Biểu đồ tuần tự - Tìm kiếm địa điểm 69
Hình 38 : Biểu đồ tuần tự - Đăng tải địa điểm 69
Hình 39 : Biểu đồ tuần tự - Phản hồi 70
Hình 40: Biểu đồ lớp mức phân tích 70
Hình 41: Biểu đồ lớp 71
Hình 42: Biểu đồ triển khai 71
Hình 43 : Mô hình quan hệ dữ liệu 75
Hình 44 : Kế hoạch thực hiện 80
Hình 45 : Sơ đồ xây dựng dữ liệu của hệ thống thông qua đối tượng 83
Hình 46 : Mô hình tra cứu dữ liệu 84
Hình 47 : Mô hình quan hệ dữ liệu 85
Hình 48 : Biểu đồ triển khai 86
Trang 11Hình 50 : Mô hình MVC triển khai cho server 87
Hình 51 : Sơ đồ hoạt động của mô hình MVC cho server 87
Hình 52 : Mô hình 3 lớp triển khai cho client 88
Hình 53 : Kết quả chạy Web Service với 1 số phương thức cơ bản đầu tiên 90
Hình 54 : Sử dụng Web Service trên SOAP UI 90
Hình 55 : Cấu trúc mã nguồn phát triển Web Service trên môi trường NetBean 92
Hình 56 : Giao diện cơ bản của ứng dụng 95
Hình 57 : Các luồng màn hình chính của ứng dụng 96
Hình 58 : Sơ đồ kết nối giữa ứng dụng với Server 97
Hình 59 : Sơ đồ nhận dữ liệu từ Web Service của ứng dụng 98
Hình 60 : Sơ đồ đọc dữ liệu XML của ứng dụng 99
Hình 61 : Sử dụng Google MAP API để lấy vị trí trên bản đồ 101
Trang 12DANH MỤC BẢNG
Bảng 1 : Bảng các chức năng đăng ký, đăng nhập 40
Bảng 2 : Bảng các chức năng quản lý thông tin cá nhân 40
Bảng 3 : Bảng các chức năng địa điểm 41
Bảng 4 : Bảng các chức năng tra cứu 41
Bảng 5 : Bảng các chức năng phản hồi 41
Bảng 6 : Bảng các chức năng thống kê 41
Bảng 7 : Bảng các chức năng quản lý hệ thống 42
Bảng 8 : Bảng Users 72
Bảng 9 : Bảng Regions 72
Bảng 10 : Bảng Places 73
Bảng 11 : Bảng Comments 73
Bảng 12 : Bảng Rates 73
Bảng 13 : Bảng Reports 73
Bảng 14 : Bảng SystemReports 74
Bảng 15 : Bảng Users_Places 74
Bảng 16 : Kết quả thực hiện - Người dùng 114
Bảng 17 : Kết quả thực hiện - Địa điểm 114
Bảng 18 : Kết quả thực hiện - Tra cứu, tìm kiếm các địa điểm 114
Bảng 19 : Kết quả thực hiện - Tra cứu các địa điểm xung quanh người dùng 115
Bảng 20 : Kết quả thực hiện - Hệ thống server 115
Trang 13.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 14.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 15 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 16.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
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 17.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
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 18.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
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
Trang 19.I.2 Hệ điều hành iOS
.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 20 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 21 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 22 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
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 23 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 lập trình viên đạt được hiệu quả mong muốn mà không gặp nhiều khó khăn
Trang 24 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 25.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 26.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 27.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 28 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 29.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 30 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 31 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 32 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 33.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 34Hai 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 35.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 36.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 37Thẻ <?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 38.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 39.I.2 Phân tích hiện trạng du lịch Việt Nam
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í
Trang 40Du lịch “bụi” sẽ tiết kiệm khá nhiều chi phí bỏ ra và thu gom về cho du khách khánhiều trải nghiệm thú vị Đó là lý do tại sao các bạn trẻ ngày nay lại thích loại hình dulịch này và khái niệm du lịch “bụi” ngày càng trở nên phổ biến hơn.
Tại Việt Nam, trong những năm gần đây các thuật ngữ như: du lịch bụi, du lịch ba
lô hay ta ba lô được giới trẻ sử dụng rất nhiều Du lịch bụi đã và đang trở thành mộttrào lưu thu hút rất nhiều bạn trẻ tham gia, nhiều trang blog, diễn đàn cũng vì thếđược ra đời như
.I.2.3 Tiềm năng du lịch Ba lô
Về di tích : Việt Nam có hơn 40.000 di tích, thắng cảnh trong đó có hơn 3000 di
tích được xếp hạng di tích quốc gia và hơn 5000 di tích được xếp hạng cấp tỉnh ViệtNam có 117 bảo tàng trong đó các bộ, ngành quản lý 38, các địa phương quản lý 79
Về thắng cảnh : Việt Nam được UNESCO công nhận 8 khu dự trữ sinh quyển thế
giới, 30 vườn quốc gia, 21 khu du lịch quốc gia Việt Nam đứng thứ 27 trong số 156quốc gia có biển trên thế giới với 125 bãi tắm biển, hầu hết là các bãi tắm đẹp ViệtNam là 1/12 quốc gia có vịnh đẹp nhất thế giới là vịnh Hạ Long và vịnh Nha Trang
Về văn hóa : Việt Nam có 54 dân tộc anh em, mỗi dân tộc đều có những nét đặc
trưng về văn hoá, phong tục tập quán và lối sống riêng Ngành du lịch và các địaphương đã nỗ lực xây dựng được một số điểm du lịch độc đáo
.I.2.4 Vấn đề nan giải
Du lịch Việt Nam đang đối mặt với nhiều vấn đề yếu kém như ô nhiễm môi trườngtại các điểm du lịch, nhiều di tích không được bảo quản đúng mức, gây hư hỏngnghiêm trọng hay bị sửa lại khác xa mẫu cổ và luôn thu phí vào cửa, tình trạng chèokéo, bắt chẹt khách, tăng giá phòng tùy tiện, chất lượng hạ tầng cơ sở và giao thôngthấp, dịch vụ kém, trong khi đó công tác quản lý chưa đạt hiệu quả
Lãnh đạo ngành du lịch hứa hẹn, năm 2010, ngành sẽ đột phá cải thiện nhà vệsinh, sẽ phát động chiến dịch ở đâu có du lịch ở đó có nhà vệ sinh đạt tiêu chuẩn Năm 2012, lần nữa, những tin tức tiêu cực và kinh nghiệm xấu về du lịch ViệtNam được đăng tải trên nhiều báo chí, phản ánh 'Nạn lừa đảo du khách rất đáng báo
động', chất lượng dịch vụ kém và du khách đua nhau tố các chiêu 'chặt chém, chưa có
đấu hiệu thay đổi Thêm nữa, nạn ô nhiễm môi trường lại tăng lên, theo kết quả của
báo cáo thường niên năm 2012 mang tên The Environmental Performance Index
(EPI) của hai trung tâm nghiên cứu môi trường thuộc Đại học Yale và Columbia của
Mỹ thực hiện, về ảnh hưởng của chất lượng không khí, Việt Nam đứng thứ 123 trongbảng xếp hạng 132 quốc gia khảo sát, được xem là có không khí bẩn thứ 10 thế giới