CN117389822A - 通过命令验证的快速错误检测 - Google Patents
通过命令验证的快速错误检测 Download PDFInfo
- Publication number
- CN117389822A CN117389822A CN202310764763.2A CN202310764763A CN117389822A CN 117389822 A CN117389822 A CN 117389822A CN 202310764763 A CN202310764763 A CN 202310764763A CN 117389822 A CN117389822 A CN 117389822A
- Authority
- CN
- China
- Prior art keywords
- discovery
- command
- list
- commands
- network
- 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
- 238000010200 validation analysis Methods 0.000 title claims description 24
- 238000001514 detection method Methods 0.000 title description 3
- 230000015654 memory Effects 0.000 claims abstract description 50
- 238000012795 verification Methods 0.000 claims abstract description 46
- 230000002085 persistent effect Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 32
- 238000013475 authorization Methods 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 abstract description 21
- 238000007726 management method Methods 0.000 description 53
- 238000004891 communication Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 19
- 239000000523 sample Substances 0.000 description 19
- 238000011161 development Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101150098958 CMD1 gene Proteins 0.000 description 1
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 1
- 206010012586 Device interaction Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000002167 anodic stripping potentiometry Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 206010003664 atrial septal defect Diseases 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
- H04L41/122—Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
持久存储器可以包含发现命令列表,其中所述发现命令列表的发现命令分别与网络地址列表相关联。发现验证应用在由一个或更多个处理器执行时可以被配置为:从持久存储器读取发现命令列表和网络地址列表;对于发现命令列表中的每个发现命令,通过部署在系统外部的一个或更多个代理服务器将发现命令发送到分别相关联的网络地址列表中的每个网络地址;通过一个或更多个代理服务器接收分别对应于所发送的发现命令中的每个发现命令的发现结果,其中,所述发现结果指示发现命令的成功或失败;并将发现结果写入到持久存储器中。
Description
背景技术
发现是一个自动化或半自动化的过程,通过该过程能够确定和表征计算设备以及在这些计算设备上安装和/或执行的软件应用。这种设备和软件的表示能够作为配置项存储在数据库中。配置项之间的关系也能够被确定并存储在数据库中。通常应用于被管理网络或公共云服务,发现不仅提供了这些配置项和关系的列表,而且还作为更高级别应用能够管理信息技术(IT)基础设施的基础。
尽管如此,在某些环境中,配置发现使得其正确运行可能是一项挑战。值得注意的是,发现模式——类似脚本的命令列表,提供了发现特定设备或系统的分步过程——可能会因配置错误而失败。但这些失败通常要数小时或数天才能发现,因此,寻求发现的设备或系统在数据库中仍然没有代表。
发明内容
本文的实施例通过提供能够在给定的网络地址集上测试发现过程的机制来解决这些以及可能的其他技术问题。在示例中,这种机制可以采用基于软件的验证工具(也称为“发现验证应用”)的形式,该工具将发现命令列表和网络地址集作为输入。验证工具然后使用发现基础设施来测试发现命令以及网络地址。例如,验证工具可以在数据库表、文件中或通过图形用户界面的方式提供这些命令/地址对的成功或失败的指示。
因此,在参与发现过程之前,用户能够针对网络地址集测试发现模式。验证工具的输出可能指示任何失败的原因,例如不支持的命令、不可达的网络地址、认证失败或授权失败。用户以快速的方式接收任何失败指示,并且能够采取步骤来纠正或减轻失败。一旦验证工具能够在没有失败的情况下执行发现模式,就可以将该模式添加到定期自动发现过程中,并对其将成功完成具有高的置信度。
因此,第一示例实施例可以涉及包含发现命令列表的持久存储器,其中所述发现命令列表的发现命令分别与网络地址列表相关联。第一示例实施例还可以涉及一个或更多个处理器和发现验证应用,该发现验证应用在由所述一个或更多个处理器执行时被配置为:从持久存储器读取发现命令列表和网络地址列表;对于发现命令列表中的每个发现命令,通过部署在所述系统外部的一个或更多个代理服务器将所述发现命令发送到分别相关联的网络地址列表中的每个网络地址;通过所述一个或更多个代理服务器接收分别对应于所发送的发现命令中的每个发现命令的发现结果,其中,所述发现结果指示所述发现命令的成功或失败;并将发现结果写入到持久存储器中。
第二示例实施例可以涉及由发现验证应用从持久存储器读取分别与网络地址列表相关联的发现命令列表以及网络地址列表。第二示例实施例还可以涉及,对于发现命令列表中的每个发现命令,由发现验证应用通过一个或更多个代理服务器将发现命令发送到分别相关联的网络地址列表中的每个网络地址。第二示例实施例还可以涉及由发现验证应用通过所述一个或更多个代理服务器接收分别对应于所发送的每个发现命令的发现结果,其中,发现结果指示发现命令的成功或失败。第二示例实施例还可以涉及由发现验证应用将发现结果写入持久存储器。
在第三示例实施例中,一种制造品可以包括非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有程序指令,该程序指令在由计算系统执行时使得计算系统执行根据第一示例实施例和/或第二示例实施例的操作。
在第四示例实施例中,计算系统可以包括至少一个处理器以及存储器和程序指令。程序指令可以存储在存储器中,并且在由所述至少一个处理器执行时,使得计算系统执行根据第一示例实施例和/或第二示例实施例的操作。
在第五示例实施例中,系统可以包括用于执行第一示例实施例和/或第二示例实施例的操作的每一个操作的各种装置。
通过阅读以下详细描述,并在适当的情况下参考附图,这些以及其他实施例、方面、优点和替代方案对于本领域普通技术人员将变得显而易见。此外,本文提供的本概述和其他描述及附图旨在仅通过示例的方式来说明实施例,并且因此,许多变化是可能的。例如,结构元件和工艺步骤可以被重新排列、组合、分布、消除或以其他方式改变,同时保持在所要求保护的实施例的范围内。
附图说明
图1示出了根据示例实施例的计算设备的示意图。
图2示出了根据示例实施例的服务器设备集群的示意图。
图3描绘了根据示例实施例的远程网络管理架构。
图4描绘了根据示例实施例的涉及远程网络管理架构的通信环境。
图5描绘了根据示例实施例的涉及远程网络管理架构的另一通信环境。
图6A描绘了根据示例实施例的虚拟机集群。
图6B描绘了根据示例实施例的图6A的虚拟机集群的简单发现模式。
图7描绘了根据示例实施例的涉及托管验证工具的远程网络管理架构的通信环境。
图8描绘了根据示例实施例的与数据库表交互的验证工具。
图9描绘了根据示例实施例的验证工具的操作。
图10是根据示例实施例的流程图。
具体实施方式
本文描述了示例方法、设备和系统。应该理解的是,“示例”和“示例性”在本文中用于表示“作为示例、实例或说明”。本文中描述为“示例”或“示例性”的任何实施例或特征不一定被解释为优于其他实施例或特征,除非如此说明。因此,在不脱离本文所呈现的主题的范围的情况下,可以利用其他实施例并且可以进行其他改变。
因此,本文所描述的示例性实施例并不意味着是限制性的。将容易理解的是,本公开的各方面,如本文总体描述的和附图中所示的,能够以各种不同的配置来布置、替换、组合、分离和设计。例如,将特征分离为“客户端”和“服务器”组件可能有多种方式。
此外,除非上下文另有说明,否则附图中的每一个所示的特征可以彼此组合使用。因此,附图通常应被视为一个或更多个总体实施例的组成方面,但应理解并非所有所示特征对于每个实施例都是必要的。
此外,本说明书或权利要求中的元素、块或步骤的任何列举都是为了清楚起见。因此,这种列举不应被解释为要求或暗示这些元素、块或步骤遵循特定的安排或以特定的顺序执行。
Ⅰ.引言
大型企业是由许多相互关联的运营组成的复杂实体。其中一些运营遍布整个企业,如人力资源(HR)、供应链、信息技术(IT)和财务。然而,每个企业也有自己独特的运营,提供基本能力和/或创造竞争优势。
为了支持广泛实施的运营,企业通常使用现成的软件应用,如客户关系管理(CRM)和人力资本管理(HCM)包。然而,他们可能还需要自定义软件应用来满足自己的独特需求。一个大型企业通常有几十个或数百个这样的自定义软件应用。尽管如此,本文的实施例所提供的优点并不局限于大型企业,并且可以应用于任何规模的企业或任何其他类型的组织。
许多这样的软件应用是由企业内的各个部门开发的。这样的软件应用的范围从简单的电子表格到定制的软件工具和数据库。但是,孤立的自定义软件应用的激增有许多缺点。其对企业运营和发展、创新以及满足监管要求的能力产生了负面影响。由于缺乏统一其子系统和数据的单一系统,企业可能会发现难以集成、精简和增强其运营。
为了有效地创建自定义应用,企业将受益于远程托管的应用平台,该平台消除了不必要的开发复杂性。这样一个平台的目标是减少耗时、重复的应用开发任务,以便软件工程师和其他角色的个人能够专注于开发独特的、高价值的功能。
为了实现这一目标,引入了应用平台即服务(aPaaS)的构思,以智能地自动化整个企业的工作流程。aPaaS系统是从企业远程托管的,但可以通过安全连接访问企业内的数据、应用和服务。这样的aPaaS系统可能具有许多有利的能力和特性。这些优势和特性可能能够改善企业在IT、HR、CRM、客户服务、应用开发和安全方面的运营和工作流程。尽管如此,本文的实施例不限于企业应用或环境,并且可以更广泛地应用。
aPaaS系统可以支持模型-视图-控制器(MVC)应用的开发和执行。MVC应用将其功能划分为三个相互连接的部分(模型、视图和控制器),以便将信息的表示与向用户呈现信息的方式隔离开来,从而实现高效的代码重用和并行开发。这些应用可能是基于web的,并提供创建、读取、更新和删除(CRUD)功能。这允许在通用应用基础设施上构建新的应用。在某些情况下,可以采用与MVC结构不同的应用,例如使用单向数据流的应用。
aPaaS系统可以支持标准化的应用组件,例如用于图形用户界面(GUI)开发的标准化小组件集。通过这种方式,使用aPaaS系统构建的应用具有共同的外观。其他软件组件和模块也可以被标准化。在某些情况下,这种外观可以使用企业的自定义徽标和/或配色方案进行标记或设置皮肤。
aPaaS系统可能支持使用元数据配置应用行为的能力。这允许快速调整应用行为以满足特定需求。这种方法减少了开发时间并增加了灵活性。此外,aPaaS系统可以支持便于元数据创建和管理的GUI工具,从而减少元数据中的错误。
aPaaS系统可能支持应用之间明确定义的接口,使得软件开发人员能够避免不必要的应用间依赖关系。因此,aPaaS系统可以实现存储持久状态信息和其他数据的服务层。
aPaaS系统可以支持丰富的集成功能集,使得其上的应用能够与遗留应用和第三方应用交互。例如,aPaaS系统可能支持与传统HR、IT和会计系统集成的定制员工入职系统。
aPaaS系统可能支持企业级安全。此外,由于aPaaS系统可能是远程托管的,因此当其与企业内的系统或企业外托管的第三方网络和服务交互时,也应该使用安全程序。例如,aPaaS系统可以配置为在企业和其他方之间共享数据,以检测和识别常见的安全威胁。
aPaaS系统的其他特性、功能和优势也可能存在。该描述是为了举例的目的,而不是为了限制。
作为aPaaS开发过程的一个例子,软件开发人员可能被指派使用aPaaS系统创建新的应用。首先,开发人员可以定义数据模型,该数据模型指定应用使用的数据类型以及它们之间的关系。然后,通过aPaaS系统的GUI,开发人员输入(例如上传)数据模型。aPaaS系统自动创建所有相应的数据库表、字段和关系,然后能够通过面向对象的服务层访问这些表、字段、关系。
此外,aPaaS系统还可以构建具有客户端接口和服务器端CRUD逻辑的全功能应用。这个生成的应用可以作为用户进一步开发的基础。有利地,开发人员不必在基本应用功能上花费大量时间。此外,由于该应用可以是基于网络的,因此可以从任何支持互联网的客户端设备访问该应用。替代地或附加地,例如,当互联网服务不可用时,可以访问应用的本地副本。
aPaaS系统还可以支持一组丰富的预定义功能,这些功能能够添加到应用中。这些功能包括对搜索、电子邮件、模板、工作流设计、报告、分析、社交媒体、脚本、移动友好输出和自定义GUI的支持。
这样的aPaaS系统可以以各种方式表示GUI。例如,aPaaS系统的服务器设备可以使用超文本标记语言(HTML)和的组合来生成GUI的表示。可能包括客户端可执行代码、服务器端可执行代码,或两者都包括。服务器设备可以向客户端设备发送或以其他方式提供该表示,以便客户端设备根据其本地定义的外观在屏幕上显示。替代地,GUI的表示可以采用其他形式,例如中间形式(例如,字节码),客户端设备可以用来直接从所述中间形式中生成图形输出。存在其他可能。
此外,用户与GUI元素(例如按钮、菜单、选项卡、滑块、复选框、切换键等)的交互可以被称为其“选择”、“激活”或“致动”。无论GUI元素是通过键盘、定点设备、触摸屏还是其他机制进行交互,都可以使用这些术语。
aPaaS架构在与企业网络集成并用于管理此类网络时特别强大。以下实施例描述了示例aPaaS系统的架构和功能方面,以及其特征和优点。
Ⅱ.示例计算设备和基于云的计算环境
图1是举例说明计算设备100的简化框图,示出了可以包括在被布置为根据本文实施例进行操作的计算设备中的一些组件。计算设备100可以是客户端设备(例如,由用户主动操作的设备)、服务器设备(例如向客户端设备提供计算服务的设备)或某些其他类型的计算平台。一些服务器设备可以不时地作为客户端设备进行操作6以便执行特定操作,并且一些客户端设备可以并入服务器特征。
在该示例中,计算设备100包括处理器102、存储器104、网络接口106和输入/输出单元108,其都可以通过系统总线110或类似机制耦合。在一些实施例中,计算设备100可以包括其他组件和/或外围设备(例如,可拆卸存储器、打印机等)。
处理器102可以是任何类型的计算机处理元件中的一个或更多个,诸如中央处理单元(CPU)、协处理器(例如,数学、图形或加密协处理器)、数字信号处理器(DSP)、网络处理器和/或执行处理器操作的集成电路或控制器的形式。在一些情况下,处理器102可以是一个或更多个单核处理器。在其他情况下,处理器102可以是具有多个独立处理单元的一个或更多个多核处理器。处理器102还可以包括用于临时存储正在执行的指令和相关数据的寄存器存储器,以及用于临时存储最近使用的指令和数据的高速缓冲存储器。
存储器104可以是任何形式的计算机可用存储器,包括但不限于随机存取存储器(RAM)、只读存储器(ROM)和非易失性存储器(例如,闪存、硬盘驱动器、固态驱动器、光盘(CD)、数字视频光盘(DVD)和/或磁带存储器)。因此,存储器104既表示主存储器单元,也表示长期存储器。其他类型的存储器可以包括生物存储器。
存储器104可以存储程序指令和/或数据,所述程序指令可以在其上操作。举例来说,存储器104可将这些程序指令存储在非暂时性计算机可读介质上,使得所述指令可由处理器102执行以执行本说明书或附图中公开的任何方法、过程或操作。
如图1所示,存储器104可以包括固件104A、内核104B和/或应用104C。固件104A可以是用于引导或以其他方式启动计算设备100中的一些或全部的程序代码。内核104B可以是操作系统,包括用于存储器管理、进程的调度和管理、输入/输出以及通信的模块。内核104B还可以包括允许操作系统与计算设备100的硬件模块(例如,存储器单元、网络接口、端口和总线)通信的设备驱动器。应用104C可以是一个或更多个用户空间软件程序,例如网络浏览器或电子邮件客户端,以及这些程序使用的任何软件库。存储器104还可以存储由这些程序和其他程序及应用使用的数据。
网络接口106可以采用一个或更多个有线接口的形式,例如以太网(例如,快速以太网、千兆以太网等)。网络接口106还可以支持通过一个或更多个非以太网介质(例如同轴电缆或电力线)或通过广域介质(例如同步光网络(SONET)或数字用户线(DSL)技术)进行通信。网络接口106还可以采取一个更或更多个无线接口的形式,例如IEEE 802.11(Wifi)、全球定位系统(GPS)或广域无线接口。然而,可以在网络接口106上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,网络接口106可以包括多个物理接口。例如,计算设备100的一些实施例可以包括以太网、和Wifi接口。
输入/输出单元108可以促进用户和外围设备与计算设备100的交互。输入/输出单元108可以包括一种或更多种类型的输入设备,例如键盘、鼠标、触摸屏等等。类似地,输入/输出单元108可以包括一种或更多种类型的输出设备,例如屏幕、监视器、打印机和/或一个或更多个发光二极管(LED)。附加地或替代地,例如,计算设备100可以使用通用串行总线(USB)或高清晰度多媒体接口(HDMI)端口接口与其他设备通信。
在一些实施例中,可以部署像计算设备100这样的一个或更多个计算设备来支持aPaaS架构。这些计算设备的确切物理位置、连接和配置对于客户端设备来说可能是未知的和/或不重要的。因此,计算设备可以被称为“基于云的”设备,其可以容纳在各种远程数据中心位置处。
图2描绘了根据示例实施例的基于云的服务器集群200。在图2中,计算设备(例如,计算设备100)的操作可以分布在服务器设备202、数据存储器204和路由器206之间,所有这些设备都可以通过本地集群网络208连接。服务器集群200中的服务器设备202、数据存储器204和路由器206的数量可以取决于分配给服务器集群200的计算任务和/或应用。
例如,服务器设备202可以被配置为执行计算设备100的各种计算任务。因此,计算任务可以分布在一个更多个服务器设备202之间。只要这些计算任务可以并行执行,这样的任务分布可以减少完成这些任务并返回结果的总时间。为了简单起见,服务器集群200和各个服务器设备202都可以被称为“服务器设备”。该术语应理解为暗示服务器设备操作可能涉及一个或更多个不同的服务器设备、数据存储设备和集群路由器。
数据存储器204可以是包括驱动阵列控制器的数据存储阵列,驱动阵列控制器被配置为管理对成组的硬盘驱动器和/或固态驱动器的读写访问。驱动器阵列控制器,单独地或结合服务器设备202,还可以被配置为管理存储在数据存储器204中的数据的备份或冗余副本,以防止驱动器故障或阻止一个或更多个服务器设备202访问数据存储器204的单元的其他类型的故障。除了驱动器之外,还可以使用其他类型的存储器。
路由器206可以包括被配置为为服务器集群200提供内部和外部通信的网络设备。例如,路由器206可以包括一个或更多个数据包交换和/或路由设备(包括交换机和/或网关),其被配置为提供(i)经由本地集群网络208在服务器设备202和数据存储器204之间的网络通信,和/或(ii)经由到网络212的通信链路210在服务器集群200和其他设备之间的网络通信。
此外,路由器206的配置能够至少部分地基于服务器设备202和数据存储器204的数据通信要求、本地集群网络208的延迟和吞吐量、通信链路210的延迟、吞吐量和成本,和/或可能有助于成本、速度、容错性、弹性、效率的其他因素,和/或系统架构的其他设计目标。
作为一个可能示例,数据存储器204可以包括任何形式的数据库,例如结构化查询语言(SQL)数据库。各种类型的数据结构可以将信息存储在这样的数据库中,包括但不限于表、数组、列表、树和元组。此外,数据存储器204中的任何数据库都可以是单片的或分布在多个物理设备上。
服务器设备202可以被配置为向数据存储器204发送数据和从数据存储器204接收数据。这种发送和取回可以分别采用SQL查询或其他类型的数据库查询以及这些查询的输出的形式。还可以包括附加的文本、图像、视频和/或音频。此外,服务器设备202可以将接收到的数据组织成网页或web应用表示。这种表示可以采用标记语言的形式,例如HTML、可扩展标记语言(XML)或一些其他标准化或专有格式。此外,服务器设备202可以具有执行各种类型的计算机化脚本语言的能力,例如但不限于Perl、Python、PHP超文本预处理器(PHP)、活动服务器页面(ASP)、等。用这些语言编写的计算机程序代码可以促进向客户端设备提供网页,以及客户端设备与网页的交互。替代地或附加地,可用于促进网页的生成和/或提供web应用功能。
Ⅲ.远程网络管理架构示例
图3描绘了根据示例实施例的远程网络管理架构。该架构包括三个主要组件——被管理网络300、远程网络管理平台320和公共云网络340——所有这些组件都通过互联网350连接。
A.被管理网络
例如,被管理网络300可以是由实体使用的企业网络,用于计算和通信任务以及数据存储。因此,被管理网络300可以包括客户端设备302、服务器设备304、路由器306、虚拟机308、防火墙310和/或代理服务器312。客户端设备302可以由计算设备100实现,服务器设备304可以由计算设备100或服务器集群200实现,并且路由器306可以是任何类型的路由器、交换机或网关。
虚拟机308可以由计算设备100或服务器集群200中的一个或更多个来实现。通常,虚拟机是计算系统的仿真,并模拟物理计算机的功能(例如,处理器、存储器和通信资源)。一个物理计算系统(例如服务器集群200)可以支持多达数千个单独的虚拟机。在一些实施例中,虚拟机308可以由集中式服务器设备或应用来管理,其促进将物理计算资源分配给各个虚拟机以及性能和错误报告。企业通常使用虚拟机,以便以高效、按需的方式分配计算资源。虚拟化计算系统的提供商包括和
防火墙310可以是一个或更多个专用路由器或服务器设备,其保护被管理网络300免受未经授权的访问其中的设备、应用和服务的尝试,同时允许从被管理网络300发起的授权通信。防火墙310还可以提供入侵检测、网络过滤、病毒扫描、应用层网关和其他应用或服务。在图3中未示出的一些实施例中,被管理网络300可以包括一个更或更多个虚拟专用网络(VPN)网关,其与远程网络管理平台320通信(见下文)。
被管理网络300还可以包括一个或更多个代理服务器312。代理服务器312的实施例可以是促进被管理网络300、远程网络管理平台320和公共云网络340之间的数据通信和移动的服务器应用。特别地,代理服务器312可以能够建立和维护与远程网络管理平台320的一个或更多个计算实例的安全通信会话。通过这样的会话,远程网络管理平台320能够发现和管理被管理网络300及其组件的架构和配置的各方面。
可能在代理服务器312的帮助下,远程网络管理平台320还能够发现和管理被管理网络300使用的公共云网络340的各方面。虽然图3中未示出,但一个或更多个代理服务器312可以被放置在任何公共云网络340中,以便于这种发现和管理。
防火墙,例如防火墙310,通常拒绝通过互联网350进入的所有通信会话,除非这样的会话最终是从防火墙后面(即,从被管理网络300上的设备)发起的,或者防火墙已被明确配置为支持该会话。通过将代理服务器312放置在防火墙310之后(例如,在被管理网络300内并且由防火墙310保护),代理服务器312能够通过防火墙310发起这些通信会话。因此,防火墙310可能不必被专门配置为支持来自远程网络管理平台320的传入会话,从而避免了被管理网络300的潜在安全风险。
在一些情况下,被管理网络300可以由少数设备和少量网络组成。在其他部署中,被管理网络300可以跨越多个物理位置,并且包括数百个网络和数十万个设备。因此,图3所示的架构能够按数量级放大或缩小。
此外,根据被管理网络300的大小、架构和连接性,可以在其中部署不同数量的代理服务器312。例如,代理服务器312的每个可以负责与远程网络管理平台320就被管理网络300的一部分进行通信。替代地或附加地,出于负载平衡、冗余和/或高可用性的目的,两个或更多个代理服务器的集合可以被分配给被管理网络300的这一部分。
B.远程网络管理平台
远程网络管理平台320是向用户,特别是向被管理网络300的运营商提供aPaaS服务的托管环境。这些服务可以采取基于网络的门户的形式,例如,使用上述基于网络的技术。因此,用户能够从例如客户端设备302或者潜在地从被管理网络300之外的客户端设备安全地访问远程网络管理平台320。通过基于web的门户,用户可以设计、测试和部署应用、生成报告、查看分析并执行其他任务。远程网络管理平台320也可以被称为多应用平台。
如图3所示,远程网络管理平台320包括四个计算实例322、324、326和328。这些计算实例中的每个可以表示操作aPaaS软件的专用副本的一个或更多个服务器节点和/或一个或更多个数据库节点。服务器和数据库节点在物理服务器设备和/或虚拟机上的布置能够是灵活的,并且可以根据企业需求而变化。结合起来,这些节点可以为特定企业提供一组可用的门户网站、服务和应用(例如,功能完整的aPaaS系统)。在一些情况下,单个企业可能使用多个计算实例。
例如,被管理网络300可以是远程网络管理平台320的企业客户,并且可以使用计算实例322、324和326。向一个客户提供多个计算实例的原因是,客户可能希望独立开发、测试和部署其应用和服务。因此,计算实例322可以专用于与被管理网络300相关的应用开发,计算实例324可以专用于测试这些应用,并且计算实例326可以专用于被测试的应用和服务的实时操作。计算实例也可以被称为托管实例、远程实例、客户实例(或者通过一些其他名称)。部署到计算实例上的任何应用都可以是作用域应用,因为其对计算实例内的数据库的访问可以被限制为其中的某些元素(例如,一个或更多个特定数据库表或一个或更多个数据库表内的特定行)。
为了清楚起见,本公开将应用节点、数据库节点、在其上执行的aPaaS软件和底层硬件的布置称为“计算实例”。需要注意的是,用户可以将由此提供的图形用户界面通俗地称为“实例”。但是,除非本文另有定义,否则“计算实例”是布置在远程网络管理平台320内的计算系统。
远程网络管理平台320的多实例架构与传统的多租户架构形成对比,在传统的多租户架构之上,多实例架构表现出若干优点。在多租户架构中,来自不同客户(例如企业)的数据混合在一个数据库中。虽然这些客户的数据彼此分离,但分离是由操作单个数据库的软件强制执行的。因此,该系统中的安全漏洞可能会影响所有客户的数据,从而产生额外的风险,尤其是对受政府、医疗保健和/或金融监管的实体而言。此外,影响一个客户的任何数据库操作都可能影响共享该数据库的所有客户。因此,如果由于硬件或软件错误导致停用,则此停用会影响所有此类客户。同样,如果要升级数据库以满足一个客户的需求,那么在升级过程中,所有客户都无法使用该数据库。通常,由于共享数据库的大小,这样的维护窗口会很长。
反之,多实例架构在专用计算实例中为每个客户提供了自己的数据库。这防止了客户数据的混合,并允许独立管理每个实例。例如,当一个客户的实例因错误或升级而中断时,其他计算实例不会受到影响。维护停机时间有限,因为数据库只包含一个客户的数据。此外,多实例架构的更简单设计允许以不同地理位置的方式部署每个客户数据库和实例的冗余副本。这有助于实现高可用性,在检测到故障或执行维护时,可以移动客户实例的实时版本。
在一些实施例中,远程网络管理平台320可以包括由操作该平台的实体控制的一个或更多个中心实例。类似计算实例,中心实例可以包括布置在一定数量的物理服务器设备或虚拟机上的一定数量的应用和数据库节点。这样的中心实例可以用作计算实例的特定配置以及可以在至少一些计算实例之间共享的数据的仓库。例如,可能发生在计算实例上的常见安全威胁的定义、通常在计算实例中发现的软件包和/或用于可以部署到计算实例的应用的应用存储可以驻留在中心实例中。计算实例可以通过定义良好的接口与中心实例通信,以便获得该数据。
为了以有效的方式支持多个计算实例,远程网络管理平台320可以在单个硬件平台上实现多个这些实例。例如,当aPaaS系统在诸如服务器集群200之类的服务器集群上实现时,它可以操作将不同数量的计算、存储和通信资源专用于实例的虚拟机。但是服务器集群200的完全虚拟化可能不是必需的,并且可以使用其他机制来分离实例。在一些示例中,每个实例可以在服务器集群200上具有专用账户和一个或更多个专用数据库。或者,诸如计算实例322之类的计算实例可以跨越多个物理设备。
在一些情况下,远程网络管理平台320的单个服务器集群可以支持多个独立的企业。此外,如下所述,远程网络管理平台320可以包括部署在地理上不同的数据中心中的多个服务器集群,以便促进负载平衡、冗余和/或高可用性。
C.公共云网络
公共云网络340可以是可以用于外包计算、数据存储、通信和服务托管操作的远程服务器设备(例如,诸如服务器集群200的多个服务器集群)。这些服务器可以被虚拟化(即,服务器可以是虚拟机)。公共云网络340的示例可以包括AMAZON WEB和与远程网络管理平台320一样,为了负载平衡、冗余和/或高可用性的目的,支持公共云网络340的多个服务器集群可以部署在地理上不同的位置。
被管理网络300可以使用公共云网络340的一个或更多个来向其客户端和客户部署应用和服务。例如,如果被管理网络300提供在线音乐流服务,则公共云网络340可以存储音乐文件并提供网络接口和流传输功能。以这种方式,被管理网络300的企业不必为这些操作建立和维护其自己的服务器。
远程网络管理平台320可以包括与公共云网络340集成以向被管理网络300公开其中的虚拟机和被管理服务的模块。这些模块可以允许用户请求虚拟资源,发现分配的资源,并为公共云网络340提供灵活的报告。为了建立该功能,来自被管理网络300的用户可以首先利用公共云网络340建立账户,并请求一组相关联的资源。然后,用户可以将账户信息输入到远程网络管理平台320的适当模块中。然后,这些模块可以自动发现账户中的可管理资源,并且还提供与使用、性能和计费相关的报告。
D.通信支持和其他操作
互联网350可以代表全球互联网的一部分。然而,互联网350可以替代地表示不同类型的网络,例如专用广域分组交换网络或局域分组交换网络。
图4还示出了被管理网络300和计算实例322之间的通信环境,并介绍了附加特征和替代实施例。在图4中,计算实例322在数据中心400A和400B之间被全部或部分复制。这些数据中心可能在地理上彼此相距遥远,可能在不同的城市或不同的国家中。每个数据中心包括便于与被管理网络300以及远程用户进行通信的支持设备。
在数据中心400A中,进出外部设备的网络流量通过VPN网关402A或防火墙404A流动。VPN网关402A可以通过诸如互联网协议安全(IPSEC)或传输层安全(TLS)之类的安全协议与被管理网络300的VPN网关412对等。防火墙404A可以被配置为允许来自授权用户(例如用户414和远程用户416)的访问,并且拒绝未授权用户的访问。通过防火墙404A,这些用户可以访问计算实例322,以及可能的其他计算实例。负载均衡器406A可以用于在托管计算实例322的一个或更多个物理或虚拟服务器设备之间分配流量。负载均衡器406A可以通过向客户端设备隐藏数据中心400A的内部配置(例如,计算实例322)来简化用户访问。例如,如果计算实例322包括共享对多个数据库的访问的多个物理或虚拟计算设备,则负载均衡器406A可以将网络流量和处理任务分布在这些计算设备和数据库上,使得没有一个计算设备或数据库比其他计算设备或数据库更繁忙。在一些实施例中,计算实例322可以包括VPN网关402A、防火墙404A、和负载均衡器406A。
数据中心400B可以包括其自身版本的数据中心400A中的组件。因此,VPN网关402B、防火墙404B和负载均衡器406B可以分别执行与VPN网关402A、防火墙404A和负载均衡器406相同或相似的操作。此外,通过实时或接近实时的数据库复制和/或其他操作,计算实例322可以同时存在于数据中心400A和400B中。
如图4所示的数据中心400A和400B可以促进冗余和高可用性。在图4的配置中,数据中心400A是活动的,而数据中心400B是不活动的。因此,数据中心400A正在为进出被管理网络300的所有业务提供服务,而数据中心400B中的计算实例322的版本正在近乎实时地更新。可以支持其他配置,例如两个数据中心都处于活动状态的配置。
如果数据中心400A以某种方式发生故障或以其他方式变得对用户不可用,则数据中心400B可以接管作为活动数据中心。例如,将计算实例322的域名与数据中心400A的一个或更多个互联网协议(IP)地址相关联的域名系统(DNS)服务器可以将域名与数据中心400B的一个或更多个IP地址重新关联。在该重新关联完成之后(这可能需要小于一秒或几秒的时间),用户可以通过数据中心400B访问计算实例322。
图4还示出了被管理网络300的可能配置。如上所述,代理服务器312和用户414可以通过防火墙310访问计算实例322。代理服务器312还可以访问配置项410。在图4中,配置项410可以指客户端设备302、服务器设备304、路由器306和虚拟机308、其任何组件、在其上执行的任何应用或服务,以及设备、组件、应用和服务之间的关系中的任何或所有。因此,术语“配置项”可以是任何物理或虚拟设备、或可由计算实例322远程发现或管理的任何应用或服务、或所发现的设备、应用和服务之间的关系的全部的一部分的简写。配置项可以在计算实例322的配置管理数据库(CMDB)中表示。
在存储或传输时,配置项可以是表征配置项所代表的硬件或软件的属性列表。这些属性可能包括制造商、供应商、位置、所有者、唯一标识符、描述、网络地址、操作状态、序列号、上次更新时间等。配置项的类可以确定该配置项存在哪个属性子集(例如,软件和硬件配置项可以具有不同的属性列表)。
如上所述,VPN网关412可以向VPN网关402A提供专用VPN。当在被管理网络300和计算实例322之间存在大量流量,或者安全策略以其他方式建议或要求在这些站点之间使用VPN时,这样的VPN可能是有用的。在一些实施例中,经由VPN直接通信的被管理网络300和/或计算实例322中的任何设备被分配公共IP地址。被管理网络300和/或计算实例322中的其他设备可以被分配专用IP地址(例如,从10.0.0.0–10.255.255.255或192.168.0.0–192.168.255.255范围中选择的IP地址,分别用简写表示为子网10.0.0.0/8和192.168.0.0/16)。在各种替代方案中,被管理网络300中的设备,例如代理服务器312,可以使用安全协议(例如TLS)来直接与一个或更多个数据中心通信。
Ⅳ.发现示例
为了使远程网络管理平台320管理被管理网络300的设备、应用和服务,远程网络管理平台320可以首先确定被管理网络300中存在哪些设备,这些设备的配置、组成组件和操作状态,以及由这些设备提供的应用和服务。远程网络管理平台320还可以确定所发现的设备、它们的组件、应用和服务之间的关系。每个设备、组件、应用和服务的表示可以被称为配置项。确定被管理网络300内的配置项和关系的过程被称为发现,并且可以至少部分地由代理服务器312来促进。配置项和关系的表示存储在CMDB中。
虽然本节描述了在被管理网络300上进行的发现,但是相同或类似的发现过程可以在公共云网络340上使用。因此,在一些环境中,“发现”可以指在被管理网络和/或一个或更多个公共云网络上发现配置项和关系。
为了本文的实施例的目的,“应用”可以指在设备或设备组上执行的一个或更多个进程、线程、程序、客户端软件模块、服务器软件模块或任何其他软件。“服务”可以指由在相互协同工作的一个或更多个设备上执行的一个或更多个应用提供的高级能力。例如,web服务可能涉及在一个设备上执行的多个web应用服务器线程,并且访问来自在另一个设备上执行的数据库应用的信息。
图5提供了如何能够发现配置项和关系的逻辑描述,以及如何能够存储与其相关的信息。为了简单起见,未示出远程网络管理平台320、公共云网络340和互联网350。
在图5中,CMDB 500、任务列表502和识别与协调引擎(IRE)514在计算实例322中被布置和/或操作。任务列表502表示计算实例322和代理服务器312之间的连接点。任务列表502可以称为队列,或者更具体地称为外部通信信道(ECC)队列。任务列表502不仅可以表示队列本身,还可以表示任何相关联的处理,例如添加、移除和/或操纵队列中的信息。
随着发现的发生,计算实例322可以将代理服务器312要执行的发现任务(工作)存储在任务列表502中,直到代理服务器312以一个或更多个的批请求这些任务为止。将任务放置在任务列表502中可以触发或以其他方式导致代理服务器312开始它们的发现操作。例如,代理服务器312可以周期性地或不时地轮询任务列表502,或者可以以一些其他方式被通知任务列表502中的发现命令。替代地或附加地,发现可以手动触发或基于触发事件自动触发(例如,发现可以在特定时间每天自动开始一次)。
无论如何,计算实例322可以根据请求向代理服务器312发送这些发现命令。例如,代理服务器312可以重复查询任务列表502,获得其中的下一个任务,并执行该任务,直到任务列表502为空或达到另一个停止条件为止。响应于接收到发现命令,代理服务器312可以查询被管理网络300中的各种设备、组件、应用和/或服务(为了简单起见,在图5中由设备504、506、508、510和512表示)。这些设备、组件、应用和/或服务可以向代理服务器312提供与它们的配置、操作和/或状态有关的响应。继而,代理服务器312可以将该发现的信息提供给任务列表502(即,任务列表502可以具有用于保持发现命令直到被代理服务器312请求的传出队列,以及用于保持发现信息直到被读取的传入队列)。
IRE 514可以是从任务列表502中移除发现信息并将该发现信息公式化为配置项(例如,表示在被管理网络300上发现的设备、组件、应用和/或服务)以及它们之间的关系的软件模块。然后,IRE 514可以将这些配置项和关系提供给CMDB 500以存储在其中。下面将更详细地描述IRE 514的操作。
以这种方式,存储在CMDB 500中的配置项表示被管理网络300的环境。例如,这些配置项可以表示一组物理和/或虚拟设备(例如,客户端设备、服务器设备、路由器或虚拟机)、在其上执行的应用(例如,web服务器、电子邮件服务器、数据库或存储阵列),以及涉及多个单独配置项的服务。关系可以是配置项之间的排列或依赖关系的成对定义。
为了以上述方式进行发现,代理服务器312、CMDB 500和/或一个或更多个证书存储可以配置有用于要发现的设备的证书。证书可以包括访问设备所需的任何类型的信息。这些可能包括用户id/密码对、证书等等。在一些实施例中,这些证书可以存储在CMDB 500的加密字段中。代理服务器312可以包含证书的解密密钥,使得代理服务器312能够使用这些证书来登录或以其他方式访问被发现的设备。
发现一般有两种类型——水平和垂直(上-下)。下面分别讨论。
A.水平发现
水平发现用于扫描被管理网络300,找到设备、组件和/或应用,然后用表示这些设备、组件、和/或程序的配置项填充CMDB 500。水平发现还创建配置项之间的关系。例如,这可能是代表软件应用的配置项和代表其执行的服务器设备的配置项之间的“运行”关系。通常,水平发现不知道服务,也不会基于配置项在其中操作的服务在配置项之间创建关系。
水平发现有两种版本。一种依赖于探测器和传感器,而另一种也采用模式(pattern)。探测器和传感器可以是脚本(例如,用编写),用于收集和处理设备上的发现信息,然后相应地更新CMDB 500。更具体地,探测器探索或调查被管理网络300上的设备,并且传感器解析从探测器返回的发现信息。
模式也是在一个或更多个设备上收集数据、处理数据并更新CMDB的脚本。模式与探测器和传感器的不同之处在于,它们是用特定的发现编程语言编写的,用于对通常无法由更通用的探测器和传感器可靠地发现(或根本无法发现)的特定设备、组件和/或应用执行详细的发现过程。特别地,模式可以指定一系列操作,这些操作定义了如何发现设备、组件和/或应用的特定布置、使用什么证书以及用由该发现产生的配置项填充哪些CMDB表。
这两个版本可以分为四个逻辑阶段:扫描、分类、识别和探索。此外,两个版本都可能需要指定要针对其进行发现的被管理网络300上的一个或更多个IP地址范围。每个阶段可以涉及被管理网络300上的设备与代理服务器312之间以及代理服务器312与任务列表502之间的通信。一些阶段可以涉及在CMDB 500中存储部分或初步配置项,其可以在稍后阶段中更新。
在扫描阶段,代理服务器312可以探测开放传输控制协议(TCP)和/或用户数据报协议(UDP)端口的指定IP地址范围中的每个IP地址,以确定设备的一般类型及其操作系统。在IP地址处存在这样的开放端口可以指示特定应用正在被分配了IP地址的设备上操作,这继而可以识别该设备使用的操作系统。例如,如果TCP端口135打开,则该设备可能正在执行操作系统。类似地,如果TCP端口22打开,则设备可能正在执行操作系统,如如果UDP端口161是打开的,则可以通过简单网络管理协议(SNMP)来进一步识别该设备。存在其他可能。
在分类阶段,代理服务器312可以进一步探测每个发现的设备,以确定其操作系统的类型。用于特定设备的探测器基于在扫描阶段期间收集的关于设备的信息。例如,如果发现设备的TCP端口22打开,则可以使用一组专用探测器。同样,如果发现设备的TCP端口135打开,则可以使用一组专用探测器。对于任一种情况,可以在任务列表502中放置一组适当的任务,以供代理服务器312执行。这些任务可以导致代理服务器312登录或以其他方式访问来自特定设备的信息。例如,如果TCP端口22是打开的,则可以指示代理服务器312发起到特定设备的安全壳(SSH)连接,并从文件系统中的特定位置获得关于其上的特定类型的操作系统的信息。基于该信息,可以确定操作系统。例如,打开TCP端口22的设备可分为HPUX、或该分类信息可以作为一个或更多个配置项存储在CMDB 500中。
在识别阶段,代理服务器312可以确定关于分类设备的具体细节。在该阶段期间使用的探测器可以基于在分类阶段期间收集的关于特定设备的信息。例如,如果设备被分类为则可以使用一组专用探测器。同样,如果设备被分类为10,则可以使用一组10专用探测器。与分类阶段的情况一样,可以在任务列表502中放置一组适当的任务,以供代理服务器312执行。这些任务可以导致代理服务器312从特定设备读取信息,例如基本输入/输出系统(BIOS)信息、序列号、网络接口信息、分配给这些网络接口的介质访问控制地址、特定设备使用的IP地址等等。该识别信息可以作为一个或更多个配置项连同它们之间的任何相关关系存储在CMDB 500中。这样做可以涉及通过IRE 514传递识别信息,以避免重复配置项的生成(出于消除歧义的目的)和/或以确定应当在其中写入发现信息的CMDB 500的表。
在探索阶段,代理服务器312可以确定关于被分类设备的操作状态的其他细节。在该阶段期间使用的探测器可以基于在分类阶段和/或识别阶段期间收集的关于特定设备的信息。同样,可以在任务列表502中放置一组适当的任务,以供代理服务器312执行。这些任务可以导致代理服务器312从特定设备读取附加信息,例如处理器信息、存储器信息、正在运行的进程(软件应用)的列表等等。再一次地,发现的信息可以作为一个或更多个配置项以及关系存储在CMDB 500中。
在某些设备(如交换机和路由器)上运行水平发现可能会使用SNMP。代替或除了确定正在运行的进程或其他应用相关信息的列表,发现可以确定路由器所已知的附加子网以及路由器的网络接口的操作状态(例如,活动、非活动、队列长度、丢弃的分组数等)。附加子网的IP地址可以是另外的发现过程的候选。因此,水平发现可以迭代地或递归地进行。
模式仅在识别和探索阶段期间使用——在基于模式的发现下,扫描和分类阶段如使用探测器和传感器时那样操作。分类阶段完成后,模式探测器被指定为在识别期间使用的探测器。然后,启动模式探测器及其指定的模式。
模式通过发现编程语言支持许多功能,这些功能在使用探测器和传感器的发现中是不可用的或难以实现的。例如,使用基于模式的发现,在公共云网络中发现设备、组件和/或应用以及配置文件跟踪要简单得多。此外,这些模式比配置项和传感器更容易由用户定制。此外,模式更专注于特定的设备、组件和/或应用,因此可能比探测器和传感器使用的更通用的方法执行得更快。
一旦水平发现完成,每个发现的设备、组件和/或应用的配置项表示在CMDB 500中可用。例如,在发现之后,用于被管理网络300中的客户端设备、服务器设备和路由器以及在其上执行的应用的操作系统版本、硬件配置和网络配置细节可以被存储为配置项。该收集的信息可以以各种方式呈现给用户,以允许用户查看设备的硬件组成和操作状态。
此外,CMDB 500可以包括关于配置项之间的关系的条目。更具体地说,假设服务器设备包括多个硬件组件(例如,处理器、存储器、网络接口、存储器和文件系统),并在其上安装或执行多个软件应用。组件和服务器设备之间的关系(例如,“包含”关系)以及软件应用和服务器设备间的关系(如,“在…上运行”关系)可以在CMDB 500中这样表示。
更一般地说,在硬件配置项上安装或执行的软件配置项之间的关系可以采取各种形式,例如“托管”、“在…上运行”或“依赖”。因此,安装在服务器设备上的数据库应用可能与服务器设备具有“托管”的关系,以指示数据库应用托管在服务器设备上。在一些实施例中,服务器设备可以与数据库应用具有“被使用”的互惠关系,以指示服务器设备被数据库应用使用。这些关系可以使用上述发现过程自动找到,尽管也可以手动设置关系。
以这种方式,远程网络管理平台320可以发现并清点部署在被管理网络300上并由被管理网络300提供的硬件和软件。
B.垂直发现
垂直发现是一种用于查找和映射作为整体服务(如web服务)的部分的配置项的技术。例如,垂直发现可以通过显示web服务器应用、服务器设备和存储web服务数据的数据库之间的关系来映射web服务。通常,首先运行水平发现以查找配置项及其之间的基本关系,然后运行垂直发现以建立构成服务的配置项之间的关系。
模式可以用来发现某些类型的服务,因为这些模式可以被编程为寻找符合关于服务如何被部署的描述的硬件和软件的特定布置。替代地或附加地,流量分析(例如,检查设备之间的网络流量)可以用于促进垂直发现。在一些情况下,可以手动配置服务的参数以辅助垂直发现。
一般来说,垂直发现旨在找到设备、组件和/或应用之间的特定类型的关系。其中一些关系可以从配置文件中推断出来。例如,web服务器应用的配置文件可以引用它所依赖的数据库的IP地址和端口号。垂直发现模式可以被编程为寻找这样的引用并由此推断关系。还可以从设备之间的流量推断出关系——例如,如果在负载平衡器和托管web服务器的设备之间存在大量的web流量(例如,TCP端口80或8080),则负载平衡器和web服务器可能具有关系。
通过纵向发现找到的关系可以采取各种形式。例如,电子邮件服务可以包括电子邮件服务器软件配置项和数据库应用软件配置项,每个项目都安装在不同的硬件设备配置项上。电子邮件服务可能与这两个软件配置项都具有“依赖”关系,而软件配置项与电子邮件服务具有“使用”的互惠关系。这样的服务可能无法完全由水平发现过程确定,而是可能依赖于垂直发现和可能的某种程度的手动配置。
C.发现的优点
无论发现信息是如何获得的,它对于被管理网络的操作都是有价值的。值得注意的是,IT人员可以快速确定某些软件应用的部署位置,以及构成服务的配置项。这允许快速查明服务中断或降级的根本原因。例如,如果两个不同的服务的响应时间较慢,则可以查询CMDB(可能还有其他活动)以确定根本原因是两个服务都使用的具有高处理器利用率的数据库应用。因此,IT人员可以处理数据库应用,而不是浪费时间考虑组成服务的其他配置项的运行状况和性能。
在另一个示例中,假设一个数据库应用正在服务器设备上执行,并且该数据库应用由员工入职服务和工资单服务使用。因此,如果服务器设备停止运行用于维护,很明显,员工入职服务和工资单服务将受到影响。同样,配置项之间的依赖性和关系可能能够表示当特定硬件设备发生故障时受影响的服务。
通常,配置项和/或配置项之间的关系可以在基于web的界面上显示,并以分层方式表示。对CMDB中的此类配置项和/或关系的修改可以通过该接口来完成。
此外,来自被管理网络300的用户可以开发允许在多个发现的设备上进行某些协调活动的工作流。例如,IT工作流可能允许用户在单次操作中更改所有发现的设备的通用管理员密码。
V.CMDB识别规则和协调
CMDB(例如CMDB 500)提供配置项和关系的存储库。如果配置得当,它能够在部署在计算实例内或涉及计算实例的更高层应用中发挥关键作用。这些应用可能涉及企业IT服务管理、运营管理、资产管理、配置管理、法规遵从性等。
例如,IT服务管理应用可以使用CMDB中的信息来确定可能受到发生故障、崩溃或负载过重的组件(例如,服务器设备)影响的应用和服务。同样,资产管理应用可以使用CMDB中的信息来确定哪些硬件和/或软件组件正被用于支持特定的企业应用。由于CMDB的重要性,希望存储在其中的信息是准确、一致和最新的。
CMDB可以以各种方式填充。如上所述,发现过程可以在CMDB中自动存储包括配置项和关系的信息。但是,CMDB也能够全部或部分由手动输入、配置文件和第三方数据源填充。假设多个数据源可能能够在任何时候更新CMDB,则一个数据源可能会覆盖另一数据源的条目。此外,两个数据源可能各自为同一配置项创建略微不同的条目,从而导致CMDB包含重复数据。当发生上述任何一种情况时,都可能导致CMDB的运行状况和效用降低。
为了缓解这种情况,这些数据源可能不会将配置项直接写入CMDB。相反,他们可能会写入IRE 514的识别和协调应用编程接口(API)。然后,IRE 514可以使用一组可配置的标识规则来唯一地标识配置项,并确定它们是否以及如何被写入CMDB。
通常,标识规则指定一组可用于此唯一标识的配置项属性。识别规则也可以具有优先级,使得在具有较低优先级的规则之前考虑具有较高优先级的规则。此外,规则可以是独立的,因为规则独立于其他配置项来标识配置项。替代地,规则可以是依赖的,因为规则首先使用元数据规则来识别依赖配置项。
元数据规则描述特定配置项或部署有特定配置项的主机中包含哪些其他配置项。例如,网络目录服务配置项可以包含域控制器配置项,而网络服务器应用配置项可以托管在服务器设备配置项上。
每个识别规则的目标是使用属性的组合,这些属性能够明确地将配置项与所有其他配置项区分开来,并且预计在配置项的使用寿命期间不会发生变化。示例服务器设备的一些可能属性可以包括序列号、位置、操作系统、操作系统版本、内存容量等等。如果规则指定的属性不能唯一标识配置项,则多个组件可能在CMDB中表示为同一配置项。此外,如果规则指定了特定配置项的更改属性,则可能会创建重复的配置项。
因此,当数据源向IRE 514提供关于配置项的信息时,IRE 514可以尝试将该信息与一个或更多个规则相匹配。如果找到匹配项,则会将配置项写入CMDB,如果配置项已存在于CMDB中,则会进行更新。如果没有找到匹配项,则可以保留配置项以进行进一步分析。
配置项协调程序可用于确保仅允许权威数据源重写CMDB中的配置项数据。这种协调也可能是基于规则的。例如,协调规则可以指定特定数据源对特定配置项类型和属性集具有权威性。然后,IRE 514可以仅允许该权威数据源写入特定配置项,并且可以防止来自未经授权的数据源的写入。因此,经授权的数据源成为关于特定配置项的真实性的单一来源。在一些情况下,如果未经授权的数据源正在创建配置项或正在写入的属性为空,则该数据源可能被允许写入配置项。
此外,多个数据源可以对相同的配置项或其属性具有权威性。为了避免歧义,可以为这些数据源分配在写入配置项时考虑的优先级。例如,辅助授权数据源可能能够写入配置项的属性,直到主要授权数据源写入该属性为止。之后,可以防止辅助授权数据源对属性的进一步写入。
在一些情况下,重复的配置项可以由IRE 514自动检测或以另一种方式检测。这些配置项目可能被删除或标记为手动重复数据消除。
Ⅵ.发现命令验证工具
发现程序,如本文所讨论的程序,极大地简化了各种类型IT系统的维护和操作。尽管如此,这些系统的复杂性正在增长,并且通常以使得它们不可能或低效地使用传统的无模式发现来发现的方式进行定制。因此,在过去几年中,模式的重要性和使用量都有所增加。
在虚拟机集群的上下文中能够理解基于模式的发现的能力和效用的示例。由于在这样的集群中,虚拟机可能会随着时间的推移而加速(激活)或减速(去激活),因此传统的发现过程可能难以定位和探测这些虚拟机中的每个。然而,大多数虚拟机集群技术使用某种形式的控制节点(例如,管理者)来管理虚拟机。控制节点可以知道这些虚拟机的数量和位置、它们的角色、它们的冗余方案等等。控制节点还可能能够查询每个虚拟机以确定该信息或实时性能数据,例如正常运行时间、负载、利用率或其他因素。为此,控制节点可以配置有命令行或表示状态转移(REST)接口,通过该接口可以接收命令。
在这种情况下,虚拟机集群的发现可以包括通过控制节点的接口访问控制节点,并查询与其支持的虚拟机有关的信息。这样做可能需要发现基础设施(例如,通过代理服务器)可以访问控制节点,向控制节点提供正确的证书(例如,用户ID和密码),授权这些证书执行向控制节点发布的任何命令,并且命令被正确格式化。如果不满足这些要求中的任何一个,则发现很可能失败。因此,在部署之前对模式进行适当的测试或验证是有利的。
在一些情况下,发现模式包含旨在按给定顺序执行的命令列表,这可能是由于命令之间的依赖关系。在虚拟机集群的控制节点的示例中,初始命令可以请求由控制节点管理的虚拟机的列表,并且随后的命令可以请求关于每个虚拟机的细节。如果排序中较早的命令失败,则整个模式可能会在不尝试执行后续命令的情况下终止。因此,某些发现模式失败会导致某些命令永远无法执行,从而使其有效性处于不确定状态。
作为示例,图6A描绘了虚拟机集群600。它包括控制节点602,以及M个处理节点(用附图标记604-1到604-M标记)和N个存储节点(用附图标记606-1到606-N标记)。处理节点和存储节点被假定为虚拟机。椭圆的使用指示了M和N可以取大于或等于1的任何值。
控制节点602可以是管理者,例如,其使用由<address>指示的网络地址。该网络地址可以是IP地址(例如IPv4或IPv6)或任何其他类型的网络地址。在下面的描述中,为了简单起见使用了IP地址,但是这里的实施例不限于这种方式。
控制节点602可以动态地管理处理节点604-1至604-M和存储节点606-1至606-N。在任何给定时间的M和N的值可以基于实际需求、预期需求、历史需求或其他因素。此外,处理节点604-1到604-M可以使用具有一定数量的操作虚拟机和一个或更多个空闲虚拟机的冗余方案,如果操作虚拟机发生故障、被停用或以其他方式变得无法执行其任务,则所述一个或更多个空闲虚拟机准备接管操作虚拟机的角色。类似地,存储节点606-1到606-N可以采用类似的冗余机制。
这些处理和存储节点可能能够确定与其正常运行时间、负载、利用率等相关的各种特性。此外,假设每个处理和存储节点具有唯一标识符,控制节点602能够利用该唯一标识符来引用它。
图6B描述了用于发现虚拟机集群600的组件的发现模式610。为了简单起见,这个模式是在高级别上呈现的。实际的发现模式可以用发现编程语言编写,该语言具有类似于已建立的脚本语言的命令和执行流控制能力(例如,分支和循环)。
此外,发现模式610的命令可以通过命令行接口、REST接口、SNMP接口或Windows管理规范(WMI)接口进行格式化和通信。替代这些接口中的任何接口或除了这些接口之外,还可以支持其他类型的接口。根据系统要求,每个命令中可能会出现相同或不同的证书。替代地,一些命令可能不需要证书
发现模式610的命令1使得计算设备(例如,代理服务器)使用证书<credentials>登录到网络地址<address>。如上所述,<address>可以是控制节点602的IP地址,而<credentials>可以是用户id/密码对或允许访问控制节点602的某种其他形式的认证令牌。
命令2使得计算设备向控制节点602请求处理节点的列表。该列表可以包括用于处理节点604-1至604-M中的每个的唯一标识符。
命令3使计算设备请求列表中的处理节点604-1至604-M中的每个的正常运行时间和负载。例如,命令3可以有效地是用于每个处理节点的多个命令(例如,针对列表中的每个处理节点的“获取正常运行时间”和“获取负载”命令)。
命令4使得计算设备向控制节点602请求存储节点的列表。该列表可以包括用于存储节点606-1至606-N中的每个的唯一标识符。
命令5使计算设备请求列表中的存储节点606-1到606-N中的每个的利用率。例如,命令5可以有效地是用于每个存储节点的一个命令(例如,列表中每个处理节点的“获取利用率”命令)。
可以采用未示出的其他命令来确定虚拟机集群600的节点之间的关系和/或从任何节点获得其他信息。此外,附加命令可以将来自命令2-5的结果以及由此推断出的任何信息写入各种数据库表(例如,CMDB的数据库表)。
由于发现通常相对不频繁地执行(例如,每隔几个小时执行一次,每天执行一次、每周执行一次等),因此通过发现过程的调试(debug)模式是漫长的过程,可能需要几天甚至几周的时间。模式失败可能无法清楚地确定失败的原因。此外,旨在修复模式中的缺陷的修改不能保证解决这一原因,甚至可能引入直到后来的发现执行才发现的额外缺陷。
本文的实施例通过引入用于发现命令的验证工具来解决这些以及可能的其他限制。本质上,验证工具是一种软件,其获取一个或更多个发现命令列表(例如,从发现模式手动输入或解析)以及每个发现命令的一个或更多个网络地址列表。从模式解析发现命令可以涉及通过该模式迭代,识别其中的命令(例如,基于语法和/或关键字)并提取这些命令。有利的是,每次使用验证工具时都可以动态地执行解析,从而将对模式的更改自动合并到验证工具的过程中。
然后,验证工具尝试在其关联列表中的每个网络地址上执行每个发现命令,并为每个命令/地址对报告这样做的结果。这些结果可以包括成功的指示(例如,表示命令成功执行的布尔值、响应代码、命令输出、其他文本等)或失败的指示(如,表示命令执行不成功的布尔值、错误代码、命令输出、其他文本等)。在一些实施例中,公共的网络地址列表可以与所有发现命令一起使用。
如前所述,不需要发现模式。验证工具可以在未出现在发现模式中的一个或更多个相关或不相关的发现命令上运行。
在这里,验证工具也可以被称为“发现验证应用”、“验证应用”或某一其他名称。这样的验证工具可以包括被配置为在远程网络管理平台或可能的某些其他类型的平台上执行的软件。
验证工具旨在将模式添加到计划的发现过程之前使用,并且独立于这些过程。例如,用户可以测试来自IP地址列表上的模式的命令,根据需要调试该模式,最终确定该模式按预期工作,然后为下一个计划的发现过程部署该模式。但验证工具也可以用于已部署的模式,尝试重现任何失败。无论如何,验证工具比发现过程更快地提供结果(例如,几秒钟或几分钟而不是几天),因此大大提高了开发、测试和成功部署模式的能力。
图7描述了一个示例架构,其中,验证工具700被配置为在计算实例322内执行。该架构与图5的架构基本相同,只是它显示了验证工具700,而没有显示任务列表502或IRE514。值得注意的是,验证工具700将发现命令和网络地址作为输入,将网络地址和发现命令的表示传输到代理服务器312之一,从该代理服务器接收发现信息,并将结果提供给CMDB500。代理服务器312可以通过适当的发现接口将发现命令应用于网络地址。如前所述,每个发现命令可以应用于一个或更多个网络地址的相同或不同列表。此外,在一些环境中不需要使用代理服务器,并且验证工具可以以更直接的方式与执行发现的计算设备通信。
例如,在图7中,发现命令可以采用单个命令、命令列表或整个发现模式的形式。网络地址可以是这样的地址的列表。以IP地址为例,网络地址可以是单个IP地址(例如“10.172.43.167”)、IP地址的列表(如“10.172.43.167”、“10.172.43.168”、“10.172.44.17”)或IP地址的范围(例如“101.72.43.0-10.172.43.255”或“10.172.43/24”)。
如上所述,可以由验证工具700检测到的发现失败的类型包括不可达的网络地址、认证失败、授权失败和/或不支持的命令。还可以检测到其他类型的故障。
当向据称位于该地址的计算设备发出命令的一个或更多个尝试不成功时,网络地址可能被认为是不可达的。这种失败的原因可能包括地址未被使用,地址无法从发出命令的代理服务器路由到达,如何将地址指定给验证工具的印刷错误,或者地址处的计算设备没有对尝试做出响应。当发出命令的一个或更多个尝试没有接收到响应,或者这些命令从附近的路由器或交换机接收到指示路由器或交换机不知道如何将命令转发到网络地址的响应时,通常会检测到不可达的网络地址。或者,代理服务器(例如,代理服务器312中的一个)可能无法从验证工具(例如,验证工具700)访问。
当网络地址是可访问的,但该地址处的计算设备不接受所提供的证书时,会发生认证失败。例如,证书可能尚未在计算设备上配置。在某些情况下,当该地址处的计算设备执行命令需要证书但没有提供证书时,会发生认证失败。认证失败通常由验证工具700检测到,验证工具700接收指示已发出命令的认证失败的错误消息。
与认证失败相反,当一个命令被该地址处的计算设备成功地认证(如果需要这样的认证),但发出该命令的帐户或用户ID没有执行该命令的权限时,就会发生授权失败。例如,验证工具700可能已经登录到非特权帐户,但是该命令(例如,UNIX“sudo”命令)只能由特权(例如,超级用户或root)帐户执行。授权失败由验证工具700检测到,验证工具700接收指示已发出命令的授权失败的错误消息。
不支持的命令包括该地址处的计算设备不支持的命令,以及支持命令的不支持选项或参数。具有印刷错误的命令是不支持的命令的一个可能示例。验证工具700接收错误消息来检测不支持的命令,该错误消息指示所发出的命令导致其未被找到或未知的指示。请注意,验证工具可能不知道某个命令是否不支持,并且可能只有在出现这种情况时才通过接收错误消息得到通知。另一方面,验证工具可以配置有支持命令列表,并主动为不在此列表中的命令标记出错误。
在一些情况下,验证工具可以从数据库(例如,CMDB 500)内的表读取发现命令和网络地址。此外,验证工具可以写入数据库(例如CMDB 500)内的临时表,该临时表被配置为存储结果和/或特定发现信息。
例如,图8描述了验证工具700从数据库表800读取发现命令和网络地址,并将相应的发现结果写入数据库表802。数据库表800和数据库表802可以是同一数据库(例如CMDB500)或不同数据库的一部分。
表1
在表1中示出了数据库表800的可能模式的示例。例如,数据库表800中的每个条目可以包括表1中列出的一些属性(即,number、ip_address、os_class、command_type、command、proxy_server、progress、status、credentials、和/或is_automated)。这些属性中的每个都在表1中根据其名称、标签、类型和描述进行了指定。提供了一些属性的示例。
编号属性可以是条目的唯一标识符。ip_address属性可以指定一个或更多个ip地址。os_class属性可以指定待在其上执行命令的操作系统的类型。command_type属性可以指定是通过shell(CLI)、SNMP、WMI还是HTTP GET(例如,通过基于web的REST接口)来传递命令。命令属性可以指定要发布到IP地址的实际命令。proxy_server属性可以指定用于路由命令的代理服务器(如果未指定代理服务器,则可以使用默认代理服务器)。progress属性可以指定对于正在执行的命令,已经接收到的结果的百分比。status属性可以指定命令执行是否完成以及是否已经接收到所有结果。credentials属性可以指定对存储在另一数据库表中的证书集合的引用。is_automated属性可以指定是使用自动命令验证(从模式中解析命令)还是将命令作为用户输入提供。
值得注意的是,表1只是可能的属性类型的示例。在各种实施例中,可以存在更多或更少的属性。
表2
在表2中示出了数据库表802的可能模式的示例。例如,数据库表802中的每个条目可以包括表2中列出的一些属性(即,command_validation、ip_address、os_class,command_type、command、proxy_server、state、result、result_details、和/或steps_to_remediate)。这些属性中的每个都在表2中根据其名称、标签、类型和描述进行了指定。提供了一些属性的示例。
值得注意的是,数据库表800中的单个条目可以基于待在其上执行命令的IP地址的数量在数据库表802中产生多个条目。例如,如果数据库表800中的条目指定要在10个IP地址上执行命令,则这将导致数据库表802中存在10个条目(对于这些IP地址中的每个IP地址,一个条目)。
command_validation属性可以指定数据库表800中的条目,该条目包含命令和在其上执行该命令并产生该结果的计算设备的IP地址。ip_address属性可以指定在其上执行命令的计算设备的IP地址。os_class属性可以指定该计算设备的操作系统的类型。command_type属性可以指定命令的传递方式,例如shell(CLI)、SNMP、WMI或HTTP GET(例如,通过基于web的REST接口)。command属性可以指定发出的实际命令。proxy_server属性可以指定命令被路由所通过的代理服务器。state属性可以指定命令是在等待在IP地址被处理、正在IP地址进行处理还是已经完成在IP地址的处理。result属性可以指定命令的执行是成功还是失败。result_details属性可以指定失败的原因(如果命令失败)或命令输出的指示(如果命令成功)。steps_to_remediate属性可以指定或链接到可以采取什么措施来解决所遇到的任何失败的描述(如果此类信息可用)。
与表1一样,表2只是可能的属性类型的示例。在各种实施例中,可以存在更多或更少的属性。
图9描述了将这些特征组合在一起的验证工具的操作。过程900涉及命令启动器910以接收用户提供的发现命令和网络地址列表902和/或由模式解析器906从模式904提取的发现命令及网络地址908。
命令启动器910通过向网络地址发送发现命令(例如,通过代理服务器)来启动一系列探测器912A、912B、912C和912D。因此,例如,探测器912A向网络地址addr1发送命令cmd1,探测器912B向网络地址addr1发送命令cmd2,探测器912C向网络地址addr2发送命令cmdl,探测器912D向网络地址addr2发送命令cmd2。如省略号所示,可以使用更多的探测器。
根据上面的讨论,如果命令启动器910接收到i命令和j地址,则可以使用i×j探测器。替代地,一些命令可以与它们自己的地址列表相关联,因此用于这些命令中的每个命令的探测器可以仅用于其关联的地址中的每个地址。
此外,每个探测器可以附带或关联传感器(图9中未示出),该传感器被配置为接收和解析命令的执行或尝试执行的结果,并将这些结果写入数据库表914。这里,数据库表914可以与数据库表802的作用相同和/或包含数据库表802的作用。
Ⅶ.示例操作
图10是示出示例实施例的流程图。图10所示的过程可以由计算设备(如计算设备100)和/或计算设备集群(如服务器集群200)执行。然而,该过程能够由其他类型的设备或设备子系统来执行。例如,该过程能够由远程网络管理平台或便携式计算机(例如笔记本电脑或平板电脑)的计算实例来执行。
图10的实施例可以通过去除其中所示特征的的任何一个或更多个来简化。此外,这些实施例可以与任何先前附图中的或者以其他方式在本文中描述的特征、方面和/或实现相结合。
块1000可以涉及由发现验证应用从持久存储器读取分别与网络地址的列表相关联的发现命令的列表以及网络地址列表。块1002可以涉及,对于发现命令列表中的每个发现命令,由发现验证应用通过一个或更多个代理服务器将发现命令发送到分别相关联的网络地址列表中的每个网络地址。块1004可以涉及由发现验证应用通过所述一个或更多个代理服务器接收分别对应于所发送的每个发现命令的发现结果,其中,所述发现结果指示发现命令的成功或失败。块1006可以涉及由发现验证应用将发现结果写入持久存储器。
在一些实施例中,发现验证应用独立于计划由系统执行的任何发现过程来执行。
在一些实施例中,网络地址列表被指定为与发现命令中的每个发现命令相关联的公共的网络地址列表。
在一些实施例中,发现命令中的每个发现命令是命令行接口命令、简单网络管理协议(SNMP)命令、能够通过基于web的接口传递的命令或Windows管理规范(WMI)命令中的一个。
在一些实施例中,发现命令和网络地址被存储在持久存储器内的第一数据库表中,其中所述发现结果被存储在持久存储器内的第二数据库表内。
在一些实施例中,第一数据库表的每个条目包括待在其上执行特定发现命令的操作系统类别的指示、指定用于传递特定发现命令的网络协议的特定发现命令的类型、待通过其发送特定发现命令的代理服务器之一,或与特定发现命令一起使用的认证证书。
在一些实施例中,第二数据库表中的发现结果的每个条目包括被执行的特定发现命令的规范、特定发现命令被发送到的网络地址、或者通过其发送特定发现命令的代理服务器。
在一些实施例中,发现验证应用被配置为按顺序分批发送发现命令。例如,每个批次可以包含5至25个发现命令/网络地址对。
在一些实施例中,发现命令列表具有顺序,其中,发现验证应用被配置为根据所述顺序针对每个相关联的网络地址发送发现命令。替代地,发现命令列表可以是无序的,因此可以以任何顺序发送。
在一些实施例中,发现结果中的成功指示包括在与特定网络地址相关联的计算设备上特定发现命令的执行的输出。
在一些实施例中,发现结果中的失败指示指定特定发现命令是否由于以下原因而失败:特定发现命令被发送到的特定网络地址不可达,与特定网络地址相关联的计算设备不支持特定发现命令,被特定发现命令用于访问计算设备的证书的认证失败,或者当计算设备尝试执行特定发现命令时证书的授权失败。
Ⅷ.结语
本公开不限于本申请中描述的特定实施例,其旨在作为各个方面的说明。如对于本领域的技术人员来说是显而易见的是,在不脱离其范围的情况下可以进行许多修改和变化。除了本文所描述的那些方法和装置之外,本公开范围内的功能等同的方法和装置,根据前述描述对于本领域技术人员来说将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。
以上详细描述参考附图描述了所公开的系统、装置和方法的各种特征和操作。本文和图中所描述的示例性实施例并不意味着是限制性的。在不脱离本文所呈现的主题的范围的情况下,可以利用其他实施例并且可以进行其他改变。将容易理解的是,本公开的各方面,如本文一般描述的和附图中所示,可以以各种不同的配置来布置、替换、组合、分离和设计。
关于图中的以及如本文所讨论的任何或所有消息流程图、场景和流程图,每个步骤、块和/或通信能够表示根据示例实施例的信息处理和/或信息传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,根据所涉及的功能,被描述为步骤、块、传输、通信、请求、响应和/或消息的操作可以不按所示或所讨论的操作顺序执行,包括基本上同时执行或按相反顺序执行。此外,更多或更少的块和/或操作可以与本文所讨论的消息流程图、场景和流程图中的任何一个一起使用,并且这些消息流程图和场景以及流程图可以部分地或全部地彼此组合。
表示信息处理的步骤或块能够对应于能够被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的步骤或块能够对应于程序代码的模块、段或部分(包括相关数据)。程序代码能够包括可由处理器执行的一个或更多个指令,用于实现方法或技术中的特定逻辑操作或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,例如包括RAM、磁盘驱动器、固态驱动器或另一存储介质的存储设备。
计算机可读介质还可以包括非暂时性计算机可读介质,例如像寄存器存储器和处理器高速缓存那样在短时间内存储数据的非暂时性计算机可读介质。非暂时性计算机可读介质还能够包括将程序代码和/或数据存储较长时间段的非暂时性计算机可读介质。因此,非暂时性计算机可读介质可以包括辅助或持久的长期存储器,例如ROM、光盘或磁盘、固态驱动器或光盘只读存储器(CD-ROM)。非暂时性计算机可读介质也能够是任何其他易失性或非易失性存储系统。非暂时性计算机可读介质能够被认为是例如计算机可读存储介质或有形存储设备。
此外,表示一个或更多个信息传输的步骤或块能够对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输能够在不同物理设备中的软件模块和/或硬件模块之间进行。
图中所示的具体布置不应被视为限制。应当理解,其他实施例可以或多或少地包括给定图中所示的每个元件。此外,所示元件中的一些元件能够被组合或省略。此外,示例实施例能够包括未在附图中示出的元件。
尽管本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员来说将是显而易见的。本文公开的各个方面和实施例是为了说明的目的,而不旨在限制,真正的范围由以下权利要求指示。
Claims (20)
1.一种系统,包括:
持久存储器,包含发现命令列表,其中所述发现命令列表的发现命令分别与网络地址列表相关联;
一个或更多个处理器;以及
发现验证应用,其在由所述一个或更多个处理器执行时被配置为:
从所述持久存储器读取所述发现命令列表和所述网络地址列表;
对于所述发现命令列表中的每个发现命令,通过部署在系统外部的一个或更多个代理服务器将所述发现命令发送到分别相关联的网络地址列表中的每个网络地址;
通过所述一个或更多个代理服务器接收分别对应于所发送的发现命令中的每个发现命令的发现结果,其中,所述发现结果指示所述发现命令的成功或失败;和
将所述发现结果写入所述持久存储器。
2.根据权利要求1所述的系统,其中,所述发现验证应用独立于计划由所述系统执行的任何发现过程来执行。
3.根据权利要求1所述的系统,其中,所述网络地址列表被指定为与所述发现命令中的每个发现命令相关联的公共的网络地址列表。
4.根据权利要求1所述的系统,其中,所述发现命令中的每个发现命令是命令行接口命令、简单网络管理协议(SNMP)命令、能够通过基于web的接口传递的命令、或Windows管理规范(WMI)命令中的一个。
5.根据权利要求1所述的系统,其中,所述发现命令和网络地址被存储在所述持久存储器内的第一数据库表中,并且其中,所述发现结果被存储在所述持久存储器内的第二数据库表内。
6.根据权利要求5所述的系统,其中,所述第一数据库表的每个条目包括待在其上执行特定发现命令的操作系统的类别的指示、指定用于传递所述特定发现命令的网络协议的特定发现命令的类型、待通过其发送所述特定发现命令的代理服务器之一、或与所述特定发现命令一起使用的认证证书。
7.根据权利要求5所述的系统,其中,所述第二数据库表中的发现结果的每个条目包括被执行的特定发现命令的规范、所述特定发现命令被发送到的网络地址、或者通过其发送所述特定发现命令的代理服务器。
8.根据权利要求5所述的系统,其中,所述发现验证应用被配置为按顺序分批发送所述发现命令。
9.根据权利要求5所述的系统,其中,所述发现命令列表具有顺序,并且其中,所述发现验证应用被配置为根据所述顺序针对每个相关联的网络地址发送所述发现命令。
10.根据权利要求1所述的系统,其中,所述发现结果中的成功指示包括在与特定网络地址相关联的计算设备上特定发现命令的执行的输出。
11.根据权利要求1所述的系统,其中,所述发现结果中的失败指示指定特定发现命令是否由于以下原因而失败:所述特定发现命令被发送到的特定网络地址不可达,与所述特定网络地址相关联的计算设备不支持所述特定发现命令,被所述特定发现命令用于访问计算设备的证书的认证失败,或者当计算设备尝试执行所述特定发现命令时证书的授权失败。
12.一种计算机实现的方法,包括:
由发现验证应用从持久存储器读取发现命令列表以及网络地址列表,其中所述发现命令列表的发现命令分别与网络地址列表相关联;
对于所述发现命令列表中的每个发现命令,由所述发现验证应用通过一个或更多个代理服务器将所述发现命令发送到分别相关联的网络地址列表中的每个网络地址;
由所述发现验证应用通过所述一个或更多个代理服务器接收分别对应于所发送的所述发现命令中的每个发现命令的发现结果,其中,所述发现结果指示所述发现命令的成功或失败;和
由所述发现验证应用将所述发现结果写入所述持久存储器。
13.根据权利要求12所述的计算机实现的方法,其中,所述发现命令中的每个发现命令是命令行接口命令、简单网络管理协议(SNMP)命令、能够通过基于web的接口传递的命令、或Windows管理规范(WMI)命令中的一个。
14.根据权利要求12所述的计算机实现的方法,其中,所述发现命令和网络地址被存储在所述持久存储器内的第一数据库表中,并且其中,所述发现结果被存储在所述持久存储器内的第二数据库表内。
15.根据权利要求14所述的计算机实现的方法,其中,所述第一数据库表的每个条目包括待在其上执行特定发现命令的操作系统的类别的指示、指定用于传递所述特定发现命令的网络协议的特定发现命令的类型、待通过其发送所述特定发现命令的代理服务器之一,或与所述特定发现命令一起使用的认证证书。
16.根据权利要求14所述的计算机实现的方法,其中,所述第二数据库表中的发现结果的每个条目包括被执行的特定发现命令的规范、所述特定发现命令被发送到的网络地址、或者通过其发送所述特定发现命令的代理服务器。
17.根据权利要求14所述的计算机实现的方法,其中,所述发现验证应用被配置为按顺序分批发送所述发现命令。
18.根据权利要求14所述的计算机实现的方法,其中,所述发现命令列表具有顺序,并且其中,所述发现验证应用被配置为根据所述顺序针对每个相关联的网络地址发送所述发现命令。
19.根据权利要求12所述的计算机实现的方法,其中,所述发现结果中的失败指示指定特定发现命令是否由于以下原因而失败:所述特定发现命令被发送到的特定网络地址不可达,与所述特定网络地址相关联的计算设备不支持所述特定发现命令,被所述特定发现命令用于访问计算设备的证书的认证失败,或者当计算设备尝试执行所述特定发现命令时证书的授权失败。
20.一种制造品,包括非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有程序指令,所述程序指令在由计算系统执行时使得发现验证应用执行操作,所述操作包括:
从持久存储器读取发现命令列表以及网络地址列表,其中所述发现命令列表的发现命令分别与所述网络地址列表相关联;
对于所述发现命令列表中的每个发现命令,通过一个或更多个代理服务器将所述发现命令发送到分别相关联的网络地址列表中的每个网络地址;
通过所述一个或更多个代理服务器接收分别对应于所发送的发现命令中的每个发现命令的发现结果,其中,所述发现结果指示所述发现命令的成功或失败;和
将所述发现结果写入所述持久存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/862,680 US20240022640A1 (en) | 2022-07-12 | 2022-07-12 | Rapid Error Detection through Command Validation |
US17/862,680 | 2022-07-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117389822A true CN117389822A (zh) | 2024-01-12 |
Family
ID=87201960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310764763.2A Pending CN117389822A (zh) | 2022-07-12 | 2023-06-27 | 通过命令验证的快速错误检测 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240022640A1 (zh) |
EP (1) | EP4307636A1 (zh) |
JP (1) | JP2024010659A (zh) |
CN (1) | CN117389822A (zh) |
AU (1) | AU2023203026A1 (zh) |
CA (1) | CA3200033A1 (zh) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328260B1 (en) * | 2002-06-04 | 2008-02-05 | Symantec Operating Corporation | Mapping discovered devices to SAN-manageable objects using configurable rules |
US20070143471A1 (en) * | 2005-12-20 | 2007-06-21 | Hicks Jeffrey T | Methods, systems and computer program products for evaluating suitability of a network for packetized communications |
US8406140B2 (en) * | 2006-08-22 | 2013-03-26 | Wal-Mart Stores, Inc. | Network device inventory system |
US9037722B2 (en) * | 2010-05-07 | 2015-05-19 | Salesforce.Com, Inc. | Resolving information in a multitenant database environment |
US9411955B2 (en) * | 2012-08-09 | 2016-08-09 | Qualcomm Incorporated | Server-side malware detection and classification |
US9900211B1 (en) * | 2014-10-01 | 2018-02-20 | Crimson Corporation | Systems and methods for network management |
US10862984B2 (en) * | 2015-08-31 | 2020-12-08 | Vmware, Inc. | Methods and apparatus to monitor usage of virtual computing environments |
US9798583B2 (en) * | 2015-12-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Onboarding of a service based on automated supervision of task completion |
US10296748B2 (en) * | 2016-02-25 | 2019-05-21 | Sas Institute Inc. | Simulated attack generator for testing a cybersecurity system |
US12093199B2 (en) * | 2016-03-08 | 2024-09-17 | ZPE Systems, Inc. | Infrastructure management device |
US11153346B2 (en) * | 2017-10-31 | 2021-10-19 | Level 3 Communications, Llc | Secure network device management in a telecommunications network |
US10785096B2 (en) * | 2018-05-07 | 2020-09-22 | Servicenow, Inc. | Graphical user interfaces for device discovery and scheduling thereof |
EP3723347B1 (en) * | 2019-04-12 | 2022-10-12 | ServiceNow, Inc. | Interface for supporting integration with cloud-based service providers |
US11095534B1 (en) * | 2019-11-29 | 2021-08-17 | Amazon Technologies, Inc. | API-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks |
CN111614729B (zh) * | 2020-04-28 | 2023-06-02 | 北京金山云网络技术有限公司 | 对kubernetes容器集群的控制方法、装置及电子设备 |
-
2022
- 2022-07-12 US US17/862,680 patent/US20240022640A1/en active Pending
-
2023
- 2023-05-15 AU AU2023203026A patent/AU2023203026A1/en active Pending
- 2023-05-18 CA CA3200033A patent/CA3200033A1/en active Pending
- 2023-06-27 CN CN202310764763.2A patent/CN117389822A/zh active Pending
- 2023-07-03 JP JP2023109293A patent/JP2024010659A/ja active Pending
- 2023-07-07 EP EP23184216.2A patent/EP4307636A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240022640A1 (en) | 2024-01-18 |
CA3200033A1 (en) | 2024-01-12 |
JP2024010659A (ja) | 2024-01-24 |
EP4307636A1 (en) | 2024-01-17 |
AU2023203026A1 (en) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645309B2 (en) | Discovery of database and related services | |
US11089115B2 (en) | Discovery of cloud-based infrastructure and resources | |
US11431568B2 (en) | Discovery of software bus architectures | |
AU2018200021B2 (en) | Unified device and service discovery across multiple network types | |
US11240241B2 (en) | Discovery and mapping of a cloud-based authentication, authorization, and user management service | |
US10970107B2 (en) | Discovery of hyper-converged infrastructure | |
US11032381B2 (en) | Discovery and storage of resource tags | |
US10819586B2 (en) | Functional discovery and mapping of serverless resources | |
US10972435B2 (en) | Dynamic discovery of executing applications | |
US11635752B2 (en) | Detection and correction of robotic process automation failures | |
US11997746B2 (en) | Discovery and service mapping of serverless resources | |
US10951483B2 (en) | Agent-assisted discovery of network devices and services | |
US11108647B2 (en) | Service mapping based on discovered keywords | |
US20210051028A1 (en) | Certificate discovery and workflow automation | |
US20230050683A1 (en) | Support for Multi-Type Users in a Single-Type Computing System | |
CN117389822A (zh) | 通过命令验证的快速错误检测 | |
US11582317B1 (en) | Payload recording and comparison techniques for discovery | |
US10708753B2 (en) | Discovery and service mapping of serverless resources | |
US20240250990A1 (en) | Control of Cloud Infrastructure Configuration | |
US20240256232A1 (en) | Unified Framework for Configuration and Deployment of Platform Intelligence | |
US20240231919A1 (en) | Efficient Cloud-Based Discovery of Computing Resources | |
US20240097992A1 (en) | Smart Detection for Determination of Database Accuracy |
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 |