一种获取终端属性的方法及系统与流程

文档序号:12730108阅读:247来源:国知局
一种获取终端属性的方法及系统与流程

本发明涉及通信技术领域,尤其涉及一种获取终端属性的方法及系统。



背景技术:

随着国家对三网融合与双向改造的大力推行,在用户对语音、数据与视频等多媒体综合业务需求的驱动下,PON(Passive Optical Network)+EOC(Ethernet Over Coax)的网络架构被应用得越来越广泛。其中,位于用户侧的EOC网络主要由局端设备与终端设备构成,局端设备基于EOC技术协议栈通过EOC模块与终端设备中的EOC模块建立EOC网络通信,达到在同轴电缆上传输以太网数据的目的。每个局端设备可支持多个EOC模块,一般分为单模、双模以及四模局端,而每个局端EOC模块可下联最多64台终端设备。

在多模块局端批量终端的应用场景下,用户对所有终端设备的配置信息进行实时查询是件巨大的耗时工程,每台终端设备的配置信息查询都需要通过局端设备作为中间代理进行实时查询,实测每次每台终端查询大约需要2秒,以四模块局端为例,最多满配256台终端,大致耗时8分多钟,耗费了大量的查询时间,降低了用户的体验感。因此,提供一种合理简单的多模块局端下实现批量终端快速获取属性的方法势在必行。

现有技术中针对多模块局端下实现批量终端快速获取属性的方法,主要有以下几种方式:

1、通过单线程查询,数据库缓存方式,具体是:用户触发查询请求,局端设备上以单线程方式搜索局端设备,同时依次把局端设备每个模块及其下联所有终端设备的配置信息一起获取,并存入数据库中,用户再从数据库中查询配置信息。此种技术方案最大的缺点是在终端设备数量较大的情况下,首次查询时搜索设备耗费时间长,用户体验差。同时,在新终端上线的情况下需要重新全局搜索并更新数据库。另外,数据库的引入增加了系统复杂度与开发管理成本。

2、通过多线程查询,数据库缓存方式,具体是:

与上述方案相比,此种技术方案引入多线程技术,在搜索局端设备的同时,针对每个局端模块及其下联终端设备的配置信息查询新建一个线程,在新线程中执行上述方案的操作。此种技术方案能够提高整体查询效率,但同时也存在相应的不足:首先,多线程的引入增加了系统的负载与线程间互斥引起的锁管理难度;其次,线程间的切换调度难以保证新终端上线能够及时被检索到并实时更新至数据库中,导致用户需要进行多次刷新才可以读取到完整的终端属性信息。

3、基于简单网络管理协议的EOC网络管理系统,如图1所示,此种技术方案采取的办法是:在新的终端设备接入所述的EOC网络时,新的终端设备向局端设备发出一个基于简单网络管理协议的基本信息广播包,局端设备接收该广播包后,将新的终端设备的基本信息存入局端存储模块,并由网络拓扑图生成模块生成新的终端拓扑图,并将新的终端拓扑图通过显示模块显示。该技术方案能够很好的解决新终端上线引入的重新扫描问题,缩短EOC网络中终端设备配置信息的读取时间。但是,该技术方案最大的弊端在于需要修改现有终端的软件架构,增加了系统结构的复杂度,同时大大降低了系统的兼容性。



技术实现要素:

本发明所要解决的技术问题是:提供一种快速获取终端属性的方法及系统。

为了解决上述技术问题,本发明采用的技术方案为:

一种获取终端属性的方法,包括:

步骤1、服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;

步骤2、若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。

本发明采用的另一技术方案为:一种获取终端属性的系统,包括:获取模块和解析模块;

所述获取模块,用于服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;

所述解析模块,用于若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。

本发明的有益效果在于:区别于现有技术,本发明提供了一种获取终端属性的方法及系统,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。

附图说明

图1为本发明背景技术的基于简单网络管理协议的EOC网络管理系统的结构框图;

图2为本发明的一种获取终端属性的方法的步骤流程图;

图3为本发明的一种获取终端属性的系统的结构示意图;

