发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种提高网管工作站访问网元设备效率的方法及装置,本发明基于业务缓存加时间戳比对计算、数据缓存加数据特征缓存时间、预读取算法控制提前预读等方法,解决了上述场景下访问效率低下的问题。
本发明采用的技术方案如下:
一种提高网管工作站访问网元设备效率的方法包括:
步骤1:应用层模块发起读取网元设备信息请求,业务层模块接收应用层模块发送的读取网元设备信息请求,网管工作站的业务层模块判断网管工作站缓存区是否存在读取该网元设备信息相应的业务缓存,如果存在,则网管工作站通过业务层模块向SNMP代理模块发送时间戳请求,执行步骤2;否则,业务层模块向数据层模块发送访问请求,执行步骤3;
步骤2:业务层模块将返回的时间戳与所述缓存区中时间戳进行比对,如果时间戳一致,则返回缓存区中与SNMP模块返回时间戳对应的缓存数据;否则,业务层模块向数据层模块发送访问请求,执行步骤3;所述时间戳请求指的是读取该业务分类或者表格的时间戳请求;所述返回的时间戳指的是SNMP代理模块返回该业务分类或者表格时间戳请求的时间戳;
步骤3:数据层模块接收到业务层模块的访问请求后,根据MIB缓存有效时间映射配置文件,读取该网元设备的MIB缓存有效时间;然后业务层模块根据MIB有效时间配置,在缓存区中查看是否有对应的MIB缓存,如果没有,则数据层模块向SNMP代理模块发起SNMP请求;否则,执行步骤4;
步骤4:数据层模块比对缓存区中当前MIB缓存的已缓存时间是否大于该网元设备的MIB缓存有效时间,如果不大于该网元设备的MIB缓存有效时间,则返回缓存区中的该网元设备对应的缓存数据;否则,则认为缓存区中的MIB缓存有效时间需要更新,然后数据层模块重新向SNMP代理模块发起SNMP请求。
进一步的,所述步骤2中与业务层模块将返回的时间戳与缓存区中时间戳进行比对的同时,根据预读算法,业务层模块进行网元设备信息预读取步骤。
进一步的,所述预读算法具体实现过程是:
步骤21:业务层模块接收到业务预读取请求,判断网管工作站的计数器是否开启,若计数器开启对对应业务的计数,则判断该业务请求计数值是否大于计时器阈值,执行步骤22;否则,退出;
步骤22:若该业务计数值大于计时器阈值,则将计数器置0,并创建新的业务请求TTL链,并将本次请求加到TTL链头,设置该TTL链的生存时间为0,等到新的预读业务请求;否则,业务层模块查询该业务请求的生存时间是否大于TTL阈值,执行步骤23;TTL阈值与计时器阈值根据实际情况而定,可配置为3.
步骤23:若该业务请求的生存时间大于TTL阈值,则退出;否则,将业务请求名称记录到业务请求TTL链尾,并且其生存时间加1。
进一步的,所述业务层模块进行网元设备预读取步骤具体过程包括:
步骤211:收到业务层模块的预读取请求后,业务层模块会根据TTL链查看是否有与预读取关联的映射,如果有,执行步骤212;否则,记录下原始请求业务分类;
步骤212判断该TTL链的生存时间是否小于TTL阈值,若该TTL链的生存时间小于TTL阈值,则应用层模块发起读取网元设备信息请求,业务层模块接收应用层模块发送的读取网元设备信息请求,并将所述读取网元设备信息请求标记为预读取请求,设置预读取请求的生存时间加1;如果该TTL链的TTL值大于等于预设值,则退出。
一种提高网管工作站访问网元设备效率的装置包括:
业务层模块,当应用层模块发起读取网元设备信息请求,业务层模块接收应用层模块发送的读取网元设备信息请求,网管工作站的业务层模块判断网管工作站缓存区是否存在读取该网元设备信息相应的业务缓存,如果存在,则网管工作站通过业务层模块向SNMP代理模块发送时间戳请求;否则,业务层模块向数据层模块发送访问请求;然后
业务层模块将返回的时间戳与所述缓存区中时间戳进行比对,如果时间戳一致,则返回缓存区中与SNMP模块返回时间戳对应的缓存数据;否则,业务层模块向数据层模块发送访问请求;所述时间戳请求指的是读取该业务分类或者表格的时间戳请求;所述返回的时间戳指的是SNMP代理模块返回该业务分类或者表格时间戳请求的时间戳;
数据层模块,用于数据层模块接收到业务层模块的访问请求后,根据MIB缓存有效时间映射配置文件,读取该网元设备的MIB缓存有效时间;然后业务层模块根据MIB有效时间配置,在缓存区中查看是否有对应的MIB缓存,如果没有,则数据层模块向SNMP代理模块发起SNMP请求;否则,数据层模块比对缓存区中当前MIB缓存的已缓存时间是否大于该网元设备的MIB缓存有效时间;如果缓存区中当前MIB缓存的已缓存时间不大于该网元设备的MIB缓存有效时间,则返回缓存区中的该网元设备对应的缓存数据;否则,则认为缓存区中的MIB缓存有效时间需要更新,然后数据层模块重新向SNMP代理模块发起SNMP请求。
进一步的,所述与业务层模块将返回的时间戳与缓存区中时间戳进行比对的同时,根据预读算法,业务层模块进行网元设备信息预读取步骤。
进一步的,所述预读算法具体实现过程是:
步骤21:业务层模块接收到业务预读取请求,判断网管工作站的计数器是否开启,若计数器开启对对应业务的计数,则判断该业务请求计数值是否大于计时器阈值,执行步骤22;否则,退出;
步骤22:若该业务计数值大于计时器阈值,则将计数器置0,并创建新的业务请求TTL链,并将本次请求加到TTL链头,设置该TTL链的生存时间为0,等到新的预读业务请求;否则,业务层模块查询该业务请求的生存时间是否大于TTL阈值,执行步骤23;TTL阈值与计时器阈值根据实际情况而定,可配置为3.
步骤23:若该业务请求的生存时间大于TTL阈值,则退出;否则,将业务请求名称记录到业务请求TTL链尾,并且其生存时间加1。
进一步的。所述业务层模块进行网元设备预读取步骤具体过程包括:
步骤211:收到业务层模块的预读取请求后,业务层模块会根据TTL链查看是否有与预读取关联的映射,如果有,执行步骤212;否则,记录下原始请求业务分类;
步骤212:判断该TTL链的生存时间是否小于TTL阈值,若该TTL链的生存时间小于TTL阈值,则应用层模块发起读取网元设备信息请求,业务层模块接收应用层模块发送的读取网元设备信息请求,并将所述读取网元设备信息请求标记为预读取请求,设置预读取请求的生存时间加1;如果该TTL链的TTL值大于等于预设值,则退出。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明基于业务缓存加时间戳比对计算、数据缓存加数据特征缓存时间、预读取智能算法控制提前预读等方法,解决决了上述场景下访问效率低下的问题。
本发明通过业务缓存可以有效地减少网络中的请求报文,特别是设备中该信息没有变化时的重复读取问题。通过数据缓存减少相近时间范围内MIB反复读取的资源浪费。通过预读取智能算法,提升智能响应,提前完成请求,降低交互时间,提升用户体验。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明相关说明:
1、网管工作站分为应用层、业务层、数据层。数据层维护一级缓存,业务层维护二级缓存和预读取管理。一级缓存是基于MIB时效特性的MIB级缓存。业务层维护的二级缓存是基于业务归类或MIB表格上进行时间戳计算的业务层缓存。应用层的各种网管业务如果需要访问设备,都通过业务层二级缓存进行过滤(先请求时间戳,再和业务层缓存中对应的时间戳比对,判断业务层缓存数据是否和设备真实数据一致,如果一致,就直接使用缓存数据),避免无效访问。并且通过预读取管理算法提前读取业务相关信息,提高效率。在数据层一级缓存中,主要通过基于数据特征配置缓存有效时间的方式解决两种业务在相近时间点上同时访问一个数据节点,重复访问的问题。
2、本发明包括EMS网管工作站和SNMP代理模块两部分。其中SNMP代理模块为网元设备的一个进程,包含一个时间戳计算器。当SNMP代理模块收到时间戳MIB请求时,根据当前MIB的值计算一个时间戳响应网管工作站。
3、业务层模块指的是网管工作站中业务层实现的数据处理过程。数据层模块指的是网管工作站中数据层实现的数据处理过程。应用层模块指的是网管工作站中应用层数显的数据处理过程。
4、MIB缓存有效时间映射配置文件指的是对MIB特征进行配置。包括MIB的名称,以及MIB的名称对应MIB缓存有效时间。
5、TTL阈值与计时器阈值根据实际情况而定,计时器阈值可配置为5s。TTL阈值为3。
6、TTL链指的是带生存时间标记的有方向的链式数据结构,即业务与另一业务相关联的映射。
如附图1所示,本装置分为网管工作站和SNMP代理模块两部分。其中SNMP代理模块为设备的一个进程,包含一个时间戳计算器。当SNMP代理模块收到时间戳请求时,根据当前时间戳请求对应的业务数据计算一个时间戳响应网管工作站。网管工作站分为应用层模块、业务层模块、数据层模块。数据层模块维护一级缓存,业务层模块维护二级缓存和预读取管理。一级缓存是基于MIB时效特性的MIB级缓存。业务层模块维护的二级缓存是基于业务归类或MIB表格上进行时间戳校验的业务层缓存。应用层模块的各种网管业务如果需要访问设备,都通过业务层二级缓存进行过滤,避免无效访问。并且通过预读取管理提前读取业务相关信息,提高效率。在数据层一级缓存中,主要解决的是两种业务在相近时间点上同时访问一个数据节点,重复访问的问题,
系统的业务层模块缓存流程如附图2所示,应用层模块发起网元设备信息读取请求,业务层模块收到请求后,首先判断是否存在这个网元设备缓存,如果没有,直接访问网元设备,并更新网元设备缓存和网元设备缓存时间戳,如果存在网元设备缓存,则只需要向SNMP代理模块发起读取这个业务分类或表格的时间戳请求,再比对是否和当前缓存中的时间戳一致,如果一致,就返回缓存数据,如果不一致,再向SNMP代理模块发送SNMP请求。同时,还会向预读取管理器发起预读取请求。
数据层收到业务层的请求后,根据MIB配置读取MIB的有效时间配置,再到数据缓存中查看是否有对应的MIB缓存,如果没有,则直接向设备代理发起请求,如果有缓存,则比对当前缓存的已缓存时间是否大于MIB配置的有效时间,如果不大于这个时间,就直接返回缓存数据,如果大于,则认为MIB缓存已经比较陈旧,再向设备代理发起MIB信息请求。
收到业务层的预读取请求后,预读取管理器会根据预读取配置查看是否有预读取关联映射,如果有,则发起MIB读取请求,并标记为预读取请求,设置预读取请求的生存时间。如果没有,则记录下原始请求业务ID。预读取存在一个业务请求相关性定期计算线程,经过计算后,动态修改预读取配置映射。达到根据用户习惯,智能预读取的效果。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。