使用命令行环境的远程系统管理的制作方法

文档序号:7604490阅读:140来源:国知局
专利名称:使用命令行环境的远程系统管理的制作方法
技术领域
本发明涉及网络系统管理,尤其涉及用于远程网络系统管理的命令行环境。
背景技术
今天的计算系统和网络是复杂的,并且常常是巨大的。某些大企业可具有在局域网和广域网上相互连接的数千个独立计算系统。使所有这些计算系统保持平稳运行对于企业的成功是至关重要的。为此,系统开发者努力提供用于系统管理的有用管理性工具。
由于典型的系统管理器是非常复杂的用户,管理工具常常比面向消费大众的应用程序更为复杂。例如,命令行环境仍然在系统管理器中流行,尽管图形用户界面更为普通用户所钟爱。通常,管理器使用命令行可比使用图形界面更快地执行相对复杂的任务。
典型的命令行环境由在计算系统上操作的外壳程序提供。通常,命令行环境提供一些管理器可执行的核心命令。对于更复杂的任务,典型的命令行环境使命令能“连接成流水线”,意思是可在系统命令行上输入两个或多个命令,且每个命令的结果都“连接”或传递给流水线中的下一命令。
无论它们对管理器的流行性如何,很少关注使命令行环境更便于使用和更强大,尤其是远程系统管理。例如,情形常常是管理器必须在远程计算机上执行某些动作或使用在一个或多个远程计算机上收集的信息。然而,即使是相对简单的任务在要求远程执行时也会是令人头痛的。另外,最新技术的计算系统的复杂性是重新定义“远程”的含义。例如,今天“远程”系统可以是同一计算机上执行的不同过程,而现有命令行环境则略去这些情形。
至今,提供复杂远程系统管理的命令行环境已使本领域技术人员感到困惑。

发明内容
本发明涉及用于复杂远程系统管理的机制和技术。简言之,命令行环境被配置用以接收隐含多个远程节点的命令行。该命令行环境被配置以建立对于每个隐含远程节点都持续的会话,并起动远程命令在这些节点上的执行。该会话可赋以一变量,且远程执行可并发地进行。远程执行的结果可接收并聚集到一数组中。命令行环境可将建立会话的任务分发到其它系统中以改进性能。


图1是一般示出获益于结合本发明描述的机制和技术的计算环境的功能框图。
图2是更详细示出图1中介绍的命令行环境操作的功能框图。
图3是可由所述命令行环境管理的网络化环境中计算系统分级拓扑的功能框图。
图4是一般示出可由过程执行用于远程执行命令行指令的至少一部分的步骤的流程图。
图5是一般示出当向大量远程装置发出远程命令时用于增强命令行环境性能的过程的逻辑流程图。
图6是可用于示例性命令行环境的示例性计算装置。
具体实施例方式
以下详细说明书涉及用于执行远程命令的命令行环境的一说明性实现。本揭示仅用于说明,且并不被视为实现本发明的仅有方法。
图1是一般示出获益于结合本发明描述的机制和技术的计算环境100的功能框图。所示是经网络110连接的若干计算系统。更具体地,网络110把“管理器”112计算系统连接到若干个计算系统(例如远程A 120、远程B 121以及远程C 122)。该若干计算系统可以是企业网络的一部分或者是任何受管理的网络环境。这些远程计算系统物理上可位于任何地方。
网络110可以是用于连接不同计算系统的任何机制,诸如局域网、广域网、或者因特网。每个远程计算系统可以是由诸如雇员或订户的终端用户所使用的独立计算系统。
管理器112是由系统管理器等等使用的用以维护计算环境100的计算系统。换言之,管理器112运行命令,且执行可查询状态或计算环境中其它计算系统状态的任务,并改变一个或多个其它计算系统。管理器112还可查询或改变网络110的状态。管理器112包括支持诸如过程A 113和过程B 114的一个或多个过程的执行环境。每个过程主管至少一个程序或应用程序。另外,一个过程(例如过程A 113)可支持一个或多个应用程序领域,诸如App1 115和App2 116。应用程序领域是一种相对较新的机制,它使多个应用程序可在同一过程中执行却仍与其它应用程序隔离。应用程序领域是由运行时环境创建在应用程序周围的逻辑和物理边界。每个应用程序领域防止其相应程序的配置、安全或稳定性影响其它应用领域中的其它应用程序。
计算环境100中每个计算系统都支持实现在此所述的机制和技术的命令行环境。如下结合图2进行更详细描述,管理器112包括使用户能本地和远程地执行命令的命令行环境。管理器112被配置用以在其本地命令行环境(也称为“外壳”)和任意一个或多个远程系统之间建立会话。在此实现中,远程系统包括远程计算装置(例如远程A 120)以及本地计算系统上的其它过程或应用领域(即管理器112)。因此,不象现有系统,管理器112的用户可建立连接,并在远程计算装置上或在本地计算装置上的另一过程或应用领域中执行命令。另外,管理器112创建与每个远程系统的单独会话,并因此可起动用于在多个远程系统上同步执行的命令,这在此前并未完成。
图2是更详细示出图1中介绍的命令行环境操作的功能框图。在图2中示出的是管理器112和若干远程系统201。在此例中,两个远程系统(即远程A 120和远程B 121)是远程计算装置。相反,另一远程系统(即远程N 220)可以是本地计算机上的另一过程,另一应用领域中的执行代码等等。在此实现中,管理器112在远程系统201上执行远程管理。
每个远程系统包括若干“命令”(例如cmd 222)。命令是用以执行系统管理性任务的相对较小代码组件。实例可包括用于标识在计算装置上执行的每个过程的“process”命令、用于标识计算装置上目录中文件的“dir”命令、以及许多其它命令。然而,命令可包括在远程系统上的任意可执行组件。
每个远程系统201还包括远程代理(例如代理224),它是响应于远程请求要执行一个或多个命令(例如cmd 222)的组件。另外,代理被配置用以取得一个或多个命令的执行结果,并创建返回到请求装置的包。在一实现中,该包取包括执行结果以及诸如调用日期和时间的元信息的经串行化对象的形式,来标识有关结果所源自的特定远程系统的信息,以及有关请求实体的信息。该信息和可能的其它信息被打包成返回包226,用于传送回请求实体(例如管理器112)。
管理器112包括支持命令行环境200的组件。更具体地,管理器112包括类似于驻留于远程系统上命令的在系统管理中使用的命令250。该命令行环境200的操作由内核引擎251管理,该内核引擎251被配置用以管理若干组件的每一个之间,以及管理器112和每个远程系统201之间的操作和信息流动。内核引擎使用户输入能以命令行指令的形式接收(诸如通过外壳等等)和动作。这种命令行指令的特定形式以及用于处理它的技术如下进行详述。
另外,命令行环境200包括会话管理器253功能。命令行环境200被配置以在多个远程系统上并发地执行远程命令。为了完成它,在管理器112和在命令行指令标识的任意远程系统201之间建立了不同的“会话”。“会话”230代表了管理器112和相关联的远程系统201之间的连接。响应于隐含远程系统的命令行指令,会话管理器253与远程系统上的代理(例如代理224)交互,以调用远程系统上的一过程并创建到该过程的连接。该连接被称为“会话”。可使用特定命令从命令行建立有关或多个会话,诸如可采用以下形式$C=new/sessoion-node N1,N2,N3-creds{XXX}-session yes在该示例中,短语“new/session”指示要创建的新会话。参数“-node N1,N2,N3”指示正在与之创建会话的节点(远程系统)。作为“-node”参数的另一选项,“-workerprocess”可用来与本地机器上一可选过程创建会话,或者“-appdomain”可用以与同一过程中不同应用领域内另一应用程序创建会话。参数“-creds{XXX}”标识用以与远程系统201连接的任何特定登录证明。最后,参数“-session yes”被用以指示是否要保持会话。在使用不同命令行远程调用多个命令的情形中,保持会话是有用的。不象现有系统,会话使远程过程能对多个命令行指令重复使用。该能力改进了自动化管理和脚本。
再参看以上的示例命令行,“$C=”语法的使用以及创建新会话将该新会话赋以环境变量“$C”。环境参数275实质上是由对其它任务可用的外壳所维持的变量,且常被用以在过程或应用程序之间共享信息。通过将会话赋以环境变量,不同命令可通过简单引用该环境变量来利用该会话。还有,由于单个会话可包括与多个远程系统的连接,若干命令可通过向单个环境变量发出而发出,因而大大简化了较大规模(1多个)的管理性任务。以下是可用来利用该能力的说明性命令行$A=rcmd$C get/process通过调用具有在环境变量“$C”中所标识会话的远程系统上的远程命令(rcmd)get/process,该示例在前面示例上建立。根据以上命令行,同时起动每个远程命令。该特征是现有命令行环境上的巨大增强,在现有命令行环境中需要循环或类似操作的编码以起动每个远程系统上的命令。这样,该实现技术获得了并发命令处理的性能优点,而不必串行地执行每个远程命令。
另外,由聚合器255将每个单一远程命令的结果聚集到环境变量“$A”中。换言之,当具有在会话“$C”中所引用连接的一远程系统返回其返回包(例如返回包226)时,聚合器255在指定环境变量(在此例中为“$A”)中包括该数据。这样,随后的命令和任务可访问在多个远程系统上执行该命令的结果。这些结果在环境变量中被存储为经聚集阵列。聚合器255存储将每个结果包的源与环境变量中特定索引相关联的信息。这样,如果需要或请求,命令行环境200的组件可按每个机器、每个过程、或者每个应用程序领域为基础访问结果。在一实现中,经聚集结果同时可用,例如当所有结果返回时。或者,当收到结果时,通过环境变量它们可用。
类似地,内核引擎251可使命令行以非聚集方式执行,从而在返回结果时命令可访问远程执行的结果。例如,如果用户对查找具有一定量多余空闲存储器的多个远程计算装置的任一个感兴趣,则一旦找到第一个这种装置就可适时中止该命令的执行。在此情形中,聚合器255和内核引擎251可交互使得结果可异步地进行估算。这样,结果的原始信息仍然可用。
可以想像当命令旨在于很多远程装置上(诸如数百或数千)执行时的情形。这样,不一次同时起动所有命令可能就更好了。如果这样,可使用“节流阀”功能257可用于性能增强。节流阀257与内核引擎251和可能会话管理器253交互以限制会话中的连接数量,从而网络或者管理器112的资源不会超负荷。例如,可在命令行上使用“-throttle 50”参数以指示任何时间不应有超过50个连接是活动的。该增强帮助防止管理器112的资源或网络超载。或者,节流阀257也可与其它基于性能的机制交互以调节远程命令执行的性能影响。例如,节流阀257可与QOS(服务质量)机制交互以限制网络带宽上的影响。另外,可配置节流阀257以与每个远程代理交互以调节每个远程系统上的性能影响,诸如处理器或存储器负载等等。
图3是可由上面所述命令行环境管理的网络化环境中计算系统分级拓扑300的功能框图。可以想像,上述系统可用来向许多诸如大型企业网络的远程装置发出远程命令。相应地,命令行系统实现分级拓扑300以避免在作大量连接时使管理器112超载。
如图所示,拓扑300包括管理器112和计算装置的分布式网络301。分布式网络301包括分级布局由服务器(即服务器A 302、服务器B 303、和服务器C 304)组成的计算装置的第一级310,而每个服务器控制第二级312上的一组子计算装置。第二级上的有关或多个计算装置(例如服务器D 361)可具有它自己在第三级314上的子装置等等。如图3所示的分布式网络301仅仅是说明性的,可以理解复杂的企业网络可具有多层服务器和数千计算装置。
在该实现中,分布式网络301中的若干计算装置包括可用合作方式与管理器112交互的组件(例如代理308),以帮助分配命令指令的性能。更具体地,在管理器112上发出的命令行指令可影响分布式网络301中的极大量计算装置。相应地,管理器112不是本地地起动执行该指令所必须的所有连接,而是将该任务分配给分布式网络301中的若干子装置。可用至少两种方法执行该分配。
首先,在管理器112不知道分布式网络301布局的情形中,管理器112可向第一级310中的每个服务器发出命令指令,而用另外的指令使命令在受影响节点的经标识集合中的每个子装置或任一子装置上执行。这样,真正起动每个连接的任务被分配给其它计算装置。第一级310中的计算装置可另外将某些执行委托给第二级312中的下级计算装置,诸如服务器D 361。
其次,在管理器112知道分布式网络301布局并且能标识哪些叶节点由哪些服务器控制时,管理器112可将命令分解成子命令,用于具有受影响节点的分布式网络301的每个分支。然后管理器112直接向控制器发出那些子命令用于受影响节点。实质上,该技术使得管理器112能对分布式网络301中哪个服务器或节点实行命令指令的真正执行保持控管。另外,该技术简化了要由下级计算装置执行的任务,因为它们不需要发现它们是否具有受影响子装置。
应当注意,每个这些技术都简化了,因为返回结果(参见图2)包括用以标识结果源的充足信息以及结果与之相关的命令指令。没有该信息,管理器112和每个代理将需要协调以确保可将返回结果归属于特定节点(如果需要该信息)。
图4是一般示出可由过程400执行用于远程执行命令行指令至少一部分的步骤的流程图。过程400在步骤401开始,其中命令行由命令行执行环境接收。尽管可接受任何适于实现所述技术的命令行执行环境,但在共同待决的申请号为10/693,785题为“Administrative Tool Environment”(管理性工具环境)的于2003年10月24日提交的美国专利特别适合。该美国专利申请特别在此全部引入作为参考。
在步骤403,确定接收命令行包括要在一个或多个远程系统上执行的至少一个命令。远程执行包括在远程计算装置上的执行、本地计算装置上的另一过程、或者同一本地过程中另一应用领域的任务。
在步骤405和407,命令行环境使得对每个经标识远程系统的持续会话起动,并使每个远程系统执行该远程命令。或者,可使用包括对每个远程装置的单独连接的单个会话。如上所述,可对持续会话分配环境变量。另外,可使会话中的每个连接串行或并发地执行远程命令。对这些步骤的性能增强如图5所示并如下所述。
在步骤409,接收到命令远程执行的结果。如上所述,所作结果必须是返回包或经串行化对象的形式,该返回包或经串行化对象包括执行结果以及有关哪个远程节点执行命令等等的其它标识信息。
图5是一般示出当向大量远程装置发出远程命令时用于增强命令行环境性能的过程500的逻辑流程图。过程500在步骤501开始,其中基于哪些受影响节点由控制器集合中的哪个控制器控管而将命令行分解成众多子命令。然后,在步骤503,每个子命令被发给每个经标识控制器用于特定的控制器所影响的节点。最后,在步骤505,聚集从每个控制器返回的结果。因为每个结果包括有关起源节点的信息,聚集步骤不丢失有关哪个节点产生哪些结果的有价值信息(如果必需该信息)。
上述命令行环境具有比现有系统好的若干优点。能持续会话的能力使远程过程能被多个命令重复使用。可将多个连接聚集成会话,允许不借助工作线程等等而进行远程命令的简单并发处理。而且执行远程命令的任务可被分配给其它系统以增强性能。这些和其它优点对本领域技术人员将变得显然。
图6示出了可在示例性管理工具环境中使用的示例性计算装置。在非常基本的配置中,计算装置600通常包括至少一个处理单元602和系统存储器604。取决于计算装置的准确配置和类型,系统存储器604可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)、或两者的某些组合。系统存储器604通常包括操作系统605、一个或多个应用程序606,也可包括程序数据607。操作系统606包括基于组件的框架620,该框架支持组件(包括属性和事件)、对象、继承、多形性、反映,并提供基于面向对象的组件应用编程接口(API),诸如华盛顿州Redmond的微软公司制造的.NETTM框架。操作系统605还包括与基于组件的框架620交互以支持管理工具(未示出)开发的管理工具框架200。基本配置在图6中由虚线608内的那些组件示出。
计算装置600可具有附加特征或功能。例如,计算装置600还可包括诸如磁盘、光盘、或磁带的其它数据存储装置(可移动和/或不可移动)。这种其它存储器在图6用可移动存储器609和不可移动存储器610示出。计算机存储介质可包括以用来存储诸如计算机可读指令、数据结构、程序模块、或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。系统存储器604、可移动存储609和不可移动存储610都是计算机存储介质的示例。计算机存储介质包括,但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储器、磁卡、磁带、磁盘存储器或其它磁性存储装置、或可用来存储所需信息并可由计算装置600访问的任何其它介质。任何这种计算机存储介质可以是装置600的一部分。计算装置600还可具有诸如键盘、鼠标、笔、语音输入装置、触摸输入装置等等的输入装置612。还可包括诸如显示器、扬声器、打印机等等的输出装置614。这些装置在本领域中是众所周知的,无需在此赘述。
计算装置600还可包含使装置能与其它计算装置618诸如在网络上进行通信的通信连接616。通信连接616是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或其它诸如载波或其它传输机制的已调制数据的信号,并包括任何信息传输介质。术语“已调制数据信号”意指具有以这种在信号中编码信息的方式来设置或改变的一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。在此所用的术语计算机可读介质包括存储介质和通信介质。
尽管特定实现和实施例的细节已如上作了描述,这样的细节旨在满足法律声明义务而不是限制以下权利要求的范围。因而,由权利要求书定义的本发明不受以上所述的特定特征的限制。相反,根据等效法令的适当解释,本系统和方法以所附权利要求书适当范围内的任何形式或者变体进行权利要求的声明。
权利要求
1.一种具有计算机可执行指令的计算机可读介质,所述指令使能命令的远程执行,其特征在于,所述指令包括接收包括远程命令的命令行指令,所述远程命令标识要在远程系统上执行的执行任务;起动与至少两个远程系统的会话;以及使所述远程命令在所述至少两个远程系统的每一个上执行。
2.如权利要求1所述的计算机可读介质,其特征在于,所述会话包括在其上接收所述命令行指令的系统之间的连接。
3.如权利要求1所述的计算机可读介质,其特征在于,所述会话被起动为执行随后可供远程命令使用的持续会话。
4.如权利要求3所述的计算机可读介质,其特征在于,还包括接收具有第二远程命令的第二命令行指令,并使所述第二远程命令能使用所述持续会话来执行。
5.如权利要求1所述的计算机可读介质,其特征在于,所述远程系统包括远程计算装置。
6.如权利要求1所述的计算机可读介质,其特征在于,所述远程系统包括一备选过程。
7.如权利要求1所述的计算机可读介质,其特征在于,所述远程系统包括一备选应用程序领域。
8.如权利要求1所述的计算机可读介质,其特征在于,使所述远程命令能够被执行包括把使所述远程命令能够被执行的步骤委托给一控制器,所述控制器与所述至少两个远程系统的子集相关联。
9.如权利要求8所述的计算机可读介质,其特征在于,所述两个远程系统的每一个包括分级网络拓扑中的一节点,且所述控制器保留在所述至少两个远程系统的子集和接收所述命令行指令的所述系统之间等级中的位置。
10.如权利要求1所述的计算机可读介质,其特征在于,所述远程命令在所述至少两个远程系统的每一个上并发地执行。
11.如权利要求1所述的计算机可读介质,其特征在于,还包括聚集执行每个远程命令的结果。
12.如权利要求11所述的计算机可读介质,其特征在于,所述结果被聚集到一数组中。
13.如权利要求11所述的计算机可读介质,其特征在于,所述结果包括标识所述结果所源自的远程系统的信息。
14.一种远程执行命令的计算机可执行方法,其特征在于,包括在本地系统上接收标识远程系统的第一命令行;使会话在所述本地系统和远程系统之间被创建,所述会话包括与驻留于所述远程系统上的远程过程的连接;使远程命令在所述远程过程上执行;以及把所述远程命令的结果存储在与所述会话相关联的环境变量中。
15.如权利要求14所述的计算机可执行方法,其特征在于,还包括使第二远程命令在所述远程过程中执行并把所述第二远程命令的结果存储在所述环境变量中。
16.如权利要求14所述的计算机可执行方法,其特征在于,使所述会话被创建包括创建所述环境变量,以及使所述会话与所述环境变量相关联。
17.如权利要求16所述的计算机可执行方法,其特征在于,所述第一命令行还包括标识与所述会话相关联的所述环境变量的参数。
18.如权利要求14所述的计算机可执行方法,其特征在于,所述命令行还标识多个远程系统。
19.如权利要求14所述的计算机可执行方法,其特征在于,所述命令行还标识在创建所述本地系统和远程系统之间会话中使用的证明。
20.一种具有计算机可执行指令的计算机可读介质,所述指令用于执行如权利要求14所述的方法。
21.一种具有计算机可执行指令的计算机可读介质,其特征在于,包括一会话管理器,其被配置用以创建和维护本地系统和一个或多个远程系统之间的会话,每个会话能够主控所述本地系统和远程系统之间的多个连接;一聚合器,其被配置用以接收命令的远程执行的结果,所述结果的每一个与远程系统相关联,所述聚合器还被配置用以将所述结果聚集成一数组;以及一节流阀,其被配置用以在请求之后,限制在每个会话中活动连接的数量。
22.如权利要求21所述的计算机可读介质,其特征在于,所述数组中的每个结果与所述结果所源自的远程系统相关联。
23.如权利要求21所述的计算机可读介质,其特征在于,所述聚合器还被配置用以使所述结果以非聚集方式可供使用。
24.如权利要求21所述的计算机可读介质,其特征在于,所述聚合器还被配置用以将所述结果聚集到环境变量中,所述环境变量与由所述会话管理器所创建的会话相关联。
25.如权利要求21所述的计算机可读介质,其特征在于,所述节流阀还被配置用以与其它基于性能机的制交互,以调节远程命令执行的性能影响。
26.如权利要求25所述的计算机可读介质,其特征在于,所述其它基于性能机制包括服务质量机制。
27.如权利要求25所述的计算机可读介质,其特征在于,所述其它基于性能机制包括远程系统上的代理,所述代理被配置用以调节所述远程系统上资源的影响。
28.如权利要求21所述的计算机可读介质,其特征在于,还包括被配置用以管理所述若干组件的每一个之间信息流的内核引擎。
29.如权利要求28所述的计算机可读介质,其特征在于,所述内核引擎还被配置用以把起动一会话的任务委托给远程系统等级中的另一系统。
30.如权利要求21所述的计算机可读介质,其特征在于,所述远程系统包括远程计算装置。
31.如权利要求21所述的计算机可读介质,其特征在于,所述远程系统包括一备选过程。
32.如权利要求21所述的计算机可读介质,其特征在于,所述远程系统包括一备选应用程序领域。
全文摘要
命令行环境被配置用以接收隐含多个远程节点的命令行。该命令行环境被配置以建立对于每个隐含远程节点都持续的会话,并起动远程命令在这些节点上的执行。会话可赋以变量,且远程执行可并发地进行。远程执行的结果可接收并聚集到阵列中。命令行环境可将建立会话的任务分发到其它系统中以改进性能。
文档编号H04L12/24GK1969280SQ200480001253
公开日2007年5月23日 申请日期2004年7月21日 优先权日2004年1月16日
发明者D·W·雷, J·P·斯诺弗, R·钱德拉齐卡拉恩, M·C·S·沙斯特里 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1