CN1550985A - 利用基于对象的流水作业的系统和方法 - Google Patents

利用基于对象的流水作业的系统和方法 Download PDF

Info

Publication number
CN1550985A
CN1550985A CNA2004100434882A CN200410043488A CN1550985A CN 1550985 A CN1550985 A CN 1550985A CN A2004100434882 A CNA2004100434882 A CN A2004100434882A CN 200410043488 A CN200410043488 A CN 200410043488A CN 1550985 A CN1550985 A CN 1550985A
Authority
CN
China
Prior art keywords
line production
order
component
sub
command
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
Application number
CNA2004100434882A
Other languages
English (en)
Inventor
J��P��˹ŵ��
J·P·斯诺弗
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1550985A publication Critical patent/CN1550985A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Abstract

本发明涉及支持基于对象的流水作业的计算环境和方法。所述计算环境包括一个运行时间命令解释程序、一个分析程序、和基本命令。所述运行时间命令解释程序接收基于对象的流水作业命令(例如,通过命令行)。所述运行时间命令解释程序发送所述基于对象的流水作业到分析程序,分析所述基于对象的流水作业成为流水作业子组件。各个流水作业子组件关联于命令,例如由操作系统提供的基本命令或者由第三方开发者提供的第三方命令。分析程序调用关联于第一流水作业子组件的方法。所述方法从一个指定的输入(例如,XML)获取关心的对象。所述对象被发送到后续流水作业子组件进一步处理。流水作业子组件可在同样的处理中执行。

Description

利用基于对象的流水作业的系统和方法
发明背景
很多操作系统提供用于“缝合”(也就是流水运行)多路应用程序(即,实用程序)在一起的机制,以建立一个能在操作系统的命令行上输入的客户的、特别的命令。特别地,命令被用于系统管理工具,例如用于管理系统特性。每个这样的在命令中的“流水化的”实用程序相互通过传送文本来通信。这样,在流水中的每个实用程序具有职责分析收到的文本和格式化输出的文本。可以想象,如果一个非常复杂的命令被要求,系统管理员必须理解若干个实用程序,以恰当地按能产生复杂输出的方式来流水完成这些实用程序。理解每个实用程序的详细的内部工作方式和正确地流水运行若干个实用程序对于系统管理员是很费时而且具有挑战性的。事实上,只有少数入学会每个实用程序的这种详细的知识。这样,系统管理员就非常专业。因此,需要一种机制允许系统管理员有能力建立客户的、特别的、基于命令行的管理工具,而不要求它们知道在流水作业中的每个实用程序的详细工作方式。
发明概要
本发明被运用于支持基于对象流水运行的计算环境和方法。计算环境包括一个运行的时间命令解释程序、一个分析程序、和基本命令。运行的时间命令解释程序接收基于对象的流水作业(例如,通过命令行)。运行命令解释程序发送基于对象的流水作业到句法分析程序,它分析基于对象的流水作业到流水作业子组件。该流水作业子组件可关联于由操作系统提供的基本命令之一、由第三方开发者写的第三方命令等等。分析程序调用一种关联于第一个流水作业子组件的方法。该方法包含从一个特定输入(例如,XML)获得有兴趣的对象。该对象发送到后继的流水作业子组件以进一步处理。每个流水作业子组件可以同样的过程执行。
附图简要说明
图1表示可被用于本发明的一个示例性实施例的示例性计算装置。
图2是一个方框图,通常表示一个可操作本发明的管理工具环境的实施例的总述。
图3是一个第三方命令的实施例,命令将在图2所示的管理工具环境中操作。
图4是一个方框图,表示在图1中所示的计算装置上的图3所示的第三方命令的安装。
图5是一个逻辑流程图,表示按照本发明执行一个基于对象的流水作业的运行过程。
图6是一个逻辑流程图,表示获取适合于图5中使用的对象的过程。
图7表示几个示例性基于对象的流水作业和它们各自输出的每一个。
较佳实施例的详细描述
简而言之,本发明用于支持基于对象的流水作业环境和建立处理基于对象的流水作业的机制。在阅读以下详细描述之后将变得很明显,本发明最小化第三方开发者需要编写的代码数量和最小化为管理系统特性系统管理员所需知道的知识数量。因此,本发明显著地简化了系统管理任务。
图1表示一个示例性计算装置,它可被用于本发明的一个示例性实施例。在非常基本的配置中,计算装置100一般包括至少一个处理单元102和系统存储器104。根据确切的配置和计算装置的类型,系统存储器104可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存等等)或者是二者的某种组合。系统存储器104一般包括操作系统105、一个或多个程序模块106、也可包括程序数据107。操作系统105包括命令处理程序130执行操作系统的命令。命令处理程序130包括命令解释程序131(即命令处理程序接口),它接受操作系统的命令。命令解释程序可显示命令提示,可显示图形用户接口,或任何其它用于输入和解释用户输入的手段。命令解释程序131验证输入的命令的有效性,并发送被证实的命令到命令处理程序130的另一个部分去执行。这个基本配置由在虚线108中的这些部件在图1中表示。
计算装置100可具有附加的特点和功能。例如,计算装置100可还包括附加的数据存储装置(可移动的/或不可移动的),例如,磁盘、光盘、或磁带。这种附加的存储器在图1中由可移动存储器装置109和不可移动存储装置110表示。计算机存储介质可以包括易失的、非易失的、以任何存储信息的方法和技术实现的可移动的和不可移动的介质,所述信息指,例如,计算机可读取指令、数据结构、程序模块,或其它数据。系统存储器104,可移动存储器109和不可移动存储器110都是计算存储介质的例子。计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光存储器、或任何其它介质,只要能被用于存储所要求的信息并且能被计算装置100所访问。任何这样的计算机存储介质可以是装置100的部件。计算装置100还可具有输入装置112,例如键盘、鼠标、笔、语音输入装置、接触输入装置,等等。输出装置114,例如显示器、打印机、等等也被包括。这些装置在本技术领域众所周知,并且不需要在此更多讨论。
计算装置100还可以包含通信连接116,它允许装置与其它计算装置118通信(例如通过网络)。通信连接116是通信介质的一个实例。通信介质可典型地由计算机可读指令、数据结构、程序模块、或其它在调制的数据信号中的数据(例如载波或其它传输机制)来具体化,并且包括任何信息传递介质。术语“调制数据信号”意指一种信号,它具有以在信号中编码信息这样一种方式来设置和改变的一个或多个特征。作为例子而不是限制,通信介质包括有线介质例如导线网络或者直接导线连接,和无线介质例如超声波、RF、红外线和其它无线介质。在此使用的术语计算机可读介质包括存储介质和通信介质二者。
图2是一个方框图通常表示一个在其中本发明可以操作的管理工具环境实施例的概况。该管理工具环境200包括一个运行时间命令解释程序202、一个分析程序204、和基本命令206。该运行时间命令解释程序202、一个分析程序204、和基本命令206可是在图1中表示的操作系统的部分。该管理工具环境200可还包括平台命令208、主控命令210和一个或多个第三方命令212。该平台命令208和主控命令210分别是只有管理工具环境200以其为主机的计算机类型才有的命令,以及专用于主控的命令。以下将结合图3详细地描述第三方命令212,它是由第三方开发者提供并且典型地被导向管理系统或第三方应用特点。如将详细地说明的,本发明管理工具软件200允许系统管理员管理该系统特点而不要求详细地理解所有的基本命令206、主控命令210、和平台命令208。相反,该管理工具环境200允许系统管理员能够以相当少的代码来建立第三方命令212。还将在以下描述,尽管第三方命令212具有相当少的代码,命令212可以很容易地和其它命令一起流水运行以提供高级的管理能力和工具。
现在,在进一步详细描述示例性管理工具环境200之前,讨论在图7中表示的一个示例性基于对象的流水作业。图7表示三个示例性基于对象的流水作业702、722、和742。基于对象的流水作业702包括一个命令提示704、一个流水作业特征符708、和流水作业子组件706和710。通常,各个流水作业子组件可是一个平台命令、一个主控命令、一个第三方命令、一个基本命令等等。如以下将描述,使用同样的机制建立这些类型命令的每一个并以同样的方式进行操作。在图7中第一个流水作业子组件706表示一个第三方命令。然而,如上所见第一个流水作业子组件706可以是一个平台命令、一个主控命令、或一个基本命令。命令提示704可是任何的指示符,例如所示的美元符号“$”。流水作业特征符708分隔流水作业子组件706和710的各个。该流水作业特征符708可以采用很多形式,但是典型地以线“|”表示。基于对象的流水作业702可具有任何数量流水作业部件,以流水作业特征符708分隔每一个。特别地,最后一个流水作业子组件(例如,子组件710)可以负责输出信息,例如到显示器上的文本。流水作业子组件706和710可带参数(例如以流水作业子组件710所显示),或者可不需要参数,(例如以流水作业子组件706所显示)。各个流水作业子组件706和710表示一个动词/名词对,例如“get/process”和“format/table”。动词或名词可隐含在流水作业子组件706和710中。
尽管表示在图7中的基于对象的流水作业702可看上去在语句上类似于基于文本的流水作业,但是,将基于对象的流水作业702流水化的机制及其执行机制却有着很大的不同。例如,在基于文本的流水作业中,各个流水作业命令是一个分开的实用程序,并且是一个独立的可执行的程序。另外,各个分开的实用程序输出文本并且各个实用程序必须在对文本执行唯一的处理之前解释该文本。比较而言,根据本发明流水作业子组件706和710相互间交换对象(例如,对象集合)。在一个实施例中,对象被处理至各个后续的流水作业子组件706和710,从而该处理可在后续的子组件在开始处理对象以前在前一个子组件中被完成。在另一个实施例中对象可被流到多个流水作业子组件从而对对象的处理可并行地执行。在另一个实施例中,一个或多个流水作业子组件可在同样的过程中运行。流水作业子组件以及在子组件之间的对象可来自不同的系统。
回到图2,运行时间命令解释程序202接受操作系统命令(例如,基于对象地流水作业)。这些操作系统命令可通过富控制台主控254、图形用户接口(GUI)主控256、或第三方主控(未展示)来输入。一旦运行时间命令解释程序202接收一个操作系统命令,运行时间命令解释程序202验证该操作系统命令是否有效。如果被验证的命令是一个基于对象的流水作业,运行时间命令解释程序202把命令传递给分析程序204。简而言之,分析程序204分析该基于对象的流水作业成为流水作业子组件。然后分析程序204调用一个关联于第一个流水作业子组件的方法。该方法建立一个或多个对象,它们可被用在由分析程序204识别的各个后续流水作业子组件的处理中。特别地,最后的流水作业子组件输出信息,例如用于一个基于控制台主控的文本。
管理工具环境200可进一步包括一个扩展类型反射程序214,它被配置成访问可精确地分析的输入216。运行时间命令解释程序202、第三方命令212、基本命令206、富控制台主控254、和GUI主控256各个都可通过扩展类型反射程序214应该访问可精确地可分析的输入216。在以下的讨论中,可精确地分析的输入216被定义为可识别特性和值的输入。某些示例性可精确地分析的输入216包括“窗口管理装置”(WMI)输入232、“ActiveX数据对象”(ADO)输入234、“可扩展标记语言”(XML)输入236、和对象输入,例如.NET对象。其它的可精确地分析的输入可包括第三方数据格式240。
通常,扩展类型反射程序214支持基于反射的处理过程。基于反射的处理过程意指一种机制,借此可执行代码访问对象的特性而不需要理解对象的细节。对象自身将通知该请求的可执行代码它们具有哪些特性和相关的值。这将允许可执行代码独立于对象。另外,根据本发明,扩展类型反射程序214提供对非对象类型输入的反射,例如ADO输入234以及类似者。例如,假设精确地可分析输入216是一个ADO输入234,如果该可执行代码询问ADO输入的特性,该ADO输入234将返回两个特性:列特性和行特性。
然而,这两个特性并没有在该ADO输入234中提供关于“对象”的足够的细节。这样,根据本发明,扩展类型反射程序214认识到询问该ADO输入234的可执行代码并且将询问该ADO输入234的列名称,而不是它的特性。作为响应,该ADO输入234将返回列的名称,它作为特性被返回到该可执行代码。这样,该扩展类型反射程序214被配置用于从任何类型可精确地分析的输入216建立“对象”。
为了从可精确地分析的输入216建立“对象”,该管理工具环境200进一步包括一个类型注记和扩展目录218。类型注记和扩展目录218描述扩展类型反射程序214如何查询输入216的各种类型以获得所要求的特性用于建立指定输入类型的对象。这样,扩展类型反射程序214提供非直接的层面,它允许在所有对象类型上的反射。例如,如果输入类型是XML,一个描述该XML的描述文件被用来从该XML文档建立对象。
管理工具环境200可进一步包括一个策略引擎250和web服务252。当调用任何命令(例如平台命令208、主控命令210、和第三方命令212)时,分析程序204和运行时间命令解释程序202可通过该策略引擎250通信。web服务252允许管理工具环境200通过网络操作。web服务252与分析程序204、运行时间命令解释程序202、和扩展类型反射程序214通信。另外,基本命令206可通过web服务252访问。
图3是用于建立流水作业子组件(也就是子命令cmdlet)。当完成时,该子命令cmdlet可是一个平台命令、一个主控命令、一个第三方命令、或者一个基本命令。以下的讨论描述第三方命令的建立,它可是由第三方开发者编写。该第三方命令将管理工具环境在图2所展示的管理工具环境中操作。第三方命令300包括一个命令类302,例如ProcessCmd类,它是一个通用类。命令类302包括一个语法机制303用于为期望的输入参数、静态方法318、和将静态方法318一起的关联于子命令cmdlet(如,“get/process”)的命令属性定义语法。
在一个实施例中,语法机制包括一个输入参数类304,例如ProcessReq类。该输入参数类304从RequestObject306类导出,它由管理工具环境提供并用于按照输入参数类304中定义的所要求的参数处理为命令输入(例如,通过命令行)的参数。输入参数类304包括一个或多个成员声明310。成员声明310相应于所期望的、用于第三方命令的输入参数之一。输入参数类304(原文306,译者注)还可包括一个或多个关联于成员声明310之一的指示308。在图3表示的输入参数类304中,指示308识别“Name”作为在基于对象的流水作业命令中的第一个期望的参数。一旦输入参数的处理完成,该输入参数被提供给静态方法318作为参数322。然后,静态方法318可使用所期望的参数(例如,“req.Name”)执行处理。附加在这个语法机制303上的信息可从一般性指定的、标题为“对于命令的输入参数的基于反射的处理过程”的专利申请(专利申请号No.__)中获得,它通过引用包括在此。
命令属性312标识文本参数314和316,它们将在关联于第三方命令300的基于对象的流水作业中出现。简而言之,在分析基于对象的流水作业命令时,分析程序204(图2)将识别文本参数314和316。根据识别的文本参数314和316时,分析程序204(原文304)将找到静态方法318和调用静态方法318。在静态方法318中的处理负责建立对象或对象集合,它们将在流水作业子组件之间传送。该静态方法318可调用由操作系统提供的系统方法(例如在图3中表示的System.Diagnostic.Process 320),可调用第三方代码等等。
图4是一个方框图,表示在图1所示的计算装置上的、在图3所示的第三方命令的安装。如上所提到的,第三方命令的安装实际上类似于平台命令、主控命令、和基本命令的安装。一旦该第三方命令300已完成编码,该第三方命令300被输入到编译程序402进行编译。编译程序402输出可执行代码404和一个描述文件406。当系统管理员希望第三方命令300被安装在一个特定的计算装置上时,可执行代码404和描述文件406被下载(由箭头表示)到该特定的计算装置(未表明)。特别地,该特定的计算装置不同于开发第三方命令的计算装置。当可执行代码404和描述文件406被下载时,关于第三方命令的信息被存储在目录418中。该信息标识用于检索该可执行代码414的位置,该代码关联于在图3中表示的文本参数314和316,以及对执行第三方命令很重要的其它数据。然后,在特定计算装置上的操作系统将识别该文本参数314和316并且调用如在目录418中识别的静态方法318。
图5是一个逻辑流程图,表示用于按照本发明执行基于对象的流水作业的过程。一旦运行时间命令解释程序识别到在命令行上输入了基于对象的流水作业时,该过程就启动。处理继续到块502。在块502处,基于对象的流水作业被分析以识别一个或多个流水化的子组件和它们的相关联的输入参数。前述的标题为“对于命令的输入参数的基于反射的处理过程”专利申请描述了一个分析基于对象的流水作业的实施例。一旦基于对象的流水作业被分析,处理过程继续到块504。
在块504处,分析程序识别关联于第一个流水作业子组件的方法。在一个实施例中,这种识别通过在目录中寻找文本参数实现。该目录然后提供相关联的方法的位置。处理过程继续到块506。
在块506处,识别的方法被调用(例如,在图3中表示的GetProcess方法318)。在块508处,该方法获得对象并传递给下一个流水作业子组件。在某些案例中,获取对象包括直接地获取对象。当信息已经存在于对象格式中时,(例如.NET对象)这种情况就发生。在另一些案例中,将结合图6讨论,获取对象包含从若干输入类型之一构建对象。一旦对象(可多个)被获取,处理过程继续到块510。
在判断块510处,作出关于基于对象的流水作业是否包括其它流水作业子组件的结论。如上结合图7所述,基于对象的流水作业可包括若干个流水作业子组件。只要还有另外的流水作业子组件,处理过程继续到块512。
在块512处,对象的引用(例如,句柄)被传送到下一个流水作业子组件。在另一个实施例中,对象的引用可为了对象的并行处理而被流到多个流水作业子组件。因为对象被建立成支持反射,各个对象将告诉后续流水作业子组件它们有哪些特性和关联的值。处理过程继续到块514。
在块514,该后续的流水作业子组件执行对对象上的处理。该后续流水作业子组件可建立一个对象的子集、对象的次序,或者对在块508中建立的对象实行其它的处理过程。例如,该子组件可显示一个信息图表,系统管理员可用它来选择特性来输出。一旦该子组件实行了它的处理过程,处理过程继续返回到判断块510。如果有另一个流水作业子组件,在块512和514中的为这个其它的流水作业子组件实行该处理过程。特别是最后一个流水作业子组件将输出关于该对象的信息,例如文本。在各个流水作业子组件完成了它们各自的处理过程之后,处理过程被完成并继续到结束。
图6是一个逻辑流程图,表示获取适合于在图5中使用的对象的过程。处理过程起始于块601并继续到判断块602。在判断块602,由该方法要求的输入是否是可精确地分析的的结论被作出。如上所述,对象的信息可以从对象获取,例如.NET对象、从窗口管理装置(WMI)输入、从ActiveX数据对象(ADO)输入、从可扩展标记语言(XML)输入,以及从其它第三方格式。如果在块602的结论断定该输入不可精确地分析的,该输入是无效的。这样,存在一个错误,并且该基于对象的流水作业将不被处理。处理过程继续到结束。
回到判断块602,如果结论断定该输入是精确地可以分析,处理过程继续到判断块604。在判断块604,作出输入是否是一个对象类型的结论(例如,一个.NET对象)。如果输入已经在一个对象格式之中,处理过程继续到块606。
在块606,具有被请求特性的对象被找回。反射可被用来获取这些请求的特性。一旦所有的对象都获得,处理过程继续返回到块并回到图5。
另一方面,如果在判断块604的结论断定该输入不是一个对象类型,处理过程继续到块608。在块608,基于输入的类型对象的特性被获取。扩展类型反射程序,结合类型注记和扩展被用于从输入获取特性。类型注记和扩展描述输入的格式,从而该特性可被获取。一旦特性被获取,处理过程继续到块610。
在块610,在块610中获取的特性的值被获取。本领域技术人员都知道可在获取下一个特性之前为各个所请求的特性获取特性和值。这样,处理过程块可以各种次序完成,以达到全部所要求的结果。一旦特性和它们相应的值已被获取,处理过程继续到块612。
在块612,具有所获取的特性和值的对象被建立。对象以自身支持反射的方式被建立。处理过程然后继续到返回块并且回到图5。
再一次参照图7,三个示例性基于对象的流水作业702、722、和742进一步被详细地讨论。基于对象的流水作业702具有二个流水作业子组件706和710。流水作业子组件710输出文本712到显示器。流水作业子组件710包括一个基本命令“format\table”,它接收指定输出的安排的格式化参数(例如,名字、pid、ws、句柄计数)。这样,文本712是一个具有第一行是带特性名字的表,并且各个后续行具有对象之一的特性的值,这些对象是在通过基于对象的流水作业702的处理期间所获得的。
在第二个例子中,基于对象的流水作业722包括二个流水作业子组件706和710。另外,有二个附加的流水作业子组件(即流水作业子组件724和726)在流水作业子组件710之前。流水作业子组件724建立一个由第一个流水作业子组件706返回的对象的子集。流水作业子组件726重新安排该子集的次序。流水作业子组件710再一次输出文本(即,文本728)。
在第三个例子中,基于对象的流水作业742包括流水作业子组件724和726,但是修改流水作业子组件710(这里以下称为修改的流水作业子组件710’)。修改的流水作业子组件710’在命令行加入参数之一的属性,它修改在表中的该参数的输出。工作集(WS)参数,现在是ws.kb,表示工作集将以千字节表示。因为在本发明的一个实施例中,对象自身包含对象,在流水运作子组件时,本发明可利用这种复杂化。例如,管理员可“导航”到用于输出或处理的对象的子特性。在命令行上的语法将相应地改变,例如在对象和对象的子特性之间加入“.”。
很多其它的例子可很容易被建立,例如按名字字母顺序地排序和建立对象的子集,其中各个对象具有至少12,000K的工作集。这些和其它变化很容易输入到命令行,而不要求系统管理员知道基本命令的细节(例如,where、sort、和format)。因此,本发明极大地减少了系统管理的复杂性。
以上说明、例子和数据提供了一个本发明内容的制造和使用的完整描述。由于本发明的很多实施例可以被制成而没有脱离本发明的精神和范围,所述本发明存在于所附的权利要求书中。

Claims (25)

1.一种具有用于流水作业的计算机可执行指令的计算机可读取媒质,其特征在于,所述指令包括:
接收基于对象的流水作业;
分析该基于对象的流水作业成为多个流水作业子组件;
调用关联于来自多个流水作业子组件的第一流水作业子组件的方法,该方法建立至少一个第一流水作业子组件所关心的对象;
发送所述至少一个对象到下一个流水作业子组件进行处理,所述下一个流水作业子组件是多个流水作业子组件之一。
2.根据权利要求1所述的计算机可读取媒质,其特征在于,所述接收基于对象的流水作业是经由一个命令行。
3.根据权利要求1所述的计算机可读取媒质,其特征在于,所述第一流水作业子组件对应于一由操作系统提供的基本命令。
4.根据权利要求1所述的计算机可读取媒质,其特征在于,所述第一流水作业子组件对应于一第三方命令。
5.根据权利要求1所述的计算机可读取媒质,其特征在于,发送所述至少一个对象到下一个流水作业子组件包括发送用于所述至少一个对象的每一个的一个句柄到下一个流水作业子组件。
6.根据权利要求1所述的计算机可读取媒质,其特征在于,发送所述至少一个对象包括发送所述至少一个对象到多个流水作业子组件。
7.根据权利要求1所述的计算机可读取媒质,其特征在于,建立多个对象包括通过反射为对象获取特性名称。
8.根据权利要求1所述的计算机可读取媒质,其特征在于,建立多个对象是基于从输入源来的信息。
9.根据权利要求8所述的计算机可读取媒质,其特征在于,所述输入源包括一个基于XML的文档。
10.一种以支持基于对象的流水作业的数据结构编码的计算机可读取媒质,所述数据结构包括:
一个输入参数结构,用于为命令指定所述至少一个对象所期望的参数的处理,所述期望的参数在命令被调用时被提供;
一个静态的方法,用于生成至少一个对象,并且提供所述至少一个对象给基于对象的流水作业中的下一个命令;和
一个命令属性,用于把静态的方法与输入关联,所述输入被提供以调用所述命令。
11.根据权利要求10所述的计算机可读取媒质,其特征在于,所述输入包括一个命令行。
12.根据权利要求10的计算机可读取媒质,其特征在于,所述静态方法是在所述输入参数结构中传递的信息。
13.一种计算机实现的方法,用于在流水作业命令之间通信,所述方法包括:
由第一流水作业命令建立至少一个对象;
把至少一个对象的引用从所述第一流水作业命令发送所述到第二流水作业命令;和
由所述第二流水作业命令在所述至少一个对象上实行处理。
14.根据权利要求13所述的计算机实现的方法,其特征在于,第一流水作业命令是由第三方开发者提供的第三方命令。
15.根据权利要求13所述的计算机实现的方法,其特征在于,第一流水作业命令是由操作系统提供的基本命令。
16.根据权利要求13所述的计算机实现的方法,其特征在于,第一和第二流水作业命令在同一过程中执行。
17.根据权利要求13所述的计算机实现的方法,进一步包括发送所述至少一个对象的引用到第三流水作业命令用于并行处理。
18.根据权利要求13所述的计算机实现的方法,其特征在于,第二流水作业命令发送所述至少一个对象的子集到第三流水作业命令。
19.一个处理流水作业命令的系统,所述系统包括:
一个处理器;和
一个存储器,所述存储器被分配给多个计算机可执行指令,指令被装入存储器并由处理器执行,所述计算机可执行指令实行一种方法包括:
响应于接收的流水作业命令,分析流水作业命令成为多个流水作业子组件;
调用关联于第一流水作业子组件的方法,所述方法建立至少一个关心的对象;和
发送至少一个对象到下一个流水作业子组件进行处理。
20.根据权利要求19的系统,其特征在于,第一流水作业子组件相应于由操作系统提供的基本命令。
21.根据权利要求19的系统,其特征在于,第一流水作业子组件相应于第三方命令。
22.根据权利要求19的系统,其特征在于,流水作业命令通过命令行接收。
23.根据权利要求19的系统,其特征在于,发送所述至少一个对象到下一个流水作业子组件包括发送用于各个对象的句柄到下一个流水作业子组件。
24.一个用于在流水作业命令之间通信的计算机实现的方法,所述方法包括:
一个由第一流水作业命令建立至少一个对象的手段;
把至少一个对象的引用从第一流水作业命令发送到第二流水作业命令的手段;和
由第二流水作业命令对至少一个对象实行处理的手段。
25.根据权利要求24的计算机实现的方法,其特征在于,第一和第二流水作业命令通过命令行输入。
CNA2004100434882A 2003-05-12 2004-05-12 利用基于对象的流水作业的系统和方法 Pending CN1550985A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/438,235 US7526770B2 (en) 2003-05-12 2003-05-12 System and method for employing object-based pipelines
US10/438,235 2003-05-12

