Tài liệu Luận văn Tìm hiểu về location services cho di động và xây dựng ứng dụng minh họa: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỂN VÕ THANH PHÚ – 0512269
LÂM THỊ NGỌC NHÀN – 0512248
TÌM HIỂU VỀ LOCATION SERVICES CHO DI
ĐỘNG VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
GIÁO VIÊN HƯỚNG DẪN
Th.S NGÔ HUY BIÊN
2KHÓA 2005 - 2009
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
…………………………………………………………...
202 trang |
Chia sẻ: hunglv | Lượt xem: 1229 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Tìm hiểu về location services cho di động và xây dựng ứng dụng minh họa, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỂN VÕ THANH PHÚ – 0512269
LÂM THỊ NGỌC NHÀN – 0512248
TÌM HIỂU VỀ LOCATION SERVICES CHO DI
ĐỘNG VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
GIÁO VIÊN HƯỚNG DẪN
Th.S NGÔ HUY BIÊN
2KHÓA 2005 - 2009
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
TpHCM, ngày ….. tháng …… năm ……
Giáo viên hướng dẫn
3
4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
TpHCM, ngày ….. tháng …… năm ……
5 Giáo viên phản biện
6LỜI CẢM ƠN
Chúng em xin cảm ơn khoa công nghệ thông tin, trường Đại học Khoa học tự nhiên
thành phố Hồ Chí Minh đã tạo điều kiện cho chúng em thực hiện luận văn này.
Xin cảm ơn thầy Ngô Huy Biên đã hướng dẫn chúng em thực hiện luận văn này.
Xin cảm ơn các quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị những kiến
thức quý báu cho chúng em trong những năm học vừa qua.
Nhóm sinh viên thực hiện
Nguyễn Võ Thanh Phú – Lâm Thị Ngọc Nhàn
Tháng 07/2009
7 Trường đại học khoa học tự nhiên
Khoa công nghệ thông tin
Bộ môn công nghệ phần mềm
Đề cương chi tiết
Tên Đề Tài: Tìm hiểu về Location Services cho di động và xây dựng ứng dụng minh họa
Giáo viên hướng dẫn: Ngô Huy Biên
Thời gian thực hiện: 31/12/2008 – 04/07/2009
Sinh viên thực hiện:
Nguyễn Võ Thanh Phú – 0512269
Lâm Thị Ngọc Nhàn – 0512248
Loại đề tài: Tìm hiểu công nghệ và xây dựng ứng dụng minh họa
Nội Dung Đề Tài:
1. Nội dung và yêu cầu
- Tìm hiểu về công nghệ cung cấp dịch vụ dựa theo vị trí (location based service)
- Xây dựng ứng dụng tìm kiếm dựa theo vị trí, với các chức năng sau
· Tìm thông tin dựa trên vị trí của người dùng
· Kết hợp dữ liệu từ một số nguồn khác nhau để phục vụ người dùng
· Hướng dẫn trực quan dưới dạng bản đồ
2. Phương pháp thực hiện
- Tìm hiểu về các dịch vụ dựa theo vị trí
8· Tìm hiểu các công nghệ liên quan trên phần cứng và phần mềm
· Công nghệ phần cứng & xử lý
· Công nghệ định vị
· Ưu và khuyết của các công nghệ
· Lịch sử phát triển các công nghệ liên quan
- Các nghiên cứu trong cùng lĩnh vực
· Các chuẩn và tổ chức hiện có liên quan tới lĩnh vực này
· Những vấn đề mở và những khó khăn đang gặp phải
· Những công nghệ có triển vọng
· Để xuất hướng nghiên cứu và liên hệ đề tài
- Tìm hiểu các hệ thống cung cấp dịch vụ hiện có
· Hoàn cảnh ra đời
· Lình vực ứng dụng
· Ưu và khuyết điểm của các hệ thống ứng dụng này
· Bài học rút ra từ các hệ thống này
- Tìm hiểu việc xây dựng một dịch vụ dựa trên vị trí của người dùng
· Tìm hiểu mô hình web service và các ưu điểm của nó so với việc xây dựng
một ứng dụng truyền thống
9· Xác định các nhu cầu của một ứng dụng theo hướng dịch vụ dựa trên vị trí
· Dữ liệu
· Xử lý
· Đồ họa
· Liên lạc
· Tốc độ
· Mô hình chung của một ứng dụng location service bao gồm cả server và
client
· Phân tích
· Thiết kế
· Đánh giá
· Giới thiệu các công nghệ được sử dụng, lược sử (hiện trạng và hướng phát
triển), ưu khuyết điểm và lý do lựa chọn
· Dữ liệu: MySQL
· Nến tảng ứng dụng: J2EE và J2ME
· Liên lạc: XML
- Xây dựng ứng dụng cung cấp dịch vụ dựa trên vị trí người dùng, cụ thể là local
search
· Các yêu cầu thực tiễn của ứng dụng
10
· Cung cấp kết quả tìm kiếm dựa trên địa điểm
· Tính tương tác và mở với người dùng (cho phép thêm thông tin như
thông tin địa điểm, thông tin hướng dẫn)
· Tích hợp với các hệ thống sẵn có (ví dụ như microblogging)
· Đề xuất cách xây dựng ứng dụng với các công nghệ đã chọn
· Mô hình hóa dữ liệu cho web service và tận dụng các kiểu dữ liệu
thưa theo chuẩn OpenGIS của MySQL 5
· Xây dựng một web service với J2EE
· Xây dựng một ứng dụng di động với J2ME
· Hỗ trợ xử lý XML trong Java
· Đánh giá mức độ hoàn tất (dựa vào các nhu cầu chung của một ứng dụng
cung cấp dịch vụ dựa theo vị trí)
· Các khó khăn gặp phải và đề xuất cải tiến cho
· Mô hình ứng dụng
· Công cụ phát triển
3. Kết quả
- Tổng hợp các thông tin về việc cung cấp dịch vụ dựa theo vị trí gồm
· Các khái niệm và công nghệ
· Tầm quan trọng và khả năng ứng dụng của các dịch vụ dựa theo vị trí
11
· Hiện trạng của công nghệ cung cấp dịch vụ dựa theo vị trí
· Thuận lợi
· Khó khăn
· Xu hướng phát triển của các dịch vụ dựa theo vị trí
- Xây dựng được một ứng dụng cung cấp dịch vụ dựa theo vị trí
· Đặt nền tảng cho các ứng dụng kế thừa, các hướng phát triển cho ứng dụng
· Giải quyết một số khuyết điểm đã gặp trong các ứng dụng khác
Kế Hoạch Thực Hiện:
Từ ngày Mô tả công việc
20/12/2008 Gặp gỡ giáo viên, xác định yêu cầu của đề tài
29/12/2009 Tìm hiểu khái niệm web service
15/01/2009 Chọn ứng dụng minh họa
26/01/2009 Tìm hiểu các công nghệ định vị
09/02/2009 Tìm hiểu và đánh gía các ứng dụng hiện có
16/02/2009 Đánh giá các platform server hiện có
22/02/2009 Chọn nguồn dữ liệu và nền tảng lập trình server, tìm hiểu nền tảng đã
chọn
01/03/2009 Đánh giá các platform client hiện có
09/03/2009 Chọn nguồn dữ liệu và nền tảng lập trình client, tìm hiểu nền tảng đã
chọn
15/03/2009 Xác định các yêu cầu cho server
23/03/2009 Xác định các yêu cầu cho client
31/03/2009 Thiết kế hệ thống
15/04/2009 Xác định phương thức liên lạc giữa client và server
23/04/2009 Mô hình hóa dữ liệu
01/05/2009 Code server với chức năng location search
10/05/2009 Code server với chức năng tìm đường
18/05/2009 Tìm hiểu phương thức liên lạc với các web service khác
12
26/05/2009 Chuẩn bị test cho server
01/06/2009 Code client
22/06/2009 Kiểm thử và báo cáo
29/06/2009 Bảo trì code
04/07/2009 Tổng kết báo cáo & Đóng gói phần mềm
Xác nhận của GVHD Ngày 04 tháng 07 năm 2009
SV Thực hiện
µµµ
13
MỤC LỤC
Chương 1 GIỚI THIỆU
26
Chương 2 CÔNG NGHỆ
29
2.1 Công nghệ định vị 29
2.1.1 Các hệ thống vệ tinh định vị hiện có 30
2.1.1.1 NAVSTAR GPS: 30
2.1.1.2 GLONASS (GLObal NAvigation Satellite System) 31
2.1.1.3 Galilleo 32
2.1.2 Trạm thu phát (Base station) 32
2.1.3 Các loại thiết bị có tính năng định vị cho người dùng 34
2.1.4 Cách thức định vị 36
2.1.4.1 Cell identification / Cell of origin 36
2.1.4.2 Định vị từ nhiều phía (multilateration) 37
2.1.4.2.1 Time difference of arrival (TDOA) 37
2.1.4.2.2 Time of arrival (TOA) 39
2.1.4.2.3 Angle of arrival (AOA) 40
2.1.4.2.4 Enhanced observed time difference (E-OTD) 40
2.1.4.2.5 Advanced forward link trilateration (A-FLT) 41
2.1.4.3 Định vị bằng vệ tinh: hệ thống định vị toàn cầu (GPS) 41
2.1.4.3.1 Các thành phần của GPS: user, ground & space section 41
2.1.4.3.2 Phương pháp định vị 42
2.1.4.3.3 Các cải tiến 43
14
2.1.5 Khác biệt giữa các hệ thống định vị được ứng dụng trong LBS với các hệ
thống tương tự 46
2.1.5.1 Khác biệt với các hệ thống định vị thời gian thực 46
2.1.5.2 Sự khác biệt với các hệ thống định hướng và theo dõi 48
2.1.6 Tính riêng tư khi sử dụng công nghệ định vị 49
2.2 Hệ thống thông tin địa lý (GIS) 49
2.2.1 Lịch sử 50
2.2.2 Dữ liệu cho GIS 51
2.2.3 Xử lý thông tin với GIS 53
2.2.3.1 Mô hình hóa dữ liệu 54
2.2.3.2 Mô hình hóa các mạng lưới 54
2.2.3.3 Mô hình hóa bản đồ 55
2.2.3.4 Thống kê địa lý 55
2.2.3.5 Mã hóa địa chỉ (geocoding) 56
2.2.4 Trình bày thông tin với GIS 56
2.2.4.1 Bản đồ 56
2.2.4.2 Đồ họa máy tính 57
2.3 Công nghệ truyền tải dữ liệu 57
2.3.1 WAP/GPRS/EDGE 57
2.3.2 Bluetooth/Wifi/WiMax 58
2.3.3 Truyền thông vệ tinh 59
Chương 3 CÁC NGHIÊN CỨU, CHUẨN VÀ ỨNG DỤNG HIỆN TẠI
61
3.1 Nghiên cứu 61
3.1.1 Các công ty & tổ chức nổi bật 61
15
3.1.2 Các vấn đề mở 62
3.2 Chuẩn 62
3.3 Các ứng dụng thương mại 64
3.3.1 Google 64
3.3.2 Yahoo 68
3.3.3 Vietmap 69
3.3.4 DiaDiem.com 70
3.3.5 Vietbando.com 71
3.3.6 Vimap 73
3.3.7 SMS Locator 73
Chương 4 XÂY DỰNG SERVER PHỤC VỤ LBS
75
4.1 Giới thiệu về server và web service 75
4.1.1 Vai trò và khả năng của hệ thống server 75
4.1.2 Yêu cầu cho ứng dụng trên server 77
4.1.2.1 Có thể tái sử dụng, dễ bảo trì 77
4.1.2.2 Bảo mật 78
4.1.2.3 An toàn (secure & reliable) 78
4.1.3 Ưu điểm của thiết kế có server 79
4.2 Xây dựng hệ thống server phục vụ LBS 79
4.2.1 Phân tích 79
4.2.1.1 Giới thiệu về web service 80
4.2.1.2 Kiến trúc của web service trong ứng dụng LBS 82
4.2.1.3 Mashup 83
4.2.1.4 Các phương pháp khác 84
16
4.2.1.4.1 SAAS 84
4.2.1.4.2 Client only 85
4.2.2 Ngôn ngữ 85
4.2.2.1 Giới thiệu Java 86
4.2.2.2 Ưu điểm của Java 87
4.2.2.2.1 Là ngôn ngữ lập trình thế hệ thứ 3 (3GL) với nhiều cải tiến 87
4.2.2.2.2 Là ngôn ngữ được thông dịch (interpreted) 87
4.2.2.2.3 Phát triển về mặt công nghệ 88
4.2.2.3 Khuyết điểm của Java 89
4.2.2.4 Kết luận về Java 89
4.2.2.5 Các ngôn ngữ khác có thể dùng để triển khai web service 90
4.2.2.5.1 ASP.NET 90
4.2.2.5.2 PHP 90
4.2.2.5.3 Ruby on Rails 91
4.2.3 Cơ sở dữ liệu 91
4.2.3.1 Giới thiệu MySQL 91
4.2.3.2 MySQL spatial extension 92
4.2.3.2.1 Biểu diễn dữ liệu 92
4.2.3.2.2 Truy xuất thuộc tính cũa dữ liệu địa lý 93
4.2.3.2.3 Thao tác trên dữ liệu địa lý 96
4.2.3.3 Ứng dụng MySQL vào xây dựng LBS 98
Chương 5 XÂY DỰNG CLIENT CHO LBS
102
5.1 Định nghĩa 102
5.2 Môi trường client 102
17
5.2.1 Windows Mobile và Microsoft Auto 102
5.2.2 Symbian 104
5.2.3 J2ME 105
5.3 Các vấn đề khi phát triển ứng dụng trên client là thiết bị di động 106
5.3.1 Dữ liệu 106
5.3.2 Xử lý và tốc độ 107
5.3.3 Liên lạc 107
5.3.4 Đồ họa 108
Chương 6 XÂY DỰNG ỨNG DỤNG LBS
109
6.1 Phát biểu bài toán 109
6.1.1 Giới thiệu 109
6.1.2 Mô tả tổng quan 109
6.1.3 Sử dụng 110
6.2 Phân tích yêu cầu 111
6.2.1 Usecase 111
6.2.1.1 Danh sách các actor 111
6.2.1.2 Danh sách các usecase 111
6.2.1.3 Usecase “Định vị” 112
6.2.1.4 Usecase “Hiển thị vị trí” 113
6.2.1.5 Usecase “Hiển thị đường đi” 113
6.2.1.6 Usecase “Di chuyển trên bản đồ” 114
6.2.1.7 Usecase “Tìm đường” 114
6.2.1.8 Usecase “Tìm địa danh” 115
6.2.1.9 Usecase “Tìm địa danh gần đúng” 115
18
6.2.1.10 Usecase “Liệt kê loại địa điểm” 116
6.2.1.11 Usecase “Hiển thị danh sách kết quả” 117
6.2.1.12 Usecase “Tìm đường” 117
6.2.1.13 Usecase “Thay đổi phương pháp tìm kiếm” 118
6.2.1.14 Usecase “Bật / tắt chức năng định vị” 118
6.3 Thiết kế và phát triển ứng dụng 119
6.3.1 Công cụ, môi trường và tổng quan hệ thống 119
6.3.1.1 Công cụ và môi trường 119
6.3.1.2 Cơ sở dữ liệu và hoạt động của hệ thống 120
6.3.2 Cơ sở dữ liệu 123
6.3.3 Sơ đồ lớp mức thiết kế ở server 126
6.3.3.1 Lớp LocationBasedServices 128
6.3.3.2 Package business 129
6.3.3.2.1 Lớp Finder 129
6.3.3.2.2 Lớp Router 129
6.3.3.3 Package data 129
6.3.3.3.1 Lớp StreetData 129
6.3.3.3.2 Lớp LocationSearchResultData 129
6.3.3.3.3 Lớp StreetNodeData 129
6.3.3.3.4 Lớp VenueTypeData 129
6.3.3.3.5 Lớp Configuration 130
6.3.3.4 Package objects 130
6.3.3.4.1 Lớp LocationSearchResult 130
6.3.3.4.2 Lớp StreetNode 130
6.3.3.4.3 Lớp SimpleStreetNode 130
6.3.3.4.4 Lớp DijkstraVertex 130
19
6.3.3.4.5 Lớp Street 130
6.3.3.4.6 Lớp Coordinate 130
6.3.3.4.7 Lớp VenueType 131
6.3.4 Sơ đồ lớp mức thiết kế ở client 131
6.3.4.1 Các lớp trong package location based service 131
6.3.4.1.1 Lớp LocationBasedService 131
6.3.4.1.2 Lớp LocationBasedService_Stub 132
6.3.4.1.3 Lớp LocationSearchResult, Coordinate và SimpleStreetNode 132
6.3.4.2 Lớp GoogleMaps 132
6.3.4.3 Lớp CloudMade 132
6.3.4.4 Lớp MicroDouble 132
6.3.5 Thiết kế giao diện 132
6.3.5.1 Sơ đồ tương tác giữa các màn hình 134
6.3.5.2 Màn hình chính 135
6.3.5.3 Màn hình tìm kiếm 137
6.3.5.4 Màn hình tìm kiếm theo loại địa điểm 138
6.3.5.5 Màn hình kết quả tìm kiếm 138
6.3.5.6 Màn hình tùy chọn ứng dụng 140
6.3.6 Các API, lớp và hàm của các tác giá khác được sử dụng trong đề tài 141
6.3.6.1 Google Maps static API & Lớp Google Map 141
6.3.6.2 Cloud made routing API 141
6.3.6.3 JSONObject 142
6.3.6.4 MicroFloat 142
6.4 Kiểm thử (testing) 142
6.4.1 Acceptance system test cho server và client 143
6.4.2 Unit test trên server 143
20
6.4.2.1 LocationBasedServicesTest 143
6.4.2.2 Finder test 144
6.4.2.3 Router test 144
6.4.2.4 LocationSearchResultData test 145
6.4.2.5 StreetData test 146
6.4.2.6 StreetNodeData test 147
6.4.2.7 VenueTypeData test 148
6.4.2.8 Coordinate test 148
6.4.2.9 DijkstraVertex test 149
6.4.2.10 LocationSearchResult test 150
6.4.2.11 SimpleStreetNode test 150
6.4.2.12 StreetNode test 150
6.4.2.13 Street test 151
6.4.3 Conformance test trên server 151
6.4.3.1 Các test case đã thực hiện trên hàm Find 152
6.4.3.2 Các test case đã thực hiện trên hàm FindFuzzy 154
6.4.3.3 Các test case đã thực hiện trên hàm FindStreet 154
6.4.3.4 Các test case đã thực hiện trên hàm Route 155
6.4.4 Performance test trên server 156
6.4.4.1 Cấu hình các hệ thống tham gia test 157
6.4.4.2 Test 1: Null test 157
6.4.4.3 Test 2: Các request bình thường 159
6.5 Tích hợp và triển khai 159
6.5.1 Client 160
6.5.2 Server 160
6.5.3 Mô hình triển khai thực tế nhằm đánh giá ứng dụng 162
21
6.6 Đánh giá và so sánh 163
6.6.1 Lưu trữ 163
6.6.2 Xử lý 164
6.6.3 So sánh tính năng với các ứng dụng khác 165
6.6.3.1 Kết quả chạy Google Maps 166
6.6.3.2 Kết quả chạy Vimap 168
6.6.3.3 Kết quả chạy SMS Locator 169
6.6.3.4 Kết quả chạy ứng dụng minh họa – locations service client 170
Chương 7 TỔNG KẾT
173
7.1 Kết quả đạt được 173
7.2 Hướng phát triển 173
7.2.1 Cải thiện hiệu năng 173
7.2.2 Cải thiện mô hình triển khai 174
7.2.3 Thêm tính năng cho ứng dụng 174
7.2.4 Tăng tính tiện dụng cho người dùng 174
TÀI LIỆU THAM KHẢO
175
MỤC LỤC HÌNH
Hình 1 Trạm thu phát được ngụy trang 33
Hình 2 Thiết bị GPS 34
Hình 3 PDA có tính năng GPS 34
Hình 4 Máy tính dashtop 35
22
Hình 5 Định vị theo phương pháp Cell identification 37
Hình 6 Định vị theo phương pháp TDOA 39
Hình 7 Định vị theo phương pháp TOA 40
Hình 8 Định vị theo phương pháp AOA 40
Hình 9 Các thành phần của GPS 42
Hình 10 Định vị bằng vệ tinh 43
Hình 11 Kiến trúc WAAS 44
Hình 12 Kiến trúc LAAS 45
Hình 13 Mô hình A-GPS 46
Hình 14 Thẻ nhận dạng bằng Ultrasound đeo trên tay bệnh nhận trong một bệnh viện 47
Hình 15 Sơ đồ hệ thống định vị bằng Radar. Vật cần định vị không nhận được vị trí của
mình 48
Hình 16 Bản đồ của Snow, các chấm đen thể hiện các ổ dịch 50
Hình 17 Dữ liệu dưới dạng thuộc tính kèm theo điểm, đường và đa giác 53
Hình 18 Kiến trúc các dịch vụ web của OGC 64
Hình 19 Kết quả tìm đường trên Google map mobile 65
Hình 20 MyLocation có thể định vị người dùng chính xác tới một mức nhất định 66
Hình 21 Google Latitude trên iPhone 68
23
Hình 22 Yahoo map 69
Hình 23 Vietmap 70
Hình 24 3D trên địa điểm 71
Hình 25 Việt bản đồ mobile 72
Hình 26 Ảnh minh họa Vimap từ trang chủ Vimap 73
Hình 27 Triển khai web service 81
Hình 28 Kiến trúc server phục vụ LBS 82
Hình 30 Các đối lớp tượng trong MySQL GIS extenstion 92
Hình 31 So sánh tốc độ của hai phương pháp tính 100
Hình 32 Usecase của ứng dụng 111
Hình 33 Các điểm tạo thành đường Nguyễn Hữu Thọ và Nguyễn Văn Linh trong OSM
so với trên bản đồ - các nút ở gần giao điểm của 2 đường không nằm trùng nhau 122
Hình 34 EER cho CSDL ở server 123
Hình 35 Các lớp ở server (1) 126
Hình 36 Các lớp ở server (2) 127
Hình 37 Các lớp ở client 131
Hình 38 Ứng dụng chạy trên thiết bị giả lập có kích thước màn hình nhỏ hơn thiết kế
(130x160) 134
24
Hình 39 Sơ đồ tương tác giữa các màn hình 134
Hình 40 Menu chính của ứng dụng 135
Hình 41 Ứng dụng hiển thị kết quả tìm kiếm theo 2 cách: đường đi và đánh dấu điểm
đầu, cuối 136
Hình 42 Màn hình tìm kiếm 137
Hình 43 Màn hình liệt kê loại địa điểm 138
Hình 44 Màn hình kết quả 139
Hình 45 Màn hình tủy chọn 140
Hình 47 Giao diện editor của SOAP UI 152
Hình 48 Kết quả performance test 1 158
Hình 49 Kết quả performance test 2 159
Hình 50 Màn hình deploy ứng dụng trong giao diện quản lý của GlassFish 161
Hình 51 Mô hình triển khai ứng dụng 162
Hình 52 Định vị với CellID và MyLocation trên google maps 166
Hình 53 Màn hình tìm kiếm địa điểm và hiển thị kết quả 167
Hình 54 Google maps không thể dẫn đường ở Việt Nam (hình trái) nhưng hoạt động tốt
ở NewYork (hình phải) 167
Hình 55 Màn hình xám ban đầu và màn hình bản đồ của Vimap 169
Hình 56 Tin nhắn gửi đến SMS Locator và kết quả trả về (tin được gửi khi người dùng
25
đứng ở giao lộ Mạc Đĩnh Chi – Nguyễn Thị Minh Khai 169
Hình 57 Bản đồ và bản đồ hiển thị đường đi trên thiết bị thật 170
Hình 58 Màn hình tìm đường và hiển thị kết quả trên thiết bị thật 171
Hình 59 Màn hình tìm địa điểm và kết quả tìm 171
26
MỤC LỤC BẢNG
Bảng 1Danh sách actor 111
Bảng 2Danh sách usecase 112
Bảng 3Mô tả bảng POI trong CSDL 123
Bảng 4Mô tả bảng StreetNode trong CSDL 123
Bảng 5Mô tả bảng Street trong CSDL 124
Bảng 6Mô tả bảng Street - StreetNode trong CSDL 124
Bảng 6Mô tả bảng Place trong CSDL 125
Bảng 6Mô tả bảng PlaceType trong CSDL 125
Bảng 7Mô tả màn hình chính của ứng dụng client 136
Bảng 8Mô tả màn hình tìm kiếm của ứng dụng client 137
Bảng 9Mô tả màn hình liệt kê loại địa điểm 138
Bảng 10Mô tả màn hình kết quả của ứng dụng client 139
Bảng 11Mô tả màn hình tùy chọn của ứng dụng client 141
Bảng 12Các testcase cho lớp LocationBasedServices 144
Bảng 13Các testcase cho lớp Router 145
Bảng 14Các testcase cho lớp LocationSearchResultData 146
27
Bảng 15Các testcase cho lớp StreetData 147
Bảng 16Các testcase cho lớp StreetNodeData 147
Bảng 17Các testcase cho lớp VenueTypeData 148
Bảng 18Các testcase cho lớp Coordinate 148
Bảng 19Các testcase cho lớp DijkstraVertex 150
Bảng 20Các testcase cho lớp LocationSearchResult 150
Bảng 21Các testcase cho lớp StreetNode 151
Bảng 22Các testcase cho lớp Street 151
Bảng 23Các testcase thực hiện trên hàm Find 153
Bảng 24Các testcase thực hiện trên hàm FindFuzzy 154
Bảng 25Các testcase thực hiện trên hàm FindStreet 155
Bảng 26Các testcase thực hiện trên hàm Route 156
Bảng 27Cấu hình các hệ thống tham gia performance test 157
Bảng 28Số record được lưu trong CSDL của ứng dụng 163
Bảng 29Giới hạn lưu trữ của MySQL 164
Bảng 30Kết quả thử nghiệm các tính năng và thời gian đáp ứng của các ứng dụng 165
28
TÓM TẮT LUẬN VĂN
Thông tin chung về đề tài:
Tên đề tài: Tìm hiểu về Location Services cho di động và xây dựng ứng
dụng minh họa
GVHD: ThS. Ngô Huy Biên
Sinh viên thực hiện:
0512269 – Nguyễn Võ Thanh Phú
0512248 – Lâm Thị Ngọc Nhàn
Tóm tắt nội dung luận văn:
- Phân tích điểm mạnh và yếu của các công nghệ liên quan tới dịch vụ dựa trên vị trí
- Xu hướng ứng dụng dịch vụ dựa theo vị trí hiện nay
- Đề ra một hướng phát triển tương đối chung cho các dịch vụ dựa theo vị trí.
- Phát triển một ứng dụng cung cấp dịch vụ dựa theo vị trí gồm các chức năng:
+ Tìm đường ở Việt Nam với cơ sở dữ liệu mở, có sẵn
+ Local search
Một số từ khóa chính liên quan đến nội dung đề tài:
Location, Service, Application, Mobile, Pathfinding, Local search
Lĩnh vực áp dụng:
Công nghệ di động
Các thuật tóan, phương pháp, quy trình chính được nghiên cứu trong đề tài
- Location service được cung cấp dưới dạng Web service
- Fuzzy text search
- GIS Function
Các công cụ, công nghệ chính được nghiên cứu trong đề tài
MySQL GIS, J2EE Webservice, J2ME
29
30
1 GIỚI THIỆU
Vài thập kỷ qua, công nghệ thông tin đã có những bước phát triển vượt bậc để đáp ứng
nhu cầu của của con người. Trong khi chỉ cách đây vài thập kỷ việc mang một chiếc
máy tính theo bên mình còn là chuyện không tưởng khi một chiếc máy có khả năng xử
lý chỉ vào ngàn phép tính một giây đã lớn bằng cả căn phòng thì giờ đây bất kỳ ai cũng
đã có thể hoàn thành công việc của mình ngay trên đường đi chỉ với một chiếc điện
thoại di động.
Bên cạnh sự phát triển của công nghệ chế tạo thiết bị thì kỹ thuật sử dụng thiết bị, mà
cụ thể là các dịch vụ và sản phẩm phần mềm kèm theo cũng có sự tiến hóa tương ứng.
Theo trào lưu ấy, việc kết hợp giữa các thiết bị hiện đại (mang đến tính tiện dụng) và
các dịch vụ mới (mang đến tiện ích) để sinh ra lợi ích tối đa cho người dùng là tất yếu,
mà thiết bị di động đang là trung tâm của xu hướng này, thể hiện qua hàng loạt các sản
phẩm gần đây của các nhà cung cấp dịch vụ có tiếng trên toàn thế giới như Google với
hệ điều hành Android hay Apple với iPhone; giờ đây người sở hữu thiết bị di động
không còn bị gói gọn trong văn phòng nữa mà có thể thực hiện công việc hàng ngày từ
bất cứ nơi đâu.
Khi hướng phát triển truyền thống cung cấp xử lý dựa trên thông tin của người dùng đã
phát triển gần đến mức giới hạn, một hướng mới đã được mở ra: cung cấp khả năng xử
lý dựa trên thông tin của môi trường chung quanh. Từ việc biết được người dùng đang
ở trong hoàn cảnh nào, thiết bị có thể đưa ra những phương án hỗ trợ người dùng tốt
nhất một cách tự động (không đòi hỏi dữ liệu hoặc thao tác từ phía người dùng). Các
thông tin “nền” về môi trường xung quanh đó bao gồm vị trí của người dùng.
Khả năng định vị đã được bắt đầu có trong một số thiết bị chuyên dụng từ cách đây vài
thập kỉ. Tuy nhiên mãi đến gần đây mới bắt đầu được tích hợp vào các thiết bị dành cho
31
người dùng phổ thông, cung cấp nền tảng để các các dịch vụ dựa trên vị trí (location
based service -LBS) có thể hoạt động. Nói một cách ngắn gọn, dịch vụ dựa theo vị trí là
một dịch vụ cung cấp nội dung và khả năng tương tác với người dùng dựa trên vị trí
hiện tại của người dùng.
Loại dịch vụ này tuy ra đời sau nhưng các dịch vụ dựa theo vị trí đã được kèm theo hầu
hết các thiết bị di động có hỗ trợ; trong đó phổ biến nhất là dịch vụ bản đồ số và tìm
đường đi.
Giờ việc định vị một thiết bị đã trở nên khá dễ dàng vì từ chỗ phụ thuộc hoàn toàn vào
vệ tinh quân sự, giờ đã được cải tiến nhờ sự kết hợp của nhiều công nghệ khác nhau.
Hiện nay trên thế giới đã có nhiều đề tài nghiên cứu và cả ứng dụng về việc kết hợp
công nghệ để cung cấp dịch vụ dựa theo vị trí người dùng. Tuy nhiên sự phát triển của
công nghệ cũng có mặt trái của nó: tạo ra quá nhiều lựa chọn - các ứng dụng mới có thể
sẽ gặp khó khăn trong việc chọn lựa công nghệ cho mình.
Đề tài sẽ tập trung phân tích điểm mạnh và yếu của các công nghệ liên quan tới dịch vụ
dựa trên vị trí, xu hướng ứng dụng dịch vụ dựa theo vị trí hiện nay cũng như đề ra một
hướng phát triển tương đối chung cho các dịch vụ dựa theo vị trí.
Hiện nay ở Việt Nam các dịch vụ dựa theo vị trí vẫn còn phát triển khá nhỏ lẻ, vẫn
chưa có ứng dụng nào tích hợp tất cả các tính năng một người đi đường bình thường
cần. Do đó nhằm mục đích minh họa, đề tài cũng sẽ hướng đến việc phát triển một ứng
dụng cung cấp dịch vụ dựa theo vị trí gồm các chức năng:
- Tìm đường ở Việt Nam với cơ sở dữ liệu mở, có sẵn.
- Local search.
Để tài sẽ gồm các phần chính sau:
- Chương 2 Công nghệ sẽ giới thiệu và chỉ ra tiềm năng của các công nghệ liên
quan tới định vị, cung cấp nội dung và thông tin địa lý. Tất cả những công nghệ
32
này hiện đã và đang được kết hợp với nhau để tạo ra các dịch vụ mới.
- Chương 3 Các nghiên cứu, chuẩn và ứng dụng hiện tại sẽ giới thiệu tình hình
phát triển của các dịch vụ dựa theo vị trí, các ứng dụng đã thành công và những
bài học có thể rút ra từ chúng.
- Chương 4 Xây dựng server phục vụ LBS sẽ giới thiệu các khái niệm liên quan
tới server và web serivce, một hướng phát triển ứng dụng web được ưa chuộng
gần đây và lợi thế khi phát triển ứng dụng cung cấp dịch vụ dựa theo vị trí theo
mô hình này.
- Chương 5 Xây dựng client phục vụ LBS sẽ giới thiệu các môi trường phát
triển cho client phổ biến và ưu khuyết điểm của chúng. Đồng thời cũng chọn ra
môi trường phù hợp nhất để phát triển ứng dụng client cho LBS.
- Chương 6 Phát triển ứng dụng sẽ mô tả quy trình phát triển một ứng dụng cụ
thể cung cấp LBS
- Chương 7 Kết luận
33
2 CÔNG NGHỆ
Vì dựa vào thông tin trong môi trường bên ngoài thiết bị nên các dịch vụ dựa vào vị trí
được xếp vào loại dịch vụ khai thác thông tin từ môi trường xung quanh (ambience
intelligence). Tuy nhiên các dịch vụ loại này còn sử dụng nhiều công nghệ khác ngoài
định vị; chẳng hạn như các công nghệ trên nền web để cung cấp nội dung hay các công
nghệ di động để tạo ra ứng dụng. Do đó có thể nói các dịch vụ dựa theo vị trí là thành
quả nổi bật nhất của sự hội tụ công nghệ thông tin – truyền thông (telecommunication
convergence).
1 Công nghệ định vị
Việc định vị là cốt lõi của khả năng cung cấp các dịch vụ dựa theo vị trí
(Location-based service, từ đây gọi là LBS). Chỉ khi xác định được vị trí của người
dùng hoặc thiết bị thì hệ thống mới có thể đưa ra nội dung hoặc quyết định dựa theo
thông tin vị trí ấy.
Để có thể định vị được thiết bị, cần có sự kết hợp giữa nhiều yếu tố như hệ thống phát
và thu. Cơ sở hạ tầng cho các hệ thống này rất đa dạng: từ vệ tinh, trạm thu phát cho
đến các thiết bị cầm tay.
Các hệ thống định vị thường bao gồm:
- Một hệ thống phát tín hiệu được phân tán trên diện rộng, chẳng hạn như vệ tinh
hoặc các trạm thu phát sóng. Các hệ thống này thường phát tín hiệu một cách tự
động và liên tục, bất kỳ thiết bị nào trong vùng phủ sóng đều có thể nhận được.
- Các đầu thu dựa vào tín hiệu nhận được có thể tính toán ra vị trí của mình một
cách chủ động.
34
Tuy nhiên vẫn có những hệ thống hoạt động theo cách khác (thiết bị chủ động gửi tín
hiệu đến các hệ thống lớn hơn) nhưng không phát triển mạnh vì chi phí cho thiết bị có
khả năng phát sóng thường khá lớn.
1 Các hệ thống vệ tinh định vị hiện có
Vệ tinh hiện là loại hệ thống được sử dụng rộng rãi nhất vì các ưu điểm của nó như tầm
bao phủ rộng và có độ chính xác tương đối, đáp ứng được hầu hết các nhu cầu thông
thường. Tuy nhiên phương pháp này không phải không có khuyết điểm:
Các hệ thống đang hoạt động đều được xây dựng cho mục đích quân sự, các tổ chức
kiểm soát các hệ thống này có quyền hạn chế truy cập của người dùng dân sự vào bất
cứ lúc nào.
Chất lượng tín hiệu phụ thuộc nhiều vào thời tiết. Các hoạt động thời tiết thông thường
như giông bão có thể gây nhiễu một cách đáng kể vì vệ tinh ở quá xa so người nhận so
với nơi hình thành nhiễu.
Phải có tầm nhìn tới vệ tinh: không nên có vật cản giữa thiết bị nhận và vệ tinh vì tín
hiệu có tính xuyên thấu kém.
Đồng hồ của thiết bị bị lệch dù ít cũng có thể gây ảnh hưởng lớn đến kết quả, có thể đòi
hỏi chi phí sản xuất lớn để tạo ra đồng hồ độ chính xác cao.
Tuy nhiên, vệ tinh vẫn có rất nhiều ứng dụng trong viễn thông như truyền dẫn, phát hay
khảo sát. Ở đây ta chỉ quan tâm tới các hệ thống vệ tinh đóng vai trò lớn trong công
nghệ định vị được đề cập ở phần 2.1.4.3.
1 NAVSTAR GPS:
NAVSTAR GPS là hệ thống vệ tinh phát tín hiệu định vị được sử dụng nhiều nhất hiện
nay. NAVSTAR GPS được triển khai bởi quân đội Mỹ, bắt đầu hoạt động hoàn chỉnh
từ năm 1993(Strom 2002). GPS hay Global Positioning System thật ra là tên gọi chung
35
cho tất cả các hệ thống có khả năng định vị trên toàn cầu. Tuy nhiên vì NAVSTAR
GPS là hệ thống được dùng rộng rãi nhất hiện nay nên nhiều người đánh đồng GPS với
NAVSTAR GPS. Trong đề tài này, “GPS” sẽ được dùng để chỉ các hệ thống định vị
nói chung.
NAVSTAR GPS là sản phẩm kế thừa của hệ thống định vị bằng vệ tinh trước đó của
Mỹ: Transit. Ban đầu chỉ được dùng cho các ứng dụng quân sự, một vụ bắn nhầm máy
bay dân sự vào năm 1983 đã buộc tổng tống Mỹ lúc bấy giờ là Ronald Reagan ký sắc
lệnh cho phép sử dụng NAVSTAR GPS vào các ứng dụng dân sự. Tuy nhiên tín hiệu
dân sự chỉ có độ chính xác tương đối so với tín hiệu được dùng cho quân sự và quân
đội Mỹ vẫn giữ quyền kiểm soát. Quân đội Mỹ hoàn toàn có khả năng vô hiệu hóa tín
hiệu NAVSTAR GPS dân sự bằng cách gây nhiễu hoặc mã hóa. Tuy nhiên điều này
khó xảy ra vì đòi hỏi của các tổ chức dân sự có tiếng nói lớn như Hiệp hội hàng không
Hoa Kỳ.
Về mặt ứng dụng, NAVSTAR GPS chính là hệ thống nền tảng cho hầu hết các thiết bị
hiện có trên thị trường, bao gồm cả các thiết bị được đề cập ở các phần sau của đề tài.
2 GLONASS (GLObal NAvigation Satellite System)
Viết tắt của cụm từ tiếng Nga: ГЛОбальная НАвигационная Спутниковая Система,
GLONASS được Liên bang Xô Viết cũ xây dựng từ 1976 và đạt độ phủ toàn cầu năm
1991. Từ sau sự sụp đổ của Liên bang Xô Viết, hệ thống này không còn được duy trì
tốt. Vì các vệ tinh chỉ có tuổi đời khoảng 5 năm(NASA 2007) nên nhều lỗ hổng trong
vùng phủ sóng bất đầu xuất hiện. Chỉ đến năm 2001, khi tổng thống Nga lúc bấy giờ là
Vladimir Putin kí sắc lệnh duy trì thì các lỗ hổng trong hệ thống mới được khắc phục
và hệ thống được nâng cấp để sử dụng thêm nhiều tần số và kéo dài tuổi đời vệ tinh.
Tương tự NAVSTAR GPS, GLONASS có 2 tín hiệu khác nhau dùng cho dân sự (độ
chính xác thấp) và quân sự (độ chính xác cao hơn).
36
3 Galilleo
Được đặt tên theo nhà thiên văn học nổi danh người Ý; Galilleo hiện vẫn ở giai đoạn
lập kế hoạch. Tuy nhiên Galilleo khác biệt với NAVSTAR GPS và GLONASS ở các
điểm:
Có thể dùng để tăng cường độ chính xác cho việc định vị dựa vào NAVSTAR GPS và
GLONASS: từ vài chục mét xuống vài cm; đồng thời có khả năng hoạt động độc lập
khi hai hệ thống trên có vấn đề.
Là dự án có sự hợp tác của nhiều quốc gia trong Liên minh châu Âu và một số nước
khác.
Được xây dựng cho mục đích dân sự, mọi đối tượng đều có thể sử dụng miễn phí; quá
trình quản lý sẽ minh bạch hơn do có sự tham gia của nhiều quốc gia.
Galilleo được dự kiến sẽ đi vào hoạt động trong khoảng 2010 đến 2013.
2 Trạm thu phát (Base station)
Các trạm thu phát là nền tảng của truyền thông di động hiện đại, với ưu điểm cung cấp
tín hiệu tốt trong các vùng đô thị, chi phí thấp và dễ lắp đặt hơn so với vệ tinh, ta có thể
thấy các trạm thu phát ở hầu như mọi nơi.
Trạm thu phát là những điểm truyền / nhận sóng vô tuyến tới các thiết bị di động,
thường chỉ hoạt động trong một phạm vi nhất định. Thêm nữa, các dịch vụ di động chỉ
có thể dùng một số tần số đã được cấp phép (số lượng tần số này có hạn). Do đó, để có
thể cung cấp dịch vụ một cách xuyên suốt cho người dùng, các trạm thu phát thường có
vùng phủ sóng chồng lên nhau. Mật độ trạm thu phát cũng tùy vùng mà thay đổi:
Ở các vùng đô thị: Mật độ trạm phải cao vì
- Có nhiều kiến trúc kiên cố, sóng vô tuyến không dễ xuyên qua
- Lượng người dùng tập trung lớn trong khi số kênh thu phát lại phụ thuộc vào số
37
tần số được các tổ chức quản lý cho phép dùng nên cũng bị giới hạn, các trạm
buộc phải dùng lại cùng một kênh tại cùng một thời điểm mà không làm ảnh
hưởng lẫn nhau
Ở các vùng nông thôn thì mật độ trạm lại thấp vì lượng người dùng ít, các công trình
xây dựng thường không cao mà tầm phủ sóng của các trạm lại khá rộng.
Có một số ý kiến cho rằng sóng vô tuyến từ các thiết bị di động có thể ảnh hưởng tới
sức khỏe. Tuy nhiên phần lớn các nghiên cứu cho đến thời điểm hiện tại đều cho thấy
cường độ sóng trong các thiết bị di động khá thấp để có thể gây tác động vật lý lên
những người chung quanh. Dù vậy, để làm hài lòng công chúng các trạm điện thoại đã
bắt đầu được “ngụy trang”
Hình 1 Trạm thu phát được ngụy trang
Vì các trạm thu phát là cố định, nên nếu biết được người dùng thiết bị di động đang ở
trạm thu phát nào gần nhất thì có thể suy ra được vị trí tương đối của người dùng. Tuy
38
nhiên sai số sẽ lớn ở các vùng nông thôn do mật độ trạm thưa và tầm phủ sóng của một
trạm có thể lên đến hàng kilômét.
Điện thoại di động có thể dựa vào mã số trạm, mã mạng và mã nước để truy vấn các cơ
sở dữ liệu vị trí trạm như OpenCellID, từ đó suy ra vị trí của mình.
3 Các loại thiết bị có tính năng định vị cho người dùng
Với công nghệ sản xuất ngày càng hiện đại, việc tích hợp khả năng định vị vào các thiết
bị khác nhau cũng trở nên dễ dàng hơn; trao cho người dùng quyền quyết định chọn sản
phẩm nào thích hợp với nhu cầu của mình nhất.
Hình 2 Thiết bị GPS
- Bộ định vị: Ban đầu được thiết kế cho các mục đích quân sự, các thiết bị này từ
chỗ chỉ hiển thị tọa độ để bổ sung cho các phương tiện định vị khác như bản đồ
và la bàn thì giờ đã bắt đầu thân thiện với người dùng hơn và bắt đầu giống các
thiết bị di động như điện thoại hoặc dashtop hơn. Các bộ định vị không có các
tính năng bổ sung hiện vẫn được bán trên thị trường với giá thấp cho những ai
39
không có điều kiện sử dụng các thiết bị hiện đại hơn hoặc đặt nặng độ chính xác
hơn tính tiện dụng.
Hình 3 PDA có tính năng GPS
- PDA / Điện thoại cầm tay: Các thiết bị này ban đầu được phát triển cho mục
đích liên lạc dân sự (truyền âm thanh, số liệu), dần dần được tích hợp nhiều tính
năng hơn, trong đó có khả năng xử lý thông tin. Đây cũng là các thiết bị có
nhiều người sử dụng nhất (đồng thời có thị phần lớn) nên các dịch vụ được cung
cấp khá đa dạng và phong phú. Giờ đây các thiết bị này đang dần được tích hợp
thêm khả năng định vị để các dịch vụ dựa theo vị trí của người dùng có thể phát
triển.
40
Hình 4 Máy tính dashtop
- Dashtop: là một loại thiết bị khá mới, ra đời để bổ sung cho khiếm khuyết của
các thiết bị di động: thời gian hoạt động phụ thuộc vào nguồn điện. Các thiết bị
Dashtop thường được trang bị cho các xe hơi hạng sang với hai mục đích:
· Cho phép thiết bị di động có khả năng hoạt động lâu hơn do có nguồn
điện từ xe
· Cung cấp tiện ích lái xe cho người dùng (theo dõi hành trình, theo dõi
mức sữ dụng nhiên liệu, cấp cứu v.v…)
Có thể thấy điểm chung của các thiết bị định vị ngày nay là kích thước nhỏ gọn nhưng
vẫn có thể cung cấp nhiều chức năng.
4 Cách thức định vị
Tương ứng với số lượng khá lớn các hệ thống có thể phục vụ cho việc định vị hiện nay
là một loạt giải pháp định vị. Các giải pháp này có thể chia thành ba nhóm: định vị trên
41
thiết bị di động, định vị trên hệ thống mạng lưới và kết hợp cả hai. Các nhóm này có
các ưu / khuyết khác nhau trên nhiều mặt như độ chính xác hay tốc độ.
Ứng dụng tìm kiếm dựa theo vị trí có thể không cần thông tin vị trí chính xác tuyệt đối
của người dùng để có thể đưa ra các kết quả tương ứng ở chung quanh. Chẳng hạn như
tìm một nhà hàng thì chỉ cần biết người dùng đang ở quận nào.
Ngược lại, để xác định vị trí của một trường hợp khẩn cấp trong một thành phố lớn lại
cần độ chính xác cao vì có thể đối tượng ở trong một ngõ hẻm độc đạo, việc xác định
đường đi đến đối tượng cần phải chính xác để có thể lên kế hoạch điều phối một cách
nhanh nhất.
Hiểu biết về cách thức hoạt động của từng cách thức định vị sẽ giúp người phát triển
đưa ra lựa chọn thích hợp cho ứng dụng của mình.
4 Cell identification / Cell of origin
Thường dùng trên điện thoại di động và việc định vị không cần độ chính xác cao.
Phương pháp này chỉ đơn giản tìm trạm phát sóng gần người dùng nhất, từ đó biết được
người dùng đang ở trong tầm phát của trạm đó.
Vì được triển khai cùng với các trạm thu phát sóng nên phương pháp định vị này đang
được sử dụng khá rộng rãi, trong đó có cả việc định vị người gọi các cuộc gọi khẩn cấp
đến dịch vụ 911 ở Mỹ. Phương pháp định vị này được hỗ trợ trên hầu hết thiết bị sản
xuất bởi các công ty lớn như Nokia và Sony Ericsson.
Phương pháp này có ưu điểm là nhanh và khá chính xác ở những vùng đô thị (các trạm
được đặt dày hơn và phục vụ một khu vực nhỏ hơn). Tuy nhiên sai số có thể lên đến
32km ở vùng nông thôn, phụ thuộc vào tầm phủ sóng của trạm thu phát.
42
Hình 5 Định vị theo phương pháp Cell identification
Hiện phương pháp này đã được cải tiến bằng cách kết hợp thêm thông tin về các vị trí
trước đó của người dùng, cũng như khoảng cách giữa các lần truyền dữ liệu để tăng độ
chính xác; sai số ở các vùng nông thôn chỉ còn 550m. Vì chỉ sử dụng tín hiệu từ một
trạm nên CellID được xếp vào nhóm định vì từ một phía (unilateration)
5 Định vị từ nhiều phía (multilateration)
Phương pháp này có thể xác định vị trí của một vật phát sóng bằng cách kết hợp thông
tin thu được hoặc phát đi từ các trạm thu phát (base station).
1 Time difference of arrival (TDOA)
43
TDOA hoạt trong ở các trạm, các trạm này tính toán sự khác biệt giữa các lần thu tín
hiệu của thiết bị, từ đó xác định được vị trí của thiết bị. Gọi (x,y,z) là tọa độ của vật cần
xác định. A, B, C, D là các trạm thu, T là khoảng thời gian di chuyển của tín hiệu từ
thiết bị tới trạm thu, ta có
Trong đó c là vận tốc truyền của tín hiệu, thường với tín hiệu điện từ vận tốc này bằng
với vận tốc ánh sáng.
Nếu lấy A làm gốc tọa độ, ta được
Trong đó (x’B, y’B, z’B) là vector AB, tương tự với các điểm C và D. Chúng ta đã biết
vị trí của các trạm A, B, C và D nên có thể giải hệ phương trình trên để tính ra vị trí của
thiết bị.
Phương pháp này cần tối thiểu 4 trạm thu để xác định vị trí trong không gian 3 chiều.
Tuy nhiên khi một chiều đã được biết bằng phương pháp khác (chẳng hạn như cao độ
của máy bay với các thiết bị có sẵn trên máy bay) thì có thể chỉ cần 3 trạm.
44
Hình 6 Định vị theo phương pháp TDOA
2 Time of arrival (TOA)
Phương pháp này tương tự như TDOA, tuy nhiên thay vì tính toán khoảng cách giữa 2
lần nhận thông tin ở 2 trạm khác nhau, TOA dùng thời gian nhận được thông tin giữa
các lần truyền tới cùng một trạm để khoanh vùng thiết bị. Khá giống với việc xác định
khoảng cách tới nơi bị sét đánh: biết được khoảng thời gian từ khi nhìn thấy tia chớp tới
khi nghe thấy tiếng sấm có thể tính ra khoảng cách tới nơi bị sét đánh vì đã biết vận tốc
truyền của âm thanh và ánh sáng.
45
Hình 7 Định vị theo phương pháp TOA
3 Angle of arrival (AOA)
Xác định vị trí của vật cần định vị nhờ tính toán góc truyền tới ở các trạm khác nhau.
46
Hình 8 Định vị theo phương pháp AOA
4 Enhanced observed time difference (E-OTD)
E-OTD hoạt động giống như TDOA nhưng được ứng dụng trên thiết bị di động. Thiết
bị sẽ gửi cũng như nhận tín hiệu từ nhiều trạm phát sóng khác nhau và dựa vị trí đã biết
của các trạm phát, cũng như độ trễ giữa các lần truyền để xác định vị trí của thiết bị.
E-OTD có thể hoạt động cả với các trạm phát không đồng bộ giờ với nhau.
5 Advanced forward link trilateration (A-FLT)
A-FLT so sánh khoảng cách giữa các lần truyền tới từng cặp trạm phát khác nhau.
A-FLT đòi hỏi các trạm phát phải đồng bộ (một thuộc tính có sẵn của các trạm
CDMA).
47
6 Định vị bằng vệ tinh: hệ thống định vị toàn cầu (GPS)
Hiện có khá nhiều hệ thống vệ tinh khác nhau nhưng chúng đều có cách hoạt động khá
giống nhau: thiết bị tính toán vị trí của mình từ tín hiệu nhận được từ các vệ tinh GPS.
Các vệ tinh liên tục phát các thông điệp gồm các thông số như thời gian gửi thông điệp,
vị trí của vệ tinh và tình trạng của vệ tinh. Thiết bị nhận sẽ đo thời gian truyền của
thông điệp để tính toán khoảng cách tới từng vệ tinh, từ đó có thể dùng hình học để biết
được vị trí của mình (giao điểm của các đường cầu với tâm là các vệ tinh và bán kính là
khoảng cách tới thiết bị). (United States Coast Guard Navigation Center 1996)
6 Các thành phần của GPS: user, ground & space section
48
49
Hình 9 Các thành phần của GPS
- Thành phần không gian (space section) là hệ thống vệ tinh chuyển động quanh
trái đất ở quỹ đạo cao (high orbit) đã để cập ở 2.1.1. Ở quỹ đạo cao các vệ tinh
di chuyển không đều so với tốc độ quay của trái đất nên vị trí của các vệ tinh
trên bầu trời đối với thiết bị nhận sẽ luôn thay đổi. Tuy nhiên hệ thống được
thiết kế để lúc nào cũng có 4 vệ tinh trong tầm nhìn của thiết bị.
- Thành phần mặt đất (ground section) là các trạm điểu khiển và tính toán sái lệch
của vệ tinh từ đó trả về thông tin hiệu chỉnh. Ground section của GPS khác với
các hệ thống tăng cường độ chính xác như LAAS (phần 2.1.4.3.3) ở chỗ tín hiệu
của các trạm thuộc ground section sẽ được dùng để điều chỉnh trực tiếp tín hiệu
do vệ tinh GPS phát ra thay vì chỉ được kết hợp để điều chính độ chính xác trên
thiết bị nhận.
- Người dùng: là người sử dụng và các thiết bị có nhu cầu định vị, xác định
phương hướng, v.v…
7 Phương pháp định vị
50
Hình 10 Định vị bằng vệ tinh
Thông thường trong không gian, để xác định vị trí của một điểm chỉ cần tìm giao điểm
của 3 hình cầu (trái đất là hình cầu thứ 4). Tuy nhiên nếu đồng hồ của thiết bị không
chính xác tuyệt đối thì sai số của vị trí ước lượng được sẽ rất lớn do dùng công thức
Quãng đường = thời gian x vận tốc
Trong đó vận tốc là vận tốc truyền của tín hiệu từ vệ tinh đến thiết bị, cũng chính là vận
tốc ánh sáng – một hằng số lớn.
Vì chế tạo thiết bị đo đếm thời gian chính xác tuyệt đối khá khó khăn (chi phí đắt đỏ,
kích thước lớn) nên thường các thiết bị GPS chỉ hoạt động khi có thể nhận tín hiệu của
51
ít nhất 4 vệ tinh – 3 vệ tinh để xác định vị trí và 1 để đồng bộ đồng hồ. Cũng bằng cách
này bất kì thiết bị nào cần tính toán thời gian một cách chính xác đều có thể sử dụng
GPS làm đồng hồ (thời gian hệ thống của NAVSTAR GPS được cung cấp bởi đồng hồ
nguyên tử của Viện các chuẩn và công nghệ Hoa Kỳ - NIST).
8 Các cải tiến
GPS thông thường có độ sai lệch khoảng vài chục tới vào trăm mét; tuy nhiên một số
ứng dụng có thể đòi hỏi độ chính xác cao hơn thế. Để tăng tính chính xác cho việc định
vị, một số hệ thống hỗ trợ GPS đã được tạo ra, chúng có thể là:
- Một hệ thống vệ tinh khác như Wide Area Augmentation System (WASS) của
cục hàng không liên bang Hoa Kỳ. Hệ thống này gồm các trạm thu mặt đất nhận
tín hiệu của GPS, tính toán các sai lệch trong tín hiệu nhận được và truyền lên
một hệ thống vệ tinh địa tĩnh từ đó đến với các thiết bị định vị. Các thiết bị định
vị có thể trừ sai lệch từ tín hiệu của GPS với thông số nhận được từ WAAS để
có được vị trí chính xác hơn. WAAS giảm sai số của GPS từ vài chục mét xuống
dưới 10m.
52
Hình 11 Kiến trúc WAAS
- Một hệ thống trạm phát mặt đất. Các trạm này thường được triển khai quanh các
khu vực cần độ chính xác cao như bờ biển, sân bay (nơi có nhiều phương tiện
qua lại và có nhiều chướng ngại vật). Mỹ đã triển khai Local Area Augmentation
System theo hướng này.
53
Hình 12 Kiến trúc LAAS
Ngoài ra, dành riêng cho điện thoại di động có khả năng GPS còn có Assisted GPS
(A-GPS). A-GPS có thể cho kết quả định vị nhanh hơn GPS thông thường do A-GPS
có thể cung cấp cho điện thoại:
- Thông tin và vị trí của các vệ tinh trong vùng, cùng với thông tin vị trí của trạm
thu phát đang phụ trách điện thoại.
- Thời gian chính xác.
- Một phần thông tin GPS đã xử lý trước, các trạm cũng có thể tính toán sai lệch
54
do địa hình, thời tiết đã được biết trước trong khu vực của mình và gửi cho điện
thoại.
Hình 13 Mô hình A-GPS
5 Khác biệt giữa các hệ thống định vị được ứng dụng trong LBS với các hệ
thống tương tự
Ngoài các kỹ thuật định vị đã dùng cho LBS, còn có một số kỹ thuật tương tự khác
cũng nhằm mục đích định vị, nhưng chúng lại thường không được sử dụng để cung cấp
LBS. Tuy không phải là phương thức định vị chính nhưng các hệ thống này có thể bổ
trợ cho GPS, chẳng hạn như để xác định người dùng đang ở phòng nào bên trong tòa
nhà, nơi mà tín hiệu GPS có thể rất yếu.
55
7 Khác biệt với các hệ thống định vị thời gian thực
Định vị thời gian thực (real time locating) là tập hợp một số công nghệ cũng có chức
năng xác định vị trí của một vật hoặc người dùng, tuy nhiên định vị thời gian thực
thường:
- Gồm một hệ thống thu / phát chủ động (và tín hiệu thu được thường được tập
trung lại để xử lý), trong khi đối tượng cần xác định chỉ trả lời hoặc biến đổi các
tín hiệu một cách thụ động (khi hệ thống phát yêu cầu).
- Việc xử lý thường được hệ thống thu / phát đảm nhận; các vật cần được định vị
thường không có năng lực xử lý. Do đó các vật có khả năng được định vị thường
có giá khá rẻ và cấu tạo đơn giản như nhãn hoặc thẻ và được gắn vào các vật
khác để định vị chúng.
- Tầm hoạt động thường nhỏ và mang tính cục bộ (trong phạm vi một cửa hàng,
thư viện, bệnh viện, v.v…)
- Có tính chất đúng như tên gọi, đặt nặng tốc độ hơn độ chính xác.
Các hệ thống này cũng có thể sử dụng nhiều công nghệ khác nhau, trong đó có Radio
frequency identification (RFID) và sóng siêu âm (Ultrasound)
56
Hình 14 Thẻ nhận dạng bằng Ultrasound đeo trên tay bệnh nhận trong một bệnh viện
Các hệ thống định vị thời gian thực thường chỉ được triển khi trên diện nhỏ vì khó kết
hợp thông tin giữa các địa điểm triển khai khác nhau vì:
- Phải bảo đảm ID của mỗi vật được định vị là duy nhất vào mọi thời điểm
- Phải đồng bộ lượng dữ liệu lớn (các đối tượng gắn tag có thể liên tục di chuyển)
- Chuẩn này không hỗ trợ việc nhận ở thiết bị di động (thiết bị không biết mình
đang ở đâu, các nhãn kèm theo thiết bị chỉ phản ứng khi có tín hiệu từ bên
ngoài)
8 Sự khác biệt với các hệ thống định hướng và theo dõi
Các hệ thống định hướng và theo dõi (navigation & tracking) thường được dùng để xác
định vị trí của các đối tượng trong môi trường xung quanh, nhưng các hệ thống này lại
thường không đòi hỏi các hệ thống thu/phát riêng biệt.
Có thể nói hệ thống tiêu biểu nhất loại này là radar. Radar là thiết bị phát sóng và nhận
lại tín hiệu phản hồi. Sóng radar khi gặp phải các vật thể khác thì dội lại, từ thời gian đi
và về của sóng, radar có khả năng xác định vật đích cách trạm thu phát bao nhiêu.
57
Hình 15 Sơ đồ hệ thống định vị bằng Radar. Vật cần định vị không nhận được vị trí
của mình
Chỉ có hệ thống thu/phát biết được vị trí của các vật thể xung quanh, các vật thể không
biết được sóng tới xuất phát từ khoảng cách bao nhiêu nên khó định vị được nguồn
phát. Do đó các hệ thống này thường dùng với mục đích định hướng: xác định các
chướng ngại vật để né tránh (ở tầm xa hoặc trong điều kiện mắt thường không thể nhìn
thấy được như sương mù) hoặc theo dõi đường đi của các vật thể trong một vùng xác
58
định.
6 Tính riêng tư khi sử dụng công nghệ định vị
Thông tin về vị trí của người dùng đôi khi cũng mang tính riêng tư. Trong luật pháp
của hầu hết các nước phát triển, vị trí của người dùng chỉ có thể được theo dõi khi có
sự cho phép của người dùng. Do đó ứng dụng LBS thường phải thông báo rõ cho người
dùng biết rằng vị trí của họ có thể được theo dõi và ứng dụng sẽ làm gì với thông tin vị
trí này.
Với các dịch vụ LBS được cung cấp theo yêu cầu thì vấn để khá đơn giản: vị trí người
dùng chỉ được theo dõi khi người dùng chạy ứng dụng. Tuy nhiên, các ứng dụng đòi
hỏi cập nhật vị trí người dùng liên tục như theo dõi bạn bè, xác định vị trí người dùng
khi có trường hợp khẩn cấp… lại làm phát sinh câu hỏi: người dùng có muốn mình
được theo dõi vào một lúc nào đó không?
Vì theo dõi một máy điện thoại qua phần cứng (gắp rệp, theo dõi sóng vô tuyến, sao
chép SIM…) khá khó thực hiện nên các phần mềm cung cấp LBS phải thận trọng trong
việc truyền tải dữ liệu trên mạng; cung cấp cho người dùng các tùy chọn bảo vệ tính
riêng tư như ngừng các chức năng có liên quan đên theo dõi trong khoảng thời gian nào
đó trong ngày hoặc tắt hẳn đến khi người dùng cần sử dụng tiếp.
2 Hệ thống thông tin địa lý (GIS)
Hệ thống thông tin địa lý (Geographical information system) là một hệ thống lưu giữ,
phân tích, quản lý và trình bày dữ liệu liên quan tới vị trí và thông tin địa lý. Theo cách
hiểu hiện nay, GIS còn bao gồm các công cụ truy vấn thông tin, phân tích và kết hợp
các thông tin rời rạc, bản đồ … GIS được ứng dụng trong khá nhiều ngành như bất
động sản, y tế, an ninh quốc phòng hay quy hoạch đô thị.
GIS đóng vai trò rất quan trọng trong các LBS, vì nếu thiếu cơ sở dữ liệu thông tin về
59
các vị trí do GIS cung cấp, LBS không thể rút ra ý nghĩa từ thông tin vị trí thu được của
thiết bị.
7 Lịch sử
Các hình vẽ từ 15 500 năm trước trong các hang động ở Lascaux, Pháp đếm số lượng
thú săn được ở một vùng nào đó, và theo dõi việc di trú của thú rừng đã mang 2 đặc
điểm nổi bật nhất của GIS: hình ảnh và thuộc tính của hình ảnh đó.
Năm 1854, John Snow, một bác sĩ người Anh và là người đi tiên phong trong việc ứng
dụng gây tê khi phẫu thuậtvà vệ sinh y tế - đã theo dõi một trận bùng phát dịch tả ở
London bằng cách vẽ các ổ dịch lên bản đồ. Nhờ tấm bản đồ này ông nhận thấy nguồn
dịch ở nguồn nước một máy bơm nước và đã giúp chấm dứt trận dịch này bằng việc
loại bỏ máy bơm nói trên. Mặc dù ông không phải là người đầu tiên thêm dữ liệu vào
bản đồ, nhưng ông là người đầu tiên biết dùng dữ liệu trên bản đồ ấy để phân tích một
hiện tượng phụ thuộc vào địa lý.
60
Hình 16 Bản đồ của Snow, các chấm đen thể hiện các ổ dịch
Đầu thế kỷ 20, các bản đồ nhiều lớp bắt đầu xuất hiện, đồng thời việc nghiên cứu công
nghệ hạt nhân cũng đã góp phần thúc đẩy sự phát triển của các ứng dụng bản đồ trên
máy tính vào những năm 1960.
8 Dữ liệu cho GIS
Dữ liệu cho GIS thường khá lớn, liên kết nhiều loại dữ liệu khác nhau: dữ liệu có thể
được nhập bằng tay, bằng các thiết bị hỗ trợ với tính năng GPS, từ ảnh scan v.v… Để
có thể chuyển nhiều loại dữ liệu thô khác nhau này thành dữ liệu luận lý phục vụ cho
việc xử lý đòi hỏi sự kết hợp của khá nhiều công nghệ; trong đó có:
- Định vị: hỗ trợ việc vẽ bản đồ và thu thập dữ liệu. Giờ đây các phương tiện có
61
thiết bị định vị có thể giúp điều chỉnh độ chính xác của các bản đồ, thu thập dữ
liệu hình ảnh. Nổi bật nhất là Google với hệ thống street car thu thập ảnh đường
phố ở nhiều nơi trên thế giới, hệ thống này thậm chí sẽ còn bao gồm xe đạp.
Google street view kết hợp hình ảnh với vị trí thu được hình ảnh đó để dựng lên
mô hình 3D của con phố.
- Xử lý ảnh: Tuy để có dữ liệu tốt nhất cần phải đầu tư cho khâu thu thập dữ liệu
nhưng dữ liệu thu thập được sẽ khó có thể hoàn hảo trong mọi điều kiện: hình
ảnh chụp được từ vệ tinh hoặc các thiết bị khảo sát khác có thể có độ nét không
cao, bị lỗi (bụi, mờ, mây che v.v…) hoặc chỉ biểu diễn một mặt nào đó của dữ
liệu cần thu thập (như chỉ chụp phần xanh để lập bản đồ rừng mà không chụp
nhà cửa của cư dân trong vùng). Do đó, cần có các công nghệ xử lý ảnh để kết
hợp thông tin từ nhiều lần khảo sát khác nhau hoặc sửa chữa sai sót giữa các lần
khảo sát của cùng một khu vực, từ đó xây dựng được dữ liệu với độ chính xác
tương đối.
- Nhận dạng: trước khi các hệ thống thông tin địa lý kỹ thuật số ra đời, do nhu cầu
của công việc hoặc cuộc sống nên đã có khá nhiều dữ liệu địa lý được tạo ra
dưới dạng bản đồ trên giấy hoặc các dữ liệu khảo sát của vùng / miền. Việc nhập
tay lượng dữ liệu cực kỳ lớn này đòi hỏi quá nhiều nhân lực so với việc xây
dựng toàn bộ hệ thống GIS. Với công nghệ nhận dạng giờ đây các bản đồ có thể
được scan, các vùng khác nhau trên bản đồ được tự động nhận dạng và chuyển
thành dạng vector, dữ liệu chữ và số được đưa vào cơ sở dữ liệu một cách hoàn
toàn tự động.
Để lưu trữ dữ liệu được hiệu quả và đáp ứng nhu cầu xử lý (nhanh và / hoặc chính xác)
của các ứng dụng GIS, việc thiết kế cơ sở dữ liệu cũng cần được chú ý. Hiện có khá
nhiều kiểu dữ liệu được ứng dụng trong GIS và được phân thành 2 loại chính:
- Dữ liệu dạng raster: Thường được chia nhiều dòng và cột, mỗi “ô” trong dữ liệu
62
chứ một giá trị nào đó. Dữ liệu raster thông dụng nhất là ảnh kĩ thuật số, trong
đó mỗi điểm trên ảnh mang giá trị là màu của điểm đó. Ngoài hình ảnh còn có
nhiều loại dữ liệu khác có thể biểu diễn dưới dạng raster; chẳng hạn như dữ liệu
nhiệt độ, lượng mưa ở từng khu vực trong một vùng nào đó. Dữ liệu raster có
thể được lưu vào file hoặc hệ quản trị cơ sở dữ liệu, tuy nhiên việc tìm kiếm trên
dữ liệu này khá khó khăn vì mỗi bản ghi thường có kích thước khá lớn.
- Dữ liệu dạng vector: là cách tốt nhất để biểu diễn các yếu tố địa lý như sông, hồ.
Vector có thể biểu diễn dưới dạng toán học (tọa độ 2 đầu của một đường thẳng)
thay vì nhiều điểm liên tục như dữ liệu dạng raster (lưu tọa độ của tất cả các
điểm trên đường) nên thường nhỏ hơn và dễ tìm kiếm hơn, và vì không phải là
một mảng như raster nên dữ liệu vector có thể biểu diễn nhiều thành phần khác
nhau nằm cách xa nhau – nói một cách khác là các đối tượng rời rạc (discrete)
và thưa (spatial). Dữ liệu vector thường là sự kết hợp của nhiều đối tượng hình
học đơn giản như:
· Điểm: Thường dùng để chỉ một vị trí nào đó hoặc một vùng nào đó trên
các bản đồ tỉ lệ lớn. Điểm thường được biểu diễn dưới dạng tọa độ trong
một hệ tọa độ được quy ước (khi xây dựng cơ sở dữ liệu)
· Đường: Thường dùng để biểu diễn những thứ liên tục như đường (biểu
diễn bằng đường thẳng), sông (biểu diễn bằng đường cong), mạch nước
hoặc các đường độ cao. Từ dữ liệu dạng đường thường có thể suy ra độ
dài của đường. Dữ liệu vector có thể biểu diễn các đường cong không
chính xác vì thường phải xấp xỉ bằng các đường thẳng.
· Đa giác: Thường dùng để biểu diễn một vùng hoặc một bề mặt nào đó
như ranh giới tỉnh, khuôn viên một công trình, một mặt hồ… Dữ liệu
dạng này có thể dùng để suy ra diện tích và chu vi của đối tượng.
- Các dữ liệu không thưa (non – spatial) khác: Thường được lưu trữ kết hợp với
63
các kiểu dữ liệu trên để phục vụ việc xử lý và ra quyết định. Ví dụ hình ảnh vệ
tinh của một quận (raster) có thể đi kèm với bản đồ đường (vector) và các chỉ
tiêu phát triển xã hội như số dân, mật độ dân số, thành phần dân số…
Hình 17 Dữ liệu dưới dạng thuộc tính kèm theo điểm, đường và đa giác
9 Xử lý thông tin với GIS
Trong vài thập kì vừa qua có khá nhiều phương thức xử lý thông tin trên GIS được phát
triển, và hiện nay xu hướng này vẫn đang còn tiếp tục. GIS liên tục được thay đổi và bổ
sung nên khó có thể liệt kê mọi ứng dụng xử lý của GIS một cách chi tiết.
Xử lý GIS không chỉ gói gọn trong một hệ thống nhất định. Giờ đây các hệ thống GIS
có thể sử dụng các công cụ hỗ trợ dưới dạng plug-in và có thể dễ dàng tùy chỉnh để phù
hợp với yêu cầu của người sử dụng. Ngoài ra một số hệ thống còn cung cấp bộ công cụ
64
phát triển phần mềm (Software Development Kit – SDK) đi kèm để người dùng có thể
tự tạo công cụ xử lý dựa trên dữ liệu đã có. Sự tự do tìm cách tiếp cận này đã tạo ra một
ngành phân tích mới: khai thác dữ liệu thưa (spatial intelligence).
9 Mô hình hóa dữ liệu
Với dữ liệu đã có trong GIS, một số thuật toán có thể nội suy ra dữ liệu từ một số ít
mẫu có sẵn, chẳng hạn như lập bản đồ mật độ mưa cho một vùng khi có số liệu ở một
vài điểm. Hoặc, từ dữ liệu độ cao của một số điểm liên tục có thể tạo ra bản đồ đường
mức (contour map), tô màu đồi núi, tính toán khoảng trống quanh một điểm nào đó
(thường dùng trong xây dựng).
Dữ liệu đã mô hình hóa có thể được dùng theo nhiều cách. Chẳng hạn kết hợp dữ liệu
về các bãi rác có thể suy ra bãi rác nào ở quá gần khu dân cư, sông rạch và các dòng
nước ngầm có thể đang chảy bên dưới. Dữ liệu đã mô hình hóa có thể giúp người phân
tích rút ra quan hệ về vị trí (cái gì ở gần cái gì), mối tương quan (nếu cái này bị ảnh
hưởng thì cái kia sẽ như thế nào) và tính bao hàm (có cái gì bao gồm một cái khác
không).
10 Mô hình hóa các mạng lưới
Vì các yếu tố địa lý có thể liên quan tới nhau một cách phức tạp như độ rộng lòng sông
ảnh hưởng tới tốc độ dòng chảy; GIS có thể áp dụng để dự đoán và giả lập các điều
kiện thực tế chính xác hơn phỏng đoán của con người. Chẳng hạn nếu xảy ra sự cố cháy
nổ ở nhà máy lọc dầu thì bao lâu dầu sẽ lan tới biển. Việc mô hình hóa ảnh hưởng lẫn
nhau của các yếu tố địa lý giúp ích rất nhiều trong quy hoạch giao thông, thủy lợi và
xây dựng cơ sở hạ tầng.
11 Mô hình hóa bản đồ
GIS có thể được dùng để tạo ra bản đồ. Dữ liệu ảnh raster có thể được nhận dạng để
65
chuyển thành các vùng, miền tạo thành bởi các điểm, đường và đa giác như đã đề cập ở
phần 2.2.2; từ đó có thể thực hiện tính toán và xử lý dễ dàng hơn. Ngoài ra thông tin từ
nhiều lần khảo sát có thể được kết hợp lại để tạo ra bản đồ phục vụ một mục đích nào
đó: Một số phép kết hợp hoặc cộng trừ toán học đơn giản có thể giải quyết một số vấn
đề thống kê một cách nhanh chóng và chính xác. Ví dụ khi chồng 2 lần chụp của cùng
một khu rừng ở hai thời điểm khác nhau có thể dễ dàng biết được diện tích khu rừng đã
tăng lên hay hẹp đi bao nhiêu.
Các thao tác được thực hiện trên bản đồ có thể được hiểu đơn giản như một “hàm xử lý
bản đồ”: hàm có đầu vào là bản đồ, cho ra kết quả bằng cách xử lý các điểm có liên
quan trong bản đồ, kết hợp với các trọng số được người dùng cung cấp. Kết quả là một
mô hình thể hiện được sự tác động giữa các yếu tố địa lý khác nhau.
Ngoài ra, với chỉ một bộ dữ liệu, kết hợp với các kỹ thuật đồ họa (visualization) có thể
tạo được các bản đồ ở nhiều tỉ lệ khác nhau một cách tự động. Quá trình này gọi là tổng
quát hóa địa lý (generalization of geo spatial data)
12 Thống kê địa lý
Thống kê địa lý có mục đích tìm hiểu các quy luật và dự đoán kết quả dựa trên dữ liệu
có sẵn. Tùy theo loại dữ liệu mà sai số của kết quả thu được có thể khác nhau. Sai số
này do nhiều tác nhân tạo thành như sai số trong đo đạc, tính toán của hệ thống hoặc
phương pháp tính.
Thống kê cũng thường bao gồm nội suy để dự đoán kết quả. Việc nội suy có thể phải
tiến hành nhiều lần vì kết quả thu được sẽ có sai số tùy thuộc vào độ lớn của dữ liệu
nguồn và phương pháp được sử dụng (biến đổi Fourier hay trung bình trượt v.v…).
13 Mã hóa địa chỉ (geocoding)
Geocoding là thuật ngữ dùng để chỉ việc nội suy ra địa chỉ từ tọa độ của một điểm hoặc
66
ngược lại. Địa chỉ ở đây có thể thuộc một trong nhiều loại: ZIP code, địa chỉ thông
thường hoặc một loại mã nào đó được gán cho một vùng địa lý xác định. Tọa độ của
một căn nhà khi biết địa chỉ, thường được tính bằng cách tỉ lệ số nhà với số nhà có trên
đường với độ dài đường để suy ra khoảng cách tính từ đầu con đường đến số nhà cần
tìm. Phương pháp này chỉ có độ chính xác tương đối tuy nhiên lại khá thông dụng. Với
các ứng dụng cần chính xác tuyệt đối thì cần có dữ liệu khảo sát trực tiếp vị trí của từng
căn nhà. Quá trình này được tiến hành ngược lại để suy ra địa chỉ từ tọa độ (reverse
geocoding).
Việc phân tích địa chỉ cũng là một vấn đề. Có nhiều thuật toán xử lý ngôn ngữ tự nhiên
để phân tích địa chỉ. Tuy nhiên do tính đa dạng cũng như sở thích của con người khi
viết địa chỉ mà địa chỉ có khá nhiều dạng khác nhau; các thuật toán thường phải chịu lỗi
ở một mức nhất định để có thể nhận dạng địa chỉ một cách hiệu quả.
Hiện Google và Yahoo đều cung cấp API geocoding.
10 Trình bày thông tin với GIS
14 Bản đồ
GIS thường được dùng để tạo ra bản đồ. Các ứng dụng GIS thường cho phép người
dùng dễ dàng thay đổi cách thể hiện bản đồ như tỉ lệ, màu sắc, kí hiệu v.v… sao cho
phù hợp. Vì tận dụng được dữ liệu cũ nên GIS tạo ra bản đồ nhanh hơn nhiều so với
các phương pháp truyền thống. Bản đồ và các số liệu kèm theo thường được dùng để ra
quyết định hoặc tham khảo. Bản đồ có thế có nhiều dạng: bản đồ giấy thông thường
hoặc bản đồ số với các tính năng tương tác.
15 Đồ họa máy tính
GIS cũng có thể dùng để biểu diễn dữ liệu địa lý một cách trực quan, chẳng hạn như
các danh sách hoặc biểu đồ. Đồ họa máy tính mở ra nhiều hướng mới để theo dõi dữ
67
liệu địa lý như mô hình 3 chiều, khả năng thêm bớt các lớp dữ liệu tức thời và quan sát
từ nhiều góc độ.
Ứng dụng của GIS không chỉ ở tầm vĩ mô như quy hoạch mà còn có thể ở tầm vi mô
như quản lý một tòa nhà. GIS hoàn toàn có thể được ứng dụng để theo dõi luồng nhiệt
trong một cao ốc, bao gồm cả các yếu tố bên ngoài như mặt trời và mưa gió.
3 Công nghệ truyền tải dữ liệu
Nếu xem các hệ thống định vị là tai và mắt, hệ thống thông tin địa lý là bộ não thì với
các LBS, các công nghệ truyển tải dữ liệu sẽ là miệng. Chúng giúp các LBS truyền tải
thông tin cần xử lý cũng như đã xử lý đến thiết bị của người dùng. Vì khả năng sử dụng
LBS tồn tại trên khá nhiều thiết bị khác nhau nên cũng có nhiều công nghệ truyền tải
phù hợp ra đời.
11 WAP/GPRS/EDGE
WAP (wireless application protocol) là một bộ giao thức được phát triển cho các ứng
dụng di động. Từ khi WAP bắt đầu phổ biến vào năm 1999, các nhà cung cấp dịch vụ
đã bắt đầu cung cấp khả năng truy cập nội dung số trên thiết bị di động, đi kèm với đó
là các dịch vụ tiện ích như internet, email, nhạc chuông. WAP có thể được dùng để đưa
nội dung đển với người dùng một cách chủ động (WAP push) mà không cần người
dùng yêu cầu. Ban đầu WAP còn đi kèm với WML, một ngôn ngữ markup tương tự
như HTML nhưng được thiết kế cho ứng dụng di động (đòi hỏi năng lực xử lý, bộ nhớ
ít hơn v.v…). Dần dần cùng với sự phát triển của công nghệ thiết bị di động, WML trở
nên không cần thiết và với WAP 2.0, WML đã được thay thế bằng XHTML.
GPRS (general packet radio service) là cải tiến cho các mạng GSM, tối ưu hóa việc
truyền dữ liệu theo dạng packet để tăng tốc độ truy cập. GPRS có thể giúp thiết bị di
động sử dụng giao thức IP (internet protocol), PPP (point to point protocol) và X.25.
68
GPRS thế hệ đầu có thể đạt tốc độ download 60kbit/s và upload 40kbit/s. GPRS là
bước đệm từ hệ thống điện thoại 2G lên 3G, cung cấp cho người dùng khả năng liên lạc
với các hệ thống máy tính mọi lúc, mọi nơi.
EDGE (Enhanced Data rates for GSM Evolution) là một cải tiến nữa của GPRS, được
coi là một phần của công nghệ cận 3G (2.75G). EDGE nâng tốc độ download tối đa lên
236kbit/s và upload tối đa lên 118kbit/s tùy theo cấu hình. EDGE mở ra khả năng cung
cấp các dịch vụ đa phương tiện trên di động: giờ đây tốc độ download đã đủ nhanh để
triển khai các ứng dụng cần nhiều bandwitdth như video streaming, truyền hình, video
call và nhiều ứng dụng khác.
Cả WAP, GPRS và EDGE đều có điểm chung là gắn liền với mạng di động, từ đó có
tầm hoạt động rộng, phù hợp để cung cấp LBS ở mọi nơi. Tuy nhiên chất lượng dịch vụ
của các giao thức này vẫn phụ thuộc vào nhà cung cấp và một số yếu tố vật lý như tốc
độ di chuyển, khoảng cách tới trạm phát v.v… Ngoài ra giá cả cũng có thể là trở ngại
với người dùng: ở Việt Nam giá GPRS vào khoảng 50đ/10KB trong khi với với ADSL
là 50đ/MB (đắt gấp 100 lần kết nối internet thông thường).
12 Bluetooth/Wifi/WiMax
Bluetooth là giao thức truyền tải dữ liệu giữa các thiết bị bằng sóng vô tuyến. Bluetooth
được thiết kế để ít tốn năng lượng trong quá trình hoạt động và hiện có thể đạt tới tốc
độ 3mbit/s. Bluetooth được sử dụng rộng rãi để kết nối các thiết bị như tai nghe, điều
khiển, bàn phím, chuột, truyền / nhận file và hầu hết chức năng của giao thức hồng
ngoại (infrared) trước đây. Ngoài ra máy tính còn có thể sử dụng điện thoại làm modem
để truy cập internet qua bluetooth. Bluetooth có tầm hoạt động khoảng vài mét.
Wifi là chuẩn truyền dữ liệu qua sóng vô tuyến với tốc độ tương đối cao (54Mbit/s và
lên đến khoảng 150Mbit/s với công nghệ của các nhà sản xuất độc lập), có tầm hoạt
động tương đối (tử vài chục đến vài trăm mét). Wifi được tích hợp trong một số thiết bị
69
di động cao cấp để cho phép người dùng lựa chọn phương thức kết nối: nhanh, rẻ
nhưng có tầm hoạt động hạn chế của Wifi và dịch vụ internet di động của nhà cung cấp
dịch vụ - thường chậm hơn và mắc hơn (xem 2.3.1). Wifi không được thiết kế để tiết
kiệm năng lương nên thiết bị di động thường không thể duy trì hoạt động lâu khi kết
nối Wifi.
WiMax là một phương thức truyền tải qua vô tuyến khác có tầm phủ sóng tốt (vài km)
tuy nhiên đánh đổi bằng tốc độ (Tối đa 3Mbit/s với công nghệ hiện tại, 144Mbit/s trên
lý thuyết). WiMax đã được hoạch định làm một phần của công nghệ 4G; tuy nhiên hiện
nay WiMax vẫn chưa được đón nhận rộng rãi vì các vấn đề kỹ thuật (chưa có tần số
chuẩn và chuẩn chưa được hoàn thiện).
Với LBS, bluetooth và wifi có thể được kết hợp để cung cấp dịch vụ trong một vùng
nào đó. Cả hai đều có ưu điểm là tốc độ khá nhanh nhưng lại bị hạn chế ở tầm hoạt
động; trong khi WiMax có tầm hoạt động lớn nhưng vẫn chưa phổ biến (và khó tích
hợp vào thiết bị di động vì giá thành khá cao).
Ngoài ra, với các điểm truy cập (access point) wifi cố định và đã biết vị trí, có thể suy
ra vị trí của người truy cập theo cách giống như Cell identification (phần 2.1.4.1).
13 Truyền thông vệ tinh
Được phát triển chủ yếu để cung cấp dịch vụ thoại, các dịch vụ viễn thông trên vệ tinh
dần dần được mở rộng để bao gồm cả dịch vụ dữ liệu, truyền hình và radio. Vệ tinh có
thể được dùng để truy cập internet ngay cả ở những vùng hẻo lánh, không có bất kì loại
trạm thu phát nào. Mỗi vệ tinh có thể cung cấp dung lượng khoảng 40Mbit/s cho vài
ngàn người sử dụng, tuy nhiên mỗi người dùng chỉ có tốc độ khoảng 20kbits/s.
Sở dĩ tốc độ chậm vì khoảng cách từ mặt đất tới vệ tinh là khá lớn, hơn nữa tín hiệu
truyền đi với vận tốc ảnh sáng còn chịu ảnh hưởng của sai lệch đồng hồ của thiết bị cho
và nhận, ngoài ra chất lượng tín hiệu cũng bị ảnh hưởng bởi các yếu tố thời tiết (tương
70
tự như tín hiệu GPS – xem 2.1.4.3.2).
Sử dụng vệ tinh thường có giá khá đắt, bao gồm cả chi phí trang thiết bị (chảo thu, bộ
giải mã) và chi phí duy trì (thuê bao tháng).
Tuy có nhiều khuyết điểm và không thông dụng nhưng vệ tinh có thể là lựa chọn duy
nhất khi cần trao đổi dữ liệu ở một vùng hẻo lánh (chẳng hạn như dữ liệu đo đạc, khảo
sát).
71
3 CÁC NGHIÊN CỨU, CHUẨN VÀ ỨNG DỤNG HIỆN TẠI
1 Nghiên cứu
LBS là thành quả của sự kết hợp thông tin – truyền thông nên các nghiên cứu về LBS
cũng thường tập trung vào việc kết hợp các công nghệ của cả 2 lĩnh vực để tạo thêm
tiện ích và giá trị cho người dùng. Có thể phân loại hầu hết cải tiến vào các nhóm sau:
- Cách thức cài đặt trên nhiều nền tảng và hệ thống khác nhau; tìm các giải pháp
tương tự hoặc thay thế cho các hệ thống hiện không hỗ trợ triển khai LBS.
- Xác định chuẩn và phương thức giao tiếp (protocol) giữa các hệ thống và thiết
bị.
- Tích hợp LBS vào các hệ thống hiện có, các ứng dụng địa lý hoặc xây dựng
ubiquitous computing
- Phân tích và ứng dụng các hệ thống LBS vào các lĩnh vực và ngành mới như
trong y tế, giao thông vận tải.
14 Các công ty & tổ chức nổi bật
Trong số các công ty và tổ chức liên quan để lĩnh vực này, đóng góp lớp nhất phải kể
đến:
- Google cung cấp công nghệ, dữ liệu qua các API, là thành quả nghiên cứu của
Google.
- Open street map, cloud made và các cộng động nguồn mở liên tục cải tiến các
phương thức tổng hợp dữ liệu, cung cấp dữ liệu với nhiều định dạng khác nhau
cho cộng đồng.
- Open Geospatial Consortium (OGC), tổ chức phi lợi nhuận chuyên phát triển
72
các chuẩn cho việc xử lý thông tin địa lý, GIS và các lĩnh vực liên quan, trong
đó có LBS.
15 Các vấn đề mở
Công nghệ phát triển các hệ thống thông tin đến nay đã đạt được một sự trưởng thành
tương đối nên việc tích hợp các hệ thống không còn gặp nhiều trở ngại. Tuy nhiên, vì là
sự kết hợp của nhiều lĩnh vực khác nhau nên LBS cũng bị hạn chế bởi các vấn để chưa
được giải quyết trong các lĩnh vực tương ứng như:
- Mô hình hóa các đối tượng phức tạp, kết hợp thông tin từ nhiều nguồn một cách
hợp lý nhất, chẳng hạn như kết hợp thông tin từ bản đồ vẽ tay, bản đồ vector trên
máy tính và số liệu thống kê để đưa ra phân tích về một vùng nào đó.
- Tự động khai thác dữ liệu thô: địa chỉ, phân tích ranh giới giữa các vùng miền
hoặc trên phạm vi nhỏ hơn là nhà cửa.
- Trí tuệ nhân tạo: tìm kiếm đường đi trên đường phố thực tế khá khó vì có nhiều
yếu tố liên quan: cách bố trí đường (đường nhiều tầng, hầm), mật độ giao thông
vào một thời điểm xác định, chất lượng đường sá, sự điều khiển của con người,
ý thức người đi đường v.v… Tất cả đều cần được xem xét để có thể tìm được lời
giải tối ưu.
Về mặt ứng dụng, các nghiên cứu chủ yếu tập trung việc tích hợp LBS vào nhiều thiết
bị hơn như:
- Tích hợp vào xe và các hệ thống lái tự động, giúp giảm lượng nhiên liệu tiêu thụ
nhờ tốc độ hợp lý với từng cung đường.
- Giúp người tàn tật biết thông tin trên đường phố (đâu là nơi băng qua đường, và
những thời gian khi nào có thể qua, tòa nhà nào ở gần có thiết kế cho người tàn
73
tật v.v…) bằng cách đọc to lên hoặc cung cấp giao diện chữ nổi.
- Theo dõi xe cộ để quản lý giao thông đô thị tốt hơn.
2 Chuẩn
Tuy các hệ thống LBS khác phức tạp và cần nhiều tùy biến để thích ứng với các yêu
cầu khác nhau, nhưng căn bản vẫn là các dịch vụ. Để thống nhất một hướng đi chung
và dọn đường cho việc kết hợp các hệ thống LBS khác nhau về sau, OGC đã đề ra một
số tiêu chí chung trong việc xây dựng các hệ thống LBS gồm:
- Kiến trúc hệ thống
- Dữ liệu cần lưu trữ
- Xác định các công nghệ liên quan
Và tổng hợp tất cả để tạo ra OpenLS – một bộ chuẩn để xây dựng các LBS. Bộ chuẩn
này hiện nay đã khá đầy đủ và bao quát khá nhiều ứng dụng và được chia thành 4 thành
phần chính:
- Web registry service: service giúp tìm kiếm dữ liệu địa lý và thông tin về các
service khác.
- Web map service: hỗ trợ tạo bản đồ dựa trên các dữ liệu địa lý.
- Web feature service: quản lý thông tin về các đối tượng địa lý.
- Web coverage service: hỗ trợ truy vấn thông tin của một vùng, trả về dữ liệu địa
lý của một vùng để có thể xử lý thêm (khác với web map service chỉ trả về ảnh
tĩnh).
74
Hình 18 Kiến trúc các dịch vụ web của OGC
Đồ án này không hướng đến mục đích xây dựng một ứng dụng phức tạp nên sẽ chọn
hướng đi riêng – xây dựng một LBS đơn giản có sử dụng các công nghệ tương tự như
trong OpenLS nhưng với độ phức tạp hệ thống ít hơn nhiều.
75
3 Các ứng dụng thương mại
16 Google
Google Maps ban đầu là dịch vụ bản đồ trực tuyến của Google. Bắt đầu hoạt động từ
2005, Google Maps tập hợp hình ảnh từ nhiều nguồn cung ứng ảnh vệ tinh, tạo thành
một bản đồ hoàn chỉnh chi tiết đến mức đường sá của thế giới. Ngoài ra Google map
còn cung cấp chức năng tìm đường cho người dùng.
Năm 2006, Google giới thiệu Google Maps for Mobile được viết trên nền Java. Khi
chạy trên các thiết bị hỗ trợ GPS, Google Maps có khả năng xác định vị trí của người
dùng trên bản đồ và cung cấp hầu hết các chức năng có trên web như chuyển đổi giữa
bản đồ và hình ảnh vệ tinh, tìm đường, tìm địa điểm.
76
Hình 19 Kết quả tìm đường trên Google map mobile
Năm 2007, Google tích hợp My Location™ vào Google Maps for Mobile. My Location
cho phép xác định vị trí của người dùng mà không cần thiết bị phải có GPS. Bằng cơ sở
dữ liệu vị trí các trạm thu / phát của mình, cộng với cường độ tín hiệu nhận được từ
trạm, ứng dụng có thể suy ra khoảng cách của người dùng tới trạm và xác định vị trí
của người dùng.
77
Hình 20 MyLocation có thể định vị người dùng chính xác tới một mức nhất định
Năm 2008, Google bắt đầu phát triển các phiên bản Google Maps khác nhau cho các hệ
điều hành di động khác nhau nhằm mục đích cải thiện tốc độ so với phiên bản Java. Tới
nay ngoài phiên bản Java, Google Maps đã có các phiên bản cho:
- Android
- iPhone
- Windows Mobile
78
- Symbian / UIQ
- BlackBerry OS
- Palm OS
Ngoài ứng dụng cho Mobile, Google còn cung cấp một framework GIS / LBS để người
dùng có thể tự phát triển thêm các chức năng mới. Google cho phép người dùng sử
dụng hầu hết các yếu tố tạo thành cơ sở dữ liệu của mình như hình ảnh, bản đồ, dữ liệu
đường phố và geocoding. Dựa trên Google Maps API đã có khá nhiều ứng dụng được
phát triển thêm. Một số là mashup dữ liệu của Google với các nguồn khác để so sánh,
một số là các ứng dụng mở rộng chức năng như Wikimapia – cho phép người dùng
đánh dấu các địa danh quanh mình.
Có thể nói Google Maps là ứng dụng địa lý bao quát nhất hiện nay.
Tuy nhiên Google Maps không hẳn không có hạn chế: dữ liệu đường phố chỉ có ở một
số quốc gia xác định nên chức năng tìm đường và một số chức năng liên quan chỉ hoạt
động ở các quốc gia này; Việt Nam hiện chỉ có tên đường chứ chưa có thông tin đường
(chiều, độ rộng, v.v…) trên Google Maps nên cũng không thể dùng chức năng tìm
đường.
79
Hình 21 Google Latitude trên iPhone
Gần đây ngoài Google Maps, Google còn triển khai Google Latitude, dịch vụ cho phép
người dùng theo dõi vị trí của bạn bè mọi lúc mọi nơi. Google Latitude định danh
người dùng bằng Google Account nên ngoài khả năng định vị người dùng khi sử dụng
thiết bị di động như Google Maps, Google Account còn có thể định vị người dùng khi
sử dụng PC bằng GeoIP.
Thiết bị của người dùng chọn được theo dõi liên tục cập nhật vị trí của mình với server
của Google. Vì vị trí của người dùng là vấn đề riêng tư nên Google cho phép người
80
dùng kiểm soát cụ thế ai có thể biết mình ở đâu và vào lúc nào.
17 Yahoo
Yahoo map được Cartifact, một công ty chuyên về bản đồ thiết kế và cung cấp dữ liệu.
Yahoo map đi vào hoạt động từ 16/05/2007. Yahoo map chủ yếu hoạt động trên các hệ
thống desktop và không có phiên bản riêng cho các thiết bị di động như Google map.
Trên desktop, Yahoo được cung cấp dưới dạng Rich Internet Application (RIA), cho
phép người dùng dễ dàng xem bản đồ, các thông tin liên quan như địa danh, hình ảnh
từ vệ tinh… Do là ứng dụng trên nền web nên Yahoo không có khả năng xác định vị trí
của người dùng – Yahoo chỉ có thể cung cấp local search khi người dùng di chuyển đến
vị trí của mình trên bản đồ hoặc nhập đúng query cho vị trí của mình.
Về tìm đường, Yahoo cũng gặp phải hạn chế tương tự khi người dùng phải nhập nơi đi
và nơi đến
Hình 22 Yahoo map
Trên di động, kết quả local search không hiện lên bản đồ mà được tích hợp vào one
search – người dùng cần tìm kiếm địa điểm dưới dạng văn bản và nhận kết quả trả về
cũng ở dạng văn bản.
81
Yahoo có cung cấp một số API để người dùng có thể sử dụng dữ liệu bản đồ của mình
với Flash, Javascript và dưới dạng feed. Yahoo không hỗ trợ tìm đường cũng như local
search ở Việt Nam.
Ngoài maps, dịch vụ flickr của Yahoo cũng cho phép geotag ảnh chụp để người dùng
có thể tìm ảnh theo vị trí địa lý.
18 Vietmap
Là sản phẩm thuần việt của công ty TNHH bản đồ Việt (Vietmap). Vietmap được thiết
kế với chức năng chính là dẫn đường trong phạm vi Việt Nam, ngoài ra còn có chức
năng tra cứu thông tin du lịch và các địa điểm đáng quan tâm như nhà hàng, khách sạn
và ngân hàng; đồng thời cho người dùng tùy ý thêm các địa điểm mình quan tâm.
82
Hình 23 Vietmap
Vietmap hoạt động hoàn toàn dựa trên thiết bị di động nên cơ sở dữ liệu cần phải được
cập nhật bằng tay từ website của công ty. Ngoài ra Vietmap đòi hỏi thiết bị phải có hỗ
trợ GPS – tính năng chỉ tồn tại trong các loại điện thoại cao cấp.
Vietmap có các phiên bản khác nhau cho Symbian, Android và các điện thoại của
Samsung.
Ngoài sản phẩm Vietmap cho thiết bị di động, công ty Vietmap còn có một số sản
phầm cùng lĩnh vực như thiết bị tích hợp chức năng dẫn đường vào màn hình cảm ứng
của xe hơi, hệ thống theo dõi xe thời gian thực (vehicle tracking).
83
19 DiaDiem.com
Diadiem.com là sản phẩm của công ty cổ phần Địa Điểm. Được xây dựng dưới dạng
RIA như giao diện web của Yahoo và Google, địa điểm cung cấp các tính năng tương
tự như tìm kiếm địa điểm (khách sạn, nhà hàng, danh lam thắng cảnh v.v…), tìm đường
trong phạm vi Việt Nam.
Để minh họa cho kết quả tìm kiếm, gần đây địa điểm còn bổ sung việc hiển thị khung
(wireframe) của các công trình ở các quận trung tâm và hình ảnh 3D render sẵn của
một số công trình. Tuy nhiên do tính phức tạp của các công trình thực tế không thể
được biểu diễn qua một số hình khối đơn giản nên cách làm này cho kết quả không
được mỹ mãn cho lắm.
Hình 24 3D trên địa điểm
Không như Google và Yahoo, địa điểm không cung cấp API để người dùng có thể thao
84
tác trên dữ liệu của mình. Địa điểm cũng không có phiên bản rút gọn để có thể hoạt
động trên thiết bị di động. Tuy nhiên, cơ sở dữ liệu địa điểm phong phú của địa điểm
rất đáng tham khảo.
20 Vietbando.com
Là sản phẩm của công ty cổ phần tin học – bản đồ Việt Nam. Vietbando.com bao gồm
một ứng dụng RIA hiển thị bản đồ, cung cấp chức năng tìm kiếm như các sản phẩm đã
đề cập và một phiên bản dành cho mobile ở m.vietbando.com.
Phiên bản mobile của vietbando cung cấp khả năng tìm kiếm trên giao diện văn bản, có
khả năng hiển thị bản đồ đơn giản. Tuy nhiên việc sử dụng bản đồ này không được tiện
dụng vì các thao tác phóng to / thu nhỏ, di chuyển trái / phải đều đòi hỏi phải nạp lại
toàn bộ trang.
85
Hình 25 Việt bản đồ mobile
Vietbando có lẽ là sản phẩm duy nhất của Việt Nam có cung cấp API. Tuy chỉ có API
cho Javascript tuy nhiên API của Vietbando cũng hỗ trợ khá nhiều chức năng như tìm
đường, tìm địa điểm, khoanh vùng.
86
21 Vimap
Vimap là sản phẩm của nhóm Visky, thuộc FPT. Vimap được phát triển bằng Java cho
các thiết bị di động và có thể được download miễn phí từ trang chủ của Vimap
Vimap có các phiên bản riêng cho từng thành phố: Hà Nội, Đà Nẵng và Tp.HCM chia
thành 2 loại: dành cho điện thoại có GPS và không có GPS. Vimap được giới thiệu có
khả năng dẫn đường và tìm địa điểm; ngoài ra còn cho phép người dùng thêm địa điểm
mới.
Hình 26 Ảnh minh họa Vimap từ trang chủ Vimap
87
22 SMS Locator
SMS Locator là dịch vụ ra đời vào tháng 6/2009 của Mobifone nhằm mục đích cung
cấp thông tin địa điểm dựa trên vị trí của người dùng thông qua tin nhắn. Người dùng
gửi tin nhắn đến dịch vụ của Mobifone, Mobifone sẽ trả về các địa điểm theo yêu cầu
của người dùng và gần người dùng nhất.
SMS Locator cung cấp chức năng tìm kiếm các loại địa điểm sau:
- ATM
- Ngân hàng
- Cơ sở y tế
- Cà phê
- Nhà hàng
- Khách sạn
- Rạp chiếu phim
- Siêu thị
- Trạm xăng
88
4 XÂY DỰNG SERVER PHỤC VỤ LBS
1 Giới thiệu về server và web service
Server là thuật ngữ dùng để chí một hệ thống có khả năng phục vụ các hệ thống khác
theo một cách nào đó, chẳng hạn như cung cấp tài nguyên, thực hiện việc tính toán
hoặc làm trung gian để thực hiện một tác vụ nào đó. Để đáp ứng được những nhu cầu
này, server thường được trang bị tốt hơn so với các hệ thống máy tính thông thường (có
năng lực xử lý lớn hơn, bộ nhớ nhiều hơn, v.v…)
Khái niệm server ngày nay khác với mainframe và các server ngày xưa. Server giờ đây
không phải là danh từ để chỉ một hệ thống máy tính tối tân nào đó, hoặc một hệ thống
xử lý tập trung thực hiện mọi tác vụ mà các client không có năng lực xử lý (còn gọi là
terminal) yêu cầu. Server giờ đây là một khái niệm trừu tượng hơn vì không còn bị bó
hẹp trong phạm vi vật lý của một máy tính mà có thể bao gồm nhiều máy tính kết hợp
lại. Trong đó, năng lực xử lý của mỗi máy có thể không cao và thậm chí khoảng cách
địa lý giữa của các máy tạo nên một server cũng có thể khá lớn. Đây là thành quả của
sự phát triển không nghệ xử lý phân tán (distributed computing) và điện toán đám mây
(cloud computing).
23 Vai trò và khả năng của hệ thống server
Server cung cấp tài nguyên cho nhiều đối tượng khác. Do đó server cần có khả năng đa
nhiệm (multitasking) tốt để có thể đáp ứng yêu cầu khi có nhiều yêu cầu truy cập đồng
thời. Khả năng đa nhiệm tốt có được nhờ sự kết hợp khéo léo giữa phần cứng và phần
mềm, trong đó quan trọng nhất là hệ điều hành và bộ vi xử lý.
Trong các hệ thống hiện tại, server thường là nơi tập trung các tài nguyên trọng yếu nên
89
server thường là nơi được bảo vệ tốt nhất về mặt an ninh và được điều hành một cách
cẩn thận (có đội ngũ trực xử lý sự cố, có nguồn điện dự phòng, v.v..). An ninh của
server còn được coi trọng cả ở mặt logic: Tài nguyên trên server cần được kiểm soát để
tránh việc chúng bị truy cập trái phép cũng như bị hư hỏng bởi các sự cố phần mềm.
Công nghệ ảo hóa đang dần phát triển để đáp ứng nhu cầu này. Giờ đây có thể dễ dàng
cấu hình nhiều server “ảo” chạy trên một server vật lý mà khi một server “ảo” gặp sự
cố thì những server khác vẫn có thể hoạt động bình thường.
Một số dịch vụ các hệ thống server thường cung cấp:
- Lưu trữ file
- Cơ sở dữ liệu
- Quản lý hệ thống mạng (domain controller, firewall, proxy v.v…)
- Xử lý tập trung
- Host các dịch vụ chạy trên mạng như web server, web service v.v…
Trong ứng dụng LBS phục vụ cho thiết bị di động, hệ thống server thường phải cung
cấp tất cả các dịch vụ ở trên. Khác với các hệ thống máy tính để bàn, các thiết bị di
động có khả năng lưu trữ và xử lý thông tin khá hạn chế - do đó hai chức năng này nên
được server đảm nhận để bảo đảm về mặt tốc độ. Giảm bớt gánh nặng cho thiết bị di
động đồng nghĩa với việc ứng dụng sẽ có khả năng chạy trên cả những thiết bị rẻ tiền
hơn. Điều này mang đến tiện ích cho đại đa số người dùng vì theo thống kê tháng
04/2009, 80% điện thoại nhập về Việt Nam là hàng giá rẻ, dưới 50USD.
Vì server cung cấp nhiều dịch vụ nên cần truyền rất nhiều thông tin. Do đó, hệ thống
server bao gồm máy tính và các thành phần liên quan như router, switch, firewall…
phải được cấu hình sao cho:
90
- Hệ thống được thông suốt: mọi thành phần trong hệ thống đều phải có khả năng
liên lạc với nhau.
- Linh hoạt: khi có thay đổi trong hệ thống như thay thế server, chuyển cơ sở dữ
liệu… thì không tốn nhiều công sức thay đổi cấu hình hệ thống.
- Đảm bảo về bảo mật: cấm các truy cập trái phép từ bên ngoài và cả những client
không có phận sự liên quan tới dữ liệu được lưu trữ trong mạng nội bộ.
24 Yêu cầu cho ứng dụng trên server
Các ứng dụng trên server cung cấp các dịch vụ mới ngoài các dịch vụ căn bản đã đề
cập ở 4.1. Vì một dịch vụ web là sự kết hợp của cả phần cứng và phần mềm nên ngoài
các yêu cầu phần cứng đã để cập, phần mềm trên hệ thống cũng cần đảm bảo một số
yêu cầu để tạo ra một hệ thống có chất lượng.
16 Có thể tái sử dụng, dễ bảo trì
Tái sử dụng ở đây bao gồm cả tái sử dụng code, chức năng của ứng dụng và kết quả xử
lý.
Cách tốt nhất để đạt được yêu cầu này là thiết kế ứng dụng theo mô hình 3 lớp: chi ứng
dụng thành 3 phần đảm nhận 3 nhiệm vụ khác nhau:
- Presentation: trình bày nội dung.
- Business logic: xử lý.
- Data: quản lý và truy xuất dữ liệu.
Mô hình này khác với mô hình Model – View – Controller (MVC) thường thấy trong
các ứng dụng desktop. Ở server có nhiệm vụ đảm nhận hầu hết việc xử lý đồng thời
phải bảo mật dữ liệu. Vì client và server liên lạc với nhau qua môi trường internet mà
91
trong mô hình MVC, View có khả năng cập nhật trực tiếp dữ liệu xuống model : các dữ
liệu này thường cần được bảo vệ nhưng lại phải truyền đi truyền lại nhiều lần trên
internet nên hiển nhiên độ an toàn sẽ giảm. Có thể thấy mô hình MVC không thích hợp
cho ứng dụng dịch vụ web phục vụ client di động như đồ án đang cần xây dựng.
Ngoài việc chia nhỏ xử lý để nhiều thành phần thuộc lớp trên có thể sử dụng cùng một
thành phần của lớp dưới – có sử dụng lại kết quả xử lý trước đó nếu có, việc thiết kế
theo mô hình 3 lớp còn giúp việc bảo trì hệ thống dễ dàng hơn: lỗi sẽ dễ dàng được cô
lập và định vị nhờ việc các lớp xử lý hoàn toàn tách biệt với nhau.
17 Bảo mật
Vì môi trường liên lạc giữa client và server là qua internet, kể cả khi client là thiết bị di
động nên việc đảm bảo an toàn thông tin trên đường truyền cũng là một vấn đề. An
toàn thông tin ở đây bao gồm:
- Bảo đảm tính toàn vẹn của thông tin: thông tin nhận được ở bên đến phải giống
như lúc được truyền ở bên đi và không bị chỉnh sửa bởi bên thứ 3.
- Bảo đảm tính riêng tư: thông tin truyền đi không nên bị bên thứ 3 đọc được.
Vì các client trên di động thường chỉ hoạt động qua giao thức web – HTTP nên cách
đảm bảo bảo mật thông tin tốt nhất là dùng Secure Socket Layer (SSL) extension cho
HTTP: HTTPS. SSL sẽ mã hóa mọi dữ liệu truyền / nhận giữa client và server qua giao
thức HTTP. Tuy nhiên SSL đòi hỏi server phải có certificate of authority (CA) do một
tổ chức có thẩm quyền cấp. Certificate này được một số dịch vụ cung cấp hosting cung
cấp cho người dùng (webmaster) miễn phí; tuy nhiên trong phần lớn trường hợp người
dùng phải tự bỏ chi phí xin certificate.
Ngoài các giải pháp mã hóa có sẵn, ứng dụng có thể tự xây dựng phương thức mã hóa
riêng dựa trên các công nghệ mã hóa bằng khóa công (public key) hiện có.
92
18 An toàn (secure & reliable)
Trong tình hình an ninh mạng phức tạp như hiện nay, ứng dụng cần được thiết kế sao
cho có khả năng chịu lỗi cao nhất. Ứng dụng cần được kiểm tra cần thận trong và sau
quá trình phát triển để tránh mắc phải các lỗi bảo mật thường gặp như:
- Tràn bộ đệm.
- SQL/code injection.
- Lỗi khi xử lý chuỗi với các kí tự đặc biệt.
- Race condition.
- Mạo danh server / client.
Ngoài ra trong trường hợp ứng dụng gặp sự cố, cần đảm bảo thiệt hại với dữ liệu là ít
nhất:
- Các thao tác đọc ghi và truyền nhận nên được cá thể hóa (atomic) để khi có một
thao tác (transaction) bị hỏng thì có thể thực hiện lại chính xác thao tác đó.
- Phải xử lý lỗi tốt để khi ứng dụng gặp lỗi và không thể ghi dữ liệu, các dữ liệu
hiện có và hệ thống chạy ứng dụng phải không bị ảnh hưởng.
25 Ưu điểm của thiết kế có server
Khi đáp ứng các yêu cầu thiết kế, hệ thống sẽ có các ưu điểm của mô hình server –
client như:
- Dữ liệu được tập trung: việc sao lưu và thay đổi sẽ dễ dàng hơn. Nâng cấp phần
mềm và dữ liệu sẽ không còn là gánh nặng ở phía client.
- Quản lý tập trung: khi cần thay đổi cấu hình ứng dụng chỉ cần thực hiện tại một
93
điểm.
- Bảo mật: mọi truy cập và thao tác trên dữ liệu đều có thể quản lý và theo dõi dễ
dàng.
- Tốc độ: với các ứng dụng lớn, việc chia nhỏ các khối xử lý ra nhiều phần ngoài
việc tăng tính tái sữ dụng còn có thể cải thiện hiệu năng hệ thống do việc xử lý
có thể được đảm nhận bởi nhiều máy tính vật lý khác nhau, mỗi máy lại có thể
có các biện pháp cải thiện tốc độ khác như cache.
- Chi phí cho toàn hệ thống giảm: chi phí bảo trì trên client giảm đi nhiều do chi
phí cập nhật và cấu hình hệ thống được giảm.
2 Xây dựng hệ thống server phục vụ LBS
26 Phân tích
Vì server là nơi thực hiện đa phần tính toán, client sẽ là nơi biểu diễn kết quả nên:
- Ở server không cần phải tạo giao diện cho người dùng mà chỉ cần cung cấp giao
diện cho client sử dụng. Loại ứng dụng phù hợp nhất cho mục đích này là web
service.
- Client là thiết bị di động, có khả năng xử lý hạn chế nên chỉ gồm giao diện
người dùng và các lời gọi đến service do server cung cấp.
Vì LBS thường bao gồm GIS mà các hệ thống GIS lại khá đồ sộ nên để tiết kiệm công
sức và tập trung vào xây dựng dịch vụ, LBS có thể xử lý thông tin từ các hệ thống GIS
có sẵn. Quá trình kết hợp thông tin này gọi là Mashup.
94
19 Giới thiệu về web service
Theo W3C, dịch vụ web (web service) là:
- Một phần mềm.
- Có một địa chỉ (URI).
- Có giao diện và dữ liệu có thể được định nghĩa bằng XML.
- Có thể tương tác trức tiếp với các ứng dụng khác.
- Truyền nhận thông điệp dưới dạng XML qua các giao thức của internet.
Nói một cách khác, dịch vụ web là một tập các phương thức (method / function) có thể
được gọi thực hiện từ xa. Mỗi web service thường có một URL duy nhất và có thể nhận
lệnh / trả kết quả xử lý về qua các giao thức trên HTTP như SOAP, XML-RPC, v.v…
Web service cũng là một giải pháp công nghệ để phát triển ứng dụng theo kiến trúc
theo hướng dịch vụ. Tuy không phải là công nghệ mới mẻ (vì chỉ đơn giản dựa trên
HTTP và kết hợp với các công nghệ khác như XML), web service cũng thể hiện sự tiến
hóa không ngừng của Internet.
Web service cung cấp giao diện lập trình (API) cho các ứng dụng có khả năng sử dụng.
Chức năng truy cập đến web service được hỗ trợ trong khá nhiều ngôn ngữ hiện đại
như .NET, Java... Web service giúp tách phần trình bày ra khỏi phần xử lý bên dưới
bằng cách chuyển phần xử lý và dữ liệu lên server, chỉ để lại phần trình bày ở client.
Web service kế thừa tất cả tính chất của một ứng dụng trên Internet và còn có them
những ưu điểm mà một ứng dụng web thông thường không thể có được:
- Dễ mở rộng, đơn giản nhưng lại có thể xử lý phân tán.
- Giảm phụ thuộc ngôn ngữ và nền tảng lập trình, các ngôn ngữ có thể sử dụng
95
thành quả của nhau.
- Loose coupling: Giao thức của 2 bên được xác định rõ ràng để có thể liên lạc
với nhau. Phương thức lien lạc này thường đơn giản hơn nội dung cần trình bày
cho người dung nên dữ liệu truyền đi cần ít hơn.
- Thông qua mạng Internet: Có thể được sử dụng ở bất kì đâu, tuy nhiên cần quan
tâm đến vấn đề bảo mật.
Trên thực tế, ngoài web service chạy trên hệ thống server và client sử dụng các web
service này, còn có thêm một thành phần nữa lập danh sách các web service hiện được
cung cấp trên mạng, cho phép client có thể truy cập vào và tìm service phục vụ cho
mục đích của mình. Thành phần thứ 3 này gọi là web service broker
Hình 27 Triển khai web service
Giữa các thành phần trong hệ thống web service đã được triển khai này có thể có các
96
loại thông điệp sau:
- Publish: hệ thống cung cấp web service đăng ký mô tả về dịch vụ mà mình cung
cấp vào service registry trên web service broker.
- Find: Người dùng tìm trong service registry dịch vụ đáp ứng nhu cầu của mình.
- Bind: Người dùng sử dụng web service trong ứng dụng của mình.
20 Kiến trúc của web service trong ứng dụng LBS
Theo (Jagoe 2002), server theo mô hình 3 lớp phục vụ ứng dụng LBS có thể có kiến
trúc như sau:
Hình 28 Kiến trúc server phục vụ LBS
Ở đây, với mục đích xây dựng ứng dụng đơn giản và chưa mô hình hóa người dùng,
các thành phần như thương mại điện tử và quản lý người dùng sẽ không có trong ứng
dụng.
21 Mashup
Mashup là loại ứng dụng kết hợp dữ liệu hoặc chức năng từ nhiều nguồn bên ngoài để
tạo nên một chức năng mới, tiết kiệm được thời gian và công sức phát triển lại các chức
năng này. Hiện nay với nhiều dịch vụ được cung cấp sẵn dưới dạng web service,
mashup lại càng dễ triển khai hơn trước: developer không còn phải bận tâm tới việc
tách dữ liệu thô mà được cung cấp chính xác những gì mình cần.
97
Hình 29 Ví dụ mashup với Yahoo pipes: dùng dữ liệu từ blog kết hợp với babelfish
để tạo ra dữ liệu bằng ngôn ngữ khác
Tuy nhiên Mashup làm ứng dụng phụ thuộc nhiều vào các hệ thống bên ngoài nên khó
có thể kiểm soát độ ổn định và tính liên tục của dịch vụ tổng hợp. Do đó đối với các hệ
thống quan trọng cần tránh sử dụng mashup hoặc cung cấp thêm nhiều nguồn dữ liệu
thay thế.
Hiện các nhà cung cấp dịch vụ web lớn đều cung cấp dịch vụ Mashup để cả người dùng
bình thường và developer đều có thể sử dụng:
- Google với Mashup Editor (nay đã được tích hợp vào App Engine)
98
- Yahoo với Yahoo Pipes
- Microsoft với Microsoft Popfly
22 Các phương pháp khác
9 SAAS
Ngoài việc tự xây dựng web service phục vụ LBS như đã đề cập, hiện đã có một số
công ty cung cấp các ứng dụng LBS đóng gói sẵn, có thể được triển khai ngay đến
người dùng theo phương pháp SAAS (Software as a Service)(Mark Turner 2003). Mọi
việc liên quan đến hệ thống từ triển khai đến bảo trì đều sẽ được nhà cung cấp dịch vụ
đảm nhận. SAAS thường được triển khai dưới dạng tương tự web service, cũng ứng
dụng các công nghệ như XML, SOAP và cũng có các ưu khuyết điểm tương tự. SAAS
có thể được triển khai ở 4 mức độ khác nhau:
1. Đơn giản: mỗi người dùng sẽ có một phiên bản độc lập của ứng dụng chạy độc
lập với nhau trên server của nhà cung cấp dịch vụ. Các phiên bản này có thể khá
khác nhau giữa các người dùng do mục đích của mỗi người dùng là khác nhau.
2. Có khả năng cấu hình: người dùng có thể cấp hình ứng dụng bằng metadata,
nhiều người dùng có thể sử dụng các ứng dụng giống nhau. Ở mức này nhà cung
cấp vẫn đáp ứng được nhu cầu của tất cả các người dùng đồng thời đơn giản hóa
việc quản lý và bảo trì code.
3. Có khả năng cấu hình tốt: chỉ một phiên bản của ứng dụng có thể phục vụ tất cả
mọi người dùng, tiết kiệm thêm chi phí vận hành nhưng chưa được thiết kế để
dễ dàng mở rộng.
4. Có thể mở rộng, có thể cấu hình dễ dàng: ứng dụng SAAS được thiết kế theo mô
99
hình đa lớp, hỗ trợ cân bằng tải giữa nhiều hệ thống tương tự nhau, chạy trên
nhiều server. Nhà cung cấp dịch vụ có thể tăng hoặc giảm khả năng tính toán
bằng cách thêm vào hoặc loại bớt server mà không cần thay đổi ứng dụng.
Tuy nhiên SAAS khiến người dùng phụ thuộc khá nhiều vào nhà cung cấp dịch vụ. Để
giải quyết vấn đề này mô hình SAAS “lai” đã ra đời: người dùng có thể tự triển khai
SAAS với tài nguyên của mình và có khả năng chuyển đồi giữa dịch vụ của nhà cung
cấp và của mình khi cần thiết.
Ví dụ tiêu biểu cho việc triển khai phần mềm dưới dạng SAAS gồm có Google Docs và
Microsoft Dynamics CRM.
10 Client only
Trong một số trường hợp chẳng hạn như ứng dụng quá đơn giản hoặc việc liên lạc với
các hệ thống khác không được đảm bảo, việt thiết kế LBS tập trung vào client có thể là
lựa chọn tốt hơn.
Tuy mắc phải một số khuyết điểm như đã đề cập (tốc độ xử lý chậm, dữ liệu lưu trữ bị
giới hạn v.v…) nhưng việc đặt ứng dụng hoàn toàn trên client có thể tăng tính độc lập
cho ứng dụng (phần nào tăng độ tin cậy do không phụ thuộc vào đường truyền), giảm
nguy cơ rò rỉ thông tin (vì không cần phải liên lạc với các hệ thống khác)…
27 Ngôn ngữ
Có khá nhiều ngôn ngữ có thể dùng để phát triển web service và mỗi ngôn ngữ có thể
có những ưu khuyết điểm riêng. Ở đây đồ án chọn dùng Java.
23 Giới thiệu Java
Java là ngôn ngữ lập trình được thiết kế bởi James Gosling thuộc Sun Microsystems
vào năm 1995. Java được xây dựng với cú pháp tương tự C và C++. Tuy nhiên Java lại
100
là ngôn ngữ hướng đối tượng hoàn toàn (không hỗ trợ thủ tục như C và C++) và hỗ trợ
truy xuất các đối tượng đơn giản hơn. Năm mục tiêu chính mà java nhắm tới gồm: (Sun
microsystems 1997)
1. Đơn giản, hướng đối tượng và tạo cảm giác xa lạ với lập trình viên.
2. Ổn định và an toàn.
3. Không phụ thuộc vào nền tảng (hệ điều hành hay phần cứng) và có tính cơ động
cao.
4. Hiệu năng tốt.
5. Được thông dịch (interpreted), có khả năng đa tiểu trình (threaded) và xử lý đối
tượng động (dynamic).
Các lớp trong Java được đóng gói thành nhiều phiên bản phục vụ cho các mục đích
khác nhau, gồm:
- JavaSE (standard edition): Dành cho các ứng dụng làm việc trên máy trạm
(workstation)
- JavaEE (enterprise edition): Dành cho các ứng dụng trên server
- JavaME (micro edition): Dành cho các thiết bị di động và hệ thống nhúng
- JavaCard: Là công nghệ cho phép các ứng dụng Java nhỏ chạy trên thẻ thông
minh (smart card) mà vẫn đảm bảo về bảo mật.
Sun đã tiến hành “dân chủ hóa” Java và để cho cộng đồng developer trên thế giới quyết
định hướng phát triển của Java qua Java Community Process (JCP). Ngoài ra, một số
thành phần của Java cũng đã được release dưới các giấy phép mã nguồn mở như GPL
101
và LGPL.
24 Ưu điểm của Java
11 Là ngôn ngữ lập trình thế hệ thứ 3 (3GL) với nhiều cải tiến
Qua thiết kế hướng đối tượng của mình, Java cung cấp sẵn một framework lập trình
khá hoàn chỉnh, giúp đẩy nhanh việc phát triển ứng dụng. Ngoài ra hầu hết các IDE
Java hiện nay cho phép mô hình hóa, thiết kế giao diện và tạo (generate) code tự động –
những tính năng của một ngôn ngữ thế hệ thứ 4.
So với C và C++, Java tập trung hỗ trợ lập trình hướng đối tượng nên phát huy được
các ưu điểm của phương pháp này:
- Đơn giản và dễ hiểu: các đối tượng lập trình thường là ánh xạ của các đối tượng
trong đời thực.
- Dễ mở rộng: khả năng tái sử dụng code tốt nhờ kế thừa
- Tách biệt giữa các lớp xử lý nhờ đóng gói (encapsulation), giúp xác định vấn đề
dễ dàng hơn vì lỗi dễ được cô lập. Ngoài ra khi có thay đổi đến một phần của
ứng dụng, thay đổi đối với các phần khác cũng dễ được nhận thấy hơn.
Với các thư viện được cung cấp sẵn, Java có hỗ trợ web service, xử lý XML và mã hóa
nên tương đối lý tưởng để phát triển web service.
12 Là ngôn ngữ được thông dịch (interpreted)
Java không được biên dịch thành mã máy như các ngôn ngữ lập trình trước đó mà được
biên dịch thành mã trung gian (bytecode), mã này chỉ chứa các lệnh có thể được thực
thi bởi máy ảo Java (Java Virtual Machine – JVM). Máy ảo Java đơn giản là một ứng
dụng có nhiều phiên bản cho nhiều hệ điều hành và kiến trúc máy tính khác nhau. Khi
102
chạy ứng dụng Java, JVM sẽ thông dịch bytecode của ứng dụng thành mã máy phù hợp
với hệ máy mình chạy. Bằng cách này, ứng dụng Java có thề chạy được trên nhiều hệ
máy khác nhau mà không cần biên dịch lại – đúng như khẩu hiệu của Java “write once,
run anywhere”.
Ngoài ra nhờ biên dịch thành bytecode thay vì mã máy, nên Java còn có thể:
- Quản lý biến “động”: Các biến có thể được khởi tạo ngay trong lúc chạy để đáp
ứng đúng nhu cầu của ứng dụng, loại bỏ nhu cầu quản lý con trỏ phức tạp như
trong C. Đi kèm với tính năng này là việc quản lý lỗi linh hoạt với exception –
developer dễ dàng kiểm soát tình huống khi có lỗi xảy ra, giúp ứng dụng ổn định
hơn.
- Hỗ trợ generic: Kiểu của biến có thể được xác định khi chạy ứng dụng thay vì
phải xác định từ trước.
- Dynamic typing: Cho phép một biến có thể mang nhiều kiểu dữ liệu khác nhau.
Tính năng này sẽ được tích hợp vào phiên bản Java tiếp theo (Java 7).
- Garbage collection: Java tự động giải phóng bộ nhớ thuộc về các đối tượng
không dùng đến nên developer không cần phải quan tâm đến việc quản lý đối
tượng; từ đó loại bỏ hiện tượng rò rỉ bộ nhớ.
- JIT (Just in time) optimization: Các đoạn code tương tự nhau sẽ được phát hiện
ngay trong lúc thực thi ứng dụng và chỉ cần được biên dịch một lần, giảm thời
gian thực thi.
- Dễ dàng bảo đảm các yêu cầu về bảo mật hơn:
· Mọi lời gọi hàm, mọi tham chiếu đều có thể được kiểm tra tính hợp lệ.
103
· Biến được quản lý tự động nên không bị sai kiểu và luôn được khởi tạo
· Các phương thức và biến trong lớp được “giấu đi” qua encapsulation chỉ
có thể được gọi bởi các lớp hợp lệ.
· Mọi thao tác trên hệ thống của người dùng đều có thể được kiểm soát vì
phải thông qua JVM và sự đồng ý của người dùng.
13 Phát triển về mặt công nghệ
Java hiện là một ngôn ngữ mở với nhiều cộng đồng tham gia phát triển nhiều khía cạnh
khác nhau. Nhờ đó, ngoài bộ thư viện chuẩn Java còn có rất nhiều framework và thư
viện khác do cộng đồng phát triển phục vụ nhiều mục đích khác nhau. Một số thư viện
thậm chí còn hỗ trợ tính năng của các ngôn ngữ khác như JaQue cho phép sử dụng
LINQ (một tính năng vừa có trong .NET 3.0).
Nhờ các thư viện này developer có điểm xuất phát tốt hơn khi bắt đầu với Java.
25 Khuyết điểm của Java
Tuy là một ngôn ngữ tốt nhưng Java không tránh khỏi có khuyết điểm:
- Hỗ trợ generics chưa hoàn chỉnh: vì phải tương thích với các thư viện hỗ trợ tính
năng này trước Java 5, tất cả generics trong Java đều có kiểu “object” khi chạy
nên ứng dụng không thể biết được kiểu dữ liệu ban đầu từ biến generic.
- Không hỗ trợ số không âm (unsigned): Ứng dụng sẽ gặp khó khăn khi xử lý dữ
liệu số được truyền qua mạng (với các giao thức truyền dữ liệu nhị phân). Tuy
nhiên trong web service, dữ liệu truyền đi chủ yếu có dạng XML với thông tin
được định kiểu rõ ràng và thường không sử dụng số không âm.
- Tính toán dấu chấm động không hoàn chỉnh: Đôi khi các phép tính số thập phân
104
trong Java cho kết quả không hoàn toàn chính xác.
- Hiệu năng không cao: Vì phải qua bước thông dịch trung gian nên tốc độ của
Java chưa bằng các ngôn ngữ chạy trực tiếp như C++(Prechelt 1999). Sun hiện
vẫn đang cố cải thiện tình hình này.
26 Kết luận về Java
Dù chưa hoàn hảo nhưng các khiếm khuyết trên không ảnh hưởng nhiều lắm tới việc
dùng Java làm công cụ phát triển LBS. Java vẫn là một lựa chọn tốt.
Tuy việc phát triển trên Java tương đối không thuận tiện so với nền tảng .NET của
Microsoft (designer không hoàn thiện, giao diện phức tạp, debug đòi hỏi máy có cấu
hình mạnh vì phải chạy thêm máy ảo Java…) nhưng Java được sự hỗ trợ tốt hơn từ các
công cụ của hãng thứ ba (như Visual Paradigm chỉ chủ yếu phục vụ cho Java với nhiều
tính năng vượt trội hơn các ngôn ngữ khác). Ngoài ra, Java không ràng buộc hệ thống
với một hệ điều hành cố định như .NET bị ràng buộc với Windows (trong khi Mono -
.NET cho các hệ thống *nix vẫn chưa hoàn chỉnh).
27 Các ngôn ngữ khác có thể dùng để triển khai web service
14 ASP.NET
.NET giống với Java ở điểm cùng là ngôn ngữ được thông dịch và .NET web service có
thể hoạt động trên Linux nhờ Mono. Tuy nhiên .NET web service trên Mono không thể
sử dụng tất cả các tính năng hỗ trợ như Precompiled Website, Webparts API, Web
Service Enhancements…
Cũng như mọi sản phầm khác của Microsoft, việc phát triển web service với SOAP trên
môi trường .NET khá nhẹ nhàng, chỉ cần đánh dấu một số thuộ
Các file đính kèm theo tài liệu này:
- LBS.pdf