CN100561942C - 基于模板集的命令行回显信息解析方法及装置 - Google Patents

基于模板集的命令行回显信息解析方法及装置 Download PDF

Info

Publication number
CN100561942C
CN100561942C CNB2006101454651A CN200610145465A CN100561942C CN 100561942 C CN100561942 C CN 100561942C CN B2006101454651 A CNB2006101454651 A CN B2006101454651A CN 200610145465 A CN200610145465 A CN 200610145465A CN 100561942 C CN100561942 C CN 100561942C
Authority
CN
China
Prior art keywords
template
template set
echo message
module
order line
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.)
Active
Application number
CNB2006101454651A
Other languages
English (en)
Other versions
CN1946039A (zh
Inventor
程剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CNB2006101454651A priority Critical patent/CN100561942C/zh
Publication of CN1946039A publication Critical patent/CN1946039A/zh
Application granted granted Critical
Publication of CN100561942C publication Critical patent/CN100561942C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于模板集的命令行回显信息解析方法及装置,本方法将回显信息与模板集的模板进行分层匹配,匹配成功时将模板匹配的参数信息按模板集中的相对层次关系保存。本装置包括业务模块:根据输入的模板集名称和设备的地址信息,执行解析模块并保存解析模块执行的结果;模板集存储模块:存储预先设置的模板集文件;解析模块:根据模板集存储模块对应的模板集对命令行回显信息进行解析。本发明通过分层的模板集对回显信息逐一进行解析,对不同设备版本可以获得较为标准统一的结果,满足了网管软件使用命令行管理数字通迅设备的需求,可有效解决现有技术中使用网管软件难于对命令行回显信息进行解析以及现有技术解析不足的问题。

Description

基于模板集的命令行回显信息解析方法及装置
技术领域
本发明涉及一种命令行回显信息解析方法及装置,尤其是一种根据预设的模板集对命令行回显信息进行解析的方法及装置,属于数字通讯领域。
背景技术
在数字通讯领域中,一般包括交换机和路由器等设备,对这些设备进行管理主要有以下三种方式:
(1)命令行  它是网络设备提供的一种字符界面交互方式,有很大的灵活性。目前设备均支持通过串口、远程登录、拨号等方式,终端或终端仿真软件通过计算机上串口和交换机的控制口相连,访问交换机的命令行接口,设备会在显示终端回显提示符,用户在显示终端输入相应的命令,命令解析模块就会对输入的命令进行解析,设备执行命令并把结果回显在显示的终端上,如图1所示,在显示终端输入了命令“display device”,命令执行的结果被回显到显示终端上。
(2)网络管理协议或网管  基于TCP/IP的网络管理由网络管理站和被管的网络单元(也称被管设备)两部分组成。这两部分的通信协议,叫做网络管理协议,目前最为广泛的网络管理协议是简单网络管理协议(Simple Network Management Protocol,简称SNMP)。通过网络管理协议实现对设备的管理,可以使用统一的方法进行管理。网管软件是一套可用于监视和管理网络及其设备的软件,通常带有图形操作界面,具有较好的用户界面。现在的网管软件多数通过SNMP协议来实现设备的管理。
(3)WEB方式  WEB浏览器方式,可以通过带外管理接口,也可以通过配置带内虚拟接口管理。可以在内外网使用,但会增加前端的负担,而且配置复杂,用的较少。
管理设备的上述3种方式中,虽然SNMP和网管软件用户界面友好并且作为标准有统一的方法管理,但在通用性方面却有限。一些厂家可能对私有节点进行了保护,另一方面一些老的设备可能并不支持SNMP管理的功能,这造成了对网管使用的限制。命令行管理方式通用性较好,设备通过命令行均可以进行管理,但它使用的字符界面同现代的图形界面相比不够友好,并且它没有固定的标准格式,不同设备的命令行格式可能出入较大,难以使用统一的方法来进行管理。命令的回显信息,比如图1中输入命令“display device”后,命令的回显信息同命令相比又更为随意,管理员还需要对不相关信息进行过滤。
目前采用网管软件,必须以统一的形式在页面上呈现设备信息,这就需要提供一种通用机制,可以识别这种命令行的差异性,使得网管软件可以在不同设备命令行的回显信息中,提取相同含义的字段,以方便对不同设备的管理。现有技术对于解析不同设备命令的回显信息方面还存在着不足,因此需要一种对不同设备的命令行回显信息进行解析,以自动适应配置设备、不同厂商的命令差异。
发明内容
本发明提供一种基于模板集的命令行回显信息解析方法及装置,解决现有技术中使用网管软件难于对命令行回显信息进行解析的问题,方便网管软件通过命令行方式,对设备的配置或运行状态进行获取及管理,可实现对不同设备进行统一管理的目的。
为了实现上述目的,本发明提供了一种基于模板集的命令行回显信息解析方法,包括:将命令行回显信息与模板集的主模板进行匹配;根据命令行回显信息与模板集的主模板匹配的结果,如果匹配成功则后续命令行回显信息执行该模板集的后续模板的匹配,否则做解析失败的处理;将匹配的参数按模板在模板集中的相对层次关系进行保存;根据匹配的参数获取设备配置信息;其中,所述模板集由一个或多个模板构成;所述模板集指定一条模板为主模板;
其中,命令行回显信息与模板集的模板进行匹配包括:
将命令行回显信息的命令头与模板的根节点进行匹配;
判断命令头与根节点是否一致,如果不一致则匹配失败,执行下一模板;否则将命令行回显信息去除命令头后与模板的分支节点进行匹配;
判断去除命令头后的命令行回显信息是否与一分支节点一致,如果否,则所有分支节点匹配失败,修改为根节点匹配前的命令行回显信息,执行下一模板;如果是,则匹配成功,保存匹配的参数信息,执行下一模板。
上述技术方案中,还包括:当命令行回显信息与子模板集的主模板相匹配时,后续命令行回显信息进行该子模板集的后续匹配。
上述技术方案中,所述的后续匹配还包括:将与主模板相匹配的命令行回显信息的后续命令行回显信息与主模板的一至多条可能从模板进行匹配;其中,所述从模板为主模板以外的其它模板。
上述技术方案中,所述的后续匹配进一步包括:将与主模板或从模板相匹配命令行回显信息的后续命令行回显信息与主模板或从模板的一至多条后继模板和可能后继模板进行匹配。
上述方案中,当匹配到后继模板和/或可能后继模板时,将后继模板及可能后继模板的参数保存到上一条模板的参数信息中。
上述技术方案中,还包括:判断条件模板中的条件表达式是否满足要求,如果满足要求则打开条件模板中的模板和/或子模板集,否则执行条件模板的下一条模板。
当与后续命令行回显信息相匹配的从模板为下一层子模板集的主模板时,进行下一层子模板集的后续匹配,所述从模板为主模板以外的其它模板。所述下一层子模板集的后续匹配包括:
a)使用当前层子模板集对命令行回显信息进行匹配;
b)判断当前层子模板集内是否有模板与命令行回显信息相匹配,如果是执行c),否则执行e);
c)判断当前层子模板集内匹配成功的模板是否为从模板,如果否,则保存匹配的参数,本条命令行回显信息匹配成功;如果是则执行d);
d)判断当前层子模板集内匹配成功的模板是否为当前层的下一层子模板集的主模板,如果否,则保存匹配的参数,本条命令行回显信息匹配成功;如果是,将当前层子模板集更新为当前层的下一层子模板集,进行当前层的下一层子模板集的后续匹配;
e)判断当前层子模板集是否是模板集的第一层,如果是则匹配失败,否则将当前层子模板集更新为当前层的上一层子模板集,执行a)。
本发明还提供了一种用于命令行回显信息解析的装置,包括:业务模块:与解析模块连接,用于根据输入的模板集名称和设备的地址信息,执行解析模块并保存解析模块执行的结果;模板集存储模块:与解析模块连接,用于存储预先设置的模板集文件;解析模块:用于根据在模板集存储模块中找到的对应的模板集对命令行回显信息进行解析;模板集索引模块:与解析模块和模板集存储模块连接,用于记录模板集文件存储的位置信息及相对应的目录信息的索引,根据所述索引可在模板集存储模块中找到对应的模板集,向解析模块传送模板集存储的位置;所述解析模块包括:版本模块:与业务模块和模板集索引模块连接,通过业务模块提供的设备地址信息获取设备版本信息,根据获取的设备版本信息和业务模块提供的模板集名称一起从模板集索引模块获取模板集存储的位置。
本发明提出了一种基于模板集的命令行回显信息解析方法及装置,通过将命令行回显信息与模板集的各个模板进行匹配,采用分层匹配的方式,当匹配成功时保存模板匹配的参数信息;当所有模板均不匹配时返回;将匹配的参数分层保存在各个模板对应的位置,对不同设备版本可以获得较为标准统一的结果,根据设备命令行版本信息的不同可预先设置不同的模板集。由于本方法采用分层匹配的方法对回显信息逐一进行解析,可以遍历模板集直到获取一条模板成功匹配的路径,并匹配到相应的参数信息。本发明满足了网管软件使用命令行管理数字通迅设备的需求,扩大了网管软件管理设备的范围,通过增加模板的方式来支持对新设备的管理,为网管产品的发布和功能扩充提供了极大的灵活性,可有效解决现有技术中使用网管软件难于对命令行回显信息进行解析以及现有技术解析的不足的问题。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术命令行回显信息示意图;
图2为本发明基于模板集的命令行回显信息解析方法的流程图;
图3为本方法实施例模板示意图;
图4为本方法实施例模板集示意图;
图5为本方法每个模板与一行回显信息进行匹配的实施例流程图;
图6为本方法子模板集的后续匹配的流程图;
图7为本发明用于命令行回显信息解析的装置实施例示意图;
图8为本发明装置优选实施例示意图。
具体实施方式
图2为本发明基于模板集的命令行回显信息解析方法的流程图。如图2所示,本方法包括:
将命令行回显信息与模板集的主模板进行匹配;根据命令行回显信息与模板集的主模板匹配的结果,如果匹配成功则后续命令行回显信息执行该模板集的后续模板的匹配,否则做解析失败的处理;将匹配的参数按模板在模板集中的相对层次关系进行保存;根据匹配的参数获取设备配置信息;其中,所述模板集由一个或多个模板构成;所述模板集指定一条模板为主模板。当命令行回显信息与模板集的主模板相匹配时,后续命令行回显信息进行该模板集的后续匹配;当命令行回显信息与模板集的所有模板均不匹配时解析失败,结束。
本方法提出了一种基于模板的命令行回显信息解析方法,通过将命令行回显信息与模板集的各个模板进行匹配,采用分层匹配的方式,当匹配成功时保存模板匹配的参数信息;当所有模板均不匹配时结束。将匹配的模板参数按该模板在模板集中的相对层次关系进行保存,可以获得较为标准统一的结果,并且由于采用分层匹配的方法,可以遍历模板集直到获取一条模板成功匹配的路径。本发明通过分层的模板集匹配算法对回显信息逐一进行解析,对不同设备版本可以获得较为标准统一的结果,满足了网管软件使用命令行管理数字通迅设备的需求,扩大了网管软件管理设备的范围。通过增加模板的方式来支持对新设备的管理,这一特性为网管产品的发布和功能扩充提供了极大的灵活性。
图3为本方法中实施例模板的示意图。本发明中每一模板表达了与其相匹配的一条命令行回显信息的特征,以及需要从中提取的参数的名称、参数类型和参数出现位置。
一条模板主要包括以下主要元素:
(1)根节点关键字,解析时进行完全匹配,一条模板包含一个根节点,如图3所示的acl,为根节点关键字;
(2)分支节点关键字,解析时进行完全匹配,一条模板可以包含一个或多个分支节点,如图3中的number、match-order。
(3)变量名,以‘$’号开头的名字代表变量名,但不包括‘:’以后部分,如$number、$matchOrder。匹配时从匹配到的一行回显信息中取值。
(4)大括号,大括号包含了一个或多个分支,各分支由‘|’号分隔。如图3中大括号内的模板由‘|’号分隔成两个分支:“number$number:IntRange[2000,3999][match-order $matchOrder:MatchOrder]”和“number$number:IntRange[3000,5999]”。在与大括号内的多个分支进行匹配时可以多选一,从中选出一个分支进行匹配,只要所选分支与实际回显信息匹配成功即可。
(5)中括号,中括号包含了一个或多个子分支,各子分支由‘|’号分隔。匹配时可以选择一个子分支与之匹配或者不匹配中括号内的内容。
(6)变量类型,用于描述变量可能的取值或特征等。变量名后以‘:’开头的名称,如MatchOrder类型修饰了变量$matchOrder。
模板中大括号和中括号可以进行多重嵌套,并且变量类型支持自定义,如类型MatchOrder为自定义类型,在它的定义中可以枚举其所有可能的取值。
根据构造的模板,我们可以将图3的模板抽象为两个元素:acl为模板的根节点,大括号内是一个多分支节点。该分支节点又继续细分为两条子分支。根据这种构造方法可以继续划分下去,直到所有分支节点被划分完全。
图4为实施例模板集示意图。多个解析的模板组成模板集。本发明所述模板集还包括表示各个模板之间的相互制约关系的关系标签,通过关系标签可使有相互关系的模板在需要时一起使用以完成一个特定业务内容的解析。
一个解析模板集可以包括以下关系标签:
1.模板集标签:TemplSet,其下可以嵌套其它任何标签,包括它自己即模板集可以包括子模板集,子模板集可以包括迭代子模板集,依此类推。如图4所示,模板集名称为“basic Acl”。
2.主模板标签:Main,嵌套在模板集标签下表示该模板集内的一条主模板。如图4所示,acl使用了main标签,所以作为主模板来使用。
3.从模板标签:Templ,和Main相对应,表示该模板集内的一条普通模板。如图4所示,rule使用的是templ标签,作为从模板使用。
4.后继模板标签:Succeed,可以跟在主模板标签、从模板标签、后继模板标签、可能后继模板标签之后,表示和上面一条模板之间存在一种必然的顺序关系。如图4所示,标签Succeed内的模板为后继模板,跟在主模板acl后面,表示主模板acl的一条后继模板。
5.可能后继模板标签:MaySucceed,可以跟在主模板标签、从模板标签、后继模板标签、可能后继模板标签之后,表示和上面一条模板之间存在一种非必然的顺序关系。如图4所示,标签MaySucceed内的模板为可能后继模板,跟在主模板后面的模板(2)和从模板之后的模板(3)都为可能后继模板。
6.条件标签:Cond,控制对其下的模板和模板集的使用,通过对条件表达式的求值来判断是否打开其下的模板。可以嵌套所有其它任何标签,包括它自己。
上述各个关系标签中包含的即为不同类型的模板,例如:MaySucceed标签之间的模板即为可能后继模板,Templ标签之间的即为从模板,一个模板集可以定义一条主模板和若干从模板。
从图4可看出,本模板集主要包含了两条模板,模板名称分别为acl和rule。主模板acl后面跟了两条后继模板1,2,表示如果主模板匹配到当前的一行命令回显信息,那么后面两行命令回显信息可能分别和模板1,2匹配;也可能模板2直接匹配下一行,模板1不做匹配,这是因为后继模板表示与上一条模板的必然顺序关系,而对于可能后继模板,则表示上一条模板后面可能存在、也可能不存在可能后继模板。
图5为本方法中每个模板与一行回显信息进行匹配的实施例流程图。模板集的各个模板包括根节点和一个或多个分支节点,所述将命令行回显信息与模板集的各个模板进行匹配包括:
将命令行回显信息的命令头与模板的根节点进行匹配;
判断命令头与根节点是否一致,如果不一致则匹配失败,执行下一模板;否则将命令行回显信息去除命令头后与模板的分支节点进行匹配;
判断去除命令头后的命令行回显信息是否与一分支节点一致,如果否,则所有分支节点匹配失败,修改为根节点匹配前的命令行回显信息,执行下一模板;如果是,则匹配成功,保存匹配的参数信息,执行下一模板。
例如:对于一行回显信息acl number 2005 match-order auto与图3中的模板进行匹配,首先此回显信息的命令头acl与模板的根节点一致,然后将去掉命令头后的回显信息,即”number 2005match-order auto“与图3的一个分支节点进行匹配,可以匹配到大括号内的前一个分支节点,“number$number:IntRange[2000,3999][match-order$matchOrder:MatchOrder],最后匹配到两个参数值:number:2005;matchOrder:auto。每条命令行回显信息与一模板匹配成功后,会收集匹配到的参数信息,结果以参数名和参数值对应保存,名字对应为模板内的变量名,参数值对应为从回显行中匹配到的字符串。将模板抽象为节点链表后,就可以通过从模板根节点开始遍历模板分支节点,直到获取一条所有节点都成功匹配的路径,并从中提取相应的参数值信息。模板集由若干模板组成,每行回显信息将匹配到的参数名和参数值与对应模板相应保存,这样,在回显信息全部解析完毕,可以清晰的看到每个模板匹配到的参数信息,由于保存时按照各个模板在模板集的层次位置进行保存,所以最后的解析结果也分层表示,层次分明,易于读取。
本方法中,所述模板集包括子模板集时,还包括:当命令行回显信息与子模板集的主模板相匹配时,后续命令行回显信息进行该子模板集的后续匹配。
上述方案中,还包括:判断判断条件模板内的条件表达式是否满足,是则打开条件模板中的模板和/或子模板集,否则执行下一模板。
上述技术方案中,还包括:将与主模板相匹配命令行回显信息的后续命令行回显信息与从模板进行匹配。
上述技术方案中,在所述模板集的主模板或从模板、子模板集的主模板或从模板之后可以设置有后继模板,还可以设置有可能后继模板,所述的后续匹配进一步包括:将与主模板或从模板相匹配命令行回显信息的后续命令行回显信息与主模板或从模板的一至多条后继模板和可能后继模板进行匹配。
上述方案中,当匹配到后继模板和/或可能后继模板时,将后继模板及可能后继模板的参数保存到它所在的上一条模板的参数信息中。
上述技术方案中,当后续命令行回显信息相匹配的从模板为下一层子模板集的主模板时,进行下一层子模板集的后续匹配。
图6为本发明子模板集的后续匹配的流程图。如图6所示:
所述下一层子模板集的后续匹配包括:
a)使用当前层子模板集对命令行回显信息进行匹配;
b)判断当前层子模板集内是否有模板与命令行回显信息相匹配,如果是执行c),否则执行e);
c)判断当前层子模板集内匹配成功的模板是否为从模板,如果否,则保存匹配的参数信息,如果是则执行d);
d)判断当前层子模板集内匹配成功的模板是否为当前层的下一层子模板集的主模板,如果否,则保存匹配的参数信息,如果是,将当前层子模板集更新为当前层的下一层子模板集,进行当前层的下一层子模板集的后续匹配;
e)判断当前层子模板集是否是模板集的第一层,如果是则匹配失败,否则将当前层子模板集更新为当前层的上一层子模板集,执行a)。
在匹配第一行回显信息时是从模板集的起始位置,即顶层开始的,如果后续命令行回显信息相匹配的从模板为下一层子模板集的主模板时,进行下一层子模板集的后续匹配;此时后续的命令回显信息就会从子模板集开始匹配。如果模板集只有一层,即模板集不包括子模板集时,后续匹配的过程与图6的过程类似,只是当前层子模板集改为当前模板集。
由于模板集中可以指定一条模板为主模板,只有主模板成功匹配后,其它模板才会同主模板一起参与后续模板的匹配。另外模板集命令行解析时采用分层匹配,这样使得同一层的不同子模板集之间,相同名称的模板在解析命令的时候不会相互干扰。一条模板在成功匹配到一行回显后,会收集参数值信息,结果以参数名值对保存。模板集每匹配到主模板,就会重新申请参数空间存放该模板及其后续可能匹配到的参数信息。其中,每个模板的后继模板和可能后继模板的参数保存在它的上一条模板的参数信息中。比如:主模板的后继模板和可能后继模板匹配到的参数信息保存在主模板中,从模板的后继模板和可能后继模板匹配到的参数信息保存在从模板中,依此类推。模板集中所有模板匹配到的参数值封装为参数集的形式,按照匹配到的各个层的位置保存,应用层通过调用其接口并传入具体模板名称,可以查询到模板集中每条模板匹配到的参数值信息。
下面对图6的模板集解析流程举例说明:
例如:命令“display acl all“的命令行回显信息如表一所示:
表一
Basic ACL 3004,1 rule
ACL′s step is 4    (1)
ACL′s step is 4    (2)
     rule 2permit ip
     rule 2comment rule-for-acl-basic
Basic ACL 3000,1rule
ACL′s step is 1“0times match”    (3)
     rule 0 deny ip
使用图4中的模板集对表一的命令行回显信息进行解析,如图4中acl使用了main标签,所以作为主模板来使用,rule作为从模板,主模板后面根了两条后继模板1,2,如果主模板匹配到当前的一行回显,那么后面两行回显可能分别和模板1,2匹配;也可能模板1不做匹配,模板2直接匹配下一行。
根据上述原理,对表一的命令行回显信息进行解析:表一中第一行回显信息“Basic ACL 3004,1 rule”匹配到图4中主模板“BasicACL$aclNumber:Format[$,]{$ruleCount}{rules,|rule,|rules|rule}[match-order is $matchOrder:MatchOrder]。由每一行回显信息与模板进行匹配的步骤可知,aclNumber匹配到3004,大括号{$ruleCount}匹配到1,大括号{rules,|rule,|rules|rule}匹配到rule,因为中括号[match-orderis $matchOrder:MatchOrder]在匹配时可以选择一个分支或忽略所有分支,在第一行回显信息rule后面没有信息,所以忽略中括号,不作匹配,最后得到第一行回显信息,即主模板的参数信息“aclNumber=3004,ruleCount=1”。表一中第二、三行回显信息(1),(2)分别匹配图4中的模板(1),(2);因为第二、三行回显信息(1),(2)分别匹配到的是主模板的可能后继和后继模板,所以匹配到的参数信息保存在主模板的参数信息中。
如果模板集只有一层,即模板集不包括子模板集时,后续匹配的过程与图6的过程类似,只是当前层子模板集改为当前层模板集。表一中第四行回显信息“rule 2 permit ip”在与图4的模板集进行匹配时使用图6所示的模板集解析方法进行解析,使用当前层模板集对回显信息进行匹配a,“rule 2 permit ip”与当前层模板集的从模板匹配,即与“rule$id$acess:Acess[source$srcAdd:AddAll[$srcMsk]][$fragment:Fragment][time-range$tr:string[1,32]]”相匹配,当前层模板集匹配成功b,执行步骤c的判断,第四行回显信息与当前层模板集的从模板匹配c,从模板不是当前层的下一层子模板集的主模板d,本实施例中从模板不包括子模板集,所以第四行回显信息只与从模板匹配,匹配成功则保存从模板的参数信息。同理,表一中第五行回显信息“rule 2 commentrule-for-acl-basic”匹配到图4模板集中从模板的可能后继模板(3),第五行回显信息将匹配的参数保存到从模板的参数信息内。
表一中第六行回显信息与第一行回显信息解析过程类似,不再详述,第七行回显信息“ACL’s step is 1“0 times match”(3)匹配到图4所示模板集中的模板(2),为主模板的一条后继模板。第八行回显信息与第四行回显信息匹配过程类似,不再详述。表二是表一回显信息的最后解析结果:
表二
{//basicAcl                        {//basicAcl
   {//acl                              {//acl
      aclNumber:3004                         aclNumber:3000
       ruleCount:1                           ruleCount:1
      matchOrder:1                          matchOrder:1
         discrip:ACL′s step is 4              stepNum:1
         stepNum:4                      }
     }                                {//rule
     {//rule                                        id:0
              id:2                              access:0
          access:1                            fragment:0
        fragment:0                    }
          srcAdd:0.0.0.0            }
         comment:rule-for-acl-basic
     }
}
从表二的解析结果中可以看到,后继模板的参数值被合并到它所跟的上一条模板参数内:stepNum和discrip参数和主模板acl的参数合并在一起,comment参数和从模板rule的参数合并在一起。从表二可看出,前后两组acl被区分开来了,acl均为主模板,每匹配到主模板时,模板集就会重新申请参数集空间存放后续该模板集匹配到的参数值。另外模板中定义的参数:fragment:Fragment在解析结果中为fragment:0,这里因为模板集定义中指定参数fragment的类型是Fragment,
在具体Fragment的定义里面有一个默认值为0:
<ParaType name=″Fragment″type=″int″default=″0″>
     <Value>fragment(1)</Value>