图4是本发明具体实施方式的实施例一的获取终端属性的方法的流程图;

图5是本发明具体实施方式的实施例一的获取终端属性的方法的hash链表图;

图6为本发明的EOC网络管理系统的结构框图;

标号说明:

1、获取模块;2、解析模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,可支持批量获取,且提供毫秒级的快速查询服务,极大地提高用户的体验感。

请参照图2,本发明提供的一种获取终端属性的方法,包括:

步骤1、服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;

步骤2、若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。

从上述描述可知,本发明的有益效果在于:区别于现有技术,本发明提供的一种获取终端属性的方法,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。系统不采用多模块多线程管理机制,减轻系统负载与线程间互斥引起的锁管理难度问题。同时,无需改变终端软件架构,由局端统一管理,系统结构简单,兼容性强,提高了产品的灵活性与竞争力。

进一步的,步骤1之前还包括:

步骤0、预设hash链表,具体包括以下步骤:

步骤00、服务端判断是否接收到客户端发送的查询请求,若是,获取局端模块及与其连接的终端模块属性信息,记录局端模块的MAC地址;

步骤01、根据所述局端模块的MAC地址计算得到hash链表中的hash结点的散列值;

步骤02、根据步骤01的散列值查询hash链表,判断所述hash链表是否存在与散列值相同的hash结点,若否,则所述局端模块的MAC地址对应的hash结点为新的结点,记录新的结点的获取时间,将新的结点插入至hash链表中,更新hash链表的结点信息至缓存文件。

由上述描述可知,系统采用本地缓存机制,无需提供额外的数据库支持,降低系统设计的复杂度与开发管理成本。

进一步的,所述步骤02还包括:根据每个结点的获取时间,判断结点是否超时,若是,删除已超时的结点。

由上述描述可知,每个结点设置有效时限,超时则删除,可有效优化数据量,为快速查询提供便利。在客户端的每次请求下,对每个局端模块对应的hash结点进行超时判断,如果该结点超时,才触发对该局端模块下的终端模块信息进行实时查询,无需进行全局的实时查询,极大缩短查询时间,并将查询结果重新构建hash结点与存入缓存文件。所述的hash链表条件更新主要在新终端上线时,才触发该终端所在局端模块对应hash结点的重新构建,构建流程与定时更新一致。

进一步的,所述hash链表的更新周期为5分钟。

请参阅图3,本发明还提供的一种获取终端属性的系统,包括:获取模块1和解析模块2;

所述获取模块1,用于服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;

所述解析模块2,用于若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。

从上述描述可知,本发明的有益效果在于:区别于现有技术,本发明提供的一种获取终端属性的系统,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。系统不采用多模块多线程管理机制,减轻系统负载与线程间互斥引起的锁管理难度问题。同时,无需改变终端软件架构,由局端统一管理,系统结构简单,兼容性强,提高了产品的灵活性与竞争力。

进一步的,还包括预设模块;所述预设模块包括判断单元、计算单元和更新单元;

所述判断单元,用于服务端判断是否接收到客户端发送的查询请求,若是,获取局端模块及与其连接的终端模块属性信息,记录局端模块的MAC地址;

所述计算单元,用于根据所述局端模块的MAC地址计算得到hash链表中的hash结点的散列值;

所述更新单元,用于根据散列值查询hash链表,判断所述hash链表是否存在与散列值相同的hash结点,若否,则所述局端模块的MAC地址对应的hash结点为新的结点,记录新的结点的获取时间,将新的结点插入至hash链表中,更新hash链表的结点信息至缓存文件。

由上述描述可知,系统采用本地缓存机制,无需提供额外的数据库支持,降低系统设计的复杂度与开发管理成本。

进一步的,所述预设模块还包括删除单元,用于根据每个结点的获取时间,判断结点是否超时,若是,删除已超时的结点。

进一步的,所述hash链表的更新周期为5分钟。

