一种软件更新方法及装置与流程

文档序号:12494319阅读:287来源:国知局
一种软件更新方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种软件更新方法及装置。



背景技术:

在软件研发领域,版本热更新为必不可少的功能,版本热更新是指软件可在线更新,无需重新下载客户端,只需下载资料包,即可完成版本更新。对于游戏软件,其版本更新通常包括游戏数据、美术资源及功能代码,游戏数据是指游戏中需要使用到的各类型定义数据,如物品信息、角色属性等,美术资源是指游戏中的地图、人物模型及各种UI画面,功能代码是指游戏中各种功能的实现代码。

对于游戏软件版本热更新功能,其设计、操作、管理难度较高,具体原因如下:版本热更新频率较高,为让玩家保持新鲜感,在游戏运营过程中,会按照一定的周期进行内容更新,不断推出新的游戏内容,另外,会根据游戏过程中的反馈进行数据方面的优化调整;版本热更新主要用于生成环境,每次更新都是直接面对玩家,因此需要保证热更新的流程准确无误,尤其要确保流程的可控性,避免热更新流程中因人为错误而导致的问题;版本热更新牵涉的人员较广,热更新涉及多个部分,如游戏数据、美术资源、功能代码,在开发过程中,各部分分属不同的人员进行开发管理。

如何采用统一的更新提交接口提交更新数据,且简便、可控地进行软件更新,是游戏软件版本热更新亟待解决的问题之一。



技术实现要素:

本发明主要解决的技术问题是提供一种软件更新方法及装置,能够采用统一的更新提交接口提交更新数据,且简便、可控地进行软件热更新。

为解决上述技术问题,本发明提供一种软件更新方法,包括以下步骤:获取SVN服务器中更新后的软件数据;将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件;将存在差异的文件进行分割打包;将分割打包后的包文件发送至缓存端,并记录存在差异的文件的文件信息;根据发布指令更新软件版本号,软件版本号与包文件对应;当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新。

其中,更新后的软件数据采用SVN服务器的提交接口进行数据提交。

其中,缓存端为内容分发网络。

其中,待更新端为客户端或服务器端。

其中,当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新的步骤包括:当软件版本号更新后,发送软件版本号更新消息至服务器端;根据服务器端的请求返回软件版本号、文件信息及包文件,以实现服务器端软件的热更新。

为解决上述技术问题,本发明提供一种软件更新装置,包括:获取模块,用于获取SVN服务器中更新后的软件数据;比对模块,用于将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件;打包模块,用于将存在差异的文件进行分割打包;发送记录模块,用于将分割打包后的包文件发送至缓存端,并记录存在差异的文件的文件信息;更新模块,用于根据发布指令更新软件版本号,软件版本号与包文件对应;发送模块,用于当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新。

其中,更新后的软件数据采用SVN服务器的提交接口进行数据提交。

其中,待更新端为客户端或服务器端。

其中,发送模块包括:发送单元,用于当软件版本号更新后,发送软件版本号更新消息至服务器端;返回单元,用于根据服务器端的请求返回软件版本号、文件信息及包文件,以实现服务器端软件的热更新。

为解决上述技术问题,本发明提供一种软件更新系统,包括上述软件更新装置和用于存储更新后的软件数据的SVN服务器。

本发明的有益效果是:区别于现有技术的情况,本发明的软件更新方法具体为:首先获取SVN服务器中更新后的软件数据,其中,更新后的软件数据采用SVN服务器的提交接口进行数据提交;然后将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件,将存在差异的文件进行分割打包,将分割打包后的包文件发送至缓存端,并记录存在差异的文件的文件信息;最后根据发布指令更新软件版本号,其中,软件版本号与包文件对应,当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新。通过上述方式,本发明软件更新简便、可控,满足游戏软件版本热更新频率高的要求,减少热更新过程中的人为操作;利用SVN服务器的提交接口进行更新后的软件数据的提交,由于提交接口统一,可确保更新后的软件数据的可靠性。

附图说明

图1是本发明软件更新方法一实施例的流程示意图;

图2是本发明软件更新装置一实施例的结构示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细说明。

请参阅图1,图1是本发明软件更新方法一实施例的流程示意图,如图1所示,包括以下步骤:

S11,获取SVN服务器中更新后的软件数据。

本实施例方法由游戏软件版本热更新平台实现,为基于SVN (Subversion )管理的游戏软件版本热更新方法。在本实施例中,更新后的软件数据采用SVN服务器的提交接口进行数据提交。

对于软件版本热更新,其首要要求为低出错率,因为生成环境上的错误,都会导致重大的运营事故。利用SVN作为更新资料的管理,可避免更新资料的出错,原因主要有:不同资料提供者均对SVN的使用非常熟悉,减少因为使用不熟悉的工具所造成的人为错误;利用SVN同步机制,可防止不同资料提供者对同一份资料修改导致的信息覆盖错误;利用SVN版本控制特性,可以很方便的进行历史版本的回溯,对于资料更新错误,可以很方便地进行查找;SVN作为成熟的版本管理,稳定性非常高,可增加版本热更新的稳定性。

对于更新后的软件数据,其提交过程具体为:资料发布者通过本地的SVN客户端连接到SVN服务器,首先更新最新的资料库到本地,以确保本地和SVN服务器资料的同步,然后把需要更新的资料文件拷贝到本地资料存放目录,根据预先设定好的目录进行存放,该目录可根据游戏的不同自行设定,再者利用SVN客户端的比对功能,进行资料检查,确认资料更新的正确性,最后确认更新资料正确后,向SVN服务器进行提交,SVN服务器对更新后的软件数据进行存储。在提交过程中,若部分资料无法提交,则表明有资料文件冲突,需重新更新资料,并自行进行资料的合并。

S12,将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件。

S13,将存在差异的文件进行分割打包。

S14,将分割打包后的包文件发送至缓存端,并记录存在差异的文件的文件信息。

游戏软件的版本发布由管理者进行管理,当更新资料提交完毕,管理者发出版本生成指令,此时生成的版本为可发布版本,但不立即发布。版本生成的过程具体为:当管理者发出版本生成指令后,游戏软件版本热更新平台获取SVN服务器中更新后的软件数据;将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件,即筛选出所有有变更的文件,该筛选出来的文件为后续版本包生成材料;存在差异的文件筛选出来后,自动对其进行分割打包,具体打包成便于下载的压缩文件;将打包后的包文件传输至缓存端,以备下载;包文件传输至缓存端后,记录存在差异的文件的文件信息。

在本实施例中,缓存端为内容分发网络(Content Delivery Network,CDN)。

S15,根据发布指令更新软件版本号,软件版本号与包文件对应。

管理者接收到版本生成完成的消息后,具体为通过邮件的方式接收,可根据游戏的需要进行版本发布。管理者登录游戏软件版本热更新平台,可查看所有版本信息列表,选择需发布的版本,发出发布指令,则平台根据发布指令更新软件版本号。对于发布,只能发布最新的版本,发布旧版本无效。

管理者可对版本信息列表进行操作,具体为可以进行版本的删除、信息修改、发布等操作。

S16,当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新。

当更新软件版本号后,则表示进入新版本的待更新状态,在本实施例中,待更新端为客户端或服务器端。

对于游戏客户端,属于主动更新模式,当玩家通过游戏客户端登入游戏时,获取更新后的软件版本号,若获取的软件版本号比客户端记录的版本更高,则请求获取文件信息和包文件,进行软件的热更新。

对于游戏服务器端,属于被动更新模式,当软件版本号更新后,游戏软件版本热更新平台发送软件版本号更新消息至服务器端,服务器端接收到消息后,请求获取软件版本号、文件信息及包文件,进行软件的热更新。

以上所述,本实施例软件更新方法简便、可控,满足游戏软件版本热更新频率高的要求,减少热更新过程中的人为操作;利用SVN服务器的提交接口进行更新后的软件数据的提交,由于提交接口统一,可确保更新后的软件数据的可靠性。

请参阅图2,图2是本发明软件更新装置一实施例的结构示意图,如图2所示,包括:获取模块21、比对模块22、打包模块23、发送记录模块24、更新模块25及发送模块26。

上述各模块的功能具体如下:

