3.2.1. Đặt bài toán và mô tả thuật toán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Bài toán đặt ra là: “Phát triển dịch vụ vị trí trên nền tảng điện toán đám mây
trong việc tìm kiếm các trạm xăng, cây ATM, siêu thị… xung quanh một vị trí trên bản đồ”.
Mô tả thuật toán[8]
- Quy trình đăng ký: Khi một ngƣời dùng đi vào vùng phủ sóng của một nhà
cung cấp dịch vụ, ngƣời dùng đăng ký với nhà cung cấp dịch vụ đó để đƣợc truy xuất vào các dịch vụ mà mình mong muốn. Ngƣời dùng sẽ nhập các thông tin của mình để đăng ký và nhà cung cấp dịch vụ dựa trên vị trí sẽ gán cho ngƣời dùng đó một userID.
- Xác thực người dùng: Nhà cung cấp dịch vụ LSP thực hiện việc chứng thực
khi có một khách hàng đăng ký dịch vụ của mình. Nếu ngƣời dùng đƣợc xác thực, LSP sẽ cung cấp một danh sách các dịch vụ cho khách hàng đó. Và khách hàng sẽ lựa chọn một dịch vụ trong số các dịch vụ đã đƣợc liệt kê. Danh sách này bao gồm tất cả các dịch vụ mà khách hàng đã đƣợc đăng ký và có sẵn ở khu vực hiện tại của khách hàng. Mỗi khu vực có những đám mây có thể cung cấp các dịch vụ tới khách hàng của mình và khách hàng có thể truy cập vào các dịch vụ đã đăng ký trực tiếp từ những đám mây này. Với những dịch vụ chƣa đăng ký, khách hàng cần liên lạc tới các đám mây có ở từng vị trí. Điều này sẽ đƣợc giải thích rõ hơn trong phần mã giả đƣợc nêu ra ở Thuật toán 1.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
- Xác định vị trí người dùng: Ở thuật toán 2, vị trí của ngƣời dùng đƣợc xác định
thông qua RFID hoặc GPS. Khi một ví trí đƣợc xác định cụ thể, hàng loạt ngƣời dùng trên cùng vị trí đó sẽ đƣợc tính toán. Thực hiện tính toán xong, vị trí gắn với một ngƣời dùng cụ thể sẽ đƣợc gửi tới LSP.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
- Tìm kiếm và lọc thông tin xung quanh một vị trí: Ở thuật toán 3, vị trí của
ngƣời dùng đƣợc trả về từ thuật toán 2 đƣợc sử dụng làm tham số để xác định danh sách tất cả các cửa hàng, siêu thị, địa điểm… có ở khu vực đó.
- Trả về kết quả: Ở thuật toán 4, trong số danh sách các cửa hàng, siêu thị, trạm
xăng…đƣợc liệt kê có trong khu vực đó, LSP sẽ kiểm tra xem ngƣời dùng có quyền sử dụng các dịch vụ đó hay không. Đối với các dịch vụ mà ngƣời dùng đƣợc cấp phép, một danh sách các địa điểm tƣơng ứng sẽ đƣợc liệt kê và gửi tới khách hàng.
Mục đích chính của chúng ta là cung cấp một dịch vụ dựa trên vị trí động và tăng tính chính xác của thông tin truy cập đƣợc giới hạn trên màn hình điện thoại bằng cách truy cập vào ứng dụng trên đám mây. Mỗi vị trí cho phép cung cấp rất nhiều dịch vụ. Mỗi vị trí cũng có nhiều đám mây. Các đám mây này lƣu trữ các thông tin liên quan tới các địa điểm nhƣ: loại địa điểm, địa chỉ… Chúng ta sẽ chia toàn bộ hệ thống ra thành những module nhỏ khác nhau trên hệ thống đó.
Trên đây là yêu cầu của bài toán cho một hệ thống LBS chuẩn mực. Tuy nhiên, trong khuôn khổ luận văn cũng nhƣ hạn chế về tài chính, phƣơng tiện kỹ thuật, tác giả chỉ phát triển đƣợc những nội dung chính trong hoạt động của hệ thống mà bỏ qua các bƣớc đăng nhập, xác thực ngƣời dùng trong một khuôn viên, khu vực nhất định.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
3.2.2. Phân tích hệ thống
Với yêu cầu của bài toán,hệ thống cần đáp ứng đƣợc các yêu cầu sau: - Sử dụng công nghệ điện toán đám mây để phát triển hệ thống. - Có các chức năng cơ bản của một ứng dụng bản đồ số
- Có một nguồn dữ liệu riêng bên cạnh nguồn dữ liệu của Google về các điểm đặt siêu thị, nhà hàng, trạm xăng, ATM… và cung cấp chức năng quản trị nguồn dữ liệu riêng đó.
- Cho phép chuyển đổi khoảng cách địa lý (tọa độ: kinh độ, vĩ độ) về khoảng cách hình học (kilomet).
- Việc tìm kiếm các địa điểm theo yêu cầu cho phép lấy dữ liệu từ đám mây để trả về kết quả.
- Việc sử dụng hệ thống đối với các thiết bị cầm tay di động cần có định vị GPS và có kết nối mạng (GPRS, 3G hoặc Wifi); đối với thiết bị sử dụng trình duyệt thì yêu cầu có kết nối mạng Internet.
3.2.3. Thiết kế hệ thống
Với bài toán đặt ra đƣợc phân tích ở trên, hệ thống thiết kế chia làm 02 module chính bao gồm: Module trên Server và Module trên Client, trong đó:
Module Server: là ứng dụng web (web application) cung cấp các dịch vụ
khai thác dữ liệu đƣợc chạy trực tuyến trên Internet, có khả năng:
- Truy vấn thông tin vị trí các điểm có siêu thị, nhà hàng, trạm xăng…
- Lƣu trữ và quản lý thông tin địa lý các điểm có siêu thị, nhà hàng, trạm xăng…
- Cập nhật dữ liệu cho hệ thống.
- Đƣợc đặt trên máy chủ của Google, đƣợc cài đặt và duy trì thông qua GAE. Công nghệ sử dụng: Java Serverlet, Javascript, Google Maps Javascript API v3, Google Maps Services, Google Cloud Datastore API.
Module Client:là một ứng dụng dạng .apk chạy trên thiết bị di động cài đặt
hệ điều hành Android có khả năng:
- Cung cấp thông tin về vị trí hiện tại
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ - Dẫn đƣờng đến vị trí ngƣời dùng mong muốn
- Đƣợc cài đặt dƣới dạng các ứng dụng Android.
Sơ đồ mô hình của hệ thống đƣợc mô tả nhƣ trong hình 3.1 dƣới đây:
Hình 3. 1: Mô hình hệ thống
3.2.3.1. Công cụ sử dụng
Hệ thống đƣợc phát triển trên nền tảng các công nghệ sau:
Công nghệ lƣu trữ: Trong phần demo tác giả sử dụng hệ thống quản lý dữ liệu
phẳng Google Cloud Datastore. Là một công nghệ quản lý dữ liệu dạng đối tƣợng miễn phí, luôn sẵn sàng đối với ngƣời dùng.
Công nghệ lập trình giao tiếp với CSDL Cloud Datastore: Java Servlet là thành phần chính đƣợc sử dụng để phát triển các chƣơng trình dịch vụ Java ở phía máy chủ. Các Servlet là các chƣơng trình Java thực hiện ở các ứng dụng Server (tên gọi
“Servlet” cũng gần giống như “Applet” ở phía máy Client) để trả lời cho các yêu cầu
của Client. Các Servlet không bị ràng buộc chặt với một giao thức Client-Server cụ thể nào cả, nhƣng giao thức thƣờng đƣợc sử dụng là HTTP, do vậy, khi nói tới Servlet nghĩa là nói tới HTTP Servlet. Servlet là sự phát triển mở rộng của CGI để đảm bảo Server thực hiện đƣợc các chức năng của mình. Có thể sử dụng Servlet của Java để tuỳ chỉnh lại một dịch vụ bất kỳ, nhƣ Web Server, Mail Server, v.v.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Web Server hiển thị các tƣ liệu đƣợc viết trong HTML và hồi đáp cho yêu cầu của ngƣời sử dụng qua HTTP. Các tƣ liệu HTML chứa các văn bản đƣợc đánh dấu (định dạng) để các trình duyệt nhƣ Google Chrome, Internet Explorer, Netscape… đọc đƣợc.Nhƣ vậy với Serverlet rất dễ dàng cho phép tác giả giao tiếp với CSDL Google Cloud Datastore, trả về dữ liệu cho ngƣời dùng một cách nhanh chóng.
Công nghệ lập trình ứng dụng chạy trên Android: Java là một ngôn ngữ lập
trình dạng lập trình hƣớng đối tƣợng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thƣờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đƣợc thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đƣợc môi trƣờng thực thi chạy.
Đặc điểm nổi bật nhất của Java là không phụ thuộc vào hệ điều hành và bộ xử lý. Điều này cho phép một ứng dụng viết bằng Java có thể đƣợc thực hiện trên bất kỳ hệ điều hành và hệ xử lý nào có hỗ trợ Java. Do vậy, nó đƣợc chọn cho việc xây dựng ứng dụng trên Android. Tuy nhiên ngƣời phát triển ứng dụng trên Android chỉ sử dụng 1 phần nhỏ thƣ viện J2EE đƣợc xem là máy ảo Dalvik.
3.2.3.2. Biểu đồ Ca sử dụng (Use case) của hệ thống
a. Các tác nhân và các pha sử dụng
Hệ thống có hai nhóm tác nhân chính là Nhà quản trị (Admin) và Ngƣời dùng cuối (Thiết bị). Trong đó:
- Nhà quản trị (Admin): có nhiệm vụ quản trị toàn bộ hệ thống, cập nhật và chỉnh sửa dữ liệu về các cửa hàng, trạm xăng, cây ATM, dữ liệu về Ngƣời dùng cuối. Nhà quản trị là nhóm tác nhân có quyền sử dụng cao nhất trong hệ thống, có các pha sử dụng chính nhƣ sau:
+ Đăng nhập
+ Quản trị dữ liệu các cửa hàng, trạm xăng, siêu thị… + Tìm kiếm thông tin
+ Hiển thị bản đồ + Quản lý trang tin
- Ngƣời dùng cuối (Thiết bị): là nhóm tác nhân chỉ đƣợc sử dụng các chức năng của hệ thống thông qua các thiết bị di động có GPS và Internet. Nhóm Ngƣời dùng cuối có các pha sử dụng nhƣ sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
+ Truy vấn địa điểm và thông tin về các địa điểm này đồng thời dẫn đƣờng tới các điểm đó.
Biểu đồ Use case tổng quát của toàn hệ thống đƣợc mô tả nhƣ hình 3.3:
b. Biểu đồ Ca sử dụng Quản trị dữ liệu các địa điểm
Hình 3. 2: Biểu đồ ca sử dụng quản trị dữ liệu các địa điểm
c. Biểu đồ Ca sử dụng Hiển thị bản đồ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
d. Biểu đồ Ca sử dụng Truy vấn địa điểm
Hình 3. 4: Biểu đồ ca sử dụng truy vấn địa điểm
3.2.3.3. Biểu đồ triển khai hệ thống
Hệ thống đƣợc triển khai trên 2 nút Server và Client.
Các thành phần cài đặt trên Server toàn bộ sử dụng nền tảng điện toán đám mây của Google (Google Cloud). Nó bao gồm một module cung cấp dữ liệu địa điểm dạng JSON cho Client, một module cập nhật dữ liệu địa điểm cho ngƣời quản trị dữ liệu, một module Cơ sở dữ liệu địa điểm để lƣu dữ liệu trên Cloud Datastore.
Ở phía Client là thiết bị smartphone dùng hệ điều hành Android đƣợc cài đặt 4 module là module Cập nhật thông tin vị trí, module Tùy chọn tiêu chí tìm kiếm, module Hiển thị bản đồ số, module Dẫn đƣờng trên bản đồ.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 3. 5: Biểu đồ triển khai hệ thống
3.2.3.4. Thiết kế cơ sở dữ liệu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
3.3. Cài đặt bài toán và giao diện chƣơng trình 3.3.1. Thu thập dữ liệu 3.3.1. Thu thập dữ liệu
Việc thu thập dữ liệu nhằm xác định các thông số cần thiết cho thực thể (các cây ATM, siêu thị, trạm xăng…) theo cấu trúc xác định trƣớc. Đặc biệt dữ liệu quan trọng nhất là vị trí địa lý của mỗi thực thể (kinh độ, vĩ độ).
Đầu ra thu đƣợc của công việc này là một bảng chứa các thông số cần thiết của tất cả các thực thể.
Tập dữ liệu thử nghiệm đƣợc tác giả lựa chọn là những địa điểm siêu thị, cây ATM, trạm xăng… chính trong vòng bán kính 5km xung quanh Trung tâm Công nghệ phần mềm Hải Phòng.
ID Tên địa điểm Kinh độ (Latitude) Vĩ độ (Longtitude) User
1 HSP 20.840957509689275 106.70201629400253 DTNhung 10 Khách sạn Hữu Nghị 20.82658926596152 106.73152327537537 DTNhung
2 Nhà hàng Quốc tế
Hƣớng Dƣơng 20.840960158808333 106.70166353784225 DTNhung 3 Khách sạn Hải Phòng 20.841961132900973 106.70180439949036 DTNhung 4 ATM ACB 20.8391069149684 106.69756650924683 DTNhung 5 ATM Agribank 20.834681814489382 106.69677257537842 DTNhung
6 Cửa hàng xăng dầu
khu vực 1 20.83263623477575 106.7023515701294 DTNhung 7 Siêu thị BigC 20.831141828475154 106.71946406364441 DTNhung 8 Siêu thị Metro 20.828865564420628 106.73372268676758 DTNhung
9 Nhà hàng Trung Hoa
dinh dƣỡng 20.823831589587815 106.73190951347351 DTNhung
Bảng 3. 1: Tập dữ liệu thử nghiệm
3.3.2. Giao diện chƣơng trình Giao diện trên Server Giao diện trên Server
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Tác giả đã tạo lập ứng dụng trên Google App Engine và đặt tên là LBSinCloud. Đồng thời, xây dựng một website quản lý dữ liệu của hệ thống LBSinCloud, website này có tên miền đƣợc Google App Engine cung cấp là http://2-dot- dtnlbsincloud.appspot.com/#positionplacecho phép ngƣời sử dụng đƣa dữ liệu lên trên CSDL của Google là Cloud Datastore và trả lại cho ngƣời dùng dữ liệu dạng JSON.
Hình 3. 7: Giao diện trên web – Đăng nhập hệ thống
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Giao diện trên Client
Tác giả đã xây dựng ứng dụng chạy trên di động cho nền tảng hệ điều hành Android 4.0 trở lên. Mục tiêu của ứng dụng là lấy dữ liệu của Cloud Datastore dƣới dạng JSON, từ đó trả lại kết quả tìm kiếm dựa trên vị trí hiện tại của ngƣời dùng và tƣơng ứng với yêu cầu tìm kiếm (loại địa điểm, bán kính). Ngƣời dùng lựa chọn địa điểm mong muốn và hệ thống có nhiệm vụ dẫn đƣờng từ vị trí hiện tại tới đích.Hệ thống hiển thị có sự chấp nhận sai lệch trong phạm vi bán kính 20m đến 30m.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
KẾT LUẬN
Trong quá trình thực hiện, luận văn đã đạt đƣợc những kết quả sau:
Kết quả đạt được:
Tổng quát hóa lý thuyết về dịch vụ dựa trên vị trí LBS, công nghệ điện toán đám mây (Cloud Computing) nói chung và công nghệ điện toán đám mây của Google - Google App Engine nói riêng.
Tổng hợp các kiến trúc cơ sở dữ liệu phân tán, mô hình tổ chức dữ liệu trên đám mây.
Đã làm rõ kiến trúc tích hợp điện toán đám mây và LBS, phân tích sự khác biệt và những ƣu điểm của kiến trúc này so với kiến trúc truyền thống.
Tác giả đã thực hiện xây dựng thành công hệ thống LBS tích hợp trên công nghệ điện toán đám mây của Google bằng việc xây dựng đƣợc ứng dụng web cho phép giao tiếp với CSDL của Google để nhập và quản lý các thông tin về vị trí và các thông tin liên quan, đồng thời xây dựng đƣợc ứng dụng chạy trên thiết bị di động chạy hệ điều hành Android kết nối với CSDL của Google cho bài toán tìm kiếm các điểm đặt cột ATM, nhà hàng, siêu thị, trạm xăng… xung quanh một vị trí trên bản đồ (vị trí hiện tại của ngƣời dùng).
Tác giả cũng đánh giá sơ bộ tác động của hệ thống với xã hội, từ đó có cái nhìn tổng quát hơn cho hƣớng phát triển của hệ thống đã đề xuất.
Hạn chế của luận văn:
Do thời gian và kinh nghiệm của tác giả còn hạn chế, hoạt động của hệ thống tích hợp LBS và điện toán đám mây chƣa đƣợc đánh giá bằng thực tiễn mà mới đƣợc thử nghiệm trên CSDL chuẩn mực.
Hướng phát triển tiếp theo của luận văn:
Trong thời gian tới tác giả sẽ tiếp tục nghiên cứu để hoàn thành những phần còn thiếu do giới hạn thời gian, khi làm luận văn tôi chƣa hoàn thành đƣợc, cụ thể:
Luận văn có thể phát triển theo hƣớng cung cấp một hệ thống dịch vụ LBS hoàn chỉnh trên nền Google App Engine nhằm mục đích ứng dụng vào thực tế phục vụ cho các công ty vận tải.