一种实现应用运行的方法及客户端的制作方法

文档序号:6364242阅读:191来源:国知局
专利名称:一种实现应用运行的方法及客户端的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种实现应用运行的方法及客户端。
背景技术
随着计算机的发展,在客户端上可以运行各种各样类型的应用,比如网页(web)应用、非开源软件(ark)应用及GF应用等。当客户端运行某种类型的应用时,需要加载运行该应用的运行环境及宿主程序,然后才能运行应用。这就需要可以获取到该应用的运行环境程序及宿主程序。目前,获取到该应用的运行环境程序及宿主程序的方式为:各种应用的运行环境都存储在客户端的动态链接库(DLL)中,在应用的配置文件中设置调用该DLL所存储的运行环境的静态或动态链接信息,在运行应用时,根据应用的配置文件中设置调用该DLL所存储的运行环境的静态或动态链接信息,调用该DLL所存储的运行环境获得;应用将宿主程序与自身一起进行数据包打包处理,在获取宿主程序时直接解析数据包获得。但是,采用这种方式获取该应用的运行环境程序及宿主程序存在缺点,第一,由于要在应用的数据包中承载宿主程序,所以会使得数据包体积臃肿,且对宿主程序无法进行扩展处理;第二,对于不同类型的应用,所需要的运行环境不同,所要链接的DLL也不同,所以对于每个应用的配置文件,都要单独设置调用该DLL所存储的运行环境的静态或动态链接信息,给开发应用的人员 造成麻烦。当然,对于该DLL所存储的运行环境,也可以采取多实例化,也就是通过调用不同的参数得到的为不同的运行环境,这时,应用的配置文件中就需要设置这些参数,在调用该DLL所存储的运行环境时将不同的参数写入,但是,对于客户端的应用层来说,在安装该运行环境时,比较难以根据不同的参数区分不同应用的运行环境,且应用的配置文件的编写也比较复杂。综上,目前在应用运行时,如何简单且方便地获取到应用的运行环境程序及宿主程序成为了一个亟待解决的问题。

发明内容
有鉴于此,本发明提供了一种实现应用运行的方法,该方法能够简单且方便地获取到应用的运行环境程序及宿主程序。本发明还提供了一种实现应用运行的客户端,该客户端能够简单且方便地获取到应用的运行环境程序及宿主程序。为达到上述目的,本发明的技术方案是这样实现的:一种实现应用运行的方法,设置每种应用类型的加载器,加载器设置对应应用类型的动态链接库DLL存储的运行环境的链接信息及宿主程序信息,该方法还包括:
接收应用运行指令后,中心进程从该应用的配置文件中调用安装对应该应用类型的加载器信息,发送给要运行该应用的子进程;子进程根据接收的该信息安装对应该应用类型的加载器;子进程控制该加载器运行,加载器根据设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序;子进程运行该应用。一种实现应用运行的客户端,包括:中央处理器、加载器设置模块及加载器模块,其中,加载器设置模块,用于设置每种应用类型的加载器到加载器模块中,该加载器中设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息;中央处理器,用于采用中心进程接收应用运行指令,从该应用的配置文件中调用安装对应该应用类型的加载器信息,发送给要运行该应用的子进程,子进程控制该加载器运行,运行该应用;加载器模块 中,用于在中央处理器的子进程控制下,根据设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序。由上述的技术方案可见,本发明设置每种应用类型的加载器,该加载器中设置对应该种应用类型的DLL存储的运行环境的链接信息及宿主程序信息,应用的配置文件中设置安装该加载器的信息,当要运行该应用时,根据应用的配置文件中设置的安装该加载器的信息,安装该加载器,然后运行该加载器,由加载器根据设置调用对应该种应用类型的DLL存储的运行环境及宿主程序。这样,在应用的配置文件中就无需设置所对应的DLL存储的运行环境的静态或动态链接信息,也无需加载宿主程序,使得应用开放容易,在运行时只要安装加载器,就可以简单且方便地获取到应用的运行环境及宿主程序。


