一种并发请求处理方法、装置及服务器的制作方法

文档序号:7951167阅读:175来源:国知局
专利名称:一种并发请求处理方法、装置及服务器的制作方法
技术领域
本发明属于电力系统通信技术领域,尤其涉及一种并发请求处理方法、装置及服务器。
背景技术
在电力系统的通信调度中,对于并发的客户端业务请求,现有服务器端通常采取的策略是为每一个发起请求的客户端分配一个单独的线程,且该线程一直到该客户端与服务器端停止通信后才能被回收,因此,要提高系统的并发业务处理能力,就必须在服务器端与客户端之间创建大量的线程,而通常系统中已创建的大量线程利用率极低,大大耗费了有限的系统资源,同时,随着线程数量的增加,在不同线程间切换的行为也提高了系统的 CPU占用率。

发明内容
本发明实施例的目的在于提供一种并发请求处理方法,旨在解决现有的电力系统在通信调度时为每个发起请求的客户端分配一个单独的线程,导致系统资源浪费的问题。本发明实施例是这样实现的,一种并发请求处理方法,所述方法包括当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端;分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。本发明实施例的另一目的在于提供一种并发请求处理装置,所述装置包括客户端号生成单元,用于当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端。信息表生成单元,用于分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;业务数据处理单元,用于解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。本发明实施例的另一目的在于提供一种服务器,所述服务器包括如上所述的并发请求处理装置。本发明实施例根据每个发起业务请求的客户端在请求中所携带的套接字来为各个客户端赋予不同的客户端号,并为每个客户端建立与该客户端进行通信的规约信息表, 从而在并发的业务请求处理中将不同的客户端加以区分,实现了对多个请求的并发处理。


