Xây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhauXây dựng nền tảng Mobile Cloud Computing tương thích giữa hai hệ điều hành Mobile khác nhau
Trang 1MỞ ĐẦU
1 Tính cấp thiết của đề tài
Thiết bị di động đang dần trở thành một thiết bị thiết yếu trong cuộc sống của con người, một dụng cụ liên lạc tiện lợi không giới hạn bởi không gian và thời gian Người dùng di động được trải nghiệm nhiều loại dịch vụ từ những phần mềm di động (mobile app, hay iPhone app, google app), chạy trên thiết bị hoặc server qua mạng không dây Sự phát triển nhanh chóng của điện toán di dộng (mobile computing –MC) trở thành một xu hướng phát triển mạnh mẽ trong IT cũng như thương mại Tuy nhiên, thiết bị di động hiện nay gặp phải nhiều vấn đề trong tài nguyên (thời lượng pin, lưu trữ, băng thông) và kết nối (tính di động
và bảo mật) Giới hạn này ngăn trở việc phát triển chất lượng dịch vụ
Điện toán đám mây (cloud computing –CC) được thừa nhận là cơ sở hạ tầng của điện toán tương lai
Lợi thế của CC là cho người sử dụng dùng cơ sở hạ tầng (máy chủ, mạng và lưu trữ), nền tảng (dịch vụ trung gian và hệ điều hành), và phần mềm của những nhà cung cấp dịch vụ cloud (Google, Amazon, Saleforce) với mức chi phí thấp hơn nữa, CC cho phép người dùng tùy nghi co giãn lượng tài nguyên sử dụng theo yêu cầu Chính điều này rút ngắn thời gian phát triển của mobile app mà không mất nhiều công sức quản lý hay tương tác với nhà cung cấp dịch vụ Với sự bùng nổ của mobile app và sự trợ giúp của CC cho những dịch vụ phong phú cho người dùng, điện toán đám mấy cho di động (Mobile cloud computing - MCC) được giới thiệu là một sự kết hợp của điện toán đám mây vào môi trường di động MCC đem đến một loại hình dịch vụ và phương tiện cho phép người dùng di động được tận hưởng lợi ích của CC
Với mục đích đưa những tiến bộ công nghệ vào phục vụ cho cuộc sống, tôi xin chọn đề
tài “Xây dựng nền tảng điện toán đám mây di dộng tương thích giữa hai hệ điều hành mobile khác nhau.”
2 Tổng quan về vấn đề nghiên cứu
Cùng với sự bùng nổ của các ứng dụng di động và sự nổi lên của khái niệm điện toán đám mây, MCC (Mobile Cloud Computing) đã được giới thiệu là một công nghệ tiềm năng cho các dịch vụ di động MCC tích hợp điện toán đám mây vào môi trường di động và vượt qua những trở ngại liên quan đến hiệu suất (như, tuổi thọ pin,lưu trữ và băng thông), môi trường (tính không đồng nhất, khả năng mở rộng, và tính sẵn có), và an ninh (như độ tin cậy,và riêng tư) Các vấn đề được thảo luậntrong các diễn đàn về điện toán đám mây di
Trang 2động Các diễn đàn này đưa ra một khảo sát về MCC và xây dựng nền tảng điện toán đám mây di động tương thích giữa hai hệ điều hành khác nhau, giúp chúng ta có một cái nhìn tổng quan về MCC, bao gồm các định nghĩa, kiến trúc, và các ứng dụng Các vấn đề, giải pháp hiện có và phương pháp tiếp cận cũng được trình bày Ngoài ra, các hướng nghiên cứu trong tương lai của MCC sẽ được thảo luận
3 Mục đích nghiên cứu
Nghiên cứu đề xuất một giải pháp xây dựng nền tảng cho mobile cloud computing tương thích giữa hai hệ điều hành mobile khác nhau
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Luận văn tập trung vào nghiên cứu nền tảng, giải pháp mobile cloud computing tương thích giữa hai hệ điều hành khác
Phạm vi nghiên cứu: Giới hạn trong dịch vụ nền tảng PaaS (Platform as a Service)
5 Phương pháp nghiên cứu
Tìm hiểu nền tảng, kiến trúc hiện tại của điện toán đám mây di động, đề xuất nền tảng điện toán đám may di động mới tương thích giữa hai hệ điều hành mobile khác nhau, cuối cùng là phân tích và đánh giá phương pháp đề xuất trên nền tảng điện toán đám mây di động mới
6 Tổ chức luận văn
Dự kiến luận văn sẽ được cấu trúc với các chương như sau:
Chương 1: Tổng quan về điện toán đám mây di động
Chương 2: Xây dựng nền tảng mobile cloud computing tương thích giữa hai hệ điều hành
mobile khác nhau
Chương 3: Cài đặt và đánh giá kết quả
Kết luận và kiến nghị
Chương 1: Giới thiệu một cách tổng quan về điện toán đám mây di động, kiến trúc, các
dịch vụ của điện toán đám mây Đầu tiên là dịch vụ phần mềm (SaaS), dịch vụ nền tảng (PaaS) và dịch vụ cơ sở hạ tầng (IaaS) Những ưu điểm, nhược điểm của 3 dịch vụ điện toán đám mây cở bản đã nêu, những thuận lợi và trở ngại khi sử dụng dịch vụ điện toán đám mây
Chương 2: Phần đầu của chương 2 giới thiệu một cách tổng quan về kiến trúc của mô hình
dịch vụ PaaS Phần chính của chương 2 là trình bày thiết kế hệ thống, kiến trúc, giao thức:
Trang 3Bao gồm hệ thống client-server, VSPC Cloud system, ảo hóa hệ điều hành Android và giao thức (Protocol) để giao tiếp giữa các máy client, server và máy ảo
Chương 3: Xây dựng cài đặt chương trình và áp dụng các thiết kế của hệ thống VSPC
nhằm mục đích kiểm tra lại hoạt của hệ thống, đánh giá hiệu năng, tốc độ, tính sẵn sàng và
độ tin cậy Dựa trên các cơ sở đó đưa ra những đề xuất hướng phát triển tương lai
Kết luận và kiến nghị: Trình bày kết luận của luận văn và các kiến nghị định hướng nghiên
cứu tiếp theo
Trang 4Chương 1 - TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
DI ĐỘNG
Thuật ngữ "điện toán đám mây di động" đã được giới thiệu không lâu sau khái niệm "điện toán đám mây" ra mắt vào giữa năm 2007 Nó đã thu hút được sự chú ý của các doanh nhân như một lựa chọn kinh doanh có lợi nhuận, làm giảm các chi phí phát triển và chạy các ứng dụng di động, của người sử dụng di động như là một công nghệ mới để trải nghiệm một loạt các dịch vụ di động với chi phí thấp, và các nhà nghiên cứu như một hứa hẹn cho giải pháp
IT xanh [3] Phần này cung cấp một cái nhìn tổng quan của MCC,bao gồm định nghĩa, kiến trúc, và lợi thế của MCC
1.1 Điện toán đám mây di động là gì
[4] “MCC đề cập đến một cơ sở hạ tầng lưu trữ và xử lý dữ liệu xảy ra bên ngoài thiết bị
di động Ứng dụng đám mây di động di chuyển sức mạnh tính toán và lưu trữ dữ liệu từ điện thoại di động và vào các đám mây, các ứng dụng và tính toán di động” của không phải chỉ người dùng điện thoại thông minh mà phạm vi rộng hơn nhiều các thuê bao di động
Aepona [5] mô tả MCC là một mô hình mới cho các ứng dụng di động, theo đó việc xử
lý dữ liệu và lưu trữ được chuyển từ thiết bị di động vào các nền tảng mạnh mẽ và tập trung đặt trong các đám mây Các ứng dụng này sau đó được truy cập qua kết nối không dây dựa trên trình duyệt web trên các thiết bị di động
Ngoài ra, MCC có thể được định nghĩa là một sự kết hợp của web di động và điện toán đám mây [6], [7], là công cụ phổ biến nhất cho người sử dụng di động để truy cập vào các ứng dụng và dịch vụ trên Internet
Tóm lại, MCC cung cấp cho người sử dụng di động với việc xử lý dữ liệu và các dịch vụ lưu trữ trong các đám mây Các thiết bị di động không cần một cấu hình mạnh mẽ (ví dụ, CPU tốc độ và dung lượng bộ nhớ) vì tất cả các mô-đun tính toán phức tạp có thể được xử
lý trong những đám mây
Trang 51.2 Kiến trúc của điện toán đám mây di động
Hình 1.1: Kiến trúc MCC
Từ khái niệm của MCC, kiến trúc chung của MCC có thể được hiển thị trong hình 1.1 Trong hình 1.1, các thiết bị di động được kết nối với các mạng di động thông qua các trạm (ví dụ, cở sở trạm phát (BST), điểm truy cập (access point), hoặc vệ tinh) được thiết lập và kiểm soát các kết nối và giao diện chức năng giữa mạng và các thiết bị di động Yêu cầu của người dung di động và thông tin (ví dụ như ID và vị trí) được truyền đến các bộ vi xử lý trung tâm được kết nối với máy chủ cung cấp dịch vụ mạng di động Ở đây, nhà khai thác mạng di động có thể cung cấp dịch vụ cho người sử dụng di động la AAA (authentication, authorization, and accounting ) dựa trên các home agent (HA) và dữ liệu của thuê bao được lưu trữ trong cơ sở dữ liệu Sau đó, yêu cầu của thuê bao được chuyển giao cho một đám mây (cloud controller) xử lý các yêu cầu để cung cấp cho người sử dụng di động với các dịch vụ đám mây tương ứng Những dịch vụ này được phát triển với các khái niệm tiện ích tính toán, ảo hóa và kiến trúc hướng dịch vụ (ví dụ web, ứng dụng, vá máy chủ cơ sở dữ liệu)
Kiến trúc chi tiết của điện toán đám mây có thể khác nhau trong ngữ cảnh khác nhau Ví dụ, kiến trúc bốn lớp (4-layers) được giải thích trong [8] để so sánh điện toán đám mây với điện toán lưới (grid computing) Ngoài ra, một kiến trúc hướng dịch vụ, được gọi là Aneka, được giới thiệu để cho phép các nhà phát triển xây dựng ứng dụng NET với sự hỗ trợ các giao diện lập trình ứng dụng (API) và nhiều mô hình lập trình [9] [10] trình bày một kiến trúc để
Trang 6tạo ra các đám mây hướng thị trường (karket-oriented) Trong bài báo này, chúng tôi tập trung vào một kiến trúc được phân lớp (layered architecture) của điện toán đám mây (hình 1.2) Kiến trúc này thường được sử dụng để chứng minh hiệu quả của mô hình điện toán đám mây trong việc đáp ứng yêu cầu của người sử dụng [12]
Hình 1.2: Kiến trúc điện toán đám mây hướng dịch vụ
Có rất nhiều loại dịch vụ của điện toán đám mây, Tuy nhiên các dịch vụ cơ bản của nó bao gồm : Dịch vụ cơ sở hạ tầng (Infrastructure as a Service – IaaS), dịch vụ nền tảng (Platform
as a Service – PaaS), dịch vụ phần mềm (Software as a Service – SaaS), dịch vụ phần cứng (Hardware as a Service)
1.2.1 Dịch vụ phần mềm (Software as a Service – SaaS)
Mô hình dịch vụ cho phép nhà cung cấp dịch vụ sẽ cung cấp cho khách hàng các phần mềm dạng dịch vụ hoàn chỉnh Dịch vụ phần mềm hoạt động theo nền tảng muti-tenant Khách hàng có thể lựa chọn phần mềm hoặc dịch vụ phù hợp với nhu cầu Phần mềm hoặc dịch vụ đó chạy trên nền tảng điện toán đám mây
Mô hình này giải phóng người dùng khỏi việc quản lý hệ thống, cơ sở hạ tầng, hệ điều hành… tất cả sẽ do nhà cung cấp dịch vụ quản lý và kiểm soát để đảm bảo ứng dụng luôn sẵn sàng và hoạt động ổn định
Trang 7Các ví dụ phổ biến về các yêu cầu này bao gồm IBM® Lotus® Live, IBM Lotus Sametime®, Unyte, Salesforce.com, Sugar CRM, và WebEx
1.2.2 Dịch vụ nền tảng (Platform as a Service – PaaS)
PaaS cung cấp cho các nhà phát triển một nền tảng hoàn chỉnh bao gồm: Phát triển ứng dụng, phát triển giao diện, phát triển cơ sở dữ liệu, lưu trữ dữ liệu Đồng thời hỗ trợ phát triển sản phẩm phần mềm theo chu kỳ vòng đời như phát triển, kiểm định, triển khai các ứng dụng và dịch vụ trên nền tảng điện toán đám mây
1.2.3 Dịch vụ cơ sở hạ tầng (Infrastructure as a Service – IaaS )
IaaS thực là dịch vụ trung tâm, cung cấp khả năng truy xuất tài nguyên từ xa IaaS bao gồm một tập hợp các tài nguyên vật lí như các máy chủ, các thiết bị mạng và các ổ lưu trữ Chúng được đưa ra như là các dịch vụ để cung cấp cho người tiêu dùng Các dịch vụ ở đây hỗ trợ cơ sở hạ tầng ứng dụng - bất kể cơ sở hạ tầng đó đang được cung cấp qua một đám mây hay không Cũng như với các dịch vụ nền tảng, sự ảo hóa là một phương pháp thường được sử dụng để tạo ra chế độ phân phối các nguồn tài nguyên theo yêu cầu
Ví dụ về các dịch vụ cơ sở hạ tầng bao gồm IBM Bluehouse, VMware, Amazon EC2, Microsoft Azure Platform, Sun ParaScale Cloud Storage và nhiều hơn nữa
1.2.4 Lợi ích và trở ngại khi việc sử dụng PaaS
1.2.4.1 Lợi ích Với triết lý: “Không cần cấu hình là cấu hình tốt nhất” (the best config, deploy, patch is the one I don't have to do) , PaaS đem lại cho người sử dụng nhiều lợi ích
về các mặt thời gian và kinh tế Trước tiên với lập trình viên, PaaS cung cấp sẵn các nền tảng để lập trình viên an tâm phát triển Họ không cần lo lắng về những bản vá lỗi của phần mềm, sự phức tạp trong việc setup một hệ thống để lập trình, sự lo lắng khi tích hợp các gói khác nhau, và đến cả việc deploy ứng dụng lên hệ thống cho người sử dụng PaaS cung cấp
một môi trường lập trình tối ưu với nhiều công cụ hỗ trợ
1.2.4.2 Trở ngại và khó khăn
1.3 Kết luận
Chương 1 trình bày một cách tổng quan về điện toán đám mây di động, kiến trúc, các dịch vụ của điện toán đám mây Đầu tiên là dịch vụ phần mềm (SaaS), dịch vụ nền tảng (PaaS) và dịch vụ cơ sở hạ tầng (IaaS) Những ưu điểm, nhược điểm của 3 dịch vụ điện toán đám mây cở bản đã nêu, những thuận lợi và trở ngại khi sử dụng dịch vụ điện toán đám mây
Trang 8Chương 2 - XÂY DỰNG NỀN TẢNG MOBILE CLOUD
COMPUTING TƯƠNG THÍCH GIỮA HAI HỆ ĐIỀU HÀNH
MOBILE KHÁC NHAU 2.1 Tổng quan về PaaS
Cung cấp nền tảng tính toán và một tập các giải pháp nhiều lớp Nó hổ trợ việc triển khai ứng dụng mà không quan tâm đến chi phí hay sự phức tạp của việc của việc trang bị và quản lý các lớp phần cứng và phần mềm bên dưới, cung cấp tất cả các tính năng cần thiết để
hỗ trợ chu trình sống đầy đủ của việc xây dựng và cung cấp một ứng dụng và dịch vụ web sẵn sàng trên Internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát triển, quản lý tin học, hay người dùng cuối Nó còn được biết đến với một tên khác là cloudware
2.1.1 Khái niệm và các định nghĩa
Cung cấp dịch vụ nền tảng (PaaS) bao gồm những điều kiện cho qui trình thiết kế ứng dụng, phát triển, kiểm tra, triển khai và lưu trữ ứng dụng có giá trị như là dịch vụ ứng dụng như cộng tác nhóm, sắp xếp và tích hợp dịch vụ web, tích hợp cơ sở dữ liệu, bảo mật, khả năng mở rộng, quản lý trạng thái, phiên bản ứng dụng, các lợi ích cho cộng đồng phát triển
và nghiên cứu ứng dụng Những dịch vụ này được chuẩn bị như là một giải pháp tích hợp trên web
Hình 2.1: Mô hình PaaS
Mô hình PaaS cung cấp cho người dùng khả năng triển khai và phát triển ứng dụng của chính họ trên hạ tầng cloud sử dụng các ngôn ngữ lập trình và công cụ do nhà cung cấp
Trang 9cloud hỗ trợ (ví dụ java, python, Net) Người dùng không quản lý hay điều khiển lớp hạ tầng cloud bên dưới như mạng, máy chủ, hệ điều hành hay lưu trữ mà chỉ có quyền quản lý ứng dụng của họ và một số cấu hình có thể đối với môi trường hosting ứng dụng đó Một cách đơn giản, nếu trong IaaS người dùng kiểm soát và sử dụng toàn bộ máy chủ được cấp thì trong PaaS, người dùng chỉ kiểm soát và sử dụng một số dịch vụ cụ thể trên máy chủ đó,
ví dụ như chỉ sử dụng và cấu hình IIS để hosting web site của người dùng đó
Hình 2.2: Mối quan hệ giữa các nhóm điện toán trong đám mây và các phần tử của PaaS
2.2 Thiết kế hệ thống và kiến trúc
2.2.1 hi t k cơ sở
Hình 2 3: ng dụng dữ liệu đầu vào của một điện thoại di động kh ng máy chủ
Hình 2.3 cho thấy logical dòng chảy dữ liệu ứng dụng đầu vào Giả sử người sử dụng gửi một lệnh ngắt tới CPU, sau khi nhận được lệnh ngắt, hệ điều hành dừng các cộng việc hiện tại, đọc các dữ liệu đầu vào với trình điều khiển tương ứng và gửi dữ liệu đến Android framework., sau đó các Android framework gói dữ liệu vào các sự kiện rời rác
Trang 10(MotionEvent) và gửi chúng đến các dịch vụ liên quan, ch ng hạng như dịch vụ Sersor Service, Input Method Service hoặc Location Service; đồng thời nó sẽ gửi dữ liệu vào dev input event cũng như trong các hình thức mã hex Cuối cùng các dịch vụ liên quan gửi các sự kiện rời rạc đến ứng dụng chạy nền trước
REAN và Mosaic có được các dự liệu ứng dụng đầu vào bằng cách đọc /dev/input/event* tập tin sự kiện trong Android framework và hệ điều hành sửa đổi trong Android Framework
Từ hình 2.3 chúng ta có thể thấy rằng chỉ có các vị trí đó mới có thể ghi dữ liệu dầu vào, mà không sửa đổi trong lớp ứng dụng hệ điều hành Để làm điều này, người ta phát triển một ứng dụng, đặc biệt dành riêng để chặn các dữ liệu đầu vào dành cho các mục tiêu ứng dụng Tuy nhiên điều này bị cấm bởi các ứng dụng Android Sandbox, cũng như các chính sác sandbox trong các hệ điều hành di động khác, trong đó đảm bảo rằng dữ liệu không được phép chia sẽ giữa các ứng dụng Kết quả là các ứng dụng dữ liệu chuyên dụng ngăn chặn không thể truy cập bất kỳ dữ liệu hoặc bộ nhớ của các ứng dụng đích Vì vậy r ràng một điện thoại di động một mình không thể giải quyết những thách thức và vần đề mà các phương pháp tiếp cận hiện nay gặp phải Để khắc phục “cô lập” điều trở ngại này, giới thiệu một thành phần thứ 2, tức là một cử chỉ trên màn hình cảm ứng (tap, swipe, zoom, ) thứ nhất, phần cứng màn hình cảm ứng chụp cử chỉ này, chuyển nó thành dữ liệu k thuật số và thông báo cho nhân Linux, bằng các thử nghiệm người dùng có toàn quyền điều khiển máy chủ, bao gồm cả hệ điều hành Android được sửa đổi; Cụ thể, có quyền root, có quyền truy cập để chỉnh sửa và biên dịch lại mã nguồn hệ điều hành, có thể thay đổi cấu hình,…
tưởng cơ bản của VSPC là các mục tiêu ứng dụng thực sự chạy trên máy chủ, trong khi người dùng tương tác với úng dụng client trên điện thoại di động Người sử dụng không nhận ra là trong thực tế sử dụng một máy client Lúc đầu, cài đặt các ứng dụng mục tiêu trên các máy ảo trên máy chủ và client trên điện thoại di động Client cho thấy giao diện của ứng dụng mục tiêu trong thời gian thực trên điện thoại di động, giống hệt như các ứng dụng mục tiêu đã được chạy trên điện thoại di động Kết quả là, người dùng chỉ cần tương tác với các ứng dụng mục tiêu như bình thường, trong khi dưới bề mặt client liên tục chuyển tiếp tất cả các dữ liệu đầu vào (như cử chỉ màn hình cảm ứng, dữ liệu cảm biến và GPS) tới các máy
ảo trên máy chủ Đồng thời giao diện của ứng dụng mục tiêu trên máy chủ được chuyển tiếp đến các client và sau đó được hiển thị bởi client trên điện thoại di động Các máy ảo trên máy chủ nhận dữ liệu đầu vào từ các dịch vụ của hệ điều hành có liên quan và sau đó lần
Trang 11lượt gửi đến ứng dụng mục tiêu Các ứng dụng mục tiêu chạy trên máy ảo với dữ liệu đầu vào chính xác, tương tự vì nó sẽ chạy trên điện thoại di động.
Ki n tr c c a VSPC
Hệ thống Client – Server bao gồm điện thoại di động và máy chủ, như trong hình 2.4 máy chủ và điện thoại di động được kết nối thông qua một kết nối mạng tốc độ cao 300Mbps đến 1Gbps
Hình 2.4: VSPC g m điện thoại di động và máy chủ
VSPC chủ yếu dựa vào các API trong đám mây để quản lý vòng đời của các thiết bị điện thoại thông minh ảo Điều này cho phép chúng ta chứa nhiều môi trường triển khai khác nhau và dễ dàng Ở mức độ cao, nó giống như một hệ thống máy thin-client có cấu hình tối thiểu của máy tính để bàn truyền thống Có các yếu tố giống giọng nói và video qua dịch vụ
IP như XMPP hoặc SIP
Các thành phần chính
+ Các ứng dụng của client trên điện thoại hay máy tính bảng của người sử dụng + Các VSPC Overseer để xử lý xác thực, quản lý cơ sở dữ liệu và triển khai máy ảo + Các VSPC Server phục vụ các client kết nối tới
+ Các thiết bị ảo “gold image” và sử dụng tập hợp các khối dữ liệu không đổi
+ Bộ điều khiển đám mây phục vụ các API của đám mây cơ bản (nền tảng)
Trang 12Nó có trách nhiệm tiếp nhận các yêu cầu đăng nhập của người sử dụng, thực hiện thẩm định đối với một cơ sở dữ liệu hoặc dịch vụ nhận diện bên ngoài, tạo ra và quản lý các máy ảo trên đám mây.Thực thi một API cho khách hàng và máy chủ VSPC có thể truy cập Nó cũng bao gồm các điều khiển web cho người quản lý và client HTML5
2.2.2.2 VSPC Server Các VSPC Server là internet phải đối mặt với thành phần thứ 2 của hệ thống Điều này cũng đi vào vùng DMZ