著录项信息
专利名称 | 一种用于游戏的网络服务器系统 |
申请号 | CN200310110378.9 | 申请日期 | 2003-12-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2004-12-22 | 公开/公告号 | CN1556473 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/46 | IPC分类号 | G;0;6;F;9;/;4;6;;;G;0;6;F;9;/;4;4查看分类表>
|
申请人 | 北京金山数字娱乐科技有限公司 | 申请人地址 | 北京市海淀区北四环中路238号柏彦大厦20层2008房间
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京金山数字娱乐科技有限公司 | 当前权利人 | 北京金山数字娱乐科技有限公司 |
发明人 | 刘豫军;刘鹏 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 王学强 |
摘要
本发明公开了一种用于游戏的网络服务器系统,包括收发单元、调配单元和处理单元;收发单元接收来自客户端经过封装的客户端请求,封装处理后发送客户端请求到调配单元;调配单元对客户端请求相关解析和分类后再传送给处理单元;处理单元通过处理单元对其处理后将处理结果发送给收发单元,收发单元将该处理结果封装发送客户端。处理单元包括配有插件的预处理单元和处理单元;配有插件的预处理单元接收所述调配单元发送的客户端请求,发送该客户端请求至处理单元;接收处理单元对该客户端请求的处理结果,并发送该处理结果至收发单元;所述插件用于为不同游戏提供具体的游戏规则和相关的游戏程序。
1.一种用于游戏的网络服务器系统,包括:收发单元、调配单元和处理单元;所述收发单元接收来自客户端经过封装的客户端请求,并在进行封装处理后发送所述客户端请求到所述调配单元;所述调配单元接收来自所述收发单元的客户端请求,在对所述客户端请求进行解析分类后再将其传送给处理单元;处理单元接收所述客户端请求并通过处理单元对其进行处理后将客户端请求的处理结果发送给收发单元,所述收发单元将该处理结果进行封装并送回客户端;其特征在于,所述处理单元包括配有插件的预处理单元和处理单元;所述配有插件的预处理单元接收所述调配单元发送的客户端请求,发送该客户端请求至所述处理单元;接收所述处理单元对该客户端请求的处理结果,并发送该处理结果至所述收发单元;所述插件用于为不同游戏提供具体的游戏规则和相关的游戏程序。
2.根据权利要求1所述的用于游戏的网络服务器系统,其特征在于,所述收发单元包括接收单元、发送单元和封装处理单元;所述接收单元接收经过封装的客户端请求,发送给封装处理单元;所述封装处理单元在对所述接收单元发送的客户端请求进行封装处理后发送给所述调配单元;封装处理单元或接收所述处理单元的客户端请求的处理结果,进行封装处理后发送给所述发送单元;发送单元接收封装处理单元该经过封装的处理结果并发送给客户端。
3.根据权利要求1或2所述的用于游戏的网络服务器系统,其特征在于,所述调配单元包括请求解析单元和请求分类单元;所述请求解析单元接收所述收发单元的客户端请求,进行初步的解析过滤传送给所述请求分类单元;所述请求分类单元对所述请求解析单元传送的该客户端请求过滤分类发送给所述处理单元。
4.根据权利要求1所述的用于游戏的网络服务器系统,其特征在于,所述处理单元包括含请求预处理子单元和结果预处理子单元的预处理单元以及含远程处理子单元和本地处理子单元的处理单元;其中:所述预处理单元接收所述调配单元发送的经过过滤分类的客户端请求,并将该客户端请求处理成处理单元处理的请求形式发送给所述处理单元;所述处理单元对该请求处理后返回给预处理单元;所述预处理单元将该客户端请求的处理结果发送给所述收发单元。
5.根据权利要求1或4所述的用于游戏的网络服务器系统,其特征在于,所述处理单元的位置具体在本地计算机或者同一服务器系统里。
6.根据权利要求1或4所述的用于游戏的网络服务器系统,其特征在于,所述处理单元的位置具体在互联网上的其它计算机上。
7.根据权利要求1或4所述的用于游戏的网络服务器系统,其特征在于,所述预处理单元包括请求预处理子单元和结果预处理子单元,请求处理单元包括远程处理子单元和本地处理子单元,其中:所述请求预处理子单元接收来所述调配单元发送的经过过滤分类的客户端请求,并将该客户端请求处理成远程计算机处理的请求或在本地处理的请求,并发送给远程处理子单元或本地处理子单元;远程处理子单元或本地处理子单元对其处理后,将远程处理结果或本地处理结果发送给所述结果预处理子单元;所述结果预处理子单元发送该处理结果至所述收发单元。
8.根据权利要求1所述的用于游戏的网络服务器系统,其特征在于,系统所述收发单元、调配单元和处理单元都包括缓冲池。
9.根据权利要求8所述的用于游戏的网络服务器系统,其特征在于,所述缓冲池是按分级和分权进行管理。
一种用于游戏的网络服务器系统\n技术领域\n本发明涉及到一种用于游戏的网络服务器系统,尤其涉及到可支持各种类型游戏运作的用于游戏的网络服务器系统。\n背景技术\n现有的游戏网络服务器一般只能支持一种游戏的运作,或者在支持不同类型游戏的时候需要进行内程序的改写,同时现有服务器的逻辑处理一般与服务器其他部分耦合比较紧或者直接在源代码级进行整合,这样不便于功能扩充。现有的服务器处理部分一般没有进行细化,这样不便于形成流水线。此外传统技术中的服务器的缓冲池也比较简单,一些特殊的请求,如特殊类型、特殊优先级的请求,得不到优先处理,所以为了将客户端的游戏请求及时高效地处理,所以使用者呼唤一种能够满足不同种类、不同内容游戏同时运作的网络服务器。\n发明内容\n为了解决上述问题,本发明提出了一种用于游戏的网络服务器系统,包括:收发单元、调配单元和处理单元;所述收发单元接收来自客户端经过封装的客户端请求,并在进行封装处理后发送所述客户请求到所述调配单元;调配单元接收来自收发单元的客户端请求,在对所述客户端请求进行相关调配处理后再将其传送给处理单元;处理单元接收所述客户端请求并对其进行处理后将客户端请求的处理结果发送给收发单元,收发单元将该处理结果进行封装并送回客户端。\n所述处理单元包括配有插件的预处理单元和处理单元;所述配有插件的预处理单元接收所述调配单元发送的客户端请求,发送该客户端请求至处理单元;接收处理单元对该客户端请求的处理结果,并发送该处理结果至收发单元;所述插件用于为不同游戏提供具体的游戏规则和相关的游戏程序。\n所述收发单元包括接收单元、发送单元和封装处理单元;其中:接收单元接收经过封装的客户端端请求,并发送待处理的封装请求给封装处理单元;封装处理单元在对其进行封装处理后将接收到的客户端请求发送给系统的调配单元,此外,封装处理单元接收来自系统处理单元的客户端请求的处理结果,并在对其进行封装处理后将经过封装的处理结果传给发送单元;发送单元将所述经过封装的处理结果发送给客户端。\n所述调配单元包括请求解析单元和请求分类单元;其中:请求解析单元接收来自收发单元的客户端请求,对其进行初步的解析过滤并将经过初步解析过滤的请求传送给请求分类单元;请求分类单元对所述客户端请求进行过滤分类并将经过过滤分类的客户端请求发送给系统的处理单元。\n所述处理单元包括含请求预处理子单元和结果预处理子单元的预处理单元以及含远程处理子单元和本地处理子单元的请求处理单元;其中:预处理单元接收来自系统调配单元发送的经过过滤分类的客户端请求,预处理单元将该客户端请求处理成请求处理单元可以处理的请求形式,然后发送给请求处理单元;请求处理单元对所述请求处理后将处理结果返回给预处理单元后,预处理单元将客户端请求的处理结果发送给系统的收发单元。\n所述处理单元的位置是透明的,可以在本地计算机或者同一服务器系统里面。\n所述处理单元的位置是透明的,可以在互联网中的其它计算机上。\n所述预处理单元包括请求预处理子单元和结果预处理子单元,请求处理单元包括远程处理子单元和本地处理子单元,其中:请求预处理子单元接收来自系统调配单元发送的经过过滤分类的客户端请求,并将该客户端请求处理成需要远程计算机处理的请求或可以在本地处理的请求,并将其分别发送给远程处理子单元和本地处理子单元;远程处理子单元和本地处理子单元对其进行处理后分别将远程处理结果和本地处理结果发送给结果预处理子单元,结果预处理子单元再将上述处理结果发送给系统的收发单元。\n系统所述三个单元都包含有缓冲池。\n所述缓冲池主要是按分级和分权进行管理的。\n所述的插件在不同的游戏中有不同的插件内容且支持各自游戏的运作。\n本发明所述的一种用于游戏的网络服务器系统,与传统的服务器相比,其进步性在于,由于传统服务器的缓冲池比较简单,所以无法满足一些特殊的客户端请求;而本发明采取了流水线技术和缓冲池技术,通过所述网络服务器系统对客户端请求的细化处理,使得本发明所述的一种用于游戏的网络服务器系统保持了很高的CPU利用率;无论同时在线多少个客户端,也无论客户端请求是什么类型,以及所述客户端请求的优先级等级如何,同时在出现不同游戏类型的时候,无需重新改写服务器的内容程序,而只需为各种游戏提供相应的适用于自身的特定插件即可,从而扩展了服务器的使用功能和使用范围,避免了在技术上由于改写服务器内容程序而造成的大量重复劳动;此外缓冲池的应用可以将各种客户端请求进行存储,帮助解决客户端请求由于客户端请求拥堵而造成的服务器不能及时或有效接收所述客户端请求的问题;另外,所述用于游戏的网络服务器系统在判断客户端请求所属类型和优先级等级之后,可以达到将客户端请求进行有序高效的处理,从而提高了服务器的存储空间的利用率和服务器的处理效率。从而可实现上述发明目的和解决传统游戏服务器所存在且无法避免的问题。\n总之,本发明所述的一种用于游戏的网络服务器系统均可以实现上述发明目的和解决传统游戏服务器的问题。\n附图说明\n附图1是本发明所述的一种用于游戏的网络服务器系统中客户端请求的处理流程图;附图2是本发明所述的一种用于游戏的网络服务器系统的整体工作步骤流程图;附图3是本发明所述的一种用于游戏的网络服务器系统中收发单元的工作原理图;附图4是本发明所述一种用于游戏的网络服务器系统中所述调配单元的工作原理图;附图5是本发明所述一种用于游戏的网络服务器系统中处理单元的第一种工作原理图;附图6是本发明所述一种用于游戏的网络服务器系统中处理单元的第二种工作原理图。\n具体实施方式\n如附图1所示,是本发明所述的一种用于游戏的网络服务器系统中,经过封装的客户端请求的处理流程图,经过封装的客户端请求先进入收发单元1进行客户端请求的接收,所述收发单元1将接收的封装客户端请求发送到调配单元2进行相应的解析和分类后,所述调配单元2将所述经过解析和分类处理后的客户端请求发送到处理单元3进行处理,所述处理单元3的预处理单元10和处理单元11将所述的客户端请求进行处理后,将处理结果发送到收发单元1,所述收发单元1将对封装过的客户端请求进行处理的处理结果返回到客户端。\n如附图2所示,是本发明所述的一种用于游戏的网络服务器系统的整体工作步骤流程图。在步骤101中,所述收发单元1对客户端所发出的请求进行接收,并且将所接收的客户端请求发送到调配单元2,进入步骤102,所述调配单元2的请求解析单元8对所接收的客户端请求进行解析,步骤103中,调配单元2的另一组成部分--请求分类单元9对被解析后的客户端请求进行分类处理后,所述调配单元2将解析和分类后的客户端请求发送到处理单元3进行处理;在步骤104中,经过处理单元3中的预处理单元10的预处理,客户端请求被发送到处理单元11,随后进入步骤105,所述处理单元11对客户端请求进行处理后,将处理结果发送到收发单元1,由收发单元1将处理结果返回给客户端。有特殊封装的请求将经过所述收发单元1剥去外层封装传送到调配单元2等待处理,所述调配单元2对请求进行初步解析,首先丢弃不合法请求,随后将请求进行分类并送往处理单元3,处理单元3的处理单元11负责处理客户端请求并把结果传给预处理单元10,由预处理单元10对处理结果按客户端的要求进行初步的封装,并将处理结果反馈给收发单元1,发送单元1的封装处理单元5再对结果进行为便于网络传送的进一步的封装并加密后,传回给客户端。\n如附图3所示是本发明所述的一种用于游戏的网络服务器系统中收发单元对经过封装的客户端请求的工作原理图。所述收发单元1包括接收单元4、封装处理单元5和发送单元6。经过封装的客户端请求首先发送到接收单元4时,待处理的客户端请求进入封装处理的流程,所述收发单元1的封装处理单元5具有对客户端请求进行封装处理的功能,将封装后的客户端请求发送到调配单元2进行相应的调配处理;另一方面,客户端请求经过调配单元2和处理单元3的相应处理后,处理单元3中的预处理单元10发送回的客户端请求处理结果进入所述收发单元1的封装处理单元6,被所述封装处理单元6进行封装后,经过封装的处理结果进入所述收发单元1中的发送单元4;最后由发送单元4将封装过的客户端请求处理结果发送回客户端。在收发单元起关键作用的是封装处理单元6,所有所述收发单元1接收到的客户端请求和返回的客户端请求处理结果均将在所述的封装处理单元6中进行封装处理。同时,所述封装处理单元6对相应的加密和客户端请求数据的完整性进行检查,具体地负责对客户端请求进行初步解析,目的在于去掉用于网络传送的头信息,并对客户端请求进行解密和检查请求包的完整性,如果请求包在传输中被人改动或者有数据发生变化,将丢弃这个包,关于请求包完整性的保证可以通过打摘要码来完成。随后对处理结果进行进一步封装以加上便于网络传送的头信息,并对数据加密并打上摘要码。\n如附图4所示,是本发明所述一种用于游戏的网络服务器系统中所述调配单元对客户端请求进行处理的工作原理图。所述调配单元2包括解析单元8和分类单元9,在调配单元1接收到客户端请求的时候,从中提取出客户端请求信息和请求类型等附加信息,请求解析单元8对客户端进行解析和解压缩处理,并将处理后的结果发送到分类单元9进行客户端请求的分类处理,包括对客户端请求的优先级等级和请求的具体类型进行判断和分类,随后所经过过滤分类的客户端请求发送到处理单元3进行处理。如附图5所示,是本发明所述一种用于游戏的网络服务器系统中处理单元中的第一种工作原理图之一。所述处理单元包括预处理单元10和处理单元11,在所述的处理单元3接收到来自调配单元2的客户端请求时,首先由预处理单元10对所述的客户端请求进行相应的预处理,并将所述的预处理之后的客户端请求发送到处理单元11进行处理,所述处理单元中11的插件15对客户端请求进行具体的符合游戏规则的处理,随后所述处理后的客户端请求再次进入预处理单元10进行处理结果的预处理,并最终将客户端请求的被处理结果发送到收发单元1。\n本发明所述的用于游戏的网络服务器的各单元设置了一个具有具体操作功能的线程池部分,现举调配单元的线程池为例进行具体说明:当有客户端请求的时候,调配单元会从线程池选择一个空闲的线程对客户端请求进行处理,当线程池没有线程的时候,它会根据当前计算机负载情况动态增加新的线程来处理,另一发面,在没有客户端请求或客户端请求很少的时候,所述线程池会自动销毁一些线程,以此来释放资源,提高本发明所述的用于游戏的网络服务器的利用率。\n关于线程的说明,所述线程可以设定优先级,高优先级的线程可以安排在低优先级线程之前完成,一个应用程序可以通过使用线程中的方法来设置线程的优先级大小。一旦线程调用了开始运行方法,线程就可能处于一直运行的状态,也可能不在运行,这是因为客户端请求由于优先级等级或调度的问题,而使得线程有不同的状态。\n本发明所述的一种用于游戏的网络服务器系统对客户端请求的具体处理将在处理单元11中进行,处理单元11将对客户端请求的格式进行具体的解析并进行相应的处理。处理单元11的位置是透明的,可以在本地计算机或者同一服务器组里面,也可以在互联网上的其他计算机上;如果是在互联网上的其它计算机上,则可以通过远程调用来实现。\n如附图5所示,是本发明所述一种用于游戏的网络服务器系统中处理单元的第一种工作原理图。所述处理单元包括预处理单元10和处理单元11。经过过滤分类的客户端请求进入到处理单元时,首先由请求预处理单元10接收来自系统调配单元2发送的经过过滤分类的客户请求,判断其是可以在本地处理的请求还是可以在远程处理的客户端请求,如果是需要在本地进行处理的客户端请求,则将该客户端请求处理成需要本地计算机处理的请求,并将其发送给处理单元11,所述本地处理单元11中的插件15对客户端请求进行具体的符合该游戏规则和程序的处理;随后所述处理单元11将客户端请求的处理结果发送到收发单元1以返回给客户请求端。\n如附图6所示,是本发明所述一种用于游戏的网络服务器系统中处理单元的第二种工作原理图。所述处理单元包括预处理单元10和处理单元11;所述预处理单元10进一步地包括请求预处理子单元12和结果预处理子单元7;所述处理单元进一步地包括本地处理子单元13和远程处理子单元14。经过过滤分类的客户端请求进入到处理单元时,首先由请求预处理子单元12接收来自系统调配单元2发送的经过过滤分类的客户请求,判断其是可以在本地处理的请求还是可以在远程处理的客户端请求,如果是需要在本地进行处理的客户端请求,则将该客户端请求处理成需要本地计算机处理的请求,并将其发送给本地处理子单元13,所述本地处理子单元13中的插件15a对客户端请求进行具体的符合该游戏规则和程序的处理;如果是需要在远程进行处理的客户端请求,则将该客户端请求处理成需要在远程计算机处理的请求,并将其发送给远程处理子单元14,所述远程处理子单元14中的插件15b对客户端请求进行具体的符合该游戏规则和程序的处理;本地处理子单元13和远程处理子单元14对其进行处理后分别将远程处理结果和本地处理结果发送给结果预处理子单元7,随后所述结果预处理单元7将客户端请求的处理结果发送到收发单元1以返回给客户端。\n所述处理单元1是整个服务器中最为关键的部分,主要原因在于,在远程处理中需要涉及到RPC,而且由于远程处理有一定的速度延迟,所有必须考虑到RPC的效率问题。请求预处理子单元12负责把客户端请求传输到相应的处理单元,结果预处理子单元7负责把处理结果和附加信息编成结果序列发送出去。\n特别地,对于本发明所述的一种用于游戏的网络服务器系统中,能够支持具有不同插件的不同游戏,传统的游戏网络服务器在加载不同的游戏的时候,需要重新提供新的服务器的程序以应付新的游戏的不同需要,而在本发明中只需提供不同的游戏所需要的插件即可,因为插件的功能在服务器中是最关键的,所有的游戏只需提供本游戏所特有的插件,就可以在本服务器上进行该游戏的运行。也就是说,插件功能是应用程序功能的一种扩展,就象Windows的DLL一样,允许为DocBook添加原来主程序没有的功能,却不用修改主程序。所以本发明所述的一种用于游戏的网络服务器系统,允许任何一种类型的游戏为自己建立或分发一个插件,或者以其他的方式获得适合的一个插件。\n本发明所述的一种用于游戏的网络服务器系统,并不仅限于说明书和实施方式中所列运用,它完全可以被使用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般性概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备、装置和这里示出与描述的图示示例。
法律信息
- 2007-03-21
- 2005-02-23
- 2004-12-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
1998-12-02
|
1998-04-23
| | |
2
| |
2002-11-06
|
2000-10-06
| | |
3
| |
2001-06-06
|
1999-02-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |