CN111294232A - 用于多文档编辑器的客户端服务器模型 - Google Patents

用于多文档编辑器的客户端服务器模型 Download PDF

Info

Publication number
CN111294232A
CN111294232A CN201911243330.2A CN201911243330A CN111294232A CN 111294232 A CN111294232 A CN 111294232A CN 201911243330 A CN201911243330 A CN 201911243330A CN 111294232 A CN111294232 A CN 111294232A
Authority
CN
China
Prior art keywords
network
remote client
network device
client device
information
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
Application number
CN201911243330.2A
Other languages
English (en)
Other versions
CN111294232B (zh
Inventor
F·伍德
K·塔杰兰
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN111294232A publication Critical patent/CN111294232A/zh
Application granted granted Critical
Publication of CN111294232B publication Critical patent/CN111294232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0846Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0873Checking configuration conflicts between network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0883Semiautomatic configuration, e.g. proposals from system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

公开了一种客户端‑服务器编辑模型,以向可以被用于同时编辑多个配置文档(例如,被表示为文档的设备配置)的服务器侧多文档编辑器(多编辑能力)提供客户端侧界面。通过解析多个不同网络设备配置文档以相对于每个不同网络设备配置文档内的相关参数设置的位置创建一组槽和锚点,服务器侧组件可以维护与多个配置文档有关的信息。服务器侧可以将感兴趣区域的缩略视图与位置信息一起传输到远程客户端设备,该位置信息可以被用来反向映射到原始文档。在接收到用户输入之后,可以实现更改。在整个编辑会话中,提供给客户端侧应用的数据可以被逻辑压缩,以避免提供来自多个源的冗余信息。

Description

用于多文档编辑器的客户端服务器模型
相关案例的交叉引用
本案涉及由弗兰克伍德等人在与本申请相同的日期提交的、题为“MaintainingEdit Position for Multiple Document Editor(维护用于多文档编辑器的编辑位置)”的美国专利申请序列号XX/XXX,XXX。本案还涉及由弗兰克伍德等人在与本申请相同的日期提交的、题为“Multiple Document Editor Using Rules for a Restricted Language(使用限制语言规则的多文档编辑器)”的美国专利申请序列号XX/XXX,XXX。本案还涉及由弗兰克伍德等人在与本申请相同的日期提交的、题为“Error Detection and Correction forMultiple Document Editor(用于多文档编辑器的检错和纠错)”的美国专利申请序列号XX/XXX,XXX。
背景技术
当今的基础设施网络变得越来越复杂,并且包括数量越来越多的具有网络能力的设备。添加大量连接设备的一个副作用是基础设施网络(例如,公司专用网络)变得更加复杂,并且可能需要附加的网络支持设备,诸如路由器、网桥、域名服务器、网络时间协议(NTP)服务器、网关等等。这些网络支持设备中的每一个通常都需要配置网络参数来在网络架构中起作用。在一些情况下,网络设备要求针对某些网络参数(例如NTP服务器的互联网协议(IP)地址)的一致性。例如,如果给定网络内只有单个NTP服务器,那么应将网络上的所有设备配置为指向该单个NTP服务器以具有一致的时间参考。在其他情况下,针对不同设备可能具有不同的安全配置级别,例如以支持较大的网络基础设施内的与标准网络通信业务分开的安全子网。因此,与未涉及(或未被允许访问)安全子网的其他设备相比,某些设备针对相同的配置参数设置具有不同的值。简而言之,在某些情形中期望配置参数设置是相同的,而在其他情形中相同的配置参数设置对于所选网络设备而言具有不同的值。
附图说明
当结合附图阅读时,根据以下详细描述可以更好地理解本公开。要强调的是,根据行业中的标准实践,各种特征未按比例绘制。实际上,可以基于设计、安全性、性能或计算机系统领域中已知的其他因素来重新定位或组合功能属性的尺寸或位置。此外,可以内部地以及相对于彼此而针对某些功能改变处理的顺序。即,某些功能可以不使用串行处理,因此可能以与所示顺序不同的顺序来执行,或者可以彼此并行地执行。对于各种示例的详细描述,现在将对附图进行参考,其中:
图1A是根据本公开的示例实现的表示语言和可用数据源的示例逻辑分解的框图,其被用来图示出一种用于生成在编辑(例如,对应于网络设备配置的)多个相关输入文档时使用的受限语法语言(RGL)规则集的可能技术;
图1B是根据本公开的示例实现的表示被管理的网络设备配置文档的示例群组的功能框图;
图1C是根据本公开的示例实现的表示来自图1B的具有示例锚的网络设备配置文档的示例群组的功能框图,该示例锚被指派以支持合并跨多个被管理文档的相似语句的更改;
图2是根据本公开的示例实现的表示基于可用锚点对网络设备配置文档中的语句进行的更改以及该更改与另一文档(例如,另一设备配置文件)中的相似语句的可能结果合并的示例的功能框图;
图3是根据本公开的一个示例实现的图示出基于RGL的语句的验证和槽排序的示例过程;
图4是根据本公开的一个示例实现的具有硬件处理器和可访问机器可读指令的示例计算设备,其可被用来编译和执行实现基于图3中概述的RGL的语句的验证和槽排序的程序;
图5是一个示例简化的公司网络的框图,其中多个设备具有相似的配置并且可以使用根据本公开的示例实现所概述的一种或多种技术来管理;
图6是表示可以使用根据本公开的示例实现所概述的一种或多种技术来管理的网络设备配置文档的示例的框图;
图7是根据一个或多个所公开的实现的通过提供如本文所公开的对多编辑能力的服务器侧支持来优化客户端设备的客户端-服务器编辑能力的框图,其中客户端设备利用服务器侧多编辑器的功能性来提供用于同时编辑多个配置文档的最终用户功能性;
图8表示根据一个或多个所公开的实现的计算机网络基础设施,其可以被用来实现所公开的网络设备配置文档管理技术的全部或一部分;和
图9图示出了可以被用来实现本公开的功能、模块、处理平台、执行平台、通信设备以及其他方法和过程的计算机处理设备。
具体实施方式
现在将公开以下所要求保护的主题的说明性示例。为了清楚起见,在本说明书中没有描述实际实现的所有特征。将理解的是,在任何这样的实际示例的开发中,可以做出许多特定于实现的决定来实现开发者的特定目标,诸如遵守与系统相关的约束和与商业相关的约束,这将因实现而异。此外,将认识到,这种开发工作即使是复杂且费时的,对于受益于本公开的本领域普通技术人员来说也是例行工作。
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本文所公开的示例的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践所公开的示例实现。在其他实例中,以框图的形式示出了结构和设备,以避免模糊所公开的示例。此外,在本公开中使用的语言主要是出于可读性和指导性目的而选择的,并且可能未将其选择来描绘或限制本发明的主题,而是付诸于确定该发明主题所必需的权利要求。说明书中对“一个示例”或“示例”的引用意味着结合这些示例描述的特定特征、结构或特性被包括在至少一个实现中。
如本文中所使用的,术语“应用”和“功能”是指一个或多个计算模块、程序、过程、工作负载、线程和/或由计算系统执行的一组计算指令。应用和功能的示例实现包括软件模块、软件对象、软件实例和/或其他类型的可执行代码。请注意,在云计算上下文中使用时术语“应用实例”的使用是指云基础设施内用于执行应用的实例(例如,针对客户的隔离实例中的该客户)。
如本公开的示例中所使用的,存在称为客户端设备和服务器设备的计算设备。取决于使用术语“客户端”和“服务器”的上下文,这些术语可能不是指底层硬件的功能分类。此外,客户端设备不应与基于服务器的应用(或分布式应用)的客户端应用混淆。在某些用途中,客户端设备可以表示客户端-服务器架构中的设备,而不是提供机器规范和性能的任何指示。然而,虽然确实客户端设备可能经常运行客户端应用,但是在某些情形中,客户端设备将执行客户端-服务器应用的服务器侧,使得客户端设备与服务器设备进行通信(例如,执行客户端应用))以代表客户端设备请求远程执行。即,针对给定的客户端-服务器应用架构,客户端设备可以执行服务器应用部分,而服务器设备执行客户端应用部分。通常,应用的客户端部分是请求一些工作并接收工作结果的部分,而服务器部分则接收对工作的请求、执行该工作并提供结果。
诸如路由器、网桥、域名服务器、NTP服务器、网关等之类的网络支持设备具有网络参数的配置,以便在网络架构中起作用。
用于维护网络设备参数的历史方法大部分是手动的,其中系统管理员可以使用有限的自动化和维护能力。例如,一些系统管理员创建模板来存储针对被用来配置新设备的配置设置的基本值,实现脚本化方法以将数据的大量更改应用于网络设备,或者使用标准的多文件差异实用程序。在提供一些可感知的帮助的同时,模板很容易过时。结果,对表示模板中的配置设置的值的更改可能已经发起了一项工作(可能是手动的),以确定已经基于现在过时的模板配置了哪些网络设备。自动的批量更改可能带来其他问题。例如,如果错误被批量引入,则网络可能崩溃且难以恢复。
对大量文件的计算机辅助查询也可能受到妨碍,部分原因是:现有的多文件diff实用程序(比较多个输入文件以标识差异的实用程序)可能无法处理足够的输入——由于这些实用程序的设计限制。具体地,大多数多文件diff实用程序都受到限制,并且只专注于很少的文件并行实例(例如,最多2个文件,有时是3个文件,但很少更多)。总体而言,这些方法无法为网络管理员提供全面的解决方案。此外,由于手动性质和总体复杂性,这些方法经常导致为网络基础设施内的设备配置了无意的错误设置。错误的配置设置会导致不期望的网络性能,或者甚至导致网络故障。因此,设置或调整网络设备的配置参数可以从所公开的技术有益于管理大量(例如,许多独立实例)相关但不相同的配置文件。
在现代公司网络中,大多数网络设备是专用交换机、路由器或网桥,但是,服务器计算机可以被配置为执行网络设备的功能,并且可以由较小的实体以这种方式使用。本公开的概念不限于专用网络设备,因为它们适用于被配置为支持联网功能的现有设备。
在实践中,大型公司或企业的实际网络配置域内可能有数百个网络设备。每个设备将具有允许该设备操作在网络内的功能配置。许多设备可能具有对于可能在网络中逻辑分组在一起的一组设备而言非常相似的配置。分组可以包括例如通用功能、物理连接性或命名约定。例如,考虑可以通过公共路由器连接在一起的若干子网。路由器可以具有多个网络接口,每个网络接口具有不同的IP地址,并且每个子网可以连接到一个网络接口。子网中的每个设备都可以被配置为通过公共路由器路由业务,但是将在子网连接到路由器的IP地址上与路由器联系。子网上每个设备的配置,尽管是类似的(例如,具有到公共路由器的默认路由),但是它们之间将至少有一个细微的差别。具体地,每个设备都可以具有唯一的IP地址,该IP地址适合于该设备(物理或无线)连接到网络的子网。
当从较高水平来看时,本公开的一个示例实现描述了在其中可以将对多个网络设备配置文档中的语句的编辑与具有相似配置语句的其他文档合并的方法和系统。这允许网络管理员管理对大量网络设备的配置的更改。在第一示例实现中,可以基于结构化语法定义(例如,提前定义相对于如稍后讨论的可以生成的RGL),来解析表示不同网络通信设备的配置设置的多个输入文件,并将其放置到脚手架(scaffold)内的某个位置。使用结构化语法定义,可以构建脚手架。
一旦脚手架就位,就可以解析每个个体文件(例如,表示网络设备),并且可以将其信息(例如,配置设置)与作为输入提供的每个其他文件一起放置到脚手架的正确位置。可以由脚手架的填充分支以及被用来合并脚手架的每个分支的规则来确定最终视图。因此,基于这个最终的脚手架视图,异常数据(例如,与其他(或大多数其他)网络配置设备不一致的设置)可以很容易被标识。例如,如果单个(或很少)网络配置设置与跨输入文件集合的其他设置不同,则脚手架中的一个新槽将在被创建,并具有对很少(或单个)网络设备的向后引用。因此,取决于配置设置的类型(如在结构化语法定义中可以突出显示的),异常值可能会被怀疑并发起进一步调查。使用所公开的脚手架视图,系统管理员可以“一目了然地”确定在其被用来填充脚手架视图的网络范围(例如,针对特定子网或针对特定设备类型(或其集合)的整个网络)内哪些参数设置未被一致地应用。
在该示例中,可以更新对脚手架规则的更新,并再次解析输入文件以创建已更新的视图。使用这种脚手架方法,可以使命令行界面(CLI)和脚本自动化对可能更习惯使用CLI界面而不是交互式界面(例如,以下所述的多编辑界面)的用户可用。此外,语法脚手架可以允许经由CLI界面跟踪合并和应用编辑更改的能力。下面进一步讨论了多个文档内的锚点,锚点允许交互式编辑器维护相对文件位置信息。但是,总体脚手架结构可能更适合CLI交互。在任何情况下,概念是相似的,因为它们都允许基于来自系统管理员的更改而将编辑更改从单个视图向后传播到多个源文件。简而言之,脚手架可以允许跨多个网络设备的单个全面视图并呈现信息,从而可以很容易感知个体设备配置的相似性和差异。也可以经由CLI命令来利用被用来填充脚手架的结构化语法,以影响对跨一个或多个底层设备的特定配置设置的更新。
本公开的其他示例实现提供针对在网络管理更改的开发生命周期中不同点处的配置编辑的验证的规则集。在一个示例中,在网络管理员正在同时编辑用于多个设备的配置参数时,可以利用来自RGL规则集的信息来增强编辑器,以提供及时的校正(或建议)。如本文所使用的,“RGL”可以被用作简略的表达,其指代所公开的RGL规则集,包括结构规则、机器学习信息和数据挖掘信息,如下面参照图1A所解释的。在这种上下文中“及时”还可以使用简单的用例示例来进行解释。即,当网络管理员正在与编辑器(例如,支持本文描述的多编辑能力的计算机进程)活动地交互时,编辑器可以基于RGL中可用的信息来自动验证条目或提供建议的条目。可以从用来生成所公开的RGL的所有可用信息中得到建议和验证(参见图1A)。
如将意识到的,公司网络中潜在的复杂网络环境和设备数量均引入了变量,该变量影响网络管理员可以如何管理大量网络设备。每个网络设备都具有某种形式的配置,该配置可能与设备名称一样简单,但是网络设备的配置常常包括复杂性不同的配置参数的不可预测的组合。因此,所公开的实现总体上表示对系统管理领域的改进,特别是对网络管理的改进,网络管理允许网络管理员并行管理多个配置文件,并可能使用增强的网络和域感知的编辑器来进行管理。
为了有效地允许网络管理员描述他们期望的配置参数,已经创建了用于自动定义可能具有不同范围级别的RGL的技术。在网络设备管理的上下文中,不同范围级别是指网络的不同部分。也就是说,一些范围、值、可用设备等可以适用于整个公司网络的一部分(例如,子网或类似设备集)。自动生成的(并且可能是范围限定的)RGL可以允许网络管理员跨一组设备编辑配置设置(即,同时进行多编辑),并且在进行编辑会话时具有适当的“专家建议”可用。此外,(例如,从RGL中得到的)该可用的专家建议可以被用来验证提议的更改,并警告不要实现可能有破坏性的配置更改。以简单的形式,RGL可以被用来防止在网络上部署对参数设置的打字错误(或超出范围的值)。在任何情况下,所公开的跨多个设备同时进行更改的多编辑和并发应用都可以通过允许单个接口点用于全面的网络配置更改集合来提供易于使用的益处。
在一个示例实现中,由网络管理对单个编辑界面进行的更改将基于适当的锚点而被自动集成到与特定多编辑会话相关联的每个设备的更改的相应位置(该相应位置针对每个配置文件可能有所不同)。多编辑处理可以基于在多编辑会话中提供的用于对网络配置的更改的指令,为每个网络设备创建更改文档。显而易见的是,当网络设备的数量很大时,需要应用于多个网络设备的更改转换为需要对每个设备的配置文档进行的更改。考虑到设备的数量、人员随时间的变化以及多个人进行临时更改,多个配置文档可能变得非常难以管理。因此,提供诸如所公开的多编辑、网络感知(例如,RGL专家知识库)和位置感知(锚点)技术来实现更改之类的单个更改接口表示对网络管理领域的改进。除了网络管理之外,其他技术领域也可以从所公开的同时管理多个相关文件的技术中受益,并且本公开并不旨在限于网络设备配置文档。例如,跨源代码存储库的多个相关分支管理源代码文件以实现全局更改(或其他范围的更改)可以类似地从所公开的多编辑技术中受益。这些技术的其他应用也是可能的。
在理解了以上概述之后,本公开现在将解释非限制性但详细的示例实现。参考附图解释了该示例实现,并且该示例实现包括:表示语言和可用数据源的示例逻辑分解的框图,其被用来图示出用于生成在编辑多个相关的输入文档(例如,对应于网络设备配置)时使用的RGL(例如,具有元数据和域知识的规则集)的一种可能的技术(图1A);使用本公开中的技术来管理的网络设备配置文档的示例群组(图1B);来自图1B的具有示例锚的网络设备配置文档的示例群组,该示例锚被指派以跟踪跨多个受管理文档的相似语句的更改(图1C);对网络设备配置文档中的语句进行的更改合并到另一文档中的相似语句的示例(图2);图示出遵循RGL范例的语句的验证和槽排序的示例过程(图3);具有硬件处理器和可访问机器可读指令的示例计算设备,其可以被用来编译和执行实现遵循RGL范例的语句的验证和槽排序的程序(图4);公司网络的示例框图,其中多个设备具有相似的配置(图5);网络设备配置文档的示例(图6);通过提供如本文所公开的对多编辑功能的服务器侧支持来优化客户端设备的客户端-服务器编辑能力的框图,其中客户端设备利用服务器侧多编辑器的功能性来提供用于同时编辑多个配置文档的最终用户功能性(图7);示例计算机群组和计算机之间的互连,其可以被用作所公开的网络设备配置文档管理技术的编译或执行的一部分(图8);以及可以在一个或多个设备中使用的示例处理设备,其可以实现所公开的网络设备配置文档管理技术的编译或执行(图9)。
现在参考图1A,根据一个或多个所公开的实现,框图100表示语言和可用数据源的示例逻辑分解,该框图被用来图示出用于生成在编辑多个相关输入文档(例如,对应于网络设备配置)时使用的RGL 110(例如,规则集)的一种可能的技术。如本文所使用的,受限语言是指具有有限术语集的语言,该术语集不会与软件、硬件和固件的版本异步地演化。因此,对于给定的一组固件、硬件和软件发行(各自独立发行),可以得到全面可允许术语集。该全面术语集将被固定下来,直到可能作为硬件、软件和固件中的一个或多个的新版本发行的一部分引入新术语为止。框图100图示出了语言101和语言的可能组成属性。箭头105图示出了语言规则和可用数据源的处理可以被用来处理输入并自动生成RGL 110。可以为企业网络的不同部分(例如,子网)生成不同的RGL 110规则集。例如,用于安全子网的RGL 110可以具有与同一公司企业网络内的非安全子网不同的配置设置规则。因此,对于一些实现,可能存在RGL 110的层次结构,可以基于网络管理员为多编辑会话所定义的设备(例如,编辑范围)自动调整该层次结构。可以离线生成要应用在特定多编辑会话中的RGL 110,或者可以基于网络管理员正在改变(例如,编辑)哪些类型的参数来自动调整RGL 110。此外,RGL 110可以在编辑会话正在进行时被及时应用,或者可以作为后期编辑验证(例如,在部署之前)而被应用。在任何情况下,RGL 110均可以被应用来防止(或警告)网络管理员在对网络造成不利影响之前进行任何可疑的更改。
返回图1A,语言101被图示为包括定义词汇表101-1(例如,有效单词/术语集)、基于句法的语言结构101-2、语法101-3以及标点符号101-4的组成部分。此外,可以使用附加信息来增强基本语言规则,以为RGL 110提供专家知识。例如,可用设备的本地范畴101-5表示范围能力,以允许基于哪些设备被选择用于编辑而将适当的规则应用于编辑更改。也就是说,基于对应于多编辑会话的设备(诸如子网或安全设备集),可以应用不同的RGL(或RGL的层次结构)。使用信息101-6指示可以跨所有可用设备应用数据挖掘技术以检测一致性属性,这些属性可用于标识在编辑会话期间发生的错误的打字错误。在一个实现中,使用信息101-6扩展到当前的多编辑会话的范围之外,并且可以被维持在全局范围内以提供一致性信息。范围值101-7指示某些参数可能对其配置具有有效范围,并且例如,将值更改为有效范围之外的编辑可能表示可疑的编辑动作。范围可以基于本地定义的信息(例如,网络内的当前使用的范围),或者可以基于由网络管理员定义的规则。用户手册101-8表示可以从静态源获得的并被用来帮助验证的有关设备规范的信息(例如,设备的能力可以在其设备规范文档中被指定为不超过针对给定参数的特定值)。其他数据101-9也可以被用来定义可接受的更改。例如,如果建议的更改要引入至今尚未在企业环境内使用过的参数设置,则这可能是一个指示:表明错误已发生,或者至少表明可疑条目将产生经由部署之前的编辑会话或验证进行警告的指示。此外,新使用的相关值的关联或对网络环境的第一印象的使用可以表示可以发起警告的可疑编辑。通常,如果用户基于管理域内当前使用的值将一个值编辑为“不合适”或与要更改的设备的设计规范不一致,则警告可有助于防止对企业网络的无意更改。
通常,语言的词汇表101-1可以被认为是在该语言内具有定义(例如,已理解的含义)的单词集。随着时间的流逝,单词可以从给定语言的词汇表(虽然很少)中被删除或添加。在计算机语言中,表示命令的单词常常在被删除(不被支持)之前就已被弃用(淘汰)。
句法101-2常常与计算机语言相关联,并且可以如自然语言中使用的那样被视为语法101-3和标点符号101-4的组合。配置文件(很像用于编程的计算机语言)通常符合句法。简而言之,配置文件通常具有已理解的结构。
语法101-3表示语言的单词之间的关联相对于其“正确”使用的规则。有时语法规则很严格,因为单词彼此之间的关联可能会改变其含义。即,单词可以基于其上下文(例如,句子中的位置或与其他单词的接近度)而采取从有效替代含义集合中选择的特定含义。
标点符号101-4是指可以在句子中使用以提供分段和强调的非字母数字符号。在配置文件中,标点符号字符可以帮助遵守句法101-2规则,并且在解释配置信息以供使用时可以允许进行正确的解析。
可以部分地通过标识跨可用设备101-5的本地范畴(例如,范围)的相似性和差异来执行使用信息101-6及基于其的验证。另外,可以确定不同级别的关系的层次结构并将其用作加权因子来确定差异是预期的还是可疑的。例如,可疑条目可能具有打字错误,其中值与预期不同,或者可能是数字转置集。在一个示例中,用于NTP服务器的值可以是相对于网络子集内的所有其他设备的转置地址,并且因此可以被视为高度可疑(例如,跨子网中的所有设备,一个设备具有转置网络地址,该转置网络地址与非针对该转置的地址一致)。
范围值101-7可有助于验证一些配置设置。例如,互联网协议(IP)地址可以具有基于企业网络内的使用的有效值(例如,用于子网的IP地址范围)。一些参数可能附加地具有由设备规范或软件发行所支持的范围内的值。因此,与该类型的信息相关联的输入(诸如设备用户手册101-8和软件发行说明)可以被用来帮助验证所建议的更改。
还可以利用定义可接受的术语、值、关联和使用的其他数据(框101-9)。例如,本地规则定义文件可以定义可接受的配置参数设置或本地应用的范围等。
箭头105指示可以处理上面提及的输入以生成被用来增强所公开的多编辑器实现的一个或多个RGL。可以从所有可用源(例如,上面列出的源以及可能的其他源)收集数据示例和规则。一旦被收集,例如可以使用机器学习技术来处理数据,并且可以使用数据挖掘技术来挖掘数据。可以将数据分析技术应用于这些输入,以产生用于配置文件编辑和验证的规则集。为了简化说明,当参考受限的语法语言规则集时,本公开内容涉及RGL,该规则集被生成以提供关于使用、句法、一致性的专家建议和可以被用来验证(例如,在多编辑会话中)所建议的更改的总体规则。注意,并不总是将编辑会话作为使用RGL的多编辑会话,并且对单个配置文件的编辑也可以从所公开的验证技术中受益。
现在参考图1B,框图108图示出多个网络设备配置文档109-1至109-3的简化情况。为了此处的解释目的,示出了三个文档,但是利用本公开中的技术可以编辑和合并的文档数量没有限制。每个网络设备配置文档109-1、109-2和109-3每个都被图示为包含多个语句(例如,诸如用于参数设置的键/值对之类的配置细节),这些语句应符合RGL 110(并且可以被用作生成RGL 110的输入)。为了简化示例,框图108图示出了具有有限数量的语句的示例文档,但是文档可以包含任意数量的语句。在大多数情况下,对于复杂的网络设备,可能会有大量(例如数千个)配置设置。
所公开的RGL可以使用所使用的语法的理解被生成并识别在网络设备配置文档中使用的语句的已定义句法。句法可以是字母、数字、空格和任何形式的符号的组合,这些形式适合于允许人们针对计算机如何为任何给定目的解释符合句法的语句而表达明确的指令。根据示例,为了改变设备如何操作的目的,在该上下文中的语句是可以由网络设备解释的配置指令。
如上所解释的,RGL 110表示受限的语法,该语法将句法规则和上下文元数据与可以被用来帮助解释和验证语句的语句相关联。元数据可以包括有关为了解释、缩进或语句之间的父子关系如何对每个语句进行排序的信息。这些特定的元数据项旨在作为示例来说明语法元数据的使用,而无意将元数据的使用限制为这些示例。
可以基于由RGL 110定义的元数据,为每个设备配置文件109中的语句指派一个排序“槽”。指派给语句的槽可以指示当解释程序正在处理网络设备配置文档时可以使用的递增顺序(例如,槽1被排序在槽2之前、槽2被排序在槽3之前等等)。,槽可以备选地指示文档内关于文档中的语句的相对于锚点的位置。在任何一种情况下,槽都可以不限于单个语句。如上面简要提及的,锚点对于不同的配置文件而言可以位于不同的相对位置处,但是跨两个文档的公共锚点可以指示文档的该区域中的配置设置跨设备的不同实例是相同(或相似)的。简而言之,锚点可以与配置文件内的“感兴趣区域”相关联,并且感兴趣区域可以进一步与槽相关联。因此,编辑参数设置可以提供对值的调整,并且可以将槽、锚点和感兴趣区域的组合用作映射,以确定每个个体配置文件中的位置以应用调整。RGL 110中的元数据还可以例如基于在配置文件的该位置处的配置参数的类型,指定槽是可以包含单个语句还是可以包含多个语句。
仍参考图1B,在文档109-1中图示出了语句槽指派的说明性示例,其中如图中所指示,将第一语句“指令语句A(INSTRUCTIONS STMT A)”指派给“槽03”。在该示例中,每个后续语句根据RGL 110中的元数据而被指派了另一个槽。在该示例中,对指令语句使用A、B、C和D反映了这些语句在给定配置文件内出现的顺序,而不是指令语句是相同的。也就是说,在该示例中,跨不同的文件将使用槽(和以下讨论的锚点)将彼此相关的语句分组在一起。为了清楚起见,文档109-1中的指令语句A在该示例中不旨在为与文档109-2中的指令语句A具有相同类型的指令语句,在该示例中暗含的相似性在于它们在其相应的文档中都是第一顺序的指令语句。
如文档109-2中所图示出的,其中“指令语句B”和“指令语句C”都被指派给了排序槽12,这意味着这些语句中的每一个(以及在两个配置文档109-1和配置文档109-2中的“指令语句B”)关于相似或相同的配置设置而彼此相关。该示例还说明:可以在单个文档内或跨多个文档为多个语句指派相同的排序槽。还应注意,如文档109-1至109-3所指示的,单个文档可以不包含针对所有排序槽的语句。例如,文档109-1以这样的语句开始:该语句被排序在槽3中排序但不一定包含与槽1和槽2相关联的语句。本应被指派给缺失的槽的语句可以与对应于文档109-1中记录的配置的网络设备不相关。
文档109-2进一步图示出了可能未被指派排序槽的语句。具体地,如该图所指示,文档109-2的“指令语句D”被图示为具有排序槽“槽??”。根据RGL 110,未被指派排序槽的语句可能有效或者可能无效。未被指派排序槽的语句可被视为未被映射,并且随后可被排序在文档中指派的最大排序槽之后(或者可以是应当发起警告或错误的可疑条目的指示)。
现在参考图1C,来自图1B的框图108已被扩展为包括锚点115,为了跨多个配置文档引用相似语句的目的,锚点115可以各自被指派给语句行。每个配置文档109可以对应于单个网络设备,以包含表示针对关联设备的特定配置的语句。使用本公开中的技术管理的每个文档可以作为被用来对提供相似目的(或者针对不同类型的设备具有相似配置设置)的网络设备进行配置的文档群组的一部分进行管理。实际上,相似的设备通常在给定的网络域内具有相似的配置。具有相似的配置可能会导致许多文档具有若干相似的语句,如果在单个文档中更改了这些相似的语句中的任何一个,则应同时更改这些相似的语句。为了说明该概念,考虑文档109-1中由130-1所指示的锚2-1、文档109-2中由130-2所指示的锚2-1和文档100-3中由130-3所指示的锚2-1,其每一个都引用了根据示例已被指派了排序槽12的语句。通过指派匹配锚,可以将相似的语句标识为相似。假定语句遵循RGL 110,则相似的语句可以具有匹配的排序槽。此外,文档109-2中由120-4指示的锚2-2也被指派给了槽12,但与其他槽12语句具有不同的锚点。这可以指示:对于文档109-2,文档的多个部分包含与槽12相关联的信息,并且因此对与槽12相关联的配置参数的编辑可以指示在接收到更改槽12参数的编辑命令时可能需要对文档109-2内的多个位置进行更新。简而言之,可以跨多个文档使用槽和锚点的组合作为反向映射,以确定可能需要如何将编辑更改应用回原始源文档。
此外,跨所有网络设备配置文档可能不存在具有匹配锚以指示相似性的语句。该概念在文档109-2中由140-1所指示的锚1-2和在文档109-3中由140-2所指示的锚1-2来图示出,而文档109-1中未出现对应锚1-2。这可以指示:与配置文档109-2和100-3相对应的网络设备可以具有与对应于配置文档109-1的网络设备无关的配置元素。
还可以为语句指派与任何其他文档中的锚都不匹配的锚(如由120-1至120-7所指示的锚所图示出的),这些锚跨三个文档的示例集合中是唯一。在任何其他文档中都没有匹配语句的锚的语句可以表示设备唯一的配置设置,并且因此跨所有文档都具有单个唯一实例(例如,主机名在网络内可以是唯一的)。备选地,唯一语句可以是暂时唯一的,并且如果新的匹配语句被添加到另一个文档,则唯一语句稍后可以与具有匹配锚的另一个文档中的语句匹配。例如,如果将新的NTP服务器添加到子网中并在将所有其他设备重新配置为指向新的NTP服务器之前用单个设备进行测试。许多不同的组合是可能的。
为了示例图的目的,向锚给出了简单的数字,但是可以为锚指派足以唯一地标识锚的任何类型的标识符(例如,散列或其他标识密钥)。鉴于跨多个文档的锚的唯一性允许该锚在任何其他文档的任何位置中进行匹配——只要这两个文档的对应区域关于出现在这些文档内的相应位置处的配置设置表示相同的感兴趣区域,则锚在特定文档中的顺序在该文档内可能没有任何相对重要性。
现在参考图2,示出了框图以图示示例,在该示例中对符合RGL 110的网络设备配置文档109的更改与具有相同锚标识符的其他文档中的其他语句合并。在一个示例中,用户可以更改与文档109-1中的锚130-1(在图2中被标识为“锚2-1”)相对应的语句。这可导致合并过程205(例如,将更改应用于来自多编辑会话的多个文档)将更改合并/应用于与对应于锚2-1(130-1)的语句和对应于文档109-2中的锚2-1(130-2)和对应于文档100-3中的锚2-1(130-3)的语句。因此,更改(例如,编辑的值)可以被传播回适当的感兴趣区域以及其他配置文档中的对应语句(不是通过位置而是通过参数设置对应的)。
仍然参考图2,示出了对网络设备配置文档的更改的第二示例,其中用户可以更改与文档109-3中的锚140-2(在图2中被标识为“锚1-2”)相对应的语句。该更改可以调用合并过程210,以合并对与由140-2所指示的锚1-2相对应的语句以及也与文档109-2中由140-1所指示的锚1-2相对应的语句的更改。该示例说明,更改可以在编辑会话(例如,多编辑)中发生,以调用合并过程,该合并过程通过将具有相同(或对应)锚的语句进行匹配以将来自编辑会话的更改传播到其他适用文档中的语句。
影响具有跨所有被管理文档是唯一的已指派锚(例如,锚值对于单个文档中的单个语句是唯一的)的任何文档的对参数设置的更改将不与任何其他文档中的任何语句合并(因为没有对应的感兴趣区域)。具有唯一锚的这种语句的示例由锚120-1至120-7指示。
现在参考图3,图示出了一个示例过程300的过程图。示例过程300可以被用来管理对网络设备配置文档中的语句进行的更改(例如,经由多编辑会话或包括诸如脚本化更改之类的传播的某种其他技术)。从框305开始,可以在网络设备配置文档中添加或更改诸如配置参数之类的语句。继续到框310,根据RGL,可以检查该语句以确保其有效。框315示出了如果根据RGL语句有效则继续到框320的判定分支。但是,如果根据RGL,语句无效,则过程继续到框325。
仍然参考图3,如果根据RGL,语句有效,则框320为该语句指派排序槽。如果根据RGL,语句无效,则在该示例中,该语句被标记为具有未映射的排序槽。框320和325都继续到判定330,在判定330中,可以针对与该语句相关联的锚的存在进一步评估该语句。如果语句具有已存在的锚,判定330的“是”分支,则流程继续到框345。如果语句不具有已存在的锚,判定330的“否”分支,则流程继续到框335。
在该示例中,框335开始一个分支,该分支从被管理文档群组中搜索信息,以便在找到匹配的语句的情况下找到可以指派给该语句的已存在的锚。分支过程继续到判定340,以评估搜索是否导致标识了适合于指派给被管理文档群组中的任何其他文档中的语句的已存在的锚。如果没有找到合适的锚,判定340的“否”分支,则过程继续到框355,在框355中,将新的锚指派给该语句。
如果评估在框335中执行的搜索时找到合适的锚,或者根据决策分支330语句具有已存在的锚,则过程继续到框345。在框345中,将该锚指派给该语句并且过程继续到框350。在框350中,在具有匹配锚的所有语句之中执行合并。
参考图4,根据一个或多个公开的示例实现,示出了示例计算设备400,该计算设备400具有硬件处理器401和存储在机器可读介质402上的可访问机器可读指令,其可以被用来管理对多个网络设备配置文档中的语句的更改。图4作为示例图示出了被配置为执行方法300的流程的计算设备400。然而,计算设备400还可以被配置为执行本公开中描述的其他方法、技术、功能或过程的流程。在图4的这个示例中,机器可读存储介质402包括使硬件处理器401执行以上参考图3讨论的框305-350的指令。
诸如图4的402之类的机器可读存储介质可以包括易失性和非易失性、可移除和不可移除介质,并且可以是任何电子、磁性、光学或其他物理存储设备,其包含或存储可执行指令、数据结构、程序模块或处理器可访问的其他数据,例如固件、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)、光盘、固态驱动器(SSD)、闪存芯片等。机器可读存储介质可以是非暂时性存储介质,其中术语“非暂时性”不涵盖瞬时传播信号。
参考图5,示出了公司网络500的示例部分,该公司网络500包括具有连接的子网515-1、515-2和515-3的中央路由器505。为了简化该示例的解释,图中示出了有限数量的子网、中央路由器、IP地址和网络设备。当将本公开中的技术应用于公司网络时,图中这些有限数量的概念并不旨在限制所使用的设备和子网的数量。
每个子网515-1至515-3可以分别通过专用于子网515-1、515-2和515-3的网络接口510-1、510-2和510-3而连接到中央路由器505。多个网络设备520-1、520-2和520-3可以是对应的子网515-1至515-3的成员。多个设备520-1至520-3中的每个网络设备具有与该设备相对应的配置。每个设备的配置可以对应于如图1B-C和图2中所图示的网络设备配置文档109。每个网络设备配置文档109可以具有对应于RGL 110(图1A-C和图2)的语句的组合。
用于位于子网中的网络设备的每个配置文档可以例如由零个或更多语句组成,这些语句在用于位于相同子网中的每个其他设备的配置文档中是完全相同的。当设备520-1连接到通过网络接口510-1连接到中央路由器505的子网515-1时,可以图示出在所有配置文档中可能完全相同的语句的示例。为了正常工作,每个网络设备520-1被配置为通过在该示例中具有IP地址X.X.X.221的网络接口510-1来向子网515-1外部的目的地发送数据。
作为附加示例,用于位于子网中的网络设备的每个配置文档可以由零个或更多语句组成,这些语句与用于位于相同子网中的每个其他设备的配置文档中的语句相似。跨子网中的所有设备配置文档可以是相似的语句的示例可以指令每个设备为该设备指派唯一的名称和IP地址。这种语句的一部分还可以具有与图1中的RGL 110相对应的句法,表达用于设置跨每个文档是相同的名称或IP地址的命令。每个语句的唯一部分是名称或IP地址,命令将该名称或IP地址指派给与配置文档相对应的网络设备。因此,配置文档在一些情况下可能具有相同的值,而在其他情况下语句的部分是相同的。
在该示例中,以上示例适用于被分组在子网内的设备的所有配置文档。在专用于每个子网的网络接口510-1至510-3上具有与中央路由器505的连接的每个子网515-1至515-3进一步图示出,每个子网中可能存在配置语句不同的设备的配置文档,该配置语句关于将数据发送到子网外部的目的地位置来配置子网中的每个网络设备。根据上述示例,在子网515-1中的配置文档被配置为通过IP地址X.X.X.221发送数据的情况下,子网515-2和515-3中的设备将被不同地配置。子网515-2中的设备将数据发送到连接到中央路由器505上的网络接口510-2的IP地址X.X.X.222。类似地,子网515-3中的设备将数据发送到连接到中央路由器505上的网络接口510-3的IP地址X.X.X.223。
参考图6,示出了网络设备配置文档615和620的示例框图600,其图示出了例如子网605和610的设备配置。对于该示例,根据图1中所示的RGL 110,考虑文档是有效的。为了示例的目的,图中的网络设备配置文档数量是有限制的。实际上,可以应用本公开的实现的网络设备文档的数量将没有限制。
仍然参考图6,网络设备配置文档615-620中的示例“槽1”语句可以配置设备的唯一名称。该语句被指派“锚1”,以指示它是相似的语句,并且对该语句的命令部分(例如“设备名称”)的更改应跨所有文档进行合并,而该语句中对于每个设备都是唯一的部分(例如名称)未被修改。
在该示例中,网络设备配置文档615-1和615-2是连接到示例子网605的配置设备。“槽12”中的“默认路由”命令被指派“锚3”,以指示它是相似的语句。在该示例中,网络设备配置615-1和615-2使用相同的值“X.X.X.221”,因为子网605上的每个设备对于默认路由都具有相同的值。但是,在网络设备配置文档620-1和620-2“槽12”中的相同语句被指派“锚4”,以指示由于经由文档620配置的设备属于子网610,所以对任何文档615的更改将不合并到任何文档620。对任何网络设备配置文档620中的“槽12”中的语句的更改将与其他文档620合并——假设网络设备属于子网610。如上所述,由于配置文档内的信息的排序跨设备配置文件可能不一致,因此槽和锚点的组合允许对跨多个文件的更改进行适当的反向合并。
现在参考图7,示例网络图700图示出了根据本公开的具有多个最终用户设备704A-D的基础设施网络,最终用户设备704A-D可以被用来向多编辑器提供用户界面。网络图700还包括蜂窝网络715、可以包括互联网的网络718、分别用于这些网络中的每一个的远程设备连接,即710-1和710-2。这些远程设备连接可以是无线或有线的,并且可以是基于IP或基于蜂窝的通信。蜂窝网络715可以由一个或多个蜂窝塔716来支持。后端720表示一个或多个服务器,其可以支持根据客户端-服务器应用模型设计的多编辑器的后端服务器部分。将后端720图示出为包括冗余服务器集合722和服务器725,该冗余服务器集合722包括可以彼此提供容错(例如,备份)的两个服务器723,并且服务器725在该示例中被图示为独立服务器。在任一情况下,在该示例中,服务器侧编辑能力708被图示为在服务器722或725之一上执行。双向箭头707指示可以例如经由所图示的网络在服务器侧编辑能力708功能模块和可以在任何最终用户设备704A-D上执行的客户端侧接口706之间进行通信。因此,根据本公开的实现,用户可以与不同类型的最终用户设备交互以便与服务器侧多编辑器交互。
此外,服务器侧编辑能力708可以是RGL兼容的,并提供帮助以在资源受限的最终用户设备上同时编辑多个文档。因此,资源受限的最终用户设备可以支持基于web的界面(例如,浏览器)或另一个轻量级用户界面。数据传输的优化(例如,双向箭头707)可以允许资源受限的最终用户设备受益于所公开的利用锚信息来同时编辑多个文档的多编辑能力。来自多个文档的相同数据不需要被传输到每个最终用户设备,而是可以基于正在最终用户设备上编辑文档的哪一部分来提供锚点信息。在更改任何值时,将该更改传输到服务器侧编辑能力708模块可以包括锚点信息以及数据更改。因此,服务器侧然后可以外推该更改,并且如上所述跨配置文件的许多实例反向传播该更改。这种类型的实现表示对可以在标准最终用户设备上实现以利用本公开的其他概念的能力的改进。另外,可以将RGL(或其子集)提供给最终用户设备,使得即使资源可能受限,最终用户设备也可以如上所述提供及时的错误校正和验证。更进一步,还可以以最小的开销在这些最终用户设备上提供上下文感知的专家信息(例如,来自RGL)。
图8表示根据一个或多个所公开的实现的计算机网络基础设施,其可以被用来实现所公开的网络设备配置文档管理技术的全部或一部分。网络基础设施800包括本公开的示例可以操作在其中的一组网络。网络基础设施800包括客户网络802、网络808、蜂窝网络803和云服务提供商网络810。在一个示例中,客户网络802可以是诸如包括各种网络设备的局域网(LAN)之类的本地专用网络,各种网络设备包括但不限于交换机、服务器和路由器。
这些网络中的每一个都可以包含有线或无线可编程设备,并且可以使用任何数量的网络协议(例如TCP/IP)和连接技术(例如
Figure BDA0002306853730000231
网络或
Figure BDA0002306853730000232
)进行操作。在另一个示例中,客户网络802表示企业网络,其可以包括或可通信耦合到一个或多个局域网(LAN)、虚拟网络、数据中心和/或其他远程网络(例如808、810)。在本公开的上下文中,客户网络802可以包括多个设备,这些设备被配置有基于诸如如上所述的RGL技术的所公开的多编辑和管理功能。此外,客户网络802(或所示出的其他网络)中的许多计算机存储资源之一可以被配置为存储图1的多个网络配置设备文档109。
如图8中所示,客户网络802可以连接到一个或多个客户端设备804A-E,并允许客户端设备804A-E经由网络808(例如,互联网)彼此通信和/或与云服务提供商网络810通信。客户端设备804A-E可以是计算系统,诸如台式计算机804B、平板计算机804C、移动电话804D、膝上型计算机(示出为无线)804E、和/或通常示出为客户端设备804A的其他类型的计算系统。
网络基础设施800还可以包括通常被称为物联网(IoT)的其他类型的设备(例如,边缘IOT设备805),其可以被配置为经由网络发送和接收信息以访问云计算服务或与远程web浏览器应用进行交互(例如,以接收配置信息)。
图8还图示出了客户网络802包括本地计算资源806A-C,本地计算资源806A-C可以包括服务器、接入点、路由器或被配置为提供本地计算资源和/或支持网络和设备之间的通信的其他设备。例如,本地计算资源806A-C可以是根据示例使用网络设备配置文档配置的一个或多个物理本地硬件设备。本地计算资源806A-C还可以支持其他外部应用、数据源(例如807A和807B)和服务以及客户网络802之间的通信。本地计算资源806C图示出了具有三个节点的可能处理系统集群。当然,任何数目的节点都是可能的,但是在该示例中出于说明目的示出了三个。
网络基础设施800还包括与移动通信设备一起使用的蜂窝网络803。移动蜂窝网络支持移动电话和许多其他类型的移动设备,诸如膝上型计算机等。网络基础设施800中的移动设备被图示出为移动电话804D、膝上型计算机804E和平板计算机804C。诸如移动电话804D之类的移动设备可以在移动设备移动时与一个或多个移动提供商网络交互,通常与用于连接到蜂窝网络803的多个移动网络塔820、830和840交互。在当前的监视和事件吸收管理的上下文中,关于节流动作的发起的用户警报可以被配置为提供最终用户通知。在一些实现中,该通知可以通过网络基础设施800直接被提供给系统管理员蜂窝电话。
尽管在图8中被称为蜂窝网络,但是移动设备可以与一个以上提供商网络的塔交互以及与诸如无线接入点和路由器之类的多个非蜂窝设备(例如,本地计算资源806A-C)交互。另外,移动设备可以为了期望的服务而与其他移动设备交互或者与诸如台式计算机804B和各种类型的客户端设备804A之类的非移动设备交互。尽管在图8中未具体图示出,客户网络802还可以包括专用网络设备(例如,网关或路由器)或者实现客户防火墙或入侵保护系统的网络设备的组合(未示出)。可以使用本公开的多编辑能力来配置这些类型的设备。
图8图示出了客户网络802耦合到网络808。网络808可以包括当今可用的一个或多个计算网络,诸如其他LAN、广域网(WAN)、互联网和/或其他远程网络,以便在客户端设备804A-D和云服务提供商网络810之间传送数据。网络808内的每个计算网络可以包含操作在电和/或光域中的有线和/或无线可编程设备。
在图8中,云服务提供商网络810被图示为能够经由客户网络802和网络808来与客户端设备804A-E进行通信的远程网络(例如,云网络)。云服务提供商网络810用作向客户端设备804A-E和/或客户网络802提供其他计算资源的平台。在一个示例中,云服务提供商网络810包括具有一个或多个服务器实例814的一个或多个数据中心812。
图9图示出了可以被用来实现本公开的功能、模块、处理平台、执行平台、通信设备以及其他方法和过程的计算机处理设备900。例如,图9中图示出的计算设备900可以表示客户端设备或物理服务器设备,并且取决于计算设备的抽象级别而包括硬件或(多个)虚拟处理器。在一些实例中(没有抽象),如图9中所示,计算设备900及其元件各自涉及物理硬件。备选地,在一些实例中,可以使用仿真器或虚拟机作为抽象级别来实现一个、多个或所有元件。在任何情况下,无论远离物理硬件多少抽象级别,都可以在物理硬件上实现在其最低级别处的计算设备900。
同样如图9中所示,计算设备900可以包括一个或多个输入设备930,诸如键盘、鼠标、触摸板或传感器读数(例如,生物特征扫描仪);和一个或多个输出设备915,诸如显示器、用于音频的扬声器或打印机。一些设备也可以被配置为输入/输出设备(例如,网络接口或触摸屏显示器)。
计算设备900还可以包括通信接口925,诸如可以包括可以可通信地耦合到处理器905的有线通信组件和/或无线通信组件的网络通信单元。网络通信单元可以利用各种专有或标准化网络协议(仅举几例,诸如以太网、TCP/IP)中的任何协议来实现设备之间的通信。网络通信单元还可以包括利用以太网、电力线通信(PLC)、WiFi、蜂窝和/或其他通信方法的一个或多个收发器。
如图9中所图示,计算设备900包括诸如处理器905之类的处理元件,其包含一个或多个硬件处理器,其中每个硬件处理器可以具有单个或多个处理器核。在一个示例中,处理器905可以包括至少一个共享缓存,该共享缓存存储由处理器905的一个或多个其他组件所利用的数据(例如,计算指令)。例如,共享缓存可以是存储在存储器中以由构成处理器905的处理元件的组件更快地访问的本地缓存的数据。在一个或多个示例中,共享缓存可以包括一个或多个中间级别的缓存,诸如2级(L2)、3级(L3)、4级(L4)或其他级别的缓存、最后一级缓存(LLC)或其组合。处理器的示例包括但不限于微处理器的中央处理单元(CPU)。尽管未在图9中图示出,但是构成处理器905的处理元件还可以包括一种或多种其他类型的硬件处理组件,诸如图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、和/或数字信号处理器(DSP)。
图9图示出了存储器910可以可操作地并且可通信地耦合到处理器905。存储器910可以是被配置为存储各种类型的数据的非暂时性介质。例如,存储器910可以包括一个或多个存储设备920,其包括非易失性存储设备和/或易失性存储器。诸如随机存取存储器(RAM)之类的易失性存储器可以是任何合适的非永久性存储设备。非易失性存储设备920可以包括一个或多个磁盘驱动器、光盘驱动器、固态驱动器(SSD)、磁带驱动器、闪存、只读存储器(ROM)和/或被设计来在断电或关机操作后的一段时间内保持数据的任何其他类型的存储器。在某些实例中,如果分配的RAM不足够大以容纳所有工作数据,则可以使用非易失性存储设备920来存储溢出数据。非易失性存储设备920还可以被用来存储当程序被选择用于执行时被加载到RAM中的这些程序。
本领域普通技术人员知道,可以针对各种软件平台和/或操作系统,以各种计算语言来开发、编码和编译软件程序,并且随后由处理器905加载和执行软件程序。在一个示例中,软件程序的编译过程可以将以编程语言编写的程序代码转换为另一种计算机语言,使得处理器905能够执行该编程代码。例如,软件程序的编译过程可以生成可执行程序,该可执行程序为处理器905提供编码指令(例如,机器代码指令)以完成具体的、非通用的、特定的计算功能。
在编译过程之后,然后可以将已编码的指令作为计算机可执行指令或处理事件从存储设备920、从存储器910加载到处理器905,和/或嵌入处理器905内(例如,经由高速缓存或板上ROM)。处理器905可以被配置为执行所存储的指令或处理事件,以便执行指令或处理事件以将计算设备转换为非通用的、特定的、特别编程的机器或装置。在计算机可执行指令或处理事件的执行期间,处理器905可以访问所存储的数据,例如由存储设备920存储的数据,以指令计算设备900内的一个或多个组件。
用户界面(例如,输出设备915和输入设备930)可以包括显示器、位置输入设备(诸如鼠标、触摸板、触摸屏等)、键盘或其他形式的用户输入和输出设备。用户界面组件可以可通信地耦合到处理器905。当输出设备是显示器或包括显示器时,可以以各种方式来实现显示器,包括通过液晶显示器(LCD)或阴极射线管(CRT)或发光二极管(LED)显示器,诸如有机发光二极管(OLED)显示器。本领域普通技术人员知道,计算设备900可以包括未在图9中明确示出的本领域公知的其他组件,诸如传感器、电源和/或模数转换器。
在整个说明书和权利要求书中使用了某些术语来指代特定的系统组件。如本领域技术人员将理解的,不同的各方可以通过不同的名称来指代组件。本文档无意区分名称不同但功能相同的组件。在本公开和权利要求书中,术语“包括”和“包含”以开放的方式被使用,并且因此应被解释为意指“包括但不限于……”。而且,术语“耦合”或“耦接”旨在意味着间接或直接的有线或无线连接。因此,如果第一设备耦合到第二设备,则该连接可以是通过直接连接或通过经由其他设备和连接的间接连接。叙述“基于”旨在意味着“至少部分地基于”。因此,如果X基于Y,则X可以根据Y和其他许多因素。
以上讨论意在说明本公开的原理和各种实现。一旦完全理解了上述公开,则许多变化和修改对于本领域技术人员将变得显而易见。意图将以下权利要求解释为包含所有这样的变化和修改。

