具体实施方式
简言之,通过运行任务程序和评估任务程序的结果来监察网络.任务程序是被配置成检索关于特定网络设备的信息的工具.一服务被安排成协调在诸如多个域等全异网络上的每一任务程序的调度、执行以及数据收集和聚集.每一任务程序在调度的时刻执行,并向语法分析器提供结果.结果可以是各种格式,以允许在选择任务程序时的灵活性.语法分析器格式化结果,并向服务提供格式化的数据.服务在数据库中储存收集的数据.客户机可通过与服务通信来调度和/或审阅监察的结果.收集的数据可依照定义可接受服务器配置的基于规则的模板来比较和过滤.可基于模板生成报告,使得客户机可评估来自在整个网络上执行的任务程序的结果.
说明性操作环境
参考图1,用于实现本发明的一个示例性系统包括诸如计算设备100的计算设备。计算设备100可被配置成与基于网络的协作系统中的数据交互的客户机、服务器、移动设备或任一其它计算设备。在一种十分基本的配置中,计算设备100通常包括至少一个处理单元102和系统存储器104。根据计算设备的确切配置和类型,系统存储器104可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。系统存储器104通常包括操作系统105、一个或多个应用程序106,并且可包括程序数据107。下文详细描述的本发明在系统存储器104内实现。
计算设备100可具有另外的特征或功能。例如,计算设备100也可包括另外的数据存储设备(可移动和/或不可移动),如磁盘、光盘或磁带。这类另外的存储在图1中由可移动存储109和不可移动存储110示出。计算机存储介质可包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器104、可移动存储109和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存期望的信息并可由计算设备100访问的任一其它介质。任一这类计算机存储介质可以是设备100的一部分。计算设备100也可具有(多个)输入设备112,如键盘、鼠标、输入笔、语音输入设备、触摸输入设备等等。也可包括(多个)输出设备114,如显示器、扬声器、打印机等等。
计算设备100也包含允许设备如通过网络与其它计算设备118进行通信的通信连接116。网络包括局域网和广域网,以及其它大规模网络,包括但不限于内联网和外联网。通信连接116是通信介质的一个示例。通信介质通常可以由诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据实施,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。本发明使用的术语计算机可读介质包括存储介质和通信介质。
调度应用程序的执行
图2所示是用于监察网络状态的系统的功能框图。该系统包括第一域(即域1)中的客户机200和调度器210、第二域(即域2)中的客户机220和调度器230、服务240(如,web服务)以及数据库260。域1和域2的每一个包括调度器和客户机,使得与应用程序执行相关联的数据可以从每一域中收集。
客户机(如,客户机200和220)可在调度的时刻通过服务240请求应用程序的执行.在一个实施例中,应用程序是任务程序.任务程序可以与软件监察、软件部署、软件补丁/更新、账号许可设置、硬件监察等有关.请求的数据在任务程序的执行过程中收集.请求被传递到服务240.
每一客户机可对应于:位于网络中应用程序所驻留(例如,同一域中)的对应部分内部的客户机设备、位于网络中不同于应用程序所驻留的另一部分(例如,不同的域)中的客户机设备、或位于网络的外部且被安排成与服务240通信的某一其它客户机设备。例如,服务240可以是向客户机200提供通过诸如因特网等计算网络的接入的web服务。
服务240与数据库260通信。服务240从调度器210(或230)接收访问数据库260的请求,并确定客户机200和220是否已提交了未处理的作业请求。如果客户机请求涉及两个域中的任务,则在数据库260中创建两个作业。服务240返回属于与调度器210(或230)相同的域的作业。
调度器210向服务240轮询请求。当调度器210检索请求时,调度对应的应用程序在约定的时刻执行。调度器210在到达约定时刻时启动对应任务程序的执行。在一个实施例中,用户可在约定的执行时刻之前取消请求。在一个示例中,调度器210被调度成用调度的任务程序的执行监察位于网络的特定部分(如,域1)内的多个(n)设备(215)。调度器210被安排成在对应任务程序的执行完成时触发语法分析器(未示出)从应用程序的输出收集数据。语法分析器然后分析该输出,以与服务240通信。
调度器230也向服务240轮询请求。当调度器230接收到请求,调度对应的应用程序在约定的时刻执行。当达到约定的时刻时,调度器230启动对应任务程序的执行。在一个示例中,调度器230被调度成用调度的任务程序的执行监察位于网络的特定部分(如,域2)内的多个(m)设备(235)。调度器230被安排成在对应任务程序的执行完成时触发一语法分析器从应用程序的输出收集数据。语法分析器然后处理该输出,以与服务240通信。
服务240被安排成从每一调度器(如,210和230)接收收集的数据。在一个示例中,调度器210(或230)被配置成向服务240发送结果。在另一示例中,服务240被配置成接收和处理包括来自调度器的结果的消息。在服务240接收和处理了来自各个调度器的数据之后,服务240将这些结果储存在数据库260中。
网络中的每一设备可以由一特定的调度器来服务。例如,设备11由调度器210服务。设备可包括服务器、路由器、交换机、客户机或网络上存在的任何其它硬件。在一个示例中,设备(如,设备215)是诸如网络中内容服务器等服务器场(serverfarm)的一部分。
图3所示是用于监察网络状态的系统的功能框图。客户机200包括用户界面应用程序202。调度器210包括任务程序214。输出语法分析器212与服务240和调度器210通信。调度器210与设备290通信。设备290包括目标292,它与任务程序214通信以收集与调度器210上的每一任务程序214相关联的数据。目标292可对应于单个或一组设备、客户机、服务器、路由器、交换机或网络节点。
服务240包括配置管理数据库(CMDB)web服务250、调度器web服务260、主存的模板用户界面258、以及调度器语法分析器264。CMDB web服务包括CMDB语法分析器254和数据收集/轮询模块256。调度器web服务260包括调度器服务262和客户机服务268。数据库270包括配置管理数据库280和调度器数据库285。配置管理数据库280包括模板282。
客户机200可通过用户界面调度任务程序214的数据收集.在一个实施例中,用户界面是客户机方用户界面应用程序202,它本地储存在客户机200上用于执行.在另一实施例中,用户界面是服务器方用户界面,它由调度器web服务260主存.对于此示例,用户界面应用程序202是web浏览器类型的应用程序,它通过网络链接与客户机服务268协作.在又一实施例中,用户界面可以是当客户机200请求用户界面时将用户界面下载到客户机200的web接口.
关于任务程序执行调度的信息通过调度器服务262从客户机200发送到数据库285。调度器210通过调度器服务262轮询调度器数据库285。在一个实施例中,为特定域中的数据收集调度任务程序,使得仅指定域中的调度器接收任务程序调度信息。在另一实施例中,为数据收集调度多个域中的任务程序。每一调度器210被安排成依照调度器数据库285中的条目在调度的时刻启动程序执行。
调度器web服务260被安排成接收客户机调度请求。调度器数据库285中每一调度的事件可具有配置管理数据库中一个或多个对应的条目,该配置管理数据库包括在任务程序的前一或当前执行过程中从目标292收集/处理的数据。
调度器web服务260被安排成接收并响应来自客户机和/或调度器210的调度请求。在一个示例中,客户机请求经语法分析并被添加到调度器数据库285中的新任务执行的条目。在另一示例中,客户机请求与调度器数据库285中一个或多个先前的条目冲突的另一新任务执行的条目,且调度器web服务260向客户机200返回出错消息。在又一示例中,客户机200请求覆盖调度器数据库285中一个或多个先前条目的又一新任务执行的条目。在再一示例中,客户机请求与调度器数据库285中一个或多个先前的条目冲突的再一新任务执行的条目,且调度器web服务260提供用于编辑条目的用户界面。
在一个示例中,任务程序214可指定用于要通过与文件名相关联的调度器210储存在数据库285中的所请求的数据的输出文件夹位置。该输出文件随后由输出语法分析器212处理以向服务240提供适当格式化的数据。
输出语法分析器212在所请求的数据由服务240接收时由调度器210触发。输出语法分析器212通过将数据转换成可由CMDB web服务250容易地传递到数据库270的格式,来处理所请求的数据。在一个实施例中,输出语法分析器212将数据转换成分隔的文本格式,如可扩充标记语言(XML)。从不同的任务程序收集的数据被转换成配置管理数据库280理解的统一格式。在一个实施例中,输出语法分析器212基于来自客户机200的输入将一种数据格式转换成另一种格式。
CMDB web服务250从输出语法分析器212接收经语法分析的数据,并将经语法分析的数据储存在配置管理数据库280中。在一个实施例中,数据被储存在对应于数据类型的表中。数据类型的示例包括数据库条目、共享许可、热修补信息、注册表条目和允许的用户。配置管理数据库280是由任务程序214收集的数据的中央数据库器。在一个实施例中,在特定任务程序的执行过程中收集的数据被单独储存。CMDB web服务250允许监察工具与配置管理数据库262通信并访问储存的数据。
与特定任务程序执行相关并储存在配置管理数据库280中的数据可被称为作业运行。客户机200可通过CMDB web服务250访问配置管理数据库280中的作业运行。
模板282用于分析在任务程序执行过程中收集的数据.模板282被配置成提供用于过滤和呈现收集的数据的规则和方针.在一个示例中,规则提供了用于得自任务程序执行的可接受行为(例如,补丁安装的成功或失败、安全测试的安全性分级等)的简单基准.客户机200建立模板的规则,并向CMDB web服务250提交该模板。CMDB语法分析器254也被安排成处理每一模板,并将模板储存在配置管理数据库280中。
客户机200可被安排成与服务240协作,以使用布尔运算符(如,AND、OR、NAND、NOR等)定义模板的规则。可组合多个布尔关系来定义一个规则。在作业运行过程中收集的数据由对应模板中的每一规则评估。确定与收集的数据相关联的项目对于模板中列出的规则是通过还是失败。
配置管理数据库280可基于来自客户机200的定制输入来查询,以检索从作业运行中收集的数据。数据可以从数据收集/轮询模块256检索。对应于收集的数据的模板也可从配置管理数据库280中检索。在一个示例中,模板储存在CMDBweb服务250中,用于评估来自任务程序214的传入数据。在另一示例中,模板被定义为配置管理数据库280的一部分,使得规则响应于通过服务240来自客户机200的请求而被应用于收集的数据。
客户机200可通过用户界面提交/编辑模板。在一个实施例中,用户界面是本地储存在客户机200上用于执行的客户机方用户界面应用程序202。在另一实施例中,用户界面是诸如主存的模板用户界面258等服务器方用户界面。对于此示例,用户界面应用程序202是web浏览器类型的应用程序,它通过网络连接与主存的模板用户界面258协作。在又一实施例中,用户界面可以是当由客户机200请求时将用于模板编辑和/或提交的用户界面下载到客户机200的web接口。类似地,客户机200可通过本地驻留在客户机200上、由CMDB web服务250主存的、或从CMDB web服务250下载的用户界面来审阅报告。
将收集的数据与对应的模板比较,以评估任务程序结果。响应于比较,通过CMDB web服务250通知客户机200:数据运行对于期望的结果是通过还是失败。在一个实施例中,收集的数据基于选择的模板在表中被组合在一起。如果对于给定模板,所有的规则通过,则目标292对于执行的任务程序正确地运作。如果所有的规则不通过,则该表包括关于模板中哪些特定规则和比较失败或成功的详细信息。
客户机200可请求标识与模板评估相关联的详细信息的定制报告。例如,收集的数据可依照与模板相关联的规则集来过滤和格式化。通过审阅特定的作业运行和对应的数据来选择报告。客户机200从配置管理数据库280中选择模板,以生成对应的报告。对于任一给定的作业运行,在配置管理数据库280中可有若干不同的模板可用,使得每一数据收集的各方面可被视为可能是期望的。
报告请求从客户机200发送到CMDB web服务250。CMDB web服务250向配置管理数据库280提交模板用于评估。配置管理数据库280运行规则来评估模板。
CMDB web服务250被安排成接收并响应来自客户机的报告请求和模板提交。在一个示例中,客户机请求经语法分析并添加到配置管理数据库280的新模板的条目。在另一示例中,客户机请求从配置管理数据库280检索模板用于编辑。在又一示例中,客户机请求来自使用配置管理数据库280中先前已定义的模板的作业运行的报告。
给定模板可以被评估一次以上,使得可随时间推移来评估来自任务程序的结果的变化.例如,模板可被安排成核查热修补.运行作业并且监察结果.所查看的结果是从监察目标服务器中所得的实际监察结果.模板确定了热修补是否包括在服务器组中.补丁部署可被调度成在先前被评估为没有热修补的服务器上安装热修补.一周以后,可使用同一模板来运行另一监察,以验证自从先前的监察以来的任何变化.可使用多个结果模板来报告同一监察结果数据集的不同方面.
图4所示是用于调度应用程序执行的过程的逻辑流程图。该过程在框400开始,其中客户机通过用户界面请求调度任务程序执行。
继续到框405,调度器web服务处理对任务程序执行的请求。对该请求进行语法分析,使得经语法分析的数据可被储存在调度器数据库中。移至框410,经语法分析的调度请求被储存在调度器数据库中。前进到框415,调度器通过经由调度器web服务轮询调度器数据库来检索调度请求。
前进到框420,依照调度启动任务。调度可以是触发的事件。例如,事件可在指定的时间和日期触发。或者,事件可在完成行动时触发,如指定的用户登录到网络上时。继续到框425,从执行的任务程序的输出收集数据。
移至框430,对从任务程序收集的数据进行语法分析。输出分析器处理收集的数据,并将数据转换成可由CMDB web服务容易地传递到配置管理数据库的格式。前进到框435,经语法分析的数据被发送到CMDB web服务。继续到框440,该数据被储存在配置管理数据库中,以确定任务程序是否成功地执行。过程然后在结束框终止。
图5所示是用于调度应用程序执行的过程的逻辑流程图。该过程在框500开始,其中,调度器向调度器数据库轮询调度任务程序执行的请求。调度器联系调度器服务以确定作业是否由用户提交。如果作业已提交,则该作业被检索、分析并转发到工作队列。
继续到框505,用户从用户界面创建步骤、作业或调度的作业。当创建作业时,用户可检索现有的作业,并在调度的时刻重新运行检索的作业。如果现有的作业未解决用户需求,则用户可组成新作业。新作业可通过选择现有步骤来组成。如果需要的步骤不存在,则可为该作业创建新步骤以满足用户的需求。
移至框510,用户界面通过调度器web服务向调度器数据库提交作业。作业被转换成调度器识别的格式。例如,用户可在作业的同一步骤中扫描不同的域。由此,步骤被分割成对应于每一域中的调度器的多个作业。
前进到框515,调度器通过调度器服务使用轮询功能从调度器数据库检索作业。给定域中的调度器检索属于该域的已调度作业。调度器基于由维护功能提供的信息包装所检索的数据。包装的数据然后被转发到工作队列。如果轮询功能不正确操作(如,网络问题),则轮询功能被置于暂停。一旦操作问题由维护功能解决,则轮询功能恢复并且继续检索数据。
前进到框520,调度作业。一种实现功能从工作队列检索包装的数据,并基于用户请求设置一定时器。用户使用用户界面定位调度的作业。在一个实施例中,用户可在调度的时间之前取消作业。轮询功能将取消命令转发到工作队列。当检测到取消命令时,实现功能取消作业的时间设置。
继续到框525,调度器在调度的时刻开始作业。实现功能通过打开作业并访问组成该作业的步骤来触发作业运行。步骤可包括语法分析器步骤和任务程序步骤。例如,作业可包含一个以上任务程序。调度器识别步骤,使得每一任务程序的输出在任务程序执行完成之后被语法分析。
移至框530,触发任务程序。调度器可创建多个过程以在每一步骤运行任务程序。
前进到框535,触发输出语法分析器。调度器触发多个过程以在每一语法分析器步骤运行语法分析器。语法分析器处理任务程序的输出数据,并通过语法分析器web服务提交结果。
继续到框540,调度器完成作业。更新作业的状态。在一个实施例中,如果作业的属性重新出现,则调度器调度新作业。调度器继续轮询新请求。过程然后在结束框终止。
图6所示是用于确定任务程序对于模板规则是通过还是失败的过程的逻辑流程图。该过程在框600开始,其中,客户机建立用于过滤和呈现收集的数据的模板规则。在一个示例中,规则提供从任务程序执行中所得的可接受行为的模型。在一个实施例中,模板可被应用于在一个以上任务程序的执行过程中收集的数据。前进到框610,模板被提交给CMDB web服务。移至框620,CMDB web服务处理模板。
继续到框630,模板被储存在配置管理数据库中。前进到框640,评估模板。将模板与任务程序的执行过程中收集的数据进行比较,并储存在配置管理数据库中,以确定数据运行对于期望的结果是通过还是失败。在一个实施例中,当客户机请求报告时,“在飞行中(on-the-fly)”执行模板评估,以允许在对不同作业运行不同结果模板时的灵活性。在另一实施例中,作为批处理来执行模板评估,其中结果储存在数据库中(例如,配置管理数据库)。在另一实施例中,对于第一请求,“在飞行中”执行模板评估,然后储存在数据库中,使得随后的请求不需要被重新处理。前进至框650,通过CMDB web服务向客户机通知模板评估的结果。在一个实施例中,通过CMDB web服务输出一表,并显示在用户界面上,以通知客户机,模板的规则是通过还是失败。客户机然后可基于模板评估的结果确定对网络的任何必需的改变。处理在结束框终止。
图7所示是用于报告在任务程序执行过程中收集的数据的过程的逻辑流程图。处理在开始框700开始,其中,客户机请求与模板评估相关联的数据的报告。客户机通过审阅特定的作业运行和对应的数据来选择报告。
前进到框710,客户机从配置管理数据库中选择模板,以生成对应的报告。继续到框720,在配置管理数据库处评估模板。在一个实施例中,配置管理数据库运行规则以评估模板。前进到框730,将报告发送给客户机。处理然后在结束框终止。
应当理解,上述内容仅涉及本发明的较佳实施例,并且可以在不脱离本发明的精神和范围的情况下对此处所描述的实施例作出许多改变。
以上说明书、示例和数据提供了对本发明的组成部分的制造和使用的完整描述。由于可以在不脱离本发明的精神和范围的情况下作出本发明的许多实施例,因此本发明驻留在所附权利要求书中。