一种搭建应用运行环境的方法及装置的制作方法

文档序号:6362512阅读:168来源:国知局
专利名称:一种搭建应用运行环境的方法及装置的制作方法
技术领域
本发明提供了一种为应用搭建运行环境提供跨进程虚拟机的解决方案,属于计算机系统技术领域。
背景技术
应用平台泛指那些提供第三方软件嵌入能力的计算机软件。应用程序平台化是现在客户端软件的趋势,在现有客户端软件上的第三方应用都是由第三方开发者开发,附加到相应客户端软件中运行的功能组件。这些第三方应用一方面通过以相应客户端软件为主的应用平台,对第三方应用进行发布和推广;另一方面也丰富了相应客户端软件的功能,是相应客户端软件在功能上的补充。在传统的客户端软件上普遍使用的是插件体系,即通过暴露应用平台的一系列SDK (Software Development Kit,软件开发工具包),使第三方开发者能开发符合接口规范的动态链接库(dll),然后二进制集成到相应客户端软件上,在需要唤起功能的时候通过加载二进制dll,来提供应用所实现的功能。但这种插件体系存在以下的问题:1、加载第三方应用会引发应用平台的稳定性和性能问题:第三方应用出错会导致应用平台崩溃及性能下降,并且第三方应用出现错误带来的性能问题会遗留在应用平台内,即使在第三方应用卸载了以后;2、扩展性难以保证:第三方应用的开发依赖于应用平台的版本,而对于应用平台而言,加载过期的第三方应用的代价就是崩溃,第三方应用的引用计数极易出错,会导致应用无法卸载,或者卸载后平台应用崩溃,第三方应用的更新,通常都要以重启客户端软件为代价。

发明内容
本发明为解决现有的应用运行环境中存在的应用平台的稳定性和性能较差、扩展性能以保证的问题,进而提供一种搭建应用运行环境的方法及装置。本发明的目的是通过以下技术方案实现的:一种搭建应用运行环境的方法,包括:检测预定的路径中应用的状态;当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程;在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。一种搭建应用运行环境的装置,包括:应用发现检测单元,用于检测预定的路径中应用的状态;应用管理单元,用于当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程;
接口开放单元,用于在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。由上述本发明提供的技术方案可以看出,在AppCenter与App进程通过所述相关联的AppSession建立管理关系后,提高了应用平台的稳定性和性能,同时通过提供有限统一能力接口,为平台提供了较好的可扩展性。


图1是本发明具体实施方式
提供的搭建应用运行环境的方法的流程示意图;图2是本发明具体实施方式
提供的创建应用的目标进程结构的示意图;图3是本发明具体实施方式
提供的创建应用宿主进程的过程的示意图;图4是本发明具体实施方式
提供的应用的开发者调用应用平台能力的流程示意图;图5是本发明具体实施方式
提供的搭建应用运行环境的装置的结构示意图。
具体实施例方式本发明具体实施方式
提供了一种搭建应用运行环境的方法,包括:检测预定的路径中应用的状态;当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程;在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。在现有的计算机操作系统中,很多应用都要基于应用平台搭建的运行环境中运行,从而实现相应的功能。所谓应用,即为补充应用平台能力而实现的计算机软件,通常由第三方开发者 开发;运行环境是指计算机软件在运行过程中能接触到的数据、接口和运行状态的统称。而现有的应用在基于应用平台搭建的运行环境中运行时,往往要依赖应用平台本身的性能,从而引发应用平台的稳定性和性能问题,并且应用平台对应用的兼容性和可扩展性也难以保证。为此,本具体实施方式
提供了一种搭建应用运行环境的方法,下面以即时通讯软件作为应用平台为例并结合说明书附图对本具体实施方式
作具体说明,如图1所示,相应的搭建应用运行环境的方法包括:步骤11,检测预定的路径中应用的状态。具体的,相应的应用平台预定义了一个用户路径:% appdata% /XX/TxApp/,在该应用平台运行过程中时刻检测此文件夹的文件变化,其中的XX表示该即时通讯软件所在的文件夹。如果发现该文件夹中创建了带有以下格式的appinf0.xml的文件夹,则视为应用安装:<ArkApp><app_id>100001</app_id>< !—应用 ID—>〈app—text〉便签〈/app—textX !—应用名称一><app_ver>l.0</app_ver>< !—应用版本号一></ArkApp>
删除该appinf0.xml格式的文件夹则视为该应用的卸载。由此,应用平台对于应用的发现和应用的使用状态都可以通过appinf0.xml格式的文件夹的形式获得,使应用的安装、卸载和更新都变得十分简单,具体为简单的对应为应用所在文件夹的创建、删除和修改。步骤12,当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程。具体的,当应用平台发现相应的应用(App)已经创建时,会根据请求在运行环境中创建该应用的进程。创建进程的时机是应用唤起,通常是由于用户操作。创建应用的目标进程结构如图2所示,即每个应用运行在一个独立进程(App进程),应用中心(该即时通讯软件进程中的AppCenter通过一个与App进程相关联的应用会话AppSession来管理这个App进程)。为了创建相应的进程,创建应用宿主进程的过程如图3所示,相应即时通讯软件的进程为应用ID申请一个连接会话ID,根据会话ID创建相应即时通讯软件侧跨进程通道,创建相应的App进程并将相应的应用ID通过命令行传送给相应的App进程;相应的App进程根据相应的应用ID创建App侧跨进程通道,并向相应的即时通讯软件发送成功反馈;相应即时通讯软件侧接收到反馈后,发送目标进程激活命令;相应的App进程开始根据应用ID加载相应的应用,并启动连接会话维持的心跳检测。步骤13,在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。具体的,相应的App进程内,在应用运行环境中为应用开发者暴露接口,以使得应用可以使用平台能力。统一设计接口的步骤包括:
1、接口定义为:同步版本:localrequestResult ;requrestResult = IPC.SyncGet(requestUrl);异步版本:localrequestResult ;IPC.AsyncGet (requestUrl, function (result) requestResult = result end);2、上述参数必须符合以下语法:调用平台服务时提供的requestUrl:hummer://应用名/应用请求函数?[参数名=参数列表],如:如需取得10000号的便签列表:hummer://note/GetNoteList uin =10000 ;平台调用返回的结果requestResult:统一数据返回JSON格式数据,如:上例中返回{ “err,,= user not login};3、通过此接口传递的调用及返回,统一进入步骤13在数据传递过程中建立的数据通道中,实现对平台功能的调用。应用开发者能够极快的通过调用此统一接口,获取平台能力。进一步地,应用开发者调用平台能力的过程包括:接收所述App进程发送的跨进程通道组包并解包,通过逻辑处理获得处理结果,并将所述处理结果组包后发送给所述App进程。具体的,相应的应用的开发者在调用应用平台能力的过程如图4所示,即相应的应用的开发者首先调用 IPC.AsyncGet 制作包括“hummer://note/GetNoteList uin =10000”的数据包内容,然后在App进程侧跨进程通道组包并将数据包发送到相应的即时通讯软件侧;即时通讯软件测接收到数据包后解包,对解包后的数据进行逻辑处理获得处理结果,并将处理结果组包后发送给App进程侧;相应的App进程解包后得到处理结果,并返回给 OnAsyncGet 接口。其中,相应的数据包格式为:
struct PacketData
{
long IBodyBufferLen;// 包体长度
char* destlpcName;Il 目标IPC (Inter-Process Communication,进程
间通/[目)名称
char* srcIpcName;//源IPC 名称
unsigned char* cBodyBuffer; // 包体内容
}调用传递参数皆为字符串格式,可另组包和解包的过程十分的简单和快捷。采用本实施例提供的技术方案,在AppCenter与App进程通过所述相关联的AppSession建立管理关系后,提高了应用平台的稳定性和性能,同时通过提供有限统一能力接口,为平台提供了较好的可扩展性。本发明的具体实施方式
还提供了一种搭建应用运行环境的装置,如图5所示,具体包括: 应用发现检测单元51,用于检测预定的路径中应用的状态;应用管理单元52,用于当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程;接口开放单元53,用于在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。可选的,在应用发现检测单元51中可以包括检测子单元,用于在所述发现并检测应用的状态的过程中,若发现应用平台的文件夹中带有预设格式的文件,则认为所述应用已安装、卸载或删除。可选的,在应用管理单元52中可以包括会话建立子单元和进程激活子单元,会话建立子单元用于为所述应用的ID申请一个连接会话ID,根据所述会话ID创建相应客户端软件侧的跨通道进程,创建所述应用进程并将所述应用的ID通过命令行传给所述应用进程;进程激活子单元进程激活子单元,用于根据所述应用进程创建所述应用侧的跨通道进程成功的反馈消息,发送激活所述应用进程的命令。可选的,在应用管理单元52中还可以包括逻辑处理子单元,用于接收所述应用进程发送的跨进程通道组包并解包,通过逻辑处理获得处理结果,并将所述处理结果组包后发送给所述应用进程。
可选的,在接口开放单元53中可以接口提供子单元,用于在所述应用进程内,为应用开发者提供软件开发工具包的接口。上述搭建应用运行环境的装置中包含的各单元的处理功能的实施方式在之前的方法具体实施方式
中已经描述,在此不再重复描述。采用本实施例提供的技术方案,在AppCenter与App进程通过所述相关联的AppSession建立管理关系后,提高了应用平台的稳定性和性能,同时通过提供有限统一能力接口,为平台提供了较好的可扩展性。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1.一种搭建应用运行环境的方法,其特征在于,包括: 检测预定的路径中应用的状态; 当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程; 在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用 进程的开发提供应用平台的接口。
2.根据权利要求1所述的搭建应用运行环境的方法,其特征在于,在所述发现并检测应用的状态的过程中,若发现应用平台的文件夹中带有预设格式的文件,则认为所述应用已安装、卸载或删除。
3.根据权利要求1所述的搭建应用运行环境的方法,其特征在于,所述通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程包括: 为所述应用的ID申请一个连接会话ID,根据所述会话ID创建相应客户端软件侧的跨通道进程,创建所述应用进程并将所述应用的ID通过命令行传给所述应用进程; 根据所述应用进程创建所述应用侧的跨通道进程成功的反馈消息,发送激活所述应用进程的命令。
4.根据权利要求1至3任意一项所述的搭建应用运行环境的方法,其特征在于,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程包括: 接收所述应用进程发送的跨进程通道组包并解包,通过逻辑处理获得处理结果,并将所述处理结果组包后发送给所述应用进程。
5.根据权利要求1所述的搭建应用运行环境的方法,其特征在于,为所述应用进程的开发提供应用平台的接口包括: 在所述应用进程内,为应用开发者提供软件开发工具包的接口。
6.一种搭建应用运行环境的装置,其特征在于,包括: 应用发现检测单元,用于检测预定的路径中应用的状态; 应用管理单元,用于当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程; 接口开放单元,用于在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。
7.根据权利要求6所述的搭建应用运行环境的装置,其特征在于,在应用发现检测单元中包括: 检测子单元,用于在所述发现并检测应用的状态的过程中,若发现应用平台的文件夹中带有预设格式的文件,则认为所述应用已安装、卸载或删除。
8.根据权利要求6所述的搭建应用运行环境的装置,其特征在于,在应用管理单元中包括: 会话建立子单元,用于为所述应用的ID申请一个连接会话ID,根据所述会话ID创建相应客户端软件侧的跨通道进程,创建所述应用进程并将所述应用的ID通过命令行传给所述应用进程;进程激活子单元,用于根据所述应用进程创建所述应用侧的跨通道进程成功的反馈消息,发送激活所述应用进程的命令。
9.根据权利要求6至8任意一项所述的搭建应用运行环境的装置,其特征在于,在应用管理单元中还包括: 逻辑处理子单元,用于接收所述应用进程发送的跨进程通道组包并解包,通过逻辑处理获得处理结果,并将所述处理结果组包后发送给所述应用进程。
10.根据权利要求6所述的搭建应用运行环境的装置,其特征在于,在接口开放单元中包括: 接口提供子 元,用于在所述应用进程内,为应用开发者提供软件开发工具包的接口。
全文摘要
本发明提供了一种搭建应用运行环境的方法及装置,相应的方法包括检测预定的路径中应用的状态;当接收到所述应用的应用唤起命令后,通过相应客户端软件的进程中的应用中心与所述应用的应用进程相关联的应用会话管理所述应用进程;在所述应用中心与所述应用进程通过所述相关联的应用会话建立管理关系后,根据所述管理关系为所述应用进程的开发提供应用平台的接口。本发明通过在应用中心与应用进程通过相关联的应用会话建立管理关系后,提高了应用平台的稳定性和性能,同时通过提供有限统一能力接口,为平台提供了较好的可扩展性。
文档编号G06F9/46GK103197951SQ20121000097
公开日2013年7月10日 申请日期2012年1月4日 优先权日2012年1月4日
发明者涂强, 周蔚, 曾维亿 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1