Claims (20)

1.一种计算机系统,包括:
网络通信接口;
存储器;和
可通信地耦合到所述存储器和所述网络通信接口的一个或多个处理单元,其中所述存储器存储指令,所述指令在由所述一个或多个处理单元执行时使得所述一个或多个处理单元提供视图和编辑功能的服务器侧组件,以同时查看和编辑多个网络设备配置,所述服务器侧组件:
解析多个不同网络设备配置文档,以相对于所述不同网络设备配置文档中的每个网络设备配置文档内的相关参数设置的位置,创建一组槽和锚点,所述槽指示参数设置的类型,并且所述锚点指示基于槽指示的、在所述不同网络设备配置文档中的每个网络设备配置文档内的相对位置;
将感兴趣区域的缩略视图连同与至少一个锚点有关的信息一起传输到远程客户端设备,以将来自所述缩略视图的配置设置映射回所述多个不同网络设备配置文档中的一个或多个网络设备配置文档;
从所述远程客户端设备接收来自所述缩略视图的用于网络配置设置的参数值中的更改的指示,所述指示包括用于所述参数值中的更改的关联锚点;
使用所述关联锚点来确定位置,以将从所述远程客户端设备接收到的所述参数值中的更改应用于所述多个不同网络设备配置文档中的多个网络设备配置文档,
其中被发送到所述远程客户端设备的用于所述缩略视图的信息将来自所述感兴趣区域的信息的多个实例压缩到单个实例中,以减少向所述远程客户端设备的信息传输。
2.根据权利要求1所述的计算机系统,其中所述远程客户端设备执行客户端侧应用,以与多编辑应用的服务器侧实例对接。
3.根据权利要求1所述的计算机系统,其中从所述远程客户端设备接收的所述关联锚点映射到所述多个不同网络设备配置文档中的多个网络设备配置文档。
4.根据权利要求1所述的计算机系统,其中在将所述参数值中的更改应用于所述多个不同网络设备配置文档中的多个网络设备配置文档之后,更新的缩略视图被发送到所述远程客户端,所述更新的缩略视图表示信息增量,所述信息增量被应用以从与所述感兴趣区域相关联的多个文档中略去冗余信息的传输。
5.根据权利要求1所述的计算机系统,还包括指令,所述指令在由所述一个或多个处理单元执行时使得所述一个或多个处理单元:
基于与网络相关联的规则的限制性语法语言(RGL)定义,创建所述一组槽作为所述服务器侧组件的一部分,所述网络包括与第一配置文件相关联的第一设备和与第二配置文件相关联的第二设备,所述第一配置文件和所述第二配置文件是所述多个不同网络设备配置文档的一部分;
将所述RGL的至少一部分传输到所述远程客户端设备,以从所述RGL提供有关在所述缩略视图中呈现的所述感兴趣区域的信息。
6.根据权利要求5所述的计算机系统,还包括指令,所述指令在由所述一个或多个处理单元执行时使得所述一个或多个处理单元:
在允许从所述远程客户端设备向所述服务器侧组件传输所述更改的所述指示之前,利用所述远程客户端设备上的所述RGL的所述一部分来验证所述参数值中的更改。
7.根据权利要求6所述的计算机系统,其中响应于失败的验证,将所述更改的所述指示从所述远程客户端传输到所述服务器侧组件被阻止。
8.根据权利要求5所述的计算机系统,其中所述RGL定义包括从连接到所述网络的具有网络配置设置的大多数设备收集的信息。
9.根据权利要求8所述的计算机系统,其中所述RGL包括用于指示针对所述网络内的参数值的一致性的信息,所述参数值应针对所述网络内的所有设备而被相似地或相同地配置。
10.一种非暂时性计算机可读介质,包括存储在其上的指令,所述指令在由一个或多个处理单元执行时使得所述一个或多个处理单元:
解析多个不同网络设备配置文档,以相对于所述不同网络设备配置文档中的每个网络设备配置文档内的相关参数设置的位置,创建一组槽和锚点,所述槽指示参数设置的类型,并且所述锚点指示基于槽指示的、在所述不同网络设备配置文档中的每个网络设备配置文档内的相对位置;
将感兴趣区域的缩略视图连同与至少一个锚点有关的信息一起传输到远程客户端设备,以将来自所述缩略视图的配置设置映射回所述多个不同网络设备配置文档中的一个或多个网络设备配置文档;
从所述远程客户端设备接收来自所述缩略视图的用于网络配置设置的参数值中的更改的指示,所述指示包括用于所述参数值中的更改的关联锚点;
使用所述关联锚点来确定位置,以将从所述远程客户端设备接收到的所述参数值中的更改应用于所述多个不同网络设备配置文档中的多个网络设备配置文档,
其中被发送到所述远程客户端设备的用于所述缩略视图的信息将来自所述感兴趣区域的信息的多个实例压缩到单个实例中,以减少向所述远程客户端设备的信息传输。
11.根据权利要求10所述的非暂时性计算机可读介质,其中所述远程客户端设备执行客户端侧应用,以与多编辑应用的服务器侧实例对接。
12.根据权利要求10所述的非暂时性计算机可读介质,其中从所述远程客户端设备接收的所述关联锚点映射到所述多个不同网络设备配置文档中的多个网络设备配置文档。
13.根据权利要求10所述的非暂时性计算机可读介质,其中在将所述参数值中的更改应用于所述多个不同网络设备配置文档中的多个网络设备配置文档之后,更新的缩略视图被发送到所述远程客户端,所述更新的缩略视图表示信息增量,所述信息增量被应用以从与所述感兴趣区域相关联的多个文档中略去冗余信息的传输。
14.根据权利要求10所述的非暂时性计算机可读介质,还包括指令,所述指令在由所述一个或多个处理单元执行时使得所述一个或多个处理单元:
基于与网络相关联的规则的限制性语法语言(RGL)定义,创建所述一组槽作为所述服务器侧组件的一部分,所述网络包括与第一配置文件相关联的第一设备和与第二配置文件相关联的第二设备,所述第一配置文件和所述第二配置文件是所述多个不同网络设备配置文档中的一部分;
将所述RGL的至少一部分传输到所述远程客户端设备,以从所述RGL提供有关在所述缩略视图中呈现的所述感兴趣区域的信息。
15.根据权利要求14所述的非暂时性计算机可读介质,还包括指令,所述指令在由所述一个或多个处理单元执行时使得所述一个或多个处理单元:
在允许从所述远程客户端设备向所述服务器侧组件传输所述更改的所述指示之前,利用所述远程客户端设备上的所述RGL的所述一部分来验证所述参数值中的更改。
16.根据权利要求15所述的非暂时性计算机可读介质,其中响应于失败的验证,将所述更改的所述指示从所述远程客户端传输到所述服务器侧组件被阻止。
17.根据权利要求14所述的非暂时性计算机可读介质,其中所述RGL定义包括从连接到所述网络的具有网络配置设置的大多数设备收集的信息。
18.根据权利要求17所述的非暂时性计算机可读介质,其中所述RGL包括用于指示针对所述网络内的参数值的一致性的信息,所述参数值应针对所述网络内的所有设备而被相似地或相同地配置。
19.一种计算机实现的方法,包括:
解析多个不同网络设备配置文档,以相对于所述不同网络设备配置文档中的每个网络设备配置文档内的相关参数设置的位置,创建一组槽和锚点,所述槽指示参数设置的类型,并且所述锚点指示基于槽指示的、在所述不同网络设备配置文档中的每个网络设备配置文档内的相对位置;
将感兴趣区域的缩略视图连同与至少一个锚点有关的信息一起传输到远程客户端设备,以将来自所述缩略视图的配置设置映射回所述多个不同网络设备配置文档中的一个或多个网络设备配置文档;
从所述远程客户端设备接收来自所述缩略视图的用于网络配置设置的参数值中的更改的指示,所述指示包括用于所述参数值中的更改的关联锚点;
使用所述关联锚点来确定位置,以将从所述远程客户端设备接收到的所述参数值中的更改应用于所述多个不同网络设备配置文档中的多个网络设备配置文档,
其中被发送到所述远程客户端设备的用于所述缩略视图的信息将来自所述感兴趣区域的信息的多个实例压缩到单个实例中,以减少向所述远程客户端设备的信息传输。
20.根据权利要求19所述的计算机实现的方法,其中所述远程客户端设备执行客户端侧应用,以与多编辑应用的服务器侧实例对接。
CN201911243330.2A 2018-12-07 2019-12-06 用于多文档编辑器的计算机系统 Active CN111294232B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/213,652 2018-12-07
US16/213,652 US11115279B2 (en) 2018-12-07 2018-12-07 Client server model for multiple document editor

Publications (2)

Publication Number Publication Date
CN111294232A true CN111294232A (zh) 2020-06-16
CN111294232B CN111294232B (zh) 2022-07-12

Family

ID=70776901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243330.2A Active CN111294232B (zh) 2018-12-07 2019-12-06 用于多文档编辑器的计算机系统

Country Status (3)

Country Link
US (1) US11115279B2 (zh)
CN (1) CN111294232B (zh)
DE (1) DE102019133197B4 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124960A (zh) * 2021-10-27 2022-03-01 苏州浪潮智能科技有限公司 并行集群文件系统双网部署方法、系统、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060074871A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation System and method for incorporating anchor text into ranking search results
CN104111828A (zh) * 2013-04-22 2014-10-22 易保网络技术(上海)有限公司 人机交互界面自动生成方法及系统
CN104303147A (zh) * 2012-05-30 2015-01-21 惠普发展公司,有限责任合伙企业 服务器配置文件模板
CN106815328A (zh) * 2016-12-29 2017-06-09 广东小天才科技有限公司 一种文档处理方法、文档处理系统及Notes服务器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003562B2 (en) * 2001-03-27 2006-02-21 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
JP2007513407A (ja) * 2003-11-12 2007-05-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 文法生成のための句への意味標識の付与
US7966600B2 (en) 2006-09-19 2011-06-21 International Business Machines Corporation Distributed resource understanding tool management
US20090077091A1 (en) 2007-09-18 2009-03-19 Gilad Khen System for development and hosting of network applications
US7870238B2 (en) * 2008-02-15 2011-01-11 !J Incorporated Vendor-independent network configuration tool
US20140258969A1 (en) 2013-03-05 2014-09-11 Research In Motion Limited Web-Based Integrated Development Environment For Real-Time Collaborative Application Development
US9600256B2 (en) 2013-10-18 2017-03-21 Microsoft Technology Licensing, Llc Incrementally compiling software artifacts from an interactive development environment
US9436585B1 (en) 2015-11-19 2016-09-06 International Business Machines Corporation Image patching in an integrated development environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060074871A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation System and method for incorporating anchor text into ranking search results
CN104303147A (zh) * 2012-05-30 2015-01-21 惠普发展公司,有限责任合伙企业 服务器配置文件模板
CN104303147B (zh) * 2012-05-30 2017-07-28 慧与发展有限责任合伙企业 服务器配置文件模板
CN104111828A (zh) * 2013-04-22 2014-10-22 易保网络技术(上海)有限公司 人机交互界面自动生成方法及系统
CN106815328A (zh) * 2016-12-29 2017-06-09 广东小天才科技有限公司 一种文档处理方法、文档处理系统及Notes服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124960A (zh) * 2021-10-27 2022-03-01 苏州浪潮智能科技有限公司 并行集群文件系统双网部署方法、系统、终端及存储介质
CN114124960B (zh) * 2021-10-27 2023-08-08 苏州浪潮智能科技有限公司 并行集群文件系统双网部署方法、系统、终端及存储介质

