Tải bản đầy đủ (.pdf) (186 trang)

XÂY DỰNG ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH CÓ CƠ SỞ DỮ LIỆU ĐÁM MÂY TRÊN MOBILE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.79 MB, 186 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG CHO
PHÉP TÌM ĐƢỜNG THÔNG MINH
CÓ CƠ SỞ DỮ LIỆU ĐÁM MÂY
TRÊN MOBILE
Ngành

: Công Nghệ Thông Tin

Niên khoá

: 2009 - 2013

Lớp

: DH09DT

Sinh viên thực hiện : Lê Công Ngà
Nguyễn Ngọc Tân

TP.HỒ CHÍ MINH, tháng 8 năm 2013


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN


LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG CHO
PHÉP TÌM ĐƢỜNG THÔNG MINH
CÓ CƠ SỞ DỮ LIỆU ĐÁM MÂY
TRÊN MOBILE
Giáo viên hƣớng dẫn: Ths. Phạm Công Thiện
Sinh viên thực hiện:

Lê Công Ngà
Nguyễn Ngọc Tân

TP.HỒ CHÍ MINH, tháng 8 năm 2013


CÔNG TRÌNH HOÀN TẤT TẠITRƢỜNG ĐẠI HỌC NÔNG
LÂM TP HCM

Cán bộ hƣớng dẫn: ThS. Phạm Công Thiện

Cán bộ phản biện: ThS. Lê Phi Hùng

Luận văn cử nhân đƣợc bảo vệ tại HỘI ĐỒNG CHẤM LUẬN VĂN CỬ NHÂN
TRƢỜNG ĐẠI HỌC NÔNG LÂM TP HCM ngày….tháng….năm….


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Bộ Giáo Dục và Đào Tạo
Trƣờng ĐH NÔNG LÂM TpHCM


Độc Lập-Tự Do-Hạnh Phúc

NHIỆM VỤ LUẬN VĂN CỬ NHÂN

Họ tên sinh viên: LÊ CÔNG NGÀ

Phái: Nam

Ngày tháng năm sinh: 17/03/1991

Nơi sinh: Hải Dƣơng

Chuyên ngành: Công Nghệ Thông Tin

Ngành: Công Nghệ Thông Tin
Phái: Nam
Nơi sinh: Đồng Tháp

I. TÊN ĐỀ TÀI: XÂY DỰNG ỨNG

Ngành: Công Nghệ Thông Tin

Họ tên sinh viên: NGUYỄN NGỌC TÂN

DỤNG CHO PHÉP TÌM ĐƢỜNG
THÔNG MINH CÓ CƠ SỞ DỮ

Ngày tháng năm sinh: 20/09/1991

LIỆU ĐÁM MÂY TRÊN MOBILE


Chuyên ngành: Công Nghệ Thông Tin

II. NHIỆM VỤ VÀ NỘI DUNG

-

Tìm hiểu và nắm vững kiến thức về MobileProgramming, Cloud Computing,
Web Service

-

Ứng dụng kiến thức đã tìm hiểu vào trong việc xây dựng ứng dụng cho phép tìm
đƣờng thông minh

III. NGÀY GIAO NHIỆM VỤ: 20/01/2013
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 09/08/2013
V. HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: ThS. PHẠM CÔNG THIỆN

Ngày…./…./….

Ngày…./…./….

Ngày…./…./….

CÁN BỘ HƢỚNG DẪN

CHỦ NHIỆM CHUYÊN NGÀNH

KHOA CNTT



LỜI CẢM ƠN

Lời đầu tiên em muốn nói là em xin chân thành cảm ơn sự hướng dẫn
tận tình của thầy Phạm Công Thiện, khoa Công Nghệ Thông Tin trường ĐH
Nông Lâm TP HCM.
Trong suốt thời gian thực hiện luận văn, mặc dù rất bận rộn trong công
việcnhưng thầy vẫn giành rất nhiều thời gian và tâm huyết trong việc hướng
dẫn em. Thầy đã cung cấp cho em rất nhiều hiểu biết vềmột lĩnh vực mới khi
em mới bắt đầu bước vào thực hiện luận văn. Trong quá trình thực hiện
luận văn thầy luôn định hướng, góp ý và sửa chữa những chỗ sai giúp em
không bị lạc lối trong biển kiến thức mênh mông.
Cho đến hôm nay, luận văn tốt nghiệp của em đã được hoàn
thành, cũng chính là nhờ sự nhắc nhở, đôn đốc, sự giúp đỡ nhiệt tình của
thầy.
Em cũng xin chân thành cảm ơn các thầy cô trong khoa Công Nghệ
Thông Tin, cũng như các thầy cô trong trường đã giảng dạy, giúp đỡ
chúng em trong 4 năm học qua. Chính các thầy cô đã xây dựng cho chúng
em những kiến thức nền tảng và những kiến thức chuyên môn để em có thể
hoàn thành luận văn này cũng như những công việc của mình sau này.


