一种终端在线状态监控方法及***
技术领域
本发明涉及终端管理技术领域,具体而言,涉及一种终端在线状态监控方法及***。
背景技术
tr069协议,即CPE广域网管理协议,它提供了对网络中家庭网络设备进行管理配置的通用框架和协议,用于从网络侧对家庭网络中的网关、路由器、机顶盒等设备进行远程集中管理。所谓tr069终端,即实现了该tr069协议的终端都可以称为tr069终端,例如实现了该tr069协议的家庭终端。
电信领域里,家庭终端在网的数目十分巨大,常常可以达到几十万、几百万甚至上千万的数目,而对于运营商来说,其又比较关心某一时刻家庭终端在线的数目,目前的网管***统计家庭终端在线数目的技术方案如下:
(1)终端上线后向网管服务器进行注册,网管服务器记录下其当前注册时间,当要统计在线数目时,就统计最近一段时间(例如:最近20分钟)向网管服务器注册过的终端数目。然而,采用这种方法统计出的终端数据误差很大,例如:终端1小时前上线注册,随后一直在线,此时该在线终端就无法被统计到;又或者,终端8分钟前上线注册,但5分钟后该终端就下线了,此时采样该方法就会将该离线终端统计为在线,从而造成误差。
(2)网管服务器按一定比例随机选取一定数目的终端,并实时统计这些终端的在线情况,然后按比例进行计算,统计出网络上终端的在线情况,采用该种方法也具有较大误差。
除此之外,目前还采用网管服务器与终端进行实时交互以获取其是否在线状态情况的方案,如图1所示,当ACS(Auto Configuration System,自动配置服务器,即网管服务器)要统计CPE(Customer premises equipment,用户驻地设备,即终端)在线情况时,实时与每个终端进行交互,收到终端的回复认为其在线,否则认为离线。当终端数目少时,采用该方案比较适用,但是,如果终端数目较多时,该方案就难以执行,原因如下:
网管服务器与终端交互,必须等待一段时间后,若收不到终端回复,才能认为该终端离线,通常这个等待时间设为5-10秒,这里假定设为5秒,当网络中有300万台终端时,假设实际有50%在线,网管服务器在1秒左右能收到在线终端的回复,另外还有50%离线,此时网管服务器统计出所有终端在线状态花费的总时间为:300万*(1+5)/2=900万秒=2500小时,也就是说单线程要花2500小时才能完成这些工作,按1000个线程并发计算,也至少需要花费2.5小时,并且这段时间内网管服务器基本上都不能用于处理其它任何事务,显然该方法效率较低。
发明内容
本发明的目的在于提供一种终端在线状态监控方法及***,其能够让运营商更快更准确地查询到终端的在线情况。
为了达到本发明的目的,本发明采用以下技术方案:
一种终端在线状态监控方法,包括:
终端每间隔一个预先设置的状态消息上报周期就向状态服务器上送携带用以唯一区分该终端的终端标识信息的状态上报消息;
状态服务器记录获取所述状态上报消息的时间信息,并将所述状态上报消息中携带的终端标识信息与对应的时间信息更新至状态信息数据库;
网管服务器发送状态信息查询消息至状态服务器,状态服务器依据所述状态信息查询消息查询状态信息数据库,统计出当前在线终端信息并将其发送至网管服务器。
优选地,在执行所有步骤之前,还包括:
终端向网管服务器发送状态参数注册请求;
网管服务器响应所述请求,设置所述终端的状态消息上报周期参数以及状态服务器地址参数,并将其发送至对应的终端。
优选地,状态服务器依据所述状态信息查询消息查询状态信息数据库并统计出当前在线终端信息的方法为:状态服务器查询状态信息数据库中在最近一段终端统计时间内的终端标识信息,并将其整理成当前在线终端信息,其中,所述终端统计时间为状态消息上报周期参数与预先设定的状态统计波动时间参数之和。
优选地,终端发送至状态服务器的状态上报消息为tr069格式或http格式消息。
优选地,在执行所有步骤之后,还包括:
网管服务器发送目标终端状态信息查询消息至状态服务器,状态服务器依据所述目标终端状态信息查询消息查询状态信息数据库,判断该目标终端是否在最近一段时间内是否向该状态服务器上报过状态上报消息,若否,则判断该目标中断离线,若是,则网管服务器发送http get消息至该目标终端,当该目标终端设备回复200ok反馈消息时,则不必再等待inform消息就判断该目标终端在线,若报超时,则判断该目标终端离线。
优选地,网管服务器发送至目标终端的http get消息携带错误的用户名/密码。
一种终端在线状态监控***,包括:
终端,用于每间隔一个预先设置的状态消息上报周期就向状态服务器上送携带用以唯一区分该终端的终端标识信息的状态上报消息;
状态服务器,用于记录获取所述状态上报消息的时间信息,并将所述状态上报消息中携带的终端标识信息与对应的时间信息更新至状态信息数据库;用于依据从网管服务器获取到的状态信息查询消息查询状态信息数据库,统计出当前在线终端信息并将其发送至网管服务器;
网管服务器,用于发送状态信息查询消息至状态服务器;用于从状态服务器获取统计出的当前在线终端信息。
优选地,所述终端还用于向网管服务器发送状态参数注册请求,网管服务器则响应所述请求,设置所述终端的状态消息上报周期参数以及状态服务器地址参数,并将其发送至对应的终端。
优选地,所述状态服务器依据所述状态信息查询消息查询状态信息数据库并统计出当前在线终端信息的方法为:状态服务器查询状态信息数据库中在最近一段终端统计时间内的终端标识信息,并将其整理成当前在线终端信息,其中,所述终端统计时间为状态消息上报周期参数与预先设定的状态统计波动时间参数之和。
优选地,所述终端发送至状态服务器的状态上报消息为tr069格式或http格式消息。
优选地,所述网管服务器还用于发送目标终端状态信息查询消息至状态服务器,状态服务器依据所述目标终端状态信息查询消息查询状态信息数据库,判断该目标终端是否在最近一段时间内是否向该状态服务器上报过状态上报消息,若否,则判断该目标中断离线,若是,则网管服务器发送http get消息至该目标终端,当该目标终端设备回复200 ok反馈消息时,则不必再等待inform消息就判断该目标终端在线,若报超时,则判断该目标终端离线。
优选地,网管服务器发送至目标终端的http get消息携带错误的用户名/密码。
通过上述本发明的技术方案可以看出,本发明利用tr069协议的扩展性,对终端的参数进行扩展,让在线的终端定时主动上报其状态。采用本发明,能够在很短的时间内准确的查询出当前在线终端信息。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是传统的网管服务器获取终端状态信息的流程示意图;
图2是本发明实施例提供的终端在线状态监控方法流程示意图;
图3是本发明实施例提供的终端在线状态监控***结构示意图;
图4是本发明实施例在线状态信息获取过程中的信息交互示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图2所示,本发明实施例提供的一种终端在线状态监控方法,包括如下步骤:
S103、终端每间隔一个预先设置的状态消息上报周期就向状态服务器上送携带用以唯一区分该终端的终端标识信息的状态上报消息;
S104、状态服务器记录获取所述状态上报消息的时间信息,并将所述状态上报消息中携带的终端标识信息与对应的时间信息更新至状态信息数据库;
S105、网管服务器发送状态信息查询消息至状态服务器,状态服务器依据所述状态信息查询消息查询状态信息数据库,统计出当前在线终端信息并将其发送至网管服务器。
优选实施方式下,在执行所有步骤之前,还包括:
S101、终端向网管服务器发送状态参数注册请求;
S102、网管服务器响应所述请求,设置所述终端的状态消息上报周期参数以及状态服务器地址参数,并将其发送至对应的终端。
在所述步骤S101以及S102中,让终端增加二个配置参数,所述参数为X_<VENDOR>_StatusServerAddress和X_<VENDOR>_StatusServerInterval,上述两个参数的值可以通过网管服务器来设置,第一个参数用来配置状态服务器的地址,第二个参数用来配置状态消息上报周期(即时间间隔);所述<VENDOR>参数表示厂商标志,在实际实施过程中,这些自定义参数须符合tr069协议规范。
在所述步骤S103中,终端发送至状态服务器的状态上报消息为tr069格式或http(HyperText Transfer Protocol,超文本传输协议)格式消息,从而可以大大节约网络流量和状态服务器的解析时间。
终端上电后,正常向网管服务器进行注册,同时向StatusServerAddress地址发一个状态上报消息,随后每隔一个StatusServerInterval时间就向StatusServerAddress地址发一个状态上报消息,消息内容只要包含终端标识信息即可,例如:所述终端标识信息为设备序列号,其为该终端的唯一标识,状态服务器不用回复收到的状态上报消息,并且,终端发送的状态上报消息都不必一定是tr069格式的,若所述消息为http格式消息也可。
在所述步骤S104中,状态服务器收到终端发来的状态上报消息后,记录下终端的终端标识信息(例如设备序列号)以及状态服务器记录获取所述状态上报消息的时间信息,之后将上述信息更新至状态信息数据库,在具体实施过程中,500万台终端的信息,150M内存就足够存储了,对于状态服务器接收到的不符合格式要求的的状态上报消息,则直接丢弃不予处理。在本发明的实施例中,状态服务器规定的合法的格式为tr069格式或http格式,当然,所述格式可以通过自定义予以自行规定,这里仅仅只是例举本发明的一优选实施例,并不用以限定本发明。
在所述步骤S105中,状态服务器依据所述状态信息查询消息查询状态信息数据库并统计出当前在线终端信息的方法为:状态服务器查询状态信息数据库中在最近一段终端统计时间内的终端标识信息,并将其整理成当前在线终端信息,其中,所述终端统计时间为状态消息上报周期参数与预先设定的状态统计波动时间参数之和。所述状态统计波动时间参数同状态消息上报周期参数一样,都可以由用户自定义设置。
当网管服务器想获取终端目前的在线情况时,只需要发状态信息查询消息给状态服务器,状态服务器将最近一段时间内收到状态上报消息的终端统计一下便可获取较为准确的当前在线终端信息并将其实时的反馈给网管服务器,以供网管人员实时的掌握当前的终端在线情况,例如,当预先设置的状态消息上报周期是10S时,那么状态服务器只要统计最近15秒内发送了状态上报消息的终端就可以获取当前在线终端信息了。这里,预先设定的状态统计波动时间参数为5s。
优选实施方式下,在执行所有步骤之后,还包括:
S106、网管服务器发送目标终端状态信息查询消息至状态服务器,状态服务器依据所述目标终端状态信息查询消息查询状态信息数据库,判断该目标终端是否在最近一段时间内是否向该状态服务器上报过状态上报消息,若否,则判断该目标中断离线,若是,则网管服务器发送http get消息至该目标终端,当该目标终端设备回复200ok反馈消息时,则不必再等待inform消息就判断该目标终端在线,若报超时,则判断该目标终端离线。
在某些情况下,由于特殊原因或需求,网管服务器可能确实需要实时与特定的目标终端交互,从而实时的判断其状态。
现有技术通常采用的做法是,网管服务器往终端发http get消息(所述消息包含用户名/密码),终端回复200ok,然后终端再向网管服务器发inform消息,网管服务器收到inform后,接着下发命令以获取终端的某个在线状态参数值,若终端回复了该参数值,网关服务器就认为该终端在线。
然而,上述现有技术交互流程较为复杂,在交互过程中,会造成网管服务器的压力较大,此时可以用下面的方法来减少网管服务器压力。
首先网管服务器根据状态服务器上存储的状态信息数据库判断该目标终端是否在2分钟内上报过状态上报消息,如果没有,就认为该目标终端离线,否则,向该目标中断发http get消息,若设备回复200ok消息,网管服务器就认为该目标中断在线,若报超时,就认为该目标终端离线,且不必再等待inform消息。
更为优选地,网管服务器发送至目标终端的http get消息携带错误的用户名/密码。
在上述的网管服务器主动获取目标终端状态信息的方法中,虽然网管服务器不用等待inform消息,但如果终端在线,终端还是会向网管服务器发送inform消息,网管服务器同样要解析这些报文(除此之外,可能还要进行其它操作,例如:检查IP是否修改等),而依据本优选实施方式下,当网管服务器要向终端发http get消息时,故意发送携带了错误的用户名/密码的http get消息至目标终端,这样目标中断就不会向网管服务器发inform消息,如果目标终端离线,网管服务器会得到超时的错误,如果目标终端在线,网管服务器会得到用户名/密码不正确的错误,这样网管服务器就可以通过接收到的超时错误提示消息或错误提示消息判断目标终端是否在线。
另外,tr069协议里也定义了一个CPE(即终端)定时主动与ACS(即网管服务器)交互的参数PeriodicInformInterval,用来每隔一个固定的时间间隔向网管服务器发送CPE信息。
但是在现有技术中,终端向网管服务器发送所述CPE信息会带来以下影响:
(1)如果tr069标准的这个时间间隔设置的较大,就无法使得网管服务器较为准确的统计终端在线情况;
(2)如果tr069标准的这个时间间隔设置很小,例如10秒左右,将会引起以下问题:
1)这些终端频繁地与网管服务器进行交互,当在线终端设备很多时(例如其数目为几十万,甚至百万千万级别时),网管服务器的所有资源几乎都被用来处理这种定时交互,而无法处理其他事务,然而在实际运用过程中,网管服务器统计终端设备状态只是其一个很小的功能而已)。
2)该终端与网管服务器的交互是用来发送CPE信息的,然CPE信息往往包括较多的信息,例如包括:设备唯一标志信息、设备类型信息、型号信息、厂家信息等有用信息,并且用SOAP描述,因此报文数据大小相对较大;网管服务器收到所述CPE信息后,还必须与网管服务器保存的终端设备信息比对,以便及时修改,这些都给整个***带来了很大的额外开销。
然而,本发明实施例提供的终端在线状态监控方法却刚好避开了这些弊端:
(1)采用终端与状态服务器进行信息交互,让状态服务器分担开销,减少网管服务器压力,从而使得网管服务器可以专心处理其他正常的业务;
(2)终端直接用简单的http格式消息与状态服务器交互,并且只需上报很少信息,报文相对小很多。
如图3所示,其为本发明实施例提供的一种终端在线状态监控***,所述***包括:
终端10,用于每间隔一个预先设置的状态消息上报周期就向状态服务器20上送携带用以唯一区分该终端10的终端标识信息的状态上报消息;其中,所述终端10发送至状态服务器20的状态上报消息为tr069格式或http格式消息;
状态服务器20,用于记录获取所述状态上报消息的时间信息,并将所述状态上报消息中携带的终端标识信息与对应的时间信息更新至状态信息数据库;用于依据从网管服务器30获取到的状态信息查询消息查询状态信息数据库,统计出当前在线终端信息并将其发送至网管服务器30;
网管服务器30,用于发送状态信息查询消息至状态服务器20;用于从状态服务器20获取统计出的当前在线终端信息。
所述终端10还用于向网管服务器30发送状态参数注册请求,网管服务器30则响应所述请求,设置所述终端10的状态消息上报周期参数以及状态服务器20地址参数,并将其发送至对应的终端10。
所述状态服务器20依据所述状态信息查询消息查询状态信息数据库并统计出当前在线终端信息的方法为:状态服务器20查询状态信息数据库中在最近一段终端统计时间内的终端标识信息,并将其整理成当前在线终端信息,其中,所述终端统计时间为状态消息上报周期参数与预先设定的状态统计波动时间参数之和。
当网管服务器30想要主动获取目标终端10的状态信息时,所述网管服务器30还用于发送目标终端状态信息查询消息至状态服务器20,状态服务器20依据所述目标终端状态信息查询消息查询状态信息数据库,判断该目标终端10是否在最近一段时间内是否向该状态服务器20上报过状态上报消息,若否,则判断该目标中断离线,若是,则网管服务器30发送http get消息至该目标终端10,当该目标终端10设备回复200ok反馈消息时,则不必再等待inform消息就判断该目标终端10在线,若报超时,则判断该目标终端10离线。
更为优选地,网管服务器30发送至目标终端10的http get消息携带错误的用户名/密码。当网管服务器30要向终端10发http get消息时,故意发送携带了错误的用户名/密码的http get消息至目标终端10,这样目标中断就不会向网管服务器30发inform消息,如果目标终端10离线,网管服务器30会得到超时的错误,如果目标终端10在线,网管服务器30会得到用户名/密码不正确的错误,这样网管服务器30就可以通过接收到的超时错误提示消息或错误提示消息判断目标终端10是否在线。
如图4所示,其为发明实施例在线状态信息获取过程中的信息交互示意图,其包括以下几个步骤:
(1)终端10首次上电时,向网管服务器30注册,网管服务器30设置其状态消息上报周期参数以及状态服务器20地址参数,设置完后将其发送至终端10。另外,终端10下次上电时,不需要再设置所述两个参数,除非用户需要对所述两个参数值进行变化;
(2)终端10收到网管服务器30发送的状态消息上报周期参数以及状态服务器20地址参数后,设置对应参数,并根据参数值进行相应动作,即每隔一段状态消息上报周期就往状态服务器20发状态上告消息;
(3)状态服务器20收到终端10的状态上告消息后,及时更新内存中的状态信息数据库(也可以持久化保存);
(4)当网管服务器30要查询终端10状态时,网管服务器30直接向状态服务器20进行请求,以获取当前终端在线情况;
(5)状态服务器20根据网管服务器30的请求返回当前终端在线情况给网管服务器30,以为网管人员进一步的分析处理提供便利。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。