CN1243431C - 宽带网络通信产品的通用路由平台命令行的解析方法 - Google Patents
宽带网络通信产品的通用路由平台命令行的解析方法 Download PDFInfo
- Publication number
- CN1243431C CN1243431C CN 02146266 CN02146266A CN1243431C CN 1243431 C CN1243431 C CN 1243431C CN 02146266 CN02146266 CN 02146266 CN 02146266 A CN02146266 A CN 02146266A CN 1243431 C CN1243431 C CN 1243431C
- Authority
- CN
- China
- Prior art keywords
- order
- command
- cache pool
- prototype
- input command
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种宽带网络通信产品的通用路由平台命令行的解析方法,该方法通过为每一个命令行模板建立存储命令原型的缓存池,当配置文件中的命令进行配置恢复时先将配置文件的输入命令进行缓存池解析,如果缓存池中有与之匹配的命令原型,则由该命令原型直接解析输入命令,否则从命令集树中对输入命令进行检索匹配,完成该输入命令的解析,并在检索匹配过程中将与输入命令相匹配且满足判决条件的命令原型加入缓存池。采用本发明,可使大量命令形式相同的命令通过缓存池解析而大幅度提高命令行解析效率,缩短系统启动时的配置恢复时间。
Description
技术领域
本发明涉及通信产品通用路由平台(简称VRP)技术,特别涉及一种宽带网络通信产品的通用路由平台命令行的解析方法。
背景技术
在宽带网络通信产品中,原命令行模块命令处理过程如图1所示。
命令行模块在VRP3配置管理的体系机构中,是命令行输入工具层的核心模块,其主要功能为命令的动态注册管理和命令的完全解析:
(1)用户输入处理模块接收到用户输入(结尾为“?”、Tab键或回车键的字符串)后,它调用命令行模块提供的命令处理函数,由命令行模块负责命令的解析;
(2)保存在配置文件中的命令在配置恢复时,调用命令行模块提供的命令处理函数,由命令行模块负责命令的解析。命令行模块在完成命令的解析后,进一步将命令参数通过配置管理平面向各协议模块下发处理。
每条命令都要从命令集树中进行递归匹配,将命令完全解析,整个过程非常复杂。随着各产品命令的增多和命令的日渐复杂,当配置文件很大时,配置恢复过程会变得非常耗时。
目前惯用的做法是对配置文件的每条命令都进行复杂的解析处理,整个处理过程非常耗时。这种命令解析方式适用于命令数目少、配置文件简单的情况,对宽带网络通信产品因新特性增加造成的命令膨胀,在处理上显得效率不足。
随着VRP平台在各产品的广泛应用,大配置文件时的系统配置恢复时间长问题日益突出,缩短系统配置恢复时间显得极其重要和必要。
发明内容
本发明的目的在于提供一种宽带网络通信产品的通用路由平台命令行的解析方法,以通过动态的缓存池技术,缩短系统配置恢复时间。
本发明的技术方案是:为命令行模板建立存储命令原型的缓存池,当配置文件中的命令进行配置恢复时执行下述步骤:
A、将配置文件的输入命令进行缓存池解析,如果缓存池中有与之匹配的命令原型,则由该命令原型直接解析输入命令,否则进行步骤B;
B、从命令集树中对输入命令进行检索匹配,完成该输入命令的解析,并在检索匹配过程中对可能与输入命令混淆而造成缓存池解析误判或歧异处理失效的命令原型作失效标记;
C、对与输入命令相匹配的命令原型进行入缓存池判决,如果该命令原型无失效标记且为唯一一个与输入命令相匹配的命令原型,则将该命令原型加入缓存池。
根据上述技术方案:
为每一个命令行模板均建立缓存池。
每一个命令行模板仅包含一个缓存池,其初始时为空。
所述缓存呈环形,该环形通过一个循环索引实现,由一个当前指针始终指向新加入缓存池的命令在该缓存池中的位置。
本发明的有益效果:
本发明充分利用了在大配置文件时命令形式重复的特点,通过动态缓存池技术,使命令原型相同的重复命令解析效率大幅度提高,从而大大缩短系统的配置恢复时间。
附图说明
图1为现技术中命令行模块命令处理过程示意图;
图2为本发明命令行缓存池的实现形式;
图3为本发明实现命令行缓存池解析示意图;
图4为本发明命令行缓存池解析匹配原理图;
图5为本发明命令行缓存池解析匹配失效关系示意图;
图6为本发明实现命令入缓存池判决的示意图。
具体实施方式
本发明利用大配置文件时命令形式重复的特点,通过缓存池技术来减少从命令树集中递归匹配配置文件输入命令所用时间,提高解析效率。本发明方法为:通过为每一命令行模板设置动态缓存池,并在该缓存池中加入命令原型,当配置文件中的命令进行配置恢复时至少执行下述步骤:
A、将配置文件的输入命令进行缓存池解析,如果缓存池中有与之匹配的命令原型,则由该命令原型直接解析输入命令,否则进行步骤B;
B、从命令集树中对输入命令进行检索匹配,完成该输入命令的解析,并在检索匹配过程中对可能与输入命令混淆而造成缓存池解析误判或歧异处理失效的命令原型作失效标记;
C、对与输入命令相匹配的命令原型进行入缓存池判决,如果该命令原型无失效标记且为唯一一个与输入命令相匹配的命令原型,则将该命令原型加入缓存池。
而对用户输入的命令,其处理流程与现有技术相同。
下面以VRP3(其中3为版本号)为例,结合图2、图3、图4、图5及图6对发明作详细说明:
缓存(CACHE)池的实现形式如图2所示。每一个命令模板同时可能对应多个命令模式,一个命令行模板仅包含一个命令行缓存池,缓存池中包括一些命令原型,缓存池解析技术通过这些命令原型可以快速完成命令串的解析过程。
命令模板是一组命令原型的描述集合,所有的命令模板组成命令模板库。命令模式是对命令模板的命令集合进行裁剪后形成的实际应用形式。命令模板本身不能直接对命令进行操作,只有通过派生命令模式的手段才能完成对命令模板所描述的命令进行引用。命令模板和命令模式是“一”对“多”的关系,如果把命令模板比作是“类(class)”,那么命令模式就相当于“类的实例”或者一个“对象”。
命令模板除了记录本模板的一些特性外,它主要是以树状结构建立命令元素之间的关系,从而表达命令模板中的所有命令原型。在整个树型的结构中,把命令模板中的每一个命令元素抽象为树的节点,把命令原型抽象为以某一命令节点(一般就是命令的第一个命令元素)为根的子树。命令解析的关键步骤一命令匹配就抽象为在命令模板记录的命令树中匹配节点序列,即在树中依据命令原型求解。
命令原型在系统初始化时完成命令安装,命令安装时要提供命令原型的详细描述,主要包括一系列命令元素定义和命令安装格式,命令解析的关键是匹配到输入命令串对应的命令原型,这样就可以通过命令安装格式中注册的命令处理函数完成命令下发。
如图2所示,命令行缓存池呈环型,即缓存池首尾相接,一个当前指针始终指向新加入缓存池的命令在该缓存池中的位置。当前指针不断逆时针转动,当缓存池中缓存的命令已满时,新命令将刷新最旧的命令。缓存池的环形实现通过一个循环索引实现这样最新的缓存命令将覆盖最过时的缓存命令。缓存池的初始状态时为空,在命令解析过程中动态地加入命令原型。图2中所示缓存表示可存储0-7其8条命令原型,该存储量可根据设备情况而定。
命令行缓存池解析实现如图3所示,同图1的原方案相比,对于用户输入的命令处理流程是一样的,而对于配置文件输入的命令处理方式发生了变化。配置文件输入的命令将首先进行缓存池解析:当缓存池中存在所输入的命令时,输入命令将直接匹配成功;当缓存池中不存在所输入的命令时,输入命令将不匹配,需要继续进行命令树查询方式的命令解析匹配过程。
命令行缓存池解析详细过程如下:
命令行缓存池解析匹配原理如图4所示,对于配置文件输入的命令,命令行根据命令所属模式确定相应模板的缓存池后,将输入命令与缓存池中的命令依次进行匹配,匹配过程将从输入的第一个命令字开始直到最后一个命令字,只有与输入命令的每一级命令字都匹配的缓存池中命令才被保留,当任一级命令字不匹配时的缓存池中的相应命令原型将被排除,缓存池解析匹配只处理完全匹配和不含LINE匹配的参数匹配,如果缓存池中最终存在一个命令原型与用户输入的命令相匹配,则缓存池解析匹配成功,否则将继续进行基于命令树检索的命令解析匹配过程。
当配置文件中命令第一次执行的时候,由于此时缓存池中还没有相应命令,因此缓存池解析会不匹配,命令将按照命令树查询方式进行命令解析,此时命令不会进入缓存池。当相同命令原型的命令第二次执行的时候,此时缓存池中仍还没有相应命令,因此命令行将采用命令树查询方式进行命令解析。由于此时相同原型的命令已经执行两次,表明存在大量相同命令原型命令的可能,因此此命令原型有必要进入缓存池。
命令进入缓存池前将首先进行命令入缓存的可行性判决,以确保缓存池解析的正确性。如果命令不经过入缓存池的可行性判决,则采用命令缓存池解析会存在缓存池命令解析误判和歧异处理失效问题。产生此问题的主要原因是:原先的命令解析匹配过程是在一个完整的命令树范围内完成的,因此通过大范围排除法能够保证命令匹配和歧异判断的正确性;缓存池解析匹配是在缓存池所属的一个较小范围内完成的,因此命令行解析效率显著提高,同时也正是由于命令匹配范围较小,造成对一些可能引起误判和歧异的命令无法察觉,使缓存池解析的结果发生错误。
命令行缓存池解析匹配失效关系如图5所示,WORD参数类型与其他类型之间、CMDW关键字类型与其他类型之间、带范围的相同参数类型之间存在混淆问题,这些混淆问题会造成缓存命令解析误判和歧异处理失效。
举例如下:
假设配置文件中有以下三条命令,
Set source exec channel 0
Set source vty channel 0
Set source default channel 0
其中前两条命令的原型是:
Set source WORD<1-8> channel INTEGER<0-9>
第三条命令的原型是:
Set source default channel INTEGER<0-9>
当配置文件中的命令进行配置恢复时,执行到上面第二条命令时,假设此命令未经判决处理而直接进入缓存池,则当第三条命令进行缓存池解析匹配时,则会将命令原型错误的匹配为:
Set source WORD<1-8> channel INTEGER<0-9>
由此可见,并非所有命令都可以进入缓存池进行解析处理,对于少量缓存池解析无法正确处理的命令,命令入缓存前的可行性判决应保证此类命令的原型不进入缓存池,从而保证整个配置文件的命令恢复正确性。
命令入缓存池的判决实现如图6所示,对于配置文件中命令原型相同的命令,当第二次执行时,将进行命令入缓存池的判决:可能引起缓存池解析失效的命令将不进入缓存池,只有那些缓存池解析能够正确处理的命令才被允许进入缓存池。
仍以上面例子说明如下:
引起缓存池解析失效的命令将不进入缓存池:
Set source WORD<1-8> channel INTEGER<0-9>
缓存池解析能够正确处理的命令将进入缓存池:
Set source default channel INTEGER<0-9>
因此,在命令行对命令树的检索匹配过程中,将对可能与输入命令混淆而造成缓存池解析误判或歧异处理失效的命令原型作缓存当失效标记。当命令的匹配过程完成后,如果与输入命令相匹配的命令原型只有唯一一个,而且没有被打上缓存池失效标记,则此命令原型将进入缓存池;当与输入命令相匹配的命令原型有多个,或者存在被打上缓存池失效标记的命令原型时,则表明此输入命令的命令原型在缓存池解析时存在误判或歧异处理失效的可能,因而不应进入缓存池。为避免设计复杂,对于LINE匹配的命令将不进入缓存池。
缓存池解析匹配不要求命令原型相同的命令相邻,对相同模板的不同命令模式下命令同样起作用,因此对于大配置文件,缓存池解析匹配的命中率在90%以上。
通过本实施例可看出,大量命令形式相同的命令通过缓存池解析,可大幅度提高命令行解析效率,缩短系统启动时的配置恢复时间。
Claims (8)
1、一种宽带网络通信产品的通用路由平台命令行的解析方法,其特征在于:
为命令行模板建立存储命令原型的缓存池,当配置文件中的命令进行配置恢复时执行下述步骤:
A、将配置文件的输入命令进行缓存池解析,如果缓存池中有与输入命令匹配的命令原型,则由该命令原型直接解析输入命令,否则进行步骤B;
B、从命令集树中对输入命令进行检索匹配,完成该输入命令的解析,并在检索匹配过程中对可能与输入命令混淆而造成缓存池解析误判或歧异处理失效的命令原型作失效标记;
C、对与输入命令相匹配的命令原型进行入缓存池判决,如果该命令原型无失效标记且为唯一一个与输入命令相匹配的命令原型,则将该命令原型加入缓存池。
2、如权利要求1所述的方法,其特征在于为每一个命令行模板均建立缓存池。
3、如权利要求1所述的方法,其特征在于每一个命令行模板仅包含一个缓存池,其初始时为空。
4、如权利要求1、2或3所述的方法,其特征在于所述缓存池呈环形,该环形通过一个循环索引实现,由一个当前指针始终指向新加入缓存池的命令在该缓存池中的位置。
5、如权利要求1所述的方法,其特征在于,所述与输入命令混淆是指,WORD参数类型与其它类型之间、CMDW关键字类型与其他类型之间以及带范围的相同参数类型之间存在的混淆。
6、如权利要求1所述的方法,其特征在于缓存池解析进一步包括步骤:
a、命令行根据输入命令所属模式确定相应命令行模板的缓存池;
b.将输入命令与该缓存池中的命令原型依次进行匹配,匹配过程将从输入的第一个命令字开始直到最后一个命令字;
c、利用与输入命令匹配的命令原型完成输入命令解析。
7、如权利要求1所述的方法,其特征在于:配置文件中命令原型相同的命令在第二次执行时进行命令入缓存池的判决。
8、如权利要求1、2、3、5、6或7所述的方法,其特征在于与LINE匹配的命令原型不进入缓存池。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02146266 CN1243431C (zh) | 2002-10-17 | 2002-10-17 | 宽带网络通信产品的通用路由平台命令行的解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02146266 CN1243431C (zh) | 2002-10-17 | 2002-10-17 | 宽带网络通信产品的通用路由平台命令行的解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1490977A CN1490977A (zh) | 2004-04-21 |
CN1243431C true CN1243431C (zh) | 2006-02-22 |
Family
ID=34148634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02146266 Expired - Fee Related CN1243431C (zh) | 2002-10-17 | 2002-10-17 | 宽带网络通信产品的通用路由平台命令行的解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1243431C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100362467C (zh) * | 2005-01-18 | 2008-01-16 | 英业达股份有限公司 | 以linux为基础的可扩充命令列的系统及其方法 |
CN100397828C (zh) * | 2006-08-14 | 2008-06-25 | 杭州华三通信技术有限公司 | 一种恢复配置的方法 |
CN100466555C (zh) * | 2007-03-14 | 2009-03-04 | 华为技术有限公司 | 一种发送维护命令的方法及装置 |
CN101924656B (zh) * | 2010-08-26 | 2013-11-06 | 北京天融信科技有限公司 | 一种基于动态配置的网络设备cli实现方法和装置 |
CN106951213A (zh) * | 2017-03-27 | 2017-07-14 | 杭州迪普科技股份有限公司 | 一种命令解析方法及装置 |
CN107426041B (zh) * | 2017-09-21 | 2020-08-04 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
CN108647043B (zh) * | 2018-04-03 | 2021-03-16 | 烽火通信科技股份有限公司 | 一种命令行输入的实现方法及系统 |
CN110515598A (zh) * | 2019-08-30 | 2019-11-29 | 山东浪潮通软信息科技有限公司 | 一种基于命令行形式的集成服务的方法 |
CN113821211B (zh) * | 2021-09-17 | 2023-06-27 | 杭州迪普科技股份有限公司 | 命令解析方法、装置、存储介质和计算机设备 |
-
2002
- 2002-10-17 CN CN 02146266 patent/CN1243431C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1490977A (zh) | 2004-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7098815B1 (en) | Method and apparatus for efficient compression | |
US11632125B2 (en) | Compressively-accelerated read mapping framework for next-generation sequencing | |
CN101853289B (zh) | 一种Oracle数据库审计方法和设备 | |
US10831773B2 (en) | Method and system for parallelization of ingestion of large data sets | |
CN1545252A (zh) | 一种网管系统中实现对前台数据配置的方法 | |
CN1581170A (zh) | 用来比较两个计算机文件的方法及系统 | |
CN1531692A (zh) | 用于处理大量字符的高效排序元素结构 | |
CN109766389B (zh) | 一种基于位图索引的区块链轻客户端验证查询方法 | |
CN1713179A (zh) | 在对象模型中的影响分析 | |
CN1826591A (zh) | 反向路径转发保护 | |
CN1243431C (zh) | 宽带网络通信产品的通用路由平台命令行的解析方法 | |
CN102880650A (zh) | 一种数据匹配方法及装置 | |
CN1526104A (zh) | 分析结构化数据 | |
CN111801665A (zh) | 用于大数据应用的分层局部敏感哈希(lsh)分区索引 | |
US20220005546A1 (en) | Non-redundant gene set clustering method and system, and electronic device | |
CN102867049A (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN101794318A (zh) | Url解析方法及设备 | |
US8493249B2 (en) | Compression match enumeration | |
CN101079037A (zh) | 一种中文词库更新系统及方法 | |
CN107220333B (zh) | 一种基于Sunday算法的字符搜索方法 | |
CN106802927A (zh) | 一种数据存储方法及查询方法 | |
CN110825919B (zh) | Id数据处理方法和装置 | |
CN101076055A (zh) | 话单格式转换的方法 | |
CN101035307A (zh) | 一种交换机中模糊号码分析的实现方法 | |
CN1967528A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060222 Termination date: 20111017 |