</ParaType>
对于模板中包含了默认值的类型的参数,如果实际命令行回显信息中没有匹配的值,就会将其参数类型的默认值返回。
解析结果中的matchorder:1,,srcAdd:0.0.0也为参数的默认值。
通过表二的解析结果,可以方便的从解析后的模板参数名查询到具体的参数值。对于不同设备命令行版本间差异性,可以通过构造不同的模板来屏蔽版本之间的差异。由于模板名称和参数名称对不同设备的同一业务来说相对固定,不同版本的模板定义时只要做到这两项相统一,网管软件即可使用一套代码和多组模板配合来完成业务的管理工作。
本方法中,还包括:根据设备版本信息和模板集名称从模板集索引文件中找到对应的模板集定义文件路径,获取对应的模板集;所述模板集索引文件包含设备版本信息、模板集名称及模板集文件路径。根据预先设置的模板集,可以定义一个记录模板集目录信息的索引文件;根据版本信息来从索引文件寻找对应的模板集文件。
通过设置模板集索引文件可更为高效的管理模板文件,以便快速找到对应的模板集,从而使解析更快速、准确。对于一般设备,其命令行版本可以由设备系列号、通用路由版本号和版本发行号三个信息唯一确定,其中版本发行号对一些设备来说不是必需的。通过定义一个记录模板集目录信息的索引文件,可以提高模板文件管理的通用性。索引文件可以包含如下几列的表:设备系列号,通用路由版本号,版本发行号,模板集名称,模板集所在文件路径。对于一个设备,首先获取到它的3个版本信息,并根据具体业务提供的模板集名称一起,获取对应模板集文件。对于索引文件内的某一条记录,其版本发行号也可以不提供,在查找文件路径时优先使用匹配了版本发行号的模板文件,只有在其未定义时才使用不包含版本发行号的模板文件。
图7为用于实现上述方法的装置实施例示意图,如图7所示,本装置具体包括:业务模块:与解析模块连接,用于根据输入的模板集名称和设备的地址信息,执行解析模块并保存解析模块执行的结果;模板集存储模块:与解析模块连接,用于存储预先设置的模板集文件;解析模块:用于根据模板集中存储模块对应的模板集对命令行回显信息进行解析。本装置中,业务模块提供设备的地址信息或IP地址,业务模块根据传入的地址信息以及执行业务的模板集名称,可以调用解析模块,解析模块在模板集存储模块中找到对应的模板集进行解析并将解析结果返回到业务模块。
图8为本发明装置的优选实施例示意图,如图8所示,本装置还包括:模板集索引模块:与解析模块和模板集存储模块连接,用于记录模板集文件存储的位置信息及相对应的目录信息的索引,根据所述索引可在模板集存储模块中找到对应的模板集,向解析模块传送模板集存储的位置。
所述解析还包括版本模块:与业务模块和模板集索引模块连接,通过业务模块提供的设备地址信息远程登录到设备上,获取一段设备版本信息,并解析成三个版本号,根据获取的设备版本信息和业务模块提供的模板集名称一起从模板集索引模块获取模板集存储的位置,执行命令行的解析。具体实现方式如前述方法的原理所示,在此不再详述。
本发明满足了网管软件使用命令行来管理数字通迅产品的需求,扩大了网管软件管理设备的范围。通过增加模板的方式来支持对新设备的管理,这一特性为网管产品的发布和功能扩充提供了极大的灵活性。本发明对于不同的命令回显信息构造了不同的模板,体现了对不同命令之间差异的适配性,并且本发明中在构建模板集时采用了主模板/从模板、后继模板、子模板集等组合方式,使命令行回显解析时可以遍历整个模板集中的每个模板,并且模板之间设置的关系标签可以使在解析时更快速的找到对应的模板,使匹配更为快速、准确。解析的结果易于识读,并且根据解析的结果可以很快找到对应的参数值,采用分层收集参数的方法,主从关系清晰、易于用户快速找到对应参数值;在模板集的管理方面,根据版本信息和对应模板集名称设置的索引文件可迅速查找到模板集的文件路径。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (8)

