一种即时通信客户端插件升级能力信息获取方法及装置转让专利

申请号 : CN201210027484.X

文献号 : CN103248556B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴祖榕林叶辉孙辉罗君

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例公开了一种IM客户端插件升级能力信息获取方法,该方法包括:获取待升级IM客户端提供的所有能力对应的接口和扩展点信息;以及含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;将所述指定插件依赖的能力对应的接口和扩展点信息,与所述待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力。本发明实施例还公开了一种IM客户端插件升级能力信息获取装置,该方法和装置能够得到IM客户端是否具备升级指定插件的能力的信息。

权利要求 :

1.一种即时通信IM客户端插件升级能力信息获取方法,其特征在于,该方法包括:获取多个待升级IM客户端中每个待升级IM客户端提供的所有能力对应的接口和扩展点信息;

获取含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;

将所述指定插件依赖的能力对应的接口和扩展点信息,分别与每个待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;

若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;

输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。

2.如权利要求1所述的IM客户端插件升级能力信息获取方法,其特征在于,所述接口的信息通过开发工具扩展DTE遍历扫描IM客户端的所有文件获取。

3.如权利要求1所述的IM客户端插件升级能力信息获取方法,其特征在于,所述扩展点的信息通过扫描和分析IM客户端的TPC文件获取。

4.如权利要求1、2或3所述的IM客户端插件升级能力信息获取方法,其特征在于,所述接口信息通过插件接口表保存,包括能力ID和对应的接口名称,以及接口名称下包含的函数及函数属性。

5.如权利要求4所述的IM客户端插件升级能力信息获取方法,其特征在于,所述扩展点信息通过插件扩展点表保存,包括能力ID以及对应的扩展点ID、扩展点名称及扩展点提供者。

6.如权利要求5所述的IM客户端插件升级能力信息获取方法,其特征在于,所述比较,包括:将所述待升级IM客户端的插件接口表及插件扩展点表,与所述指定插件的插件接口表及插件扩展点表分别进行比较;

对于接口表,先比较接口名称,如相同,再比较接口名称下包含的函数及函数属性;

对于扩展点表,先比较扩展点ID,如相同,再比较扩展点名称和扩展点提供者。

7.如权利要求6所述的IM客户端插件升级能力信息获取方法,其特征在于,所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,包括:所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;

所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同。

8.一种IM客户端插件升级能力信息获取装置,其特征在于,该装置包括:信息获取模块,获取多个待升级IM客户端中每个待升级IM客户端提供的所有能力对应的接口和扩展点信息;获取含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;

比较模块,将所述指定插件依赖的能力对应的接口和扩展点信息,分别与每个待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;

输出模块,输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。

9.如权利要求8所述的IM客户端插件升级能力信息获取装置,其特征在于,所述信息获取模块包括:接口扫描单元,用于通过DTE遍历扫描IM客户端的所有文件获取所述接口的信息;

扩展点分析单元,用于通过扫描和分析IM客户端的TPC文件获取所述扩展点的信息。

10.如权利要求8所述的IM客户端插件升级能力信息获取装置,其特征在于,所述信息获取模块进一步包括:数据库,用于通过插件接口表保存所述接口的信息,包括能力ID和对应的接口名称,以及接口名称下包含的函数及函数属性;通过插件扩展点表保存所述扩展点的信息,包括能力ID和对应的扩展点ID以及扩展点名称和扩展点提供者。

11.如权利要求8所述的IM客户端插件升级能力信息获取装置,其特征在于,所述比较模块包括:比较单元,将所述待升级IM客户端的插件接口表及插件扩展点表,与所述指定插件的插件接口表及插件扩展点表分别进行比较;

对于接口表,先比较接口名称,如相同,再比较接口名称下包含的函数及函数属性;

对于扩展点表,先比较扩展点ID,如相同,再比较扩展点名称和扩展点提供者;

确定单元,若所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同;则确定该待升级IM客户端具备升级该指定插件的能力。

说明书 :

一种即时通信客户端插件升级能力信息获取方法及装置

技术领域

[0001] 本发明涉及即时通信技术领域,特别涉及一种即时通信客户端插件升级能力信息获取方法及装置。

背景技术

