Giới thiệu về Google App-Engine

Một phần của tài liệu nghiên cứu kiến trúc hệ thống ar-lbs (Trang 55 - 76)

Google App Engine (thường được gọi tắt là GAE hoặc App Engine) là nền tảng PaaS được Google cung cấp nhằm phát triển các ứng dụng web và được lưu trữ tại Trung tâm quản lý dữ liệu Google (Google-managed data center). Các ứng dụng được đóng gói và chạy trên các máy chủ.

Google App Engine cho phép người dùng chạy các ứng dụng web trên nền tảng kiến trúc Google.Các ứng dụng App Engine được xây dựng và quản lý một cách dễ dàng. Với App Engine, không cần phải bào trì máy chủ, người dùng upload các ứng dụng và nó luôn sẵn sàng phục vụ.

App Engine tự động tổng hợp yêu cầu cho các ứng dụng, như: tự động tổng hợp các yêu cầu của ứng dụng, tự động xác định vị trí các tài nguyên cần thiết để ứng dụng có thể đáp ứng các yêu cầu người dùng.

Người dùng có thể sử dụng domain được cung cấp bởi Google Apps hoặc sử dụng domain riêng cho các ứng dụng của mình.Các ứng dụng có thể được chia sẻ rộng rãi hoặc giới hạn cho một nhóm người dùng nhất định.

Khi sử dụng, Google App Engine miễn phí sử dụng tài nguyên, chỉ tính phí băng thông, mở rộng lưu trữ.Hay nói cách khác, người dùng chỉ phải trả phí cho những tài nguyên sử dụng. Không có phí thuê bao hay các khoản phụ phí khác. Các tài nguyên được sử dụng như dung lượng lưu trữ, băng thông… đều được quản lý sử dụng với hiệu quả tối đa cho người dùng.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.1.1. Môi trƣờng ứng dụng:

App Engine cung cấp môi trường cho phép xây dựng ứng dụng đơn giản nhưng hoạt động có độ tin cậy cao. Các đặc điểm của môi trường ứng dụng App Engine:

Dịch vụ dynamic web, được hỗ trợ đầy đủ các công nghệ web hiện đại.

Lưu trữ tin cậy hỗ trợ các truy vấn, sắp xếp, và tác vụ.

Tự động điều chỉnh cân bằng tải nhằm tạo hiệu suất phục vụ cao nhất. API hỗ trợ xác thực người dùng và gửi thư điện tử bằng tài khoản Google.

Bộ giả lập hoàn chỉnh hỗ trợ cho người dùng có thể phát triển ứng dụng và thử nghiệm trong môi trường ảo trên máy tính trước khi đưa lên mạng.

Hỗ trợ các yêu cầu nằm ngoài giới hạn các web request. Hỗ trợ lịch trình hoạt động các tác vụ theo thời gian tự động.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.1.2. RunTimes và Frameworks:

Hiện nay, Google App Engine hỗ trợ lập trình bằng ngôn ngữ Python, Java, PHP và GO.

Python web framework đã hoạt động trên Google App Engine bằng cách tích hợp GAE vào Django, CherryPy, Pylons…

Google App Engines hỗ trợ lập trình ứng dụng bằng ngôn ngữ Java. Với công nghệ lõi là servlet 2.5 technology được dùng trên web server mã nguồn mở Jetty Web Server, đi kèm với một số công nghệ như JSP.

3.1.3. Hỗ trợ và độ tin cậy

Thời gian hoạt động của các ứng dụng là 99.95%

3.1.4. Google Cloud SQL

Vào tháng 10/2011, Google giới thiệu dịch vụ CSDL, hỗ trợ JDBC và DB – API.Dịch vụ này cho phép người dùng Khởi tạo, Cấu hình, và sử dụng CSDL quan hệ trong các ứng dụng App Engine. Dịch vụ sử dụng engine MySQL Version 5.1.59 và kích thước CSDL tối đa không quá 10GB.

3.1.5. Giới hạn sử dụng

Google App Engine cần phải có tài khoản Google để kích hoạt.Mỗi tài khoản cho phép đăng ký tối đa 10 ứng dụng. Giới hạn này có thể thay đổi theo chính sách của Google và đội ngũ kỹ thuật của Google.

Google App Engine cũng đặt ra giới hạn cho các ứng dụng miễn phí.

Quota Limit

Time per request 60 sec per normal request, 10 minutes for tasks, unlimited for backends

