CN105635264B - 一种基于网络游戏应用的文件*** - Google Patents

一种基于网络游戏应用的文件*** Download PDF

Info

Publication number
CN105635264B
CN105635264B CN201510995137.XA CN201510995137A CN105635264B CN 105635264 B CN105635264 B CN 105635264B CN 201510995137 A CN201510995137 A CN 201510995137A CN 105635264 B CN105635264 B CN 105635264B
Authority
CN
China
Prior art keywords
file
module
information
download
downloading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510995137.XA
Other languages
English (en)
Other versions
CN105635264A (zh
Inventor
庄铭宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201510995137.XA priority Critical patent/CN105635264B/zh
Publication of CN105635264A publication Critical patent/CN105635264A/zh
Application granted granted Critical
Publication of CN105635264B publication Critical patent/CN105635264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于网络游戏应用的文件***,包括存储模块、搜索模块、统一下载平台模块和下载共享模块,其中所述存储模块用于存储所述文件***的文件信息;所述搜索模块用于从存储模块中检索对应的文件信息;所述统一下载平台模块用于在一或多客户端进程环境中接收游戏客户端发出的对应文件的下载请求,并根据下载请求控制搜索模块检索对应的文件信息;所述下载共享模块用于在统一下载平台模块接收下载请求的同时,分析下载地址是否为相同下载地址,在为相同下载地址时,返回已经下载文件的共享信息。本发明使游戏加载资源更快,使资源文件更安全,加大了非法获取资源的难度,并使得游戏文件版本升级对玩家造成的影响更小、更透明。

Description

一种基于网络游戏应用的文件***
技术领域
本发明涉及互联网游戏应用领域,特别是一种基于网络游戏应用的文件***。
背景技术
近年来网络游戏迅速发展,其中完整安装版的客户端游戏数量反而在逐渐减少,能够迅速地进入游戏已经成为了游戏上线的敲门砖。为此游戏客户端需要能够动态地下载游戏过程所需资源,由此带来一系列相关问题。
网络游戏程序运行过程中要读取大量文件,在windows***中,这些文件如果直接放在windows文件目录中,不仅访问速度较慢,不能高效应用***缓存,也不能压缩节省空间,也不利于资源的安全,容易使资源文件被盗窃、修改。
于是大型客户端游戏都有一个需求,就是文件打包压缩加密读取。先保证安全稳定,再偏重于速度,最后顾及压缩以及文件的变化更新。
目前国内外大部分上档次的游戏都对其资源文件进行了打包处理,但是能够在线动态更新的并不多见,国内似乎有龙枪、霸刀等新近出现的网游采用了类似技术。国外游戏中应用的较少,可能是因为国外网络带宽大的原因,下载整个游戏也不会很耗时的缘故。不论是国内外的,目前暂时都没有开源代码可供下载。
因此,目前的技术厂家都在积极开发新的文件***,这个文件***需要适合大量的客户端资源文件的整合管理,以及有不太严格的安全要求,有在线下载需求,文件数据没有运行时修改需求的场合。基于这个***,客户端更易于安装和移动,减少资源文件暴露机会使数据更加安全难以窃取和篡改,利用压缩以减少数据尺寸和硬盘读取耗时,支持网络动态下载所需资源,以及当部分资源更新时不需要重新下载客户端已缓存好的数据。在未来还能通过不断优化***内部实现方案,对应用层透明地优化性能。
发明内容
为解决上述问题,本发明的目的在于提供一种基于网络游戏应用的文件***,提高游戏加载资源的速度,允许多个进程对同一个包同时读取和下载资源,允许在线后台同步服务器上的资源,并在一定程度上保证资源的安全性。
本发明解决其问题所采用的技术方案是:
本发明的优选实施例提供了一种基于网络游戏应用的文件***,至少包括存储模块、搜索模块、统一下载平台模块、下载共享模块,其中:
所述存储模块用于存储所述文件***的文件信息;
所述搜索模块用于从存储模块中检索对应的文件信息;
所述统一下载平台模块用于接收游戏客户端发出的对应文件的下载请求,并根据下载请求控制搜索模块检索对应的文件信息;
所述下载共享模块用于在统一下载平台模块接收下载请求的同时,分析下载地址是否为相同下载地址,在为相同下载地址时,返回已经下载文件的共享信息。
进一步,所述文件***还包括:
压缩及加密模块,用于对存储模块中存储的文件信息进行压缩或/和加密,所述压缩及加密模块对相应文件信息进行压缩时,只对压缩后的文件可以达到设定的压缩率的文件信息进行压缩。
进一步,所述存储模块以多级树的方式存储对应的文件信息,同时生成树索引文件,所述树索引文件单独存储或者与对应的文件信息一起存储。
进一步,所述文件***还包括:
压缩及加密模块,用于对存储模块中存储的文件信息进行压缩或/和加密,所述压缩及加密模块对相应文件信息进行压缩时,生成的压缩包包括:
主文档,所述主文档包括包头、文件数据区和树信息区;或者
主文档和树索引文件,所述主文档包括包头和文件数据区,所述树索引文件包括包头和树索引文件;
所述包头至少包括文件头的长度及版本信息,且包头中存储有对应树信息区的位置信息,所述文件数据区存储对应的文件信息,所述树信息区存储对应的树索引文件。
进一步,所述统一下载平台模块包括:
多进程处理单元,用于对接收游戏客户端发送的进程,对进程进行排序,并按照序列处理进程;
信息识别单元,用于在多进程处理单元处理某个线程时,读取该进程目录下的配置文件,根据配置信息获取对应文件信息的数量、路径及下载地址,并返回至多进程处理单元。
进一步,所述统一下载平台模块还包括在线下载识别单元,用于识别多进程处理单元所接收的进程是否为在线下载进程,在识别为在线下载进程时,为对应进程设置高优先级权重。
进一步,所述统一下载平台模块还包括:
进程管理单元,用于在多个进程同时下载时,统一管理下载中的共享信息及下载流量,所述共享信息包括多个游戏客户端下载同一文件信息和同一用户端重复下载同一文件信息。
进一步,所述文件***还包括在线发布模块,所述在线发布模块包括:
更新包生成单元,用于通过重新创建或更新的方式生成需要更新的完整数据包;
分离树单元,用于对完整数据包进行分离树索引文件操作,获取对应的树索引文件;
上传单元,用于改名树索引文件后将其与数据包一起上传至下载服务器。
本发明的有益效果是:
本发明采用一种基于网络游戏应用的文件***,在游戏的底层基础实现,允许多个进程对同一个包同时读取和下载资源,允许在线后台同步服务器上的资源,能使游戏加载资源更快,使资源文件更安全,加大了非法获取资源的难度,并使得游戏文件版本升级对玩家造成的影响更小、更透明。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明优选实施例中文件***的结构示意图;
图2是本发明统一下载平台模块的结构组成示意图;
图3是本发明统一下载平台模块与进程的处理示意图;
图4是本发明文件***具体内部结构及工作流程示意图;
图5是本发明文件***的线程关系及处理流程示意图。
具体实施方式
本发明以下实施例仅代表对本发明具体的解释,本发明并不限于某种***或游戏的应用。本发明所言及的游戏,并不针对某一款特殊的游戏,本发明所属应用为对本发明中的技术方案的具体说明。
本发明所述文件***向上层程序员提供FPC库及其在线版本FPCO (在线文件压缩包File Pack with Compression Online)库和DownloadClient库(Client of DownloadService统一下载服务客户端)库,并附带了DownloadServer程序(Server of DownloadService统一下载服务平台)和文件包管理工具,以及一个控制台示例程序、一个基于.Net平台C++/CLI语言的可视化演示程序。本发明所述文件***的具体实现参照以下实施例中具体所述。
实施例1:
作为本发明的优选实施例,参照图1所示,本发明的文件***至少包括存储模块100、搜索模块101、统一下载平台模块102、下载共享模块103,其中:
所述存储模块100用于存储所述文件***的文件信息;
所述搜索模块101用于从存储模块100中检索对应的文件信息;
所述统一下载平台模块102用于接收游戏客户端发出的对应文件的下载请求,并根据下载请求控制搜索模块101检索对应的文件信息;
所述下载共享模块103用于在统一下载平台模块102接收下载请求的同时,分析下载地址是否为相同下载地址,在为相同下载地址时,返回已经下载文件的共享信息。
以上***结构构成了本发明最基础的组成单元,游戏客户端所发出的所有进程的下载请求均通过统一下载平台模块102进行处理,对进程的下载的流量和进行资源的分配可以合理有序的控制,避免堵塞及其它异常情况。
本发明的优选实施例在文件***中加入了压缩及加密模块104,用于对存储模块100中存储的文件信息进行压缩或/和加密,所述压缩及加密模块104对相应文件信息进行压缩时,只对压缩后的文件可以达到设定的压缩率的文件信息进行压缩。此处,所设置的压缩率可以根据实际应用进行设置,本发明并不限于某一单一的固定值,其值也可以随着压缩文件的不同动态设置。本发明所采用的压缩及加密方案,可以目前采用的常规方案,也可以是高级压缩及加密方式,在本发明的文件***中,压缩及加密所采用的方式对本发明的实现不具有实质性的影响。
一般的扩展性较好的二进制文件,都有一个文件头(包头),用于指明文件头的长度以及文件版本等,使用包头可以增强容错性和版本兼容能力。为了兼容FPC和FPCO对文件树结构信息(简称树信息)的不同需求,文件树结构信息可以和文件数据一起存储在主文档内,也可以单独分离出来保存成一个文件(称作树索引文件)。在包头中可以指明树信息存储在哪个文件。由于主文档的长度可能动态的增长,所以使用FPCO时,必须使树索引文件。
为此,在本发明的优选实施例中,所述存储模块100以多级树的方式存储对应的文件信息,同时生成树索引文件,所述树索引文件单独存储或者与对应的文件信息一起存储。不论树索引文件单独存储或者与对应的文件信息一直存储,所述压缩及加密模块对相应文件信息进行压缩时,生成的压缩包包括有两种:
压缩包只包括主文档,所述主文档包括包头、文件数据区和树信息区;或者
压缩包包括主文档和树索引文件,所述主文档包括包头和文件数据区,所述树索引文件包括包头和树索引文件;
所述包头至少包括文件头的长度及版本信息,且包头中存储有对应树信息区的位置信息,所述文件数据区存储对应的文件信息,所述树信息区存储对应的树索引文件。
从以上对存储模块100的叙述中可知,本发明采用了Windows文件***中的结构,即多级文件树***,相应的,存储模块100中的路径支持正反斜杠,且不区分大小写。对应的,其中的文件信息的属性包括文件名、文件大小、修改时间、压缩信息、父目录索引、存储信息等,每个目录的信息则包括路径、文件/目录数量、父目录索引,还可以包括目录路径的Hash等。对应的,搜索模块101支持对指定目录下进行遍历子目录和子文件、判断指定路径的文件目录是否存在等操作,也可以获取指定文件的名字、大小和修改日期等信息。
本发明的优选实施例中,参照图2所示,所述统一下载平台模块102包括:
多进程处理单元200,用于对接收游戏客户端发送的进程,对进程进行排序,并按照序列处理进程;
信息识别单元201,用于在多进程处理单元200处理某个线程时,读取该进程目录下的配置文件,根据配置信息获取对应文件信息的数量、路径及下载地址,并返回至多进程处理单元;
在线下载单元202,用于识别多进程处理单元所接收的进程是否为在线下载进程,在识别为在线下载进程时,为对应进程设置高优先级权重;
进程管理单元203,用于在多个进程同时下载时,统一管理下载中的共享信息及下载流量,所述共享信息包括多个游戏客户端下载同一文件信息和同一用户端重复下载同一文件信息。
所述多进程处理单元200、信息识别单元201、在线下载单元202及进程管理单元203均为本发明所述统一下载平台模块102的具体实现过程,本发明通过统一下载平台模块102实现对文件***的统一规划与管理。一是对多线程的规划与管理,其所接收的多线程统一由多进程处理单元200进行处理,排序时,可以按照时间优先的方式,或者先进先出的栈列方式,或者其它方式,严格的限制排列方式对本发明的实现不具备显著的意义,因此,采取其他途径实现对进程的管理,亦是可实现本发明的具体方式或方法。二是在处理某个线程时的规划与管理,本发明在处理某个线程时,信息识别单元201即可读取该进程目录下的配置文件,以获取此进程需要下载的文件的地址、数量等信息,之后,通过搜索模块101从存储模块100当中查找即可。三是对在线下载进程的规划与管理,由于在线下载的进程直接与用户对游戏的体验相关,因此,其申请必须进行优先处理,本发明按照最常规的方式,在识别在线进程后,对其赋予较高的优先级,需要指出的时,本发明只是具体的阐述了一种实现在线进程快速下载的一种方式,对于其它处理方式,比如在线下载进程的独占性处理等,均为本发明可实现的范围之内。四是对多个进程同时下载的规划与管理,本发明对于多个进程同时下载,要兼顾不同进程下载的速度,合理地控制下载的流量,比如相应的下载软件(迅雷、BT等)均可设置对应下载速度,以避免影响用户其它的正常上网,进程管理单元203可根据用户的具体要求,对多个进程进行同时管理,有时多个进程所下载的文件内容相同,比如网吧当中,同一用户可能下载重复性的文件(大型游多为团体游戏,需要多人组团组合,单个用户在游戏当中,经常会触发同一进程下载同一文件,或触发不同的进程下载同一文件),本发明可以识别下载内容相同的进程,避免重复下载,同样,不同的进程有可能同时下载相同的文件,进程管理单元203亦可允许多个进程同时下载同一文件。
参照图3所示,多个游戏或一个游戏的多个进程通过连接统一下载平台模块进行资源下载。同一个游戏的多个进程,可以共享下载的内容,即进程A请求过的资源文件,进程B无需重复下载。本发明实现时,多个游戏可以使用同一个下载平台进程,以达到整体的负载控制。不同游戏由于目录不同,包文档互相独立,可以分别配置URL,即使重名也不会有冲突。在扩展性方面,经过扩充,本发明的文件***完全可以实现局域网级的下载共享,能有效提高网吧用户的体验,亦可以利用P2P传输提高下载速度。以上的具体实现,根据以上所述对附图2具体内容的说明。
网络游戏的更新,通常是在线性的更新,为了进一步提升用户的体验,本发明所述文件***还包括在线发布模块,所述在线发布模块包括:
更新包生成单元,用于通过重新创建或更新的方式生成需要更新的完整数据包xxx.fpc;
分离树单元,用于对完整数据包xxx.fpc进行分离树索引文件操作,获取对应的树索引文件xxx.fpci;
上传单元,用于改名树索引文件后(改名后为xxx.server.fpci)将其与数据包一起上传至HTTP下载服务器。
以更新的方式生成数据包时,文件大小及修改时间相同的,认为是未改变的文件,不必进行更新。
若版本更新不是关键更新时,无需将全服玩家踢出客户端,则此时不能直接替换已有的服务器文件,否则会出现版本不匹配的情况。本发明将不同版本客户端连接不同的目录,并在适当时删除旧版本的资源文件。版本更新时将同时更新配置文件,没有重新启动的客户端将继续连接旧的数据源。
游戏客户端使用在线资源时,在第一次启动游戏或版本更新时,下载最新的树索引文件x.server.fpci,之后,进行创建包或树结构更新得到x.fpc和x.fpci,之后,FPCO库载入包文档,并在使用过程中逐渐下载数据到x.fpc中以及修改xxx.fpci。
为了进一步对发明进行说明和充分实现本发明的具体应用,存储模块100中的文件被压缩及加密模块104压缩后,其整包的空间大小以小于1G为宜,考虑到文件包上传方便以小于500M为宜;包中单个文件的大小以不超过16位数字(二进制)即65535为宜,当单个文件大于16位数字时,则进行拆包。(常见中小规模MMORPG游戏的文件资源数量小于3000,大型规模的MMORPG小于30000。)
参照图4所示,图中所示FPCO层是FPC的派生类,其可以提供更多接口。游戏进程和统一下载平台进程将读取该游戏进程目录下的同一份配置文件,根据配置决定包文档的数量和路径以及对应的下载地址。同一个游戏的多个进程会得到资源共享;不同的游戏的包文档互相独立,不会发生冲突。
底层的FPC库对同一个包文档使用内存映射文件共享,统一下载平台进程将下载到的数据写入包文档中,游戏进程可以直接读取最新内容而不需要IO或进程间通知。
游戏逻辑使用“下载客户端库”连接下载平台和得到资源读取接口。
下载客户端库处理对下载平台的连接,管理多个包文档和提供获取包对象的接口。
FPC库负责对包文档数据的读取操作。
下载服务端库处理包文档初始化工作(当包文档不存在时)、游戏进程的连接和断开、请求对象的创建工作和释放、资源数据更新、通知游戏进程触发请求完成事件。
下载服务端库调用FPCO层,FPCO层通过回调方式调用cURL下载库。
资源到达后,FPC库负责对包文档数据的写入操作。
下面,本发明从线程的角度对本发明所述的文件***作进一步的说明,参照图5所示各线程的关系和处理流程:
1)首先对于一个资源需求线程(需要读取文件数据的线程),判断资源需要下载后,申请一个请求对象(可以显示地创建或被包装在阻塞读取调用内);
2)请求处理线程创建一个空的请求对象返回给资源需求线程;
3)资源需求线程设置好请求信息后(一个请求可以包含多个文件请求),发送给统一下载平台进程中的请求处理线程处理,并得到一个事件对象Mutex,随时检测或同步阻塞方式等待Mutex;
4)请求处理线程检查过请求信息后(并认为需要下载时),向文档空间管理器申请资源文件的存储空间,并使用下载线程池下载数据。
5)下载线程处理完下载后,通知请求处理线程一个资源文件完成下载,若游戏进程有注册窗口文件请求完成通知消息,则发送该消息;
6)请求处理线程枚举有关这个资源文件的所有请求,更新它们的进度,如果请求内所有资源文件都完成下载,则设置请求的事件对象Mutex;若游戏进程有注册窗口请求完成通知消息,则发送该消息;
7)资源需求线程发觉事件处理完后,可以释放请求对象,并可使用文件资源;
8)请求处理线程发觉请求对象被释放后,销毁请求对象。
实施例2:
以下代码将演示如何启动下载服务,以及找到MapFile/1.wbf.ter并请求下载。
#include"DownloadClient.h"
#include"FilePackOnline.h"
usingnamespaceFilePack;
usingnamespaceDownloadService;
usingnamespaceDownloadService::DownloadClient;
#include<stdio.h>
#include<conio.h>
//ErrExit 提示错误,等待按键后退出程序
#defineErrExit(text) do{ printf(text); returngetch(); }while(0)
intmain(intargc, wchar_t* argv[]){
//①连接服务
CDownloadClientclient(123/*游戏编号*/); //游戏编号
if(!client.Connect()) ErrExit("连接服务失败\n");
//②加载包文档
std::vector<CFilePackOnline*>packols = client.LoadPacks(654321/*包文档密码*/);
if(packols.empty() || !packols[0] || !packols[0]->IsOpened())ErrExit("包文档加载错误\n");
//③找到MapFile/1.wbf.ter文件对象,并判断是否需要下载
SFile* file = packols[0]->GetFile(L"MapFile/1.wbf.ter"/*文件地址*/); //取得文件对象
if(!file) ErrExit("找不到资源文件\n");
if(CFilePack::IsFileStored(file)) ErrExit("文件已下载完成\n");
//④根据单一文件对象,创建并发送请求
Query* query = client.CreateAndSendFileQuery(file, 100/*请求优先级*/, 0/*文件优先级*/);
//⑤等待下载请求完成
while(true){
//每等0.5s还在处理文件下载,就输出一行日志:
boolprocessing = client.IsProcessingQuery(query, 0/*等待0ms*/);//测试是否在处理
while(processing){
printf("下载未完成,继续等待最多0.5s\n");
processing = client.IsProcessingQuery(query,500);//是否正在处理,等待最多0.5s
}
//⑥下载请求完成,判断成功或失败,并进一步处理
if(query->Files[0].Downloaded){//也可直接判断是否可读:CFilePack::IsFileStored(file)
printf("文件下载成功\n");
client.ReleaseQuery(query); //使用完毕释放请求对象
break; //无论是否主动释放,断开连接或进程结束都会被释放
}
elseif(query->Files[0].Failed){
printf("文件下载失败,重试\n");
client.SendQuery(query); //再发送一次请求,重新下载
}
}
//⑦断开连接关闭包,且所有未释放的请求都会被释放
client.CloseConnection(); //其实只要本进程退出,***会妥善地释放资源,无需刻意断开
returngetch();
}
因此,根据本发明的文件***能够为宿主软件(即调用该文件***的软件)提供以下功能:
1. 为宿主软件读取(在宿主软件运行时只读不改的)资源文件提供方法途径;
2.令宿主软件在非急需的资源文件尚未就位(下载到本地硬盘)时即可尽快运行、启动,并在运行过程中根据需要不断地下载必须的急需的资源文件(即推迟非急需的数据下载,在网络游戏领域中表现为原先20分钟才能下载完的500MB的游戏现在可以在30秒先行开始);
3.为有版本升级需要的宿主软件及其相应版本的文件,提供支撑其进行文件级精度(任何一个资源文件需要更新都只需要下载它而不需要被迫下载其他文件)的版本升级的易于运维管理的方法途径;
4.当有多个宿主软件进程同时运行时、下载资源文件时,不丢失下载数据、不重复下载浪费网络带宽;
5.保证下载数据时过程中即使下载错误或程序出错崩溃或停电时,已成功完成的资源文件仍可用;
6.提供对宿主软件编写者透明的压缩、加密功能,在一定程度上提高资源文件的安全性和下载的速度,以及一定程度节约硬盘存储空间(特别是对xml等文本文件压缩效果显著);
7.对于已就位(下载到本地硬盘)文件,提供比普通地(非优化过的)读取Windows文件的形式可能更快的读取速度。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

Claims (7)

1.一种文件***,其特征在于,所述文件***包括存储模块、搜索模块、统一下载平台模块、下载共享模块、在线发布模块,其中:
所述存储模块用于存储所述文件***的文件信息和数据;
所述搜索模块用于从存储模块中检索对应的文件信息和存储位置以用于读取;
所述统一下载平台模块用于接收游戏客户端发出的对应文件的下载请求,并根据下载请求下载对应的文件;
所述下载共享模块用于在统一下载平台模块接收下载请求的同时,分析下载地址是否为相同下载地址,在为相同下载地址时,返回已经下载文件的共享信息;
所述在线发布模块包括:更新包生成单元,用于通过重新创建或更新的方式生成需要更新的完整数据包;分离树单元,用于对完整数据包进行分离树索引文件操作,获取对应的树索引文件;上传单元,用于改名树索引文件后将其与数据包一起上传至下载服务器;
所述***检测所述数据包是否为关键更新,若不是关键更新,则使所有玩家保持在线,所述***将不同版本客户端连接不同的目录以使没有重新启动的客户端继续连接旧的数据源 。
2.根据权利要求1所述的文件***,其特征在于,所述文件***还包括:
压缩及加密模块,用于对存储模块中存储的文件信息进行压缩或/和加密,所述压缩及加密模块对相应文件信息进行压缩时,只对压缩后的文件可以达到设定的压缩率的文件信息进行压缩。
3.根据权利要求1所述的文件***,其特征在于,所述存储模块以多级树的方式存储对应的文件信息,同时生成树索引文件,所述树索引文件单独存储或者与对应的文件信息一起存储。
4.根据权利要求3所述的文件***,其特征在于,所述文件***还包括:
压缩及加密模块,用于对存储模块中存储的文件信息进行压缩或/和加密,所述压缩及加密模块对相应文件信息进行压缩时,生成的压缩包包括:
主文档,所述主文档包括包头、文件数据区和树信息区;或者
主文档和树索引文件,所述主文档包括包头和文件数据区,所述树索引文件包括包头和树索引文件;
所述包头至少包括文件头的长度及版本信息,且包头中存储有对应树信息区的位置信息,所述文件数据区存储对应的文件信息,所述树信息区存储对应的树索引文件。
5.根据权利要求1所述的文件***,其特征在于,所述统一下载平台模块包括:
多进程处理单元,用于对接收游戏客户端发送的进程,对进程进行排序,并按照序列处理进程;
信息识别单元,用于在多进程处理单元处理某个线程时,读取该进程目录下的配置文件,根据配置信息获取对应文件包的数量、路径及下载地址,并返回至多进程处理单元。
6.根据权利要求5所述的文件***,其特征在于,所述统一下载平台模块还包括在线下载识别单元,用于识别多进程处理单元所接收的进程是否为在线下载进程,在识别为在线下载进程时,为对应进程管理下载相关信息。
7.根据权利要求5或6所述的文件***,其特征在于,所述统一下载平台模块还包括:
进程管理单元,用于在多个进程同时下载时,统一管理下载中的共享信息及下载流量,所述共享信息包括多个游戏客户端下载同一文件信息和同一用户端重复下载同一文件信息。
CN201510995137.XA 2016-03-28 2016-03-28 一种基于网络游戏应用的文件*** Active CN105635264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510995137.XA CN105635264B (zh) 2016-03-28 2016-03-28 一种基于网络游戏应用的文件***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510995137.XA CN105635264B (zh) 2016-03-28 2016-03-28 一种基于网络游戏应用的文件***

Publications (2)

Publication Number Publication Date
CN105635264A CN105635264A (zh) 2016-06-01
CN105635264B true CN105635264B (zh) 2019-08-20

Family

ID=56049736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510995137.XA Active CN105635264B (zh) 2016-03-28 2016-03-28 一种基于网络游戏应用的文件***

Country Status (1)

Country Link
CN (1) CN105635264B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6473252B1 (ja) * 2018-02-27 2019-02-20 株式会社ドワンゴ ゲーム実行装置およびゲームプログラム
CN110109687B (zh) * 2019-04-26 2023-06-30 腾讯科技(成都)有限公司 应用安装包生成方法及装置
CN113384872B (zh) * 2021-05-12 2024-07-12 网易(杭州)网络有限公司 在微端中处理信息资源的方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604358B (zh) * 2009-07-13 2011-01-26 优万科技(北京)有限公司 一种资源更新方法、装置和***
CN103259819B (zh) * 2012-02-20 2017-12-15 腾讯科技(深圳)有限公司 文件共享的方法及***
CN104104645B (zh) * 2013-04-01 2017-08-25 北京畅游天下网络技术有限公司 一种跨平台资源管理方法和***
CN103259802A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 媒体文件的下载方法、装置及客户端设备
US9256484B2 (en) * 2013-06-09 2016-02-09 Apple Inc. Dynamic adjustment of mobile device based on user activity
CN105327508B (zh) * 2015-11-17 2019-03-08 盛趣信息技术(上海)有限公司 网络游戏运行***及方法

