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 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 …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………...

pdf202 trang | Chia sẻ: hunglv | Lượt xem: 1238 | Lượt tải: 0download
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:

  • pdfLBS.pdf
Tài liệu liên quan