由上述描述可知,每个结点设置有效时限,超时则删除,可有效优化数据量,为快速查询提供便利。在客户端的每次请求下,对每个局端模块对应的hash结点进行超时判断,如果该结点超时,才触发对该局端模块下的终端模块信息进行实时查询,无需进行全局的实时查询,极大缩短查询时间,并将查询结果重新构建hash结点与存入缓存文件。所述的hash链表条件更新主要在新终端上线时,才触发该终端所在局端模块对应hash结点的重新构建,构建流程与定时更新一致。

本发明的实施例一为:

请参阅图6,本发明提供的一种获取终端属性的系统的主要结构如下:

局端设备,主要由模块管理客户端进程、模块管理服务端进程以及EOC模块组成,通过EOC网络管理下联EOC终端设备。

模块管理客户端进程,与所述模块管理服务端进程建立socket通信,一方面随系统启机运行,并在后台预先进行EOC模块信息查询;另一方面,在用户发起局端及其下联终端的模块信息查询请求时,从缓存文件中快速获取设备属性信息,并将结果呈现给用户。

模块管理服务端进程,随系统启机并以守护进程方式运行,接收来自于所述模块管理客户端进程的EOC模块信息查询请求,构建局端及其下联终端的模块属性信息hash链表,并将hash链表中的属性信息存入缓存文件,以供快速查询。

EOC网络,由所述局端EOC模块与其下联所述终端EOC模块通过同轴电缆构成的EOC通信网络。

请参阅图4,本发明提供的一种获取终端属性的方法,具体如下:

201:模块管理服务端进程随系统启机并以守护进程方式运行;

202:创建系统进程间socket服务,并开启端口监听,用于接收所述模块管理客户端进程的查询请求;

203:基于EOC技术协议栈,如:HomePlugAV协议栈,构造以太网类型为0x88E1的二层报文,并建立用于与局端EOC模块进行交互的网络通道,通过MME报文格式获取模块属性信息;

204:以阻塞方式等待所述模块管理客户端进程的模块属性信息查询请求;

205:判断是否有所述模块管理客户端进程的查询请求,如果有,则进入所述步骤206,否则,继续执行所述步骤204;

206:扫描局端模块基本信息,并记录局端模块对应的Mac地址;

207:根据局端Mac地址查询hash链表,并判断是否是新的hash结点,如果是,则进入所述步骤208,否则,进入所述步骤211;

208:获取局端模块及其下联各终端模块属性信息,并以hash结点方式存储,hash结点的数据结构;

209:记录局端及其下联终端模块属性信息的当前获取时间,作为hash结点的创建时间并存入hash结点,同时将该结点插入至hash链表;

210:根据hash链表的最新信息,遍历hash结点信息并更新至缓存文件,之后继续执行所述步骤204;

211:根据hash结点的获取时间来判断hash结点记录是否已经超时,超时时间为5分钟,如果是,则进入所述步骤212,否则,进入所述步骤213;

212:删除局端模块对应的已超时hash结点,同时,继续执行所述步骤208至所述步骤210。当新终端上线时,也同样会执行此步骤,作为局端模块下对应终端模块属性信息重新扫描的条件;

213:hash结点未超时,不用更新hash结点信息至缓存文件,之后继续执行所述步骤204;

其中hash链表图,请参阅图5,主要结构如下:

在所述模块管理服务端进程中以局端模块的Mac地址的低两个字节为关键字,使用哈希函数计算hash值并构建拉链式hash链表,所述哈希函数的公式为:(hmac[5]+(hmac[4]*256))%HASHTABLE_LEN,其中,hmac为局端模块Mac地址构成的数组;HASHTABLE_LEN为hash链表大小,值为280;

每个hash链表结点由模块属性信息、hash结点创建时间以及指向下一个hash结点的指针构成。其中,模块属性信息由局端模块及其下联终端模块属性信息构成的链表;hash结点创建时间用于判断hash结点是否超时。

综上所述,本发明提供的一种获取终端属性的方法及系统,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。系统不采用多模块多线程管理机制,减轻系统负载与线程间互斥引起的锁管理难度问题。同时,无需改变终端软件架构,由局端统一管理,系统结构简单,兼容性强,提高了产品的灵活性与竞争力。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1