下发目录树数据的方法、系统和服务器,以及一种客户端的制作方法

文档序号:6465304阅读:184来源:国知局
专利名称:下发目录树数据的方法、系统和服务器,以及一种客户端的制作方法
技术领域
本发明涉及数据下载技术领域,尤其涉及下发目录树数据的方法、系统 和服务器,以及一种客户端。
背景技术
以目录树结构组织的数据是一种典型的层级数据,层级数据包含至少两 个数据块,且各数据块之间存在层级关系,较低层级数据块的入口位于较高 层级数据块中,因此,要打开较低层级数据块,需要先打开较高层级的数据 块。下文将以目录树结构组织的数据简称为目录树数据。在多人在线网络游戏领域,常常以目录树结构组织游戏平台。玩家进入 网络游戏前,需先通过客户端从目录树服务器下载目录树数据,利用新下载 的目录树数据更新本地已存储的目录树数据。客户端下载目录树数据成功 后,玩家打开目录树上的某一节点,即可进入游戏平台中的相应房间进行游 戏,如果客户端下载目录树数据失败,则玩家无法进入游戏。图1是现有技术中客户端从目录树服务器下载目录树数据的方法流程图。如图l所示,该方法具体包括步骤101,客户端登录目录树服务器,如果登录成功,进入步骤102, 否则,客户端下载目录树数据失败。本步骤中,如果客户端下载目录树数据失败,即便客户端本地存有目录 树数据,玩家仍然不能进入游戏。步骤102,客户端向目录树服务器发送目录树数据下载或更新请求。客户端本地已存储的数据块在更新前无法使用,因此,本步骤中,请求 下载的数据块包括本地已存储的数据块和请求下载的新数据块,本步骤中请求下载的数据块也可以都是本地已存储的数据块,不包含新数据块。步骤103,目录树服务器向该客户端下发请求的所有目录树数据。步骤104,该客户端接收目录树服务器下发的所有目录树数据,更新本 地目录树数据。可见,现有技术中,目录树服务器将客户端请求下载的所有目录树数据 均进行下发,而客户端请求下载的这些数据中,有些在客户端本地已存储的 数据,当这些已存储数据与服务器侧的相应数据相同时,现有这种数据下发 方法浪费了目录树服务器的下行流量。发明内容有鉴于此,本发明实施例的目的在于提供下发目录树数据的方法、系统 和服务器,以及一种客户端,以节约目录树服务器的下行流量。为达到上述目的,本发明实施例的技术方案具体是这样实现的 一种下发目录树数据的方法,该方法包括目录树服务器和客户端预先存储按照约定的协议对目录树数据进行拆分得 到的数据块的身份ID,按照所述协议生成各自数据的有效性ID;目录树服务器接收客户端本地数据的身份ID和有效性ID,查询目录树服 务器侧具有所述身份ID的数据的有效性ID,若目录树服务器侧的所述有效性 ID与客户端上报的所述有效性ID相同,目录树服务器向所述客户端下发具有 所述身份ID的数据的匹配成功消息,否则,目录树服务器向所述客户端下发具 有所述身份ID的数据的匹配失败消息及目录树服务器侧具有所述身份ID的数 据。一种下发目录树数据的系统,该系统包括目录树服务器和客户端; 目录树服务器,预先存储按照约定的协议对目录树数据进行拆分得到的数 据块的身份ID,按照所述协议生成目录树服务器侧数据的有效性ID,接收客 户端本地数据的身份ID和有效性ID,查询目录树服务器侧具有所述身份ID的 数据的有效性ID,在目录树服务器侧的所述有效性ID与客户端上报的所述有效性ID相同时,向所述客户端下发具有所述身份ID的数据的匹配成功消息, 在目录树服务器侧的所述有效性ID与客户端上报的所述有效性ID不同时,向所述客户端下发具有所述身份ID的数据的匹配失败消息及目录树服务器侧具 有所述身份ID的数据;客户端,预先存储按照约定的协议对目录树数据进行拆分得到的数据块的 身份ID,按照所述协议生成客户端侧数据的有效性ID,向目录树服务器发送 本地数据的身份ID和有效性ID,接收具有所述身份ID的数据的匹配成功消息, 或具有所述身份ID的数据的匹配失败消息及目录树服务器侧具有所述身份ID 的数据。一种服务器,该服务器包括ID生成单元、匹配单元和下发单元, 所述ID生成单元,按照与客户端约定的协议生成服务器侧数据的身份ID 和有效性ID并存储;所述匹配单元,接收客户端本地数据的身份ID和有效性ID,查询服务器 侧具有所述身份ID的数据的有效性ID,在服务器侧的所述有效性ID与客户端 上报的所述有效性ID相同时,向所述下发单元发送具有所述ID的数据匹配成 功的指示,在服务器侧的所述有效性ID与客户端上报的所述有效性ID不同时,所述下发单元,收到匹配成功指示后,下发具有所述ID的数据的匹配成功 消息,收到匹配失败指示后,下发具有所述身份ID的数据的匹配失败消息及服 务器侧具有所述身份ID的数据。一种客户端,该客户端包括ID生成单元、发送单元和更新单元;所述ID生成单元,按照与服务器约定的协议生成本地待更新数据的身份 ID和有效性ID并存储;所述发送单元,向目录树服务器发送本地待更新数据的身份ID和有效性ID;所述更新单元,收到具有所述ID的数据的匹配成功消息后,保持本地具有 所述身份ID的数据不变,收到具有所述ID的数据的匹配失败消息及目录树服务器侧具有所述身份ID的数据后,将本地具有所述身份ID的数据更新为目录树服务器侧具有所述身份ID的数据;所述本地数据存储单元,用于存储客户端本地数据。可见,在本发明中,目录树服务器和客户端按照约定的协议生成数据的身 份ID和有效性ID,目录树服务器接收客户端本地数据的身份ID和有效性ID, 只在具有相同身份ID的目录树服务器侧数据和客户端本地数据各自的有效性 ID不同时,下发服务器侧具有所述身份ID的数据,对所述有效性ID相同的数 据不进行下发,从而节约了目录树服务器的下行流量。


图1是现有技术中客户端从目录树服务器下载目录树数据的方法流程图;图2是本发明目录树服务器下发目录树数据的方法流程图;图3是本发明客户端下载目录树数据的方法流程图;图4是本发明装置实施例提供的下发目录树数据的系统结构图;图5是本发明装置实施例提供的目录树服务器的结构图;图6是本发明装置实施例提供的客户端的第一结构图;图7是本发明装置实施例提供的客户端的第二结构图。
具体实施方式
本发明实施例中,目录树服务器和客户端按照约定的协议生成数据的身份 标识(Identity, ID )和有效性ID,目录树服务器接收客户端本地数据的身份ID 和有效性ID,只在具有相同身份ID的目录树服务器侧数据和客户端本地数据 各自的有效性ID不同时,下发服务器侧具有所述身份ID的数据,对所述有效 性ID相同的数据不进行下发。为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明进一步详细说明。在本实施例中,首先定制一种专有的目录树下载协议,按照所述协议对 目录树数据进行拆分,为拆分得到的数据块生成身份ID,目录树服务器和 客户端中均存储有所述数据块的身份ID,目录树服务器和客户端按照所述
协议生成各自数据的有效性ID,客户端按照该协议和数据的身份ID拼装本
地数据。
图2是本发明目录树服务器下发目录树数据的方法流程图,如图2所示, 该方法包括
步骤201,目录树服务器和客户端按照约定的协议生成各自数据的有效性ID。
目录树服务器和客户端中均预先存储有所述数据块的身份ID。其中, 所述身份ID为按照所述协议对目录树数据进行拆分,按照所述协议为拆分 得到的数据块生成的身份ID。
本步骤中,目录树服务器和客户端均按照本协议为各自的数据块生成身 份ID和有效性ID。
其中,数据块的有效性ID可以是版本号,也可以是按照哈希(Hash) 算法对该数据块的数据进行计算得到的Hash值,例如,采用MD5算法对数 据块的数据进行计算得到Hash值。
由于Hash算法是根据目标数据的内容生成一个完全依赖于目标数据内 容的字节序列,同样内容的数据,经过Hash算法运算,生成同样的字节序 列,不同内容的数据,经过Hash算法运算,生成的字节序列不同。因此' 当采用Hash值作为数据的有效性ID时,还可以防止本地数据被伪造,保证 本地数据与目录树服务器侧数据的一致。
步骤202,目录树服务器接收客户端本地数据的身份ID和有效性ID。
本步骤中,若目录树服务器收到的数据身份1D中,有部分或全部没有相应 的有效性ID,则说明没有相应有效性ID的身份ID对应的数据在客户端本地数 据中不存在,是客户端请求下载的新数据,则目录树服务器将具有所述身份ID 的数据下发给所述客户端。步骤203,目录树服务器判断具有相同身份ID的目录树服务器侧数据和客 户端本地数据各自的有效性ID是否相同,若是,执行步骤204,否则执行步骤 205。
步骤204,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配
成功消息,结束本流程。
本步骤中,匹配成功消息中携带有匹配成功的数据的身份ID。
步骤205,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配
失败消息,以及目录树服务器侧具有所述身份ID的数据,结束本流程。 本步骤中,匹配失败消息中携带有匹配失败的数据的身4分ID。 在图2所示方法中,由于只在具有相同身份ID的目录树服务器侧数据和客
户端本地数据各自的有效性ID不同时,目录树服务器才下发具有所述身份ID
的目录树服务器侧数据,而在所述有效性ID相同时,不下发所述数据,从而节
约了目录树服务器的下行流量。
图3是本发明客户端下载目录树数据的方法流程图,如图3所示,该方法
包括
步骤301,确定请求下载的数据中有哪些是本地数据。 本步骤中,客户端遍历请求下载的数据的身份ID和本地数据的身4分ID, 通过对比数据的身份ID确定请求下载的数据中有哪些是本地数据,这些本地数 据即为本地待更新数据,所述确定的具体方法为将身份ID与请求下载的数据 的身份ID相同的本地数据作为本地待更新数据。
步骤302,客户端为请求下载的数据生成有效性ID。
本步骤中,本地待更新数据的有效性ID与服务器侧数据的有效性ID的 生成方法相同,可以是版本号,也可以是按照Hash算法对数据块的数据进 行计算得到的Hash值。
除了本地待更新数据外,请求下载的数据中还包括请求下载的新数据。 请求下载的新数据的有效性ID的值是客户端和服务器约定的无效值。若服 务器检测到有效性ID的值为所述无效值,则下发具有该有效性ID对应的身份
10ID的服务器侧数据。
步骤303,客户端向目录树服务器发送请求下载的数据的身份ID和有效性ID。
步骤304,客户端接收匹配成功消息、或匹配失败消息、或目录树服务器 下发的数据。
本步骤中,匹配成功消息中携带有匹配成功的数据的身份ID,匹配失败消 息中携带有匹配失败的数据的身份ID,目录树服务器下发的数据均具有对应的 身份ID。
步骤305,客户端按照与目录树服务器的约定协议拼装本地数据,结束本流程。
本步骤中,客户端保持具有匹配成功消息中的身份ID的本地数据不变,将 具有匹配失败消息中的身份ID的本地数据更新为具有所述匹配失败消息中的 身份ID的服务器侧数据,按照与目录树服务器约定的协议和数据的身份ID拼 装本地数据。
在图3所示的方法中,当客户端请求更新的本地数据的有效性ID与服务器 侧相应数据的有效性ID相同时,具有所述有效性ID的本地数据不必更新即可 重用。如果客户端登录目录树服务器失败,或者等待服务器返回响应消息超过 预定时长,则客户端按照与目录树服务器预先约定的协议和本地数据的身份ID 拼装本地数据,使用拼装后的本地数据登录游戏平台服务器。
图4是本发明装置实施例提供的下发目录树数据的系统结构图,如图4所 示,该系统包括服务器401和客户端402。
目录树服务器401,预先存储按照与客户端402约定的协议对目录树数据 进行拆分得到的数据块的身份ID,按照所述协议生成目录树服务器侧数据的有 效性ID,接收客户端402本地数据的身份ID和有效性ID,查询目录树服务器 401侧具有所述身份ID的数据的有效性ID,在目录树服务器401侧的所述有 效性ID与客户端402上报的所述有效性ID相同时,向客户端402下发具有所 述身份ID的数据的匹配成功消息,在目录树服务器401侧的所述有效性ID与客户端402上报的所述有效性ID不同时,向客户端402下发具有所述身份ID 的数据的匹配失败消息及目录树服务器401侧具有所述身份ID的数据。
客户端402,预先存储按照与目录树服务器401约定的协议对目录树数据 进行拆分得到的数据块的身份ID,按照所述协议生成客户端侧数据的有效性 ID,向目录树服务器401发送本地数据的身份ID和有效性ID,接收具有所述 身份ID的数据的匹配成功消息,或具有所述身份ID的数据的匹配失败消息及 目录树服务器401侧具有所述身份ID的数据。
图5是本发明装置实施例提供的服务器的结构图,如图5所示,该服务器 包括ID生成单元501、匹配单元502和下发单元503。
ID生成单元501,按照与客户端约定的协议生成服务器侧数据的身份ID 和有效性ID并存储。
匹配单元502,接收客户端本地数据的身份ID和有效性ID,查询服务器 侧具有所述身份ID的数据的有效性ID,在服务器侧的所述有效性ID与客户端 上报的所述有效性ID相同时,向下发单元503发送具有所述ID的数据匹配成 功的指示,在服务器侧的所述有效性ID与客户端上报的所述有效性ID不同时, 向下发单元503发送具有所述ID的数据匹配失败的指示。
下发单元503,收到匹配成功指示后,下发具有所述ID的数据的匹配成功 消息,收到匹配失败指示后,下发具有所述身份ID的数据的匹配失败消息及服 务器侧具有所述身份ID的数据。
图6是本发明装置实施例提供的客户端的第一结构图,如图6所示,该客 户端包括ID生成单元601 、发送单元602、更新单元603和本地数据存储单元 604。
ID生成单元601 ,按照与服务器约定的协议生成本地待更新数据的身份ID 和有效性ID并存储。
发送单元602,向目录树服务器发送本地待更新数据的身份ID和有效性ID。
更新单元603,收到具有所述ID的数据的匹配成功消息后,保持本地具有所述身份ID的数据不变,收到具有所述ID的数据的匹配失败消息及目录树服
务器侧具有所述身份ID的数据后,将本地具有所述身份ID的数据更新为目录 树服务器侧具有所述身份ID的数据。
本地数据存储单元604 ,用于存储客户端本地数据。
本地数据存储单元604,还可进一步用于存储本地数据的身份ID和有效性ID。
图7是本发明装置实施例提供的客户端的第二结构图,如图7所示,该客 户端包括ID生成单元601、发送单元602、更新单元703、本地数据存储单元 604、本地数据拼装单元705和登录单元706。
图7中的ID生成单元601 、发送单元602和本地数据存储单元604与图6 中的ID生成单元601 、发送单元602和本地数据存储单元604结构相同。
图7中,更新单元703在图6中的更新单元603基础上还可进一步用于, 本地数据更新完毕后,向本地数据拼装单元705发送拼装指示。
本地数据拼装单元705,收到更新单元703的拼装指示后,按照与目录树 服务器约定的协议和数据的身份ID,拼装本地数据。
更新单元703在图6中的更新单元603基础上还可进一步用于,等待服务 器响应超过预定时长后,向本地数据拼装单元705发送拼装指示。
本地数据拼装单元705进一步用于,拼装本地数据完毕后,向登录单元706 发送登录指示。
登录单元706,用于收到登录指示后,登录游戏平台服务器。 由上述技术方案可见,目录树服务器和客户端按照约定的协议生成数据的 身份ID和有效性ID,目录树服务器接收客户端本地数据的身份ID和有效性ID, 只在具有相同身份ID的目录树服务器侧数据和客户端本地数据各自的有效性 ID不同时,下发服务器侧具有所述身份TD的数据,对所述有效性ID相同的数 据不进行下发,从而节约了目录树服务器的下行流量。
当目录树服务器和客户端按照Hash算法对各自数据进行计算得到Hash 值,将该Hash值作为各自数据的有效性ID时,由于不同的数据经过Hash运算得到的Hash值不同,因此,可防止伪造本地数据,保证客户端的本地数据与
目录树服务器侧数据的一致。
由于本发明实施例中客户端的本地数据可重用,因此,即便客户端登录目 录树服务器失败,该客户端仍可以登录游戏平台服务器。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种下发目录树数据的方法,其特征在于,该方法包括目录树服务器和客户端预先存储按照约定的协议对目录树数据进行拆分得到的数据块的身份ID,按照所述协议生成各自数据的有效性ID;目录树服务器接收客户端本地数据的身份ID和有效性ID,查询目录树服务器侧具有所述身份ID的数据的有效性ID,若目录树服务器侧的所述有效性ID与客户端上报的所述有效性ID相同,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配成功消息,否则,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配失败消息及目录树服务器侧具有所述身份ID的数据。
2、 如权利要求1所述的方法,其特征在于,目录树服务器生成数据的有效 性ID之后,进一步包括若目录树服务器侧数据块的数据发生变化,为所述数据发生变化的数据块 重新生成有效性ID。
3、 如权利要求l所述的方法,其特征在于,目录树服务器向所述客户端下 发具有所述身份ID的数据的匹配成功消息或匹配失败消息之后,进一步包括客户端接收所述匹配成功消息,保持具有所述匹配成功消息中的身份ID的 本地数据不变,接收所述匹配失败消息及目录树服务器侧具有所述身份ID的数 据,将本地具有所述身份ID的数据更新为目录树服务器下发的具有所述身份 ID的数据,按照与目录树服务器约定的协议和数据的身份ID,拼装本地数据。
4、 如权利要求1至3任一权项所述的方法,其特征在于,所述有效性ID为利用哈希Hash算法对具有所述身份ID的数据进行计算得到的Hash值。
5、 如权利要求1至3任一权项所述的方法,其特征在于,该方法进一步包括若客户端登录目录树服务器失败,或等待服务器响应超过预定时长,则客户端按照所述协议和数据块的身份ID拼装本地数据,使用拼装后的本地数据登 录游戏平台服务器。
6、 一种下发目录树数据的系统,其特征在于,该系统包括目录树服务器和客户端;目录树服务器,预先存储按照与客户端约定的协议对目录树数据进行拆分 得到的数据块的身份ID,按照所述协议生成目录树服务器侧数据的有效性ID, 接收客户端本地数据的身份ID和有效性ID,查询目录树服务器侧具有所述身 份ID的数据的有效性ID,在目录树服务器侧的所述有效性ID与客户端上报的 所述有效性ID相同时,向所述客户端下发具有所述身份ID的数据的匹配成功 消息,在目录树服务器侧的所述有效性ID与客户端上报的所述有效性ID不同 时,向所述客户端下发具有所述身份ID的数据的匹配失败消息及目录树服务器 侧具有所述身份ID的数据;客户端,预先存储按照与服务器约定的协议对目录树数据进行拆分得到的 数据块的身份ID,按照所述协议生成客户端侧数据的有效性ID,向目录树服 务器发送本地数据的身份ID和有效性ID,接收具有所述身份ID的数据的匹配 成功消息,或具有所述身份ID的数据的匹配失败消息及目录树服务器侧具有所 述身份ID的数据。
7、 一种服务器,其特征在于,该服务器包括ID生成单元、匹配单元和下 发单元,所述ID生成单元,按照与客户端约定的协议生成服务器侧数据的身份ID 和有效性ID并存储;所述匹配单元,接收客户端本地数据的身份ID和有效性ID,查询服务器 侧具有所述身份ID的数据的有效性ID,在服务器侧的所述有效性ID与客户端 上报的所述有效性ID相同时,向所述下发单元发送具有所述ID的数据匹配成 功的指示,在服务器侧的所述有效性ID与客户端上报的所述有效性ID不同时, 向所述下发单元发送具有所述ID的lt据匹配失败的指示;所述下发单元,收到匹配成功指示后,下发具有所述ID的数据的匹配成功消息,收到匹配失败指示后,下发具有所述身份ID的数据的匹配失败消息及服 务器侧具有所述身份ID的数据。
8、 一种客户端,其特征在于,该客户端包括ID生成单元、发送单元、更 新单元和本地数据存储单元;所述ID生成单元,按照与服务器约定的协议生成本地数据的身份ID和有 效性ID并存储;所述发送单元,向目录树服务器发送本地数据的身份ID和有效性ID;所述更新单元,收到具有所述ID的数据的匹配成功消息后,保持本地具有 所述身份ID的数据不变,收到具有所述ID的数据的匹配失败消息及目录树服 务器侧具有所述身份ID的数据后,将本地具有所述身份ID的数据更新为目录 树服务器侧具有所述身份ID的数据;所述本地数据存储单元,用于存储客户端本地数据。
9、 如权利要求8所述的客户端,其特征在于,所述客户端进一步包括本地 数据拼装单元;所述更新单元进一步用于,本地数据更新完毕后,向所述本地数据拼装单 元发送拼装指示,所述本地数据拼装单元,收到所述更新单元的拼装指示后,按照与目录树 服务器约定的协议和数据的身份ID,拼装本地数据。
10、 如权利要求9所述的客户端,其特征在于,所述客户端进一步包括登 录单元;所述更新单元进一步用于,等待服务器响应超过预定时长后,向所述本地 数据拼装单元发送拼装指示;所述本地数据拼装单元,用于拼装本地数据完毕后,向所述登录单元发送登录指示;所述登录单元,用于收到登录指示后,登录游戏平台服务器。
全文摘要
本发明实施例公开了下发目录树数据的方法、系统和服务器,以及一种客户端。该方法包括目录树服务器和客户端预先存储按照约定的协议对目录树数据进行拆分得到的数据块的身份ID,按照所述协议生成各自数据的有效性ID,目录树服务器接收客户端本地数据的身份ID和有效性ID,查询目录树服务器侧具有所述身份ID的数据的有效性ID,若目录树服务器侧的所述有效性ID与客户端上报的所述有效性ID相同,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配成功消息,否则,目录树服务器向所述客户端下发具有所述身份ID的数据的匹配失败消息及目录树服务器侧具有所述身份ID的数据。应用本发明,可节约目录树服务器的下行流量。
文档编号G06F17/30GK101330510SQ20081012713
公开日2008年12月24日 申请日期2008年6月19日 优先权日2008年6月19日
发明者栋 王, 王旭新 申请人:腾讯数码(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1