DANH MụC HÌNH
Hình 2.1.1 Amazone AWS ............................................................................................ 4
Hình 2.1.2 Các sản phẩm của Amazone AWS ............................................................... 5
Hình 2.1.3 HP Cloud Services ...................................................................................... 7
Hình 2.1.4 Các sản phẩm của HP Cloud Services .......................................................... 8
Hình 2.1.5 Các sản phẩm của HP Cloud Services .......................................................... 8
Hình 2.1.6 Các sản phẩm của HP Cloud Services ......................................................... 9

Hình 2.1.7 Các sản phẩm của HP Cloud Services .......................................................... 9
Hình 2.1.8 Các sản phẩm của HP Cloud Services ........................................................ 10
Hình 2.1.9 Windows Azure ......................................................................................... 10
Hình 2.1.10 Danh sách các sản phẩm chính của Windows Azure ................................ 11
Hình 2.1.11 Smart Cloud ............................................................................................. 12
Hình 2.1.12 Danh sách các sản phẩm của Smart Cloud ............................................... 12
Hình 2.1.13 Digital Ocean ........................................................................................... 14
Hình 2.1.14 IBM SmartCloud – Select Image.............................................................. 16
Hình 2.1.15 IBM SmartCloud – Configuration Image ................................................. 17
Hình 2.1.16 IBM SmartCloud – Verify Configuration ................................................. 17
Hình 2.1.17 IBM SmartCloud – Terms ........................................................................ 18
Hình 2.1.18 IBM SmartCloud – Cloud Server ............................................................. 18
Hình 2.1.19 Amazone AWS – Launch Instance ........................................................... 19
Hình 2.1.20 Amazone AWS – Classic Wizard ............................................................. 19
Hình 2.1.21 Amazone AWS – Choose An AMI .......................................................... 20
Hình 2.1.22 Amazone AWS – Instance Detail ............................................................. 20
Hình 2.1.23 Amazone AWS – Advanced Instance Configuration ................................ 21
Hình 2.1.24 Amazone AWS – Storage Configuration .................................................. 21
Hình 2.1.25 Amazone AWS – Set Tag ........................................................................ 22
Hình 2.1.26 Amazone AWS – create key pair ............................................................. 22
Hình 2.1.27 Amazone AWS – Security Group ............................................................ 23


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
Hình 2.1.28 Amazone AWS – Review ........................................................................ 23
Hình 2.1.29 Amazone AWS - Allocate New Address .................................................. 24
Hình 2.1.30 Amazone AWS – Set EIP......................................................................... 24
Hình 2.1.31 Amazone AWS – Elastic IP ..................................................................... 25
Hình 2.1.32 Amazone AWS - Associate Address ........................................................ 25
Hình 2.1.33 Amazone AWS - Associate Address To Server ........................................ 25

Hình 2.1.34 Amazone AWS – Cloud Server ................................................................ 26
Hình 2.1.35 Digital Ocean – Create Droplet ................................................................ 26
Hình 2.1.36 Digital Ocean – Droplet Name ................................................................. 27
Hình 2.1.37 Digital Ocean – Droplet Size.................................................................... 27
Hình 2.1.38 Digital Ocean – Droplet Region ............................................................... 28
Hình 2.1.39 Digital Ocean – Droplet Image................................................................. 28
Hình 2.1.40 Digital Ocean – Droplet Setting ............................................................... 29
Hình 2.1.41 PuttyGen – Conversions ........................................................................... 29
Hình 2.1.42 PuttyGen – Save Private Key ................................................................... 30
Hình 2.1.43 Putty – Configuration ............................................................................... 30
Hình 2.1.44 Putty – Private Key .................................................................................. 31
Hình 2.1.45 Putty – Session ......................................................................................... 31
Hình 2.1.46 Putty – Connect To Server ....................................................................... 32
Hình 2.2.1 Framework Dropwizard ............................................................................. 33
Hình 2.2.2 Thƣ viện Metrics........................................................................................ 36
Hình 4.3 Liquibase ...................................................................................................... 41
Hình 2.2.4 Freemaker .................................................................................................. 42
Hình 2.2.5 Jersey ......................................................................................................... 45
Hình 2.3.1 HTML 5 Semantic ..................................................................................... 54
Hình 2.3.2 HTML 5 Semantic ..................................................................................... 56


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
Hình 2.3.3 HTML5 Geolocation .................................................................................. 57
Hình 2.5.1 Demension jquery ...................................................................................... 74
Hình 2.6.1 Thành phần giao diện Jquery Mobile ......................................................... 82
Hình 6.1.1 Jquery mobile ............................................................................................ 84
Hình 2.8.1 bật google map api v3 service .................................................................... 94
Hình 2.8.2 Đăng ký google map api key ...................................................................... 95
Hình 2.8.4 Tạo map cơ bản ......................................................................................... 96