Also Published As

Publication number Publication date
CN105635264A (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105740418B (zh) 一种基于文件监控和消息推送的实时同步***
CN106156359B (zh) 一种云计算平台下的数据同步更新方法
CN106027647B (zh) Lxpfs集群分布式文件存储***
US7529778B1 (en) System and method for providing access to consistent point-in-time file versions
CN102779185B (zh) 一种高可用分布式全文索引方法
US8606886B2 (en) System for conversion between physical machines, virtual machines and machine images
CN103116618B (zh) 基于客户端持久缓存的远程文件***镜像方法及***
US9317509B2 (en) Pro-active self-healing in a distributed file system
US20150381725A1 (en) Service plan tiering, protection, and rehydration strategies
CN100553328C (zh) 智能化存取数据的流媒体点播***
US20200387480A1 (en) Path resolver for client access to distributed file systems
CN106506587A (zh) 一种基于分布式存储的Docker镜像下载方法
US20070094348A1 (en) BITS/RDC integration and BITS enhancements
US20060253501A1 (en) Fast and reliable synchronization of file system directories
US20100042719A1 (en) Content access to virtual machine resource
JP2018511884A (ja) モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法
CN113626286B (zh) 多集群实例处理方法、装置、电子设备及存储介质
CN105635264B (zh) 一种基于网络游戏应用的文件***
CN108092936A (zh) 一种基于插件架构的主机监控***
US7080102B2 (en) Method and system for migrating data while maintaining hard links
US7281012B2 (en) System and method for implementing multiple application server clusters using a common binary directory structure
Fan et al. Gear: Enable efficient container storage and deployment with a new image format
CN106919470A (zh) 一种数据恢复方法及装置
EP2402861A1 (en) Storage system
AU2011293014B2 (en) Method and system for extending data storage system functions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant