CN106951213A - 一种命令解析方法及装置 - Google Patents
一种命令解析方法及装置 Download PDFInfo
- Publication number
- CN106951213A CN106951213A CN201710188655.XA CN201710188655A CN106951213A CN 106951213 A CN106951213 A CN 106951213A CN 201710188655 A CN201710188655 A CN 201710188655A CN 106951213 A CN106951213 A CN 106951213A
- Authority
- CN
- China
- Prior art keywords
- order
- prototype
- command
- command object
- tree
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种命令解析方法及装置。本申请中,CLI可针对CLI视图中的每一目标命令,判断缓存中是否存在与目标命令匹配的命令原型,且命令原型预先关联一个匹配等级,并在存在时计算目标命令与所存在命令原型的匹配等级,然后确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;如果一致,则根据所存在命令原型完成目标命令的解析,如果不一致,则在命令树中针对目标命令进行命令原型的检索匹配,完成目标命令的解析,并将检索匹配到的命令原型、以及基于该命令原型与目标命令计算得到的匹配等级关联添加至上述缓存,从而大幅提高CLI的命令解析效率。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种命令解析方法及装置。
背景技术
CLI(Command Line Interface,命令行接口程序)是一种运行在设备上的用户服务程序,这一用户服务程序通过解析和执行用户输入至交互视图中的命令,来辅助用户实现基于所输入命令的设备配置,其中,用户输入命令时所处的交互视图为CLI视图。CLI可包含多个CLI视图,用户通过输入相应的视图切换命令,可以从当前的CLI视图切换至任一CLI视图,每一CLI视图可用于输入功能相同或相近的命令,以实现设备在某一方面功能的配置。本领域技术人员可以理解的是,命令解析实质上是用户所输入命令与命令集中命令原型的匹配过程,其中,命令集内置于CLI中,且由于其通常以树状结构的形式分层存储各命令原型,故又被称为命令树,命令树中,预设层次的节点分别与上述CLI视图建立有关联关系,用以存储可输入至关联CLI视图中的命令所匹配的命令原型。
相关技术中,对于每一条命令的解析,CLI都要在命令树中进行命令原型的检索匹配,每次解析过程复杂而耗时。
而目前,在设备各方面配置日益多样化、对设备的总体配置体量庞大的情况下,用户可能更加迫切地需要集中实现对于设备在各个方面功能的配置,比如用户可能需要对匹配同一命令原型的命令进行连续性输入,则在这一条件下,如果针对这样的每一条命令,CLI都要在命令树中进行命令原型的检索匹配,其命令解析的效率将会大大降低。
发明内容
有鉴于此,本申请提供一种命令解析方法及装置,以解决因每一条命令都要在命令树中进行命令原型的检索匹配而造成的命令解析效率低的问题。
根据本申请实施例的第一方面,提供一种命令解析方法,所述方法包括:
针对CLI视图中的每一目标命令,判断缓存中是否存在与所述目标命令匹配的命令原型,所述命令原型预先关联一个匹配等级;
如果存在,则计算所述目标命令与所存在命令原型的匹配等级;
确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;
如果一致,则根据所存在命令原型完成所述目标命令的解析;如果不一致,则在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析,并将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
根据本申请实施例的第二方面,提供一种命令解析装置,所述装置包括:
判断单元,用于针对CLI视图中的每一目标命令,判断缓存中是否存在与所述目标命令匹配的命令原型,所述命令原型预先关联一个匹配等级;
计算单元,用于在所述判断单元的判断结果为是时,计算所述目标命令与所存在命令原型的匹配等级;
确定单元,用于确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;
缓存解析单元,用于在所述确定单元的确定结果为是时,根据所存在命令原型完成所述目标命令的解析;
命令树解析单元,用于在所述确定单元的确定结果为否时,在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
添加单元,用于将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
本申请从用户角度出发,充分发掘了用户在处理复杂而庞大的设备配置过程中,倾向于连续性输入匹配同一命令原型的命令形式的特点,为用户进行设备配置时所使用的CLI提供了用于存放命令原型与其所预先关联匹配等级的缓存区域。需要特别指出的是,这一缓存区域所存放的每一命令原型,由CLI为一其它命令在命令树中检索匹配得到,且CLI已经根据这一得到的命令原型完成了这一其它命令的解析并同时得到了二者的匹配等级——将要保存于缓存区域中的与所得到命令原型预先关联的匹配等级。则在后续输入命令的解析过程中,如果CLI可以优先从缓存区域中查找到与所输入命令相匹配的命令原型,且二者的匹配等级与这一命令原型预先关联的匹配等级相一致,则CLI便可明确缓存区域中的这一命令原型就是所输入命令在命令树中唯一匹配的命令原型,然后根据所查找到的命令原型直接完成对所输入命令的解析。可以看出,由于这一命令原型是从结构相对简单且命令原型数目较少的缓存区域中匹配得到的,故可以大幅提高后续匹配这一命令原型的命令的解析效率,从而从总体上大大缩短了设备配置的时间。
附图说明
图1是本申请一种命令解析方法的流程图;
图2是本申请一种命令解析方法的实施例流程图;
图3是本申请一种命令解析装置的结构图;
图4是本申请中判断单元的第一种结构图;
图5是本申请中判断单元的第二种结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常情况下,CLI对于命令的解析完全依赖于将用户所输入命令与其内置的命令集中命令原型的匹配,其中的命令集可以以树形结构、链表以及数组等形式分层存储各命令原型,以树形结构居多,因此上述命令集通常也被本领域技术人员称为命令树,本申请同使用该称谓展开论述。
现有技术中CLI对于每一命令的解析都要从命令树中进行命令原型的检索匹配,整个过程复杂而耗时。而伴随着设备各方面配置的多样化和设备总体配置体量日益庞大的发展趋势,现有的命令解析方式显现出效率不足的问题。有鉴于此,本申请提供一种命令解析方法及装置,以解决因每一条命令都要在命令树中进行命令原型的检索匹配而造成的命令解析效率不足的问题。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图1,图1是本申请一种命令解析方法的流程图,该流程图可以包括以下步骤:
步骤101:针对CLI视图中的每一目标命令,判断缓存(CACHE)中是否存在与目标命令匹配的命令原型,命令原型预先关联一个匹配等级。如果存在,则执行步骤102。
本方法实施例中,判断缓存中是否存在与目标命令匹配的命令原型可以通过以下方式实现:确定缓存中是否存在满足条件的命令树节点的标识,上述条件为:与上述CLI视图关联,如果缓存中存在满足条件的命令树节点的标识,则确定这一命令树节点的标识在上述缓存中对应的缓存信息,并判断这一缓存信息中是否存在与目标命令匹配的命令原型;而如果缓存中不存在满足上述条件的命令树节点的标识,则可在命令树中确定满足上述条件的命令树节点,然后在这一命令树节点下,对目标命令进行命令原型的检索匹配,从而完成目标命令的解析;与此同时,CLI可以创建一缓存信息并将其添加到上述缓存中,所创建的缓存信息可以包括:所确定的满足上述条件的命令树节点的标识、检索匹配到的命令原型以及基于该命令原型与目标命令计算得到的匹配等级。
本方法实施例中,上述命令原型预先关联的匹配等级基于该命令原型与其它命令计算得到,这一其它命令早于目标命令输入,且已根据从命令树中确定的上述命令原型解析完成。
本方法实施例中,如果缓存中不存在与上述目标命令匹配的命令原型,则可在命令树中针对这一目标命令进行命令原型的检索匹配,并完成目标命令的解析。与此同时,CLI可将检索匹配到的命令原型、以及基于该命令原型与目标命令计算得到的匹配等级关联添加至上述缓存。
步骤102:计算目标命令与所存在命令原型的匹配等级。
本方法实施例中,关于命令解析过程中命令与命令原型匹配等级的计算将在以下实施例中加以说明,在此暂不赘述。
步骤103:确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致。如果一致,则执行步骤104;否则执行步骤105。
步骤104:根据所存在的命令原型完成目标命令的解析。
步骤105:在命令树中针对上述目标命令进行命令原型的检索匹配,完成上述目标命令的解析。
本方法实施例中,本步骤105所涉及的在命令树中针对目标命令进行命令原型的检索匹配,以及在步骤104及105中所涉及的在命令原型匹配完成后基于所匹配命令原型的命令解析,因不在本申请要求保护的范围之内,故不赘述。
步骤106:将检索匹配到的命令原型、以及基于该命令原型与目标命令计算得到的匹配等级关联添加至上述缓存。
本方法实施例中,由于CLI已经根据在命令树中为上述目标命令检索匹配到的命令原型完成了该目标命令的解析,故可以将基于该命令原型与目标命令计算得到的匹配等级作为该命令原型所关联的匹配等级,并将该命令原型与其所关联的匹配等级添加至缓存中,以使后续同样匹配这一命令原型且匹配等级与这一所关联匹配等级一致的命令可以直接在缓存中完成解析。
从以上方法实施例可以看出,本申请从用户角度出发,充分发掘了用户在处理复杂而庞大的设备配置过程中,倾向于连续性输入匹配同一命令原型的命令形式的特点,为用户进行设备配置时所使用的CLI提供了用于存放命令原型与其所预先关联匹配等级的缓存区域。需要特别指出的是,这一缓存区域所存放的每一命令原型,由CLI为一其它命令在命令树中检索匹配得到,且CLI已经根据这一得到的命令原型完成了这一其它命令的解析并同时得到了二者的匹配等级——将要保存于缓存区域中的与所得到命令原型预先关联的匹配等级。则在后续输入命令的解析过程中,如果CLI可以优先从缓存区域中查找到与所输入命令相匹配的命令原型,且二者的匹配等级与这一命令原型预先关联的匹配等级相一致,则CLI便可明确缓存区域中的这一命令原型就是所输入命令在命令树中唯一匹配的命令原型,然后根据所查找到的命令原型直接完成对所输入命令的解析。可以看出,由于这一命令原型是从结构相对简单且命令原型数目较少的缓存区域中匹配得到的,故可以大幅提高后续匹配这一命令原型的命令的解析效率,从而从总体上大大缩短了设备配置的时间。
参见图2,图2是本申请一种命令解析方法的实施例流程图,与上述方法实施例不同的是,本实施例将结合具体示例对部分步骤进行说明,具有较强的实际操作意义,本实施例具体可以包括以下步骤:
步骤201:针对CLI视图中的每一目标命令,确定缓存中是否存在满足条件的命令树节点的标识,上述条件为:与上述CLI视图关联。如果存在,则执行步骤202;否则执行步骤207。
本实施例中,CLI视图中的目标命令可以来自于预先保存的配置文件,也可以来自于用户的手动输入。本实施例介绍的一个示例性应用场景如下:
当用户需要更换组网中的设备或者在组网中新增设备时,为使新加入组网的设备与组网中原有设备在配置方面完全相同,用户可先登录原有设备,并在其CLI中执行相应命令获取原有设备的所有配置,然后将获取到的所有配置复制于新加入组网设备的CLI中等待解析,其中,所获取和所复制的配置即为本申请中的目标命令。
在这些目标命令中,可能存在着数量级较高的匹配同一命令原型的命令,这些命令具体可涉及路由接口地址配置、数据包过滤配置等配置方面。由于匹配同一命令原型的命令的数量级,根据组网环境的不同,有些可高达数十万之多,所以如果CLI为每一条目标命令从命令树中检索匹配命令原型所耗费的平均时长为0.1秒,匹配十万条目标命令所耗费的总时长为10000秒,可见这将为用户带来极大的不便。
本实施例中,作为一个示例性说明,上述命令树节点的标识可以为VLAN、GIGE等。
本实施例中,针对CLI视图中的每一目标命令,CLI将首先在缓存中确定满足条件的命令树节点的标识,然后再执行后续步骤。这样做的目的是保证命令原型的唯一匹配。这是因为即使是不同的命令树节点也可能关联完全相同的命令原型,故需用命令树节点对应的标识加以区分,最常见的这样的命令原型可以是用于接口开闭的命令原型。其中,不同的命令树节点可以为两个并列节点,也可以其中一个为另一个的子节点。
步骤202:确定命令树节点的标识所对应的缓存信息。
鉴于步骤201中说明的CLI首先在缓存中确定满足条件的命令树节点的标识的原因,本实施例中,每一条缓存信息主要由以下三部分构成:命令树节点的标识、命令原型以及匹配等级,当然缓存信息中还包括一些命令解析所必须的参数。有关缓存的结构将在步骤208加以说明,在此暂不赘述。
步骤203:判断所确定的缓存信息中是否存在与目标命令匹配的命令原型。如果存在,则执行步骤204;否则执行步骤207。
本实施例中,命令原型由关键字和参数组成,比如在命令原型Set sourcedefault channel INTEGER<0-9>中,Set source default channel为这一命令原型中的四个关键字,而INTEGER<0-9>为这一命令原型中的参数,对应的,匹配这一命令原型的目标命令可以为Set source default channel 8。
步骤204:计算目标命令与所存在命令原型的匹配等级。
鉴于命令原型的数目庞大,且不同厂商的命令集中实现同一功能的命令原型可能不同,故为适应用户不能准确记忆命令原型的需求,CLI允许用户输入较为模糊的目标命令,而在这一条件下,CLI可以通过引入“匹配等级”来确保目标命令的正确解析。
假设用户输入的目标命令为:IP address 1.1.1.10/32,则CLI在相应的命令树节点下,为这一目标命令匹配的命令原型以及计算出的这一目标命令与命令原型的匹配等级,可以表示为如下表1所示的形式:
命令原型 | 匹配等级 |
IPV4address string | 25%100%100% |
IPV6address string | 25%100%100% |
表1
本实施例中,匹配等级由各个关键字组的匹配等级和各个参数组的匹配等级组合表示,比如在表1中,命令原型IPV4 address string与目标命令IP address 1.1.1.10/32的匹配等级就由第一组关键字IPV4与IP的匹配等级25%、第二组关键字address与address的匹配等级100%、以及参数string与1.1.1.10/32的匹配等级100%组合表示。
由此看出,CLI在对匹配等级进行计算时,会对命令原型与目标命令中每一组关键字或者参数(比如IPV4与IP即为一组关键字)的匹配等级进行计算。所以通常情况下,CLI会要求用户在使用模糊目标命令输入的情况下,也至少要在每一关键字(或参数)对应的位置,输入至少一个字符以供匹配。
在以上示例中,由于命令原型中参数string表示的是:用户可以在该参数的对应位置输入任一字符串,所以这里给出的示例匹配等级为100%。
在上述假设条件下,由于目标命令与以上两个命令原型各组关键字和参数的匹配等级都相同,故对于用户模糊输入的目标命令,CLI无法为该目标命令唯一匹配出一个命令原型,在这种情况下,CLI可向用户反馈一解析冲突的消息,以使用户对以上目标命令重新出输入。
而对于一些用户使用模糊输入也不会产生歧义冲突的目标命令,比如:timeout c1440,CLI在相应的命令树节点下为这一目标命令匹配的命令原型以及计算出的这一目标命令与命令原型的匹配等级,可以表示为如下表2所示的形式:
命令原型 | 匹配等级 |
timeout console<0-1440> | 100%14%100% |
timeout web<0-1440> | 100%0%100% |
表2
在这一示例中,用户输入了一条旨在匹配命令原型timeout console<0-1440>的模糊命令timeout c 1440。虽然CLI同时为这一模糊命令匹配了另外一个相似度极高的命令原型timeout web<0-1440>,但是由于该命令原型与目标命令的第二组关键字web与c的匹配等级0%,低于console与c的匹配等级14%,所以命令原型timeout web<0-1440>并不对CLI为这一模糊命令的命令原型匹配造成干扰,即由于这一模糊命令与命令原型timeoutconsole<0-1440>的匹配等级最高且唯一,故CLI可以直接为这一目标命令唯一匹配命令原型timeout console<0-1440>,并据此完成该目标命令的解析。
步骤205:确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致。如果一致,则执行步骤206;否则,执行步骤207。
步骤206:根据所存在命令原型完成目标命令的解析。
步骤207:在命令树中确定满足上述条件的命令树节点,并在该命令树节点下对目标命令进行命令原型的检索匹配,完成目标命令的解析。
步骤208:将缓存信息添加至缓存,上述缓存信息可以包括:所确定的满足上述条件的命令树节点的标识、检索匹配到的命令原型、以及基于该命令原型与目标命令计算得到的匹配等级。
本实施例中,上述缓存具体可以以在进程运行过程中动态生成的链表形式存在。本领域技术人员可以理解的是,链表由一系列非连续、非顺序的节点组成,而每一节点又由用于存储数据的数据域和用于找到下一个节点的指针域构成,其中,上述数据域即可用于存储本申请中的缓存信息,而指针域则方便CLI在对目标命令进行命令原型匹配时对这一链表进行遍历。
当然,上述缓存也可以以队列形式存在。但是无论哪种形式,为节省设备的内存空间,我们都可以对链表中节点的数目或者队列中数据元素的数目进行限定。当节点的数目或者数据元素的数目大于预设阈值时,CLI可直接对链表或队列进行清空,或者使新加入的缓存信息覆盖掉链表的首个节点或者队列的队头数据元素。
从以上实施例可以看出,本申请从用户角度出发,充分发掘了用户在处理复杂而庞大的设备配置过程中,倾向于连续性输入匹配同一命令原型的命令形式的特点,为用户进行设备配置时所使用的CLI提供了用于存放命令原型与其所预先关联匹配等级的缓存区域。需要特别指出的是,这一缓存区域所存放的每一命令原型,由CLI为一其它命令在命令树中检索匹配得到,且CLI已经根据这一得到的命令原型完成了这一其它命令的解析并同时得到了二者的匹配等级——将要保存于缓存区域中的与所得到命令原型预先关联的匹配等级。则在后续输入命令的解析过程中,如果CLI可以优先从缓存区域中查找到与所输入命令相匹配的命令原型,且二者的匹配等级与这一命令原型预先关联的匹配等级相一致,则CLI便可明确缓存区域中的这一命令原型就是所输入命令在命令树中唯一匹配的命令原型,然后根据所查找到的命令原型直接完成对所输入命令的解析。可以看出,由于这一命令原型是从结构相对简单且命令原型数目较少的缓存区域中匹配得到的,故可以大幅提高后续匹配这一命令原型的命令的解析效率,从而从总体上大大缩短了设备配置的时间。
与前述一种命令解析方法的实施例相对应,本申请还提供了一种命令解析装置的实施例。
参见图3,图3是本申请一种命令解析装置的结构图。该结构图可以包括:判断单元310、计算单元320、确定单元330、缓存解析单元340、命令树解析单元350、添加单元360。
其中,判断单元310,用于针对CLI视图中的每一目标命令,判断缓存中是否存在与上述目标命令匹配的命令原型,上述命令原型预先关联一个匹配等级;
计算单元320,用于在判断单元310的判断结果为是时,计算上述目标命令与所存在命令原型的匹配等级;
确定单元330,用于确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;
缓存解析单元340,用于在确定单元330的确定结果为是时,根据所存在命令原型完成上述目标命令的解析;
命令树解析单元350,用于在确定单元330的确定结果为否时,在命令树中针对上述目标命令进行命令原型的检索匹配,完成上述目标命令的解析;
添加单元360,用于将检索匹配到的命令原型、以及基于该命令原型与上述目标命令计算得到的匹配等级关联添加至上述缓存。
在本装置实施例的第一种实现方式中,上述判断单元310可以包括:标识确定子单元311、信息确定子单元312、判断子单元313,具体可参见图4,图4是本申请中判断单元的第一种结构图。
其中,标识确定子单元311,用于确定缓存中是否存在满足条件的命令树节点的标识,上述条件为:与上述CLI视图关联;
信息确定子单元312,用于在标识确定子单元311的确定结果为是时,确定命令树节点的标识所对应的缓存信息;
判断子单元313,用于判断所确定的缓存信息中是否存在与上述目标命令匹配的命令原型。
在本装置实施例的第二种实现方式中,述判断单元310还可以包括:节点确定子单元314、命令树解析子单元315、信息添加子单元316,具体可参见图5,图5是本申请中判断单元的第二种结构图。
其中,节点确定子单元314,用于在标识确定子单元311的确定结果为否时,在命令树中确定满足上述条件的命令树节点;
命令树解析子单元315,用于在该命令树节点下对上述目标命令进行命令原型的检索匹配,完成上述目标命令的解析;
信息添加子单元316,用于将缓存信息添加至上述缓存,上述缓存信息可以包括:所确定的满足上述条件的命令树节点的标识、检索匹配到的命令原型、以及基于该命令原型与上述目标命令计算得到的匹配等级。
在本装置实施例的第三种实现方式中,上述命令原型预先关联的匹配等级基于上述命令原型与其它命令计算得到,上述其它命令早于上述目标命令输入,且已根据从命令树中确定的上述命令原型解析完成。
在本装置实施例的第四种实现方式中,命令树解析单元350,还可以用于:在缓存中不存在与上述目标命令匹配的命令原型时,在命令树中针对上述目标命令进行命令原型的检索匹配,完成上述目标命令的解析;
添加单元360,还可以用于将检索匹配到的命令原型、以及基于该命令原型与上述目标命令计算得到的匹配等级关联添加至上述缓存。
从以上装置实施例可以看出,本申请从用户角度出发,充分发掘了用户在处理复杂而庞大的设备配置过程中,倾向于连续性输入匹配同一命令原型的命令形式的特点,为用户进行设备配置时所使用的CLI提供了用于存放命令原型与其所预先关联匹配等级的缓存区域。需要特别指出的是,这一缓存区域所存放的每一命令原型,由CLI为一其它命令在命令树中检索匹配得到,且CLI已经根据这一得到的命令原型完成了这一其它命令的解析并同时得到了二者的匹配等级——将要保存于缓存区域中的与所得到命令原型预先关联的匹配等级。则在后续输入命令的解析过程中,如果CLI可以优先从缓存区域中查找到与所输入命令相匹配的命令原型,且二者的匹配等级与这一命令原型预先关联的匹配等级相一致,则CLI便可明确缓存区域中的这一命令原型就是所输入命令在命令树中唯一匹配的命令原型,然后根据所查找到的命令原型直接完成对所输入命令的解析。可以看出,由于这一命令原型是从结构相对简单且命令原型数目较少的缓存区域中匹配得到的,故可以大幅提高后续匹配这一命令原型的命令的解析效率,从而从总体上大大缩短了设备配置的时间。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种命令解析方法,其特征在于,所述方法包括:
针对CLI视图中的每一目标命令,判断缓存中是否存在与所述目标命令匹配的命令原型,所述命令原型预先关联一个匹配等级;
如果存在,则计算所述目标命令与所存在命令原型的匹配等级;
确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;
如果一致,则根据所存在命令原型完成所述目标命令的解析;如果不一致,则在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析,并将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
2.根据权利要求1所述的方法,其特征在于,所述判断缓存中是否存在与所述目标命令匹配的命令原型,包括:
确定缓存中是否存在满足条件的命令树节点的标识,所述条件为:与所述CLI视图关联;
如果存在,则确定命令树节点的标识所对应的缓存信息;
判断所确定的缓存信息中是否存在与所述目标命令匹配的命令原型。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果缓存中不存在满足条件的命令树节点的标识,则在命令树中确定满足所述条件的命令树节点;
在该命令树节点下对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
将缓存信息添加至所述缓存,所述缓存信息包括:所确定的满足所述条件的命令树节点的标识、检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级。
4.根据权利要求1所述的方法,其特征在于,所述命令原型预先关联的匹配等级基于所述命令原型与其它命令计算得到,所述其它命令早于所述目标命令输入,且已根据从命令树中确定的所述命令原型解析完成。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果缓存中不存在与所述目标命令匹配的命令原型,则在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
6.一种命令解析装置,其特征在于,所述装置包括:
判断单元,用于针对CLI视图中的每一目标命令,判断缓存中是否存在与所述目标命令匹配的命令原型,所述命令原型预先关联一个匹配等级;
计算单元,用于在所述判断单元的判断结果为是时,计算所述目标命令与所存在命令原型的匹配等级;
确定单元,用于确定所计算的匹配等级与所存在命令原型预先关联的匹配等级是否一致;
缓存解析单元,用于在所述确定单元的确定结果为是时,根据所存在命令原型完成所述目标命令的解析;
命令树解析单元,用于在所述确定单元的确定结果为否时,在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
添加单元,用于将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
7.根据权利要求6所述的装置,其特征在于,所述判断单元包括:
标识确定子单元,用于确定缓存中是否存在满足条件的命令树节点的标识,所述条件为:与所述CLI视图关联;
信息确定子单元,用于在所述标识确定子单元的确定结果为是时,确定命令树节点的标识所对应的缓存信息;
判断子单元,用于判断所确定的缓存信息中是否存在与所述目标命令匹配的命令原型。
8.根据权利要求7所述的装置,其特征在于,所述判断单元还包括:
节点确定子单元,用于在所述标识确定子单元的确定结果为否时,在命令树中确定满足所述条件的命令树节点;
命令树解析子单元,用于在该命令树节点下对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
信息添加子单元,用于将缓存信息添加至所述缓存,所述缓存信息包括:所确定的满足所述条件的命令树节点的标识、检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级。
9.根据权利要求6所述的装置,其特征在于,所述命令原型预先关联的匹配等级基于所述命令原型与其它命令计算得到,所述其它命令早于所述目标命令输入,且已根据从命令树中确定的所述命令原型解析完成。
10.根据权利要求6所述的装置,其特征在于,所述命令树解析单元,还用于:在缓存中不存在与所述目标命令匹配的命令原型时,在命令树中针对所述目标命令进行命令原型的检索匹配,完成所述目标命令的解析;
所述添加单元,还用于将检索匹配到的命令原型、以及基于该命令原型与所述目标命令计算得到的匹配等级关联添加至所述缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188655.XA CN106951213A (zh) | 2017-03-27 | 2017-03-27 | 一种命令解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188655.XA CN106951213A (zh) | 2017-03-27 | 2017-03-27 | 一种命令解析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951213A true CN106951213A (zh) | 2017-07-14 |
Family
ID=59472364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710188655.XA Pending CN106951213A (zh) | 2017-03-27 | 2017-03-27 | 一种命令解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951213A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426041A (zh) * | 2017-09-21 | 2017-12-01 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
CN108647043A (zh) * | 2018-04-03 | 2018-10-12 | 烽火通信科技股份有限公司 | 一种命令行输入的实现方法及系统 |
CN109190764A (zh) * | 2018-07-20 | 2019-01-11 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种模糊推理树的节点处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407451A (zh) * | 2001-08-29 | 2003-04-02 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种嵌入式网管命令行接口的命令回溯方法 |
CN1490977A (zh) * | 2002-10-17 | 2004-04-21 | 华为技术有限公司 | 通用路由平台命令行的解析方法 |
CN101083608A (zh) * | 2006-05-30 | 2007-12-05 | 华为技术有限公司 | 设备管理树节点信息的查询方法及其终端设备 |
CN101286118A (zh) * | 2007-04-10 | 2008-10-15 | 北京搜狗科技发展有限公司 | 一种快速调用程序指令的方法、系统及一种输入法系统 |
US20120030272A1 (en) * | 2010-07-27 | 2012-02-02 | International Business Machines Corporation | Uploading and Executing Command Line Scripts |
US20120150939A1 (en) * | 2010-12-08 | 2012-06-14 | At&T Intellectual Property I, L.P. | Extending Legacy Scripting Languages with Graphical References |
CN102902547A (zh) * | 2012-10-18 | 2013-01-30 | 上海师范大学 | 一种命令行接口的命令构造与解析方法 |
CN106227821A (zh) * | 2016-07-21 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种命令行命令的处理方法和装置 |
-
2017
- 2017-03-27 CN CN201710188655.XA patent/CN106951213A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407451A (zh) * | 2001-08-29 | 2003-04-02 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种嵌入式网管命令行接口的命令回溯方法 |
CN1490977A (zh) * | 2002-10-17 | 2004-04-21 | 华为技术有限公司 | 通用路由平台命令行的解析方法 |
CN101083608A (zh) * | 2006-05-30 | 2007-12-05 | 华为技术有限公司 | 设备管理树节点信息的查询方法及其终端设备 |
CN101286118A (zh) * | 2007-04-10 | 2008-10-15 | 北京搜狗科技发展有限公司 | 一种快速调用程序指令的方法、系统及一种输入法系统 |
US20120030272A1 (en) * | 2010-07-27 | 2012-02-02 | International Business Machines Corporation | Uploading and Executing Command Line Scripts |
US20120150939A1 (en) * | 2010-12-08 | 2012-06-14 | At&T Intellectual Property I, L.P. | Extending Legacy Scripting Languages with Graphical References |
CN102902547A (zh) * | 2012-10-18 | 2013-01-30 | 上海师范大学 | 一种命令行接口的命令构造与解析方法 |
CN106227821A (zh) * | 2016-07-21 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种命令行命令的处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
何新贵: "《模糊知识处理的理论与技术(第2版)》", 30 April 1998, 国防工业出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426041A (zh) * | 2017-09-21 | 2017-12-01 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
CN107426041B (zh) * | 2017-09-21 | 2020-08-04 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
CN108647043A (zh) * | 2018-04-03 | 2018-10-12 | 烽火通信科技股份有限公司 | 一种命令行输入的实现方法及系统 |
CN108647043B (zh) * | 2018-04-03 | 2021-03-16 | 烽火通信科技股份有限公司 | 一种命令行输入的实现方法及系统 |
CN109190764A (zh) * | 2018-07-20 | 2019-01-11 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种模糊推理树的节点处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10237295B2 (en) | Automated event ID field analysis on heterogeneous logs | |
US8826032B1 (en) | Systems and methods for network change discovery and host name resolution in storage network environments | |
CN106126521B (zh) | 目标对象的社交账号挖掘方法及服务器 | |
CN108369663A (zh) | 确定神经网络的执行顺序 | |
US8332509B2 (en) | Parameterized computer monitoring system | |
CN112087379B (zh) | 业务链的编排方法及装置、存储介质和电子装置 | |
CN106576054A (zh) | 网络设备配置框架 | |
EP1428349A2 (en) | Method and apparatus for determining and resolving missing topology features of a network for improved topology accuracy | |
JP2018147261A (ja) | モデル統合装置、モデル統合システム、方法およびプログラム | |
CN106951213A (zh) | 一种命令解析方法及装置 | |
CN106062751A (zh) | 对与数据类型有关的数据剖析操作的管理 | |
CN108234164A (zh) | 集群部署方法及装置 | |
CN109189758B (zh) | 运维流程设计方法、装置和设备、运行方法、装置和主机 | |
US20160292581A1 (en) | Minimized processing of streaming changes into a semantic reasoner | |
CN109308258A (zh) | 测试数据的构造方法、装置、计算机设备和存储介质 | |
US10263852B2 (en) | Network data model mapping based on matching strength | |
KR101913141B1 (ko) | 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법 | |
CN108647043A (zh) | 一种命令行输入的实现方法及系统 | |
CN107092502B (zh) | 一种基于云操作系统的应用自动配置方法和装置 | |
CN112115313A (zh) | 正则表达式的生成、数据提取方法、装置、设备及介质 | |
CN106878106A (zh) | 一种可达性检测方法及装置 | |
CN1439985A (zh) | 一种改进防火墙性能的方法 | |
CN106685689A (zh) | 一种基于深度学习的sdn流表冲突检测装置及方法 | |
CN107871055A (zh) | 一种数据分析方法和装置 | |
CN110309214A (zh) | 一种指令执行方法及其设备、存储介质、服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170714 |
|
RJ01 | Rejection of invention patent application after publication |