3.3.1. Ƣu điểm
- Đáp ứng nhu cầu khả năng lƣu trữ của ngƣời dùng:Một đặc điểm nổi bật của điện toán đám mây là phục vụ theo nhu cầu của ngƣời dùng: khi cần thiết mở rộng khả năng lƣu trữ, hệ thống có nhiệm vụ cung cấp đủ nhu cầu sử dụng cần thiết, và khi muốn giảm bớt dung lƣợng lƣu trữ, hệ thống có nhiệm vụ thu hồi lƣợng dung lƣợng không cần thiết, tất cả các hoạt động của hệ thống đều đƣợc thực hiện một cách tự động theo yêu cầu của ngƣời dùng.
- Khả năng tự co giãn của hệ thống: tùy vào yêu cầu thực tế khi sử dụng, ngƣời dùng có thể yêu cầu nhà cung cấp mở rộng hoặc giảm bớt tài nguyên hệ thống. Khi sử dụng hết lƣợng tài nguyên cho trƣớc, ngƣời dùng hoàn toàn có khả năng yêu cầu nhà cung cấp cung cấp thêm tài nguyên (dung lƣợng lƣu trữ, số clock CPU chạy cho ứng dụng) một cách tự động thông qua Internet.
- Tính sẵn sàng: Hiện nay, việc sử dụng các dịch vụ của Điện toán đám mây làm cho ngƣời sử dụng lo lắng đến tính sẵn sàng của dịch vụ mà họ sử dụng. Nên đây là
một lý do có thể làm cho ngƣời sử dụng ngại sử dụng các dịch vụ của Điện toán đám mây. Nhƣng hiện tại, những ngƣời sử dụng dịch vụ của Điện toán đám mây có thể an tâm về chất lƣợng dịch vụ. Ví dụ nhƣ trong SaaS có dịch vụ tìm kiếm của Google, hiện tại khi ngƣời dùng truy cập vào trang web sử dụng dịch vụ tìm kiếm này thì có thể an tâm rằng mình luôn đƣợc đáp ứng nếu mình truy cập không đƣợc thì có thể đó là vấn đề do kết nối đƣờng truyền mạng.
- Bản quyền phần mềm: Chi phí cho bản quyền phần mềm và chi phí vận hành, bảo trì dịch vụ là tiêu chí khi quan trong trong quyết định lựa chọn dịch vụ của ngƣời dùng. Ví dụ: theo nhƣ hãng SAP công bố thì chi phí để bảo trì vận hành phần mềm hằng năm chíếm ít nhất 22% giá trị của phần mềm. Việc phải chi phí cho bản quyền phần mềm quá cao sẽ là một cơ hội cho sự phát triển của các phần mềm mã nguồn mở cũng nhƣ cách tính phí của các phần mềm mã nguồn đóng, hoặc các nền tảng dựa trên mã nguồn mở.
3.3.2. Nhƣợc điểm
- Data lock-in: Hiện nay các phần mềm đã đƣợc cải thiện khả năng tƣơng tác giữa các nền tảng khác nhau, nhƣng các thƣ viện lập trình của Điện toán đám mây vẫn còn mang tính độc quyền, chƣa đƣợc chuẩn hóa theo một qui tắc nhất định. Do đó khi một khách hàng viết một ứng dụng trên một nền tảng do một nhà cung cấp dịch vụ thì ứng dụng đó sẽ chỉ đƣợc sử dụng trên các dịch đó, nếu đem ứng dụng đó qua một nền tảng khác do một nhà cung cấp dịch vụ khác cung cấp thì có thể không chạy đƣợc. Điều này dẫn đến ngƣời sử dụng phụ thuộc vào nhà cung cấp dịch vụ.
- Bảo mật và kiểm tra dữ liệu: Cho đến nay, vấn đề bảo mật dữ liệu trên đám mây vẫn chƣa có câu trả lời thuyết phục cho ngƣời dùng. Do đó, các dữ liệu nhạy cảm mang tính sống còn của các công ty thƣờng sẽ không đƣợc cho lên đám mây để lƣu trữ, các dữ liệu đƣợc đƣa lên đám mây thƣờng là các loại dữ liệu thông thƣờng, có khả năng truy xuất cao.Hiện nay có một giải pháp khả thi là ngƣời dùng dịch vụ đám mâysẽ phải mã hóa dữ liệu trƣớc khi đƣa chúng lên đám mây, và khi muốn sử dụng dữ liệu này thì bắt buộc phải thực hiện công đoạn giải mã dữ liệu trên máy cục bộ. Việc mã hóa dữ liệu trƣớc khi đƣa lên đám mây sẽ bảo mật hơn so với đem dữ liệu lên đám mây mà không có mã hóa,mô hình này đã có những hiệu quả nhất định và đang là giải pháp đƣợc các công ty lựa chọn khi sử dụng điện toán đám mây.Một giải pháp khác là lƣu các thông tin hoạt động của hệ thống (log file) nhằm theo dõi và quản lý nguồn dữ liệu tốt hơn, việc này cho phép ngƣời dùng nắm đƣợc các can thiệp không mong muốn vào nguồn dữ liệu gây ra bởi các tác nhân trong và ngoài hệ thống để có các biện pháp xử lý kịp thời, nhằm bảo vệ nguồn dữ liệu một cách tốt hơn.Việc bảo mật dữ liệu ngoài các vấn đề về kỹ thuật thì nó còn liên quan đến các vấn đề khác nhƣ con ngƣời, các đạo luật… Bằng việc đƣa các điều khoản bảo mật và sử dụng các điều luật bảo vệ ngƣời sử dụng dịch vụ đám mây khi họ đƣa dữ liệu của mình lƣu trữ trên đám mây, sẽ
khiến cho các nhà cungcấp dịch vụ phải bảo đảm dữ liệu của khách hàng không bị rò rỉ ra bên ngoài.
- Hiện tƣợng thắt cổ chai trong việc truyền dữ liệu:Một đặc điểm của ứng dụng điện toán đám mây là dữ liệu hệ thống sẽ tăng dần theo thời gian sử dụng. Bên cạnh đó, các dữ liệu đƣợc lƣu trữ phân tán trên nhiều máy chủ khác nhau. Việc vận chuyển dữ liệu cung cấp cho hệ thống sẽ là một vấn đề cần đƣợc tính đến khi sử dụng các dịch vụ đám mây.
Hình 3. 4.Hiện tượng thắt cổ chai trong ứng dụng Google App Engine khi có nhiều truy cập đến tại cùng thời điểm
- Khó tiên đoán trong hiệu suất thực thi của máy tính: Công nghệ điện toán đám mây phát triển dựa trên công nghệ ảo hóa, vì vậy, sẽ rất khó cho nhà phát triển đánh giá chính xác hiệu suất thực thi của máy tính. Ngoài ra, các máy chủ trong hệ thống cung cấp dịch vụ trên đám mây thƣờng phân tán về mặt địa lý, việc này tạo lợi thế cho nhà cung cấp dịch vụ có thể tăng khả năng cung cấp hệ thống dịch vụ, tuy nhiên, việc giao tiếp vào ra (IO) của các máy chủ phân tán sẽ đƣa ra nhiều vấn đề về hiệu suất thực thi.
3.4. Dịch vụ điện toán đám mây Google App Engine
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.
Google App Engine đƣợc ra mắt lần đầu tiên vào 08/2008.
3.4.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.
Hình 3.5: Bảng theo dõi hoạt động ứng dụng của GAE
3.4.2. RunTimes và Frameworks:
Hiện nay, Google App Engine hỗ trợ lập trình bằng ngôn ngữ Python, Java 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.4.3. Hỗ trợ và độ tin cậy
Thời gian hoạt động của các ứng dụng là 99.95%
3.4.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.4.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
Bảng 3.1: Bảng mô tả giới hạn sử dụng của một ứng dụng GAE miễn phí
3.4.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.
Quota Limit (per day)
Instance-hours 28 hours
Emails 100 (5000 admin emails)
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.5. 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 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. Chƣơng tiếp theo của luận văn này sẽ trình bày một phƣơng pháp áp dụng công nghệ điện toán đám mây Google App Engine để phát triển dịch vụ LBS với một hệ thống đƣợc cài đặt thử nghiệm thực tế.
CHƢƠNG IV:PHÁT TRIỂN ỨNG DỤNG LBS
VỚI CÔNG NGHỆ THỰC TẠI TĂNG CƢỜNG TRÊN NỀN TẢNG GOOGLE APP ENGINE
4.1. Đặt vấn đề
Nhƣ đã trình bày ở chƣơng 1, 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 tìm kiếm các điểm tiện ích xung quanh một vị trí trên bản đồ trên địa bàn quận Cầu Giấy”.
Hệ thống dịch vụ LBS này sẽ cung cấp khả năng truy vấn các điểm tiện ích cho ngƣời dùng sử dụng thiết bị di động thông minh xung quanh vị trí hiện tại. Trong luận văn này, tôi giới hạn dữ liệu tiện ích gồm các điểm đặt máy ATM, cây xăng, trƣờng học trong phạm vi địa bàn quận Cầu Giấy – Hà Nội. Các thiết bị di động thông minh sử dụng hệ điều hành Android từ phiên bản 2.3 trở lên.
4.2. Phân tích thiết kế hệ thống
Với yêu cầu của bài toán đặt ra là “Phát triển dịch vụ LBS với công nghệ tương
tác thực tế ảo 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 tìm kiếm các điểm tiện ích xung quanh một vị trí trên bản đồ trên địa bàn quận Cầu Giấy”,hệ thống phải đáp ứng đƣợc các 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 riêng bên cạnh nguồn dữ liệu của Google về các điểm đặt ATM và cung cấp chức năng quản trị nguồn dữ liệu riêng đó.
- 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 2.3 (Gingerbreak) 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 minhcầ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 tiện ích nhƣ trƣờng học, cây xăng, điểm đặt máy ATM.
- 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ừ Google Maps, Wikipedia cùng với dữ liệu trên 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, giúp ngƣời dùng dễ dàng tìm đƣợc địa điểm cần thiết.
CSDL Google, Wikipedia, ... GPS, hướng camera các điểm tiện ích (CSDL riêng) GP S, hư ớn g cam era các điểm tiện ích (CSDL Google Maps, Wikipedia ...)
cập nhật dữ liệu địa điểm bản đồ, dữ liệu địa điểm cập nhật dữ liệu địa điểm gửi dữ liệu
địa điểm
CSDL Google App Engine
Hình 4. 1. Mô hình hệ thống ứng dụng thực tại tăng cường trên nền tảng điện toán đám mây
Việc truyền dữ liệu giữa các modul đƣợc thực hiện bằng việc truyền thông trên các mạng viễn thông thông thƣờng, thông qua GPRS, 3G, 4G hoặc Wifi… đây cũng là một trong những ƣu điểm của hệ thống khi không phải sử dụng các kênh truyền thông riêng nhƣ các hệ thống trƣớc đây, làm giảm đáng kể chi phí xây dựng và bảo trì hệthống.
4.3. Cài đặt thử nghiệm ứng dụng 4.3.1. Thiết kế cơ sở dữ liệu 4.3.1. Thiết kế cơ sở dữ liệu