Hình 2.8.5 Map zoom lần lƣợt 0, 7, 18 ở Tokyo .......................................................... 98
Hình 2.8.6 Kiểu roadmap zoom 10 15 18 .................................................................... 98
Hình 2.8.7 Kiểu SATELLITE zoom 10 15 18 ............................................................. 99
Hình 2.8.7 Kiểu HYBRID zoom 10 15 18 ................................................................... 99
Hình 2.8.7 Kiểu TERRAIN zoom 10 15 18 ............................................................... 100
Hình 2.8.8 Tạo circles ............................................................................................... 101
Hình 2.8.9 Tạo polygon ............................................................................................. 103
Hình 2.8.9 Xóa Overlay............................................................................................. 104
Hình 2.8.10 Event click chuột thêm marker ............................................................... 109
Hình 2.8.11 Direction service .................................................................................... 111
Hình 2.10.2 Tạo ứng dụng Mobile HTML5 Framework ............................................ 115
Hình 2.10.3 Lựa chọn Plan cho Here Maps API ........................................................ 115
Hình 2.10.4 App id và App token cho Here Maps API .............................................. 116
Hình 2.10.5 Giao diện Here Maps API ...................................................................... 117
Hình 3.3.1 Đồ thị ý tƣởng.......................................................................................... 119
Hình 3.4.1 Từ đồng nghĩa .......................................................................................... 120
Hình 4.1.1 System Architech ..................................................................................... 122
Hình 4.2.1 Softwate Architech .................................................................................. 123
Hình 4.3.1 Database Design ...................................................................................... 124


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
Hình 4.3.2 Bảng cities ............................................................................................... 125
Hình 4.3.3 Bảng districts ........................................................................................... 126
Hình 4.3.4 Bảng locality ............................................................................................ 127
Hình 4.3.5 Bảng geofeatures ..................................................................................... 128
Hình 4.3.6 Bảng neighborhood .................................................................................. 129
Hình 4.3.7 Bảng transits ............................................................................................ 130
Hình 4.3.8 Bảng points .............................................................................................. 131
Hình 4.3.9 Bảng synonyms ........................................................................................ 132

Hình 4.3.10 Bảng antonyms ...................................................................................... 132
Hình 4.3.11 Bảng synonyms_vocabulary................................................................... 133
Hình 4.3.12 Bảng antonyms_vocabulary ................................................................... 133
Hình 4.3.13 Bảng nonsense ....................................................................................... 133
Hình 4.3.14 Bảng comparisons .................................................................................. 134
Hình 4.3.15 bảng metrics ........................................................................................... 134
Hình 4.4.1 Lƣợc đồ lớp ............................................................................................. 135
Hình 4.5.1 Lƣợc đồ sequence của chức năng tìm địa điểm ........................................ 136
Hình 4.5.2 Lƣợc đồ sequence của chức năng tìm kiếm trong database ....................... 137
Hình 4.6.1.1 Cấu hình iptables .................................................................................. 138
Hình 4.6.1.2 Thông tin iptables ................................................................................. 138
Hình 4.6.2.1 Cài đặt HTTP Server apache2 ............................................................... 139
Hình 4.6.2.2 HTTP Server Apache2 .......................................................................... 139
Hình 4.6.3.1 Cài đặt OpenJDK .................................................................................. 140
Hình 4.6.4.1 Cài đặt Tomcat 7 Server ........................................................................ 141
Hình 4.6.4.2 Tomcat 7 Server .................................................................................... 141
Hình 4.6.5.1 Cài đặt MySQL Server .......................................................................... 142
Hình 4.6.5.2 Cài đặt password cho MysQL Server .................................................... 142


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
Hình 4.6.5.3 Đăng nhập vào MySQL Server ............................................................. 143
Hình 4.6.6.1 Cài đặt upstart ....................................................................................... 143
Hình 4.6.6.2 Cấu hình WinSCP ................................................................................. 144
Hình 4.6.6.3 Giao dien WinSCP ................................................................................ 145
Hình 4.6.6.4 Upload file bằng WinSCP ..................................................................... 145
Hình 4.6.6.5 Triển khai database lên MySQL Server ................................................. 147
Hình 4.6.6.6 Cập nhật cấu hình Tomcat 7 Server ....................................................... 147
Hình 4.6.6.7 Giao diện Framework Mobile HTML5 .................................................. 148
Hình 5.2.1 Maps Semantics – giao diện chính ........................................................... 151

Hình 5.2.2 Maps Semantics – nhập truy vấn .............................................................. 153
Hình 5.2.3 Maps Semantics – kết quả trả về .............................................................. 154
Hình 5.2.4 Maps Semantics – dẫn đƣờng................................................................... 156
Hình 5.2.5 Maps Semantics – kết quả nhiều điểm...................................................... 156
Hình 5.2.6 Maps Semantics – danh sách các điểm ..................................................... 158
Hình 5.2.7 Maps Semantics - danh sách các địa điểm sẽ đi qua ................................. 159
Hình 5.2.8 Maps Semantics – Google Maps API ....................................................... 160
Hình 5.2.9 Maps Semantics – dẫn đƣờng bằng Google Maps API ............................. 160
Hình 5.2.10 Maps Semantics – địa điểm trả về Google Maps API ............................. 161
Hình 5.2.11 Maps Semantics – danh sách trả về Google Maps API ........................... 162
Hình 5.2.12 Maps Semantics – dẫn đƣờng Google Maps API.................................... 163


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

DANH MụC BẢNG
Bảng 2.1.1 so sánh giữa các nhà cung cấp Cloud Computing ...................................... 15
Bảng 2.2.1 Các phiên bản của Jetty ............................................................................. 34
Bảng 2.5.1 Selector Jquery .......................................................................................... 67
Bảng 2.5.2 Event Jquery .............................................................................................. 67
Bảng 2.6.1 các thành phần chính Jquery mobile .......................................................... 85
Bảng 2.6.2 Event jquery mobile .................................................................................. 85
Bảng 2.8.1 Function map ........................................................................................... 101
Bảng 2.10.1 so sánh Google Maps API và Here Maps API........................................ 114


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

DANH SÁCH CHữ VIếT TắT
IaaS


Infrastructure as a Service

PaaS

Platform as a Service

SaaS

Software as aService

MH5

Mobile HTML5 Framwork


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

TÓM TẮT LUẬN VĂN
ĐỀ TÀI LUẬN VĂN TỐT NGHIỆP
Tên đề tài: XÂY DỰNG ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH CÓ
CƠ SỞ DỮ LIỆU ĐÁM MÂY TRÊN MOBILE
Các vấn đề nghiên cứu:
Đề tài đƣợc thực hiện với mục tiêu tìm hiểu mô hình điện toán đám mây, các công nghệ
web trên nền tảng mobile, công nghệ xử lý ngữ nghĩa. Hệ thống cung cấp khả năng tìm
kiếm địa điểm và dẫn đƣờng dựa trên các truy vấn có ngữ nghĩa của ngƣời dùng.
Để xây dựng đƣợc ứng dụng, đề tài đã nghiên cứu một số công nghệ sau:
 Cloud Computing (Điện toán đám mây)
-


Tìm hiểu về Cloud Computing.

-

Tìm hiểu một số nhà cung cấp Cloud Computing hiện nay.

-

Tìm hiểu cách xây dựng dịch vụ IaaS trên Cloud của một số nhà cung cấp Cloud
Computing.
Triển khai Server Restful Web Service trên Cloud của Digital Ocean.

-

 Semantics (ngữ nghĩa)
-

Tìm hiểu về Semantics.

-

Xây dựng cở sở dữ liệu Semantics.

-

Xây dựng khả năng xử lý các truy vấn có ngữ nghĩa trong ứng dụng.

 Framework Dropwizard
-


Tìm hiểu về framework Dropwizard.

-

Tìm hiểu các công nghệ trong framework Dropwizard.

-

Đánh giá framework Dropwizard.

-

Tìm hiểu về Restful Web Service.

-

Xây dựng server Restful Web Service bằng framework Dropwizard.

 HTML5
-

Tìm hiểu HTML 5.

-

Tích hợp HTML5 vào trong dựng ứng dụng.

 AJAX
-


Tìm hiểu về AJAX.


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
-

Xây dựng chức năng lấy dữ liệu JSON từ Restful Web Service bằng AJAX.

 JQUERY
-

Tìm hiểu về JQUERY.

-

Ứng dụng JQUERY vào trong ứng dụng.

 JQUERY
-

Tìm hiểu về JQUERY MOBILE

-

Ứng dụng JQUERY vào trong ứng dụng.

 KML
-

Tìm hiểu về KML


-

Xây dựng hàm đọc dữ liệu từ file KML và ghi xuống MySQL

 ANDROID
-

Tìm hiểu về Android.

-

Tìm hiểu về component Webview trong Android.

-

Xây dựng một phiên bản của ứng dụng trên Android.

 Google Maps API
-

Tìm hiểu về Google Maps API.

-

Tìm hiểu về Google Maps JavaScript API v3.

-

Xây dựng ứng dụng dựa trên bản đồ của Google Maps JavaScript API v3.


 Here Maps APIs
-

Tìm hiểu về Here Maps APIs.

-

Tìm hiểu về Here Maps Mobile HTML5 Framework.

-

Xây dựng ứng dụng dựa trên Here Maps Mobile HTML5 Framework.

Một số phƣơng pháp nghiên cứu trong luận văn:
 Để thực hiện đề tài, chúng tôi chủ yếu tìm hiểu và thu thập các thông tin, công nghệ
