| 研究生: |
洪得欽 Hong, Te-Chin |
|---|---|
| 論文名稱: |
行動應用遠端服務平台之設計與實作 The Design and Implementation of a Remote Service Platform for Mobile Applications |
| 指導教授: |
陳 敬
Chen, Jing |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電腦與通信工程研究所 Institute of Computer & Communication Engineering |
| 論文出版年: | 2015 |
| 畢業學年度: | 103 |
| 語文別: | 中文 |
| 論文頁數: | 154 |
| 中文關鍵詞: | 行動雲端運算 、應用程式服務平台 、遠端操控 、行動裝置 、裝置資源共享 |
| 外文關鍵詞: | mobile cloud computing, device sharing, mobile device, application server |
| 相關次數: | 點閱:97 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
現今智慧型與嵌入式裝置平台蓬勃發展,雲端運算技術成為資訊發展之趨勢。行動雲端運算技術透過卸載可將應用程式佈署至雲端伺服器,解決應用程式因行動裝置硬體資源之限制,造成應用程式執行效能不佳、儲存空間不足與電量消耗等問題。然而,目前行動平台種類繁多,因系統架構相異造成雲端伺服器必須提供各平台之程式執行環境,而建置於雲端伺服器之行動平台彼此獨立運行,使得行動平台使用者只能取得單一行動平台之服務與資源。
本論文設計之行動應用遠端服務平台,提供伺服器端一應用程式與服務程式之運行環境,使得相異平台之程式能同時執行於平台上,共享系統服務與資源;客戶端之行動平台能透過瀏覽器連線至伺服器端,並操作應用程式。其包含四項重點:(1)整合Android原生使用者空間於Linux系統環境;(2)整合Android應用程式開發環境於Linux系統環境;(3)設計裝置服務管理框架與裝置資料之共享機制;(4)提供裝置存取介面,供應用程式取得裝置服務。
本論文實作內容以Android應用伺服器與Linux作業系統統一化硬體抽象層為基礎,建立行動應用之遠端服務平台,前者負責處理使用者之行動平台與伺服器端之行動應用遠端服務平台溝通;後者提供硬體抽象層供裝置服務程式存取實體裝置。本平台將Android 之IPC機制以及系統服務程式、函式庫與常駐程式整合至Linux系統環境,另融入Android之應用程式開發環境,並設計裝置服務管理框架,負責配置裝置使用權與裝置資料給應用程式,使應用程式彼此間能共享平台之裝置資源。
本論文的貢獻在於設計一行動應用遠端服務平台,其系統平台以Linux為基礎,並加入Android原生使用者空間,使得相異平台之應用程式能卸載至遠端服務平台之上,而不用額外建置程式執行環境。此外,應用程式能藉由裝置服務管理框架,能夠存取佈署於平台之裝置並共享裝置資料。
Smart embedded system is flourishing nowadays and cloud computing has become reality of information technology. However, applications that execute on mobile device are commonly restricted by hardware resources and suffer from application performance, shortage of storage space and limitation of power supply. In order to solve these problems, mobile cloud computing exercises offloading to migrate the applications to servers on the side of cloud computing. However, owing to the wide variety of mobile platforms and the difference of system architecture, cloud server commonly provides a runtime environment for each mobile platform by virtualization. With the virtualization technology, mobile platforms can run independently. For the reasons given above, it causes the problems as follows: it increases heavy workload for cloud server; the processes on mobile platform cannot communicate with each other and may not make efficient usage of cloud server.
In this thesis, a remote service platform for mobile applications (MARSP) is designed and implemented. It provides a runtime environment at server side for Linux and Android applications. The applications for different platforms can use MARSP at the same platform and share system services and resources. On the other hand, the services which execute on different platforms can communicate with each other. There are four main design issues as follows: (1) integrate Android native user space to Linux; (2) integrate the Android build system into Linux; (3) design device service manager framework and the mechanism of sharing devices; (4) provide device access interface for applications getting device services.
The implementation of MARSP is based on Android Application Server and UHAL. Android Application Server handles the communication between mobile platform on client side and MARSP on server side while UHAL provides a unified hardware abstract layer for accessing to devices. On MARSP, we integrate Android IPC mechanism, system services, libraries and daemon processes to Linux System and integrate with Android build system. We also design a device service manager framework which can manage device access right and device data to applications, and the applications can share resources of device on the platform with each other.
The main contribution of this thesis is providing a runtime environment for applications and services on remote server. MARSP is based on Linux, and integrate Android native user space in it to enable the applications on different platforms to offload MARSP without building additional runtime environment, and application developers don’t need to develop different versions for different platforms. The application and service which execute on MARSP can communicate with each other by inner-process communication; Applications can access the device that deployed on MARSP and share resources of device by device service manager framework. This advantages for applications to share hardware resources on MARSP and the development of new application scenarios.
[1]Activity's lifecycle, http://developer.android.com/guide/components/activities.html, accessed on 2014-10-17.
[2]Android Application Fundamentals, http://bluegray-javalearning.blogspot.tw/2011/03/android-application-fundamentals.html, accessed on 2014-10-20.
[3]Android Intent, http://developer.android.com/reference/android/content/Intent.html, accessed on 2014-10-20.
[4]Android Kernel Features, http://elinux.org/Android_Kernel_Features, accessed on 2014-10-24.
[5]Android Mainlining Project, http://elinux.org/Android_Mainlining_Project, accessed on 2014-10-23.
[6]Android SDK, http://developer.android.com/sdk/index.html, accessed on 2014-10-16.
[7]Android, http://en.wikipedia.org/wiki/Android_(operating_system), accessed on 2014-10-16.
[8]Apache Cordova, http://cordova.apache.org/, accessed on 2014-10-13.
[9]Apache License 2.0, https://www.openfoundry.org/tw/licenses/29-apache-license-20apache-20, accessed on 2014-10-16.
[10]Application programming interface(API), http://en.wikipedia.org/wiki/Application_programming_interface, accessed on 2014-10-17.
[11]Bhanu Kaushik, Honggang Zhang, “SmartParcel: A Collaborative Data Sharing Framework for Mobile Operating Systems, IEEE,” International Conference on Distributed Computing Systems Workshops, 2013.
[12]Bringing Android closer to the mainline, http://lwn.net/Articles/472984/, accessed on 2014-10-23.
[13]Byung-Gon Chun, Sunghwan Ihm, Petros Maniatis, “CloneCloud: Elastic Execution between Mobile Device and Cloud, ” ACM EuroSys, April 2010.
[14]Chroot, http://en.wikipedia.org/wiki/Chroot, accessed on 2014-10-23.
[15]Cloud Computation Offloading Model, http://scriptogr.am/mendlin/post/cloud-computation-offloading-model, accessed on 2014-10-12.
[16]Dalvik,http://en.wikipedia.org/wiki/Dalvik_(software), accessed on 2014-10-16.
[17]Debian, http://en.wikipedia.org/wiki/Debian, accessed on 2014-11-23.
[18]Downloading and Building, https://source.android.com/source/building.html, accessed on 2015-2-9.
[19]Eduardo Cuervo, Aruna Balasubramanian, Dae-ki Cho, “MAUI: Making Smartphones Last Longer with Code Offload, ” ACM the 8th international conference on Mobile systems, applications, and services, 2010.
[20]epoll, http://zh.wikipedia.org/wiki/Epoll, accessed on 2014-11-27.
[21]Fangming Liu, Peng Shu, Hai Jin, Linjie Ding, Jie Yu, Di Niu, Bo Li, “Gearing resource-poor mobile devices with powerful clouds: architectures, challenges, and applications,” IEEE Wireless Communications Magazine, June 2013.
[22]Filesystem Hierarchy Standard, http://www.pathname.com/fhs/, accessed on 2014-10-20.
[23]Font rasterization, http://en.wikipedia.org/wiki/Font_rasterizatio, accessed on 2014-10-24.
[24]Frank Maker1, Yu-Hsuan Chan, “A Survey on Android vs. Linux, ” Department of Electrical and Computer Engineering, University of California, February 2011.
[25]GTK+, http://zh.wikipedia.org/wiki/GTK%2B, accessed on 2014-11-27.
[26]Hardware abstraction, http://en.wikipedia.org/wiki/Hardware_abstraction, accessed on 2014-10-24.
[27]HTML5 vs. native vs. hybrid mobile apps: 3,500 developers say all three, please, http://venturebeat.com/2013/11/20/html5-vs-native-vs-hybrid-mobile-apps-3500-developers-say-all-three-please/, accessed on 2014-10-13.
[28]Hyun-Suk Roh, Hyun-Woo Lee, Sang-Ho Lee, “A Study on Mobile Virtualization, ” Advanced Communication Technology Conference, 2014.
[29]Integrated development environment, http://en.wikipedia.org/wiki/Integrated_development_environment, accessed on 2014-10-16.
[30]Integrating GNU/Linux with Android The Matrix Way, http://whiteboard.ping.se/Android/Debian, accessed on 2014-10-24.
[31]Karim J. Yaghmour, Embedded Android, O'Reilly Media, 2013, 9781449308292.
[32]Karthik Kumar, Yung-Hsiang Lu, “Cloud computing for mobile users: Can offloading computation save energy?,” IEEE Computer Society,April 2010.
[33]Linus Torvalds, http://en.wikipedia.org/wiki/Linus_Torvalds, accessed on 2014-10-23.
[34]Linux Framebuffer, http://en.wikipedia.org/wiki/Linux_Framebuffer, accessed on 2014-10-18.
[35]Linux, http://en.wikipedia.org/wiki/Linux, accessed on 2015-2-7.
[36]List of mobile software distribution platforms, http://en.wikipedia.org/wiki/List_of_mobile_software_distribution_platforms, accessed on 2014-10-12.
[37]March Verdi, Gu Yan, Leonardi Erwin, “µCloud: Towards a New Paradigm of Rich Mobile Applications, ” The 8th International Conference on Mobile Web Information Systems, June 2011.
[38]Mark S. Gordon , D. Anoushe Jamshidi , Scott Mahlke , “COMET: Code Offload by Migrating Execution Transparently, ” the 10th USENIX conference on Operating Systems Design and Implementation, 2012.
[39]Mobile browser, http://en.wikipedia.org/wiki/Mobile_browser, accessed on 2014-10-13.
[40]Mobile cloud computing, http://en.wikipedia.org/wiki/Mobile_cloud_computing, accessed on 2014-10-13.
[41]Mobile operating system, http://en.wikipedia.org/wiki/Mobile_operating_system, accessed on 2014-10-12.
[42]Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Options, https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options, accessed on 2014-10-13.
[43]NMEA 0183, http://en.wikipedia.org/wiki/NMEA_0183, accessed on 2015-2-10.
[44]OpenBinder, http://en.wikipedia.org/wiki/OpenBinder, accessed on 2014-10-19.
[45]PhoneGap, http://phonegap.com/, accessed on 2014-10-13.
[46]Pramita Mitra, “SENSOR SHARING IN MOBILE AD-HOC NETWORKS, ” Graduate Program in Computer Science and Engineering Notre Dame, April 2013.
[47]Priya.A.Kotwal1, Adwitiy.R.Singh2, “Evolution and Effects of Mobile Cloud Computing, Middleware Services on Cloud, Future Prospects: A peek into the Mobile Cloud Operating Systems, ” IEEE International Conference on Computational Intelligence and Computing Research, 2012.
[48]Protected mode, http://en.wikipedia.org/wiki/Protected_mode, accessed on 2014-10-18.
[49]Sencha Touch, http://www.sencha.com/products/touch/, accessed on 2014-10-13.
[50]Skia Graphics Library, http://zh.wikipedia.org/wiki/Skia_Graphics_Library, accessed on 2014-11-23.
[51]Sokol Kosta , Andrius Aucinas , “Pan Hui, ThinkAir: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading, ” IEEE INFOCOM, March 2012.
[52]Sourabh Ghorpade, Nikhil Chavan, Akash Gokhale, “A Framework For Executing Android Applications On The Cloud, ” IEEE, International Conference on Advances in Computing, Communications and Informatics, Aug 2013.
[53]System V IPC, http://www.tldp.org/LDP/lpg/node21.html, accessed on 2014-10-19.
[54]Titanium, http://www.appcelerator.com/titanium/, accessed on 2014-10-13.
[55]To consolidate or not to consolidate: Resource-intensive applications, http://searchservervirtualization.techtarget.com/tip/To-consolidate-or-not-to-consolidate-Resource-intensive-applications, accessed on 2014-10-12.
[56]User space, http://en.wikipedia.org/wiki/User_space, accessed on 2014-10-18.
[57]Web Application, http://en.wikipedia.org/wiki/Web_application, accessed on 2014-10-12.
[58]Wrapper library, http://en.wikipedia.org/wiki/Wrapper_library, accessed on 2014-10-17.
[59]Write once, run anywhere, http://en.wikipedia.org/wiki/Write_once,_run_anywhere, accessed on 2014-10-12.
[60]X Window System, http://zh.wikipedia.org/wiki/X_Window%E7%B3%BB%E7%B5%B1, accessed on 2014-10-13.
[61]Xinwen Zhang, Sangoh Jeong, AnugeethaKunjithapatham, “Towards an Elastic Application Model for Augmenting Computing Capabilities of Mobile Platforms, ” LNICST 2010.
[62]王裴立, “Linux作業系統統一化硬體抽象層之設計與實作, ” 碩士論文, 國立成功大學, 2014.
[63]吳宜澧, “Android應用伺服器之設計與實作, ” 碩士論文, 國立成功大學, 2013.
[64]林建宏, “XHTML5: 基於HTML5之雲端計算環境X視窗系統操作系統, ” 碩士論文, 國立成功大學, 2012.
[65]從全球智慧型行動終端市場趨勢看我國產業發展, http://std-share.itri.org.tw/Content/Files/Industry/Files/從全球智慧型行動終端市場趨勢看我國產業發展.pdf, accessed on 2014-10-10.
[66]陳俊宏, 什麼是Intent ?, http://www.jollen.org/blog/2009/07/jollen-android-programming-26.html, accessed on 2014-10-20.
[67]楊豐盛, Android技術內幕:探索Android核心原理與系統開發, 碁峰出版社, 2011, 9789862763407.
[68]羅昇陽, 老羅的Android之旅, http://blog.csdn.net/luoshengyang/article/details/6618363, accessed on 2015-2-7.
[69]羅昇陽, 老羅的Android之旅, http://blog.csdn.net/luoshengyang/article/details/7846923, accessed on 2015-2-7.