Also Published As

Publication number Publication date
US20200186421A1 (en) 2020-06-11
US11115279B2 (en) 2021-09-07
DE102019133197B4 (de) 2023-08-10
DE102019133197A1 (de) 2020-06-10
CN111294232B (zh) 2022-07-12

Similar Documents

Publication Publication Date Title
US11210466B2 (en) Multiple document editing using rules for a restricted language
US9686162B2 (en) Identifying configuration inconsistency in edge-based software defined networks (SDN)
US11374827B2 (en) System for simultaneous viewing and editing of multiple network device configurations
US8429645B2 (en) Method for optimizing migration of software applications to address needs
US9218197B2 (en) Virtual machine image migration
US9183062B2 (en) Automated application reconfiguration
US9952832B2 (en) Methods for generating smart archtecture templates and devices thereof
US11082293B2 (en) System and method for validating correctness of changes to network device configurations
CN111683066B (zh) 异构系统集成方法、装置、计算机设备和存储介质
US10979295B2 (en) Automatically discovering topology of an information technology (IT) infrastructure
US10121150B2 (en) Compliance as a service for an organization
CN111294232B (zh) 用于多文档编辑器的计算机系统
US20140359258A1 (en) Declarative Configuration Elements
US11823701B2 (en) Network operation based on domain specific language
US11283677B2 (en) Maintaining edit position for multiple document editor
US11487933B2 (en) Error detection and correction for multiple document editor
JP2022553359A (ja) セマンティックショートカットを用いる強化された自然言語処理
US20220405099A1 (en) Generating masks for formats including masking restrictions
Dittrich et al. A model for evaluation of user-perceived service properties
CN117171800B (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
GR01 Patent grant
GR01 Patent grant