专利名称:一种管理多客户端访问的方法和装置的制作方法
技术领域:
本发明涉及变电站技术领域,具体涉及一种管理多客户端访问的方法和装置。
背景技术:
国际电工委员会(International Electro technical Commission)制定的IEC61850标准,已经成为变电站通信网络和系统的国际标准。客户/服务器通信模型是IEC61850标准提供的设备间建立和保持连接的机制,以及实现访问控制的机制。一个物理装置可包含一个或多个服务器,一个服务器可为多个客户端提供服务,服务器包含的内容被定义为可视的和可访问的。为了保障变电站系统的有序和高效运行,有必要在包含服务器的物理装置端,对 到访的客户端进行管理。目前,对客户端的管理有以下几种方式第一种方式,是服务器为每一个访问的客户端提供服务。该种方式实现起来简单,但需要为每一个访问的客户端分配线程和内存资源,在客户端断开连接的时候又需要释放这些资源,服务器系统容易产生内存碎片。另外,这种方式的安全性很差,在客户不断的发起连接时,系统的资源容易耗尽,导致系统崩溃。同时,由于线程和内存等系统资源的分配和销毁需要一定的系统开销,所以这种方式的效率也很低。第二种方式,是在第一种方式的基础上限制同时到访的客户端数量。这种方式避免了因资源耗尽而导致的系统崩溃,提高了系统的安全性,但是系统仍然容易产生内存碎片,效率仍然很低,并且在到访的客户端数量达到限制时,会出现拒绝服务的问题。第三种方式,是在系统初始化的时候预分配一定数量的服务线程和内存资源。这种方式限定了同时到访客户端的最大数量,安全性较高。同时不会产生内存碎片,效率也较高。但是对同时到访客户端的最大允许数量不好衡量,如果数量定得太小,容易出现拒绝服务,客户端得不到及时有效的服务;如果数量定得太大,又容易造成系统资源大量浪费。以上几种方式,均存在一定的缺陷,不能对访问的多个客户端进行有效的管理。
发明内容
本发明实施例提供一种管理多客户端访问的方法和装置,以便对访问服务器的多个客户端进行更加有效的管理。一种管理多客户端访问的方法,包括预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识;收到客户端的接入请求时,根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端;在判断为允许接入时,启动所述服务线程标识表示的服务线程。一种管理多客户端访问的装置,该装置是采用国际电工委员会IEC 61850标准的装置,该装置包括
获取模块,用于获取每一个允许访问的客户端的网际协议IP地址;分配模块,用于为每一个允许访问的客户端分配服务线程标识;接收模块,用于接收客户端的接入请求,该接入请求携带所述客户端的IP地址;判断模块,用于根据所述客户端的IP地址判断是否允许接入所述客户端;接入模块,用于在所述判读模块判断为允许接入时,启动所述服务线程标识表示的服务线程。
本发明实施例采用预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识,在接收客户端的接入请求时,根据客户端的IP地址判断是否允许客户端接入的技术方案;采用该技术方案,只有被允许的客户端才能访问IEC61850装置,安全性高;并且,可以避免线程和内存资源浪费,可以避免生成内存碎片,可以提高服务器系统的效率;从而,可以对访问服务器的多个客户端进行更加有效的管理。
图I是本发明实施例提供的管理多客户端访问的方法的流程图;图2是本发明实施例提供的管理多客户端访问的装置的逻辑结构图。
具体实施例方式本发明实施例提供一种管理多客户端访问的方法,包括预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识;接收客户端的接入请求,该接入请求携带所述客户端的IP地址;根据所述客户端的IP地址判断是否允许所述客户端接入;在判断为允许时,启动为所述客户端分配的服务线程。采用本发明实施例方法,可以对访问服务器的多个客户端进行更加有效的管理。本发明实施例还提供相应的装置。以下分别进行详细说明。实施例一、请参考图1,本发明实施例提供一种管理多客户端访问的方法,包括101、预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识。本发明实施例中,IEC 61850装置可以包含一个以上服务器,该服务器的操作系统按照多线程方式运作,所说的多线程至少包括一个主线程,还可以包括一个以上服务线程。所说的预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识的操作可以由主线程执行。其中所说的允许访问的客户端是指需要接入服务器、且被服务器允许访问的客户端,可以由操作人员根据实际情况人工确定,或者也可以由IEC 61850装置根据预设的规则自行确定。本实施例中,IEC 61850装置的服务器可以通过多种方式预先获取每一个允许访问的客户端的网际协议IP地址。例如,可以把每一个允许访问IEC 61850装置的客户端的IP地址配置到IEC 61850装置的“允许访问IP配置表”中,使服务器通过读取所说的“允许访问IP配置表”来获取允许访问的客户端的IP地址。该配置操作可以通过前端配置工具,或手动修改配置文件实现。
当IEC 61850装置初始化的时候,服务器可以根据“允许访问IP配置表”为每一个允许访问的客户端分配客户端标识。所说的客户端标识至少包括为该客户端分配的服务线程的服务线程标识(ID),还可以包括该客户端的通信状态标识,当然,客户端IP地址也可以视为客户端标识。IEC 61850装置的服务器可以创建一个“客户端标识队列”来存储客户端标识,“客户端标识队列”中可以按照列表方式存储每一个允许访问的客户端的IP地址,以及对应存储为该客户端分配的服务线程标识以及服务状态标识。所说的服务线程ID是服务器识别服务线程的唯一标志。服务器可以为每个客户端分配一个提供服务的线程,称为服务线程。需要说明的是,在本初始化步骤,IEC 61850装置仅仅分配服务线程标识给客户端,而不分配实际的服务线程和内存资源。事实上,服务线程和内存资源将在后续客户端首次接入服务器时,给予分配;分配后,即使客户端断开连接,此服务线程也一直存在;直到IEC 61850装置再次初始化。所说的通信状态标识用于表示客户端当前的通信情况,该通信情况可以包括以下四种状态(I)未接入状态客户端未曾访问,此时服务线程无效。(2)通信正常状态客户端已接入,正在进行正常的服务请求。(3)通信断开状态客户端主动断开连接,服务器系统将把服务线程挂起,停止服务。(4)通信故障状态通信出现异常情况。如客户端未主动断开连接,但系统长时间没有收到客户端的服务请求。
IEC 61850装置可以采用四个不同的字符或数字来标识以上四种状态。102、收到客户端的接入请求时,根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端。服务器通过创建服务器套接字,并持续监听该套接字,来接收客户端发出的接入请求。该接入请求中携带客户端的IP地址。由于服务器已经预先获取了每一个允许访问的客户端的网际协议IP地址,因此,服务器可以根据IP地址来判断当前发出接入请求的客户端是否是允许接入的客户端。具体的,服务器可以扫描“客户端标识队列”,将所述客户端的IP地址与所述客户端标识队列进行比较,查看其中是否存储有与当前发出接入请求的客户端的IP地址相匹配的IP地址,如果有,则说明允许接入该客户端,如果没有,说明不允许接入该客户端。所说的相匹配通常可以是指相同。当判断为不允许接入所述客户端时,直接拒绝该客户端接入,并发送“接入错误”的响应报文给客户端即可。103、在判断为允许接入时,启动所述服务线程标识表示的服务线程。当服务器判断当前发出接入请求的客户端是允许接入的客户端时,可以通过启动为所述客户端分配的、所述服务线程标识表示的服务线程,来接入所述客户端,具体过程如下服务器判断允许接入时,首先从所述客户端标识队列中获取为所述客户端分配的服务线程标识。然后,进一步检查该服务线程标识是否有效。如果该服务线程标识无效,表示此客户端是第一次接入,服务器需要为此客户端分配服务线程和内存资源,该新分配的服务线程由预先分配给客户端的服务线程ID来标识。如果该服务线程标识有效,则表示此客户端曾经接入,服务器无需重新分配服务线程和内存资源,只需要将对应的服务线程与为该客户端创建的通信套接字重新绑定,对一些相关变量的重新初始化。其中,服务器可以通过识别该服务线程标识对应的通信状态标识来检查该服务线程是否有效,例如,若服务线程标识表示的是未接入状态,则说明该服务线程标识无效,否则,说明该服务线程标识有效。最后,服务器启动为所述客户端分配的服务线程,把客户端的接入请求交给此服务线程处理,实现接入该客户端;后续,客户端的其它服务请求都交由该服务线程处理;月艮务器的主线程则继续监听套接字,检测是否有新的客户端发出接入请求。综上,本发明实施例提供了一种管理多客户端访问的方法,该方法采用预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识,在接收客户端的接入请求时,根据客户端的IP地址判断是否允许接入客户端的技术方案;采用该技术方案,只有被允许的客户端才能访问IEC61850装置,安全性较高;服务器只在客户端首次请求接入的时候进行服务线程和内存资源的分配工作,如果被允许的客户端一直没有发出接入请求,则一直不会分配服务线程和内存资源,杜绝了资源浪费;首次接入时分配的服务线程和内存资源会一直存在,在客户端再次接入时,只是通信套接字的重新绑定和一些变量的重新初始化工作,避免了客户端反复接入、断开时发生的线程和内存资源分配、销毁的过程,从而提高系统工作效率,并避免生成内存碎片。实施例二、请参考图2,本发明实施例还提供一种管理多客户端访问的装置,该装置是采用国际电工委员会IEC 61850标准的装置,该装置包括获取模块201,用于获取每一个允许访问的客户端的网际协议IP地址;分配模块202,用于为每一个允许访问的客户端分配服务线程标识;接收模块203,用于接收客户端的接入请求,该接入请求携带所述客户端的IP地址;判断模块204,用于根据所述客户端的IP地址判断是否允许接入所述客户端;接入模块205,用于在所述判读模块判断为允许接入时,启动所述服务线程标识表示的服务线程。在优选的实施例中,所述获取模块201,具体可以用于从预先配置的允许访问IP配置表中读取每一个允许访问的客户端的网际协议IP地址,所述允许访问IP配置表中存储有允许访问的客户端的IP地址。在优选的实施例中,所述装置还可以包括创建模块;此时,所述分配模块,还用于为每一个允许访问的客户端分配通信状态标识;所述创建模块,则用于创建客户端标识队列,所述客户端标识队列中存储有允许访问的客户端的IP地址以及为该客户端分配的服务线程标识和通信状态标识。在优选的实施例中,所述判断模块204可以包括比较单元,用于将所述客户端的IP地址与所述客户端标识队列进行比较;判断单元,用于在所述客户端标识队列中存储有与所述客户端的IP地址相同的 IP地址时,判断为允许接入所述客户端。在优选的实施例中,
所述判断模块,还用于进一步判断所述服务线程标识是否有效;所述分配模块,还用于若所述服务线程标识无效,则为所述客户端分配服务线程与内存资源,该分配的服务线程由所述服务线程标识来表示;所述接入模块包括绑定单元和启动单元;所述绑定单元,用于若所述服务线程标识有效,则将该有效的服务线程标识所表示的服务线程与预先创建的通信套接字进行绑定;所述启动单元,用于启动所述服务线程标识表示的服务线程。综上,本发明实施例提供了一种管理多客户端访问的装置,该装置可以预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识,在接收客户端的接入请求时,根据客户端的IP地址判断是否允许接入客户端;该装置可以包含多个服务器,采用该装置,只有被允许的客户端才能访问IEC61850装置,安 全性较高;服务器只在客户端首次请求接入的时候进行服务线程和内存资源的分配工作,如果被允许的客户端一直没有发出接入请求,则一直不会分配服务线程和内存资源,杜绝了资源浪费;首次接入时分配的服务线程和内存资源会一直存在,在客户端再次接入时,只是通信套接字的重新绑定和一些变量的重新初始化工作,避免了客户端反复接入、断开时发生的线程和内存资源分配、销毁的过程,从而提高系统工作效率,并避免生成内存碎片。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括只读存储器、随机读取存储器、磁盘或光盘等。以上对本发明实施例所提供的管理多客户端访问的方法以及装置进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1.一种管理多客户端访问的方法,其特征在于,包括 预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识; 收到客户端的接入请求时,根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端; 在判断为允许接入时,启动所述服务线程标识表示的服务线程。
2.根据权利要求I所述的方法,其特征在于,所述的获取每一个允许访问的客户端的网际协议IP地址包括 从预先配置的允许访问IP配置表中读取每一个允许访问的客户端的IP地址,所述允许访问IP配置表中存储有允许访问的客户端的IP地址。
3.根据权利要求I所述的方法,其特征在于,所述的根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端之前还包括 为每一个允许访问的客户端分配通信状态标识; 创建客户端标识队列,所述客户端标识队列中存储有允许访问的客户端的IP地址以及为该客户端分配的服务线程标识和通信状态标识。
4.根据权利要求3所述的方法,其特征在于,所述的根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端包括 将所述客户端的IP地址与所述客户端标识队列进行比较; 在所述客户端标识队列中存储有与所述客户端的IP地址相同的IP地址时,判断为允许接入所述客户端。
5.根据权利要求1、2、3或4所述的方法,其特征在于,所述的在判断为允许接入时,启动所述服务线程标识表示的服务线程包括 进一步判断所述服务线程标识是否有效; 若所述服务线程标识无效,则为所述客户端分配服务线程与内存资源,该分配的服务线程由所述服务线程标识来表示; 若所述服务线程标识有效,则将该有效的服务线程标识所表示的服务线程与预先创建的通信套接字进行绑定; 然后启动所述服务线程标识表示的服务线程。
6.一种管理多客户端访问的装置,该装置是采用国际电工委员会IEC61850标准的装置,其特征在于,该装置包括 获取模块,用于获取每一个允许访问的客户端的网际协议IP地址; 分配模块,用于为每一个允许访问的客户端分配服务线程标识; 接收模块,用于接收客户端的接入请求,该接入请求携带所述客户端的IP地址; 判断模块,用于根据所述客户端的IP地址判断是否允许接入所述客户端; 接入模块,用于在所述判读模块判断为允许接入时,启动所述服务线程标识表示的服务线程。
7.根据权利要求6所述的装置,其特征在于 所述获取模块,具体用于从预先配置的允许访问IP配置表中读取每一个允许访问的客户端的网际协议IP地址,所述允许访问IP配置表中存储有允许访问的客户端的IP地址。
8.根据权利要求6所述的装置,其特征在于,还包括创建模块; 所述分配模块,还用于为每一个允许访问的客户端分配通信状态标识; 所述创建模块,用于创建客户端标识队列,所述客户端标识队列中存储有允许访问的客户端的IP地址以及为该客户端分配的服务线程标识和通信状态标识。
9.根据权利要求8所述的装置,其特征在于,所述判断模块包括 比较单元,用于将所述客户端的IP地址与所述客户端标识队列进行比较; 判断单元,用于在所述客户端标识队列中存储有与所述客户端的IP地址相同的IP地址时,判断为允许接入所述客户端。
10.根据权利要求6、7、8或9所述的装置,其特征在于 所述判断单元,还用于进一步判断所述服务线程标识是否有效; 所述分配模块,还用于若所述服务线程标识无效,则为所述客户端分配服务线程与内存资源,该分配的服务线程由所述服务线程标识来表示; 所述接入模块包括绑定单元和启动单元; 所述绑定单元,用于若所述服务线程标识有效,则将该有效的服务线程标识所表示的服务线程与预先创建的通信套接字进行绑定; 所述启动单元,用于启动所述服务线程标识表示的服务线程。
全文摘要
本发明实施例公开了一种管理多客户端访问的方法,包括预先获取每一个允许访问的客户端的网际协议IP地址,并为每一个允许访问的客户端分配服务线程标识;收到客户端的接入请求时,根据所述接入请求中携带的所述客户端的IP地址判断是否允许接入所述客户端;在判断为允许接入时,启动所述服务线程标识表示的服务线程。本发明实施例还提供相应的装置。本发明技术方案,可以避免线程和内存资源浪费,可以避免生成内存碎片,可以提高服务器系统的效率,可以对访问服务器的多个客户端进行更加有效的管理,并且安全性高。
文档编号H04L12/24GK102710452SQ20121021319
公开日2012年10月3日 申请日期2012年6月26日 优先权日2012年6月26日
发明者张应榜, 张进军, 梁玉生, 胡波, 顾莉娜 申请人:深圳市华力特电气股份有限公司