图1为本发明实施例提供的实现应用运行的方法流程图;图2为本发明实施例提供的实现应用运行的客户端结构示意图;图3为本发明实施例提供的加载器调用示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。为了简单且方便地获取到应用的运行环境程序及宿主程序,本发明实施例设置每种应用类型的加载器,该加载器中设置对应该种应用类型的DLL存储的运行环境的链接信息及宿主程序信息,应用的配置文件中设置安装该加载器的信息,当要运行该应用时,根据应用的配置文件中设置的安装该加载器的信息,安装该加载器,然后运行该加载器,由加载器根据设置调用对应该种应用类型的DLL存储的运行环境及宿主程序。这样,在应用的配置文件中就无需设置所对应的DLL存储的运行环境的静态或动态链接信息,也无需加载宿主程序,使得应用开放容易,在运行时只要安装加载器即可。在这里,应用可以为各种网页或软件。
图1为本发明实施例提供的实现应用运行的方法流程图,本发明实施例以在客户端为例进行说明,当然,可以理解的是,本发明实施例提供的方法也可以在其他设备中完成,或多个设备交互完成,这里并不限制,设置每种应用类型的加载器,该加载器中设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,其具体步骤为:步骤101、客户端接收某种应用类型运行指令;在该步骤中,某种应用类型运行指令是用户发送的,也就是用户采用鼠标点击某个应用,客户端检测到该点击操作,确定用户发送了某种应用类型运行指令;步骤102、客户端的中心进程从该应用的配置文件中调用安装对应该应用类型的加载器信息,并将该信息发送给要运行该应用的子进程;在该步骤中,该应用的配置文件中还预先设置了对应该应用类型的加载器信息;在该步骤中,客户端的中心进程会进行当前客户端运行情况,指定一个子进程运行该应用,这是现有技术,这里不再赘述;步骤103、客户端的子进程根据接收的该信息安装对应该应用类型的加载器;