获取模块21用于获取SVN服务器中更新后的软件数据;比对模块22用于将更新后的软件数据与本地软件数据进行比对,以筛选与本地软件数据存在差异的文件;打包模块23用于将存在差异的文件进行分割打包;发送记录模块24用于将分割打包后的包文件发送至缓存端,并记录存在差异的文件的文件信息;更新模块25用于根据发布指令更新软件版本号,软件版本号与包文件对应;发送模块26用于当软件版本号更新后,根据待更新端的请求发送文件信息和包文件,以实现待更新端软件的热更新。

在本实施例中,更新后的软件数据采用SVN服务器的提交接口进行数据提交。对于更新后的软件数据,其提交过程具体为:资料发布者通过本地的SVN客户端连接到SVN服务器,首先更新最新的资料库到本地,以确保本地和SVN服务器资料的同步,然后把需要更新的资料文件拷贝到本地资料存放目录,根据预先设定好的目录进行存放,该目录可根据游戏的不同自行设定,再者利用SVN客户端的比对功能,进行资料检查,确认资料更新的正确性,最后确认更新资料正确后,向SVN服务器进行提交,SVN服务器对更新后的软件数据进行存储。在提交过程中,若部分资料无法提交,则表明有资料文件冲突,需重新更新资料,并自行进行资料的合并。

在本实施例中,游戏软件的版本发布由管理者进行管理,当更新资料提交完毕,管理者发出版本生成指令,当管理者发出版本生成指令后,获取模块21、比对模块22、打包模块23、发送记录模块24依次进行工作,以完成软件版本的生成。软件版本生成后,管理者发出发布指令,更新模块25根据发布指令更新软件版本号,当更新软件版本号后,则表示进入新版本的待更新状态。在本实施例中,待更新端为客户端或服务器端,由发送模块26发送文件信息和包文件至待更新端,以实现待更新端软件的热更新。

对于游戏客户端,属于主动更新模式,当玩家通过游戏客户端登入游戏时,获取更新后的软件版本号,若获取的软件版本号比客户端记录的版本更高,则请求获取文件信息和包文件,进行软件的热更新。

对于游戏服务器端,属于被动更新模式,其更新过程为:发送模块26包括发送单元(图未示)和返回单元(图未示);发送单元用于当软件版本号更新后,发送软件版本号更新消息至服务器端;返回单元用于根据服务器端的请求返回软件版本号、文件信息及包文件,以实现服务器端软件的热更新。

在本实施例中,缓存端为内容分发网络。

本发明的软件更新系统包括图2所示实施例的装置和用于存储更新后的软件数据的SVN服务器。

下面通过一具体实施例来详细阐述本发明的软件更新系统。

软件更新系统包括SVN系统、版本生成系统、版本管理系统、版本分发系统,其中,SVN系统对应SVN服务器,版本生成系统、版本管理系统、版本分发系统对应游戏软件版本热更新平台或图2所示实施例的装置。

SVN系统用于做资料的存储和管理,其为资料上传提交的入口,也为版本生成系统的入口。

版本生成系统由比对子系统、打包子系统、版本记录子系统组成。对比子系统的作用是完成2个不同版本之间的文件差异性比对,筛选出差异性文件,该差异性文件是用于更新的元素。打包子系统则是把筛选出的差异性文件进行分割打包,分割打包的作用是提供更好的下载服务,因为过小的更新包会给更新带来大量的连接损耗,而过大的更新包则容易出现下载失败。版本记录子系统则是为后续版本发布做准备,提供更新信息给待更新端。版本生成系统生成的版本为预发布,使得软件更新系统有足够的时间完成发布部署。版本生成系统利用自动比对机制,替代一般使用人工进行更新文件的筛选,极大地减少人工操作可能带来的错误。

版本管理系统用于管理者对已发布和未发布的版本进行管理,管理者还可进行其他操作,如小包管理等。

版本分发系统用于面向待更新端,包括版本获取接口和缓存端,版本获取接口提供软件版本号、文件信息获取功能,缓存端为内容分发网络。版本获取接口可统一对接不同异构装置的更新信息获取接口,能够对接任何开发语言或系统。

对于待更新端为游戏服务器端的情况,版本分发系统还包括更新通知接口,用于服务器端获取软件版本更新消息。

本发明软件更新系统高效有序,解决了当前游戏研发领域版本热更新流程复杂、效率低下、容易出错的问题,使得版本热更新简便、高效、容错性高。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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