一种服务器的实现方法以及服务器系统技术方案

技术编号:3505595 阅读:170 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种服务器的实现方法,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括:数据通信模块与各个客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;逻辑处理模块读取所述共享存储空间中各个客户端的通信数据,对通信数据进行逻辑处理。本发明专利技术还提供了一种服务器系统,应用本发明专利技术能简化服务器软件的开发进程。

【技术实现步骤摘要】

本专利技术涉及服务器技术,特别涉及服务器的实现方法以及服务器系统
技术介绍
目前,服务器功能的实现基本包括两部分数据通信功能和逻辑处理功能,在现有技术中,数据通信功能和逻辑处理功能集成在同一服务器模块的服务器软件中,当服务器提供服务时,运行该服务器模块的服务器软件,从而产生数据通信线程和逻辑处理线程来分别实现数据通信功能和逻辑处理功能。其中,数据通信功能用于与客户端建立连接、发送/接收数据等,逻辑处理功能用于进行协议处理,其主要作用是对客户端发来的服务请求进行分析和协议处理,并构造服务响应返回给客户端。图1为现有技术中服务器系统的组成结构示意图。如图1所示,服务器中包括用于提供服务器功能的服务器模块,该服务器模块连接客户端。当服务器模块启动时,产生服务器进程,该服务器进程包括数据通信线程和逻辑处理线程。其中,数据通信线程与客户端建立连接、接收客户端的服务请求、发送服务响应,当数据通信线程接收到服务请求时,将服务请求转发给逻辑处理线程;该逻辑处理线程对服务请求进行协议处理并构造服务响应,返回服务响应给数据通信线程,该数据通信线程再把服务响应返回给客户端。但是,现有的数据通信功能与逻辑处理功能集成在同一服务器模块中,二者之间属直接耦合的关系,当数据通信功能和逻辑处理功能中任一者的代码被修改,就可能要对另一者的代码进行改动,并且数据通信功能和逻辑处理功能的代码还将作为整体一起重新编译。此外,服务器中通常要设置多个服务器模块,各个服务器模块的数据通信功能几乎相同,而各个服务器模块的差异主要在于各自的逻辑处理功能,服务器模块能为客户端提供何种服务完全取决于其中的逻辑处理功能。当服务器模块的数据通信功能发生变化时,只能对各个服务器模块的数据通信功能代码逐一进行修改。所以,如果要开发新的服务器模块以提供新的服务,不但要编写新的逻辑处理功能代码,而且还要开发新的数据通信功能代码。这里,每一服务器功能对应自身的服务器模块,每一服务器模块对应自身的服务器软件,所谓编写数据通信功能代码或逻辑处理功能代码就是指编写服务器软件中数据通信功能或逻辑处理功能部分的代码。可见,现有的服务器实现技术中,逻辑处理功能和数据通信功能之间还未实现独立,因此二者中任何一方的改变都有可能引发另一方的修改,而且任何一方的改变还需要二者一起重新编译才能得到更新后的服务器软件。当在服务器中实现多种服务器功能即实现多套服务器软件时,上述问题将变得更为突出,不仅维护多套服务器软件的多套逻辑处理功能和数据通信功能代码的复杂度极高,而且当要在多套服务器软件的基础上扩展服务时,逻辑处理功能和数据通信功能代码的开发难度也相当大。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种服务器的实现方法,使服务器软件中的数据通信功能与逻辑处理模块功能相互独立,从而易于服务器的维护和扩展。本专利技术的另一主要目的在于提供一种服务器系统,使服务器功能更易于维护和扩展。为达到上述目的,本专利技术的技术方案是这样实现的本专利技术公开了一种服务器的实现方法,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括数据通信模块与各个客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;逻辑处理模块从所述共享存储空间读取各个客户端的通信数据,对通信数据进行逻辑处理。其中,所述通信数据包括通信状态和服务请求;所述数据通信模块与各个客户端建立连接并监控各个客户端的连接状态,接收来自客户端的服务请求并存储至所述共享存储空间,确定各个客户端的通信状态并存储到所述共享存储空间;所述逻辑处理模块读取所述共享存储空间中各个客户端的通信状态并根据该通信状态,分配或释放用于记录客户端连接状态的资源、或者从所述共享存储空间读取各个客户端的服务请求并对该服务请求进行协议处理。其中,该方法进一步包括所述逻辑处理模块进行协议处理后,确定当前协议处理状态并存储至所述共享存储空间,构造服务响应并存储至所述共享存储空间;所述数据通信模块从所述共享存储空间读取协议处理状态并根据该协议处理状态,从该共享存储空间读取服务响应并发送给对应的客户端、和/或释放自身与对应客户端之间的连接。其中,所述共享存储空间划分为发送区和接收区;所述数据通信模块在所述接收区存储各个客户端的通信状态和服务请求,从所述发送区读取协议处理状态和服务响应;所述逻辑处理模块在所述发送区存储所述协议处理状态和服务响应,从所述接收区读取所述通信状态和服务请求。其中,所述发送区进一步划分为用于存储客户端信息的控制信息区和用于存储服务响应的数据区;所述接收区进一步划分为用于存储客户端信息的控制信息区和用于存储服务请求的数据区;在发送区的控制信息区中,每一客户端信息用于指示协议处理状态;在接收区的控制信息区中,每一客户端信息用于指示通信状态。其中,所述数据通信模块的处理包括A1.创建或打开共享存储空间,开始实时监控客户端的连接状态; A2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤A3;A3.判断是否有客户端建立连接,如果有,则向自身创建或打开的共享存储空间中接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已建立连接,再执行步骤A4;否则直接执行步骤A4;A4.判断是否有客户端断开连接,如果有,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端已断开连接,再执行步骤A5;否则直接执行步骤A5;A5.判断是否接收到客户端的服务请求,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为接收到客户端服务请求,再执行步骤A6;否则直接执行步骤A6;A6.判断客户端的服务响应是否发送完毕,如果是,则向所述接收区的控制信息区存入客户端信息,该客户端信息指示的通信状态为客户端服务服务响应已发送完毕,再执行步骤A7;否则直接执行步骤A7;A7.判断自身创建或打开的共享存储空间中发送区的控制信息区是否为空,如果是,则返回步骤A2;否则依次读取该发送区的控制信息区内各个客户端信息,按各个客户端信息指示的协议处理状态确定是否从该发送区的数据区读取服务响应,并将所读取的各个客户端的服务响应发给各个客户端,再返回步骤A2;所述逻辑处理模块的处理包括B1.创建或打开共享存储空间;B2.判断是否终止服务,如果是,则释放自身创建或打开的共享存储空间,结束当前处理;否则执行步骤B3;B3.判断自身创建或打开的共享存储空间中接收区的控制信息区是否为空,如果是,则返回步骤B2;否则执行步骤B4;B4.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已建立连接,如果是,则为该客户端分配用于记录客户端连接状态的资源,执行步骤B8;否则执行B5;B5.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为客户端已断开连接,如果是,则释放为该客户端分配的用于记录客户端连接状态的资源,执行步骤B8;否则执行B6;B6.判断所述接收区的控制信息区的首个客户端信息指示的通信状态是否为接收到客户端服务请求,如果是,则从该接收区的数据区读取本文档来自技高网
...

【技术保护点】
一种服务器的实现方法,其特征在于,在服务器中设置存储单元、以及用于实现数据通信功能的数据通信模块和用于实现逻辑处理功能的逻辑处理模块,并在所述存储单元中为该数据通信模块和逻辑处理模块分配共享存储空间;该方法还包括:数据通信模块与各个 客户端进行通信,将各个客户端的通信数据存储至所述共享存储空间;逻辑处理模块从所述共享存储空间读取各个客户端的通信数据,对通信数据进行逻辑处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨滨
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利