dieuthao94

New Member

Download miễn phí Khóa luận Tìm hiểu về location services cho di động và xây dựng ứng dụng minh họa





MỤC LỤC
Chương 1 GIỚI THIỆU26
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 Galilleo32
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ùng34
2.1.4 Cách thức định vị36
2.1.4.1 Cell identification / Cell of origin36
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 section41
2.1.4.3.2 Phương pháp định vị42
2.1.4.3.3 Các cải tiến43
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ực46
2.1.5.2 Sự khác biệt với các hệ thống định hướng và theo dõi48
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 GIS51
2.2.3 Xử lý thông tin với GIS53
2.2.3.1 Mô hình hóa dữ liệu54
2.2.3.2 Mô hình hóa các mạng lưới54
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 GIS56
2.2.4.1 Bản đồ56
2.2.4.2 Đồ họa máy tính57
2.3 Công nghệ truyền tải dữ liệu57
2.3.1 WAP/GPRS/EDGE57
2.3.2 Bluetooth/Wifi/WiMax58
2.3.3 Truyền thông vệ tinh59
Chương 3 CÁC NGHIÊN CỨU, CHUẨN VÀ ỨNG DỤNG HIỆN TẠI61
3.1 Nghiên cứu61
3.1.1 Các công ty & tổ chức nổi bật61
3.1.2 Các vấn đề mở62
3.2 Chuẩn62
3.3 Các ứng dụng thương mại64
3.3.1 Google64
3.3.2 Yahoo68
3.3.3 Vietmap69
3.3.4 DiaDiem.com70
3.3.5 Vietbando.com71
3.3.6 Vimap73
3.3.7 SMS Locator73
Chương 4 XÂY DỰNG SERVER PHỤC VỤ LBS75
4.1 Giới thiệu về server và web service75
4.1.1 Vai trò và khả năng của hệ thống server75
4.1.2 Yêu cầu cho ứng dụng trên server77
4.1.2.1 Có thể tái sử dụng, dễ bảo trì77
4.1.2.2 Bảo mật78
4.1.2.3 An toàn (secure & reliable)78
4.1.3 Ưu điểm của thiết kế có server79
4.2 Xây dựng hệ thống server phục vụ LBS79
4.2.1 Phân tích79
4.2.1.1 Giới thiệu về web service80
4.2.1.2 Kiến trúc của web service trong ứng dụng LBS82
4.2.1.3 Mashup83
4.2.1.4 Các phương pháp khác84
4.2.1.4.1 SAAS84
4.2.1.4.2 Client only85
4.2.2 Ngôn ngữ85
4.2.2.1 Giới thiệu Java86
4.2.2.2 Ưu điểm của Java87
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ến87
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 Java89
4.2.2.4 Kết luận về Java89
4.2.2.5 Các ngôn ngữ khác có thể dùng để triển khai web service90
4.2.2.5.1 ASP.NET90
4.2.2.5.2 PHP90
4.2.2.5.3 Ruby on Rails91
4.2.3 Cơ sở dữ liệu91
4.2.3.1 Giới thiệu MySQL91
4.2.3.2 MySQL spatial extension92
4.2.3.2.1 Biểu diễn dữ liệu92
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 LBS98
Chương 5 XÂY DỰNG CLIENT CHO LBS102
5.1 Định nghĩa102
5.2 Môi trường client102
5.2.1 Windows Mobile và Microsoft Auto102
5.2.2 Symbian104
5.2.3 J2ME105
5.3 Các vấn đề khi phát triển ứng dụng trên client là thiết bị di động106
5.3.1 Dữ liệu106
5.3.2 Xử lý và tốc độ107
5.3.3 Liên lạc107
5.3.4 Đồ họa108
Chương 6 XÂY DỰNG ỨNG DỤNG LBS109
6.1 Phát biểu bài toán109
6.1.1 Giới thiệu109
6.1.2 Mô tả tổng quan109
6.1.3 Sử dụng110
6.2 Phân tích yêu cầu111
6.2.1 Usecase111
6.2.1.1 Danh sách các actor111
6.2.1.2 Danh sách các usecase111
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
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ụng119
6.3.1 Công cụ, môi trường và tổng quan hệ thống119
6.3.1.1 Công cụ và môi trường119
6.3.1.2 Cơ sở dữ liệu và hoạt động của hệ thống120
6.3.2 Cơ sở dữ liệu123
6.3.3 Sơ đồ lớp mức thiết kế ở server126
6.3.3.1 Lớp LocationBasedServices128
6.3.3.2 Package business129
6.3.3.2.1 Lớp Finder129
6.3.3.2.2 Lớp Router129
6.3.3.3 Package data129
6.3.3.3.1 Lớp StreetData129
6.3.3.3.2 Lớp LocationSearchResultData129
6.3.3.3.3 Lớp StreetNodeData129
6.3.3.3.4 Lớp VenueTypeData129
6.3.3.3.5 Lớp Configuration130
6.3.3.4 Package objects130
6.3.3.4.1 Lớp LocationSearchResult130
6.3.3.4.2 Lớp StreetNode130
6.3.3.4.3 Lớp SimpleStreetNode130
6.3.3.4.4 Lớp DijkstraVertex130
6.3.3.4.5 Lớp Street130
6.3.3.4.6 Lớp Coordinate130
6.3.3.4.7 Lớp VenueType131
6.3.4 Sơ đồ lớp mức thiết kế ở client131
6.3.4.1 Các lớp trong package location based service131
6.3.4.1.1 Lớp LocationBasedService131
6.3.4.1.2 Lớp LocationBasedService_Stub132
6.3.4.1.3 Lớp LocationSearchResult, Coordinate và SimpleStreetNode132
6.3.4.2 Lớp GoogleMaps132
6.3.4.3 Lớp CloudMade132
6.3.4.4 Lớp MicroDouble132
6.3.5 Thiết kế giao diện132
6.3.5.1 Sơ đồ tương tác giữa các màn hình134
6.3.5.2 Màn hình chính135
6.3.5.3 Màn hình tìm kiếm137
6.3.5.4 Màn hình tìm kiếm theo loại địa điểm138
6.3.5.5 Màn hình kết quả tìm kiếm138
6.3.5.6 Màn hình tùy chọn ứng dụng140
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ài141
6.3.6.1 Google Maps static API & Lớp Google Map141
6.3.6.2 Cloud made routing API141
6.3.6.3 JSONObject142
6.3.6.4 MicroFloat142
6.4 Kiểm thử (testing)142
6.4.1 Acceptance system test cho server và client143
6.4.2 Unit test trên server143
6.4.2.1 LocationBasedServicesTest143
6.4.2.2 Finder test144
6.4.2.3 Router test144
6.4.2.4 LocationSearchResultData test145
6.4.2.5 StreetData test146
6.4.2.6 StreetNodeData test147
6.4.2.7 VenueTypeData test148
6.4.2.8 Coordinate test148
6.4.2.9 DijkstraVertex test149
6.4.2.10 LocationSearchResult test150
6.4.2.11 SimpleStreetNode test150
6.4.2.12 StreetNode test150
6.4.2.13 Street test151
6.4.3 Conformance test trên server151
6.4.3.1 Các test case đã thực hiện trên hàm Find152
6.4.3.2 Các test case đã thực hiện trên hàm FindFuzzy154
6.4.3.3 Các test case đã thực hiện trên hàm FindStreet154
6.4.3.4 Các test case đã thực hiện trên hàm Route155
6.4.4 Performance test trên server156
6.4.4.1 Cấu hình các hệ thống tham gia test157
6.4.4.2 Test 1: Null test157
6.4.4.3 Test 2: Các request bình thường159
6.5 Tích hợp và triển khai159
6.5.1 Client160
6.5.2 Server160
6.5.3 Mô hình triển khai thực tế nhằm đánh giá ứng dụng162
6.6 Đánh giá và so sánh163
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ác165
6.6.3.1 Kết quả chạy Google Maps166
6.6.3.2 Kết quả chạy Vimap168
6.6.3.3 Kết quả chạy SMS Locator169
6.6.3.4 Kết quả chạy ứng dụng minh họa – locations service client170
Chương 7 TỔNG KẾT173
7.1 Kết quả đạt được173
7.2 Hướng phát triển173
7.2.1 Cải thiện hiệu năng173
7.2.2 Cải thiện mô hình triển khai174
7.2.3 Thêm tính năng cho ứng dụng174
7.2.4 Tăng tính tiện dụng cho người dùng174
TÀI LIỆU THAM KHẢO175
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

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 cách 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...
 

Các chủ đề có liên quan khác

Top