图1是本发明第一实施例提供的并发请求处理系统的系统结构框图;图2是本发明第二实施例提供的并发请求处理方法的实现流程图;图3是本发明第三实施例提供的并发请求处理方法的实现流程图;图4是本发明第四实施例提供的并发请求处理方法的实现流程图。图5是本发明第五实施例提供的并发请求处理装置的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例根据每个发起业务请求的客户端在请求中所携带的套接字来为各个客户端赋予不同的客户端号,并为每个客户端建立与该客户端进行通信的规约信息表, 从而在并发的业务请求处理中将不同的客户端加以区分,实现了对多个请求的并发处理。图1示出了本发明第一实施例提供的并发请求处理系统的系统结构框图,为了便于说明,仅示出了与本实施例相关的部分。参照图1,该并发请求处理系统可以应用于电力系统中,用于电力系统的通信调度、控制,其包括服务器11,以及多个与服务器11连接的客户端12。其中,客户端12通过 TCP/IP通信协议与服务器11建立连接并进行通信,向服务器11发起业务请求,且该行为可以由一个或者多个客户端12同时向服务器11发起。服务器11在接收到客户端12的业务请求后,基于IEC 60870-5-104协议对相关的业务请求进行解析,并在业务应用层面将发起请求的不同客户端12进行区分,通过电力系统中相应的传感器子系统13获取到客户端 12所请求的相关业务数据后,根据每个客户端的IEC 60870-5-104协议规约信息对业务数据进行封装,再通过TCP/IP协议返回给各个客户端12。上述关于并发请求处理系统的详细描述将在后续实施例中进行说明,在此不再赘述。图2示出了本发明第二实施例提供的并发请求处理方法的实现流程,其执行主体为并发请求处理系统中的服务器,其具体实现流程详述如下在步骤S201中,当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端。由于针对每个客户端,其发送的请求数据包中的套接字是唯一的,因此,通过关联该套接字而生成的客户端号也是与该客户端一一对应的,用于区别于其他客户端,以实现对业务请求的并发处理。在步骤S202中,分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息。当接收到来自一客户端的请求数据包后,基于IEC 60870-5-104协议生成该客户端的信息表,同时,该信息表是与其所归属的客户端的客户端号相关联的,以区别于其他客户端的信息表。在本实施例中,信息表按照IEC 60870-5-104协议中的相关规约记录了与客户端进行通信所需要的数据帧信息,例如发送帧数、接收帧数等等。通过为每个客户端建立相应的信息表,在对该客户端进行业务请求处理的时候,即可按照该信息表中记录的数据帧信息来处理相应的业务数据请求。在步骤S203中,解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。本实施例通过不同的客户端号来对并发请求的客户端进行区分,并通过建立每个客户端各自的信息表来实现一个线程异步并发地处理多个客户端的业务请求,避免了多线程带来的瓶颈问题,提高了服务器端的并发业务请求处理能力。作为本发明的一个实施例,在步骤S201之前,还需要接收来自客户端的连接请求并进行相关的判定,图3示出了本发明第三实施例提供的并发请求处理方法用于建立与客户端连接的实现流程,详述如下在步骤S301中,接收来自一个或多个客户端的连接请求。在客户端发送给服务器的连接请求中,包含了服务器用于接收客户端数据的IP 地址和端口,以便客户端发出的连接请求能够准确地传送到希望送达的服务器,且基于IEC 60870-5-104协议,其端口号固定,为M04。在步骤S302中,判断每个客户端的IP地址是否位于预设的IP范围内,是则建立与该客户端的连接,否则不建立与该客户端的连接,终止执行步骤。在本实施例中,服务器根据其预先制定的安全策略来对每个发起连接请求的客户进行IP地址判断,判断其IP地址是否处于安全策略所预设的IP范围内,是则建立起与客户端的连接,并执行步骤S201,否则不建立与该客户端的连接。在步骤S303中,当与一个或多个客户端建立连接后,通过select函数接收来自每个建立连接的客户端的请求数据包。在本实施例中,服务器在与客户端建立起连接之后,基于TCP/IP协议,通过 select函数来实现多路复用的输入/输出,此时,只需要单个线程即可同时接收来自多个客户端发送的请求数据包,实现业务请求的并发接收。需要说明的是,接收请求数据包的动作必须在指定时间内完成,该指定时间根据客户端数据包发送的间隔时间设置,例如,若客户端数据包发送的间隔时间为200ms,则接收请求数据包的时间必须小于200ms,以便不影响对下一请求数据包的接收动作。图4示出了本发明第四实施例提供的并发请求处理方法的实现流程,本实施例是对本发明第二实施例步骤S203的细化,其具体实现流程如下在步骤S401中,从请求数据包中解析出业务功能报文,并根据业务功能报文中的业务功能码获取相关的业务数据。上述步骤的执行基于IEC60870-5-104协议规约,其规定了相关业务功能的业务功能码,因此,通过在业务功能报文中提取出业务功能码,即可根据该业务功能码由相应的传感器子系统中获取到所需的业务数据。作为本发明的一个实施例,在步骤S401之前,首先需要判断当前是否有紧急的业务数据需要发送,例如一些突发的通信状况,如线路故障、电流过流等,如果有,则在处理此次业务请求之前,先将上述状况相关的业务数据发送给客户端。在步骤S402中,根据与该客户端的客户端号关联的信息表,对所述业务数据进行处理后发送至客户端。当获取到所需的业务数据后,即按照该客户端的信息表来对业务数据进行组帧封装,并发送至客户端。在步骤S403中,根据下一次业务请求的规约信息,对信息表进行更新后保存。在本实施例中,每个客户端的信息表均只在该客户端首次连接服务器端时建立, 建立之后在每次业务请求过程中,只需要更新下一次业务请求时所需要的规约信息即可。 因此,在接收到来自一客户端的请求数据包后,可以首先判断该客户端是否为首次连接,是则执行步骤S202,否则只需要从该客户端已建立的信息表中读取出之前保存的相关规约信息即可。在步骤S404中,当接收到客户端的断开连接请求时,释放连接并删除与该客户端的客户端号关联的信息表。作为本发明的一个实施例,同时可以对根据该客户端请求数据包中的套接字而生成的客户端号进行删除,以节约系统资源。图5示出了本发明第五实施例提供的并发请求处理装置的结构,为了便于说明, 仅示出了与本实施例相关的部分。参照图5,该并发请求处理装置运行于如图1所示的并发请求处理系统的服务器中,可以是运行于服务器的硬件单元、软件单元或者软硬件结合的单元,其具体包括客户端号生成单元51,当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端。信息表生成单元52,分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;业务数据处理单元53,解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。其中,业务数据处理单元53具体包括业务数据获取单元531,从请求数据包中解析出业务功能报文,并根据业务功能报文中的业务功能码获取相关的业务数据;业务数据发送单元532,根据与该客户端的客户端号关联的信息表,对所述业务数据进行处理后发送至该客户端;信息表更新单元533,根据下一次业务请求的规约信息,对信息表进行更新后保存;信息表读取单元534,当接收到下一个请求数据包时,读取更新后的信息表以进行业务数据处理。所述装置还包括连接请求接收单元M,接收来自一个或多个客户端的连接请求; 判断单元55,判断每个客户端的IP地址是否位于预设的IP范围内,是则建立与该客户端的连接,否则终止执行步骤;连接建立单元56,通过select函数接收来自每个建立连接的客户端的请求数据包。以及信息表删除单元57,当接收到客户端的断开连接请求时,释放连接并删除与该客户端的客户端号关联的信息表。
本发明实施例基于IEC 60870-5-104协议,根据每个发起业务请求的客户端在请求中所携带的异步套接字来为各个客户端赋予不同的客户端号,并为每个客户端建立各自的有关IEC 60870-5-104协议规约的信息表,从而在并发的业务请求处理中将不同的客户端加以区分,实现了对多个请求的并发处理。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种并发请求处理方法,其特征在于,所述方法包括当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端;分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。
2.如权利要求1所述的方法,其特征在于,在所述根据每个请求数据包中的套接字生成相应的客户端号的步骤之前,所述方法还包括接收来自一个或多个客户端的连接请求;判断每个客户端的IP地址是否位于预设的IP范围内,是则建立与该客户端的连接,否则终止执行步骤;通过select函数接收来自每个建立连接的客户端的请求数据包。
3.如权利要求1所述的方法,其特征在于,所述解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理的步骤具体包括从请求数据包中解析出业务功能报文,并根据业务功能报文中的业务功能码获取相关的业务数据;根据与该客户端的客户端号关联的信息表,对所述业务数据进行处理后发送至该客户端;根据下一次业务请求的规约信息,对信息表进行更新后保存。
4.如权利要求3所述的方法,其特征在于,在所述根据下一次业务请求的规约信息,对信息表进行更新后保存的步骤之后,所述方法还包括当接收到下一个请求数据包时,读取更新后的信息表以进行业务数据处理。
5.如权利要求1所述的方法,其特征在于,在解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理的步骤之后,所述方法还包括当接收到客户端的断开连接请求时,释放连接并删除与该客户端的客户端号关联的信息表。
6.一种并发请求处理装置,其特征在于,所述装置包括客户端号生成单元,用于当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号,所述客户端号用于唯一标识一客户端。信息表生成单元,用于分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;业务数据处理单元,用于解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。
7.如权利要求6所述的装置,其特征在于,所述装置还包括连接请求接收单元,用于接收来自一个或多个客户端的连接请求; 判断单元,用于判断每个客户端的IP地址是否位于预设的IP范围内,是则建立与该客户端的连接,否则终止执行步骤;连接建立单元,用于通过select函数接收来自每个建立连接的客户端的请求数据包。
8.如权利要求6所述的装置,其特征在于,所述业务数据处理单元包括业务数据获取单元,用于从请求数据包中解析出业务功能报文,并根据业务功能报文中的业务功能码获取相关的业务数据;业务数据发送单元,用于根据与该客户端的客户端号关联的信息表,对所述业务数据进行处理后发送至该客户端;信息表更新单元,用于根据下一次业务请求的规约信息,对信息表进行更新后保存; 信息表读取单元,用于当接收到下一个请求数据包时,读取更新后的信息表以进行业务数据处理。
9.如权利要求6所述的装置,其特征在于,所述装置还包括信息表删除单元,用于当接收到客户端的断开连接请求时,释放连接并删除与该客户端的客户端号关联的信息表。
10.一种服务器,其特征在于,所述服务器包括如权利要求6至9任一项所述的并发请求处理装置。
全文摘要
本发明适用于电力系统通信技术领域,提供了一种并发请求处理方法、装置及服务器,所述方法包括当接收到来自一个或多个客户端的请求数据包时,根据每个请求数据包中的套接字生成相应的客户端号;分别生成每个客户端的信息表,所述信息表与该客户端的客户端号相关联,用于记录与该客户端通信的规约信息;解析每个客户端的请求数据包,并根据与该客户端的客户端号关联的信息表分别进行相应的业务数据处理。本发明根据每个发起业务请求的客户端在请求中所携带的套接字来为各个客户端赋予不同的客户端号,并为每个客户端建立与该客户端进行通信的规约信息表,从而在并发的业务请求处理中将不同的客户端加以区分,实现了对多个请求的并发处理。
文档编号H04L29/08GK102510398SQ201110329769
公开日2012年6月20日 申请日期2011年10月26日 优先权日2011年10月26日
发明者马建春 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1