在分布式系统中逐步实现声明性模型的制作方法

文档序号:6477649阅读:201来源:国知局
专利名称:在分布式系统中逐步实现声明性模型的制作方法
在分布式系统中逐步实现声明性模型
背景
背景和相关技术
随着计算机化的系统日益普及,此类系统内采用的软件和硬件的复杂度也曰 益增加。 一般而言,对表面上愈加复杂的软件的需要持续增长,这进一步趋向于成 为推动硬件更大进步的动力之一。例如,如果应用程序对给定硬件系统要求太高, 则该硬件系统可能效率低下地操作,或者完全无法处理该应用程序。然而,应用程 序开发的目前趋势通过至少部分地使用分布式应用程序已移除了许多这些类型的 硬件约束。 一般而言,分布式应用程序包括在若干不同的硬件组件上——往往是在 层叠环境中的不同计算机系统上执行的组件。
在分布式应用程序下,不同的计算机系统可在网络上向彼此通传各种处理结 果。由此,组织将采用分布式应用服务器来管理众多不同的计算机系统上的若干不 同的分布式应用程序。例如,用户可采用一个分布式应用服务器来管理在一组不同 的计算机系统上执行的电子商务应用程序的操作。用户也可使用分布式应用服务器 来管理在相同的或甚至是不同的一组计算机系统上的客户管理应用程序的执行。
当然,通过分布式应用服务器管理的每个相应的分布式应用又可具有在其他 不同的计算机系统上执行的若干不同的模块和组件。因此,可以领会,虽然通过若 干不同的计算机系统来组合处理功率的此能力可能是有利的,但对于这样的广泛分
布的应用程序模块,存在其他缺点。例如,组织通常期望分布式应用服务器最优地 在可用资源上运行分布式应用,并考虑变化的需求模式和资源可用性。
遗憾的是,常规的分布式应用服务器通常被有缺陷地装备(或完全没有被装 备)成自动处理和管理对于分布式应用程序的每个给定模块可能发生的所有不同问 题。例如,用户可具有每当有促销时或在每年相同的节日期间就例行公事地获得大 量订单的在线商店应用程序。在一些情形中,用户可能期望分布式应用服务器分析 并预测对给定的分布式应用程序的各个组件或模块的这些波动需求。
具体而言,组织可能期望分布式应用服务器交换各种资源,从而高需求进程 能由可能较不忙碌的其他系统上的软件或硬件组件来处理。然而,此类适应性如果
6不能用常规的分布式应用服务器平台来执行则可能是困难的。具体地,大多数常规 的分布式应用服务器平台被有缺陷地装备成或不能标识并恰当地管理分布式应用 程序的各组件之间的不同需求模式。这可能至少部分是由于管理可具有许多分布式 组件和子系统和/或其他的传统或外部系统的应用程序的复杂性,这些分布式组件 和子系统中有许多是长期运行的工作流。
此外,常规的分布式应用程序服务器一般未被配置成用于高效縮放性。例如, 大多数分布式应用服务器被配置成管理给定的分布式应用程序的精确指令,诸如精 确引用和/或组件寻址方案。即,应用程序的各组件之间往往只有很少或没有"宽 松耦合"。由此,当服务器的管理员希望将某些模块或组件重新部署到另一个服务 器上或另一组计算机系统上时,存在加重的出错潜在可能性,在可能涉及大量不同 计算机系统和/或模块的场合尤其如此。在某些新模块或组件引用未向前传递至需 要它们的每一处时、或如果它们被不正确地向前传递时,就可能出现这种出错潜在 可能性。
会进一步加重这种出错潜在可能性的分布式应用程序的一方面是分布式应用 服务器可能正管理若千不同的分布式应用程序的概念,其中每一个分布式应用程序 在不同的平台上执行。即,在相应的分布式应用程序能够接受并实现改变之前,分 布式应用服务器可能需要为每个不同的平台翻译不同的指令。由于这些和其他复杂 性,分布式应用程序趋向于对需求高峰相当敏感。
这种对需求高峰的敏感性可能意味着各种分布式应用程序模块在能检测到出 错之前会继续在次优水平上操作一长时段。在某些情形中,分布式应用服务器的管 理员可能甚至未采取校正行动,因为尝试这样做可能会导致甚至更大数量的出错。 结果,分布式应用程序模块可潜在地变得在低效率操作模式中卡住,诸如持续重启 自身,而无法在分布式应用程序的寿命期间得到校正。相应地,现有分布式应用程 序和分布式应用程序服务器的管理存在许多要解决的难题。
简要概述
本发明的各个实现提供了被配置成通过分布式应用程序服务器来自动实现分 布式应用程序的操作的系统、方法和计算机程序产品。在至少一种实现中,例如, 分布式应用程序服务器包括实现装置集合和分析装置集合。通过分布式应用程序的 每个给定模块的因平台而异的驱动器,实现装置部署高级指令集或声明性模型来在 相应平台上创建给定的分布式应用程序模块,而分析装置按需自动监视并调整声明
7性模型。通过服务器组件的声明性模型至分布式应用程序的这种松散耦合以及自动 监视和调整可允许服务器能更好地管理需求、资源、或使用高峰、和/或其他形式 的分布式应用程序行为波动。
相应地, 一种在执行期间使用声明性模型来自动实现分布式应用程序中一个 或更多个高级指令集的方法可涉及标识对储存库中的一个或更多个相应声明性模 型的一个或更多个修改。该一个或更多个声明性模型包括关于分布式应用程序的一 个或更多个操作的高级指令。该方法还可涉及精炼该一个或更多个声明性模型以包 括关于该分布式应用程序的操作的上下文信息。此外,该方法可涉及将一个或更多 个经精炼的声明性模型翻译成将由分布式应用程序的容器实现的一个或更多个命 令。此外,该方法可涉及将经翻译的命令发送给一个或更多个应用容器。经翻译的 命令随后被该容器接收并被用于确定和配置该容器中的分布式应用程序的行为。
此外, 一种在执行期间使用声明性模型来自动实现分布式应用程序中一个或 更多个高级指令集的附加或替换方法可涉及从储存库接收一组新的一个或更多个 声明性模型。该新的一个或更多个声明性模型包括关于分布式应用程序的操作的高 级指令。该方法还可涉及通过实现装置和一个或更多个应用容器来实现该新的一个 或更多个声明性模型。结果,第一低级命令集被准备好并被发送给该一个或更多个 应用容器以供执行。
此外,该方法可涉及经由一个或更多个分析装置来标识新的一个或更多个声 明性模型中的改变。改变反映了从一个或更多个应用容器接收到的分布式应用程序 的性能信息。此外,该方法可涉及通过实现装置和一个或更多个应用容器来实现一 个或更多个声明性模型的经更新版本。这样,第二低级命令集被准备好并被发送给 该一个或更多个应用容器以供基于对该一个或更多个声明性模型的改变来执行。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概 念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于 帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显 而易见的,或可通过对本发明的实践领会。本发明的特征和优点可通过在所附权利 要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以 下描述和所附权利要求书变得更加完全明显,或可通过对下文中所述的本发明的实 践来领会。
8附图简述
为了描述可获得本发明的上述和其它优点和特征的方法,将通过引用附图中 示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理 解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发 明将通过使用附图用附加特征和细节来描述和说明,在附图中