[0002] 即时通信IM作为当今网络用户必不可少的通信工具,不但在平时的休闲娱乐中,而且在用户的工作中得到了广泛的使用。随着IM的普及,早期单一的聊天功能显然不能满足用户多样化的需求,因此在IM客户端上加载各种收费或者免费的互联网服务成为IM的一个新的发展方向。
[0003] 现有的IM客户端,如果要增加新的业务功能和入口,只能通过更新IM客户端版本的方式,用户必须下载安装整个IM客户端才能使用新增加的业务功能。
[0004] 然而,用户往往没有动力或者怕麻烦,或者害怕更新IM客户端后丢失重要的数据,如好友信息,聊天记录等,从而放弃更新IM客户端,造成新业务的推广受到阻碍。
[0005] 为解决新业务的推广问题,出现了插件升级的方式,即保持原有IM客户端不变,将新业务或功能以二进制动态链接库(DLL)形式的独立插件推送给用户,使得IM客户端无需因业务和功能增加而更新版本,减少了频繁更新造成的IM客户端版本混乱,降低了更新难度和风险,并可以由用户自定义需要的业务和功能,提升用户体验。
[0006] 然而,对于每个新的插件来说,并非所有的IM客户端版本都可以使用,由于能力限制,一些老版本的IM客户端很可能并不能安装或使用新的插件,要做到有针对性地推广新业务和新功能,避免更新错误,首先要解决的问题就是获知哪些版本的IM客户端能够升级使用新的插件;而现有技术中尚没有提供该问题的解决方案。

发明内容

[0007] 有鉴于此,本发明提供了一种即时通信客户端插件升级能力获取方法及装置,能够得到IM客户端是否具备升级指定插件的能力的信息。
[0008] 为达上述目的,本发明的技术方案具体是这样实现的:
[0009] 一种即时通信IM客户端插件升级能力信息获取方法,该方法包括:
[0010] 获取多个待升级IM客户端中每个待升级IM客户端提供的所有能力对应的接口和扩展点信息;
[0011] 获取含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;
[0012] 将所述指定插件依赖的能力对应的接口和扩展点信息,分别与每个待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;
[0013] 若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;
[0014] 输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。
[0015] 较佳地,所述接口的信息通过开发工具扩展DTE遍历扫描IM客户端的所有文件获取。
[0016] 较佳地,所述扩展点的信息通过扫描和分析IM客户端的TPC文件获取。
[0017] 较佳地,所述接口信息通过插件接口表保存,包括能力ID和对应的接口名称,以及接口名称下包含的函数及函数属性。
[0018] 较佳地,所述扩展点信息通过插件扩展点表保存,包括能力ID以及对应的扩展点ID、扩展点名称及扩展点提供者。
[0019] 较佳地,所述比较,包括:
[0020] 将所述待升级IM客户端的插件接口表及插件扩展点表,与所述指定插件的插件接口表及插件扩展点表分别进行比较;
[0021] 对于接口表,先比较接口名称,如相同,再比较接口名称下包含的函数及函数属性;
[0022] 对于扩展点表,先比较扩展点ID,如相同,再比较扩展点名称和扩展点提供者。
[0023] 较佳地,所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,包括:
[0024] 所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;
[0025] 所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同。
[0026] 一种IM客户端插件升级能力信息获取装置,该装置包括:
[0027] 信息获取模块,获取多个待升级IM客户端中每个待升级IM客户端提供的所有能力对应的接口和扩展点信息;获取含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;
[0028] 比较模块,将所述指定插件依赖的能力对应的接口和扩展点信息,分别与每个待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;
[0029] 输出模块,输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。
[0030] 较佳地,所述信息获取模块包括:
[0031] 接口扫描单元,用于通过DTE遍历扫描IM客户端的所有文件获取所述接口的信息;
[0032] 扩展点分析单元,用于通过扫描和分析IM客户端的TPC文件获取所述扩展点的信息。
[0033] 较佳地,所述信息获取模块进一步包括:
[0034] 数据库,用于通过插件接口表保存所述接口的信息,包括能力ID和对应的接口名称,以及接口名称下包含的函数及函数属性;通过插件扩展点表保存所述扩展点的信息,包括能力ID和对应的扩展点ID以及扩展点名称和扩展点提供者。
[0035] 较佳地,所述比较模块包括:
[0036] 比较单元,将所述待升级IM客户端的插件接口表及插件扩展点表,与所述指定插件的插件接口表及插件扩展点表分别进行比较;
[0037] 对于接口表,先比较接口名称,如相同,再比较接口名称下包含的函数及函数属性;
[0038] 对于扩展点表,先比较扩展点ID,如相同,再比较扩展点名称和扩展点提供者;
[0039] 确定单元,若所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同;则确定该待升级IM客户端具备升级该指定插件的能力。
[0040] 由上述技术方案可见,本发明的这种获取IM客户端插件升级能力信息的方法及装置,可以通过比较待升级IM客户端提供的能力与指定插件需要使用的能力,具体通过能力对应的接口和扩展点是否相同作为依据,从而可以得到待升级IM客户端是否含有升级指定插件所需的能力的信息。