HTTP response size 32 MB Datastore item size 1 MB Application code size 150 MB

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.1.6. Free Quota

Google App Engine có các chính sách hỗ trợ những người dùng mới.Khi mới bắt đầu sử dụng dịch vụ, người sử dụng sẽ không phải trả bất cứ chi phí nào trong một giới hạn cho phép gọi là free quota. (adsbygoogle = window.adsbygoogle || []).push({});

Quota Limit (per day)

Instance-hours 28 hours

Emails 100 (5000 admin emails) Bandwidth in Unlimited Bandwidth out 1 GB Datastore 1 GB Datastore Operations 50k Blob Storage 5 GB XMPP API 10k stanzas

Channel API 100 channels opened Conversion API 100 conversions URLFetch API calls

per day 657,000

Bảng 3.2: Bảng mô tả free quota của một ứng dụng GAE miễn phí

3.1.7. Kết luận

Sự ra đời của công nghệ điện toán đám mây nói chung và công nghệ Google App Engine nói riêng đã mở ra một cơ hội mới cho các nhà phát triển phần mềm. Từ trước tới nay, các công ty phần mềm nhỏ luôn gặp những khó khăn nhất định trong việc đầu tư giải pháp phần cứng. Đặc biệt là trong việc phát triển ứng dụng trên nền web, khi họ cần phải cân đối những chi phí cho dịch vụ server, tên miền, SEO, … Nói riêng trong lĩnh vực phát triển ứng dụng LBS, như đã nêu ở trên, nhà phát triển cần xây dựng hệ thống máy chủ để lưu trữ dữ liệu LBS, đồng thời có khả năng tiếp nhận và xử lý yêu cầu truy vấn thông tin LBS liên tục 24/24h. Với những nhà phát triển nhỏ và vừa, rõ ràng việc đầu tư chi phí mua server, thuê chỗ đặt, phí cài đặt và bảo trì… là cả một vấn đề bởi sự thành công của dự án là chưa thể đảm bảo. Công nghệ Google

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

App Engine mang đến cho họ một lựa chọn mới, các nền tảng phần cứng đã được thiết lập sẵn, dùng bao nhiêu chi trả bấy nhiêu, dễ dàng cài đặt và nâng cấp.

3.2. Hệ thống AR-LBS cung cấp thông tin về các tòa nhà tại thành phố Hải Phòng qua Smartphone phố Hải Phòng qua Smartphone

3.2.1. Đặt vấn đề

Như đã trình bày ở các phần trước, các dịch vụ LBS được xây dựng nhằm cung cấp các dịch vụ tiện ích dựa trên vị trí cho người dùng.Hiện nay, với sự phát triển mạnh mẽ của thị trường điện thoại di động thông minh (smartphones), mà hầu hết đều cung cấp tính năng GPS, ta có thể nghĩ đến việc xây dựng một hệ thống tương tác thực tế cung cấp dịch vụ LBS ngay trên những thiết bị này. Cùng với sự ra đời của công nghệ điện toán đám mây và sự phát triển của mạng lưới hạ tầng viễn thông đã mở ra một hướng phát triển dịch vụ mới cho các nhà cung cấp dịch vụ LBS. Các công ty muốn phát triển dịch vụ LBS, đặc biệt là các công ty có quy mô vừa và nhỏ, không còn e ngại việc phải đầu tư một khoản chi phí lớn, mà có thể tận dụng nền tảng công nghệ điện toán đám mây, với khả năng co giãn linh hoạt, chi phí phải chăng.

Từ cơ sở nghiên cứu trên, tôi đề xuất bài toán “Phát triển ứng dụngLBS với công nghệ thực tại tăng cường trên nền tảng điện toán đám mây cho thiết bị di động thông minh trong việc xác định thông tin về các địa diểm ở thành phố Hải Phòng”.

3.2.2. Phân tích hệ thống 3.2.2.1. Phân tích yêu cầu 3.2.2.1. Phân tích yêu cầu

Với yêu cầu của bài toán đặt ra là: “Phát triển ứng dụngLBS với công nghệ thực tại tăng cường trên nền tảng điện toán đám mây cho thiết bị di động thông minh trong việc xác định thông tin về các địa diểm ở thành phố Hải Phòng”.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hệ thống phải đáp ứng được những yêu cầu sau:

- Sử dụng công nghệ điện toán đám mây Google App Engine để xây dựng hệ thống lưu trữ dữ liệu

- Có một nguồn dữ liệu về vị trí, đặc điểm và thông tin tăng cường của vị trí đó.

- Xây dựng, cài đặt chương trình trên điện thoại di động thông minh (smart phones) sử dụng hệ điều hành Android phiên bản 4.0 (Ice Cream Sandwich) trở lên.

- 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 (met)

- Việc tìm kiếm các điểm tiện ích cho phép lựa chọn nguồn dữ liệu để trả kết quả (Google Map, CSDL riêng, hoặc cả hai)

- Việc sử dụng hệ thống đối với điện thoại di động thông minh cần có công nghệ định vị GPS và có kết nối mạng (3G hoặc Wifi)

Ứng dụng được chia làm 2 nhóm modul chính là các modul phía Server và các modul phía Client, trong đó:

- Modul Server: được đặt trên hệ thống máy chủ của Google, cung cấp chức năng quản lý dữ liệu về các điểm về các tòa nhà trong thành phố.

- Modul Client: được phát triển thành ứng dụng trên các thiết bị cầm tay cài đặt hệ điều hành Android, cung cấp khả năng truy vấn thông tin tiện ích từ vị trí hiện tại (tọa độ GPS) của thiết bị; dữ liệu về các điểm tiện ích được tải về từ server của Google App Engine, đồng thời hiển thị những thông tin tiện ích đó lên màn hình cảm ứng, gắn trên các đối tượng thực của hình ảnh camera thu được.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.2.2.2. Mô hình tổng quan hệ thống

Một ứng dụng AR-LBS sẽ được cài đặt trong smartphone sử dụng hệ điều hành android, sử dụng camera để hiển thị khung nhìn cho người dùng. Sử dụng GPS của smartphone và cảm biến hướng để lấy các thông tin GPS và hướng camera gửi về cho server qua các kênh wifi, 3G hay GPGS. Máy chủ nhận thông tin và ghi vào cơ sở dữ liệu.Bên cạnh đó người quản trị có thể cập nhật dữ liệu lên server thông qua các giao diện quản trị trên nền web. (adsbygoogle = window.adsbygoogle || []).push({});

Người dùng

GPS/ hướng camera

Cơ sở dữ liệu Google App Engine

Thông tin tòa nhà

Cập nhật dữ liệu địa điểm

Cập nhật dữ liệu địa điểm Gửi dữ liệu địa điểm

Hình 3.2: Mô hình tổng quan hệ thống xác định thông tin về các địa diểm ở thành phố Hải Phòng

Các biểu đồ ca sử dụng use-case

a. Xác định các tác nhân và các ca sử dụng chính:

Các tác nhân chính bao gồm: Người quản lý, người dùng và thiết bị di động

+ Người quản lý: là các nhân viên được cấp quyền truy cập hệ thống với nhiệm vụ quản trị hệ thống và quản lý, cập nhật dữ liệu đa phương tiện.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Các ca sử dụng chính bao gồm: Hiển thị AR

Cập nhật vị trí

Quản trị dữ liệu AR-LBS

+ Người dùng: là người sử dụng thiết bị di động có cài phần mềm của hệ thống, phần mềm có nhiệm vụ cập nhật thường xuyên thông tin về vị trí, thông báo, hiển thị dữ liệu đa phương tiện gần đó,…

Biểu đồ ca sử dụng Hiển thị khung nhìn AR:

Hình 3.3: Biểu đồ ca sử dụng Hiển thị khung nhìn AR

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hình 3.4: Biểu đồ ca sử dụng cập nhật vị trí

Biểu đồ ca sử dụng quản trị dữ liệu địa điểm:

Hình 3.5: Biểu đồ ca sử dụng Quản trị dữ liệu địa điểm

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Ca sử dụng Hiển thị khung nhìn AR:

Đây là ca sử dụng cơ bản của hệ thống. Thông tin về vị trí các điểm có chứa dữ liệu đa phương tiện được hiển thị trên khung nhìn camera, tạo cảm giác trực quan khi sử dụng.

Ca sử dụng này được mở rộng thành các ca sử dụng sau:

Cấu hình nhà cung cấp dịch vụ: Cho phép người dùng lựa chọn lấy về GPS từ mạng internet hoặc vệ tinh.

Ca sử dụng cấu hình hiển thị: Cho phép người dùng cấu hình các hiển thị của camera, dữ liệu theo nhiều tùy chọn khác nhau

