补丁查询方法以及装置与流程

文档序号:11519299阅读:239来源:国知局
补丁查询方法以及装置与流程

本发明涉及计算机技术领域,特别是涉及一种补丁查询方法以及装置。



背景技术:

补丁指对于大型软件系统(如微软操作系统)在使用过程中暴露的问题(一般由黑客或病毒设计者发现)而发布的解决问题的小程序。在一个补丁管理系统中,面向开发人员会提供查询是否有新补丁功能。在查询是否有新补丁时,客户端应用会提供appkey(应用的标识),app(application,应用)版本,sdk(softwaredevelopmentkit,软件开发工具包)版本,app装载系统版本和app发布渠道等信息,如果有符合这些属性的补丁则需要返回一个最接近要求的补丁给客户端。然而传统技术中还没有科学有效的补丁匹配方法,能够实现客户端在每次查询时,返回最符合查询条件的补丁。



技术实现要素:

基于此,有必要针对上述问题,提供一种补丁查询方法以及装置,能够实现客户端在每次查询时,返回最符合查询条件的补丁。

一种补丁查询方法,包括步骤:

接收客户端发送的补丁查询请求,所述补丁查询请求包括待查询补丁的各个属性,每一个属性包括名称和值;

将所述待查询补丁与所有已发布的第一补丁进行比较,判断所述待查询补丁与每一个第一补丁的各个属性是否存在交集,所述交集为两个属性匹配或者同一名称的其中一个属性的值为不指定;

从所有已发布的第一补丁中筛选出与所述待查询补丁存在交集的各个第二补丁,计算各个第二补丁的精确度;

将精确度最大的第二补丁发送给所述客户端。

一种补丁查询装置,包括:

查询请求接收模块,用于接收客户端发送的补丁查询请求,所述补丁查询请求包括待查询补丁的各个属性,每一个属性包括名称和值;

交集判断模块,用于将所述待查询补丁与所有已发布的第一补丁进行比较,判断所述待查询补丁与每一个第一补丁的各个属性是否存在交集,所述交集为两个属性匹配或者同一名称的其中一个属性的值为不指定;

精确度计算模块,用于从所有已发布的第一补丁中筛选出与所述待查询补丁存在交集的各个第二补丁,计算各个第二补丁的精确度;

补丁发送模块,用于将精确度最大的第二补丁发送给所述客户端。

上述补丁查询方法以及装置,根据客户端提供的补丁查询请求,比较待查询补丁的各个属性与已存在的补丁的各个属性是否存在交集,即筛选出初步满足补丁查询请求的各个补丁,然后将筛选出各个补丁的精确度进行排序,精确度最高的补丁为最准确匹配补丁查询条件的补丁,也即是最符合补丁查询请求要求的补丁,然后将精确度最高的补丁返回给客户端,因此通过本发明的补丁匹配算法,能够实现客户端在每次查询时,返回最符合查询条件的补丁。

附图说明

图1为一实施例的补丁查询方法的流程示意图;

图2为一实施例的第二补丁的精确度计算方法的流程示意图;

图3为一实施例的补丁查询装置的结构示意图;

图4为另一实施例的补丁查询装置的结构示意图;

图5为另一实施例的补丁查询装置的结构示意图;

图6为一实施例的精确度计算模块的结构示意图。

具体实施方式

为更进一步阐述本发明所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本发明的技术方案,进行清楚和完整的描述。

如图1所示,一种补丁查询方法,包括步骤:

s110、接收客户端发送的补丁查询请求,所述补丁查询请求包括待查询补丁的各个属性,每一个属性包括名称和值;

s120、将所述待查询补丁与所有已发布的第一补丁进行比较,判断所述待查询补丁与每一个第一补丁的各个属性是否存在交集,所述交集为两个属性匹配或者同一名称的其中一个属性的值为不指定;

s130、从所有已发布的第一补丁中筛选出与所述待查询补丁存在交集的各个第二补丁,计算各个第二补丁的精确度;

s140、将精确度最大的第二补丁发送给所述客户端。

上述补丁查询方法可以通过相应的程序实现,程序运行在服务器端。通过本发明的补丁匹配算法,能够实现客户端在每次查询时,返回最符合查询条件的补丁。

为了更好地理解本发明,首先对匹配原则和补丁匹配算法进行简单介绍。

匹配原则:补丁匹配采用最大准确匹配原则进行匹配,且给定的任意一组客户端信息组合,只能匹配0或1个补丁。例如:已发布补丁a(属性:应用版本号=1.0.0)及补丁b(属性:应用版本号=1.0.0,渠道=百度市场),如果客户端提供的信息为(应用版本号=1.0.0,渠道=百度市场,...),则匹配且仅匹配补丁b。又例如,已发布补丁c(属性:应用版本号=1.0.0,sdk版本号>=1.0)及补丁d(属性:应用版本号=1.0.0,sdk版本号=2.0),如果客户端提供的信息为(应用版本号=1.0.0,sdk版本号=2.0,...),则匹配且仅匹配补丁d。