1.一种基于模板集的命令行回显信息解析方法,其特征在于,包括:
将命令行回显信息与模板集的主模板进行匹配;
根据命令行回显信息与模板集的主模板匹配的结果,如果匹配成功则后续命令行回显信息执行该模板集的后续模板的匹配,否则做解析失败的处理;
将匹配的参数按模板在模板集中的相对层次关系进行保存;
根据匹配的参数获取设备配置信息;
其中,所述模板集由一个或多个模板构成;所述模板集指定一模板为主模板;
其中,命令行回显信息与模板集的模板进行匹配包括:
将命令行回显信息的命令头与模板的根节点进行匹配;
判断命令头与根节点是否一致,如果不一致则匹配失败,执行下一模板;否则将命令行回显信息去除命令头后与模板的分支节点进行匹配;
判断去除命令头后的命令行回显信息是否与一分支节点一致,如果否,则所有分支节点匹配失败,修改为根节点匹配前的命令行回显信息,执行下一模板;如果是,则匹配成功,保存匹配的参数信息,执行下一模板。
2.如权利要求1所述的方法,其特征在于,还包括:
当命令行回显信息与子模板集的主模板相匹配时,执行该子模板集的后续匹配。
3.如权利要求1所述的方法,其特征在于,还包括:
判断条件模板内的条件表达式是否满足,是则打开条件模板中的模板和/或子模板集,否则执行条件模板的下一模板。
4.如权利要求1、2或3所述的方法,其特征在于,还包括:
将与主模板相匹配的命令行回显信息的后续命令行回显信息与主模板的一至多条后继模板和/或可能后继模板进行匹配。
5.如权利要求1、2或3所述的方法,其特征在于,还包括:
当与后续命令行回显信息相匹配的从模板为下一层子模板集的主模板时,进行下一层子模板集的后续匹配,所述从模板为主模板以外的其它模板;
其中,所述下一层子模板集的后续匹配包括:
a)使用当前层子模板集对命令行回显信息进行匹配;
b)判断当前层子模板集内是否有模板与命令行回显信息相匹配,如果是执行c),否则执行e);
c)判断当前层子模板集内匹配成功的模板是否为从模板,如果否,则保存匹配的参数,本条命令行回显信息匹配成功;如果是则执行d);
d)判断当前层子模板集内匹配成功的模板是否为当前层的下一层子模板集的主模板,如果否,则保存匹配的参数,本条命令行回显信息匹配成功;如果是,将当前层子模板集更新为当前层的下一层子模板集,进行当前层的下一层子模板集的后续匹配;
e)判断当前层子模板集是否是模板集的第一层,如果是则匹配失败,否则将当前层子模板集更新为当前层的上一层子模板集,执行a)。
6.如权利要求1所述的方法,其特征在于,所述将匹配的参数按模板在模板集中的相对层次关系进行保存包括:
保存后继模板和/或可能后继模板所匹配的参数信息到它所在的上一模板的参数信息内;
保存从模板或子模板集的参数信息到它所在模板集的参数信息内。
7.如权利要求1、2、3或6所述的方法,其特征在于,还包括:
根据设备版本信息和模板集名称从模板集索引文件中找到对应的模板集文件路径,获取对应的模板集;
所述模板集索引文件包含设备版本信息、模板集名称及模板集文件路径。
8.一种用于命令行回显信息解析的装置,其特征在于,包括:
业务模块:与解析模块连接,用于根据输入的模板集名称和设备的地址信息,执行解析模块并保存解析模块执行的结果;
模板集存储模块:与解析模块连接,用于存储预先设置的模板集文件;
解析模块:用于根据在模板集存储模块中找到的对应的模板集对命令行回显信息进行解析;
模板集索引模块:与解析模块和模板集存储模块连接,用于记录模板集文件存储的位置信息及相对应的目录信息的索引,根据所述索引可在模板集存储模块中找到对应的模板集,向解析模块传送模板集存储的位置;
所述解析模块包括:版本模块:与业务模块和模板集索引模块连接,通过业务模块提供的设备地址信息获取设备版本信息,根据获取的设备版本信息和业务模块提供的模板集名称一起从模板集索引模块获取模板集存储的位置。
CNB2006101454651A 2006-11-17 2006-11-17 基于模板集的命令行回显信息解析方法及装置 Active CN100561942C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101454651A CN100561942C (zh) 2006-11-17 2006-11-17 基于模板集的命令行回显信息解析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101454651A CN100561942C (zh) 2006-11-17 2006-11-17 基于模板集的命令行回显信息解析方法及装置

Publications (2)

Publication Number Publication Date
CN1946039A CN1946039A (zh) 2007-04-11
CN100561942C true CN100561942C (zh) 2009-11-18

Family

ID=38045259

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101454651A Active CN100561942C (zh) 2006-11-17 2006-11-17 基于模板集的命令行回显信息解析方法及装置

Country Status (1)

Country Link
CN (1) CN100561942C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955692A (zh) * 2011-08-29 2013-03-06 鸿富锦精密工业(深圳)有限公司 参数解析工具及解析方法
CN105183507A (zh) * 2015-08-24 2015-12-23 汉柏科技有限公司 一种应用程序间版本的匹配方法及系统
CN107911249B (zh) * 2017-11-28 2021-05-28 新华三技术有限公司 一种网络设备的命令行发送方法、装置和设备
CN112636996A (zh) * 2020-11-16 2021-04-09 中标软件有限公司 网络安全监测系统及在终端信息采集中区分操作命令与回显的方法
CN114070705A (zh) * 2021-11-16 2022-02-18 广东九博科技股份有限公司 基于命令行的设备网管方法、介质及设备
CN116506291B (zh) * 2023-06-28 2023-09-05 章和技术(广州)有限公司 一种电力系统网络设备配置内容解析方法及装置

Also Published As

