| 研究生: |
林庭延 Lin, Ting-Yen |
|---|---|
| 論文名稱: |
XBinder之設計與實作 The Design and Implementation of XBinder |
| 指導教授: |
陳 敬
Chen, Jing |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電腦與通信工程研究所 Institute of Computer & Communication Engineering |
| 論文出版年: | 2015 |
| 畢業學年度: | 103 |
| 語文別: | 中文 |
| 論文頁數: | 102 |
| 中文關鍵詞: | Android 、Binder 、IPC 、RPC 、遠端服務 |
| 外文關鍵詞: | Android, Binder, IPC, RPC, Remote Cooperative |
| 相關次數: | 點閱:71 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
隨著行動裝置日趨普及,行動裝置已成為多樣化應用之平台。然而行動應用程式之發展仍受限於硬體平台之限制,將行動應用程式佈署於伺服器執行,可克服行動裝置計算能力、資源、電池容量有限等問題。然而,此一架構僅適用於可獨立運作之應用程式,尚不足以支援執行於遠端之程式需要與執行於行動計算平台之程式互相合作之服務模式。為此,本論文以Linux作業系統環境為基礎設計並實作一XBinder,並以Android系統為示範,使執行於Linux伺服器之服務能與遠端Android應用程式相互合作。
本文闡述XBinder之設計與實作。使用者透過此XBinder能達到四項好處:(1)Linux與Android系統之行程能遠端溝通;本論文設計之XBinder能安裝於Android、Linux系統平台上,各平台間透過XBinder使其應用程式與服務相互溝通、合作。(2)簡化遠端物件之開發與使用;開發者不需考慮使用遠端物件之封包傳輸及封裝,遠端物件不需修改即可執行於本機或遠端。(3)對等式之XBinder;每一個安裝XBinder之系統平台具有相同之功能,每一個系統平台可視為一個節點,且節點間能相互連線、提供服務,建構多節點之服務環境。(4)支援多人同時使用;本論文設計多人連線管理,使每一節點皆能提供服務給遠端節點,在多對一環境中不互相干擾。
XBinder之實作以Android系統之行程溝通之機制 Binder為基礎,Binder 提供訊息傳遞與物件導向式合作。實作內容包含:Linux系統之XBinder,修改Android Binder Driver與Android系統以建構行程之遠端溝通機制、遠端服務管理機制、管理資料之傳送以支援多人同時使用等功能。
Mobile device nowadays not only has become more and more popular, but also is considered as a multifunctional platform definitely. Nevertheless, mobile applications are still restricted by its hardware platform environment. Offload mobile application to a virtual machine deployed on cloud server is currently a common solution, which may overcome the limitations of hardware resources. However, this method appears to be effective only for the cases of running stand-alone applications and can’t support cooperative operations of service invocation across platform boundary. For this purpose, this thesis takes Android system as an example and expands the Inter-Process Communication (IPC) mechanism to build a collaborative and cooperative work environment. The new IPC mechanism is called XBinder.
The development of XBinder presents four important features. First, it provides a cross-platform communication mechanism. XBinder could be installed on Linux or Android system, then all processes, whether applications or services, can cooperate with each other running on the same platform or different platform through the functionality of XBinder. Second, XBinder helps simplify the development and usage of remote objects. It works well without the programmer explicitly coding the details for low-level socket operations and remote interactions. Third, every platform with XBinder installed is a peer node which, by directly transmitting network packets to other nodes, provides and applies remote services. Fourth, XBinder supports concurrent operations for multiple connections. The connections and services of different nodes are isolated, and therefore there is no interference when the nodes are working concurrently.
The main contributions of this thesis are providing a way for mobile applications to cooperate with local or remote services without designing complicate network transmission mechanism. Moreover, mobile applications can effectively and efficiently communicate with services which execute either on local node or remote node.
[1]Aleksandar Gargenta, “Deep Dive into Android IPC/Binder Framework”, Android Builders Summit, 2013.
[2]Android Developer, http://developer.android.com/index.html, accessed on 2014-03-22.
[3]Android Emulator – Android Developer, http://developer.android.com/tools/help/emulator.html, accessed on 2014-04-20.
[4]Android, http://en.wikipedia.org/wiki/Android_(operating_system), accessed on 2014-05-11.
[5]Android Interface Definition Language, http://developer.android.com/guide/components/aidl.html, accessed on 2014-09-28.
[6]Android SDK tools, http://developer.android.com/tools/sdk/tools-notes.html, accessed on 2014-09-28.
[7]Android專用驅動, http://blog.csdn.net/luoshengyang/article/details/12957169, accessed on 2014-06-02.
[8]BlackBerry 10, http://en.wikipedia.org/wiki/BlackBerry_10, accessed on 2014-05-14.
[9]Eunhoe Kim, Kihyun Yun, Jaeyoung Choi, ”RSP: A Remote OSGi Service Sharing Scheme”, Ubiquitous, Autonomic and Trusted Computing, 2009.
[10]Eric Y. Chen, Mistutaka Itoh, ”Virtual Smartphone over IP”, International Symposium on a World of Wireless Mobile and Multimedia Networks, 2010.
[11]Google Maps – Google Play, https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en, accessed on 2014-08-25.
[12]iOS, http://en.wikipedia.org/wiki/IOS_(Apple), accessed on 2014-05-14.
[13]Inter Process Communication, http://en.wikipedia.org/wiki/Inter-process_communicationm, accessed on 2014-05-25.
[14]Java RMI, http://en.wikipedia.org/wiki/Java_remote_method_invocation, accessed on 2014-06-09.
[15]Juraj Somorovsky, Daniel BuBmeyer, ”Android Binder”, Seminarthesis, 2011.
[16]Karthik Kumar, Yung-Hsiang Lu, “Cloud Computing for Mobile Users: Can Offloading Computation Save Energy ?”, IEEE Computer, Vol. 43, Issue 4, 2010.
[17]Kazuhiro Nakao, Yukikazu Nakamoto, “Toward Remote Service Invocation in Android”, 9th International Conference on Ubiquitous Intelligence and Computing, 2012.
[18]Kernel Debug Tool, https://www.kernel.org/doc/htmldocs/kgdb/EnableKGDB.html, accessed on 2014-09-29.
[19]Mahadev Satyanarayanan, Paramvir Bahl, Ramon Caceres, Nigel Davies, ”The Case for VM-Based Cloudlets in Mobile Computing”, IEEE Pervasive Computing, Vol. 8, Issue 4, 2009.
[20]Masashi Toyama, Shunsuke Kurumatani, Joo Heo, Kenji Terada, Eric Y. Chen, “Android as a Server Platform”, The 8th Annual IEEE Consumer Communications and Network Conference, 2011.
[21]Mobile Operating System, http://en.wikipedia.org/wiki/Mobile_operating_system, accessed on 2014-05-14.
[22]Network Socket , http://en.wikipedia.org/wiki/Network_socket, accessed on 2014-09-15.
[23]OpenBinder, http://www.angryredplanet.com/~hackbod/openbinder/docs/html, accessed on 2014-05-11.
[24]OSGi, http://en.wikipedia.org/wiki/OSGi, accessed on 2014-06-11.
[25]Richard Stones, Neil Matthew, “Beginning Linux Programming”, 4th edition, Wiley Publishing Inc., 2008.
[26]Software development kit, http://en.wikipedia.org/wiki/Software_development_kit, accessed on 2014-05-14.
[27]Sourabh Ghorpade, Nikhil Chavan, Akash Gokhale, Deepak Sapkal, “Framework For Executing Android Applications On The Cloud” , ICACCI, 2013.
[28]Susmit Bagchi, ”Distributed IPC using Virtual Device Driver in Monolithic Kernel”, IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, 2012.
[29]Thin_client, http://en.wikipedia.org/wiki/Thin_client , accessed on 2014-09-29.
[30]Windows Phone , http://en.wikipedia.org/wiki/Windows_Phone, accessed on 2014-05-14.
[31]宋卓翰, “Thin-client應用呈現平台的最佳化設計與實作”, 碩士論文, 國立交通大學, 2006.
[32]王裴立, “Linux作業系統統一化硬體抽象層之設計與實作”, 碩士論文, 國立成功大學, 2014.