首页> 中国专利> 一种基于即时通信软件实现插件升级的方法及装置

一种基于即时通信软件实现插件升级的方法及装置

摘要

本发明公开了一种基于即时通信软件实现插件升级的方法及装置。该方法包括:获取待升级IM软件插件所调用版本的基本元素;扫描客户端侧,获取客户端IM软件的基本元素;分别匹配所述待升级IM软件插件调用版本的基本元素与客户端IM软件的同类型基本元素,获取与所述待升级IM软件插件所调用版本的基本元素相匹配的客户端;向所述相匹配的客户端IM软件发布待升级IM软件插件。应用本发明,可以提高IM软件的业务覆盖率、简化获取新互联网服务的操作流程。

著录项

  • 公开/公告号CN103179019A

    专利类型发明专利

  • 公开/公告日2013-06-26

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201110441057.1

  • 发明设计人 吴祖榕;林叶辉;孙辉;罗君;

    申请日2011-12-26

  • 分类号H04L12/58;H04L29/08;G06F9/445;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人王一斌

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2024-02-19 19:37:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-14

    授权

    授权

  • 2013-09-18

    实质审查的生效 IPC(主分类):H04L12/58 申请日:20111226

    实质审查的生效

  • 2013-06-26

    公开

    公开

说明书

技术领域

本发明涉及即时通信(IM,Instant Messaging)技术,特别涉及一种基 于即时通信软件实现插件升级的方法及装置。

背景技术

随着计算机网络技术以及第三代移动通信(3G,3rd Generation)互联 网技术的发展,通过点对点的技术来实现互联网上的即时沟通的IM软件工 具应用越来越普遍,IM软件工具已经被大多数的用户所接受并成为用户日 常生活、工作的交流与沟通中必不可少的一部分。而随着IM软件的普及, 早期IM软件工具中单一的聊天功能的互联网服务显然已不能满足用户多样 化的需求,越来越多的运营商开始重视在IM软件上加载各种收费或者免费 的互联网服务以形成IM软件的插件的方式来满足用户多样化的需求,同时 拓展业务,用户通过安装以二进制动态链接库(DLL,Dynamic Link Library) 形式存在的IM软件的插件,可以获取其通过IM软件提供的互联网服务(业 务)。例如,在IM软件中,以作为腾讯公司各业务推广平台的QQ软件来 说,QQ软件上承载了大量的互联网服务和入口,例如,QQ会员功能、QQ 黄钻功能、一键进入QQ邮箱入口以及QQ空间入口等。这些功能和入口, 为用户体验腾讯公司在QQ软件上提供的各项互联网服务提供了方便。

现有IM软件上承载的各种收费或免费的互联网服务,即IM软件的插 件,打包在IM软件中,随同IM软件进行下载并由用户安装使用,如果运 营商需要对IM软件的插件进行升级,例如,拓展新的收费或免费的互联网 服务,则需要重新将升级的插件打包在原有的IM软件或升级的IM软件中, 然后发布出去。这样,如果用户为了体验新的互联网服务,在获取发布的IM 软件的插件后,通过下载承载新互联网服务的IM软件的插件,并成功安装 后,可以体验IM软件承载的互联网服务。

由上述可见,现有基于IM软件实现插件升级的方法,需要将升级的插 件打包在IM软件中,用户通过安装IM软件的插件,才能体验该IM软件上 承载的互联网服务,因而,即使是对于同一IM软件,只要其承载的互联网 服务进行了升级,就需要重新下载该打包的IM软件的插件,不仅使得同一 IM软件的业务覆盖率较低、获取新互联网服务的操作较为繁琐,还使得用 户网络流量较大,用户成本上升。

发明内容

有鉴于此,本发明的主要目的在于提出一种基于即时通信软件实现插件 升级的方法,提高IM软件的业务覆盖率、简化获取新互联网服务的操作流 程。

本发明的另一目的在于提出一种基于即时通信软件实现插件升级的装 置,提高IM软件的业务覆盖率、简化获取新互联网服务的操作流程。

为达到上述目的,本发明提供了一种基于即时通信软件实现插件升级的 方法,该方法包括:

获取待升级IM软件插件所调用版本的基本元素;

扫描客户端侧,获取客户端IM软件的基本元素;

分别匹配所述待升级IM软件插件调用版本的基本元素与客户端IM软 件的同类型基本元素,获取与所述待升级IM软件插件所调用版本的基本元 素相匹配的客户端;

向所述相匹配的客户端IM软件发布待升级IM软件插件。

所述基本元素包括:导出函数、接口、枚举值和结构体。