trên mạng Internet.
 Tìm hiểu một số bài báo khoa học và liên hệ trực tiếp với chuyên gia để tìm hiểu
thêm về vấn đề xử lý ngữ nghĩa
 Về vấn đề dữ liệu bản đồ chúng tôi đã liên hệ trực tiếp với google để xin dữ liệu bản
đồ của Việt Nam và trích xuất thêm một phần từ ứng dụng Google Earth.
 Ngoài ra, chúng tôi còn áp dụng một số kỹ thuật lập trình có đƣợc trong thời gian
làm việc tại các công ty phần mềm lớn nhƣ FPT Software và TMA Solutions.


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
Kết quả đạt đƣợc:
 Ứng dụng bản đồ trên mobile. Giúp ngƣời dùng tìm địa điểm và hỗ trợ dẫn đƣờng
dựa trên các truy vấn có ngữ nghĩa.



ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

MỤC LỤC
GIỚI THIỆU .......................................................................................1
1.1

Lý do chọn đề tài .................................................................................... 1

1.2

Phạm vi nghiên cứu ............................................................................... 1

1.3

Nội dung nghiên cứu:............................................................................. 1

2. CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI ...........................3
2.1

Cloud Computing ................................................................................... 3

2.1.1

Tìm hiểu về Cloud Computing ................................................................. 3

2.1.2

Thế mạnh Cloud Computing so với máy chủ vật lý truyền thống.............. 3


2.1.3

Tìm hiểu một số nhà cung cấp dich vụ Cloud Computing ......................... 4

2.1.3.1

Amazone AWS ................................................................................... 4

2.1.3.2

HP Cloud Services .............................................................................. 7

2.1.3.3

Windows Azure ................................................................................ 10

2.1.3.4

Smart Cloud ...................................................................................... 12

2.1.3.5

Digital Ocean .................................................................................... 13

2.1.3.6

Bảng so sánh tổng quát giũa các nhà cung cấp Cloud Computing...... 15

2.1.4 Tìm hiểu cách xây dựng dịch vụ IaaS trên Cloud của một số nhà cung cấp
Cloud Computing ............................................................................................... 16

2.1.4.1

Tạo một Server IaaS trên Cloud Server của IBM............................... 16

2.1.4.2

Tạo một Server IaaS trên Cloud Server của Amazone AWS.............. 19

2.1.4.3

Tạo một Server IaaS trên Cloud Server của Digital Ocean ................ 26

2.1.5

2.2

Kết nối tới Cloud Server thông qua SSH bằng Putty ............................... 29

FRAMEWORK DROPWIZARD ....................................................... 33

2.2.1

Tìm hiểu về Framework Dropwizard ...................................................... 33

2.2.2

Các công nghệ trong Framework Dropwizard ........................................ 33

2.2.2.1


Jetty .................................................................................................. 34

2.2.2.2

Jackson ............................................................................................. 34

2.2.2.3

Metrics .............................................................................................. 35


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
2.2.2.4

Guava................................................................................................ 36

2.2.2.5

Logback ............................................................................................ 36

2.2.2.6

Hibernate .......................................................................................... 37

2.2.2.7

JDBI ................................................................................................. 38

2.2.2.8


YAML .............................................................................................. 39

2.2.2.9

Liquibase .......................................................................................... 40

2.2.2.10 Freemaker ......................................................................................... 41
2.2.2.11 Joda Time ......................................................................................... 42
2.2.2.12 Maven ............................................................................................... 43
2.2.2.13 Jersey ................................................................................................ 44
2.2.3

Tìm hiểu về Restful Web Service ........................................................... 45

2.2.3.1

Xây dựng Server Restful Web Service bằng framework Dropwizard 46

2.2.3.1.1 Thiết lập maven ............................................................................. 46
2.2.3.1.2 Tạo lớp cấu hình (configuration class) ........................................... 46
2.2.3.1.3 Tạo một lớp dịch vụ ...................................................................... 47
2.2.3.1.4 Tạo một lớp representation ............................................................ 48
2.2.3.1.5 Tạo một lớp resource ..................................................................... 49
2.2.3.1.6 Đăng ký một resource .................................................................... 50
2.2.3.1.7 Tạo một lớp health check .............................................................. 50
2.2.3.1.8 Thêm một lớp health check vào dịch vụ ........................................ 51
2.2.3.1.9 Định nghĩa phiên bản cho dịch vụ ................................................. 51
2.2.3.1.10 Chạy dịch vụ của bạn .................................................................. 52

2.3


HTML 5 ................................................................................................ 53

2.3.1

Giới thiệu về HTML 5 ............................................................................ 53

2.3.2

Những tính năng chính của HTML 5 ...................................................... 53

2.3.2.1

The canvas element ........................................................................... 53

2.3.2.2