步骤104、在客户端的子进程控制下,该加载器运行,加载器根据设置调用对应该种应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序;在该步骤中,加载器中设置的宿主程序信息可以为宿主程序,也可以为调用宿主程序的调用信息,这时,宿主程序已经存储在客户端中了 ;在该步骤完成后,客户端的子进程将该加载器卸载;步骤105、客户端的子进程运行应用。图2为本发明实施例提供的实现应用运行的客户端结构示意图,包括:中央处理器、加载器设置模块及加载器模块,其中,加载器设置模块,用于设置每种应用类型的加载器到加载器模块中,该加载器中设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息;中央处理器,用于采用中心进程接收应用运行指令,从该应用的配置文件中调用安装对应该应用类型的加载器信息,发送给要运行该应用的子进程,子进程控制该加载器运行,运行该应用;加载器模块中,用于在中央处理器的子进程控制下,根据设置调用对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序。在该客户端中,中央处理器,还用于子进程在运行完该加载器后,卸载该加载器。在该客户端中,加载器模块为一个DLL模块。在本发明实施例中,在客户端中为每种应用类型提供一个加载器,由加载器屏蔽运行该应用类型所需要的运行环境及宿主程序等,加载运行该应用类型所需要的运行环境及宿主环境都由该加载器完成。每种应用类型只需要在配置文件中指定对应应用类型的加载器信息即可。在本发明实施例中,各种应用类型的运行环境及宿主程序只与该应用类型对应的加载器交互,加载器在加载到要运行该应用类型的子进程后,就直接运行加载该应用类型的运行环境及宿主程序,完成后,要运行该应用类型的子进程就可以卸载该加载器。为了使得加载器可以被多次加载和卸载,加载器在设置卸载时不设置任何条件。
在本发明实施例中,加载器是一个标准的DLL模块,拥有标准的DLL导出接口,力口载器为所对应应用类型的中转,负责对所对应应用类型的运行环境及宿主程序进行管理,在管理过程中,可以进行扩展。在本发明实施例中,所述应用为网页时,所述客户端为运行网页的客户端;所述应用为软件时,所述客户端为运行软件的客户端。在本发明实施例中,所述客户端为移动的运行应用的客户端。图3为本发明实施例提供的加载器调用示意图,如图所示,在子进程获取到应用的配置文件中调用安装对应该应用类型的加载器信息时,也就是图中QplusAPP.exe中存储的信息后,就可以确定出是哪一个应用类型对应的加载器,图中包括三种类型的加载器-网页应用加载器(webapp.dll)、Ark应用加载器(Arkapp.dll)及Gf应用加载器(Gfapp.dll),然后子进程加载对应的加载器,对应的加载器就可以调用对应的运行环境及宿主程序了。在本发明实施例中,在客户端中设置了不同的指令来与加载器及应用进行交互:启动指令为RunCommand,szDLLPath为加载器的dll路径,一般包括在应用的配置文件中调用安装对应该应用类型的加载器信息中,szCo_and为加载器所采用的命令行参数,用于指示装载运行环境及宿主程序;appID用于标识各个应用,taskID为子进程进行本次运行应用的标识,用于调用或通知使用。在各个命令、指令和命令行参数使用时,可以携带appID及taskID标识。本发明实施例为加载器设置了多个指令与外部进行交互,包括:KStartup 为初始化指令,会携带 taskID 及 IQPlusPlatform, IQPlusPlatform 表示进程对加载器提供服务, 负责进程间通信和消息过程注册;2、Run为启动应用指令,携带appID及taskID ;3、Exit为退出应用指令,携带appID及taskID ;4, OnCallAPI为接收调用指令,接受子进程的调用,提供服务;5、OnResult为接收调用结果指令,反馈接收调用结果;6、Cleanup O为反初始化指令,在客户端的中心进程从该应用的配置文件中调用安装对应该应用类型的加载器信息时,采用RunCommand获取,并将该加载器信息发送给运行应用的子进程,指示子进程加载RunCommand所获取的加载器。从上述方案可以看出,本发明实施例提出的实现应用多态化统一加载的方案,提高了应用的可扩展性。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现应用运行的方法,其特征在于,设置每种应用类型的加载器,加载器设置对应应用类型的动态链接库DLL存储的运行环境的链接信息及宿主程序信息,该方法还包括: 接收应用运行指令后,中心进程从该应用的配置文件中调用安装对应该应用类型的加载器信息,发送给要运行该应用的子进程; 子进程根据接收的该信息安装对应该应用类型的加载器; 子进程控制该加载器运行,加载器根据设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序; 子进程运行该应用。
2.如权利要求1所述的方法,其特征在于,所述宿主程序信息为宿主程序或调用宿主程序的调用信息。
3.如权利要求1所述的方法,其特征在于,在加载运行环境及宿主程序之后,在子进程运行应用之前,该方法还包括: 子进程卸载该加载器。
4.如权利要求1所述的方法,其特征在于,所述中心进程从该应用的配置文件中调用安装对应该应用类型的加载器信息采用的为运行指令RunCo_and。
5.如权利要求1所述的方法 ,其特征在于,所述加载器信息包括加载器路径szDLLPath ; 所述加载器在加载运行环境及宿主程序时,采用Startup指令进行初始化,采用运行指令RunCommand启动,采用szCommand命令行参数进行加载,且Startup指令、运行指令RunCommand及szCommand命令分别携带有标识应用的应用标识,及本次运行的运行标识taskIDo
6.一种实现应用运行的客户端,其特征在于,包括:中央处理器、加载器设置模块及加载器模块,其中, 加载器设置模块,用于设置每种应用类型的加载器到加载器模块中,该加载器中设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息; 中央处理器,用于采用中心进程接收应用运行指令,从该应用的配置文件中调用安装对应该应用类型的加载器信息,发送给要运行该应用的子进程,子进程控制该加载器运行,运行该应用; 加载器模块中,用于在中央处理器的子进程控制下,根据设置对应应用类型的DLL存储的运行环境的链接信息及宿主程序信息,加载运行环境及宿主程序。
7.如权利要求6所述的客户端,其特征在于,所述中央处理器,还用于子进程在运行完该加载器后,卸载该加载器。
8.如权利要求6所述的客户端,其特征在于,所述加载器模块为一个DLL模块。
9.如权利要求6 8任一所述的客户端,其特征在于,所述应用为网页时,所述客户端为运行网页的客户端; 所述应用为软件时,所述客户端为运行软件的客户端。
10.如权利要求6 8任一所述的客户端,其特征在于,所述客户端为移动的运行应用的客户端。
全文摘要
本发明公开了一种实现应用运行的方法及客户端,本发明设置每种应用类型的加载器,该加载器中设置对应该种应用类型的DLL存储的运行环境的链接信息及宿主程序信息,应用的配置文件中设置安装该加载器的信息,当要运行该应用时,根据应用的配置文件中设置的安装该加载器的信息,安装该加载器,然后运行该加载器,由加载器根据设置调用对应该种应用类型的DLL存储的运行环境及宿主程序。这样,在应用的配置文件中就无需设置所对应的DLL存储的运行环境的静态或动态链接信息,也无需加载宿主程序,使得应用开放容易,在运行时只要安装加载器,就可以简单且方便地获取到应用的运行环境及宿主程序。
文档编号G06F9/445GK103246525SQ20121002504
公开日2013年8月14日 申请日期2012年2月6日 优先权日2012年2月6日
发明者游晶, 彭勇, 邹代柱 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1