图1A图解了根据本发明的实现的被配置成使用一个或更多个声明性模型自 动实现分布式应用程序操作的系统的概览示意图IB图解了图1A中所示的执行性组件和因平台而异的驱动器的更详细示意
图2图解根据本发明的实现的在执行期间使用声明性模型来实现分布式应用 程序中的一个或更多个高级指令集的方法中的一系列动作的流程图3图解根据本发明的实现的在执行期间使用声明性模型来实现分布式应用 程序中的一个或更多个高级指令集的附加或替换方法的附加流程图。
详细描述
本发明的各个实现延伸至被配置成通过分布式应用程序服务器来自动实现分 布式应用程序的操作的系统、方法和计算机程序产品。在至少一种实现中,例如, 分布式应用程序服务器包括实现装置集合和分析装置集合。通过分布式应用程序的 每个给定模块的因平台而异的驱动器,实现装置部署高级指令集或声明性模型来在 相应平台上创建给定的分布式应用程序模块,而分析装置按需自动监视并调整声明 性模型。通过服务器组件的声明性模型至分布式应用程序的这种宽松耦合以及自动 监视和调整可允许服务器能更好地管理需求、资源、或使用高峰、和/或其他形式 的分布式应用程序行为波动。
相应地,从以下说明书和权利要求书将领会,本发明的实现可提供管理分布 式应用程序的数个不同优点。这至少部分是由于实现诸如由程序开发者创建的那些 高级指令就像实现低级指令(例如,可执行命令)那样容易,低级指令可由在因平 台而异的基础上配置并管理分布式应用模块的分布式应用容器来执行。例如,本发 明的实现提供了用于编写声明性模型、检测声明性模型的改变、以及调度恰适的模 型精炼进程以使得经精炼的声明性模型指令能被翻译的机制。
进一步实现提供了用于将经精炼的模型翻译成能最终执行的指令/命令的机 制。相应地,应领会,这些和其他特征可显著简化并规格化管理潜在可能位于若干不同平台上的一个或多个不同的分布式应用程序的分布式应用程序服务器的管理。 具体而言,服务器管理员可容易地配置宽范围的分布式应用操作,而不一定需要了 解给定运行时环境的所有配置细节、和/或给定的分布式应用程序的具体实现平台。 现在参考附图,图1A图解了本发明的至少一种实现的概览示意图,其中分布 式计算机化环境/系统100中的分布式应用服务器被用于在正进行、自动基础上实
现一个或更多个分布式应用程序107中的高级指令。具体而言,图1A示出了包括 实现装置105和分析装置110的系统分布式系统100。 一般而言,实现装置105和 分析装置110包括可在一个或更多个分布式应用程序服务器内使用的一个或更多 个一般化计算机可执行组件集合。这些一般化计算机可执行组件又被配置成管理一 个或更多个应用容器135中的一个或更多个不同的分布式应用程序107。
例如,图1A示出在至少一种实现中,实现装置105可包括工具组件25。 一 般而言,工具组件125包括可由程序开发者或服务器管理员用来创建一个或更多个 声明性模型153的一个或更多个计算机可执行程序集合。例如,用户(例如,分布 式应用程序开发者)可使用一个或更多个开发者工具(例如,125)来创建声明性 模型153。作为初步事项,应领会,本文中对任何因平台(或另外的操作系统)而 异的组件或模块/程序的任何引用仅仅是为便于解释的方式作出的。具体地,本文 中对任何因组件、模块或应用而异的特征的任何引用将被理解为能够被应用于宽范 围的操作环境、系统和/或平台。
在任何情形中并且如先前提及的,声明性模型153包括一个或更多个关于特 点分布式应用程序107的操作的高级指令集。这些高级指令一般描述分布式应用程 序中的一个或更多个模块的特定操作/行为意图,但不必描述实现这些特定操作/行 为所需的步骤。例如,声明性模型153可包括诸如关于特定模块应在什么计算机系 统上运行、以及应被允许运行该特定模块的计算机系统的特性(例如,处理速度、 存储容量等)的信息。
尽管声明性模型153可最终包括诸如特定端点的统一资源标识符(URI)地址 等特定信息,但任何声明性模型(例如,153)的初始创建将通常得到将更可能包 括一般化信息的文档。此类一般化信息可包括其中可执行模块的域名、可与模块的 执行相关联的不同许可集合、某些组件是否应完全连接等。例如,声明性模型153 可描述使一个web服务连接到另一个web服务的意图。
在被最终解读和/或翻译时,这些一般化意图指令可得到非常具体的指令/命 令,这取决于平台或操作环境。例如,声明性模型153可包括指令,以使得这些指令在被解读时,部署在一个数据中心的web服务可被配置成如果一个其他web服 务在附近则使用TCP传输。这些指令还可包括告知所开发的web服务若该其他web 服务在防火墙外部(即,不在附近)则替换地使用因特网中继连接的指令。
尽管指示了对某种连接的偏好,但声明性模型(例如,"声明性应用模型") (153)将通常把连接协议的选取留给模型解读器。具体而言,声明性模型创建器 (例如,工具组件125)可一般地指示对声明性模型153中连接的偏好,但声明性 模型解读器(例如,执行性组件115和/或因平台而异的驱动器130)可被配置成取 决于部署特定模块的场合而选择不同的通信传输。例如,当各模块处于相同机器上、 在集群中、或通过因特网连接时,模型解读器(例如,执行性组件115和/或因平 台而异的驱动器130)可准备更具体的指令来区分各模块之间的连接。
类似地,另一个声明性模型(例如,"声明性策略模型")(153)可基于更 终端使用策略来描述可操作特征。例如,与分布式金融应用程序联用的声明性策略 模型可指示1秒里不超过100条交易请求可在连接上被发送给经纪公司。然而,策 略模型解读器(例如,执行性组件115和/或因平台而异的驱动器130)可被配置成 选择恰适的策略,诸如令超出的请求排队以实现所描述的意图。
在任何情形中,图1A示出一旦创建了特定声明性模型153,工具组件125随 后就将声明性模型153传递(例如,写入)到储存库120中。在至少一种实现中, 任何时间储存库120接收到对声明性模型153的任何种类的修改(例如,新写入、 或来自分析装置110的修改),执行性组件115将检测到这一点。例如,储存库 120可向执行性组件115发送一个或更多个更新或警示。然而,在附加或替换实现 中,执行性组件115可被配置成通过在某种特定调度或甚至连续基础上与储存库 120同步来标识任何此类修改、创建、或改变。
在任一情形中,执行性组件115最终标识、接收并精炼储存库120中的声明 性模型153 (和/或对其的改变),从而它们能被因平台而异的驱动器130翻译。一 般而言,"精炼"声明性模型153包括添加或修改声明性模型中包含的任何信息, 以使得声明性模型指令足以完全被因平台而异的驱动器130翻译。由于声明性模型 153可被人类用户相对宽松地写入(即,包含一般化意图指令或请求),因此可能 存在执行性组件需要修改或补充声明性模型的不同程度或范围。
由此,图1B图解了关于经由实现装置105执行的精炼和翻译过程的附加细节。 具体而言,图1B图解了可按照最终作为低级指令来实现各种声明性模型153而发 生的数个附加过程。为此,图1B示出了执行性组件115包括一个或更多个不同的
11组件,它们可被用于使用逐步详细技术来精炼声明性模型153。
例如,图1A示出了执行性组件115包括调度处理组件117和精炼组件119。一般而言,调度处理组件117使得执行性组件115能标识储存库中对任何声明性模型的改变。例如,调度处理组件117可包括用于从储存库120中内建的相应接口接收通信的一个或更多个接口。补充地或替换地,调度处理组件117包括用于同步储存库内的声明性模型153数据的一个或更多个可执行指令集。
一旦检测到任何改变(无论是新的声明性模型还是对其更新),执行性组件115随后对任何如此标识的声明性模型(或修改)开始逐步详细的过程。 一般而言,逐步详细涉及精炼特定声明性模型153 (即,添加或修改数据)直至不存在不清楚,并直至细节足以使因平台而异的驱动器130能消耗/翻译它们。执行性组件115至少部分地使用精炼组件119来执行逐步详细,精炼组件119"精炼"声明性模型153数据。
在至少一种实现中,执行性组件115作为使用来自特定库(未示出)的活动集合的工作流来实现此逐步详细或"精炼"过程。在一种实现中,执行性组件115
还预先提供该库,尤其是出T针对声明性模型进行工作的目的。此特定工作流中可使用的一些示例活动可包括"读模型数据"、"写模型数据"、"寻找驱动"、"调用驱动器"等。与这些或其他类型的调用相关联的动作在以下更详细地描述为由执行性组件115的精炼组件119部分来实现。
具体地,在至少一种实现中,精炼组件119精炼声明性模型153 (或对其的更新)。精炼组件119通常通过基于对声明性模型153中的元素之间的依存性(例如,一个web服务连接到另一个)的知识添加信息来精炼声明性模型153。精炼组件119还可通过添加某些形式的上下文意识来精炼声明性模型153,诸如通过添加关于用于部署分布式应用程序107的应用容器135的可用库存的信息。此外,精炼组件119可被配置成填充关于计算机系统指派的缺失数据。
例如,精炼组件119可标识将被用于实现声明性模型153的数个不同模块,其中两个模块不需要特定计算机系统地址或操作要求。精炼组件119由此可将分布式应用程序107模块指派给由恰适的分布式应用程序容器135安排的可用计算机系统,并且相应地在经精炼的声明性模型153a (或其分段)中记录该机器信息。由此,精炼组件119可推理在经精炼的声明性模型153中填充数据的最佳途径。例如,如先前所描述的,执行性组件115的精炼组件119可基于连接接近性来确定并决定对端点使用什么传输,或者基于处理所要求的预期高峰恰适的因素来确定和决定如
12何分配分布式应用程序模块。
在附加或替换实现中,精炼组件119可计算声明性模型153中的相关数据。 例如,精炼组件119可基于对机器的分布式应用程序模块指派来计算相关数据。由
此,精炼组件119还可计算端点上的RUI地址,并将相应的URI地址从提供方端 点传播至消费者端点。此外,精炼组件119可评估声明性模型153中的约束。例如, 精炼组件119可被配置成检查两个分布式应用程序模块是否可实际上被指派给相 同的机器,若否,则精炼组件119可精炼声明性模型153a以进行校正。
在向给定的声明性模型153添加了所有恰适数据(或以其他方式修改/精炼) (以创建模型153a)之后,精炼组件119可最终确定经精炼的声明性模型153a, 以使得其能被因平台而异的驱动器130翻译。为了最终确定或完成经精炼的声明性 模型153a,精炼组件119可以例如将声明性模型153划分成分段,这些分段可被 任一个或多个因平台而异的驱动器130作为目标。为此,精炼组件119可用其目标 驱动器(例如,因平台而异的驱动器130的地址)来标记每个声明性模型153a (或 其分段)。此外,精炼组件119可验证声明性模型153a实际上是否能被因平台而 异的驱动器130翻译,若如此,则将经精炼的声明性模型153a (或其分段)传递 给特定的因平台而异的驱动器130以进行翻译。
在任何情形中,图1B示出了因平台而异的驱动器130通过翻译组件131来翻 译这些指令。 一般而言,翻译组件将经精炼的声明性模型153a (和/或其分段)翻 译成一个或更多个因平台而异的指令/命令集合133。例如,图1B示出了因平台而 异的驱动器130可创建能在特定操作系统或操作环境中执行、和/或将被特定应用 容器135理解的命令式指令/命令集合133。在一种实现中,经精炼的声明性模型 153a的翻译可导致创建文件、添加虚拟目录、将设置写入配置文件等。
无论翻译组件131执行的什么动作都将针对特定平台或操作环境被剪裁。具 体而言,因平台而异的驱动器(例如,经由翻译组件131)可根据对与一个或更多 个应用容器135相对应的给定平台/操作环境的深度的、因平台而异的配置知识(例 如,它们在其中运行的操作系统的版本)以及容器实现技术来翻译经精炼的声明性 模型。例如,对于微软视窗操作环境,某些容器实现技术可包括用于主存 "WCF"——视窗通信基础——服务模块的"IIS"——因特网信息服务、或视窗 激活服务。(然而,如先前所提及的,对任何视窗或微软组件、模块、平台、或程 序的任何具体引用是仅作为示例的)。
结果,由根据组件125和/或精炼组件119放入声明性模型的一般化或补充指
13令最终指导一个或更多个应用容器135中的一个或更多个分布式应用程序107的操 作实现。具体而言, 一个或更多个分布式应用容器135通过执行从因平台而异的驱 动器130接收到的命令/指令133来执行声明性模型153。为此,分布式应用容器 135可用新的声明性模型153来替换或更新已被替换或修订的任何先前模块。此外, 分布式应用容器135执行模块和/或组件的最新版本,诸如正常完成的版本,包括 新的指令/命令133中描述的那些版本、以及任何数目的不同计算机系统上的版本。
除了前述内容以外,分布式应用程序107可通过实现装置105反向提供关于 执行和性能的各种操作信息。例如,本发明的实现规定了分布式应用程序107通过 因平台而异的驱动器130反向发回关于各种执行或性能指示符的一个或更多个事 件流137。在一种实现中,分布式应用程序107可在连续的、正进行的基础上发出 事件流137,而在其他实现中,分布式应用程序107在调度基础上发送事件流(例 如,基于来自驱动器130的调度请求)。因平台而异的驱动器130又将一个或更多 个事件流137传递到分析装置110以分析、调谐、和/或其他恰适的修改。
具体而言,并且如将在本文中更全面地理解的,分析装置110聚集、相关、 或以其他方式过滤相关数据以标识各种分布式应用程序107的感兴趣趋势和行为。 分析装置IIO还可恰适地针对所标识的趋势修改相应的声明性模型153。例如,分 析装置IIO可修改声明性模型153以创建新的或以其他方式经修改的反映意图改变 的声明性模型153b,诸如克服了事件流137中标识出的问题。具体而言,如果当 前被指派的机器太过频繁地重启,则经修改的声明性模型153b可被配置成使得分 布式应用程序的给定模块能被重新部署在另一个机器上。
经修改的声明性模型153b随后被传递回储存库120中。如先前所提及的,执 行性组件115将标识新的声明性模型153b (或对先前的声明性模型153的修改) 并开始相应的精炼过程。具体地,执行性组件将使用精炼组件119来向经修改的声 明性模型153b添加任何必要数据,以创建诸如先前描述的经精炼的、经修改的声 明性模型。被重新精炼的、但经修改的声明性模型153b随后被传递到因平台而异 的驱动器130,在此其被翻译并传递给恰适的应用容器135进行处理。
相应地,图1A到1B (以及相应的文本)提供了用于自动实现分布式应用程 序内的高级指令的多种不同的示意图、组件、和机制。如先前所描述的,这可以全 部在无需服务器管理员对分布式应用程序及其容器的密切知识的情况下进行。
除了前述内容之外,本发明的各实现还可以借助于具有用于完成特定结果的 一系列动作和/或步骤的方法的一个或更多个流程图来描述。例如,图2和3图解
14了从服务器的观点而言用于自动实现分布式应用程序中的一个或更多个高级指令
集的附加或替换方法。图2和3的动作和/或步骤在以下参照图1A和1B的组件、
示意图和相应文本来更全面地描述。
例如,图2示出从服务器的观点而言用于在执行期间自动实现分布式应用程
序中的一个或更多个高级指令集的方法可包括用于标识一个或更多个声明性模型
的动作200。动作200包括标识对储存库中的一个或更多个相应声明性模型的一个 或更多个修改,该一个或更多个声明性模型包括关于分布式应用程序的一个或更多 个操作的高级指令。例如,如图1A和1B中所示,工具组件125可被用于创建声 明性模型153和/或将其传递到储存库120中。执行性组件115 (例如,经由调度处 理组件117)接收声明性模型153 (或对其的相应更新)并开始处理。
图2还示出从服务器的观点而言一种方法可包括用上下文信息精炼声明性模 型的动作210。动作210包括精炼所标识的一个或更多个声明性模型以包括关于分 布式应用程序的操作的上下文信息。例如,执行性组件115可执行任何数目的动作, 诸如填充声明性模型中的缺失数据、决定在模块之间的连接中使用什么传输、计算 声明性模型中的相关数据、评估声明性模型中的约束等。
此外,图2示出了从服务器的观点而言该方法可包括翻译经精炼的声明性模 型的动作220。动作220包括将一个或更多个经精炼的声明性模型翻译成将由分布 式应用程序实现的一个或更多个命令。例如,图1A和1B中的实现装置105包括 因平台而异的驱动器组件130,其接收与经精炼的声明性模型153a相对应的指令 并通过翻译组件131来翻译经精炼的声明性模型153a,以便向一个或更多个应用 容器135发送指令/命令集133。
此外,图2示出了从服务器的观点而言该方法可包括将经翻译的命令发送给 应用容器的动作230。动作230包括将经翻译的命令发送给一个或更多个应用容器, 其中经翻译的命令被接收和实现。例如,如图1A和1B中所示, 一旦翻译了指令 以创建因平台而异的指令/命令133,因平台而异的驱动器130就准备(例如,经由 翻译组件131)这些指令并将其发送给一个或更多个应用容器135,在此这些指令 被执行以配置和管理分布式应用程序。
除了以上内容之外,图3示出从服务器的观点而言用于自动实现一个或更多 个高级指令集的附加或替换方法可包括接收一组新的声明性模型的动作300。动作 300包括从储存库接收一组新的一个或更多个声明性模型,该新的一个或更多个声 明性模型包括关于分布式应用程序的操作的高级指令。例如,执行性组件115通过
15储存库120接收声明性模型113。这些声明性模型113若其是新的则可来自工具组 件125,或者诸如若它们响应于事件流137中的信息而被修改则可替换地经由分析 装置110而来。
图3还示出从服务器的观点而言该方法可包括通过应用容器来实现新的声明 性模型的动作310。动作310包括通过一个或更多个应用容器中的实现装置来实现 新的一个或更多个声明性模型,其中第一低级命令集被准备好并被发送给一个或更 多个应用容器以被执行。例如,图1A和1B示出了执行性组件115诸如经由调度 处理组件117和精炼组件119来准备经精炼的声明性模型153a信息集。因平台而 异的驱动器130随后将该信息翻译成专门指令/命令集133。这些专门指令/命令集 133随后通过在相应的应用容器135中的执行来配置和控制分布式应用程序107的 行为。
此外,图3示出了从服务器的观点而言一种方法可包括标识声明性模型中的 改变的动作320。动作320包括经由一个或更多个分析装置来标识新的一个或更多 个声明性模型中的改变,该改变反映了从一个或更多应用容器接收到的分布式应用 程序的性能信息。例如,图1B示出了应用容器135通过实现装置105的因平台而 异的驱动器130发回性能信息140。此信息随后被传递给分析装置110,该分析装 置IIO若恰适则可改变或更新声明性模型113以适应任何性能问题。如先前所讨论 的,事件流可标识服务器(或服务器上的模块)太过频繁地重启,且因此分析装置 可创建对声明性模型(或153b)的修改,其标识将该模块重新部署到另一个服务 器上。
此外,图3示出了从服务器的观点而言一种方法可包括将通过应用容器来实 现声明性模型的经更新版本的动作330。动作330包括通过实现装置和一个或更多 个应用容器来实现一个或更多个声明性模型的经更新版本,其中第二命令指令集被 准备好并被发送给一个或更多个应用容器以供基于对该一个或更多个新的声明性 模型的改变来执行。例如,图1B示出了实现装置105可接收经修改的声明性模型 153b。如同模型153那样,声明性模型153b随后可通过执行性组件115被检测到 并被精炼,执行性组件115随后将经精炼的、经修改的声明性模型153b指令传递 给因平台而异的驱动器130以进行翻译。如以前一样,分布式应用容器135随后执 行与经精炼的、经修改的声明性模型153b相对应的新的相应指令/命令,以重新配 置其相应应用容器中的分布式应用程序。
相应地,图1A到3提供了用于在服务器级别上自动实现高级指令的数个示意图、组件、和机制,这些高级指令最终通过应用容器被实现为低级指令。如本文中 所描述的,这些和其他优点使得服务器管理员能连续和自动地调整分布式应用程序 操作,而无需对特定分布式应用程序的平台要求和规则的密切知识。这样,本发明 的实现可跨分布式系统高度縮放,并且管理起来相对简单。
本发明的实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在 以下更详细地讨论。本发明的范围内的实施例也包括用于携带或其上储存有计算机 可执行指令或数据结构的计算机可读介质。这样的机器可读介质可以是可由通用或 专用计算机访问的任何可用介质。
作为示例而非限制,这样的计算机可读介质可包括RAM、 ROM、 EEPROM、 CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于携带或存储计 算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访 问的任何其他介质。当信息在网络或另一通信连接(硬连线、无线或硬连线或无线 的组合)上传输或提供给计算机时,计算机将连接完全视为计算机可读介质。因此, 任何这样的连接被适当地称为计算机可读介质。上述的组合也应被包括在计算机可 读介质的范围内。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备 执行某一功能或某组功能的指令和数据。尽管用结构特征和/或方法动作专用的语 言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特定特 征或动作。相反,上述特定特征和动作作为实现权利要求的示例形式公开。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在
所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要 求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应 被权利要求书的范围涵盖。
1权利要求
1.在具有被配置在分布式计算机化系统环境中以通过一个或更多个因平台而异的驱动器来管理一个或更多个分布式应用程序的一个或更多个实现装置以及一个或更多个分析装置的服务器上,一种在执行期间使用声明性模型来自动实现分布式应用程序中的一个或更多个高级指令集的方法,包括以下动作标识对储存库中的一个或更多个相应声明性模型的一个或更多个修改,所述一个或更多个声明性模型包括关于分布式应用程序的一个或更多个操作的高级指令;精炼所述一个或更多个声明性模型以包括关于所述分布式应用程序的操作的上下文信息;将所述一个或更多个经精炼的声明性模型翻译成将由分布式应用容器实现的一个或更多个命令;以及将所述经翻译的命令发送给一个或更多个应用容器,其中所述经翻译的命令被所述一个或更多个应用容器接收和执行以配置和控制所述分布式应用程序。
2. 如权利要求1所述的方法,其特征在于,还包括将所述一个或更多个声明 性模型存储在储存库中的动作,其中所述一个或更多个声明性模型可按需被检索。
3. 如权利要求1所述的方法,其特征在于,所述一个或更多个声明性模型描 述一个或更多个分布式应用程序操作意图,并且不包括用于实现所述分布式应用程 序操作意图的具体信息。
4. 如权利要求1所述的方法,其特征在于,所标识的一个或更多个修改标识 一个或更多个新的声明性模型。
5. 如权利要求1所述的方法,其特征在于,所标识的一个或更多个修改包括 对已存在的一个或更多个现有声明性模型的更改。
6. 如权利要求1所述的方法,其特征在于,还包括一旦标识了所述一个或更多个修改,执行性组件就调度向所述一个或更多个声明性模型的相应经修改形式添 加信息的精炼过程。
7. 如权利要求1所述的方法,其特征在于,精炼所述一个或更多个声明性模型还包括所述执行性组件添加关于所述一个或更多个声明性模型(153)中的任一 个中的各元素之间的依存性以及所述一个或更多个应用容器(135)的库存的信息。
8. 如权利要求1所述的方法,其特征在于,精炼所述一个或更多个声明性模 型还包括添加所述一个或更多个声明性模型中由因平台而异的驱动器进行翻译所 需的任何缺失数据。
9. 如权利要求8所述的方法,其特征在于,添加任何缺失数据包括标识所述 分布式应用程序的一个或更多个模块应在其上运行的特定计算机系统。
10. 如权利要求8所述的方法,其特征在于,添加任何缺失数据包括确定将 在所述分布式应用程序使用的所连接模块之间使用的一个或更多个传输协议。
11. 如权利要求8所述的方法,其特征在于,添加任何缺失数据包括标识所 述一个或更多个声明性模型中的至少之一内的任何相关数据。
12. 如权利要求11所述的方法,其特征在于,还包括以下动作标识所标识的相关数据的一个或更多个URI地址;以及在所标识的相关数据之间传播任何附加URI地址。
13. 如权利要求8所述的方法,其特征在于,添加任何缺失数据还包括标识 所述一个或更多个声明性模型中关于特定计算机系统上的一个或更多个分布式应 用程序模块的位置的任何约束。
14. 如权利要求8所述的方法,其特征在于,添加任何缺失数据还包括完成 所述一个或更多个声明性模型以使得它们能被因平台而异的驱动器翻译。
15. 如权利要求14所述的方法,其特征在于,完成将被翻译的所述一个或更多个声明性模型还包括在所述经精炼的、完成的一个或更多个声明性模型的每一 个中包括因平台而异的驱动器的地址。
16. 如权利要求15所述的方法,其特征在于,还包括所述执行性组件用每 个因平台而异的驱动器来验证所述一个或更多个声明性模型以确定所述一个或更 多个声明性模型中的每一个都能被翻译。
17. 在具有被配置在分布式计算机化系统环境中以通过一个或更多个因平 台而异的驱动器来管理一个或更多个分布式应用程序的一个或更多个实现装置以 及一个或更多个分析装置的服务器上,一种在执行期间使用声明性模型在一个或更 多个分布式应用容器中自动实现分布式应用程序中的一个或更多个高级指令集的 方法,包括以下动作-从储存库接收一组新的一个或更多个声明性模型,所述新的一个或更多个声 明性模型包括关于分布式应用程序的操作的高级指令;通过实现装置和一个或更多个应用容器来实现所述新的一个或更多个声明性 模型,其中第一低级命令集被准备好并被发送给所述一个或更多个应用容器以供执 行;经由-一个或更多个分析装置来标识所述新的一个或更多个声明性模型中的改 变,所述改变反映了从所述一个或更多应用容器接收到的所述分布式应用程序的性 能信息;以及通过所述实现装置和所述一个或更多个应用容器来实现所述一个或更多个声 明性模型的经更新版本,其中第二低级命令集被准备好并被发送给所述一个或更多 个应用容器以供基于对所述新的一个或更多个声明性模型的改变来执行。
18. 如权利要求17所述的方法,其特征在于,实现所述新的一个或更多个 声明性模型还包括准备与所述新的一个或更多个声明性模型相对应的经精炼的一个或更多个新 的指令的集合;以及验证所述一个或更多个新的指令的集合能被因平台而异的驱动器翻译成所述 第一低级命令集。
19. 如权利要求17所述的方法,其特征在于,实现所述一个或更多个声明性模型的所述经更新版本还包括准备与所述一个或更多个声明性模型的所述经更新版本相对应的新的经精炼 的一个或更多个经更新指令的集合;以及验证所述新的经精炼的一个或更多个经更新指令的集合能被因平台而异的驱 动器翻译成所述第二低级命令集。
20. 在具有被配置在分布式计算机化系统环境中以通过一个或更多个因平 台而异的驱动器来管理一个或更多个分布式应用程序的一个或更多个实现装置以 及一个或更多个分析装置的服务器上,一种包括存储于其上的计算机可执行指令的 计算机程序存储产品,所述指令在被执行时使所述服务器上的一个或更多个处理器执行包括以下动作的方法标识对储存库中的一个或更多个相应声明性模型的一个或更多个修改,所述一个或更多个声明性模型包括关于分布式应用程序的一个或更多个操作的高级指 令;精炼所述一个或更多个声明性模型以包括关于所述分布式应用程序的操作的 上下文信息;将所述一个或更多个经精炼的声明性模型翻译成将由分布式应用容器实现的 一个或更多个命令;以及将所述经翻译的命令发送给一个或更多个应用容器,其中所述经翻译的命令 被所述一个或更多个应用容器接收和执行以配置和控制所述分布式应用程序。
全文摘要
一种用于自动实现分布式应用程序中的高级指令的系统包括至少工具组件,其中该高级指令反映了分布式应用程序的行为。工具组件被用于编写声明性模型形式的高级指令,并且将其放入储存库中。执行性组件随后从储存库接收声明性模型并精炼它们(例如,经由逐步详细)直至不存在不清楚。因平台而异的驱动器随后翻译来自执行性组件的命令,有效地将声明性模型指令转换成将在一个或更多个应用容器中实现的一组命令性动作。因平台而异的驱动器还将一个或更多个事件流中继至分析装置,该分析装置可导致对声明性模型的修改,并且相应的新的指令集在以后的时间点通过因平台而异的驱动器而来。
文档编号G06F15/16GK101689167SQ200880022242
公开日2010年3月31日 申请日期2008年6月18日 优先权日2007年6月29日
发明者A·S·库卡尼, D·埃什纳, G·M·文卡特拉马纳帕, I·塞杜金, L·S·瓦内利三世, S·沙希, S·莫汉蒂 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1