Local storage ..................................................................................... 53

2.3.2.3

Web workers ..................................................................................... 53


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
2.3.2.4

Drag and Drop .................................................................................. 54

2.3.2.5


Semantic HTML ............................................................................... 54

2.3.3

2.4

Geolocation ............................................................................................ 56

AJAX - JQUERY ................................................................................. 58

2.4.1

Giới thiệu ajax ........................................................................................ 58

2.4.2

Cách sử dụng.......................................................................................... 58

2.5

JQUERY............................................................................................... 61

2.5.1

Giới Thiệu Jquery................................................................................... 61

2.5.2

Ƣu Điểm Jquery ..................................................................................... 61


2.5.3

Công Dụng JQuery ................................................................................. 62

2.5.4

Cách Sử Dụng ........................................................................................ 63

2.5.5

Thành Phần Chính Jquery....................................................................... 64

2.5.5.1

Jquery Selectors ................................................................................ 64

2.5.5.1.1 Element Selector ........................................................................... 65
2.5.5.1.2 Id Selector ..................................................................................... 65
2.5.5.1.3 Class Selector ................................................................................ 66
2.5.5.2

Jquery Event ..................................................................................... 67

2.5.5.2.1 Click Event.................................................................................... 68
2.5.5.2.2 Double Click Event ....................................................................... 68
2.5.5.2.3 Mouseenter Event .......................................................................... 68
2.5.5.2.4 Mouseleave Event ......................................................................... 68
2.5.5.3


jQuery HTML ................................................................................... 68

2.5.5.3.1 Jquery Get ..................................................................................... 69
2.5.5.3.2 Jquery Set ...................................................................................... 70
2.5.5.3.3 Jquery Add .................................................................................... 71
2.5.5.3.4 Jquery Remove. ............................................................................. 71
2.5.5.4

Jquery CSS Classes ........................................................................... 72

2.5.5.4.1 Add CSS Classes ........................................................................... 72


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
2.5.5.4.2 Remove CSS Classes ..................................................................... 73
2.5.5.5

jQuery CSS ....................................................................................... 73

2.5.5.5.1 Get CSS ........................................................................................ 73
2.5.5.5.2 Set CSS ......................................................................................... 73
2.5.5.6

Jquery Demension ............................................................................. 74

2.5.5.7

Jquery Effects ................................................................................... 75

2.5.5.7.1 Jquery Hide and Show ................................................................... 75

2.5.5.7.2 Jquery Fade ................................................................................... 75
2.5.5.7.3 Jquery slide ................................................................................... 77
2.5.5.7.4 Jquery Animate ............................................................................. 77

2.6

Jquery Mobile. ..................................................................................... 79

2.6.1

Giới Thiệu .............................................................................................. 79

2.6.2

Đặc Điểm Jquery Mobile ........................................................................ 80

2.6.3

Các dặc tính cơ bản của JQuery Mobile.................................................. 80

2.6.4

Jquery hỗ trợ đa nền tảng: ...................................................................... 81

2.6.5

Các thành phần giao diện Jquery hỗ trợ .................................................. 81

2.6.6


Cách sử dụng Jquery .............................................................................. 83

2.7

2.6.6.1

Bắt Đầu Với Jquery Mobile............................................................... 83

2.6.6.2

Các thuộc tính data-* của HTML5 .................................................... 84

2.6.6.3

Function và Event hỗ trợ .................................................................. 85

KML File .............................................................................................. 87

2.7.1

Giới Thiệu File KML ............................................................................. 87

2.7.2

Đọc file KML và Lƣu vào Database ....................................................... 87

2.8

GOOGLE MAP API v3 ....................................................................... 93


2.8.1

Giới thiệu GOOGLE MAP API .............................................................. 93

2.8.2

Các Thành phần Chính ........................................................................... 93

2.8.3

Bắt đầu với Google Maps API ................................................................ 93

2.8.3.1
2.8.4

Tạo basic map ................................................................................... 95

Overlay ................................................................................................ 101


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
2.8.4.1

Tạo Circles ...................................................................................... 101

2.8.4.2

Tạo Simple Polygon ........................................................................ 103

2.8.4.3


Xóa Overlay .................................................................................... 104

2.8.5

Event .................................................................................................... 107

2.8.6

Direction service .................................................................................. 110

2.9

Thƣ viện Viettokenizer ...................................................................... 112

2.9.1

Giới thiệu ............................................................................................. 112

2.9.2

Ví dụ sử dụng Viettokenizer để tách từ trong tiếng việt ........................ 112

2.10

Here Maps API ............................................................................... 113

2.10.1 Giới thiệu về Here Maps API ............................................................... 113
2.10.2 Here Maps Mobile HTML5 Framework ............................................... 114
2.10.3 Sử dụng Mobile HTML5 Framework của Here Maps ........................... 114


3. SEMANTIC ...............................................................................118
3.1

Giới thiệu SEMANTICS .................................................................... 118

3.2

SEMANTICS Searching .................................................................... 118

3.3

Conceptual Graph.............................................................................. 118

3.4

Từ đồng nghĩa và từ trái nghĩa ......................................................... 119

3.5

Cách xử lý các truy vấn ngữ nghĩa trong đề tài ............................... 120

4. Phân tích thiết kế và triển khai hệ thống.................................122
4.1

Kiến trúc hệ thống ............................................................................. 122

4.2

Kiến trúc phần mềm .......................................................................... 123


4.3

Lƣợc đồ cơ sở dữ liệu ......................................................................... 124

4.4

Lƣợc đồ lớp ........................................................................................ 135

4.5

Lƣợc đồ sequence ............................................................................... 136

4.6

Triển khai hệ thống ............................................................................ 138

4.6.1

Cấu hình FireWall ................................................................................ 138

4.6.2

Cài đặt HTTP Server ............................................................................ 139

4.6.3

Cài đặt OpenJDK ................................................................................. 140



ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
4.6.4

Cài đặt Tomcat 7 Server ....................................................................... 140

4.6.5

Cài đặt MySQL Server ......................................................................... 142

4.6.6

Triển khai ứng dụng trên Server ........................................................... 143

5. KẾT QUẢ ĐẠT ĐƢỢC và hƣớng phát triển..........................149
5.1

Kết quả đạt đƣợc về kiến thức .......................................................... 149

5.2

Sản phẩm của đề tài ........................................................................... 149

5.3

Hạn chế của sản phẩm ..................................................................... 164s

5.4

Hƣớng phát triển ............................................................................... 164



ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

CHƢƠNG 1
GIỚI THIỆU
1.1 Lý do chọn đề tài
Hiện nay trên thị trƣờng có rất nhiều ứng dụng bản đồ nhƣ google maps, here
maps, vietbando, diadiem,... nhƣng chƣa hỗ trợ ngƣời dùng tìm kiếm địa điểm và dẫn
đƣờng có ngữ nghĩa (ngôn ngữ tự nhiên). Nên vẫn chƣa hỗ trợ tối đa cho ngƣời dùng
khi sử dụng bản đồ đặc biệt là tìm kiếm địa điểm.
Chính vì thế, chúng tôi với sự hƣớng dẫn của ThS. Phạm Công Thiện đã xây dựng
một ứng dụng bản đồ hỗ trợ ngƣời dùng tìm kiếm địa điểm có ngữ nghĩa.
1.2 Phạm vi nghiên cứu
Đề tài nghiên cứu về các vấn đề liên quan đến Cloud Computing (điện toán đám
mây), kỹ thuật lập trình Web Service, kỹ thuật lập trình HTML5, AJAX, JQUERY trên
mobile. Nhằm xây dựng đƣợc một ứng dụng bản đồ chạy trên mobile web không phụ
thuộc vào bất cứ hệ điều hành di động nào.
1.3 Nội dung nghiên cứu:
CLOUD COMPUTING
 Phần 1: Tìm hiểu về Cloud Computing.
 Phần 2: Thế mạnh của Cloud Computing so với máy chủ truyền thống.
 Phần 3: Tìm hiểu một số nhà cung cấp Cloud Computing hiện nay.
 Phần 4: Tìm hiểu cách xây dựng dịch vụ IaaS trên Cloud của một số nhà cung
cấp Cloud Computing
 Phần 5: Xây dựng Server trên Cloud của Digital Ocean.
FRAMEWORK DROPWIZARD
 Phần 1: Tìm hiểu về framework Dropwizard
 Phần 2: Tìm hiểu các công nghệ trong framework Dropwizard
 Phần 3: Tìm hiểu về Restful Web Service
GVHD: ThS. Phạm Công Thiện


1

SVTH: Lê Công Ngà
Nguyễn Ngọc Tân


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
 Phần 4: Xây dựng Restful Web Service bằng framework Dropwizard
HTML5
 Phần 1: Tìm hiểu về HTML5
 Phần 2: Ứng dụng HTML5 trong vào việc xây dựng ứng dụng.
AJAX
 Phần 1: Tìm hiểu về AJAX
 Phần 2: Xây dựng chức năng lấy dữ liệu JSON từ Restful Web Service bằng
ajax.
JQUERY
 Phần 1: Tìm hiểu JQUERY mobile
 Phần 2: Xây dựng các hàm JQUERY làm việc với Google Maps API
KML
 Phần 1: Tìm hiểu về KML
 Phần 2: Viết hàm đọc dữ liệu từ file KML và ghi xuống database MySQL.
GOOGLE MAPS API
 Phần 1: Tìm hiểu về Google Maps API
 Phần 2: Tìm hiểu về Google Maps JavaScript API v3
 Phần 3: Xây dựng ứng dụng dựa trên bản đồ của Google Maps JavaScript API
