摘  要: 提出了基于Android 手机的远程控制系统设计方案,该系统基于Openmobster开源手机云计算平台。介绍了整个系统结构框架,详细分析了各个模块的具体实现。通过应用实例在设备上进行了测试,实现了云服务器端对Android智能手机终端的访问和远程控制。 关键词: 云计算; Openmobster; Android; 远程控制     随着

摘  要: 提出了基于Android 手机的远程控制系统设计方案,该系统基于Openmobster开源手机云计算平台。介绍了整个系统结构框架,详细分析了各个模块的具体实现。通过应用实例在设备上进行了测试,实现了云服务器端对Android智能手机终端的访问和远程控制。
关键词: 云计算; Openmobster; Android; 远程控制

随着移动互联网的快速发展,云计算在移动平台的应用引发了一场变革。在移动领域的云计算(移动云计算)是利用云计算技术解决移动终端的存储和数据处理等问题,帮助用户摆脱硬件设备、存储设备、应用程序等条件的限制,实现将移动终端应用的“计算”从终端转移到服务器端, 从而弱化了对移动终端设备的处理要求[1]。Openmobster是一个开源的集成了手机应用的云服务平台,具有开发手机同步应用、开发推送应用、开发离线手机应用、应用开发框架、移动云服务的服务器端开发框架和管理控制台等特征。其目的是让应用开发人员省掉开发底层同步及消息通知中间件的工作,只需将注意力集中于更好地实现业务需求上。
    本文介绍了一种基于Android智能终端的远程控制系统,在系统中Android手机利用周围的无线网络资源,与云端服务器自发交互,如远程下发通知、远程设置密码、远程GPS定位、远程数据同步等操作。通过该系统使云计算真正“落地”,实实在在地为手机提供服务。
1 Openmobster平台的概述
1.1 Openmobster对应用的支持

    (1)数据同步
    无需任何特定的设备间的同步程序,即可支持云端和终端间数据的自动同步。允许应用工作于在线或离线模式,一旦检测到终端数据状态变更,立即发起对云端的自动数据同步。
    (2)实时推送通知消息
    云端的状态变更可以通过实时消息推送通知到终端,该推送机制使用基于网络Socket的方式,而不是发送短消息或电邮的方式。
    (3)移动远程调用(Mobile RPC)
    提供了一种访问云端服务的方式,无需复杂的网络底层编码(http编码)即可通过RPC API接口进行调用。
    (4)管理控制台
    提供了一个管理控制台用于对云端服务器进行管理(含安全认证、账号设置等)。
1.2 Openmobster平台的架构
    (1)网络拓扑结构
    Openmobster平台的网络拓扑结构如图1所示[2]。

(2)终端软件堆栈结构
    Openmobster平台的终端软件堆栈结构如图2所示。主要包含以下模块:
    同步模块:自动将所有本地状态变更与云端数据保持同步。
    推送模块:管理来自云端服务器的状态更新通知,从而改善了用户体验,使其不必主动查询新的通知。
    离线应用模块:用于Sync模块和Push模块之间的管理协调,用户可不必关注任何实际同步流程的细节,也不必关注如何处理收到的推送通知消息。
    远程调用:支持从终端到云端MobileServiceBean的同步远程调用。
    网络连接:管理云端服务器建立的网络连接,管理接收来自服务器通知的通信频道。
    Inter-App总线:提供了安装在设备上的Apps/Moblets底层通信协调。
    (3)云端软件堆栈结构
    云端软件堆栈结构主要包含以下模块:
    ①同步模块:同步设备侧数据状态变化到后端服务,这里使用了数据频道的概念。
    ②推送模块:监视数据频道的更新,一旦发现数据有更新,将发送基于Comet的通知到终端。
    ③安全模块:提供了身份验证和鉴权,以确保连接至服务器的终端得到许可。
    ④Secure Socket-Based Data Service:这是一个高性能的基于Java NIO的Socket服务器。
    ⑤Mobile RPC:服务器端的RPC框架。
    ⑥Management Console:管理控制台。
2 系统总体设计
    系统的总体设计思路是将Openmobster的Jboss服务器部署在一台PC上,负责提供底层服务并与用户的Android 手机进行通信。将Openmobster平台的客户端CloudManager安装在手机上,提供管理界面,如用户登录、设备激活、推送通知、数据同步、查看网络连接状态等。可见这是一个C/S架构的系统,其中PC作为服务器,Android 手机作为客户端。
    在该系统中,PC首先连接到网络并获取IP地址,然后将Openmobster的服务器根据此IP地址部署在PC上。Android手机通过打开WiFi连接到此网络,根据部署服务器的IP地址登录并激活手机客户端。用户便可以通过自己设计的网页界面下发控制命令到手机终端,JSP模块获取并封装这些命令字段后下发给云服务器端。CloudServer模块根据 Openmobster平台提供的一系列接口和通道,将这些命令最终下发给手机终端并执行相应的操作。系统的总体结构如图3 所示。

图3所示结构图主要涉及以下功能模块:
    (1)Jboss服务器:Openmobster的服务器均采用Jboss来搭建服务器。
    (2)JSP代码:网页界面下发的命令字段通过JSP代码封装并下发至云服务器端的工程。
    (3)网页:由于Openmobster只有控制台没有自己的网站,操作起来极其不便。因此在本文中设计了一个网页界面,实现与用户的交互。
    (4)HSQLDB数据库:建立一个数据库,方便用户数据的存储和读取。
    (5)Hibernate:建立与数据库的映射关系,方便用户查看所需要的数据。
    (6)Openmobster:为手机云应用的开发提供基本的支持。
    (7)Android:手机终端应用开发。
    (8)CloudManager:安装在手机上的客户端。
3 系统的具体实现
3.1搭建开发环境

    (1)云服务器端
   由于Openmobster平台运行于Jboss服务器上,所以先搭建Jboss服务器,下载Jboss软件并进行相关配置使得Jboss主页能够访问。然后对所使用的数据库预先进行配置,并将数据库中的Openmobster目录拷入server下。具体步骤如下:
    首先打开Windows控制台,进入到$JBOSS\bin目录下,运行:
    Run -c openmobster -b “IP address”以启动JBoss服务器。
    然后在浏览器中运行http://{IP address }:{port}/o确认服务器已正常启动。
    使用管理控制台,进入$Openmobster \cloudConsole\bin目录下,运行以下脚本:openmobster.sh或openmobster.bat启动控制台。
    如果是第一次运行,使用如下命令配置root账号:
    configure -a {cloudServer IP Address} -po 1502 -u root -p { password }
    然后以root账户登录:
    startadmin -u root -p { password }
    最后配置其他普通用户账号:
    register -u {email of the user being registered} -p { password }
  (2)手机终端:
    手机终端也需要安装相应的Openmobster的服务模块,该服务模块需要开机自启动。
    将CloudManager app模块安装到手机,然后启动该应用,选择“Activate”菜单,按提示逐步输入云端服务器IP地址,用户注册帐号及密码等实现登录。
3.2 云服务器端的开发
    (1)实现一个MobileBean类型,并添加getXXX()、setXXX()方法。MobileBean封装了用于和服务器端同步的域级信息。通过服务器上的频道传播到手机终端。
    (2)实现一个Channel类型,需要首先实现CRUD(Create, Read, Update, Delete)接口来暴露后端数据。Create用于创建一个MobileBean的新实例,当设备侧检查到一个新的实例并同步回云端,返回单独的id值。Read用于返回对应id完整加载的MobileBean。另外还有一个readAll()方法用于返回所有相关的MobileBean。
    (3)实现bootup()方法,该方法用于返回使程序正常启动所需的足够信息 (beans),一般在频道第一次启动时调用。
     public List<? extends MobileBean> bootup()
     {
     List<DemoBean>bootupBeans=new ArrayList<DemoBean>();
     DemoBean Bean = new DemoBean ();
  bootupBeans.add(syncBean);
     return bootupBeans;
     }
     实现scanForNew方法,该方法用于检查频道所连接的后端是否已经创建了一个新的MobileBean,基于此,将返回新的bean的id或null。如果这些新的bean可用,信息将被自动同步并通知给用户。
      public String[ ] scanForNew(Device device, Date lastScanTimestamp)
      {
        return new String[]{"push:1", "push:2"};
     }
     (4)声明相关的MobileServiceBean,实现其invoke方法:
    List<EmailBean> mockBeans = EmailBean.generateMockBeans();
     List<String> subjects = new ArrayList<String>();
     for(EmailBean local:mockBeans)
     {
     subjects.add("id="+local.getOid()+":subject="+local.getSubject());
    } response.setListAttribute("subjects", subjects);
     (5)在openmobster-config.xml 中注册该频道。
  <bean name="demobean" class="com.demo.sync.DemoBeanChannel">
3.3 Android手机终端的开发
    (1)编写HomeScreen。HomeScreen组件代表了Android
app启动时的屏幕主界面。其postRender()方法的实现如下:。
    if(MobileBean.isBooted("demobean"))
    {
    MobileBean[]demobeans=MobileBean.readAll("demobean");
     String[] ui = new String[demobeans.length];
     for(int i=0,size=ui.length;i<size;i++)
      {
      ui[i] = demobeans [i].getValue("message");
      }
    listApp.setListAdapter(new ArrayAdapter(listApp,
  android.R.layout.simple_list_item_1, ui));
  }
        (2)在moblet-app.xml 进行配置。
    <screen>com.demo.app.HomeScreen</screen>
3.4 系统的总体设计流程
    整个系统的总体设计流程如图4所示。具体设计步骤如下:

(1)用户通过浏览器打开自己设计的网页,选取需要下发的控制命令,然后输入已经在服务器上配置好的账号和密码,点击“确定”后调用JSP代码:
    <form action="action.jsp" method="post" name="form1" id="form1">
    (2)JSP执行过程为将网页请求request封装的各功能选项字段取出并封装。
    (3)CloudServer中定义的DemoChannel会定期调用scanForNew并对上面的字段进行检查,一旦发现有新数据,即通过read()接口取出该数据,将其封装到DemoBean对象中,并通过OpenMobster下发推送通知到终端。
    (4)终端的后台服务Service同样建立了对应云端
DemoChannel的接口,一旦收到频道的下发通知,即通过发送Intent的方式启动一个Activity,在启动过程中可以通过MobileBean.read(channelUri,userName)接口读出对应账号名和通道下发MobileBean,通过MobileBean.getValue接口获得下发通知中的各功能命令字段。
    (5)通过对上述各命令字段的含义解析,获取字段的值,并进入等待队列。如果手机上的客户端已经被用户登录并激活,将调用Android平台提供的各个功能接口,完成下发的控制命令操作[3]。
 (6)如果下发的命令字段中要求将手机中的数据上传到服务器时,通过类似下发的逆过程,相应地建立上传的通道,将数据上传到服务器侧。如果用户有需要,还可以将这些数据展示在网页界面上。
4 实现结果
    系统采用了C/S模式的架构进行实现,服务器与客户端通过Socket 进行网络通信。在PC 端Openmobster的实现中,采用了基于HTTP长连接的“服务器推送”技术,通过长连接,服务器随时发送Push通知;服务器采用移动App框架结构,手机的客户端做成一个可开机自启动的apk,该手机只要接入网络而且被激活,会在后台一直运行等待用户发送命令。该系统可实现远程追踪、远程擦除、远程锁定、远程同步、远程推送、远程过程调用等功能[4],实现环境为Eclipse。Android 手机端的激活与远程下发和锁定过程如图5所示。

基于Android智能终端的远程控制系统相关推荐

  1. android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究

    第 42卷 第 10A期 2015年 10月 计 算 机 科 学 Computer Science Vo1.42 No.10A Oct 2015 基于 Android智能终端微信应用的数字取证分析模型 ...

  2. android 智能家居 pdf,基于Android的智能家居控制系统的设计探究.pdf

    设计与研发 2015.10 基于Android的智能家居控制系统的设计研究 马洪轩 (中南大学,湖南长沙,410012) 摘要:随着科学技术的发展,各种电器和家具控制的智能化是目前市场流行起来.人们生 ...

  3. 基于STC89C52单片机的远程控制系统

    1.设计要求 利用串口技术,控制数码管.LED.小车的启停 2.设计概述         本实验所用芯片为STC89C52,所用硬件是由华清远见基于STC89C52开发的智能小车,该小车具有流水灯模块 ...

  4. android+智能家居控制系统,基于Android的智能家居控制系统设计与实现

    摘要: 随着科技的发展和人民生活水平的提高,智能家居系统逐渐走入大众视野,越来越受到人们的青睐.目前市面上智能家居产品也越来越多样化,基于Android的智能家居控制系统是目前的研究热点之一,本论文以 ...

  5. android远程定位此设备,基于Android的远程定位显示研究与实现

    摘要: 当前对车辆的远程定位和调度管理成为一项重要需求.生活节奏之快.活动范围之广使得人们希望可以随时随地对远程设备进行定位观测.随着移动互联网和智能手机的发展,利用智能手机进行远程定位已成为可能.本 ...

  6. 基于Android平台的手机安全助手的设计与实现

    1.研究(设计)目的意义及国内外研究状况和应用前景(附参考文献): (一)选题的目的和意义 Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞 ...

  7. android服务器智能家居,基于Android的智能家居系统

    五.参考文献 [1]卜晓晓.基于Android和Wi-Fi的智能家居系统的设计与实现[D].镇江:江苏大学,2016. [2]闫哲,杜涛,左海利.智能家居控制系统的设计与实现[J],自动化技术与应用. ...

  8. 基于Android的上位软件,基于Android的电子套结机上位机软件设计

    摘要: 电子套结机通常以工业计算机或触摸式控制面板作为设备控制的上位机,它们的优点在于功能完善,但是价格较贵,便携性不足,很多场合下不能满足移动控制的需求.基于Android操作系统的便携设备不仅具有 ...

  9. 基于Android的校园二手闲置物品交易系统设计与实现

    一.选题背景和意义 随着商品经济的快速发展,人们的生活中出现了大量的闲置物品,这种现象在当代大学生中尤为显著.大多数学生是通过摆地摊的方式来交易闲置物品,这种交易方式效率低下并且信息滞后.还有一部分学 ...

最新文章

  1. Spring事务管理的底层逻辑—源码解析
  2. C指针原理(45)-LINUX应用
  3. boost::allocator_value_type的实例
  4. C语言简单题-求整数段和
  5. 执行单元测试 报TEST class 有不能识别字符
  6. 内核ko模块strip使用
  7. JavaScript-Date日期对象
  8. oracle中affirm,2.Oracle Data Guard 参数介绍
  9. winform数据传递到html,C#下winform和JS的互相调用和传参(webbrowser)
  10. CHM无法打开解决办法
  11. 高级Linux Kernel Inline Hook技术分析与实现
  12. IP与子网掩码的计算
  13. html如何控制plc,PLC系统是如何控制数控机床的
  14. 【hud3966】树剖模板05
  15. 微博吃瓜总是晚一步才知道,程序员直接写了一个热搜提醒工具
  16. 仿速度装机联盟程序源码,装机联盟程序源码 安装联盟程序源码
  17. 【MyBatis】关联查询
  18. 十万评论告诉你谁在给《流浪地球》打 1 星
  19. C# 使用 ScottPlot.WinForms 实现示波器的波形显示
  20. 小度送音箱,这是只属于开发者的福利

热门文章

  1. cityscapes场景图_Dataset之Cityscapes:Cityscapes数据集的简介、安装、使用方法之详细攻略...
  2. 帮助中心在线制作工具推荐这4款,很不错哟!
  3. 安装引导黑屏_电脑开机黑屏,提示NTLDR is missing怎么解决?
  4. 为IMX6 交叉编译Mplayer
  5. H.264 软/硬编码器 画质量化分析评测
  6. appbarlayout-spring-behavior
  7. OrangeS操作系统笔记1_环境的配置与第一个系统
  8. 吉林考研计算机专业,2017计算机专业学校考研难度排行榜,计算机考研难度排名(2)...
  9. 杭电计算机面试都是英语,杭电英语面试问题
  10. 2023考研|上海财经大学MBA/EMBA招生录取流程正式发布-文都管联院