处理脚本内容的外部配置的制作方法

文档序号:6570380阅读:164来源:国知局
专利名称:处理脚本内容的外部配置的制作方法
处理脚本内容的外部配置 背景背景和相关技术计算系统变革了人们工作和游戏的方式。计算系统以各种各样的形式出 现,包括膝上型计算机、台式计算机、个人数字助理、电话、以及甚至诸如例 如冰箱和汽车等传统上还没有与计算系统相关联的设备。计算系统甚至可包括 通过网络相互连接的多个构成计算系统。因此, 一些计算系统可以足够小以适 合在手掌中,然而另一些则可遍布全球许多地区。不考虑其物理形式,计算系统是由硬件和软件组成的。硬件包括最基本地 至少一个处理器和存储器。软件包括可被包含在存储器或存储中并且可由处理 器来访问和执行以便引导计算系统的全部功能的指令。因此,软件对于启用和 引导计算系统的功能是关键性的。在一典型的计算系统中的软件通常包括一操作系统和各应用程序。操作系 统通常提供在多个应用程序间共有的核心功能。例如,操作系统提供应用程序接口 (经常被称为"API"),该应用程序接口向应用程序提供底层文件系统、存储器管理、安全性、联网、用户界面、以及其他核心功能。操作系统还在单 个计算系统上启动、管理、以及终止多个进程。"进程"是本领域中用来描述包括可由该进程中所包括的一个或多个正在 运行的可执行组件来共享的一资源集合的虚拟地址空间的术语。资源可包括进 程标识符、 一个或多个执行线程、文件句柄、共享的存储器、以及共享的处理 器时间。进程可对在该进程中运行的可执行组件施加约束,使得可适当地维持 次序。例如,进程可要求一特定类型的数据结构或对象具有一具体结构,并且 可要求在该进程中执行的每个组件以一致的方式使用存储器。"脚本"是用来描述可被解释以便在运行时期间在计算机可执行指令实际 上由处理器执行前即刻形成计算机可执行指令的命令序列的术语。通常,命令 将被用来执行特定的组件。由脚本调用的组件在调用该组件的脚本中暗示或表达的某一处理上下文中运行。该处理上下文可包括组件运行于其中的进程以及 组件运行于其中的安全上下文。例如,安全上下文可指定对于该组件的安全机 制是将用户视作一特定实体,和/或在一特定机器上运行该组件。令组件在一牛寺 定处理上下文中运行可能是必要的或有利的。作为一具体示例,默认地,脚本可调用在一特定进程中运行的组件。然而,该组件可能不与当前进程兼容。例如,该组件可能依赖对于进程不可用的功能 库,或者也许该组件可能并不像该进程的上下文中所预期地那样来运行。另选 地或另外地,该脚本可能是由在该进程的上下文中不可信的作者起草的。在这 些情况的任一种中,可更改脚本语言来指定组件将要在一不同的进程中运行。 另外,如果组件将要在一默认的安全上下文之外运行,则该安全上下文也将会 在脚本语言中被标识。因此,只要一脚本组件的处理上下文在默认的处理上下文之外,该脚本也 被改变来反映新的处理上下文。用此方式更改脚本可能是一个麻烦的过程。简明概要访问和解释脚本来标识一可执行组件。处理上下文配置文件可然后被用来 标识用于所标识的可执行组件的适当的处理上下文。处理上下文的示例包括但 不限于,所标识的可执行组件运行于其中的进程、在运行之前要在该组件上执 行的一个或多个适配、和/或于其中运行该组件的安全上下文。处理上下文因此 不需要在实际的脚本本身中指定。提供本概要以便用简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概要并不旨在标识出所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。附图简述为了描述能够获得本发明的前述和其他优点和特征的方式,将通过参考在 附图中示出的其具体实施例来呈现以上简述的本发明的更详细描述。应该理 解,这些附图仅描述了本发明的典型实施例,因此不将其认为是对本发明的范 围的限制,本发明将通过使用附图以附加的特性和细节来描述,在附图中

图1示出了其中可采用本发明的原理的一合适的计算环境; 图2示出了用于在计算系统中标识用于运行脚本的特定处理上下文的方法 的流程图;图3示出了用于标识与所标识的可执行组件相关联的一个或多个处理上下文配置文件的方法的流程图;图4示出了与用于标识图2的特定处理上下文的方法相关联的处理流程; 图5A图解地示出了处理,在该处理中, 一脚本的多个组件在单个进程中运行,但是改变了第二组件的处理上下文来反映该第二组件的某些适配要在执行前发生;图5B图解地示出了处理,在该处理中, 一脚本的多个组件在单独的进程 中运行,且在之前之前对这些组件之一可能实施某些预处理适配或其他处理上 下文;以及图5C图解地示出了处理,在该处理中,多个组件在单独的进程中运行, 并且处理控制可在子进程中的连续组件之间传递而不需要将控制传回父进程。详细描述本发明涉及标识与由一脚本执行的一个或多个组件相关联的处理上下文, 而不必参考该脚本本身中的处理上下文标识。因此,如果处理上下文发生改变, 则脚本本身不必改变。相反,在标识处理上下文时参考了与每个组件相关联的一个或多个处理上下文配置文件。如果用于一脚本组件的处理上下文发生改 变,则只需更改配置文件,而非改变调用该组件的任何脚本。首先,将参考图l来描述本发明的原理可在其中操作的一示例计算系统。 然后,将参考后续的图2、 3、 4、 5A、 5B、 5C和5D来更详细地描述本发明的 原理。本发明的各实施例可包括包含如以下所更详细讨论的各种计算机硬件的 专用或通用计算机。图1示出了可被用来实现本发明的各特征的一示例计算系统100的示意 图。所描述的计算系统仅仅是这一合适的计算系统的一个示例,且并不旨在提 出关于本发明的使用范围和功能的任何限制。本发明也不应被解释为具有关于 图1中所示出的组件中的任何一个或其组合的任何依赖或需求。计算系统现在正逐渐采用各种各样的形式。计算系统可以是,例如手持式 设备、电器、膝上型计算机、台式计算机、大型机、或分布式计算系统。在此 说明书及权利要求书中,术语"计算系统"被广泛地定义为包括任何设备或系 统(或其组合),该设备或系统包括至少一个处理器,以及能够在其上具有由 处理器的计算机可执行指令的存储器。该存储器可采用任何形式并可取决于计 算系统的特性和形式。计算系统可分布在网络环境中,并且可包括多个组成计 算系统。参考图l,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是易失性的、非易失性的、或两者的某 种组合。易失性存储器的一个示例包括随机存取存储器(RAM)。非易失性存 储器的示例包括只读存储器(ROM)、闪存等等。术语"存储器"也可在此处 被用来指代非易失性大容量存储。这样的存储可以是可移动的或不可移动的, 并且可包括(但不限于)PCMCIA卡、磁盘和光盘、磁带等等。如此处所使用的,术语"模块"或"组件"可以指在计算系统上执行的软 件对象或例程。此处所描述的不同的组件、模块、引擎、以及服务可被实现为 作为协议的一部分的在计算系统上执行的对象或进程(例如,作为单独的线 程)。尽管此处所描述的系统和方法可用软件来实现,但是采用硬件以及软件 和硬件的组合的实现也是可能的并且是被构想的。在以下的描述中,参考由一个或多个计算系统执行的动作来描述本发明的 各实施例。如果这些动作用软件来实现,则执行该动作的相关联的计算系统的 一个或多个处理器响应于已执行了计算机可执行指令来引导计算系统的操作。 这样的操作的一个示例涉及对数据的操纵。计算机可执行指令(以及被操纵的 数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100通过例如网络110来与其他计算 系统进行通信的通信信道108。通信信道108是通信介质的示例。通信介质通 常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据 结构、程序模块或其他数据,并包括任何信息传递介质。作为示例而非限制, 通信介质包括诸如有线网络和直接连线连接等有线介质,以及诸如声学、RF、 红外线和其他无线介质等无线介质。此处所使用的术语计算机可读介质包括存储介质和通信介质两者。在本发明范围中的各实施例还包括用于承载或在其上存储计算机可执行 指令或数据的计算机可读介质。这样的计算机可读介质可以是可由通用或专用 计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、 ROM、 EEPROM、 CD-ROM或其他光盘存储、磁盘存储或其他磁存 储设备、或可被用来承载或存储采用计算机可执行指令或数据结构形式的所需 的程序代码装置并且可被通用或专用计算机访问的任何其他介质。当通过网络 或另一个通信连接(或者是硬连线、无线、或者是硬连线或无线的组合)来将 信息传输或提供给计算机时,该计算机适当地将该连接视作计算机可读介质。 因此,任何这样的连接都被适当地称为计算机可读介质。上述的各种组合也应 被包括在计算机可读介质的范围中。计算可执行指令包括例如使得通用计算机、专用计算机、或专用处理设备 执行某一功能或某组功能的指令和数据。尽管以对结构性特征和/或方法性动作 专用的语言描述了本主题,但要理解的是,在所附权利要求中定义的主题不一 定限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作是作为 实现权利要求的示例形式而公开的。图2示出了用于在计算系统中标识用于运行脚本的特定处理上下文的方法 200的流程图。计算系统可如上所述地针对图1的计算系统100来构成,然而 能够执行脚本和以其他方式适用于执行本发明的各原理的任何计算系统也是 足够的。图4示出了处理流程400,包括可被用来实现图2的方法200的各种 组件和数据。因此,图2的方法200将频繁地参考图4的处理流程400来描述。首先,访问要执行脚本(动作201)。该脚本可通过接收来自另一个计算 系统的脚本、或通过访问来自该计算系统内部的源的脚本来访问。例如,如果 方法200在图1的计算系统100的上下文中执行,则该脚本可从存储器204访 问。参考图4,访问模块401访问脚本411并将脚本411提供给进一步沿着处 理流程400的各组件。用于访问脚本的各机制在本领域内是公知的,因此不在 此处详细描述。脚本411可包括脚本命令行、多个脚本命令行和/或也许甚至只 有一个或多个命令行的一部分。例如,脚本411可以仅仅是脚本流水线命令的 一部分。接着,解释脚本(动作202)来标识要调用的一个或多个可执行组件(动作203)。有大量常规的方式来解释脚本由此来标识要调用的一个或多个组件。本发明的各原理与那些常规方式中的任一种相一致,并且也很可能与尚待开发 的脚本解释技术兼容,只要该脚本解释允许标识正由该脚本调用的组件。参考图4,组件标识模块402从脚本访问模块401接收对脚本411的控制来允许迸 一步沿着处理流程400提供组件标识符和相关联的参数(共同被称为元素 412)。回头参考图2,对于每个所标识的可执行组件,执行用于发现在其中应至 少基于一个或多个处理上下文配置文件来执行脚本的处理上下文的、功能性 的、面向结果的步骤。虽然此步骤可通过使用达到此目的的相对应的动作的任 何组合来执行,但步骤210被示为通过使用图2中的组成动作211和212来完 成。具体而言,标识与所标识的可执行组件相关联的一个或多个处理上下文配 置文件(动作211)。图3示出了一种所构想的、用于标识与所标识的可执行 组件相关联的一个或多个处理上下文配置文件的方法300。标识出所标识的可 执行组件的一个或多个特性与一个或多个配置文件之间的相关(动作301)。 然后,相关的一个或多个配置文件被标识为一个或多个处理上下文配置文件 (动作302)。例如,也许单单可执行组件的名称就足以标识一个或多个相关联的处理上下文配置文件。组件依赖关系也可能在标识相关联的处理上下文配置文件时有用。例如,组件可为了依赖于一特定功能库以便正确地执行。作者、创建曰期、 版本号等等也可以是被用来标识一个或多个相关联的配置文件的相关特性。参考图4,处理上下文标识和访问模块403使用由组件标识模块402提供的组件 标识符和参数来进一步向下沿着处理流程400提供配置文件413A和相关联的 组件标识符413B (其在某些实施例中可被包括在配置文件中)。处理上下文配置文件然后被用来标识相关联的组件的处理上下文。该组件 的处理上下文可包括例如下列各项中的任何一个或多个于其中运行所标识的 可执行组件的进程的标识、在运行之前要在所标识的可执行组件上执行的一个 或多个适配(例如,改变一个字段的名称或类型,或执行某些计算)、于其中运行所标识的可执行组件的安全上下文(例如,用户安全上下文的标识、或于其上运行该组件的机器的标识)。参考图4,处理上下文确定模块404使用配 置文件413A和组件标识符413B来为每个组件标识处理上下文414A。现在将提供若干具体的示例来阐明以上更概括地所描述的各原理。在第一 示例中,考虑包括三个组件,即C1接着C2接着C3的顺序执行的脚本。这可 由序列C1|C2|C3来表示。现在假设对组件C2做出了使其不再可以或可能使该 组件在和组件Cl和C2相同的进程中运行的某些改变。在那种情况下,如果 用一种可扩展标记语言(XML)格式来表示,则对应于组件C2的处理上下文 配置文件可如下表示。<CMDName= "C2" ><OutOfProcess>True</OutOfProcess> </CMD>对这一配置文件的使用使改变配置文件的处理上下文容易得多。例如,如 果改变组件C2使得在与组件Cl和C3相同的进程中运行组件C2再一次是有 利的,则可再次改变处理上下文配置文件来反映此改变而不是改变引用组件 C2的所有脚本。例如,可改变配置文件来表示如下<CMDName= "C2" ><OutOfProcess>False</OutOfProcess> </CMD>在此示例中,配置文件可按照组件的名称来标识。然而,如先前所提及的, 该配置文件可按照诸如作者、创建日期等该组件的其他特性来标识。如以上所提及的,处理上下文可涉及比组件是在进程中还是进程外运行多 得多的内容。例如,采用指定对应于组件C2的一复杂得多的处理上下文的以 下配置文件<CMDName= "C2" ><Version>V2</V ersion><Adaptor>LMD=>MD</Adaptor><OutOfProcess>True</OutOfProcess><RunAsUser>Bob</RunAsUser><HostComputer>Bobs</HostComputer> </CMD>此处,对应于组件C2的处理上下文配置文件指定需要什么版本的解释器 以在该进程中运行。因此,如果组件C2需要一个与组件C1和C3不同版本的 解释器,则组件C2将会在进程之外运行,除非不同版本的解释器在相同的进 程中是可能的。"Adaptor (适配器)"元素指定在执行该组件之前要执行的一适配。此 处,LMD (最后修改日期)字段被改为MD (修改日期)字段。这允许组件 C2用允许该组件在组件执行序列中执行的方式来修改。参考图4,适配组件 405可根据在处理上下文414A中指定的任何适配来修改由组件标识符414B所 标识的组件。适配模块405然后将处理上下文415A和经适配的组件415B提 供给调用组件406。"OutOfProcess (进程外)"字段指定组件C2将在进程之外运行。 "RimAsUser"字段指定组件C2将具有与在所标识的用户做出相同的请求时所 准许的相同的安全上下文。在此示例情况下,只要在Bob请求时系统允许该操 作,则系统就会允许正由组件C2执行的所有操作。"HostComputer (主计算机)"字段指定组件C2在其上执行的主计算机。 在此情况下,组件C2将要在被标识为"Bobs"的主计算机上运行。如先前所 提及的,因为"RunAsUser (作为用户运行)"字段指定"Bob",所以该执 行使用该主计算机上对应于Bob的安全上下文来执行。回头参考图2,调用组件然后在所标识的处理上下文中调用所标识的可执 行组件(动作2B)。此调用可在与解释了脚本的计算系统相同或不同的计算 系统上执行。例如,在以上的示例中,如果主计算机"Bobs"不是与运行调用模块406的计算机相同的计算机,则调用模块406可执行有助于在被标识为 "Bobs"的适当的主计算机上远程地调用组件C2的任何动作。无论组件是否 被远程地调用,调用模块406都可返回组件C2执行的结果。图5A示出了一个示例,在其中,所有三个组件C1、 C2和C3在同一个进 程中运行,但组件C2被适配以便与在同组件Cl和C3相同的进程中运行兼容。 每个进程例示了其自己的用于解释脚本的解释器。图5B示出了在其中组件C2 在进程之外运行的一个示例。在此情况下,组件C2还可如在配置文件中所指 定地被适配。图5C示出了在其中四个组件如由序列C1|C2|C31C4所表示地顺序执行的 一个示例。在此情况下,组件C1和C4在进程A中运行,而组件C2和C3在 进程B中运行。在此情况下,处理上下文确定模块404可使用对应于组件C2 和C3的处理上下文配置文件来标识该组件不应在进程A中运行。处理上下文 确定模块404然后做出另一个关于组件C2和C3是否是兼容的使得其可在进 程A之外的相同的进程中运行的判定。例如,如果组件C2和C3依靠不能在 相同的进程中运行的不同的功能库,则组件C2和C3将不得不在进程A之外 的不同的进程中运行。然而,在此情况下,处理上下文确定模块404决定了组件C2和C3可在 相同的进程B中运行。在这样的情况下,因为在将处理控制传递回到进程B 以便执行组件C3之前,处理控制不需要从组件C2返回到进程A,所以有处 理效率。相反,在相同的进程B中,组件C2的执行可平滑地过渡到组件C3 的执行。因此,本发明的各原理提供了一种用于指定和更改执行脚本组件的处理上 下文的,而不需要更改脚本本身来指定处理上下文的灵活的机制。本发明可用其他具体形式来实施而不背离其精神或本质特征。所描述的各 实施例在所有方面都被认为是说明性的而非限制性的。本发明的范围因此由所 附权利要求而不是由先前的描述来指示。落入权利要求的等效技术方案的含义 和范围中的所有变化都被包含在其范围中。
权利要求
1.一种用于标识用于在计算系统中运行脚本的特定处理上下文的方法,所述方法包括解释脚本来标识要调用的可执行组件的动作;标识与所标识的可执行组件相关联的一个或多个处理上下文配置文件的动作;以及使用所述一个或多个处理上下文配置文件来标识用于所标识的可执行组件的处理上下文的动作。
2. 如权利要求1所述的方法,其特征在于,所述处理上下文包括在其中 运行所标识的可执行组件的进程的标识。
3. 如权利要求1所述的方法,其特征在于,所述处理上下文包括在运行 之前要在所标识的可执行组件上执行的一个或多个适配。
4. 如权利要求1所述的方法,其特征在于,所述处理上下文包括在其中 运行所标识的可执行组件的安全上下文。
5. 如权利要求4所述的方法,其特征在于,所述安全上下文包括用户安 全上下文的标识。
6. 如权利要求1所述的方法,其特征在于,所述解释的动作是由可执行 解释组件来执行的。
7. 如权利要求1所述的方法,其特征在于,所述标识与所标识的可执行 组件相关联的一个或多个处理上下文配置文件的动作包括标识所标识的可执行组件的一个或多个特性与一个或多个配置文件之间 的相关的动作;以及将所述相关的一个或多个配置文件标识为所述一个或多个处理上下文配 置文件的动作。
8. 如权利要求7所述的方法,其特征在于,所述一个或多个特性至少包 括所标识的可执行组件的名称。
9. 如权利要求7所述的方法,其特征在于,所述一个或多个特性至少包 括所标识的可执行组件的依赖关系。
10. 如权利要求l所述的方法,其特征在于,还包括在所标识的处理上下文中调用所标识的可执行组件的动作。
11. 如权利要求IO所述的方法,其特征在于,在所标识的处理上下文中 调用所标识的可执行组件的动作是在与执行所述解释动作的计算系统不同的 计算系统上执行的。
12. 如权利要求10所述的方法,其特征在于,在所标识的处理上下文中 调用所标识的可执行组件的动作是在与执行所述解释动作的计算系统相同的 计算系统上执行。
13. —种包括在其上具有计算机可执行指令的计算机可读介质的计算机程 序产品,所述计算机可执行指令用于执行一种标识用于在计算系统中运行脚本 的特定处理上下文的方法,所述计算机可执行指令包括用于访问脚本的至少一条计算机可执行指令;用于解释所述脚本来标识一可执行组件的至少一条计算机可执行指令;以及用于发现在其中应至少基于一个或多个处理上下文配置文件来执行所述 脚本的处理上下文的至少一条计算机可执行指令。
14. 如权利要求13所述的计算机程序产品,其特征在于,所述处理上下 文包括以下各项的至少一个在其中运行所标识的可执行组件的进程的标识;在运行之前要在所标识的可执行组件上执行的一个或多个适配;或者 在其中运行所标识的可执行组件对的安全上下文。
15. 如权利要求13所述的计算机程序产品,其特征在于,所述处理上下文包括以下各项的至少两个在其中运行所标识的可执行组件的进程的标识;在运行之前要在所标识的可执行组件上执行的一个或多个适配;或者 在其中运行所标识的可执行组件对的安全上下文。
16. 如权利要求13所述的计算机程序产品,其特征在于,所述计算机可 执行指令还包括-用于在所发现的处理上下文中调用所标识的可执行组件的至少一条计算 机可执行指令。
17. 如权利要求13所述的计算机程序产品,其特征在于,所述一个或多 个计算机可读介质是物理存储器和/或存储介质。
18. —种或多种其上具有计算机可执行指令的计算机可读介质,所述指令在由计算系统的处理器执行时使所述计算系统在该计算系统的系统存储器中 例示下列各项-被配置成访问和解释脚本来标识一可执行组件的解释组件;以及 被配置成使用与所标识的可执行组件相关的一个或多个处理上下文配置文件由此来标识用于所标识的可执行组件的处理上下文的处理上下文确定模块。
19. 如权利要求18所述的一个或多个计算机可读介质,其特征在于,所述处理上下文包括下列各项的至少一个在其中运行所标识的可执行组件的进程的标识;在运行之前要在所标识的可执行组件上执行的一个或多个适配;或者 在其中运行所标识的可执行组件对的安全上下文。
20.如权利要求18所述的计算机可读介质,其特征在于,所述计算机可读介质是物理存储器和/或存储介质。
全文摘要
访问和解释脚本来表示一可执行组件。处理上下文配置文件可然后被用来标识用于所标识的可执行组件的适当的处理上下文。处理上下文的示例包括但不限于,所标识的可执行组件将要在其中运行的进程、在运行之前要在该组件上执行的一个或多个适配、和/或于其中运行该组件的安全上下文。处理上下文因此不需要在实际的脚本本身中指定。所标识的各组件然后可在所标识的处理上下文中执行。
文档编号G06F17/00GK101336429SQ200680051784
公开日2008年12月31日 申请日期2006年12月28日 优先权日2006年1月25日
发明者B·G·帕耶特, D·J·黄, J·P·斯诺弗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1