本发明涉及通信技术领域,特别是涉及一种多设备应用支持框架及其实现方法。
背景技术:
随着智能硬件的大量涌现及互联网技术的不断发展,用户与应用交互、用户间互联网交互不再单一的限制在传统的桌面计算机,智能手机、平板电脑、智能电视等都为用户带来了不同的交互体验。
目前的应用是以某一种设备为运行平台,这样的运行方式存在两个问题:某一类型的应用并不适合在同一类平台的运行的问题;用户拥有一种以上智能设备,应用本身并不能充分的利用这些设备资源。多设备应用解决了以上问题,它可以拆分运行在多个设备上,但带给用户的体验,它仍然是一个完整的应用。为能够快速开发出这种多设备应用,需要一种多设备的应用支持框架来解决上述问题。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多设备应用支持框架及其实现方法,用于解决现有技术中以某一种设备为运行平台的应用存在不适合在同一类平台的运行或者应用本身并不能充分的利用智能设备等问题。
为实现上述目的及其他相关目的,本发明提供一种多设备应用支持框架,包括:设备通信模块,用于不同设备组件间的远程交互,以及不同设备间组件的数据交换,提供对外接口以及设备发现、通信的底层支撑;设备管理模块,用于管理访问到的设备,提供获取设备使用权的接口,以及监控各个设备的状态,并提供设备状态改变通知;应用开发套件模块,用于提供可适应分屏需求的组件,同时提供管控各个所述组件的行为的组件管理器。
于本发明的一实施例中,所述设备通信模块包括:代理-存根单元,其包括定义有所述对外接口的存根子单元以及与所述存根子单元相对应的代理子单元、代理引擎,通过代理存根和代理引擎调用内部定义的传输接口并通过隔离交换单元来完成内、外网处理单元间的数据交换,建立内网客户端与外网服务器之间的信息交换通路;rpc通信守护单元,用于实现设备内对等通信以及不同设备间通信;数据交换守护单元,用于实现不同设备间点对点的数据交换。
于本发明的一实施例中,所述应用开发套件模块隐藏与所述设备管理模块的交互细节,向用户提供事件接口。
于本发明的一实施例中,所述组件管理器管理分配适配的组件与设备,并将组件分发至相应设备。
于本发明的一实施例中,所述组件包括基础的组件组合、自定义组件组合以及自定义组件与基础的组件组合。
一种多设备应用支持框架的实现方法,包括以下步骤:s1:通过所述应用开发套件模块提供可适应分屏需求的组件;s2:发现新设备后,所述组件管理器通过获取设备特性,并对比组件与设备的特性,进而生成组件分发方案,然后通知用户,并最终由用户决定是否将组件分发至特定的设备;然后通过设备管理模块和设备通信模块,将组件拆分运行于多个设备上。
于本发明的一实施例中,所述步骤s2包括以下步骤:s21:通过所述设备通信模块实现不同设备组件间的远程交互,以及不同设备间组件的数据交换,当框架运行,将自定义的对外接口发布在一个特定网络中,通过对外接口可以方便访问其他组件提供的远程接口;s22:通过所述设备管理模块获取设备使用权的接口,监控各个设备的状态,以及设备状态改变通知。
于本发明的一实施例中,所述步骤s21包括以下进程:s211,代理-存根进程:将对外接口定义在存根子单元中,同时定义对应的代理子单元,进程启动后,将存根的接口发布至当前运行平台的ipc组件中,其他进程获取目标进程的代理模块,或者获得目标进程的接口,通过接口调用实现ipc;s212,rpc通信守护进程:设备间通过rpc通信守护进程实现对等通信,需要跨设备通信的进程需要通过rpc通信守护进程的代理子单元调用相应的接口;s213,数据交换守护进程:客户进程通过接口建立并获得一个数据流对象,对数据流对象操作接口实现设备间的数据交换,实现设备间点对点的数据交换。
于本发明的一实施例中,所述步骤s22中具体包括以下进程:s221,所述设备管理模块在启动时收集所在设备的设备信息,并生成描述信息;s222,当设备加入设备集群时,组播自身的设备信息通知所有可达的设备,进行共享信息列表同步,并发出相应的事件通知;当设备离开集群时,组播通知可达设备,同步修改共享信息列表,并发出相应的事件通知;设备在线期间,会定期组播心跳包,以告知其他设备自己当前仍然在线;当发生心跳超时的情况,说明设备当前不可达,异常下线,需要发送相应的事件通知应用进程;s223,当应用进程申请使用某个设备时,建立数据流通道,并返回相应的数据流对象。
如上所述,本发明的多设备应用支持框架及其实现方法,具有以下有益效果:
本发明通过设备通信模块隐藏底层通信实现细节,对外暴露简单的通信接口,实现跨设备、跨平台的通信;通过建立设备间通信链路、管理互联设备信息、快捷的应用开发套件,使得开发者只需关注应用逻辑本身,就可以方便、快速的实现多设备应用,充分利用用户丰富的设备资源,获得最佳的应用体验。
进一步,本发明通过组件管理器,使得开发者仅仅处理必要的事件过程即可,而组件管理器会自动调用开发者编写事件处理过程,来决定应用的行为。
进一步,本发明中应用基本组件遵从cmd规范,每个组件都是一个独立的模块,同时组件采用面向对象设计,所有的组件都继承自输入、输出等基本类,从而限定组件的行为,组件管理器会根据组件的类型对其实现调度管理。
进一步,本发明使得开发者可以完全从底层通信、组件分发等琐事中解放出来,只需要关心应用本身的细节,以较快速度开发出质量较高的多设备应用。该方法可以改善用户的应用交互体验,充分利用用户的个人设备。
附图说明
图1显示为本发明多设备应用支持框架及其实现方法于一实施例中的多设备应用支持框架的组成示意图。
图2显示为本发明多设备应用支持框架及其实现方法于一实施例中的多设备应用支持框架的实现方法的流程示意图。
图3显示为本发明多设备应用支持框架及其实现方法于一实施例中设备通信模块的实现进程的示意图。
图4显示为本发明多设备应用支持框架及其实现方法于一实施例中设备管理实现进程的示意图。
图5显示为本发明多设备应用支持框架及其实现方法于一实施例中应用开发套件实现进程的示意图。
元件标号说明
1多设备应用支持框架
11设备通信模块
12设备管理模块
13应用开发套件模块
s1~s2步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供了一种多设备应用支持框架,用于用户的智能手机、平板电脑、智能电视等不同智能设备之间的交互体验的应用平台,可改善用户的应用交互体验,充分利用用户的个人设备。
请参阅图1,显示为本发明的多设备应用支持框架的组成示意图,如图所示,多设备应用支持框架1包括:设备通信模块11、设备管理模块12和应用开发套件模块13,
设备通信模块11,用于不同设备组件间的远程交互,以及不同设备间组件的数据交换,提供对外接口以及设备发现、通信的底层支撑,只向用户暴露对外接口,隐藏设备发现、通信的底层支撑的细节;于实施例中,设备通信模块11包括:代理-存根单元、rpc通信守护单元和数据交换守护单元,代理-存根单元包括定义有所述对外接口的存根子单元以及与所述存根子单元相对应的代理子单元、代理引擎,通过代理存根和代理引擎调用内部定义的传输接口并通过隔离交换单元来完成内、外网处理单元间的数据交换,建立内网客户端与外网服务器之间的信息交换通路;rpc通信守护单元用于实现设备内对等通信以及不同设备间通信;数据交换守护单元用于实现不同设备间点对点的数据交换。
设备管理模块12,用于管理访问到的设备,提供获取设备使用权的接口,以及监控各个设备的状态,并提供设备状态改变通知;
应用开发套件模块13,用于提供可适应分屏需求的组件,同时提供管控各个所述组件的行为的组件管理器;于实施例中,应用开发套件模块隐藏与所述设备管理模块的交互细节, 向用户提供事件接口,所述组件管理器管理分配适配的组件与设备,并将组件分发至相应设备,其中,所述组件包括基础的组件组合、自定义组件组合以及自定义组件与基础的组件组合。
本发明提供了一种多设备应用支持框架的实现方法,用于用户的智能手机、平板电脑、智能电视等不同智能设备之间的交互体验的应用平台,可改善用户的应用交互体验,充分利用用户的个人设备。
请参阅图2,显示为本发明的多设备应用支持框架的实现方法的流程示意图。如图所示,其包括以下步骤:
s1:通过所述应用开发套件模块提供可适应分屏需求的组件;
s2:发现新设备后,所述组件管理器通过获取设备特性,并对比组件与设备的特性,进而生成组件分发方案,然后通知用户,并最终由用户决定是否将组件分发至特定的设备;然后通过设备管理模块和设备通信模块,将组件拆分运行于多个设备上;于实施例中,步骤s2包括以下步骤:s21:通过所述设备通信模块实现不同设备组件间的远程交互,以及不同设备间组件的数据交换,当框架运行,将自定义的对外接口发布在一个特定网络中,通过对外接口可以方便访问其他组件提供的远程接口;s22:通过所述设备管理模块获取设备使用权的接口,监控各个设备的状态,以及设备状态改变通知。
进一步,步骤s21具体包括以下进程:
s211,代理-存根进程:将对外接口定义在存根子单元中,同时定义对应的代理子单元,进程启动后,将存根的接口发布至当前运行平台的ipc组件中,其他进程获取目标进程的代理模块,或者获得目标进程的接口,通过接口调用实现ipc;
s212,rpc通信守护进程:设备间通过rpc通信守护进程实现对等通信,需要跨设备通信的进程需要通过rpc通信守护进程的代理子单元调用相应的接口;
s213,数据交换守护进程:通过该进程可以实现设备间点对点的数据交换,客户进程通过接口建立并获得一个数据流对象,对数据流对象操作接口实现设备间的数据交换。
进一步,步骤s22中具体包括以下进程:
s221,所述设备管理模块在启动时收集所在设备的设备信息,并生成描述信息;
s222,当设备加入设备集群时,组播自身的设备信息通知所有可达的设备,进行共享信息列表同步,并发出相应的事件通知;当设备离开集群时,组播通知可达设备,同步修改共享信息列表,并发出相应的事件通知;设备在线期间,会定期组播心跳包,以告知其他设备自己当前仍然在线;当发生心跳超时的情况,说明设备当前不可达,异常下线,需要发送相 应的事件通知应用进程;
s223,当应用进程申请使用某个设备时,建立数据流通道,并返回相应的数据流对象。
下面针对设备通信模块的实现进程、设备管理实现进程、应用开发套件实现进程进行具体说明。
a、设备通信模块的实现进程:
请参阅图3,图3显示为实施例中设备通信模块的实现进程示意图,如图所示,设备间通信模块的实现进程主要由三部分组成:代理-存根(proxy-stub)的进程,rpc通信守护进程,数据交换守护进程。
代理-存根(proxy-stub)进程:将自己的对外接口定义在存根子单元中,同时定义对应的代理子单元,当该进程启动后。框架机制会确保将存根的接口发布只当前运行平台的ipc组件中,ipc是指进程间通信,其他进程可以通过框架提供方法获取目标进程的代理子单元,或者使用当前平台本身的提供的方法获得目标进程的接口(因此,基于此框架实现的进程和其他进程是兼容的,但是框架隐藏了底层复杂的机制),通过接口调用即可实现ipc。图3中进程a-1、进程a-2、进程b-1、进程c-1等均是这种进程。
rpc通信守护进程,即为communication-daemon(简称cd),如图3所示,基于代理-存根单元实现的进程,在每台设备上都唯一的运行着rpc通信守护进程,设备间ipc通过该守护进程实现对等通信,需要跨设备通信的进程仅仅需要通过cd的代理子单元调用相应的接口即可。这样实现有以下效果:
a)限制唯一的rpc进出口,方便实现安全验证机制。
b)每两台设备间仅仅维护一条通信链路,大大的降低了开销。
c)每个进程不必单独实现连接其他设备的功能,实现了功能复用。
数据交换守护进程,即为datatransfer(简称dt),如图3中所示,基于代理-存根单元实现的进程,在每台设备上唯一运行着一个数据交换守护进程,通过该进程可以实现设备间点对点的数据交换,客户进程(如进程a-2)通过dt的接口建立并获得一个数据流对象,之后对数据流对象操作接口实现设备间进程的数据交换。将dt从cd中分离,主要是考虑到这两种连接不同的性质,cd的消息通常比较简短,同时cd需要尽可能快的响应速度,而dt通常会长时间占用连接通道,如果放在一起会造成严重的rpc延时。
b、设备管理实现进程:
设备管理模块,即为resource-manager,以守护进程的形式运行在每一台设备上。为实现设备管理模块的主要职责,需要实现以下功能:
单元启动时收集所在设备的设备信息,并生成准确的描述信息(其中包括设备本身的信息,如屏幕尺寸、分辨率等等,另外还包括设备适用类型,如显示输出、控制输入等),初始化共享信息列表。
请参阅图4,图4显示为实施例中设备管理实现进程示意图,如图所示,当设备上线(加入设备集群)时,组播自身的设备信息通知所有可达的设备,进行共享信息列表同步,并发出相应的事件通知;同样,当下线(离开集群)时,组播通知可达设备,同步修改共享信息列表,并发出相应的事件通知;设备在线期间,会定期组播心跳包,以告知其他设备自己当前仍然在线,当发生心跳超时的情况,说明设备当前不可达,异常下线,需要发送相应的事件通知应用进程。
有应用进程申请使用某个设备(非本机)时,完成数据流通道的建立,并返回相应的数据流对象。以视频输出设备为例,具体步骤如下:
a)申请使用另一台设备的屏幕作为输出设备;
b)通过dt完成设备间的数据流(stream1)通道建立;
c)对等节点resource-manager进程收到请求,建立dt进程到视频输出进程的数据流(stream2)通道,并连接stream1和stream2;
d)本机节点建立应用进程和dt的数据流(stream3)通道,并连接stream1和stream3。
e)返回stream3对象给应用进程,应用进程将产生的视频数据输入stream3,即可由另一台设备的视频输出进程处理,并输出至屏幕。
c、应用开发套件实现进程:
请参阅图5,图5显示为实施例中应用开发套件实现进程的示意图,如图所示,应用开发套件模块以sdk的形式提交给用户,其中包含了基本的应用程序框架、基本组件以及相关说明文档,帮助开发者快速构建此类应用。应用基本组件遵从cmd规范,每个组件都是一个独立的模块。同时组件采用面向对象设计,所有的组件都继承自输入、输出等基本类,从而限定了组件的行为,组件管理器会根据组件的类型对其实现调度管理。
应用程序框架包含若干组件,其中最重要的是组件管理器:
1)隐藏了和设备管理模块的交互细节,只暴露事件接口给应用开发者;
2)组织和管理组件,分发和回收组件,建立跨设备组件间的数据流通道。
有了组件管理器,作为开发者,仅仅需要实现必要的事件处理过程即可,如发现更适合用于显示的设备、更适合控制输入的设备等,组件管理器会自动调用开发者编写事件处理过程,来决定应用的行为。
综上所述,本发明通过设备通信模块隐藏底层通信实现细节,对外暴露简单的通信接口,实现跨设备、跨平台的通信;通过建立设备间通信链路、管理互联设备信息、快捷的应用开发套件,使得开发者只需要关注应用逻辑本身,可方便、快速的实现多设备应用,充分利用用户丰富的设备资源,获得最佳的应用体验。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。