补丁匹配算法:记y(v1,v2,...,vn)为某个app的当前环境y,vi为需要与ci匹配的具体值,用y[vi]表示,ci为补丁规则x的第i个条件。如果将所有的补丁规则x按照精确度大小进行降序排列,得到有序集合{x1,x2,...,xm},且集合中所有规则都不冲突(发布时已保证)。按从x1到xm的顺序,若首先发现有xj(1<=j<=m),使得所有xj[ci]能匹配y[vi],则xj所对应的补丁为最准确匹配y的补丁。

下面对各个步骤进行详细介绍。

在步骤s110中,客户端可以为发送请求的任何装置,例如手机、电脑和平板等。当客户端需要查询是否有某一应用的新的补丁时,则向服务器端发送补丁查询请求,查询是否有新的符合条件的补丁存在。客户端会向服务端提供appkey、app版本、sdk版本、系统类型、系统版本和app发布的渠道等信息,即待查询补丁的各个属性。每一个属性包括名称和值,例如,属性:应用版本号=1.0.0,应用版本号为该属性的名称,1.0.0为该属性的值。

在步骤s120中,为了提高补丁匹配的效率,可以对服务器端所有已发布的补丁进行初步过滤。所以,在一个实施例中,所述待查询补丁的属性包括目标app以及目标补丁类型;将所述待查询补丁与所有已发布的第一补丁进行比较之前,还可以包括步骤:

将待查询补丁的目标app以及目标补丁类型与数据库中所有已发布的补丁进行匹配,获得与所述待查询补丁具有相同目标app和相同目标补丁类型的补丁,将获得的补丁作为第一补丁。

根据客户端提供的目标app以及目标补丁类型,从数据库中快速查找出与客户端指定的app和系统补丁类型的补丁,然后在初步筛选出的补丁的基础上进行交集的判断。

为了更好地理解交集,下面对如何判断两个属性是否有交集进行介绍。

记x(c1,c2,...,cn)为补丁规则x,其中ci(1<=i<=n)为第i个属性,用x[ci]表示,属性可以为版本号、sdk版本号、渠道等。给定任意两个补丁规则a和补丁规则b,如果至少存在某一值,能够同时被a[ci]和b[ci]匹配,则称a[ci]和b[ci]有交集,记为a[ci]∩b[ci]≠ф,否则称a[ci]和b[ci]没有交集,记为a[ci]∩b[ci]=ф。对于取值为“不指定”的条件,和任何取值的同一属性都有交集,任何取值包括:属性的值为指定具体值,属性的值为指定取值范围,如[1,3],属性的值为>=某一指定值或<=某一指定值,属性的值为不指定。例如补丁规则a的其中一个属性为:应用版本号=1.0.0,补丁规则b的同一名称的属性为:应用版本号=不指定,那么确定这两个属性有交集。

比较客户端提供的属性和已存在的补丁的属性是否存在交集,如果存在交集,则进入步骤s130。在一个实施例中,判断所述待查询补丁与每一个第一补丁的各个属性是否存在交集之后,还可以包括步骤:若所述待查询补丁与所有的第一补丁的各个属性都不存在交集,向所述客户端返回没有符合条件的补丁的响应信息。即如果客户端提供的属性与所有的已存在补丁的属性都不存在交集,则没有适合的补丁,向客户端返回没有查询到合适补丁的响应信息。

在步骤s130中,计算补丁的精确度有多种方式,例如,在一个实施例中,如图2所示,计算各个第二补丁的精确度的步骤可以包括:

s1301、根据预设的属性的值所对应的精确度,获得每一个第二补丁的各个属性的精确度;

记x(c1,c2,...,cn)为补丁规则x,其中ci(1<=i<=n)为第i个属性,用x[ci]表示,例如版本号、sdk版本号、渠道等属性。记p(x[ci])为补丁规则x的第i个属性的精确度。在一个实施例中,预设的属性的值所对应的精确度的大小关系为:属性的值为指定具体值的精确度>属性的值为(>=第一指定值且<=第二指定值)的精确度>属性的值为(>=具体值或<=具体值)的精确度>属性的值为不指定的精确度,其中第一指定值小于第二指定值。即条件匹配的精确度排序如下:指定具体值>指定取值范围>(>=或<=)>不指定。指定取值范围为指定上下限的取值范围,>=和<=为仅有一个方向限制的范围。同一类的条件精确度相同,例如>=和<=的精确度相同。

按照上述设定的精确度排序规则,设置各个属性的值所对应的精确度,例如,指定具体值的精确度用数值3表示,指定取值范围的精确度用数值2表示,>=或<=的精确度用数值1表示,不指定的精确度用数值0表示。根据该设置的精确度的数值表示,即可以得到每一个有交集的补丁的各个属性的精确度。

s1302、将各自所有属性的精确度相加,获得各个第二补丁的精确度;

得到一个补丁的所有属性的精确度后,将所有属性的精确度累加就可以得到该补丁的精确度。由此计算出上一步中所有有交集补丁的精确度,返回精确度数值最大的补丁给客户端,该精确度数值最大的补丁即为最符合查询条件的一个补丁。

基于同一发明构思,本发明还提供一种补丁查询装置,下面结合附图对本发明装置的具体实施方式做详细描述。

如图3所示,一种补丁查询装置,包括:

查询请求接收模块110,用于接收客户端发送的补丁查询请求,所述补丁查询请求包括待查询补丁的各个属性,每一个属性包括名称和值;

交集判断模块120,用于将所述待查询补丁与所有已发布的第一补丁进行比较,判断所述待查询补丁与每一个第一补丁的各个属性是否存在交集,所述交集为两个属性匹配或者同一名称的其中一个属性的值为不指定;

精确度计算模块130,用于从所有已发布的第一补丁中筛选出与所述待查询补丁存在交集的各个第二补丁,计算各个第二补丁的精确度;

补丁发送模块140,用于将精确度最大的第二补丁发送给所述客户端。

上述补丁查询装置可以运行在服务器端。通过本发明的补丁查询装置,能够实现客户端在每次查询时,返回最符合查询条件的补丁。为了更好地理解本发明,对各个模块的功能进行详细介绍。

当客户端需要查询是否有某一应用的新的补丁时,则向服务器端发送补丁查询请求,查询是否有新的符合条件的补丁存在。客户端会向服务端的查询请求接收模块110提供appkey,app版本,sdk版本,系统类型,系统版本,app发布的渠道等信息,即待查询补丁的各个属性,每一个属性包括名称和值。

为了提高补丁匹配的效率,可以对服务器端所有已发布的补丁进行初步过滤。所以,在一个实施例中,所述待查询补丁的属性包括目标app以及目标补丁类型;如图4所示,补丁查询装置还可以包括连接在所述查询请求接收模块110和所述交集判断模块120之间的第一补丁获得模块150,所述第一补丁获得模块150用于将待查询补丁的目标app以及目标补丁类型与数据库中所有已发布的补丁进行匹配,获得与所述待查询补丁具有相同目标app和相同目标补丁类型的补丁,将获得的补丁作为第一补丁。根据客户端提供的目标app以及目标补丁类型,所述第一补丁获得模块150从数据库中快速查找出与客户端指定的app和系统补丁类型的补丁。

交集判断模块120比较客户端提供的属性和已存在的补丁的属性是否存在交集,如果存在交集,精确度计算模块130执行精确度计算的功能。在一个实施例中,如图5所示,补丁查询装置还可以包括与所述交集判断模块120相连的响应消息发送模块160,所述响应消息发送模块160用于在所述待查询补丁与所有的第一补丁的各个属性都不存在交集时,向所述客户端返回没有符合条件的补丁的响应信息。

精确度计算模块130计算补丁的精确度有多种方式,例如,在一个实施例中,如图6所示,所述精确度计算模块130可以包括:

属性精确度计算单元1301,用于根据预设的属性的值所对应的精确度,获得每一个第二补丁的各个属性的精确度;

在一个实施例中,预设的属性的值所对应的精确度的大小关系为:属性的值为指定具体值的精确度>属性的值为(>=第一指定值且<=第二指定值)的精确度>属性的值为(>=具体值或<=具体值)的精确度>属性的值为不指定的精确度,其中第一指定值小于第二指定值。即条件匹配的精确度排序如下:指定具体值>指定取值范围>(>=或<=)>不指定。指定取值范围为指定上下限的取值范围,>=和<=为仅有一个方向限制的范围。同一类的条件精确度相同,例如>=和<=的精确度相同。

按照上述设定的精确度排序规则,设置各个属性的值所对应的精确度,例如,指定具体值的精确度用数值3表示,指定取值范围的精确度用数值2表示,>=或<=的精确度用数值1表示,不指定的精确度用数值0表示。根据该设置的精确度的数值表示,即可以得到每一个有交集的补丁的各个属性的精确度。

补丁精确度获得单元1302,用于将各自所有属性的精确度相加,获得各个第二补丁的精确度;

得到一个补丁的所有属性的精确度后,将所有属性的精确度累加就可以得到该补丁的精确度。由此计算出上一步中所有有交集补丁的精确度,最后返回精确度数值最大的补丁给客户端,该精确度数值最大的补丁即为最符合查询条件的一个补丁。

上述补丁查询方法以及装置,可以应用于android(安卓)或ios(苹果公司的移动操作系统)或者其他系统的应用所使用的补丁;提出了补丁匹配精确度概念以及补丁匹配算法,在客户端在每次查询时,能够返回最符合查询条件的补丁。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1