1、1作为服务平台的 Android摘要:智能手机用户和移动应用的数量正在迅速的增长。智能手机预计将来会有类似 PC 的功能,但是硬件资源,如 CPU,内存和电池任然制约着移动设备使用云端的服务器资源。我们建议 Android 作为一个服务平台,可以使 Android应用程序通过网络使用服务端的资源。虽然 Android 主要用户职能手机的物力设计,但是 Android 的两外两个功能是非常有用的。Android 是开源产品,显示Android 的服务器平台上运行的 x86 CPU,我们有三种类型的多租户结构,并讨论了它的 100 多个现实需要。1.介绍智能机的用户和移动应用程序的数量在快速的上升
2、。根据最新的报告,在美国,有 4500 万人拥有智能手机,并且有 2.34 亿人订阅手机移动程序。现在有几个手机操作系统,比如 Symbian,ios,Android 和 Window Mobile。由于数以万计的程序开发者为这些平台开发多种应用程序,用户可以轻松的享受他们的智能手机。虽然智能机的功能类似与 PC,但是硬件资源,比如 CPU,内存和电池很有限,因此,许多程序开发人员不得不考虑这些限制。为了解决资源的问题,一些研究人员提出通过云服务器为智能机提供服务。在这个背景下,我们提出 Android 作为一个服务平台,有能力为用户提供远程的服务。我们讨论采用这个服务器的目的如下:通过使用手
3、机操作系统,可以使为智能手机设计的移动程序,比如软件,键盘,触摸屏和许多传感器能够重复使用。由于移动操作系统的分辨率较低,所以通过网络使用远程应用程序比桌面操作系统好。Android 是由 google 开发的一个开源操作系统。使用Android 服务平台主要原因是它不仅能应用与手机,也能应用于 X86 平台。我们提出 Android 作为一个多租户架构的服务器平台。第二节将介绍使用移动程序在服务器上运行的背景和动机。第三节将讨论相关的工作,第四节阐明了采用 Android 的多租户架构类型,第五节将讨论使之成为现实的技术方法。第六节作为本文的结束。作为像 Dropbox 和 Zumodriv
4、e 的服务提供,提供在线的存储服务,远程服务器上使用的移动应用程序架构是很多的用户受益。这种做法即所谓的云服务2器上得移动应用平台,不仅能再云服务器上处理用户的数据,还能处理用户的移动程序。这种方法通过以下方法改变应用程序的生命周期,一经编写,任何地方都可以运行,一经安装,任何地方都可以使用。图 1 做了一个概念的概述。通过在云服务器上执行一次移动应用程序,用户和开发人员将不受设备的限制,比如 CUP 电源,内存,电池和操作系统和版本的软件环境。而且,用户一旦在云服务器上安装了移动应用程序,他/她可以在任何地方任何设备上使用这个程序。2.动机多租户的 Android 系统多租户,以为着许多用户
5、在同一个服务器上运行软件,是云计算的一个重要特征。从经济和生态的角度来看,它有利于用户之间共享硬件资源。因为移动操作系统对资源的要求低,因此,使用移动操作系统比桌面的操作系统更有效。然而,据我们所知,仍然没有服务器采用 Android 作为多租户的系统。我们讨论多租户架构的 Android 系统和如何构造它。集成移动设备和云有研究者已经提出了移动设备与云计算之间的整合。Satyanarayanan 等人提出他们的愿景,是移动用户能够无缝的使用附近的电脑获得通过实例,迅速合成附近的基础设施,通过无线局域网访问虚拟机的一个“cloudlet”云计算资源。Canepa 等人提出了一个名为“特设云服务
6、供应商”的一个框架。在这个框架内,移动设备可以通过他们周围的资源去执行工作,就像在一个云服务器一样。我们的做法与 Chun 和 Maniatis 密切相关。他们提出了克隆虚拟机来运行移动程序,就好像他们是在移动设备上运行一样。他们意识到五个加快程序运行的类别,即初级,底色,主线,硬件和多重执行,并且找到了发现英寸的方法。我们的 Android 的多租户架构可以被看做是对多重的具体研究。多租户Royon 等人提出了多用户,多环境的名为“虚拟服务网关”的执行环境。他们通过修改 Java 运行时间来归入现有的多应用环境的方法并提出了一个覆盖的方式来运行与原来几乎一样的应用程序。修改方法的性能和隔离的
7、优势,覆3盖方法有一个标准的 Java 虚拟机的优点。Bezemer 在讨论多租户的方向。他们认识到多租户平台的五大功能,即执行,可扩展性,安全性,零停止时间和维修,以防止重复的维修。我们将根据其中的一些特性讨论和评估拟议的构架。除了移动应用平台建设,我们先前已经提出了一个名为“基于 IP 的虚拟智能手机”概念原型实施的举证。实施概述如图 2 所示。这个原型,Android-X86 采用运行在虚拟机上的移动服务器操作系统。客户端程序从物理设备上传输各种事件,不仅只有键盘,还有触摸屏和各种传感器,像 GPRS,加速度计,温度计,移动服务器操作系统和和图形屏幕的更新靠接收虚拟网络计算(VNC)。这
8、些程序能够像在物理的智能手机上一样使用服务器端的虚拟移动操作系统,比如,应用程序。本节介绍构建 Android 的多租户架构过程的相关工作。Android 系统的信息是借鉴谷歌的“应用程序开发”的文件。我们将讨论多租户架构的的三种类型的方法,hypervisor 层,内核层,框架层。如图 3 所示的使用通过 IP 系统的知识产权的 hypervisor 层方法已经在第三节开始了。每个用户拥有她/他在服务器上的 Android OS 映像和自由运行在一个虚拟机多租户是由她/他在虚拟机上申请实现的。这种方法的优势是应用程序的可用性和维护。从应用程序的可用性角度来看,每一个在 Android 上运行
9、的程序是可用的,因为每个 Android 操作系统只能运行一个应用程序。他维护的重点是有关操作系统的升级。Android 有不同的版本,而且版本还在升级。4第三个方法是在内层实现多租户功能。如图 3 所示。这种方法改变Android,使之在独立的进程里运行多个用户的应用程序。这种做法类似于在一个普通的客户机服务器上运行多个用户应用。主要的挑战是原始的 Android 只支持一个显示器和键盘的设备,因为 Android 是主要设计是在智能机上。另一种方法是在框架层上创建多租户功能,类似于现有的基于 Java 的多租户架构。如图 3,这种方式重塑 Android 的框架和 API 来支持多用户应用
10、程序,主要的挑战是如何修改框架来运行现有的 Android 应用程序。3.相关工作表 1 所示是定量的评价这三种类型架构。正如我们看到的,pypervisor 层的方法是可行的并能很好的维护自己的资源,但它难以控制未使用的资源。另外两种方法在可扩展性上有优势,但在维修中处于不利的地位,因为它们改变了Android 操作系统。从运行现有的应用程序的角度来看,核心层的方法更好,因为它的剂量不会改变 Android 运行时的环境。此外,我们假设,内核层的方法是很容易发展的,因为 Android 是基于 Linux 内核,这样就可以支持多台显示器,键盘和应用实施。4.相关技术API(Applicati
11、on Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。其中分成:Windows APIAPI 函数包含在 Windows 系统目录下的动态连接库文件中。Windows API是一套用来控制 Windows 的各个部件的外观和行为的预先定义的 Windows 函数。用户的每个动作都会引发一个或几个函数的运行以告诉 Windows 发生了什么。这在某种程度上很像 Windows 的天然代码。而其他的语言只是提供一种能自动而且更容易的访问 API 的方法
12、。当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体,VB 获取这个调用并经过分析后生成一个特定事件。更易理解来说:Windows 系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时他也是一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数)可以帮助应用程序达到开启视窗、描绘图形和5使用周边设备等目的,由于这些函数服务的对象是应用程序,所以称之为Application Programming Interface,简称 API 函数。WIN32 API 也就是MicrosoftWindows 32 位平台的应用程序编程接口。inux API在 linux
13、 中,用户编程接口 API 遵循了 UNIX 中最流行的应用编程界面标准-POSIX 标准。POSIX 标准是由 IEEE 和 ISO/IEC 共同开发的标准系统。该标准基于当时现有的 UNIX 实践和经验,描述了操作系统的系统调用编程接口API,用于保证应用程序可以在源程序一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过 C 库(LIBC)来实现的。JSONJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript 的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C、
14、C+、C# 、Java、JavaScript、Perl、Python 等)。这些特性使 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON 结构有两种结构 json 简单说就是 javascript 中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。1、对象:对象在 js 中表示为“”括起来的内容,数据结构为 key: value,key:value,. 的键值对的结构,在面向对象的语言中, key 为对象的属性,value 为对应的属性值,所以很容易理解,取值方法为 对象.key 获取
15、属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。2、数组:数组在 js 中是中括号“”括起来的内容,数据结构为 “java“,“javascript“,“vb“,.,取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是6JavaScript 很容易解释它,而且 JSON 可以表示比“名称 / 值对“ 更复杂的结构。例如,可
16、以表示数组和复杂的对象,而不仅仅是键和值的简单列表。MY SQLMySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。 MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。My
17、SQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。与其他的大型数据例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQ L 是开放源码软件,因此可以大大降低总体拥有成本。在本文中,我们提出了 Android 作为一个服务器平台系统,使多个用户共享服务器端的 Android 操作系统。我们还讲述了和多租户相关的技术难度和方法,这是最初为单用户架构设计的。我们计划开发一个关于多租户架构的原型系统。我们相信,拟议的架构显示了应用程序基于虚拟化的图像的高效性能。7