所述获取待升级IM软件插件所调用版本的基本元素包括:

扫描服务器,获取IM软件中的动态链接库DLL文件;

解析DLL文件中可移植的执行体文件的结构,提取结构中的导出表信 息,获取导出函数;

利用服务器中微软数据终结设备自动化接口,扫描服务器IM软件中的 所有文件,分别获取接口、枚举值和结构体。

通过调用扫描函数扫描服务器中的DLL文件,获取所述IM软件中的动 态链接库DLL文件;

通过微软数据终结设备自动化接口调用源代码扫描函数,扫描IM软件 中的所有文件,分别获取所述接口、枚举值和结构体。

在所述获取客户端IM软件的基本元素后,进一步包括:

将获取的客户端IM软件的基本元素与对应的客户端标识信息进行存 储。

所述分别匹配所述待升级IM软件插件调用版本的基本元素与客户端 IM软件的同类型基本元素,获取与所述待升级IM软件插件所调用版本的基 本元素相匹配的客户端包括:

获取待升级插件所调用版本的IM软件的基本元素中的导出函数、接口、 枚举值和结构体,分别与所述待升级IM软件插件所调用版本的同类型的IM 软件的基本元素中的导出函数、接口、枚举值和结构体进行匹配,确定导出 函数、接口、枚举值和结构体匹配成功,根据与调用版本的IM软件相匹配 的同类型的IM软件,获取对应的客户端信息。

所述确定导出函数匹配成功包括:

分别匹配调用所述待升级IM软件插件与客户端IM软件中导出函数的 函数名、返回值、参数个数和类型,如果二者导出函数的所有参数都相同, 则导出函数匹配成功。

所述确定接口匹配成功包括:

匹配调用所述待升级IM软件插件与客户端IM软件中接口的接口名, 如果接口名相同,再匹配接口的成员函数,如果二者接口的成员函数相同, 确定接口匹配成功。

所述确定枚举值匹配成功包括:

分别匹配调用所述待升级IM软件插件与客户端IM软件的枚举值中枚 举成员的位置和值,如果二者枚举成员的位置和值都相同,确定枚举值匹配 成功。

所述确定结构体匹配成功包括:

分别匹配调用所述待升级IM软件插件与客户端IM软件的结构体成员 的类型、成员名、位置,如果二者结构体成员的类型、成员名、位置都相同, 确定结构体匹配成功。

所述向所述相匹配的客户端IM软件发布待升级插件包括:

向所述相匹配的客户端输出待升级IM软件插件提示信息;

接收客户端返回的确认升级IM软件插件信息;

将待升级IM软件插件输出至所述返回确认待升级IM软件插件信息的 客户端。

一种基于即时通信软件实现插件升级的装置,该装置包括:扫描模块、 匹配模块以及发布模块,其中,

获取模块,用于获取待升级即时通信IM软件插件所调用版本的基本元 素;

扫描模块,用于扫描各客户端,获取客户端IM软件的基本元素;

匹配模块,分别匹配所述待升级IM软件插件调用版本的基本元素和与 所述客户端IM软件的同类型基本元素,获取与所述待升级IM软件插件所 调用版本的基本元素相匹配的客户端;

发布模块,向所述相匹配的客户端IM软件发布待升级IM软件插件。

进一步包括:

存储模块,采用MySQL数据库存储待升级IM软件插件所调用版本的 基本元素、以及,与所述客户端IM软件的同类型基本元素与对应的客户端 标识信息。

所述扫描模块包括:第一扫描单元以及第二扫描单元,其中,

第一扫描单元,分别扫描服务器以及客户端,获取IM软件中的DLL 文件,解析DLL文件中PE文件的结构,提取结构中的导出表信息,获取导 出函数。

第二扫描单元,利用服务器中微软DTE自动化接口,遍历服务器以及 客户端,扫描IM软件中的所有文件,分别获取接口、枚举值和结构体。

所述匹配模块包括:导出函数匹配单元、接口匹配单元、枚举值匹配单 元、结构体匹配单元以及匹配结果处理单元,其中,

导出函数匹配单元,从存储模块中分别获取待升级IM软件插件所调用 版本的基本元素中的导出函数、以及,与所述客户端IM软件的同类型基本 元素中的导出函数,进行匹配,向匹配结果处理单元输出导出函数匹配结果 信息;

接口匹配单元,从存储模块中分别获取待升级IM软件插件所调用版本 的基本元素中的接口、以及,与所述客户端IM软件的同类型基本元素中的 接口,进行匹配,向匹配结果处理单元输出接口匹配结果信息;

枚举值匹配单元,从存储模块中分别获取待升级IM软件插件所调用版 本的基本元素中的枚举值、以及,与所述客户端IM软件的同类型基本元素 中的枚举值,进行匹配,向匹配结果处理单元输出枚举值匹配结果信息;

结构体匹配单元,从存储模块中分别获取待升级IM软件插件所调用版 本的基本元素中的结构体、以及,与所述客户端IM软件的同类型基本元素 中的结构体,进行匹配,向匹配结果处理单元输出结构体匹配结果信息;

匹配结果处理单元,确定接收的匹配结果信息都为匹配,根据存储模块 存储的与所述客户端IM软件的同类型基本元素与对应的客户端标识信息, 获取匹配结果信息对应的客户端标识信息,输出至发布模块。

由上述的技术方案可见,本发明实施例提供的一种基于即时通信软件实 现插件升级的方法及装置,获取待升级IM软件插件所调用版本的基本元素; 扫描客户端侧,获取客户端IM软件的基本元素;分别匹配所述待升级IM 软件插件调用版本的基本元素与客户端IM软件的同类型基本元素,获取与 所述待升级IM软件插件所调用版本的基本元素相匹配的客户端;向所述相 匹配的客户端IM软件发布待升级IM软件插件。这样,用户可以实现不安 装最新版本IM软件,也可以体验到IM软件的最新业务,简化了获取新互 联网服务的操作流程,提高了IM软件的业务覆盖率。

附图说明

图1为本发明实施例插件与IM软件平台的关系结构示意图。

图2为本发明实施例基于即时通信软件实现插件升级的方法流程示意 图。

图3为本发明实施例基于即时通信软件实现插件升级的装置结构示意 图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体 实施例对本发明作进一步地详细描述。

现有基于即时通信软件实现插件升级的方法,需要将新的收费或免费的 互联网服务等新业务功能承载在更新或升级的IM软件中进行发布,用户需 要下载承载新互联网服务的IM软件的最新版本并安装后,才能体验承载的 互联网服务,这样,不仅使得IM软件的业务覆盖率较低、获取新互联网服 务的操作较为繁琐,而且,如果新互联网服务打包到IM软件的最新版本中, 将导致仍在使用老版本的用户,在不安装新版本的前提下,无法体验新的互 联网服务。

为了解决这一问题,本发明实施例中,提出了IM软件的插件升级的概 念,即插件可以不随最新版本的IM软件发布,业务(互联网服务、插件) 以独立插件DLL形式直接推送到已对外发布的老版本的IM软件上,也就是 说,对于待发布(升级)的新互联网服务,不需要打包到新版本的IM软件 中,作为独立插件可以直接推向市场上已经发布的老版本IM软件中。

如前所述,考虑到IM软件的插件是以二进制DLL的形式存在,通过调 用IM软件提供的公共基础服务来实现各种互联网服务,并提供给用户使用。 各插件在功能上彼此独立,IM软件提供的公共基础服务,包括数据结构、 网络服务、文件系统,映射到代码上体现为对导出函数、接口、枚举值、结 构体基本元素的调用,通过对不同类型的IM软件提供的数据结构、网络服 务以及文件系统的统计分析得到:不同类型的IM软件,其导出函数、接口、 枚举值以及结构体代码中,不会存在对应相同的代码,同类型的IM软件, 对应代码不一定相同。举例来说,A类型IM软件的导出函数不会与,其接 口、枚举值以及结构体也分别不会与B类型IM软件的接口、枚举值以及结 构体相同。

图1为本发明实施例插件与IM软件平台的关系结构示意图。参见图1, 各插件通过调用IM软件平台提供的数据结构、网络服务、文件系统,其中, 数据结构映射到代码上体现为导出函数的调用,网络服务到代码上体现为映 射到代码上体现为接口的调用,文件系统映射到代码上体现为枚举值以及结 构体的调用,这样,最终通过相应的导出函数调用、接口调用、枚举值调用 以及结构体调用,可以实现插件提供的互联网服务。

这样,如果互联网服务承载在同一类型的IM软件上,则调用IM软件 提供的基本元素都相同,因而,本发明实施例中,如果待升级互联网服务插 件所调用版本的IM软件的基本元素和已发布版本的IM软件的基本元素相 比没有发生改变,则能够将插件升级到该已发布版本的IM软件上,使得用 户不需安装最新版本的IM软件,也能够体验到这些新互联网服务,从而提 高了IM软件的业务覆盖率,无需对待升级插件进行打包,用户也无需下载 IM软件的插件,简化了获取新互联网服务的操作流程。

图2为本发明实施例基于即时通信软件实现插件升级的方法流程示意 图。参见图2,该流程包括:

步骤201,获取待升级IM软件插件所调用版本的基本元素;

本步骤中,运营商根据实际需要确定进行插件升级、并确定承载升级插 件的IM软件,即确定待升级插件所调用版本的IM软件后,服务器获取待 升级IM软件插件所调用版本的基本元素。

实际应用中,还可以将待升级插件打包在最新版本的IM软件中,形成 IM软件插件以供后续应用。

基本元素包括:导出函数、接口、枚举值和结构体,其中,导出函数与 二进制DLL相关,而接口、枚举值和结构体这三个基本元素与源代码相关。 其中,

获取基本元素中的导出函数包括:

A1、扫描服务器获取IM软件中的DLL文件;

本步骤中,通过调用扫描函数(SnapExpFun)扫描DLL文件。

A2、解析DLL文件中可移植的执行体(PE,Portable Execute)文件的 结构,提取结构中的导出表信息,获取导出函数。

获取基本元素中的接口、枚举值和结构体包括:

利用服务器中微软数据终结设备(DTE,Data Terminal Equipment)自 动化接口,扫描服务器IM软件中的所有文件,分别获取接口、枚举值和结 构体。

本步骤中,通过调用源代码扫描(SnapAddin)函数遍历扫描IM软件 中的所有文件,分别获取接口、枚举值和结构体。

在获取基本元素后,进一步包括:将获取的基本元素进行存储,例如, 存储在数据库中。

步骤202,扫描客户端侧,获取客户端IM软件的基本元素;

本步骤中,根据待升级IM软件插件信息,遍历与服务器相连的所有客 户端,获取各客户端IM软件的基本元素,获取的方法与步骤201相同,在 此不再赘述。

同样地,在获取客户端IM软件的基本元素后,将获取的客户端IM软 件的基本元素与对应的客户端标识信息进行存储。

步骤203,分别匹配所述待升级IM软件插件调用版本的基本元素与客 户端IM软件的同类型基本元素,获取与所述待升级IM软件插件所调用版 本的基本元素相匹配的客户端;

本步骤中,匹配的对象,就是待升级IM软件插件所调用版本的基本元 素与已外发版本的IM软件基本元素进行匹配。具体来说,通过获取待升级 IM软件插件所依赖的IM软件的四大基本元素:导出函数、接口、枚举值和 结构体,分别与已外发版本的IM软件的导出函数、接口、枚举值和结构体 进行相应匹配,如果所有基本元素没有任何改变,则可以确定该待升级IM 软件插件可以实现跨版本升级,根据与调用版本的待升级IM软件相匹配的 已外发版本的IM软件,获取对应的客户端信息,然后可以在该客户端上启 动IM软件插件升级流程。

如前所述,由于进行匹配的基本元素信息已保存在数据库里,读取数据 库中待升级IM软件插件所调用版本的基本元素,分别与各客户端的IM软 件的基本元素进行匹配,匹配算法为:只要发现待升级IM软件插件所调用 版本的基本元素中的任一基本元素发生了改变,就不允许该待升级IM软件 插件在与之匹配的安装外发版本的IM软件的客户端上升级,如果所有基本 元素都相同,同意升级。

本发明实施例中,匹配算法与基本元素的类型密切相关:

对于导出函数,可以通过两个版本IM软件中导出函数的函数名、返回 值、参数个数和类型的匹配确定是否匹配成功,如果导出函数的所有参数都 相同,则导出函数匹配成功;

对于接口,可以首先匹配接口名,如果两个版本IM软件中的接口名相 同,则会进一步匹配接口的成员函数,如果接口的成员函数相同,接口匹配 成功;

对于枚举值,则可以通过两个版本IM软件中枚举成员的位置和值来确 定是否匹配,如果枚举成员的位置和值都相同,枚举值匹配成功;

对于结构体,则可以通过两个版本IM软件中结构体成员的类型、成员 名、位置这三个参数来确定是否匹配,如果结构体成员的类型、成员名、位 置都相同,结构体匹配成功。

本发明实施例中,可以通过调用匹配函数(CodeReporter)读取MySQL 数据库中存储的基本元素来完成分析匹配。

步骤204,向所述相匹配的客户端IM软件发布待升级插件。

本步骤中,向所述相匹配的客户端IM软件发布待升级插件包括:

向所述相匹配的客户端输出待升级IM软件插件提示信息;

接收客户端返回的确认待升级IM软件插件提示信息,将待升级IM软 件插件输出至返回待升级IM软件插件提示信息的客户端。

本步骤中,只将待升级IM软件插件输出至客户端,避免了待升级IM 软件插件需要与IM软件打包形成IM软件的插件,客户端需要重新安装IM 软件的插件的操作流程。

当然,实际应用中,也可以直接将待升级IM软件插件输出至相匹配的 客户端,从而实现待升级IM软件插件的发布。

进一步地,对于未匹配成功的客户端,向该客户端输出待升级IM软件 插件安装提示信息,以提示用户需要从服务器下载IM软件的插件,并对安 装的IM软件进行更新才能应用该待升级IM软件插件。

图3为本发明实施例基于即时通信软件实现插件升级的装置结构示意 图。参见图3,该装置可以为发布互联网服务(插件)的服务器,包括:获 取模块、扫描模块、匹配模块以及发布模块,其中,

获取模块,用于获取待升级IM软件插件所调用版本的基本元素;

扫描模块,用于扫描各客户端,获取客户端IM软件的基本元素;

本发明实施例中,扫描模块通过调用源代码扫描(SnapAddin)以及扫 描(SnapExpFun)函数,由SnapAddin函数实现对基本元素中的接口、枚举 值以及结构体的扫描,由SnapExpFun函数实现对基本元素中的导出函数的 扫描。

匹配模块,分别匹配所述待升级IM软件插件调用版本的基本元素和与 所述客户端IM软件的同类型基本元素,获取与所述待升级IM软件插件所 调用版本的基本元素相匹配的客户端;

本发明实施例中,通过调用匹配函数(CodeReporter)读取扫描模块获 取的基本元素,完成分析匹配,并输出最后的结果邮件,即与所述待升级IM 软件插件所调用版本的基本元素相匹配的客户端信息。

发布模块,向所述相匹配的客户端IM软件发布待升级IM软件插件。

进一步包括:

存储模块,采用MySQL数据库存储待升级IM软件插件所调用版本的 基本元素、以及,与所述客户端IM软件的同类型的基本元素与对应的客户 端标识信息。

扫描模块包括:第一扫描单元以及第二扫描单元,其中,

第一扫描单元,分别扫描服务器以及客户端,获取IM软件中的DLL 文件,解析DLL文件中PE文件的结构,提取结构中的导出表信息,获取导 出函数。

第二扫描单元,利用服务器中微软DTE自动化接口,遍历服务器以及 客户端,扫描IM软件中的所有文件,分别获取接口、枚举值和结构体。

匹配模块包括:导出函数匹配单元、接口匹配单元、枚举值匹配单元、 结构体匹配单元以及匹配结果处理单元,其中,

导出函数匹配单元,从存储模块中分别获取待升级IM软件插件所调用 版本的基本元素中的导出函数、以及,与所述客户端IM软件的同类型基本 元素中的导出函数,进行匹配,向匹配结果处理单元输出导出函数匹配结果 信息;

接口匹配单元,从存储模块中分别获取待升级IM软件插件所调用版本 的基本元素中的接口、以及,与所述客户端IM软件的同类型基本元素中的 接口,进行匹配,向匹配结果处理单元输出接口匹配结果信息;

枚举值匹配单元,从存储模块中分别获取待升级IM软件插件所调用版 本的基本元素中的枚举值、以及,与所述客户端IM软件的同类型基本元素 中的枚举值,进行匹配,向匹配结果处理单元输出枚举值匹配结果信息;

结构体匹配单元,从存储模块中分别获取待升级IM软件插件所调用版 本的基本元素中的结构体、以及,与所述客户端IM软件的同类型基本元素 中的结构体,进行匹配,向匹配结果处理单元输出结构体匹配结果信息;

匹配结果处理单元,确定接收的匹配结果信息都为匹配,根据存储模块 存储的与所述客户端IM软件的同类型基本元素与对应的客户端标识信息, 获取匹配结果信息对应的客户端标识信息,输出至发布模块。

由上述可见,本发明实施例的基于即时通信软件实现插件升级的方法及 装置,通过获取待升级IM软件插件所调用版本的基本元素和已发布版本IM 软件的基本元素,并进行匹配,在匹配成功时,将待升级IM软件插件输出 至已发布版本IM软件所属的客户端。这样,使得IM软件的插件能够实现 跨版本升级,用户可以实现不安装最新版本IM软件,也可以体验到IM软 件的最新业务,简化了获取新互联网服务的操作流程,从而加快互联网服务 的普及速度,使用户能更快更好的体验到各项最新的互联网服务,显著提高 了IM软件的互联网服务覆盖率;同时,由于插件无需与IM软件打包下载, 有效降低了用户网络流量,节约了用户成本。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号