Publication number Publication date
CN1946039A (zh) 2007-04-11

Similar Documents

Publication Publication Date Title
CN100561942C (zh) 基于模板集的命令行回显信息解析方法及装置
US8792385B2 (en) Method and device for auto-generating goose signal connection topology from substation level
CN100440809C (zh) 进行网络设备业务配置的方法及装置
EP1972093B1 (en) A method for the automatic generation of workflow models, in particular for interventions in a telecommunication network
CN105308927B (zh) 报文编辑处理方法和相关设备
CN1996302A (zh) 为联网的媒体服务器中所存储的内容管理书签信息的方法和装置
CN100372308C (zh) 网络拓扑图更新及网络拓扑管理方法
CN106462625A (zh) 针对大型图表的实时所保存查询更新
CN108365967A (zh) 动态配置通讯参数的方法、系统、终端及计算机可读存储介质
CN107247758B (zh) 基于银行核心系统的数据处理方法
CN109818848A (zh) 会话的展示方法和装置、存储介质、电子装置
CN107193917A (zh) 基于iid的全站系统配置文件无损数据更新方法
CN106330520A (zh) 一种终端设备的特征信息的提取方法及装置
CN104852813B (zh) 家庭网关设备中tr069参数节点的按需加载方法及系统
CN102902547A (zh) 一种命令行接口的命令构造与解析方法
US8201144B2 (en) Method and system for distributing software components
CN108733698A (zh) 一种日志消息的处理方法及后台服务系统
CN108345658A (zh) 算法计算轨迹的分解处理方法、服务器及存储介质
CN1716960B (zh) 产生包括xpath表达式的xml表示的管理事务的方法和设备
US7698277B2 (en) Query processor, query processor elements and a method of establishing such a query processor and query processor elements and a domain processor
CN106582013A (zh) 游戏服务系统、用于向在线的游戏更新数据的方法和装置
CN103888297A (zh) 交换机网络管理方法和系统
CN100386989C (zh) 基于人机交互语言的通用命令行输入装置及其方法
CN112737805B (zh) 一种配置方法、相关装置和系统
CN101193109B (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
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CP03 Change of name, title or address