当前位置: 首页 > 专利查询>天津大学专利>正文

一种基于客户端微服务的APP自动协同方法技术

技术编号:19424653 阅读:24 留言:0更新日期:2018-11-14 10:26
本发明专利技术公开了一种基于客户端微服务的APP自动协同方法:微服务抽象,包括APP客户端根据服务粒度拆解为一定数量的微服务、微服务映射为规范化接口;微服务流定制支持;微服务参数获取;微服务自动启动及参数注入。本发明专利技术通过对APP客户端根据服务粒度进行拆解,并封装为客户端微服务,用户只需简单的点击选择即可定制微服务流,实现APP中特定微服务自动启动及服务参数自动注入,即通过微服务方式的APP自动协同满足用户日趋复杂的需求。

【技术实现步骤摘要】
一种基于客户端微服务的APP自动协同方法
本专利技术涉及移动计算及Android应用开发
,特别是涉及一种基于客户端微服务的APP自动协同方法。
技术介绍
用户通过APP可以随时随地访问远程云服务,移动服务生态系统在人们的日常生活中发挥着越来越重要的作用。起初,APP开发商都专注于实现特定功能,出现了大量单一服务的APP并呈现明显的功能“碎片化”特征。随着用户需求更加复杂多样化,单一APP无法满足用户需求,APP开发商逐渐将多个服务集成到他们的APP中。微服务是一种软件架构模式,可以将应用拆解为多个微服务,实现微服务间的彼此独立。现在许多移动端应用采用该架构模式。然而,微服务间无法交互,用户需要在不同的微服务间切换并重复输入服务参数。因此,提供一种基于客户端微服务的APP自动协同方法,以简化用户操作,减少流量消耗,提升用户体验。在解决移动终端的APP协同问题方面,已有许多相关成果。使用IFTTT时,用户需要创建所需的流程,包括触发器频道和动作频道,若触发器频道满足触发条件,则自动执行动作频道的动作(Macuser,2013,4(9):4-9.)。MashDroid由一个动态APP组合模型和一个数据驱动的APP推荐机制组成,对APP和APP描述进行抽象,使用语义分析、过滤和排序算法发现最有可能使用的APP(IEEEInternationalConferenceonWebServices,2015:725-730.)。虽然IFTTT支持许多APP,但需要服务提供方开放接口合作授权,且仅支持两个APP间的协同,用户只能在有限的条件下实现连锁反应;MashDroid基于豌豆荚的应用内搜索技术,即对APP也有准入门槛。随着用户需求的复杂多样化,用户往往安装了多个APP在自己的移动设备上,当需要完成某个任务时,往往花费较多时间和网络流量在选择合适的APP以及通过多次点击操作进入所需服务上,同时由于不同服务不交互导致用户需要手动进行大量操作。而目前已存在的技术方案不支持多于两个的APP协同,并且使用已有方法实现协同需要很大的努力。因此需要对现有的APP协同方法进行改进,以减轻用户负担,减少网络流量的消耗,方便用户选择合适的服务,改善用户体验。
技术实现思路
为克服现有技术的不足,针对用户在使用集成有多个微服务的APP时操作过程繁琐这一问题,本专利技术提供了一种基于客户端微服务的APP自动协同方法,通过对APP客户端根据服务粒度进行拆解,并封装为客户端微服务,用户只需简单的点击选择即可定制微服务流,实现APP中特定微服务自动启动及服务参数自动注入,即通过微服务方式的APP自动协同满足用户日趋复杂的需求。本专利技术的目的是通过以下技术方案实现的。本专利技术的基于客户端微服务的APP自动协同方法,包括以下步骤:步骤一,微服务抽象(1)APP客户端根据服务粒度拆解为一定数量的微服务:AndroidAPP客户端的每个UI对应一个Activity组件,提取同时具有enabled和exported属性的Activity,使用自动化测试工具Monkey,通过定义点击事件对初步提取出的Activity进行测试,挑选微服务的首个UI,得到微服务的静态任务,作为入口点类entry_cls;根据服务粒度,对成功启动的Activity进行分析筛选,确定微服务集合;(2)微服务映射为规范化接口:使用DumpViewHierarchyforUIautomator工具,对微服务的入口点类entry_cls进行分析,获取item的语义、语法格式及控件信息;借助静态分析工具FlowDroid,将其source和sink设置为与APP存储有关的API,获取item对应控件的动作action的存储信息;将抽象的微服务信息封装为JSON对象部署到服务端,以RESTfulAPI的形式对外提供规范化接口;步骤二,微服务流定制支持根据步骤一所抽象的APP的微服务集合,与用户设备中的APP取交集,即获取用户设备所支持的APP微服务列表,用户按照个人需求从微服务列表中选取部分微服务,定制成微服务流;步骤三,微服务参数获取利用监控器持续监听用户设备产生的事件,并对感兴趣的事件进行处理,包括微服务流何时触发、微服务流当前执行情况及协同过程中重复利用的服务参数;通过调用服务端公开的规范化接口,即获取每个微服务的抽象信息;此处,利用微服务切换说明协同方法,用<MS1,MS2,data>进行表示,即微服务MS1和MS2间通过data交互;根据抽象信息中item的action描述,生成实际可执行代码,包括借助辅助服务、adb(AndroidDebugBridge)命令对存储及节点进行操作,抓取微服务的各个item对应的参数实例,作为微服务切换的data交由数据中转站处理;数据中转站根据构建的语义关系库对微服务切换中的两个微服务的各个item的语义进行匹配,再按照统一的语法格式暂存;步骤四,微服务自动启动及参数注入在每个微服务执行结束时,判断是否还有下一个微服务要执行,若判断为微服务流未结束,则获取服务端所封装的微服务中的entry_cls信息作为入口点类加载微服务启动;使用Intent和ClassLoader机制将入口点类调起,即运行APP内部的微服务;同时数据中转站根据微服务切换的MS2中各个item的语法格式处理data为所需的服务参数实例,发送给执行器;执行器根据MS2的入口点类,将其加载到用户设备的前台;执行器根据MS2中各个item的action的不同,采用不同的方式对所有item进行注入操作。步骤一(2)中对于部分item,利用静态分析工具FlowDroid无法找到它的存储,使用Android提供的辅助服务及adb命令,找到item对应的辅助服务节点,结合“Input”命令对item对应的控件进行操作,作为item的action信息。与现有技术相比,本专利技术根据用户日趋复杂的多样化需求,提出了一种基于客户端微服务的APP自动协同方法,通过分析APP内部的微服务,将其抽象并封装为规范化接口,以便实现微服务自动启动及参数获取和注入,简化了用户的繁琐操作。预期的有益效果包括:(1)用户可以直接在使用前通过简单的点击选择操作定制微服务流,即可在执行过程中直接跳转到APP的某一所需微服务中,改变了以前手动多次点击才能进入各个微服务的操作,这也在一定程度上减少了网络流量的消耗。(2)本专利技术的自动协同合理使用了服务参数间的相关关系,通过语义匹配对参数进行重用,打破了APP间及微服务间的交互障碍,减少了用户的记忆负担,同时也减少了用户输入参数的操作。(3)不同于其他移动端服务组合方法,本专利技术不需要对APP做任何修改,降低了第三方APP的接入门槛附图说明图1为APP拆解为微服务的示意图;图2为具有规范化接口的微服务示例图;图3为微服务流定制页面示意图;图4为APP对应的微服务列表示意图;图5为参数注入实现图;图6为细粒度APP自动协同方法概述图;图7为基于微服务的APP自动协同实验效果图。具体实施方式下面结合附图对本专利技术作进一步的描述。本专利技术的基于客户端微服务的APP自动协同方法,具体涉及APP客户端拆解为细粒度APP并按照用户定制流程自动协同。将APP根据本文档来自技高网
...

【技术保护点】
1.一种基于客户端微服务的APP自动协同方法,其特征在于,包括以下步骤:步骤一,微服务抽象(1)APP客户端根据服务粒度拆解为一定数量的微服务:Android APP客户端的每个UI对应一个Activity组件,提取同时具有enabled和exported属性的Activity,使用自动化测试工具Monkey,通过定义点击事件对初步提取出的Activity进行测试,挑选微服务的首个UI,得到微服务的静态任务,作为入口点类entry_cls;根据服务粒度,对成功启动的Activity进行分析筛选,确定微服务集合;(2)微服务映射为规范化接口:使用Dump View Hierarchy for UI automator工具,对微服务的入口点类entry_cls进行分析,获取item的语义、语法格式及控件信息;借助静态分析工具FlowDroid,将其source和sink设置为与APP存储有关的API,获取item对应控件的动作action的存储信息;将抽象的微服务信息封装为JSON对象部署到服务端,以RESTful API的形式对外提供规范化接口;步骤二,微服务流定制支持根据步骤一所抽象的APP的微服务集合,与用户设备中的APP取交集,即获取用户设备所支持的APP微服务列表,用户按照个人需求从微服务列表中选取部分微服务,定制成微服务流;步骤三,微服务参数获取利用监控器持续监听用户设备产生的事件,并对感兴趣的事件进行处理,包括微服务流何时触发、微服务流当前执行情况及协同过程中重复利用的服务参数;通过调用服务端公开的规范化接口,即获取每个微服务的抽象信息;此处,利用微服务切换说明协同方法,用...

【技术特征摘要】
1.一种基于客户端微服务的APP自动协同方法,其特征在于,包括以下步骤:步骤一,微服务抽象(1)APP客户端根据服务粒度拆解为一定数量的微服务:AndroidAPP客户端的每个UI对应一个Activity组件,提取同时具有enabled和exported属性的Activity,使用自动化测试工具Monkey,通过定义点击事件对初步提取出的Activity进行测试,挑选微服务的首个UI,得到微服务的静态任务,作为入口点类entry_cls;根据服务粒度,对成功启动的Activity进行分析筛选,确定微服务集合;(2)微服务映射为规范化接口:使用DumpViewHierarchyforUIautomator工具,对微服务的入口点类entry_cls进行分析,获取item的语义、语法格式及控件信息;借助静态分析工具FlowDroid,将其source和sink设置为与APP存储有关的API,获取item对应控件的动作action的存储信息;将抽象的微服务信息封装为JSON对象部署到服务端,以RESTfulAPI的形式对外提供规范化接口;步骤二,微服务流定制支持根据步骤一所抽象的APP的微服务集合,与用户设备中的APP取交集,即获取用户设备所支持的APP微服务列表,用户按照个人需求从微服务列表中选取部分微服务,定制成微服务流;步骤三,微服务参数获取利用监控器持续监听用户设备产生的事件,并对感兴趣的事件进行处理,包括微服务流何时触发、微服务流当前执行情况及协同过程中重复利用的服务参数;通过调用服务端公开的规范化接口,即获取每个微服务的抽象...

【专利技术属性】
技术研发人员:汪步鹏陈世展冯志勇王茹
申请(专利权)人:天津大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1