CN105183736A - 网络设备配置及状态信息的整合搜索系统及方法 - Google Patents
网络设备配置及状态信息的整合搜索系统及方法 Download PDFInfo
- Publication number
- CN105183736A CN105183736A CN201410281047.XA CN201410281047A CN105183736A CN 105183736 A CN105183736 A CN 105183736A CN 201410281047 A CN201410281047 A CN 201410281047A CN 105183736 A CN105183736 A CN 105183736A
- Authority
- CN
- China
- Prior art keywords
- model
- search
- layer module
- user
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种网络设备配置及状态信息的整合搜索系统和方法,该系统是由用户端浏览器、网页服务器,网络应用服务器及其网络设备操作系统组成,其中网络应用服务器中,至少包括表现层模块、模型层模块和搜索子系统,网络设备操作系统中包括有模型-系统接口库。本发明不仅能够根据配置页面和配置项的名称这样的静态数据进行搜索,而且能够根据当前系统的实际或个性配置的值进行搜索,这对于比较复杂的网络设备进行配置和检索,提供了极大的方便,并且为用户提供了更有价值的搜索结果。
Description
技术领域
本发明涉及网络应用交付控制领域,特别涉及一种根据网络设备配置及状态信息进行整合搜索的系统及方法。
背景技术
我们生活中的数据总体分为两种:结构化数据和非结构化数据。
●结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据(元信息)等。
●非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等,非结构化数据又一种叫法叫全文数据。
当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处理。
按照数据的分类,搜索也分为两种:
●对结构化数据的搜索:如对数据库的搜索,用SQL语句。再如对元数据的搜索,如利用windows搜索对文件名,类型,修改时间进行搜索等。
●对非结构化数据的搜索:如利用windows的搜索也可以搜索文件内容,Linux下的grep命令,再如用Google和百度可以搜索大量内容数据。
对非结构化数据也即对全文数据的搜索主要有两种方法:
一种是顺序扫描法(SerialScanning):所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档接着一个文档地看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。如果你有一个80G硬盘,如果想在上面找到一个内容包含某字符串的文件,不花他几个小时,怕是做不到。Linux下的grep命令也是这一种方式。大家可能觉得这种方法比较原始,但对于小数据量的文件,这种方法还是最直接,最方便的。但是对于大量的文件,这种方法就很慢了。
有人可能会说,对非结构化数据顺序扫描很慢,对结构化数据的搜索却相对较快(由于结构化数据有一定的结构可以采取一定的搜索算法加快速度),那么把我们的非结构化数据想办法弄得有一定结构不就行了吗?
这种想法构成了全文检索(Full-textSearch)的基本思路,也即将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。
这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。比如字典,字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。这种先建立索引,再对索引进行搜索的过程就叫全文检索。如图1所示,MacOSX(MacintoshOperatingSystemX苹果麦金塔第十代操作系统)、Windows等操作系统均提供了对配置操作页面的搜索功能,例如在上图搜索框中输入“鼠标”,即可获得与鼠标配置相关的页面及具体配置项的链接。技术方案上,它们均使用全文搜索技术对这些配置页面和配置项的名称字符串进行了索引,并在搜索时根据索引查找到相关页面。以上背景技术内容摘自http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623594.html。
现有技术的主要缺点在于,全文检索仅能够根据配置页面和配置项的名称这样的静态数据进行搜索,无法根据当前系统的实际或个性配置的值进行搜索,例如,当前系统中配置了用户名“LiQian”,在上述搜索框中搜索Qian,搜索系统无法定位到该用户相关的配置信息。对于比较复杂的网络设备,配置和状态信息量大、概念繁多且结构复杂,例如在WebUI(WebUserInterface-基于网页技术的图形用户界面)中呈现为数以千计的配置页面,难以检索,为管理员的操作带来了困难。因此为网络设备配置及状态信息提供一个方便的搜索工具变得十分重要,尤其是为网络设备配置及状态信息的WebUI提供一个方便的搜索工具变得十分紧迫。
发明内容
为克服已有技术中存在的问题,本发明的目的是提供一个网络设备配置及状态信息的整合搜索系统解决方案,使用户不但可以根据静态的配置名称进行搜索,还可以利用动态的网络设备配置及状态信息进行搜索,且迅速地在浏览器中搜索到所需的网络设备配置及状态信息。
其次,本发明的另一目的是,在内置Web服务器的网络设备中,用户通过任何网页浏览器都可以实现网络设备配置及状态信息的整合搜索。
一种网络设备配置及状态信息的整合搜索系统,是由用户端浏览器、网页服务器,网络应用服务器及网络设备操作系统组成,其中,所述的网络应用服务器中,至少包括表现层模块、模型层模块和搜索子系统,所述的网络设备操作系统中包括有模型-系统接口库。
所述的表现层模块,根据用户请求和系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器;
所述的模型层模块,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据;
所述的搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态数据,并向表现层模块返回搜索结果的页面数据;
所述的模型-系统接口库,用于将所有经上述模型层模块定义的接口声明和实现和实现共同编译成一个模型-系统接口库,供系统运行时的模型层模块调用。
进一步地,所述的模型层模块包括静态数据请求处理模块、系统模型结构定义模块、动态数据请求处理模块和数据缓存模块。
进一步地,所述的搜索子系统包括静态搜索器和动态搜索器,分别用于实现静态匹配项和动态匹配项的搜索,并将整合后的匹配项作为搜索结果输出给上述的表现层模块。
一种网络设备配置及状态信息的整合搜索方法,包括以下步骤:
步骤1,整合网络设备配置及状态信息的静态数据及动态数据,构建系统模型与属性组及属性关联的系统模型结构;
步骤2,基于上述系统模型结构,设置用户请求与网络设备操作系统之间进行数据交互的系统模块;
步骤3,静态搜索:系统运行时,基于上述系统模块,首先进行用户请求关键词的静态搜索,对搜索结果进行排序,获得网络设备配置及状态信息的静态匹配项;
步骤4,动态搜索:使用由模型层模块为搜索子系统提供系统模型结构的CLI形式接口,获得网络设备配置及状态信息的动态匹配项;
步骤5,动态匹配项和静态匹配项被一同返回给表现层模块,用于生成搜索结果页面,呈现给用户。
进一步地,上述的步骤1包括以下分步骤:
定义网络设备配置及状态信息的配置和管理为最终用户提供两种界面:命令行用户界面(简称CLI)和图形用户界面(简称GUI);
在上述图形用户界面设置统一的关键词搜索入口,所述的关键词包括网络设备配置类别概念关键词、某项配置名称关键词、某项配置运行值关键词;
定义将网络设备配置及状态信息的关键词按照系统模型组织,一个系统模型是网络设备里一组相关配置或状态信息的集合所构成的虚拟对象;
定义上述每种网络设备配置及状态信息由系统模型的一个属性表达,多个相关的属性构成属性组,系统模型-属性组-属性的关联结构构成系统模型结构;
定义用户界面的页面结构与上述系统模型-属性组-属性的对应关系;
定义搜索结果由一系列与上述系统模型结构相匹配项组成。
进一步地,上述的步骤2包括以下分步骤:
设置表现层模块,根据用户请求和系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器;
设置与上述表现层模块连接的模型层模块,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据;
连接模型层模块与网络设备操作系统,使得用户可以根据需求进行配置操作以及在系统运行时获得搜索结果页面数据;
设置搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态网络设备配置及状态信息,并向表现层模块返回搜索结果的页面数据。
进一步地,上述的设置模型层模块包括根据用户请求的关键词进行系统模型结构定义、并生成静态系统模型结构查询接口的步骤,和系统运行时生成动态系统模型结构查询接口的步骤,以及获取来自网络设备操作系统的动态网络设备配置及状态信息的步骤。
进一步地,上述的系统模型结构定义及接口声明和实现可采用Python类技术实现。
进一步地,在系统开发编译阶段,将上述的接口声明和实现共同编译成一个模型-系统接口库,并予以发布。
本发明不仅能够根据配置页面和配置项的名称这样的静态数据进行搜索,而且能够根据当前系统的实际或个性配置的值进行搜索,即支持从动态的系统配置/状态/统计数据中进行关键词搜索。这对于比较复杂的网络设备进行配置和检索,提供了极大的方便,并且为用户提供了更有价值的搜索结果。
附图说明
图1是现有技术中全文检索的用户界面示意图;
图2是本发明系统结构示意图;
图3是本发明系统的模型层模块结构示意图;
图4是用户端浏览器页面显示的搜索入口一种实施例示意图;
图5是本发明单实例的页面结构与系统模型结构对应关系示意图;
图6是本发明多实例的页面结构与系统模型结构对应关系示意图;
图7是本发明方法步骤示意图;
图8是系统模型结构定义及接口实现所采用的方法示意图;
图9是系统开发编译阶段模型层模块为网络设备操作系统提供数据接口的方法示意图;
图10是本发明搜索处理的流程示意图;
图11是静态搜索过程中文档的结构以及全文检索系统所建立的倒排表数据结构示意图;
图12是本发明动态搜索处理流程图;
图13是本发明一种实施例系统框图;
图14是上述实施例用户端浏览器界面示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也是本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及实例对本发明的实施方法作进一步地详细描述。
如图2所示,本发明一种网络设备配置及状态信息的整合搜索系统,是由用户端浏览器100、网页服务器200,例如:lighttpd(开源Web服务器软件)服务器,网络应用服务器300,例如WebUI应用服务器,以及网络设备操作系统400组成,所述的网络应用服务器中,至少包括表现层模块310、模型层模块320和搜索子系统330,所述的网络设备操作系统中包括有模型-系统接口库410。
所述的表现层模块,用于根据用户请求和系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器。例如,根据用户搜索请求和系统模型结构的定义,动态地获取来自模型层模块的数据并生成WebUI页面返回用户端(WebUI浏览器)。
所述的模型层模块,如图3所示,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据。它包括静态数据请求处理模块321、系统模型结构定义模块322、动态数据请求处理模块323和数据缓存模块324。
所述的搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态数据,并向表现层模块返回搜索结果的页面数据或称搜索结果的列表。如图7所示,它包括静态搜索器331和动态搜索器332,分别用于实现静态匹配项和动态匹配项的搜索,以及将整合后的匹配项作为搜索结果输出给上述的表现层模块。
所述的模型-系统接口库,用于将所有经上述模型层模块定义的接口声明和实现共同编译成一个模型-系统接口库,供系统运行时的模型层模块调用。
一种网络设备配置及状态信息的整合搜索方法,包括以下步骤:
步骤1,整合网络设备配置及状态信息的静态数据及动态数据,构建系统模型与属性组及属性关联的系统模型结构:
定义网络设备配置及状态信息的配置和管理为最终用户提供两种界面:命令行用户界面(简称CLI)和图形用户界面(简称GUI)。
在上述图形用户界面设置统一的关键词搜索入口,所述的关键词包括网络设备配置类别概念关键词、某项配置名称关键词、某项配置运行值关键词。如图4所示,在用户界面的头部导航栏提供一个统一的搜索输入框,管理员可以输入任意的搜索关键词,在点击按钮或回车后,所有搜索结果将呈现在一个搜索结果页。所述与网络设备配置/状态信息相关关键词的搜索请求大致有如下几类:
●网络设备配置类别概念关键词:例如“虚拟服务”、“SSL”、“日志”,管理员期待的搜索结果是相关配置概念主题的页面。
●某项配置名称关键词:例如“日志启用”、“DNS服务器”,“主机名称”等,管理员期待的搜索结果是相关配置当前的值以及可修改该项配置的页面。
●某项配置运行值关键词::例如”192.168.2.100”,www.arraynetworks.com.cn,“VS1”等,管理员期待的搜索结果是匹配这些值的相关页面。
定义将网络设备配置及状态信息的关键词按照系统模型结构组织,一个系统模型是网络设备里一组相关配置或状态信息的集合所构成的虚拟对象,它往往对应了与设备功能相关的一个物理组件,例如网络接口,或者一个虚拟概念,例如HTTP协议,也可以是一个具体的网络服务实例,例如用于构建一个网站的HTTP虚拟服务。
所述的系统模型包括有元信息(名称、帮助文本-用于解释该系统模型用途的一段话等);对于搜索子系统而言,最重要的元信息是系统模型名称,例如“HTTP全局配置”等。
所述的系统模型可以分为单实例的和多实例的,一个单实例的系统模型在整个系统中是唯一的,而一个多实例的系统模型可以由管理员创建多个“系统模型对象实例”,每个实例包含一份独立的网络设备配置及状态信息(包括统计信息)的集合,并独立地作为系统功能实现的实体。每个实例有一个唯一的实例名称。
定义上述每种网络设备配置及状态信息由系统模型的一个属性表达,多个相关的属性构成属性组,系统模型-属性组-属性的关联结构构成本发明的系统模型结构;根据上述属性的类型,属性组可以划分为配置属性组和状态属性组两种,其中,所述的配置属性组包含用户可进行修改操作的属性,用于对网络设备进行配置更改,所述的状态属性组,包含用户只读的属性,用于对网络设备进行监控,了解其运行状态和统计历史数据等。与系统模型类似,属性和属性组也具备名称和帮助文本等元信息。
定义用户界面的页面结构与上述系统模型结构的对应关系;所述的系统模型-属性组-属性构成本发明网络设备配置及状态信息的系统模型结构。
如图5和图6所示,所述的用户界面结构与系统模型-属性组-属性构成的系统模型结构是一一对应的,其中图5为单实例系统模型结构与用户界面结构的对应关系以及具体实例,图6为多实例的系统模型结构与搜索结果页面结构的一一对应关系以及具体实例。
定义搜索结果由一系列与上述系统模型结构相匹配项组成,包括静态匹配项和动态匹配项。
所述的静态匹配项即用户请求的关键字匹配到上述的系统模型的名称、帮助文本,以及系统模型结构中各属性组和属性的名称、帮助文本等,这些信息是系统设计时的静态信息,不随系统运行时信息而变化。
所述的动态匹配项即用户请求的关键字匹配到上述系统模型各属性的具体值,或者匹配到一个具体的系统模型实例的名称,这些信息是随系统配置及运行状态而变化的。
对于静态或动态的匹配项,各项按关键字的匹配度排序,每个匹配项可以为用户提供两部分信息:
●概要信息:在搜索结果中直接呈现、方便用户定位目标;
●到相关页面的链接:用户可以随链接进入具体页面进行后续操作。
静态或动态匹配项的概要信息和链接可以有不同的具体内容,可详见下表:
步骤2,基于上述系统模型结构,设置用户请求与网络设备操作系统之间进行数据交互的系统模块:
设置表现层模块,根据用户请求和上述系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器;
设置与上述表现层模块连接的模型层模块,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据;
连接模型层模块与网络设备操作系统,使得用户可以根据需求进行配置操作以及在系统运行时获得搜索结果页面数据;
设置搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态数据匹配项,并向表现层模块返回搜索结果的页面数据。
系统模型结构的定义实际上成为了整个用户界面系统设计和实现的底层基础架构,如图5所示,以WebUI系统设计为例,描述了WebUI系统的各模块构成:首先将用户对系统配置更改请求通过表现层模块(WebUI)递交到模型层模块,模型层模块定义上述更改请求以及与网络设备操作系统之间的接口声明和实现并递交到网络设备操作系统;模型层模块从网络设备操作系统获取上述更改请求数据,用户界面的页面结构并获取页面数据。
所述的模型层模块的定义包含了两类信息:静态系统模型结构定义和动态系统配置及状态信息。
所述的静态系统模型结构定义,例如,一方面,在WebUI页面生成时,会根据系统模型结构定义去组建各页面,包括页面内为呈现或修改每个属性而定制的控件,如文本类型的属性对应文本输入框,日期类型的属性对应日期选择控件,统计数字类型的属性对应线图或柱状图进行呈现等;另一方面,一切数据的来源都是网络设备操作系统,因此网络设备操作系统必须根据系统模型结构定义去实现获取各种数据和修改接口;
所述的动态系统配置及状态信息:即系统运行时的信息。在WebUI页面生成时,会从模型层模块动态获取各系统模型(或实例)、各属性运行时的数值,从而在上面提到的各控件中呈现,模型层模块进而调用网络设备操作系统的接口来获取这些数据;同时用户对配置数据的修改操作也会统一发送至模型层模块,进而调用相应的网络设备操作系统的接口来实现对网络设备系统配置的更改。
所述的系统模型结构定义是由系统模型-属性组-属性构成的,其中每个属性都具有特定的属性类型,例如,整数型、文本型、时间型、IP地址型、MAC地址型、等等。初始化时,系统模型结构定义及接口声明和实现可采用Python类技术方案,如图8所示,模型层模块的定义所采用的技术是Python类:
●一个系统模型的定义对应一个Python类,例如classHTTPVirtualService
●属性和属性组的定义均为该Python类的成员
●运行时的一个系统模型实例对应于一个Python类的实例,包含的属性数据是实例对象的属性。
整个模型层模块的结构定义的集合形成了一个Python模块。可供任何Python应用程序进行调用。
模型层模块的对外接口分为两部分:
静态系统模型结构查询接口:
●获取模型层模块定义的所有系统模型及元信息(名称、帮助文本)
●每个系统模型所包含的所有属性组及元信息(名称、帮助文本)
●每个属性组所包含的所有属性(名称、帮助文本、属性类型)
动态系统配置及状态信息数据查询接口:
●(单实例系统模型)获取某模型中每个属性的具体值
●(多实例系统模型)获取某模型的实例列表(实例名称)
●(多实例系统模型)获取某系统模型实例(根据实例名称)中每个属性的具体值,对于统计数据,可获取一定时间范围内的历史数据。
所述模型层模块的对外接口均可采用上述Python类的方法(成员函数)实现。
所述的模型层模块用于定义页面结构和提供服务,真正的运行时数据均由网络设备操作系统提供,对配置数据的更改也必须递交至网络设备操作系统,模型层模块和操作系统之间的数据接口的实现包括开发编译分步骤和运行分步骤:
在系统开发编译阶段,网络设备操作系统需要根据模型层模块结构定义所生成的接口规范来提供数据接口,现以C语言设计为例,具体流程,如图9所示:
●根据上述初始化后的模型层模块自动生成C语言的接口头文件,为每个系统模型生成一个头文件,所述的头文件中包含:
a)从该系统模型的属性(或属性组)结构生成的C语言数据结构定义,例如,为HTTPVirtualService系统模型,生成一个structhttp_virtual_service,数据结构的字段与系统模型结构中属性的定义一一对应。
b)固定前缀的一系列接口函数的声明。例如,对于HTTPVirtualService系统模型,生成get_instances_http_virtual_service()函数声明,并规定该函数返回一个structhttp_virtual_service的列表(数组)。
●根据自动生成的上述头文件,编写C语言函数的实现,具体的实现往往需要调用网络设备操作系统提供的各种底层接口,或者访问网络设备操作系统提供的共享内存-以在运行时获取数据。
●将接口的声明和实现共同编译成一个“模型-系统接口库”,供运行时的模型层模块调用。
●将这个接口库与系统的其他组件共同发布。
在系统运行阶段,为了响应来自WebUI页面的各种数据获取和更改请求,模型层模块会调用上述“模型-系统接口库”,注意这里的“模型层模块”不仅仅包括了上述的系统模型结构定义(一个Python模块),而是一个完整的系统组件,可以响应来自表现层模块(WebUI)的用户请求,也可以调用“模型-系统接口库”。因此这里的“模型层模块”实现为一个更大的Python模块,再如图3所示,具体流程举例如下:
●来自表现层模块的用户请求发送至模型层模块,例如,表现层模块请求HTTPVirtualService的所有实例数据(用来生成列表页面);
●模型层模块查询内部的缓存,倘若缓存存在且未过期,则直接返回给表现层模块,倘若缓存不存在或已过期,则需要进一步调用。
●调用模型-系统接口库,例如,get_instances_http_virtual_service,这里采用了Python语言直接调用使用C语言编写的动态链接库的技术。
●模型-系统接口库进一步与网络设备操作系统通信取得相应的数据,并按照上述逆顺序最终返回给表现层模块;并根据一定的规则在模型层模块建立相应的缓存以提高下次查询的效率。
表现层模块负责根据用户的请求和系统模型结构,动态地获取数据并生成WebUI页面返回用户用户端(Web浏览器)。每个WebUI页面有一个唯一的URL,它的结构为:
http://<IP地址>/<模型名称>/<页面类型>/[实例名称]/[属性组名称]
其中,“实例名称”和“属性组名称”是可选的。
所述表现层模块动态生成WebUI页面的流程如下:
●表现层模块获得并解析从用户端浏览器发来的URL(网页地址),例如,http://10.3.0.200/httpvirtualservice/edit/江苏子公司网站/基本设置
经过解析,该请求希望获取对名称为“江苏子公司网站”的一个HTTPVirtualService模型实例的“基本设置”属性组的配置页面。
●表现层模块通过上述模型层模块提供的“静态模型结构查询接口”对模型结构进行查询,获得HTTPVirtualService系统模型中“基本设置”属性组包含的属性列表和每个属性的类型,根据这些信息,表现层模块动态地生成一个WebUI页面,该WebUI页面包含相应属性对应的控件。
●表现层模块通过上述模型层模块提供的“动态数据查询接口”对模型层模块发出数据查询,获得“江苏子公司网站”这一系统模型实例“基本设置”各属性的具体值。表现层模块在上述生成的各控件中分别设置这些值。
●表现层模块将生成的WebUI页面返回给用户端浏览器。
基于上述系统模型结构定义,搜索子系统作为一个独立的子系统,也需要使用模型层模块提供的接口并响应表现层模块的查询,它在系统中的位置如图7所示,以下给出具体步骤:
●表现层模块向搜索子系统提交的请求是一个文本字符串,即来自用户搜索框的关键词字符串;
●搜索子系统向表现层模块返回的是搜索结果(匹配项)的列表,匹配项包括静态匹配项和动态匹配项;
●搜索子系统既要查询模型层模块的静态模型结构,也要查询动态的运行时数据。
为了实现更高性能的动态搜索,模型层模块为搜索子系统提供了一种特殊的接口,该接口返回系统中的所有系统模型实例的“文本化形式”-简称系统模型实例的“CLI形式”。
CLI形式”是以行为单位的文本,一个文本行往往包含了一个系统模型实例的一个属性组的数据,下表给出了“CLI形式”文本行结构定义和示例:
●由于一个系统模型实例往往包含多个属性组,一个实例数据的CLI形式因而由上述的多个文本行组成。
●整个系统运行时所有系统模型“CLI形式”的数据集合称为“CLI形式系统快照”。
“CLI形式”有以下重要的技术特点:
●查询速度快。由于模型层模块的缓存以及模型-系统接口库的高性能,搜索子系统可以快速地获取完整的CLI形式系统快照。
●便于进行文本搜索,由于搜索子系统的输入是查询关键字,文本化的“CLI形式”比内存中的二进制数据结构更容易进行直接的文本匹配搜索。
可索引到模型结构,给出一个“CLI形式”的文本行,可通过<模型名称>关键字快速索引到对应的模型结构定义。
步骤3,搜索处理和静态搜索:系统运行时,基于上述系统模块,首先进行用户请求关键词的静态搜索,对搜索结果进行排序,获得静态匹配项;
如图10所示,搜索子系统的主要处理过程分为静态搜索和动态搜索两部分,静态搜索主要使用由模型层模块的静态结构生成的静态索引,生成静态匹配项,动态搜索主要使用由模型层模块的动态数据接口提供的CLI形式系统快照,生成动态匹配项。两部分匹配结果合并后输出给表现层模块,从而呈现给用户。所述的静态搜索的实现基于使用现有技术的“全文检索”技术的工具”Whoosh”,它是一个用Python实现的全文检索引擎。静态搜索器使用Whoosh进行两部分操作:
●(系统初始化时)利用模型层模块的模型结构数据建立索引。
●(处理搜索请求时)使用索引进行搜索,并排序,获得静态匹配项。
对于全文检索系统来说,“索引”所构建的是从关键词到目标“文档”的映射,在我们的WebUI应用中,我们为模型层模块的每一个“模型”,“属性组”,“属性”建立一个“文档”,因此我们有三种类型的“文档”,图11描述了“文档”的结构以及全文检索系统所建立的“倒排表”数据结构。
对表现层模块提交的关键词字符串,Whoosh进行搜索的主要过程是:
●词法和语法分析-将用户输入的字符串拆分成独立的多个“关键词”
●查找索引-使用上节建立的索引,对每个关键词进行查找,获得匹配到的所有目标文档。(只要有一个关键词匹配即可)
●对匹配的目标文档进行评分和排序,取匹配文档的前N项(N可根据实际应用配置调整)。
●通过文档中的“到模型层Python数据结构的指针”,获取并返回本次搜索的静态匹配项。
以上第三步(评分和排序)可采用BM25F算法,这是一种改进后的BM25评分算法,对文档里不同字段的权重进行了考虑。在我们的应用中,文档字段“名称”比“帮助文本”的权重更大。总体来讲,我们应用以下规则对匹配的目标文档进行评分和排序:
●匹配更多关键字的文档评分更高。
●关键字在文档中出现次数更高的文档评分更高。
●(帮助文本)长度更短(从而关键字所占比例更高)的文档评分更高。
●关键字出现文档数量更多时,每个文档的评分相对更低。
●在“名称”字段有关键字匹配的文档比在“帮助文本”有关键字匹配的文档评分更高。
步骤4,动态搜索:使用由模型层模块为搜索子系统提供系统模型结构的CLI形式接口,获得动态匹配项;
所述的动态搜索:在静态搜索的处理流程中,我们已经将用户的输入拆分成了一个或多个关键词,在动态搜索的处理过程中可以直接以这些关键词作为输入。
如图12所示,调用模型层模块的接口取得CLI形式系统快照后,对每个用户输入的关键词在系统快照中进行简单的子字符串匹配(使用python的find方法)。将未匹配到任何关键词的行从处理集合中删除。对匹配到关键词的文本行记录以下信息:
●匹配的文本行全文
●匹配到关键词个数
●匹配到关键词的位置(对于多个关键词有多个位置)
由于模型实例的CLI形式文本行是简单的空格分隔的形式:
<模型名称>(<实例名称>)<属性组名称><数据1><数据2>...
我们很容易对刚刚获得的匹配文本行进行初步的处理:
●如果匹配到的关键词仅出现在<模型名称>或<属性组名称>字段,说明这条CLI形式文本行并没有任何动态的配置数据匹配到用户输入的关键词,因此将改条文本行删除。
●对匹配的文本行分组,分组的依据是:<模型名称>和<属性组名称>都相同的匹配行为同一组。
●记录匹配的关键词是处在<实例名称>中还是<数据>中。
●根据<模型名称>和<属性组名称>在已经获得的“静态匹配项”中进行查找,如果查到,记录相应的项在静态搜索过程中的得分。
将静态匹配项和动态匹配项按一定算法合成搜索结果页面。
对上述匹配的每一个CLI形式文本行进行评分,评分计算公式如下:
各参数的含义为:
●S-某CLI形式文本行的评分
●Σ-当改行匹配多个关键词时,为每个关键词的计算结果求和
●ω1-为匹配<实例名称>的关键词提供的权重,典型的值是0.2
●N1-该关键词在<实例名称>中匹配的次数
●ω2-为匹配<数据>的关键词提供的权重,典型的值是0.1
●N2-该关键词在<数据>中匹配的次数
●G-该文本行所属“组”(按照<模型名称>和<属性组名称>分组)的行数。
●R-若该文本行对应的<模型名称>或<属性组名称>在“静态匹配项”中有对应的项,R为对应静态匹配时计算的得分。若未找到,R为0
●α,β-权重参数,典型值为1,2根据静态搜索过程中得分算法的不同进行必要的调整。
所有匹配的CLI形式文本行按照评分大小进行排序(大的在前),取前N项(根据实际应用调整)作为搜索结果。
对于上述搜索结果的每一个CLI形式文本行,利用<模型名称>,<属性组名称>,<实例名称>三个字段的值调用模型层模块的动态查询接口获取运行时模型对象实例(Python对象),并利用实例的数据生成动态搜索的匹配项(包含概要信息和相应链接)。
步骤5,动态匹配项和静态匹配项被一同返回给表现层模块,用于生成搜索结果页面,呈现给用户。
现再举一实例,简单说明本发明,如图13所示,部署网络设备系统:
●整套系统内嵌在“网络设备”物理单元内部。主要由“网页服务器”和“WebUI应用服务器”两个运行实体(进程)组成。
●网页服务器负责监听HTTP端口并响应来自客户端浏览器的请求。网页服务器使用开源软件Lighttpd(http://www.lighttpd.net)
●WebUI应用服务器负责响应来自网页服务器的请求(使用WSGI协议http://zh.wikipedia.org/zh-cn/Web服务器网关接口)。
●WebUI应用服务器中包含了上文中描述的各组成模块:表现层模块,模型层模块,搜索子系统。表现层模块直接与网页服务器通信,模型层模块与网络设备操作系统通信实现数据的读取和配置的更改操作。
如图14所示,呈现了一个简单的功能示例,搜索关键词为“HTTP”,搜索结果包括了动态匹配的包含关键词的模型实例(httpvs1)及静态匹配的包含关键词的模型定义(HTTP全局配置)。
需要说明的是,在众多GUI的实现方式中,Web(网页)技术是被广泛运用的,该技术将Web服务器内置于网络设备中,设备管理员通过任何网页浏览器都可以远程访问设备并进行配置和管理。上述本发明技术方案的陈述主要以WebUI为例,但并不限于Web技术,还可以适用于其他GUI技术方案的实现,例如WPF(WindowsPresentationFoundation/Windows呈现基础)、JavaSwing(Java应用程序用户界面开发包)等。
本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明没有引入上述各设备实施方式以及与解决本发明所提出的技术问题关系不太密切的单元,但这并不表明不存在上述设备实施方式以及其它有关实施单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种网络设备配置及状态信息的整合搜索系统,是由用户端浏览器、网页服务器,网络应用服务器及网络设备操作系统组成,其特征是,所述的网络应用服务器中,至少包括表现层模块、模型层模块和搜索子系统,所述的网络设备操作系统中包括有模型-系统接口库;
所述的表现层模块,根据用户请求和系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器;
所述的模型层模块,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据;
所述的搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态数据,并向表现层模块返回搜索结果的页面数据;
所述的模型-系统接口库,用于将所有经上述模型层模块定义的接口声明和实现共同编译成一个模型-系统接口库,供系统运行时的模型层模块调用。
2.根据权利要求1所述的一种网络设备配置及状态信息的整合搜索系统,其特征是,所述的模型层模块包括静态数据请求处理模块、系统模型结构定义模块、动态数据请求处理模块和数据缓存模块。
3.根据权利要求1所述的一种网络设备配置及状态信息的整合搜索系统,其特征是,所述的搜索子系统包括静态搜索器和动态搜索器,分别用于实现静态匹配项和动态匹配项的搜索,并将整合后的匹配项作为搜索结果输出给上述的表现层模块。
4.一种网络设备配置及状态信息的整合搜索方法,其特征是包括以下步骤:
步骤1,整合网络设备配置及状态信息的静态数据及动态数据,构建系统模型与属性组及属性关联的系统模型结构;
步骤2,基于上述系统模型结构,设置用户请求与网络设备操作系统之间进行数据交互的系统模块;
步骤3,静态搜索:系统运行时,基于上述系统模块,首先进行用户请求
关键词的静态搜索,对搜索结果进行排序,获得网络设备配置及状态信息的静态匹配项;
步骤4,动态搜索:使用由模型层模块为搜索子系统提供系统模型结构的CLI形式接口,获得网络设备配置及状态信息的动态匹配项;
步骤5,动态匹配项和静态匹配项被一同返回给表现层模块,用于生成搜索结果页面,呈现给用户。
5.根据权利要求4所述的一种网络设备配置及状态信息的整合搜索方法,其特征是,所述的步骤1包括以下分步骤:
定义网络设备配置及状态信息的配置和管理为最终用户提供两种界面:命令行用户界面(简称CLI)和图形用户界面(简称GUI);
在上述图形用户界面设置统一的关键词搜索入口,所述的关键词包括网络设备配置类别概念关键词、某项配置名称关键词、某项配置运行值关键词;
定义将网络设备配置及状态信息的关键词按照系统模型组织,一个系统模型是网络设备里一组相关配置或状态信息的集合所构成的虚拟对象;
定义上述每种网络设备配置及状态信息由系统模型的一个属性表达,多个相关的属性构成属性组,系统模型-属性组-属性的关联结构构成系统模型结构;
定义用户界面的页面结构与上述系统模型-属性组-属性的对应关系;
定义搜索结果由一系列与上述系统模型结构相匹配项组成。
6.根据权利要求4所述的一种网络设备配置及状态信息的整合搜索方法,其特征是,步骤2包括以下分步骤:
设置表现层模块,根据用户请求和系统模型结构,动态地获取数据并生成用户界面页面返回用户端浏览器;
设置与上述表现层模块连接的模型层模块,用于根据所述的系统模型结构定义用户请求及其与网络设备操作系统之间的接口声明和实现、并从网络设备操作系统获取用户搜索结果的页面数据;
连接模型层模块与网络设备操作系统,使得用户可以根据需求进行配置操作以及在系统运行时获得搜索结果页面数据;
设置搜索子系统,用于搜索模型层模块的静态系统模型结构,以及系统运行时的动态网络设备配置及状态信息,并向表现层模块返回搜索结果的页面数据。
7.根据权利要求6所述的一种网络设备配置及状态信息的整合搜索方法,其特征是,上述的设置模型层模块包括根据用户请求的关键词进行系统模型结构定义、并生成静态系统模型结构查询接口的步骤,和系统运行时生成动态系统模型结构查询接口的步骤,以及获取来自网络设备操作系统的动态网络设备配置及状态信息的步骤。
8.根据权利要求6所述的一种网络设备配置及状态信息的整合搜索方法,其特征是,上述的系统模型结构定义及接口声明和实现可采用Python类技术实现。
9.根据权利要求6所述的一种网络设备配置及状态信息的整合搜索方法,其特征是,在系统开发编译阶段,将上述的接口声明和实现及其实现的数据接口共同编译成一个模型-系统接口库,并予以发布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410281047.XA CN105183736B (zh) | 2014-06-20 | 2014-06-20 | 网络设备配置及状态信息的整合搜索系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410281047.XA CN105183736B (zh) | 2014-06-20 | 2014-06-20 | 网络设备配置及状态信息的整合搜索系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183736A true CN105183736A (zh) | 2015-12-23 |
CN105183736B CN105183736B (zh) | 2019-01-29 |
Family
ID=54905823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410281047.XA Active CN105183736B (zh) | 2014-06-20 | 2014-06-20 | 网络设备配置及状态信息的整合搜索系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183736B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268594A (zh) * | 2017-12-14 | 2018-07-10 | 北京奇艺世纪科技有限公司 | 一种数据查询方法和装置 |
CN110825796A (zh) * | 2019-10-09 | 2020-02-21 | 上海易点时空网络有限公司 | 数据获取的方法、装置及系统 |
CN114296809A (zh) * | 2021-12-24 | 2022-04-08 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110286360A1 (en) * | 2006-05-19 | 2011-11-24 | Cisco Technology Inc. | Method and apparatus for simply configuring a subscriber appliance for performing a service controlled by a separate service provider |
CN103138965A (zh) * | 2011-11-28 | 2013-06-05 | 中国电信股份有限公司 | 一种查询物联网设备状态的方法、装置和系统 |
-
2014
- 2014-06-20 CN CN201410281047.XA patent/CN105183736B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110286360A1 (en) * | 2006-05-19 | 2011-11-24 | Cisco Technology Inc. | Method and apparatus for simply configuring a subscriber appliance for performing a service controlled by a separate service provider |
CN103138965A (zh) * | 2011-11-28 | 2013-06-05 | 中国电信股份有限公司 | 一种查询物联网设备状态的方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
王倩: "无线通信网络设备性能监控系统的研究与开发", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268594A (zh) * | 2017-12-14 | 2018-07-10 | 北京奇艺世纪科技有限公司 | 一种数据查询方法和装置 |
CN110825796A (zh) * | 2019-10-09 | 2020-02-21 | 上海易点时空网络有限公司 | 数据获取的方法、装置及系统 |
CN110825796B (zh) * | 2019-10-09 | 2021-01-19 | 车轮互联科技(上海)股份有限公司 | 数据获取的方法、装置及系统 |
CN114296809A (zh) * | 2021-12-24 | 2022-04-08 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
CN114296809B (zh) * | 2021-12-24 | 2023-05-05 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
Also Published As
Publication number | Publication date |
---|---|
CN105183736B (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Malyshev et al. | Getting the most out of Wikidata: semantic technology usage in Wikipedia’s knowledge graph | |
EP3514694B1 (en) | Query translation | |
CN105122243B (zh) | 用于半结构化数据的可扩展分析平台 | |
JP4264118B2 (ja) | ネットワーク上の異なる情報源から情報を構成する方法 | |
US7529740B2 (en) | Method and apparatus for organizing data sources | |
KR101646754B1 (ko) | 모바일 시멘틱 검색 장치 및 그 방법 | |
US20150269494A1 (en) | Graph-based organization entity resolution | |
CN110633186A (zh) | 用于电力计量微服务架构的日志监控系统及实现方法 | |
CN101436192A (zh) | 用于优化针对垂直存储式数据库的查询的方法和设备 | |
US11321336B2 (en) | Systems and methods for enterprise data search and analysis | |
CN109783484A (zh) | 基于知识图谱的数据服务平台的构建方法及系统 | |
US20160124947A1 (en) | Systems and methods for enterprise data search and analysis | |
CN116034349A (zh) | 列式分析存储格式的半结构化数据的概率文本索引 | |
Fatima et al. | New framework for semantic search engine | |
CN105183736A (zh) | 网络设备配置及状态信息的整合搜索系统及方法 | |
Fatima et al. | User experience and efficiency for semantic search engine | |
US9984108B2 (en) | Database joins using uncertain criteria | |
US10055450B1 (en) | Efficient management of temporal knowledge | |
Wittenburg et al. | An adaptive document management system for shared multimedia data | |
LIM et al. | Web mining-The ontology approach | |
US8015210B2 (en) | Method and system for generating string-based addresses | |
US20160019204A1 (en) | Matching large sets of words | |
Li et al. | Fedsa: A data federation platform for law enforcement management | |
Mielke et al. | Flexible semantic query expansion for process exploration | |
CN111709239A (zh) | 一种基于专家逻辑结构树的地学数据发现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100125 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001, twenty-first Century Patentee after: Beijing Huayao Technology Co., Ltd Address before: 100125 Beijing city Chaoyang District Liangmaqiao Road No. 40 building 10 room 1001, twenty-first Century Patentee before: Huayao (China) Technology Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |