一种加载插件的方法及装置制造方法及图纸

技术编号:5047716 阅读:148 留言:0更新日期:2012-04-11 18:40
本申请实施例公开了一种加载插件的方法及装置。所述方法包括:宿主程序获知启动的一个实例要加载插件,所述宿主程序支持至少一个实例;所述宿主程序获取插件单实例配置列表,所述插件单实例配置列表至少包括要求启动单实例的插件的信息;所述宿主程序根据所述插件单实例配置列表判断要加载的插件是否要求启动单实例;若所述要加载的插件要求启动单实例,所述宿主程序从插件托管进程获取插件的通讯接口,所述插件托管进程至少用于管理所述宿主程序的实例对要求启动单实例的插件的访问;所述启动的一个实例利用所述插件的通讯接口对所述要加载的插件执行加载操作。通过本申请,可以减少对系统资源的占用,提高系统性能。

【技术实现步骤摘要】

本申请涉及计算机
,尤其涉及一种加载插件的方法及装置
技术介绍
有些应用程序具有启动多个实例的功能。例如用户可以在同一台计算机上以不 同的用户名登录即时通讯客户端,用户登录的各个即时通讯客户端是即时通讯软件的一个 实例。当其中一个即时通讯客户端实例需要在客户端加载插件时,现有解决方案为每 个实例均在客户端加载一个插件实例。专利技术人在研究过程中,发现上述现有解决方案占用客户端的系统资源较多,影响 了系统性能。
技术实现思路
本申请实施例的目的是提供一种加载插件的方法及装置,以减少对系统资源的占 用,提高系统性能。一种加载插件的方法,所述方法包括宿主程序获知启动的一个实例要加载插件,所述宿主程序支持至少一个实例;所述宿主程序获取插件单实例配置列表,所述插件单实例配置列表至少包括要求 启动单实例的插件的信息;所述宿主程序根据所述插件单实例配置列表判断要加载的插件是否要求启动单 实例;若所述要加载的插件要求启动单实例,所述宿主程序从插件托管进程获取插件的 通讯接口,所述插件托管进程至少用于管理所述宿主程序的实例对要求启动单实例的插件 的访问;所述启动的一个实例利用所述插件的通讯接口对所述要加载的插件执行加载操作。优选地,所述插件单实例配置列表由服务器或者客户端创建。可选地,在所述宿主程序从插件托管进程获取插件的通讯接口之前,所述方法还 包括所述宿主程序检查操作系统中是否存在所述插件托管进程,所述插件托管进程由 所述要加载的插件的ID进行标识,若是,则所述宿主程序启动所述插件托管进程。可选地,在所述宿主程序启动所述插件托管进程之后,所述方法还包括所述宿主程序向所述插件托管进程请求加载所述要加载的插件。可选地,在所述宿主程序向所述插件托管进程请求加载所述要加载的插件之后, 所述方法还包括所述插件托管进程判断所述要加载的插件是否已被创建,若是,向所述宿主程序返回所述插件的通讯接口,否则创建所述要加载的插件,并向所述宿主程序返回所述插件 的通讯接口。优选地,若所述操作系统中不存在所述插件托管进程,则所述宿主程序使用标准 应用程序编程接口创建所述插件托管进程,所述插件托管进程由所述要加载的插件的ID 进行标识。可选地,在所述启动的一个实例利用所述插件句柄对所述要加载的插件执行加载 操作之后,所述方法还包括当所述启动的一个实例退出运行后,所述宿主程序通知所述插件托管进程删除退 出运行的实例。可选地当计数器的值大于预置门限时,所述插件托管进程结束所管理的所有插 件的运行。优选地,所述通讯接口为COM接口。一种加载插件的装置,所述装置运行于客户端,所述装置包括获知单元,用于获知启动的一个宿主程序实例要加载插件,所述宿主程序支持至 少一个实例;第一获取单元,用于获取插件单实例配置列表,所述插件单实例配置列表至少包 括要求启动单实例的插件的信息;判断单元,用于根据所述插件单实例配置列表判断要加载的插件是否要求启动单 实例;第二获取单元,用于若所述要加载的插件要求启动单实例,从插件托管进程获取 插件的通讯接口,所述插件托管进程用于管理所述宿主程序的实例对要求启动单实例的插 件的访问;执行单元,用于利用所述插件的通讯接口对所述要加载的插件执行加载操作。可选地,所述装置还包括检查单元,用于在所述第二获取单元执行操作之前,检查操作系统中是否存在所 述插件托管进程,所述插件托管进程由所述要加载的插件的ID进行标识;启动单元,用于当所述检查单元检查出所述操作系统中存在所述插件托管进程 时,启动所述插件托管进程。可选地,所述装置还包括请求单元,用于在所述启动单元执行操作之后,向所述插件托管进程请求加载所 述要加载的插件;所述插件托管进程判断所述要加载的插件是否已被创建,若是,向所述第二获取 单元返回所述插件的通讯接口,否则创建所述要加载的插件,并向所述第二获取单元返回 所述插件的通讯接口。可选地,所述装置还包括创建单元,用于当所述检查单元检查出所述操作系统中不存在所述插件托管进程 时,使用标准应用程序编程接口创建所述插件托管进程,所述插件托管进程由所述要加载 的插件的ID进行标识。可选地,所述装置还包括通知单元,用于在所述执行单元执行操作之后,当所述启动的一个实例退出运行 后,通知所述插件托管进程删除退出运行的实例。可以看出,在本申请实施例中,宿主程序要获取一个插件单实例配置列表,当宿主 程序的实例要加载的插件是要求单实例的插件时,宿主程序从插件托管进程获取插件的通 讯接口,如COM接口。宿主程序的实例可以利用插件的通讯接口对要加载的插件执行加载 操作。由于要加载的插件要求单实例,因此,宿主程序的各实例加载的均是该插件的同一个 实例,从而减少了对系统资源的占用,提高了系统性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提 下,还可以根据这些附图获得其他的附图。图1为本申请实施例一方法流程图;图2为本申请实施例二方法流程图;图3为申请实施例三装置结构框图;图4为本申请实施例四装置结构框图。具体实施例方式为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施 例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护 的范围。为便于理解,首先介绍以下术语插件指符合宿主程序的接入规范,能够运行于宿主程序,且非宿主程序本身所必 须的功能或者业务模块,从物理形式上看,包含但不限于动态链接库。宿主程序供插件运行的载体,同时制定了插件的接入规范。插件托管进程用于加载要求单实例的插件,管理宿主程序对要求单实例的插件 的访问,管理要求单实例的插件的生命周期,即当没有宿主程序在使用插件时,卸载插件, 然后退出运行。单实例的意思是整个系统上所有的即时通讯客户端共享的同一份插件实例。请参考图1,为本申请实施例一方法流程图,可以包括以下步骤步骤101 宿主程序获知启动的一个实例要加载插件,所述宿主程序支持至少一 个实例;步骤102 所述宿主程序获取插件单实例配置列表,所述插件单实例配置列表至 少包括要求启动单实例的插件的信息;步骤103 所述宿主程序根据所述插件单实例配置列表判断要加载的插件是否要 求启动单实例;6步骤104 若所述要加载的插件要求启动单实例,所述宿主程序从插件托管进程 获取插件的通讯接口,所述插件托管进程用于管理所述宿主程序的实例对要求启动单实例 的插件的访问;步骤105 所述启动的一个实例利用所述插件的通讯接口对所述要加载的插件执 行加载操作。可以看出,在本申请实施例中,宿主程序要获取一个插件单实例配置列表,当宿主 程序的实例要加载的插件是要求单实例的插件时,宿主程序从插件托管进程获取插件的通 讯接口,如COM接口。宿主程序的实例可以利用插件的通讯接口对要加载的插件执行加载 操作。由于要加载的插件要求单实例,因此,宿主程序的各实例加载的均是该本文档来自技高网
...

【技术保护点】
一种加载插件的方法,其特征在于,所述方法包括:宿主程序获知启动的一个实例要加载插件,所述宿主程序支持至少一个实例;所述宿主程序获取插件单实例配置列表,所述插件单实例配置列表至少包括要求启动单实例的插件的信息;所述宿主程序根据所述插件单实例配置列表判断要加载的插件是否要求启动单实例;若所述要加载的插件要求启动单实例,所述宿主程序从插件托管进程获取插件的通讯接口,所述插件托管进程至少用于管理所述宿主程序的实例对要求启动单实例的插件的访问;所述启动的一个实例利用所述插件的通讯接口对所述要加载的插件执行加载操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:张利明
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:KY[开曼群岛]

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

1