Ca sử dụng Hiển thị AR: Lấy về các dũ liệu đa phương tiện thích hợp, hiển thị lên màn hình camera theo các cấu hình tùy chọn.

Ca sử dụng Cập nhật thông tin vị trí:

Đây là ca sử dụng quan trọng của hệ thống.Phần mềm của người sử dụng có chức năng này và gửi thông tin cập nhật về vị trí của mình sau một khoảng thời gian nào đó về trung tâm. Thông tin này sẽ là đầu vào cho chức năng hiển thị dữ liệu đa phương tiện. (adsbygoogle = window.adsbygoogle || []).push({});

Input Thông tin về vị trí của người sử dụng hệ thống, hướng camera

Output Thông tin về vị trí của người sử dụng được cập nhật vào hệ thống

Process

Dữ liệu về vị trí của người sử dụng gửi về server được thẩm định và xử lý. Dữ liệu được thẩm định sẽ được cập nhật vào hệ thống và được sử dụng cho các chức năng khác của hệ thống.

Bảng 3.3: Mô tả đầu vào đầu ra và xử lý của Ca sử dụng Cập nhật thông tin vị trí

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Ca sử dụng quản lý dữ liệu đa phương tiện:

Đây là chức năng quản lý chính của hệ thống.Tất cả dữ liệu đa phương tiện của các địa điểm trong hệ thống đều được quản lý bởi chức năng này.

Ca sử dụng được mở rộng thành các ca sử dụng cụ thể như sau:

Thêm dữ liệu: Cùng với chức năng hiển thị bản đồ, người quản lý có thể sử dụng một marker được đặt trước tại một điểm trên bản đồ, di chuyển marker đó đến điểm mong muốn, hệ thống sẽ tự động tính toán vị trí của điểm đó, người quản lý chỉ cần nhập các thông tin cơ bản cho điểm đó như: tên, mô tả,… và thêm dữ liệu đa phương tiện cho điểm đó. Quá trình thêm dữ liệu hoàn tất, vị trí của điểm cùng các thông tin và dữ liệu đa phương tiện ngay lập lức được cập nhật lên bản đồ

Sửa dữ liệu: Người quản lý sử dụng chức năng tìm kiếm điểm hoặc dữ liệu đa phương tiện bằng chức năng tìm kiếm thông tin của hệ thống, một danh sách các điểm gần đúng hoặc chính xác tùy thuộc vào dữ liệu tìm kiếm đầu vào được đưa ra, người quản lý chỉ cần click chuột vào địa điểm hay dữ liệu cần sửa để hiển thị form chỉnh sửa kèm với vị trí địa điểm được hiển thị trên bản đồ. Công việc bây giờ của người quản lý đơn giản là di chuyển marker trên bản đồ và sửa các dữ liệu liên quan.

Xóa dữ liệu: Người quản lý sử dụng chức năng tìm kiếm thông tin để tìm điểm hay dữ liệu đa phương tiện cần xóa. Sau khi xóa danh sách các điểm và dữ liệu đa phương tiện sẽ được cập nhật trong cơ sở dữ liệu của hệ thống và trên bản đồ.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.2.2.3. Các biểu đồ tƣơng tác

Biểu đồ tuần tự Hiển thị khung nhìn AR

Hình 3.6: Biểu đồ tuần tự Hiển thị khung nhìn AR

Biểu đồ tuần tự Cập nhật vị trí

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Biểu đồ tuần tự quản trị địa điểm

Hình 3.8: Biểu đồ tuần tự quản trị địa điểm

3.2.2.4. 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).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 cho để 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 2 module là module Hiển thị khung nhìn AR và module Cập nhật thông tin vị trí.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hình 3.9: Biểu đồ triển khai hệ thống

3.3. Thiết kế và cài đặt trên nền tảng Google App Engine 3.3.1. Thiết kế cơ sở dữ liệu 3.3.1. Thiết kế cơ sở dữ liệu

Hệ thống sử dụng cơ sở dữ liệu của Google, về mặt vật lý, các dữ liệu của Google được dùng trong công nghệ GAE là phân tán, được phân chia lưu trữ tại các máy chủ nằm ở nhiều nơi trên thế giới, và các dữ liệu này không có mối

Một phần của tài liệu nghiên cứu kiến trúc hệ thống ar-lbs (Trang 55 - 76)