Publications (1)

Publication Number Publication Date
CN1550985A true CN1550985A (zh) 2004-12-01

Family

ID=33449735

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004100434882A Pending CN1550985A (zh) 2003-05-12 2004-05-12 利用基于对象的流水作业的系统和方法

Country Status (5)

Country Link
US (2) US7526770B2 (zh)
EP (1) EP1548577A3 (zh)
JP (1) JP2004342107A (zh)
KR (1) KR20040097937A (zh)
CN (1) CN1550985A (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594170B2 (en) * 2003-10-24 2009-09-22 Microsoft Corporation Mechanism for providing data driven command line output
US20050091424A1 (en) * 2003-10-24 2005-04-28 Snover Jeffrey P. Mechanism for analyzing partially unresolved input
US20060010369A1 (en) * 2004-07-07 2006-01-12 Stephan Naundorf Enhancements of data types in XML schema
US7503038B2 (en) * 2004-08-27 2009-03-10 Microsoft Corporation System and method for seamlessly comparing objects
US20060089147A1 (en) * 2004-10-21 2006-04-27 Beaty Robert M Mobile network infrastructure for applications, personalized user interfaces, and services
US8566806B2 (en) * 2005-03-04 2013-10-22 Microsoft Corporation Command-line data-type discovery and conversion
US8151282B2 (en) * 2005-04-15 2012-04-03 Yahoo! Inc. System and method for pipelet processing of data sets
JP4852906B2 (ja) * 2005-06-24 2012-01-11 富士ゼロックス株式会社 連携処理システム及び装置
US7716252B2 (en) * 2005-07-29 2010-05-11 Microsoft Corporation Dynamically exposing relationships among entities contained in data stores
US20070240164A1 (en) * 2006-03-15 2007-10-11 Microsoft Corporation Command line pipelining
CN100466555C (zh) * 2007-03-14 2009-03-04 华为技术有限公司 一种发送维护命令的方法及装置
US20080244514A1 (en) * 2007-03-29 2008-10-02 Microsoft Corporation Scriptable object model for network based services
US8417819B2 (en) * 2007-11-05 2013-04-09 Red Hat, Inc. Combining UNIX commands with uniform resource locators
WO2017074436A1 (en) * 2015-10-30 2017-05-04 Hewlett-Packard Development Company, L.P. Object type based image processing
EP3746884A4 (en) * 2018-01-29 2021-11-03 Rubikloud Technologies Inc. PROCESS AND SYSTEM FOR GENERATING A FLEXIBLE PIPELINE ARCHITECTURE

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404528A (en) * 1993-01-19 1995-04-04 Canon Information Systems, Inc. Scripting system
FR2742892B1 (fr) * 1995-12-21 1998-02-13 Bull Sa Systeme de protection de logiciel pour ordinateur ecrit en langage interprete
JP4489958B2 (ja) 1998-11-16 2010-06-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) イベントベースシステムの同時処理
JP2000250755A (ja) * 1999-02-25 2000-09-14 Sony Electronics Inc 分散適応実行時プラットホーム用のアプリケーションプログラム開発方法及びコンピュータ装置
US7216351B1 (en) * 1999-04-07 2007-05-08 International Business Machines Corporation Systems and methods for synchronizing multi-modal interactions
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
JP2001175596A (ja) * 1999-12-14 2001-06-29 Nec Corp コマンド処理装置、コマンド処理方法、およびそのプログラムを記録した記録媒体
US7055095B1 (en) * 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US6721808B1 (en) * 2000-09-13 2004-04-13 Cisco Technology, Inc. Real-time creation of distributed object shell commands
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US20020078251A1 (en) * 2000-12-18 2002-06-20 Philips Electronics North America Corp. Self-determining command path architecture
US6941560B1 (en) 2000-12-19 2005-09-06 Novell, Inc. XML-based integrated services event system
US6785685B2 (en) 2001-08-22 2004-08-31 International Business Machines Corporation Approach for transforming XML document to and from data objects in an object oriented framework for content management applications
US7472342B2 (en) * 2001-10-24 2008-12-30 Bea Systems, Inc. System and method for portal page layout
AU2003239326A1 (en) * 2002-05-01 2003-11-17 Bea Systems, Inc. Enterprise application platform
US7127520B2 (en) * 2002-06-28 2006-10-24 Streamserve Method and system for transforming input data streams
US7085853B2 (en) * 2002-09-10 2006-08-01 Sun Microsystems, Inc. System and method for a distributed shell in a java environment
US7167874B2 (en) * 2003-01-22 2007-01-23 International Business Machines Corporation System and method for command line administration of project spaces using XML objects

Also Published As

Publication number Publication date
EP1548577A2 (en) 2005-06-29
US20040243543A1 (en) 2004-12-02
US7526770B2 (en) 2009-04-28
KR20040097937A (ko) 2004-11-18
EP1548577A3 (en) 2006-02-01
US7530075B2 (en) 2009-05-05
US20040249780A1 (en) 2004-12-09
JP2004342107A (ja) 2004-12-02

Similar Documents

Publication Publication Date Title
CN100547552C (zh) 用于自动化管理任务的系统和方法
CN100354823C (zh) 用于创建、管理和使用代码段的系统和方法
JP5085022B2 (ja) 継ぎ目なくオブジェクトを比較するシステムおよび方法
CN101073057B (zh) 提供命令行操作环境的方法和系统
CN1550985A (zh) 利用基于对象的流水作业的系统和方法
US7478085B2 (en) Ability for developers to easily find or extend well known locations on a system
US8091071B2 (en) Method and system for template-based code generation
US20090254881A1 (en) Code generation techniques for administrative tasks
CN101351771B (zh) 用于获取并应用交互式环境内对构造的约束的方法和系统
US20040226027A1 (en) Application interface wrapper
JP2004342108A (ja) コマンドへの入力パラメータに対するリフレクションベース処理
JP2003186673A (ja) コンピュータシステム構成要素の統合方法、およびコンフィギュレーションシステム
US10706085B2 (en) Method and system for exposing virtual assistant services across multiple platforms
US7107574B1 (en) Managing computer program configuration data
CN101137959A (zh) 用于跨越远程边界传送计算机可读对象的系统和方法
US7237222B1 (en) Protocol for controlling an execution process on a destination computer from a source computer
CN111814449A (zh) 表单解析方法、装置、设备及存储介质
CN102144230B (zh) 基于记录的代码结构
CN100454244C (zh) 在标记中用于定义和使用子类说明的系统和方法
US20010051974A1 (en) Method and apparatus for automatic generation of data interfaces
US20060005174A1 (en) Defining hierarchical structures with markup languages and reflection
CN111090436B (zh) 一种Jenkins编译结果汇总方法、装置及设备
US20050262037A1 (en) Method and apparatus for controlling result dataset generation in a javascript environment
CN114968622A (zh) 处理器接口管理方法、装置、设备及存储介质
CN116755685A (zh) 一种数据接口的配置方法、装置及数据查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20041201