附图说明

[0041] 图1为本发明实施例获取IM客户端插件升级能力信息的方法流程图。
[0042] 图2为本发明实施例获取IM客户端插件升级能力信息的装置的结构示意图。
[0043] 图3为本发明实施例的信息获取模块结构示意图。
[0044] 图4为本发明实施例的比较模块结构示意图。

具体实施方式

[0045] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0046] 本发明主要是提供了一种获取IM客户端插件升级能力信息的方法,通过比较待升级IM客户端提供的能力与指定插件需要使用的能力,来判断待升级IM客户端是否含有升级指定插件所需的所有能力,具体判断能力是否相同时,以能力对应的接口和扩展点是否相同作为依据。
[0047] 图1为本发明实施例获取IM客户端插件升级能力信息的方法,包括如下步骤:
[0048] 步骤101,获取待升级IM客户端提供的所有能力对应的接口和扩展点信息;
[0049] 以及含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息。
[0050] 要想确定某个IM客户端是否可以升级某指定插件,首先要知道待升级IM客户端能够提供什么能力,而指定插件需要使用什么能力。
[0051] 目前IM客户端提供的能力主要对应到4个方面:A)服务;B)组件;C)事件扩展(状态通知);和D)组件容器(GF扩展)。这些能力具体可以体现在IM客户端使用的接口和扩展点上(接口和扩展点的概念属于本领域技术人员公知,这里就不再详细介绍了),即某种能力体现在对应的某些接口和扩展点,如果具备了这些接口和扩展点,就代表该IM客户端具备对应的能力;因此,对于待升级的IM客户端,知道其提供了哪些能力,就需要获取该IM客户端所有能力对应的接口和扩展点的信息。同理,对于指定插件需要使用的能力,也可以通过获取含有该指定插件的IM客户端中,该指定插件依赖的能力所对应的接口和扩展点信息而得到。
[0052] 对于接口和扩展点信息,对于由不同方式开发的IM客户端来说,获取方法各有不同,例如采用VS(Visual Studio)开发的IM客户端,可以通过开发工具扩展(DTE)技术对IM客户端包含的所有文件,如源代码文件(.h和.cpp为后缀的文件)和一些配置资源文件(.xml、.ico、.png等为后缀的文件)进行扫描得到,其中,扩展点信息则一般可以从TPC文件(.tpc后缀)中分析取得。
[0053] 对于获取到的接口及扩展点信息,可以分别通过插件接口表和插件扩展点表的形式保存在数据库内,以供后续的比较过程使用;具体在插件接口表中可以包括能力ID以及该能力ID对应的接口名称等,插件扩展点表中可以包括能力ID及该能力ID对应的扩展点ID等。
[0054] 一个能力ID可以对应多个接口名称,一个能力ID也可以对应多个扩展点ID。
[0055] 步骤102,将所述指定插件依赖的能力对应的接口和扩展点信息,与所述待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;
[0056] 其中,若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;否则,如果待升级IM客户端中缺少某些指定插件依赖的能力对应的接口和扩展点,则确定该待升级IM客户端不具备升级该指定插件的能力。
[0057] 具体比较时,可以使用上述插件接口表和插件扩展点表来进行比较,分别比较待升级IM客户端和包含指定插件的IM客户端的这两张表来确定接口与扩展点是否相同。
[0058] 对于接口的比较,可以针对该指定插件使用到的每一个接口,即包含指定插件的IM客户端的插件接口表中的每一项,去待升级IM客户端的插件接口表中去查找,接口是由接口名字和一系列的函数组成,可以首先比较接口名称,如果接口名称不同,说明接口不同;如果接口名称相同,再逐一比较该接口下的所有函数及函数属性;函数是由五大属性组成:函数返回值,函数调用规范,函数名,参数类型,参数数量,这五个属性中只要其中有一个不同,则说明该插件依赖的接口与待升级IM客户端中的接口不同。
[0059] 对于扩展点的比较,可以针对该指定插件依赖的每一个扩展点,即包含指定插件的IM客户端的插件扩展点表中的每一项)去待升级IM客户端的插件扩展点表中去查找,首先比较扩展点ID,如果扩展点ID相同,再比较扩展点名,如果扩展点名相同,再比较扩展点提供者,这三项只要其中有一项不同,则说明该插件依赖的扩展点与待升级IM客户端中的扩展点不同。
[0060] 上述所有这些比较,都是基于字符串进行比较,如果比较结果确定所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;同时,所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同;则说明所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,也即确定该待升级IM客户端具备升级指定插件的能力。
[0061] 对于多个待升级IM客户端,可以逐一进行比较,从而确定所有待升级IM客户端是否有升级指定插件的能力。
[0062] 步骤103,输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。
[0063] 具体输出信息时,可以将具备升级指定插件能力的IM客户端的版本号通过列表方式输出。
[0064] 与上述方法实施例对应,本发明还提供一种IM客户端插件升级能力信息获取装置的实施例,入图2所示,该装置包括:
[0065] 信息获取模块201,获取待升级IM客户端提供的所有能力对应的接口和扩展点信息;获取含有指定插件的IM客户端中,该指定插件依赖的能力对应的接口和扩展点信息;
[0066] 比较模块202,将所述指定插件依赖的能力对应的接口和扩展点信息,与所述待升级IM客户端提供的所有能力对应的接口和扩展点信息进行比较;若所述待升级IM客户端中包含该指定插件依赖的能力对应的所有接口和所有扩展点,则确定该待升级IM客户端具备升级该指定插件的能力;
[0067] 输出模块203,输出所有待升级IM客户端中具备升级该指定插件能力的IM客户端信息。
[0068] 其中,所述信息获取模块201的具体结构如图3所示,包括:
[0069] 接口扫描单元301,用于通过DTE遍历扫描IM客户端的所有文件获取所述接口的信息;
[0070] 扩展点分析单元302,用于通过扫描和分析IM客户端的TPC文件获取所述扩展点的信息。
[0071] 较佳地,所述信息获取模块201还可以进一步包括:
[0072] 数据库303,与所述接口扫描单元301及扩展点分析单元302分别相连,用于通过插件接口表保存所述接口的信息,包括能力ID和对应的接口名称,以及接口名称下包含的函数及函数属性;通过插件扩展点表保存所述扩展点的信息,包括能力ID和对应的扩展点ID以及扩展点名称和扩展点提供者。
[0073] 所述比较模块202的具体结构如图4所示,包括:
[0074] 比较单元401,将所述待升级IM客户端的插件接口表及插件扩展点表,与所述指定插件的插件接口表及插件扩展点表分别进行比较;
[0075] 对于接口表,先比较接口名称,如相同,再比较接口名称下包含的函数及函数属性;
[0076] 对于扩展点表,先比较扩展点ID,如相同,再比较扩展点名称和扩展点提供者;
[0077] 确定单元402,若所述指定插件的插件接口表中的所有接口,包括接口名称及接口下的所有函数及函数属性,在所述待升级IM客户端的插件接口表中全部包含,且完全相同;同时,所述指定插件的插件扩展点表中的所有扩展点,包括扩展点ID、扩展点名称及扩展点提供者,在所述待升级IM客户端的插件扩展点表中全部包含,且完全相同;则确定该待升级IM客户端具备升级该指定插件的能力。
[0078] 由上述的实施例可见,本发明的这种获取IM客户端插件升级能力信息的方法及装置,可以通过比较待升级IM客户端提供的能力与指定插件需要使用的能力,具体通过能力对应的接口和扩展点是否相同作为依据,从而可以得到待升级IM客户端是否含有升级指定插件所需的能力的信息。
[0079] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。