v3
Here Maps APIs
 Phần 1: Tìm hiểu về Here Maps API
 Phần 2: Tìm hiểu về Here Maps Mobile HTML5 Framework

 Phần 3: Xây dựng ứng dụng dựa trên bản đồ của Here Maps Mobile HTML5
Framework
Ứng Dụng SEMANTICS
 Phần 1: Tìm hiểu về semantics
 Phần 2: Xây dựng cơ sở dữ liệu semantics

GVHD: ThS. Phạm Công Thiện

2

SVTH: Lê Công Ngà
Nguyễn Ngọc Tân


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE

CHƢƠNG 2
2. CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI
2.1 Cloud Computing
2.1.1 Tìm hiểu về Cloud Computing
Cloud Computing có thể đƣợc diễn giải một cách đơn giản: các nguồn điện toán
khổng lồ nhƣ phần mềm và các dịch vụ sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng (trên mặt đất) để mọi ngƣời kết nối
và sử dụng mỗi khi họ cần.
Với các dịch vụ sẵn có trên Internet, doanh nghiệp không phải mua và duy trì hàng
trăm, thậm chí hàng nghìn máy tính cũng nhƣ phần mềm. Họ chỉ cần tập trung vào kinh
doanh lĩnh vực riêng của mình bởi đã có ngƣời khác lo cơ sở hạ tầng và công nghệ
thông tin thay họ.
Cloud Computing đƣợc chia làm 3 dạng chính:
- SaaS: Software as a Service
- PaaS: Platform as a Service

- IaaS: Infrastructure as a Service
2.1.2 Thế mạnh Cloud Computing so với máy chủ vật lý truyền thống
Giảm chi phí: Cloud loại bỏ sự cần thiết của ngƣời dùng trong việc đầu tƣ quá
nhiều chi phí vào các máy chủ độc lập hoặc những phần mềm nhƣng chƣa thực sự tận
dụng đƣợc hết. Khi công nghệ thay đổi, các máy chủ vật lý hoặc phần mềm sẽ mau
chóng lỗi thời và đòi hỏi phải đƣợc thay thế dẫn đến chi phí đầu tƣ ngày càng lớn so với
lợi ích đem lại. Cloud Computing sẽ giải quyết vấn đề thay thế phần cứng cũng nhƣ
phần mềm vì luôn luôn đƣợc cập nhật và sử dụng những công nghệ mới nhất.
Khả năng mở rộng và tốc độ: Doanh nghiệp không cần đầu tƣ thời gian vào việc
mua và thiết lập phần cứng, phần mềm và các tài nguyên cần thiết khác khi cần triển
khai một ứng dụng mới trên server. Họ có thể dễ dàng mở rộng hoặc thu hẹp dịch vụ
Cloud Computing đúng nhƣ theo nhu cầu sử dụng thực tế. Dịch vụ Cloud Computing
GVHD: ThS. Phạm Công Thiện

3

SVTH: Lê Công Ngà
Nguyễn Ngọc Tân


ỨNG DỤNG CHO PHÉP TÌM ĐƢỜNG THÔNG MINH TRÊN MOBILE
rất đáng tin cậy vì hầu hết các nhà cung cấp dịch vụ có nhiều trung tâm dữ liệu gần
ngƣời dùng nên tốc độ đáp ứng đƣợc đảm bảo đối với ngƣời dùng ở bất cứ đâu.
Sao lƣu và phục hồi: Vì tất cả dữ liệu đƣợc lƣu trữ trên Cloud nên việc sao lƣu và
phục hồi nó dễ dàng hơn so với sao lƣu và phục hồi trên máy chủ vật lý. Hơn nữa, hầu
hết các nhà cung cấp dịch vụ Cloud Computing thƣờng đủ khả năng xử lý việc khôi
phục dữ liệu khi gặp vấn đề. Do đó, điều này làm cho toàn bộ quá trình sao lƣu và phục
hồi đơn giản hơn nhiều so với phƣơng pháp lƣu trữ dữ liệu truyền thống.
Thuận lợi: Chia sẻ cơ sở hạ tầng và chi phí đem lại chi phí thấp và tính sắn sàng
của các dịch vụ trên Cloud Computing. Chi tiết về giá cả đƣợc các nhà cung cấp dịch

vụ Cloud Computing cung cấp sẵn hoặc dịch vụ để tính toán.
2.1.3 Tìm hiểu một số nhà cung cấp dich vụ Cloud Computing
2.1.3.1 Amazone AWS
Amazone là nhà cung cấp dịch vụ Cloud Computing lớn nhất hiện nay, bắt đầu đi
vào hoạt động năm 2006.

Hình 2.1.1 Amazone AWS

GVHD: ThS. Phạm Công Thiện

4

SVTH: Lê Công Ngà
Nguyễn Ngọc Tân


×