《用于处理程序升级的方法和装置.pdf》由会员分享,可在线阅读,更多相关《用于处理程序升级的方法和装置.pdf(22页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103019785 A (43)申请公布日 2013.04.03 CN 103019785 A *CN103019785A* (21)申请号 201210534020.8 (22)申请日 2012.12.11 G06F 9/445(2006.01) (71)申请人 北京奇虎科技有限公司 地址 100088 北京市西城区新街口外大街 28 号 D 座 112 室 (德胜园区) 申请人 奇智软件 (北京) 有限公司 (72)发明人 王东玉 苏云琳 (74)专利代理机构 北京润泽恒知识产权代理有 限公司 11319 代理人 苏培华 (54) 发明名称 用于处理程序升级的方法。
2、和装置 (57) 摘要 本发明公开了一种用于处理程序升级的方法 和装置, 涉及计算机技术领域。所述装置包括 : 可 执行文件生成模块 ; 升级请求接收模块 ; 判断模 块 ; 升级数据提供模块 ; 其中, 列表文件中各升级 数据的文件特征信息中还包括升级数据段的校验 信息 ; 在客户端还包括 : 校验模块, 适于客户端下 载完所述升级数据后, 计算所述升级数据的校验 信息, 并将所述校验信息与列表文件数据中该升 级数据的校验信息进行比较 ; 如果校验通过, 则 存储所述升级数据段 ; 如果校验失败, 则通知客 户端所述升级数据错误。本发明所有安装程序版 本只有一份, 那么充分保证了文件版本一致。
3、性, 减 少文件了的数量, 保证服务器查找文件的效率, 提 高服务器的下载效率, 还能节省磁盘存储空间。 (51)Int.Cl. 权利要求书 3 页 说明书 15 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 15 页 附图 3 页 1/3 页 2 1. 一种用于处理程序升级的方法, 包括 : 生成一个可执行文件, 所述可执行文件用于 : 将用于原始安装的升级数据、 以及后续新 获得的用于升级的升级数据存入所述可执行文件数据区, 并在所述升级数据区的指定字节 位置或数据段存储列表文件数据 ; 所述列表文件数据记录的包括 : 安装数据和。
4、各升级数据 的文件特征信息, 和安装数据和各升级数据在数据区中存储的字节位置或数据段 ; 基于所述可执行文件的程序升级下载过程包括 : 接收客户端的程序升级下载请求 ; 根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字节位置或数据段存 储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件数据, 并比较所述第 一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在客户端未下载的升级 数据 ; 如果存在, 则根据列表文件数据记录的所述升级数据在在数据区中存储的字节位置或 数据段, 从所述可执行文件数据区中提取升级数据并将所升级数据提供给客户端下载 ; 其中, 所述列表文。
5、件数据中各升级数据的文件特征信息中还包括升级数据段的校验信 息 ; 进一步的, 当所述客户端下载完所述升级数据后, 计算所述升级数据的校验信息, 并将 所述校验信息与列表文件数据中该升级数据的校验信息进行比较 ; 如果校验通过, 则存储所述升级数据段 ; 如果校验失败, 则通知客户端所述升级数据错误。 2. 如权利要求 1 所述的方法, 所述根据所述程序升级下载请求, 获取所述可执行文件 数据区中指定字节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件 的第二列表文件数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信 息, 判断是否存在客户端未下载的数据包括 : 从所。
6、述可执行文件数据区的指定字节位置或者数据段中, 提取第一列表文件数据 ; 通知客户端将其可执行文件中的第二列表文件数据上传 ; 将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客户端未下载 的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 3. 如权利要求 1 所述的方法, 所述根据所述程序升级下载请求, 获取所述可执行文件 数据区中指定字节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件 的第二列表文件数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信 息, 判断是否存在客户端未下载的升级数据包括 : 从所述可执行文件数据区的指定字节位置或。
7、者数据段中, 提取第一列表文件数据提供 给客户端下载 ; 接收客户端发送的升级数据下载请求 ; 所述升级数据下载请求包括 : 通过客户端提取 本地的第二列表文件数据, 并将第二列表文件数据与第一列表文件数据的文件特征信息比 较后, 获得的客户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据 段。 4. 如权利要求 1 所述的方法, 所述将第二列表文件数据与第一列表文件数据的文件特 征信息比较, 获得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置或数 权 利 要 求 书 CN 103019785 A 2 2/3 页 3 据段包括 : 将第一列表文件数据中的各升级数据的文。
8、件特征信息, 并与第二列表文件数据中的各 升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 如果未出现新的文件特征信息, 则可判断客户端下载已经结束 ; 如果出现新的文件特征信息, 则从列表文件数据中提取所述新的文件特征信息对应的 字节位置或者数据段。 5. 如权利要求 1 所述的方法, 所述列表文件中的各升级数据的文件特征信息, 按升级 先后使用顺序记录 ; 所述升级数据在所述可执行文件中按升级先后使用顺序存储。 6. 如权利要求 5 所述的方法, 所述将第二列表文件数据与第一列表文件数据的文件特 征信息比较, 获得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置。
9、或数 据段包括 : 按顺序逐个将第一列表文件数据中升级数据的文件特征信息与本第二列表文件数据 中升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 如果出现新的文件特征信息, 则停止比较, 并从列表文件数据中提取所述新的文件特 征信息对应的字节位置或者数据段。 7. 如权利要求 6 所述的方法, 所述根据所述客户端未下载的升级数据在所述可执行文 件数据区中存储的字节位置或数据段, 从可执行文件的数据区中提取数据并将所述升级数 据提供给客户端下载包括 : 从可执行文件的所述字节位置或者数据段开始提取升级数据的字节流发送给客户端。 8. 一种用于处理程序升级的装置, 包括 : 可执。
10、行文件生成模块, 适于生成一个可执行文件, 所述可执行文件用于 : 将用于原始安 装的升级数据、 以及后续新获得的用于升级的升级数据存入所述可执行文件数据区, 并在 所述升级数据区的指定字节位置或数据段存储列表文件数据 ; 所述列表文件数据记录的包 括 : 安装数据和各升级数据的文件特征信息, 和安装数据和各升级数据在数据区中存储的 字节位置或数据段 ; 升级请求接收模块, 适于接收客户端的程序升级下载请求 ; 判断模块, 适于根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字节 位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件数 据, 并比较所述第一列表文。
11、件数据和第二列表文件数据的文件特征信息, 判断是否存在客 户端未下载的升级数据 ; 升级数据提供模块, 适于如果存在, 则根据列表文件数据记录的所述升级数据在在数 据区中存储的字节位置或数据段, 从所述可执行文件数据区中提取升级数据并将所升级数 据提供给客户端下载 ; 其中, 所述列表文件中各升级数据的文件特征信息中还包括升级数据段的校验信息 ; 进一步的, 在所述客户端还包括 : 校验模块, 适于所述客户端下载完所述升级数据后, 计算所述升级数据的校验信息, 并 将所述校验信息与列表文件数据中该升级数据的校验信息进行比较 ; 如果校验通过, 则存储所述升级数据段 ; 如果校验失败, 则通知客。
12、户端所述升级数据错误。 权 利 要 求 书 CN 103019785 A 3 3/3 页 4 9. 如权利要求 8 所述的装置, 所述判断模块包括 : 第一列表文件提取模块一, 适于从所述可执行文件数据区的指定字节位置或者数据段 中, 提取第一列表文件数据 ; 第二列表文件获取模块一, 适于通知客户端将其可执行文件中的第二列表文件数据上 传 ; 第一判断模块, 适于将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 10. 如权利要求 8 所述的装置, 所述判断模块包括 : 第一列表文件提取模块二, 适于从所述。
13、可执行文件数据区的指定字节位置或者数据段 中, 提取第一列表文件数据提供给客户端下载 ; 升级数据下载请求接收模块, 适于接收客户端发送的升级数据下载请求 ; 所述升级数 据下载请求包括 : 通过客户端提取本地的第二列表文件数据, 并将第二列表文件数据与第 一列表文件数据的文件特征信息比较后, 获得的客户端未下载的升级数据在所述可执行文 件数据区中存储的字节位置或数据段。 11. 如权利要求 8 所述装置, 所述判断模块包括 : 第二判断模块, 适于将第一列表文件数据中的各升级数据的文件特征信息, 并与第二 列表文件数据中的各升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信 息 ;。
14、 如果未出现新的文件特征信息, 则可判断客户端下载已经结束 ; 如果出现新的文件特 征信息, 则从列表文件数据中提取所述新的文件特征信息对应的字节位置或者数据段。 12. 如权利要求 8 所述的装置, 所述列表文件中的各升级数据的文件特征信息, 按升级 先后使用顺序记录 ; 所述升级数据在所述可执行文件中按升级先后使用顺序存储。 13. 如权利要求 12 所述的装置, 所述判断模块包括 : 第二判断模块, 适于按顺序逐个将第一列表文件数据中升级数据的文件特征信息与 本第二列表文件数据中升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信 息 ; 如果出现新的文件特征信息, 则停止比较,。
15、 并从列表文件数据中提取所述新的文件特 征信息对应的字节位置或者数据段。 14. 如权利要求 13 所述的装置, 所述升级数据提供模块包括 : 第一提取模块, 适于从可执行文件的所述字节位置或者数据段开始提取升级数据的字 节流发送给客户端。 权 利 要 求 书 CN 103019785 A 4 1/15 页 5 用于处理程序升级的方法和装置 技术领域 0001 本发明涉及计算机技术领域, 具体涉及一种用于处理程序升级的方法和装置。 背景技术 0002 对于程序升级来说, 比如游戏程序等应用程序, 一般存在两种方式 : 0003 一是整包升级, 就是将一个程序版本的所有文件组合安装包, 由终端升。
16、级程序下 载之后执行对原有版本进行安装或升级。 0004 二是差异升级, 方式是将数据文件按照某种方式存储, 并形成一个数据文件列表, 将这些数据文件的部分信息写入, 终端的升级程序先下载数据文件列表并与本地文件比 对, 形成差异列表, 之后下载相应的数据文件进行升级。 0005 但是在实际中, 现有技术可对产品隔一段时间做一次新版本, 以使新用户无需从 原始版本开始安装, 然后逐个升级至最新版本。 0006 比如, 对于一个初始版本安装包 A, 其后续数据文件包括数据文件 A1, 数据文件 A2, 为了保证客户端能够进行差异升级需要一个单独的列表文件L1将对A, A1, A2的相关信 息进行。
17、顺序存储。而为了使后续新的用户可以直接安装当前最新的产品, 则可将 A+A1+A2 做成第二版的安装包 B, 而在此之后出现的数据文件针对第二版的数据文件 B1, B2, 那么为 了保证安装初始版本的客户端和第二版本的客户端均可正常升级, 那么需要对初始版本的 数据文件重新更改列表文件, 并针对第二版本的数据文件更改列表文件 ; 那么以此类推, 如 果为了使客户端不用从初始版本开始安装产品, 并逐个升级至最新状态, 随着升级的数据 的增加, 其版本可能越来越多, 存在于服务器中的文件相应增加量更多。 0007 对于整包升级, 文件的一致性比较好, 不用考虑版本问题, 下载逻辑比较简单, 但 对。
18、于用户来说, 下载量比较大, 每次升级都会有较多的冗余数据。 0008 对于差异升级, 只下载差异数据, 缺点是文件量很大, 但是对于前述情况, 如果针 对同一产品, 其版本很多的时, 首先, 由于各版本的文件之间需要保持一致, 那么随着版本 的大量增加, 各种版本相应的文件数量增加, 导致维持各种版本文件的一致性的逻辑也越 来越复杂。其次, 由于服务器中存在各种版本的文件, 导致目录中文件过多, 而对于某个客 户端的升级请求, 服务器查询其存储的相应于所述升级请求的文件时, 需要遍历的文件也 非常庞大, 影响服务器性能。 再次, 由于相应文件个数相对很多, 对于存储和管理不方便, 并 且占用。
19、存储空间也大。 发明内容 0009 鉴于上述问题, 提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的一种用于处理程序升级的装置、 系统和相应的一种用于处理程序升级的方法。 0010 依据本发明的一个方面, 提供了一种用于处理程序升级的方法, 包括 : 0011 生成一个可执行文件, 所述可执行文件用于 : 将用于原始安装的升级数据、 以及后 续新获得的用于升级的升级数据存入所述可执行文件数据区, 并在所述升级数据区的指定 说 明 书 CN 103019785 A 5 2/15 页 6 字节位置或数据段存储列表文件数据 ; 所述列表文件数据记录的包括 : 安装数据和各升级 数据。
20、的文件特征信息, 和安装数据和各升级数据在数据区中存储的字节位置或数据段 ; 0012 基于所述可执行文件的程序升级下载过程包括 : 0013 接收客户端的程序升级下载请求 ; 0014 根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字节位置或数据 段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件数据, 并比较所 述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在客户端未下载的 升级数据 ; 0015 如果存在, 则根据列表文件数据记录的所述升级数据在在数据区中存储的字节位 置或数据段, 从所述可执行文件数据区中提取升级数据并将所升级数据提供给客户端。
21、下 载 ; 0016 其中, 所述列表文件数据中各升级数据的文件特征信息中还包括升级数据段的校 验信息 ; 0017 进一步的, 当所述客户端下载完所述升级数据后, 计算所述升级数据的校验信息, 并将所述校验信息与列表文件数据中该升级数据的校验信息进行比较 ; 0018 如果校验通过, 则存储所述升级数据段 ; 0019 如果校验失败, 则通知客户端所述升级数据错误。 0020 可选的, 所述根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字 节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件 数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信。
22、息, 判断是否存在 客户端未下载的数据包括 : 0021 从所述可执行文件数据区的指定字节位置或者数据段中, 提取第一列表文件数 据 ; 0022 通知客户端将其可执行文件中的第二列表文件数据上传 ; 0023 将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客户端未 下载的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 0024 可选的, 所述根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字 节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件 数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在 客。
23、户端未下载的升级数据包括 : 0025 从所述可执行文件数据区的指定字节位置或者数据段中, 提取第一列表文件数据 提供给客户端下载 ; 0026 接收客户端发送的升级数据下载请求 ; 所述升级数据下载请求包括 : 通过客户端 提取本地的第二列表文件数据, 并将第二列表文件数据与第一列表文件数据的文件特征信 息比较后, 获得的客户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或 数据段。 0027 可选的, 所述将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获 得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置或数据段包括 : 0028 将第一列表文件数据中的各升。
24、级数据的文件特征信息, 并与第二列表文件数据中 说 明 书 CN 103019785 A 6 3/15 页 7 的各升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 0029 如果未出现新的文件特征信息, 则可判断客户端下载已经结束 ; 0030 如果出现新的文件特征信息, 则从列表文件数据中提取所述新的文件特征信息对 应的字节位置或者数据段。 0031 可选的, 所述列表文件中的各升级数据的文件特征信息, 按升级先后使用顺序记 录 ; 所述升级数据在所述可执行文件中按升级先后使用顺序存储。 0032 可选的, 所述将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获。
25、 得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置或数据段包括 : 0033 按顺序逐个将第一列表文件数据中升级数据的文件特征信息与本第二列表文件 数据中升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 0034 如果出现新的文件特征信息, 则停止比较, 并从列表文件数据中提取所述新的文 件特征信息对应的字节位置或者数据段。 0035 可选的, 所述根据所述客户端未下载的升级数据在所述可执行文件数据区中存储 的字节位置或数据段, 从可执行文件的数据区中提取数据并将所述升级数据提供给客户端 下载包括 : 0036 从可执行文件的所述字节位置或者数据段开始提取升级数据。
26、的字节流发送给客 户端。 0037 依据本发明的另一个方面, 提供了一种用于处理程序升级的装置, 包括 : 0038 可执行文件生成模块, 适于生成一个可执行文件, 所述可执行文件用于 : 将用于原 始安装的升级数据、 以及后续新获得的用于升级的升级数据存入所述可执行文件数据区, 并在所述升级数据区的指定字节位置或数据段存储列表文件数据 ; 所述列表文件数据记录 的包括 : 安装数据和各升级数据的文件特征信息, 和安装数据和各升级数据在数据区中存 储的字节位置或数据段 ; 0039 升级请求接收模块, 适于接收客户端的程序升级下载请求 ; 0040 判断模块, 适于根据所述程序升级下载请求, 。
27、获取所述可执行文件数据区中指定 字节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文 件数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存 在客户端未下载的升级数据 ; 0041 升级数据提供模块, 适于如果存在, 则根据列表文件数据记录的所述升级数据在 在数据区中存储的字节位置或数据段, 从所述可执行文件数据区中提取升级数据并将所升 级数据提供给客户端下载 ; 0042 其中, 所述列表文件中各升级数据的文件特征信息中还包括升级数据段的校验信 息 ; 0043 进一步的, 在所述客户端还包括 : 0044 校验模块, 适于所述客户端下载完。
28、所述升级数据后, 计算所述升级数据的校验信 息, 并将所述校验信息与列表文件数据中该升级数据的校验信息进行比较 ; 0045 如果校验通过, 则存储所述升级数据段 ; 0046 如果校验失败, 则通知客户端所述升级数据错误。 0047 可选的, 所述判断模块包括 : 说 明 书 CN 103019785 A 7 4/15 页 8 0048 第一列表文件提取模块一, 适于从所述可执行文件数据区的指定字节位置或者数 据段中, 提取第一列表文件数据 ; 0049 第二列表文件获取模块一, 适于通知客户端将其可执行文件中的第二列表文件数 据上传 ; 0050 第一判断模块, 适于将第二列表文件数据与第。
29、一列表文件数据的文件特征信息比 较, 获得的客户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据 段。 0051 可选的, 所述判断模块包括 : 0052 第一列表文件提取模块二, 适于从所述可执行文件数据区的指定字节位置或者数 据段中, 提取第一列表文件数据提供给客户端下载 ; 0053 升级数据下载请求接收模块, 适于接收客户端发送的升级数据下载请求 ; 所述升 级数据下载请求包括 : 通过客户端提取本地的第二列表文件数据, 并将第二列表文件数据 与第一列表文件数据的文件特征信息比较后, 获得的客户端未下载的升级数据在所述可执 行文件数据区中存储的字节位置或数据段。 0054。
30、 可选的, 所述判断模块包括 : 0055 第二判断模块, 适于将第一列表文件数据中的各升级数据的文件特征信息, 并与 第二列表文件数据中的各升级数据的文件特征信息进行比较, 判断是否出现新的文件特征 信息 ; 如果未出现新的文件特征信息, 则可判断客户端下载已经结束 ; 如果出现新的文件 特征信息, 则从列表文件数据中提取所述新的文件特征信息对应的字节位置或者数据段。 0056 可选的, 所述列表文件中的各升级数据的文件特征信息, 按升级先后使用顺序记 录 ; 所述升级数据在所述可执行文件中按升级先后使用顺序存储。 0057 可选的, 所述判断模块包括 : 0058 第二判断模块, 适于按顺。
31、序逐个将第一列表文件数据中升级数据的文件特征信息 与本第二列表文件数据中升级数据的文件特征信息进行比较, 判断是否出现新的文件特征 信息 ; 0059 如果出现新的文件特征信息, 则停止比较, 并从列表文件数据中提取所述新的文 件特征信息对应的字节位置或者数据段。 0060 可选的, 所述升级数据提供模块包括 : 0061 第一提取模块, 适于从可执行文件的所述字节位置或者数据段开始提取升级数据 的字节流发送给客户端。 0062 根据本发明的一种用于处理程序升级的方法可以在服务器将所有各种适于升级 的数据, 与初始安装程序设置于同一可执行文件中, 然后在该可执行文件中指定一个固定 位置存放列表。
32、文件数据, 所述列表文件数据各种版本的适于升级的数据段的文件特征信 息, 该文件特征信息包括各适于升级的数据段存储于该可执行文件中的位置 ; 那么基于此 可执行文件, 客户端对原产品进行升级时, 则首先从服务器获取该可执行文件指定位置的 列表文件数据, 对其进行解析并与本地列表文件数据进行比较, 判断是否存在需要下载的 数据段, 如果存在则从服务器中所述可执行文件的该数据段所在位置下载该数据, 即可进 行升级。 0063 本发明由此解决了现有技术中 : 说 明 书 CN 103019785 A 8 5/15 页 9 0064 首先由于各版本的文件之间需要保持一致, 那么随着版本的大量增加, 各。
33、种版本 相应的文件数量增加, 导致维持各种版本文件的一致性的逻辑也越来越复杂 ; 0065 其次, 由于服务器中存在各种版本的文件, 导致目录中文件过多, 而对于某个客户 端的升级请求, 服务器查询其存储的相应于所述升级请求的文件时, 需要遍历的文件也非 常庞大, 影响服务器性能。 0066 再次, 由于相应文件个数相对很多, 对于存储和管理不方便, 并且占用存储空间也 大的问题 ; 0067 本发明取得了如下的有益效果 : 0068 首先, 升级数据和安装程序文件只有一份可执行文件, 不用为最新用户做新版本 安装程序, 所有安装程序版本只有一份, 那么充分保证了文件版本一致性 ; 0069 。
34、其次, 并且大大减少文件了的数量, 保证服务器查找文件的效率 ; 0070 再次, 文件量很小, 可以有针对性的对文件进行缓存, 提高服务器的下载效率 ; 最 后还能大大节省磁盘存储空间的有益效果。 0071 上述说明仅是本发明技术方案的概述, 为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施, 并且为了让本发明的上述和其它目的、 特征和优点能够 更明显易懂, 以下特举本发明的具体实施方式。 附图说明 0072 通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅适于示出优选实施方式的目的, 而并不认为是对本发明 的限制。而。
35、且在整个附图中, 用相同的参考符号表示相同的部件。在附图中 : 0073 图 1 示出了根据本发明一个实施例的一种程序升级下载的方法实施例一的流程 示意图 ; 0074 图 2 示出了根据本发明一个实施例的一种程序升级下载方法实施例二的流程示 意图 ; 0075 图 3 示出了根据本发明一个实施例的可执行文件的磁盘文件结构示意图 ; 0076 图 4 示出了根据本发明一个实施例的一种程序升级下载装置的结构示意图 ; 以及 0077 图 5 示出了根据本发明一个实施例的一种程序升级下载系统的结构示意图。 具体实施方式 0078 下面将参照附图更详细地描述本公开的示例性实施例。 虽然附图中显示了本。
36、公开 的示例性实施例, 然而应当理解, 可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。 相反, 提供这些实施例是为了能够更透彻地理解本公开, 并且能够将本公开的范围 完整的传达给本领域的技术人员。 0079 参照图 1 其示出了本发明一种用于处理程序升级的方法实施例一的流程示意图, 具体可以包括 : 0080 步骤 S100, 生成一个可执行文件, 所述可执行文件用于 : 将用于原始安装的升级 数据、 以及后续新获得的用于升级的升级数据存入所述可执行文件数据区, 并在所述升级 数据区的指定字节位置或数据段存储列表文件数据 ; 所述列表文件数据记录的包括 : 安装 说 明 书 CN 。
37、103019785 A 9 6/15 页 10 数据和各升级数据的文件特征信息, 和安装数据和各升级数据在数据区中存储的字节位置 或数据段 ; 0081 在本发明实施例中, 针对安装程序会设置一个可执行文件, 其中可执行文件如 windows 系统中的 .exe, .dll 等结构的文件。其中, 如图 3, 其示出了可执行文件 ( 即 PE 文 件, PE文件被称为可移植的执行体是Portable Execute的全称, 常见的EXE、 DLL、 OCX、 SYS、 COM 都是 PE 文件 ) 的磁盘文件结构, 可执行文件包括 DOS 文件头、 PE 头部、 Sections 表、 代 码段。
38、、 重定位数据段和数据区 ( 即各个数据段 )。在一个 PE 文件的开始处, 我们会看到一 个 DOS 文件头, 它使任何 PE 文件都是一个有效的 MS-DOS 可执行文件。之后是文件头 ( 按 COFF 格式 ), 用来说明该二进制文件将运行在何种机器之上、 分几个区段、 链接的时间、 是 可执行文件还是DLL、 等等, 后面包括Section表, 即 “数据目录” 数组 ; 这些目录包含许多指 向各 “段” 数据的指针。之后就是数据段, 各节中的内容才是你执行一个程序真正需要的东 西, 代码段和重定位数据段存储产品的安装逻辑, 数据区中指定位置存储了列表文件数据, 并且存储了升级数据。所。
39、述列表文件数据记录的内容包括 : 存储在所述可执行文件的数据 区中各适于升级的升级数据的文件特征信息, 所述文件特征信息包括各升级数据的文件特 征信息、 和相对可执行文件的在数据区的字节位置或者数据段。 0082 本发明的原始升级数据(可以理解为初始安装程序), 和后续的升级数据(可以理 解为后续的升级包 ) 通过上述步骤设置在一个可执行文件中。 0083 在本发明实施例中, 从服务器侧说明本发明的实施过程。 0084 基于所述可执行文件的程序升级下载过程包括 : 0085 步骤 S110, 接收客户端的程序升级下载请求 ; 0086 客户端可发送程序升级下载请求至服务器, 以通知服务器针对该。
40、客户端进行程序 升级下载流程。具体的程序升级下载请求可包括客户端的身份信息, 比如 IP 地址信息等。 0087 步骤 S120, 根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字节 位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件数 据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在客 户端未下载的升级数据 ; 0088 在服务器侧提供的可执行文件中的指定字节位置或者数据段存在一个第一列表 文件数据, 在客户端存对应可执行文件的第二列表文件数据, 那么即可将第一列表文件数 据的文件特征信息和第二列表文件数据的文件特征信息进行。
41、比较, 判断服务器侧的可执行 文件中是否存在客户端未下载的升级数据的文件特征信息, 从而可获知服务器侧的可执行 文件中是否存在客户端未下载的升级数据。 0089 可选的, 所述根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字 节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件 数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在 客户端未下载的数据包括 : 0090 步骤 S11, 服务器从所述可执行文件数据区的指定字节位置或者数据段中, 提取第 一列表文件数据 ; 0091 服务器从服务器侧的可执行文件数据区的指定字节位置或。
42、者数据段中, 提取第一 列表文件数据。 说 明 书 CN 103019785 A 10 7/15 页 11 0092 步骤 S12, 服务器通知客户端将其可执行文件中的第二列表文件数据上传 ; 0093 服务器通知客户端将客户端中的可执行文件中的第二列表文件数据上传 0094 步骤 S13, 服务器将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 0095 服务器将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客 户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 0096 。
43、可选的, 所述根据所述程序升级下载请求, 获取所述可执行文件数据区中指定字 节位置或数据段存储的第一列表文件数据和获取对应客户端可执行文件的第二列表文件 数据, 并比较所述第一列表文件数据和第二列表文件数据的文件特征信息, 判断是否存在 客户端未下载的升级数据包括 : 0097 步骤 S21, 服务器从所述可执行文件数据区的指定字节位置或者数据段中, 提取第 一列表文件数据提供给客户端下载 ; 0098 步骤 S22, 客户端提取本地的第二列表文件数据, 并将第二列表文件数据与第一列 表文件数据的文件特征信息比较后, 获得的客户端未下载的升级数据在所述可执行文件数 据区中存储的字节位置或数据段。
44、 ; 0099 步骤 S23, 客户端根据所述客户端未下载的升级数据在所述可执行文件数据区中 存储的字节位置或数据段生成升级数据下载请求, 并发送的升级数据下载请求至服务器 ; 0100 步骤 S24, 服务器接收客户端发送的升级数据下载请求。 0101 即服务器接收客户端发送的升级数据下载请求, 而所述升级数据下载请求包括客 户端未下载的升级数据在所述可执行文件数据区中存储的字节位置或数据段。 0102 可选的, 所述将第二列表文件数据与第一列表文件数据的文件特征信息比较, 获 得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置或数据段包括 : 0103 步骤 S31, 将第一列表。
45、文件数据中的各升级数据的文件特征信息, 并与第二列表文 件数据中的各升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 0104 步骤 S32, 如果未出现新的文件特征信息, 则可判断客户端下载已经结束 ; 0105 步骤 S33, 如果出现新的文件特征信息, 则从列表文件数据中提取所述新的文件特 征信息对应的字节位置或者数据段。 0106 可选的, 所述列表文件中的各升级数据的文件特征信息, 按升级先后使用顺序记 录 ; 所述升级数据在所述可执行文件中按升级先后使用顺序存储。 0107 即将升级数据按升级先后顺序存入服务器的可执行文件的数据区中。 0108 进一步的, 所述将。
46、第二列表文件数据与第一列表文件数据的文件特征信息比较, 获得的客户端未下载的数据在所述可执行文件数据区中存储的字节位置或数据段包括 : 0109 步骤 S41, 按顺序逐个将第一列表文件数据中升级数据的文件特征信息与本第二 列表文件数据中升级数据的文件特征信息进行比较, 判断是否出现新的文件特征信息 ; 0110 步骤 S42, 如果出现新的文件特征信息, 则停止比较, 并从列表文件数据中提取所 述新的文件特征信息对应的字节位置或者数据段。 0111 因为可执行文件中按顺序进行存储, 那么指定字节位置或者数据段中的列表文件 数据也可按顺序进行记录, 那么则可按顺序逐个将第一列表文件数据中升级数。
47、据的文件特 征信息与本第二列表文件数据中升级数据的文件特征信息进行比较, 判断是否出现新的文 说 明 书 CN 103019785 A 11 8/15 页 12 件特征信息, 如果出现新的文件特征信息, 则停止比较, 那么可节省的比较时间。 0112 步骤 S130, 如果存在, 则根据列表文件数据记录的所述升级数据在在数据区中存 储的字节位置或数据段, 从所述可执行文件数据区中提取升级数据并将所升级数据提供给 客户端下载。 0113 因升级数据下载请求提示了从可执行文件的哪个位置提取数据提供给客户端下 载以进行升级, 那么服务器即可根据该提示的各位置, 从可执行文件中提取数据提供给客 户端下。
48、载。 0114 可选的, 在前步骤 S52, 的情况下, 所述根据所述客户端未下载的升级数据在所述 可执行文件数据区中存储的字节位置或数据段, 从可执行文件的数据区中提取数据并将所 述升级数据提供给客户端下载包括 : 0115 步骤 S42, 从可执行文件的所述字节位置或者数据段开始提取升级数据的字节流 发送给客户端。 0116 由于可执行文件时按升级使用顺序存储的升级数据, 只提示了相对可执行文件开 始位置开始下载的偏移字节, 那么本步骤即可从该提示的偏移字节开始, 将其之后存在的 数据全提取出来提供给客户端下载, 因而不会出错, 也因服务器只需判断开始偏移位置和 最终的结束位置, 而不用做。
49、其他额外的位置判断, 从而提高了服务器的判断和下载效率。 0117 其中, 所述列表文件数据中各升级数据的文件特征信息中还可包括升级数据段的 校验信息 ; 0118 比如对升级数据段的数据内容做 MD5(MD5, 信息摘要算法第 5 版 ) 计算得到 MD5 值, 对应进行存储。 0119 进一步的包括 : 0120 步骤 D11, 所述客户端下载完所述升级数据后, 计算所述升级数据的校验信息, 并 将所述校验信息与列表文件数据中该升级数据的校验信息进行比较 ; 0121 比如对下载得到的每个升级数据段的内容进行MD5计算, 将计算得到的MD5值, 与 前面步骤下载得到的列表文件数据中对应该数据段存储的 MD5 值进行比较。 0122 步骤 D12, 如果校验通过, 则存储所述升级数据段 ; 0123。