CN101689167B - 在分布式系统中逐步实现声明性模型 - Google Patents

在分布式系统中逐步实现声明性模型 Download PDF

Info

Publication number
CN101689167B
CN101689167B CN2008800222423A CN200880022242A CN101689167B CN 101689167 B CN101689167 B CN 101689167B CN 2008800222423 A CN2008800222423 A CN 2008800222423A CN 200880022242 A CN200880022242 A CN 200880022242A CN 101689167 B CN101689167 B CN 101689167B
Authority
CN
China
Prior art keywords
declarative models
application program
distributed application
declarative
models
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.)
Active
Application number
CN2008800222423A
Other languages
English (en)
Other versions
CN101689167A (zh
Inventor
I·塞杜金
D·埃什纳
A·S·库卡尼
G·M·文卡特拉马纳帕
L·S·瓦内利三世
S·莫汉蒂
S·沙希
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 Technology Licensing LLC
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 CN101689167A publication Critical patent/CN101689167A/zh
Application granted granted Critical
Publication of CN101689167B publication Critical patent/CN101689167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable

Abstract

一种用于自动实现分布式应用程序中的高级指令的系统包括至少工具组件,其中该高级指令反映了分布式应用程序的行为。工具组件被用于编写声明性模型形式的高级指令,并且将其放入储存库中。执行性组件随后从储存库接收声明性模型并精炼它们(例如,经由逐步详细)直至不存在不清楚。因平台而异的驱动器随后翻译来自执行性组件的命令,有效地将声明性模型指令转换成将在一个或更多个应用容器中实现的一组命令性动作。因平台而异的驱动器还将一个或更多个事件流中继至分析装置,该分析装置可导致对声明性模型的修改,并且相应的新的指令集在以后的时间点通过因平台而异的驱动器而来。

Description

在分布式系统中逐步实现声明性模型
背景
背景和相关技术
随着计算机化的系统日益普及,此类系统内采用的软件和硬件的复杂度也日益增加。一般而言,对表面上愈加复杂的软件的需要持续增长,这进一步趋向于成为推动硬件更大进步的动力之一。例如,如果应用程序对给定硬件系统要求太高,则该硬件系统可能效率低下地操作,或者完全无法处理该应用程序。然而,应用程序开发的目前趋势通过至少部分地使用分布式应用程序已移除了许多这些类型的硬件约束。一般而言,分布式应用程序包括在若干不同的硬件组件上——往往是在层叠环境中的不同计算机系统上执行的组件。
在分布式应用程序下,不同的计算机系统可在网络上向彼此通传各种处理结果。由此,组织将采用分布式应用服务器来管理众多不同的计算机系统上的若干不同的分布式应用程序。例如,用户可采用一个分布式应用服务器来管理在一组不同的计算机系统上执行的电子商务应用程序的操作。用户也可使用分布式应用服务器来管理在相同的或甚至是不同的一组计算机系统上的客户管理应用程序的执行。
当然,通过分布式应用服务器管理的每个相应的分布式应用又可具有在其他不同的计算机系统上执行的若干不同的模块和组件。因此,可以领会,虽然通过若干不同的计算机系统来组合处理功率的此能力可能是有利的,但对于这样的广泛分布的应用程序模块,存在其他缺点。例如,组织通常期望分布式应用服务器最优地在可用资源上运行分布式应用,并考虑变化的需求模式和资源可用性。
遗憾的是,常规的分布式应用服务器通常被有缺陷地装备(或完全没有被装备)成自动处理和管理对于分布式应用程序的每个给定模块可能发生的所有不同问题。例如,用户可具有每当有促销时或在每年相同的节日期间就例行公事地获得大量订单的在线商店应用程序。在一些情形中,用户可能期望分布式应用服务器分析并预测对给定的分布式应用程序的各个组件或模块的这些波动需求。
具体而言,组织可能期望分布式应用服务器交换各种资源,从而高需求进程能由可能较不忙碌的其他系统上的软件或硬件组件来处理。然而,此类适应性如果不能用常规的分布式应用服务器平台来执行则可能是困难的。具体地,大多数常规的分布式应用服务器平台被有缺陷地装备成或不能标识并恰当地管理分布式应用程序的各组件之间的不同需求模式。这可能至少部分是由于管理可具有许多分布式组件和子系统和/或其他的传统或外部系统的应用程序的复杂性,这些分布式组件和子系统中有许多是长期运行的工作流。
此外,常规的分布式应用程序服务器一般未被配置成用于高效缩放性。例如,大多数分布式应用服务器被配置成管理给定的分布式应用程序的精确指令,诸如精确引用和/或组件寻址方案。即,应用程序的各组件之间往往只有很少或没有“宽松耦合”。由此,当服务器的管理员希望将某些模块或组件重新部署到另一个服务器上或另一组计算机系统上时,存在加重的出错潜在可能性,在可能涉及大量不同计算机系统和/或模块的场合尤其如此。在某些新模块或组件引用未向前传递至需要它们的每一处时、或如果它们被不正确地向前传递时,就可能出现这种出错潜在可能性。
会进一步加重这种出错潜在可能性的分布式应用程序的一方面是分布式应用服务器可能正管理若于不同的分布式应用程序的概念,其中每一个分布式应用程序在不同的平台上执行。即,在相应的分布式应用程序能够接受并实现改变之前,分布式应用服务器可能需要为每个不同的平台翻译不同的指令。由于这些和其他复杂性,分布式应用程序趋向于对需求高峰相当敏感。
这种对需求高峰的敏感性可能意味着各种分布式应用程序模块在能检测到出错之前会继续在次优水平上操作一长时段。在某些情形中,分布式应用服务器的管理员可能甚至未采取校正行动,因为尝试这样做可能会导致甚至更大数量的出错。结果,分布式应用程序模块可潜在地变得在低效率操作模式中卡住,诸如持续重启自身,而无法在分布式应用程序的寿命期间得到校正。相应地,现有分布式应用程序和分布式应用程序服务器的管理存在许多要解决的难题。
简要概述
本发明的各个实现提供了被配置成通过分布式应用程序服务器来自动实现分布式应用程序的操作的系统、方法和计算机程序产品。在至少一种实现中,例如,分布式应用程序服务器包括实现装置集合和分析装置集合。通过分布式应用程序的每个给定模块的因平台而异的驱动器,实现装置部署高级指令集或声明性模型来在相应平台上创建给定的分布式应用程序模块,而分析装置按需自动监视并调整声明性模型。通过服务器组件的声明性模型至分布式应用程序的这种松散耦合以及自动监视和调整可允许服务器能更好地管理需求、资源、或使用高峰、和/或其他形式的分布式应用程序行为波动。
相应地,一种在执行期间使用声明性模型来自动实现分布式应用程序中一个或更多个高级指令集的方法可涉及标识对储存库中的一个或更多个相应声明性模型的一个或更多个修改。该一个或更多个声明性模型包括关于分布式应用程序的一个或更多个操作的高级指令。该方法还可涉及精炼该一个或更多个声明性模型以包括关于该分布式应用程序的操作的上下文信息。此外,该方法可涉及将一个或更多个经精炼的声明性模型翻译成将由分布式应用程序的容器实现的一个或更多个命令。此外,该方法可涉及将经翻译的命令发送给一个或更多个应用容器。经翻译的命令随后被该容器接收并被用于确定和配置该容器中的分布式应用程序的行为。
此外,一种在执行期间使用声明性模型来自动实现分布式应用程序中一个或更多个高级指令集的附加或替换方法可涉及从储存库接收一组新的一个或更多个声明性模型。该新的一个或更多个声明性模型包括关于分布式应用程序的操作的高级指令。该方法还可涉及通过实现装置和一个或更多个应用容器来实现该新的一个或更多个声明性模型。结果,第一低级命令集被准备好并被发送给该一个或更多个应用容器以供执行。
此外,该方法可涉及经由一个或更多个分析装置来标识新的一个或更多个声明性模型中的改变。改变反映了从一个或更多个应用容器接收到的分布式应用程序的性能信息。此外,该方法可涉及通过实现装置和一个或更多个应用容器来实现一个或更多个声明性模型的经更新版本。这样,第二低级命令集被准备好并被发送给该一个或更多个应用容器以供基于对该一个或更多个声明性模型的改变来执行。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显而易见的,或可通过对本发明的实践领会。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加完全明显,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方法,将通过引用附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1A图解了根据本发明的实现的被配置成使用一个或更多个声明性模型自动实现分布式应用程序操作的系统的概览示意图;
图1B图解了图1A中所示的执行性组件和因平台而异的驱动器的更详细示意图;
图2图解根据本发明的实现的在执行期间使用声明性模型来实现分布式应用程序中的一个或更多个高级指令集的方法中的一系列动作的流程图;
图3图解根据本发明的实现的在执行期间使用声明性模型来实现分布式应用程序中的一个或更多个高级指令集的附加或替换方法的附加流程图。
详细描述
本发明的各个实现延伸至被配置成通过分布式应用程序服务器来自动实现分布式应用程序的操作的系统、方法和计算机程序产品。在至少一种实现中,例如,分布式应用程序服务器包括实现装置集合和分析装置集合。通过分布式应用程序的每个给定模块的因平台而异的驱动器,实现装置部署高级指令集或声明性模型来在相应平台上创建给定的分布式应用程序模块,而分析装置按需自动监视并调整声明性模型。通过服务器组件的声明性模型至分布式应用程序的这种宽松耦合以及自动监视和调整可允许服务器能更好地管理需求、资源、或使用高峰、和/或其他形式的分布式应用程序行为波动。
相应地,从以下说明书和权利要求书将领会,本发明的实现可提供管理分布式应用程序的数个不同优点。这至少部分是由于实现诸如由程序开发者创建的那些高级指令就像实现低级指令(例如,可执行命令)那样容易,低级指令可由在因平台而异的基础上配置并管理分布式应用模块的分布式应用容器来执行。例如,本发明的实现提供了用于编写声明性模型、检测声明性模型的改变、以及调度恰适的模型精炼进程以使得经精炼的声明性模型指令能被翻译的机制。
进一步实现提供了用于将经精炼的模型翻译成能最终执行的指令/命令的机制。相应地,应领会,这些和其他特征可显著简化并规格化管理潜在可能位于若干不同平台上的一个或多个不同的分布式应用程序的分布式应用程序服务器的管理。具体而言,服务器管理员可容易地配置宽范围的分布式应用操作,而不一定需要了解给定运行时环境的所有配置细节、和/或给定的分布式应用程序的具体实现平台。
现在参考附图,图1A图解了本发明的至少一种实现的概览示意图,其中分布式计算机化环境/系统100中的分布式应用服务器被用于在正进行、自动基础上实现一个或更多个分布式应用程序107中的高级指令。具体而言,图1A示出了包括实现装置105和分析装置110的系统分布式系统100。一般而言,实现装置105和分析装置110包括可在一个或更多个分布式应用程序服务器内使用的一个或更多个一般化计算机可执行组件集合。这些一般化计算机可执行组件又被配置成管理一个或更多个应用容器135中的一个或更多个不同的分布式应用程序107。
例如,图1A示出在至少一种实现中,实现装置105可包括工具组件125。一般而言,工具组件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包括一个或更多个不同的组件,它们可被用于使用逐步详细技术来精炼声明性模型153。
例如,图1A示出了执行性组件115包括调度处理组件117和精炼组件119。一般而言,调度处理组件117使得执行性组件115能标识储存库中对任何声明性模型的改变。例如,调度处理组件117可包括用于从储存库120中内建的相应接口接收通信的一个或更多个接口。补充地或替换地,调度处理组件117包括用于同步储存库内的声明性模型153数据的一个或更多个可执行指令集。
一旦检测到任何改变(无论是新的声明性模型还是对其更新),执行性组件115随后对任何如此标识的声明性模型(或修改)开始逐步详细的过程。一般而言,逐步详细涉及精炼特定声明性模型153(即,添加或修改数据)直至不存在不清楚,并直至细节足以使因平台而异的驱动器130能消耗/翻译它们。执行性组件115至少部分地使用精炼组件119来执行逐步详细,精炼组件119“精炼”声明性模型153数据。
在至少一种实现中,执行性组件115作为使用来自特定库(未示出)的活动集合的工作流来实现此逐步详细或“精炼”过程。在一种实现中,执行性组件115还预先提供该库,尤其是出于针对声明性模型进行工作的目的。此特定工作流中可使用的一些示例活动可包括“读模型数据”、“写模型数据”、“寻找驱动”、“调用驱动器”等。与这些或其他类型的调用相关联的动作在以下更详细地描述为由执行性组件115的精炼组件119部分来实现。
具体地,在至少一种实现中,精炼组件119精炼声明性模型153(或对其的更新)。精炼组件119通常通过基于对声明性模型153中的元素之间的依存性(例如,一个web服务连接到另一个)的知识添加信息来精炼声明性模型153。精炼组件119还可通过添加某些形式的上下文意识来精炼声明性模型153,诸如通过添加关于用于部署分布式应用程序107的应用容器135的可用库存的信息。此外,精炼组件119可被配置成填充关于计算机系统指派的缺失数据。
例如,精炼组件119可标识将被用于实现声明性模型153的数个不同模块,其中两个模块不需要特定计算机系统地址或操作要求。精炼组件119由此可将分布式应用程序107模块指派给由恰适的分布式应用程序容器135安排的可用计算机系统,并且相应地在经精炼的声明性模型153a(或其分段)中记录该机器信息。由此,精炼组件119可推理在经精炼的声明性模型153中填充数据的最佳途径。例如,如先前所描述的,执行性组件115的精炼组件119可基于连接接近性来确定并决定对端点使用什么传输,或者基于处理所要求的预期高峰恰适的因素来确定和决定如何分配分布式应用程序模块。
在附加或替换实现中,精炼组件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放入声明性模型的一般化或补充指令最终指导一个或更多个应用容器135中的一个或更多个分布式应用程序107的操作实现。具体而言,一个或更多个分布式应用容器135通过执行从因平台而异的驱动器130接收到的命令/指令133来执行声明性模型153。为此,分布式应用容器135可用新的声明性模型153来替换或更新已被替换或修订的任何先前模块。此外,分布式应用容器135执行模块和/或组件的最新版本,诸如正常完成的版本,包括新的指令/命令133中描述的那些版本、以及任何数目的不同计算机系统上的版本。
除了前述内容以外,分布式应用程序107可通过实现装置105反向提供关于执行和性能的各种操作信息。例如,本发明的实现规定了分布式应用程序107通过因平台而异的驱动器130反向发回关于各种执行或性能指示符的一个或更多个事件流137。在一种实现中,分布式应用程序107可在连续的、正进行的基础上发出事件流137,而在其他实现中,分布式应用程序107在调度基础上发送事件流(例如,基于来自驱动器130的调度请求)。因平台而异的驱动器130又将一个或更多个事件流137传递到分析装置110以分析、调谐、和/或其他恰适的修改。
具体而言,并且如将在本文中更全面地理解的,分析装置110聚集、相关、或以其他方式过滤相关数据以标识各种分布式应用程序107的感兴趣趋势和行为。分析装置110还可恰适地针对所标识的趋势修改相应的声明性模型153。例如,分析装置110可修改声明性模型153以创建新的或以其他方式经修改的反映意图改变的声明性模型153b,诸如克服了事件流137中标识出的问题。具体而言,如果当前被指派的机器太过频繁地重启,则经修改的声明性模型153b可被配置成使得分布式应用程序的给定模块能被重新部署在另一个机器上。
经修改的声明性模型153b随后被传递回储存库120中。如先前所提及的,执行性组件115将标识新的声明性模型153b(或对先前的声明性模型153的修改)并开始相应的精炼过程。具体地,执行性组件将使用精炼组件119来向经修改的声明性模型153b添加任何必要数据,以创建诸如先前描述的经精炼的、经修改的声明性模型。被重新精炼的、但经修改的声明性模型153b随后被传递到因平台而异的驱动器130,在此其被翻译并传递给恰适的应用容器135进行处理。
相应地,图1A到1B(以及相应的文本)提供了用于自动实现分布式应用程序内的高级指令的多种不同的示意图、组件、和机制。如先前所描述的,这可以全部在无需服务器管理员对分布式应用程序及其容器的密切知识的情况下进行。
除了前述内容之外,本发明的各实现还可以借助于具有用于完成特定结果的一系列动作和/或步骤的方法的一个或更多个流程图来描述。例如,图2和3图解了从服务器的观点而言用于自动实现分布式应用程序中的一个或更多个高级指令集的附加或替换方法。图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通过储存库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,该分析装置110若恰适则可改变或更新声明性模型113以适应任何性能问题。如先前所讨论的,事件流可标识服务器(或服务器上的模块)太过频繁地重启,且因此分析装置可创建对声明性模型(或153b)的修改,其标识将该模块重新部署到另一个服务器上。
此外,图3示出了从服务器的观点而言一种方法可包括将通过应用容器来实现声明性模型的经更新版本的动作330。动作330包括通过实现装置和一个或更多个应用容器来实现一个或更多个声明性模型的经更新版本,其中第二命令指令集被准备好并被发送给一个或更多个应用容器以供基于对该一个或更多个新的声明性模型的改变来执行。例如,图1B示出了实现装置105可接收经修改的声明性模型153b。如同模型153那样,声明性模型153b随后可通过执行性组件115被检测到并被精炼,执行性组件115随后将经精炼的、经修改的声明性模型153b指令传递给因平台而异的驱动器130以进行翻译。如以前一样,分布式应用容器135随后执行与经精炼的、经修改的声明性模型153b相对应的新的相应指令/命令,以重新配置其相应应用容器中的分布式应用程序。
相应地,图1A到3提供了用于在服务器级别上自动实现高级指令的数个示意图、组件、和机制,这些高级指令最终通过应用容器被实现为低级指令。如本文中所描述的,这些和其他优点使得服务器管理员能连续和自动地调整分布式应用程序操作,而无需对特定分布式应用程序的平台要求和规则的密切知识。这样,本发明的实现可跨分布式系统高度缩放,并且管理起来相对简单。
本发明的实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在以下更详细地讨论。本发明的范围内的实施例也包括用于携带或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的机器可读介质可以是可由通用或专用计算机访问的任何可用介质。
作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。当信息在网络或另一通信连接(硬连线、无线或硬连线或无线的组合)上传输或提供给计算机时,计算机将连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。上述的组合也应被包括在计算机可读介质的范围内。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述特定特征和动作作为实现权利要求的示例形式公开。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (20)

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.在具有被配置在分布式计算机化系统环境中以通过一个或更多个因平台而异的驱动器来管理一个或更多个分布式应用程序的一个或更多个实现装置以及一个或更多个分析装置的服务器上,一种用于在执行期间使用声明性模型来自动实现分布式应用程序中的一个或更多个高级指令集的系统,包括:
用于标识对储存库中的一个或更多个相应声明性模型的一个或更多个修改的装置,所述一个或更多个声明性模型包括关于分布式应用程序的一个或更多个操作的高级指令;
用于精炼所述一个或更多个声明性模型以包括关于所述分布式应用程序的操作的上下文信息的装置;
用于将所述一个或更多个经精炼的声明性模型翻译成将由分布式应用容器实现的一个或更多个命令的装置;以及
用于将所述经翻译的命令发送给一个或更多个应用容器的装置,其中所述经翻译的命令被所述一个或更多个应用容器接收和执行以配置和控制所述分布式应用程序。
CN2008800222423A 2007-06-29 2008-06-18 在分布式系统中逐步实现声明性模型 Active CN101689167B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/771,816 2007-06-29
US11/771,816 US8239505B2 (en) 2007-06-29 2007-06-29 Progressively implementing declarative models in distributed systems
PCT/US2008/067354 WO2009006026A2 (en) 2007-06-29 2008-06-18 Progressively implementing declarative models in distributed systems

Publications (2)

Publication Number Publication Date
CN101689167A CN101689167A (zh) 2010-03-31
CN101689167B true CN101689167B (zh) 2012-02-29

Family

ID=40161609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800222423A Active CN101689167B (zh) 2007-06-29 2008-06-18 在分布式系统中逐步实现声明性模型

Country Status (6)

Country Link
US (1) US8239505B2 (zh)
EP (1) EP2176778B1 (zh)
JP (1) JP5216853B2 (zh)
CN (1) CN101689167B (zh)
TW (1) TWI438684B (zh)
WO (1) WO2009006026A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123345A1 (en) * 2004-12-06 2006-06-08 International Business Machines Corporation Platform-independent markup language-based gui format
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8949772B1 (en) * 2009-06-01 2015-02-03 Amazon Technologies, Inc. Dynamic model based software application development
US10719645B1 (en) 2010-05-27 2020-07-21 The Mathworks, Inc. Model structure analysis with integration of transformed slice
US8812276B2 (en) 2010-05-27 2014-08-19 The Mathworks, Inc. Determining model components suitable for verification analysis
US10657208B2 (en) 2010-05-27 2020-05-19 The Mathworks, Inc. Analyzing model based on design interest
US8473783B2 (en) * 2010-11-09 2013-06-25 International Business Machines Corporation Fault tolerance in distributed systems
US8918448B2 (en) * 2012-05-11 2014-12-23 International Business Machines Corporation Application component decomposition and deployment
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9344465B2 (en) * 2012-12-04 2016-05-17 International Business Machines Corporation Correlating computing network events
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9742559B2 (en) 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
WO2014126779A1 (en) * 2013-02-15 2014-08-21 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US10574714B2 (en) 2014-06-25 2020-02-25 Microsoft Technology Licensing, Llc Stream-based reactive programming platform
US20160246582A1 (en) * 2015-02-25 2016-08-25 Red Hat, Inc. Generic Semantic Configuration Service
US10318653B1 (en) 2015-02-26 2019-06-11 The Mathworks, Inc. Systems and methods for creating harness models for model verification
CN106372074A (zh) * 2015-07-22 2017-02-01 中国科学院城市环境研究所 一种用于污染场地风险评估可视化系统的架构方法
US10540332B2 (en) 2016-08-03 2020-01-21 Microsoft Technology Licensing, Llc Efficient denormalization of data instances
US10545731B1 (en) 2016-12-02 2020-01-28 The Mathworks, Inc. Variant modeling elements in graphical programs
US11175894B2 (en) * 2019-01-31 2021-11-16 Salesforce.Com, Inc. Flow analysis in an integration platform
US11829689B1 (en) * 2020-06-09 2023-11-28 The Mathworks, Inc. Systems and methods for creating variant regions in acausal simulation models
CN113127209A (zh) * 2021-05-12 2021-07-16 曙光信息产业(北京)有限公司 一种云计算执行调度方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854069B2 (en) * 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
US7200530B2 (en) * 2003-03-06 2007-04-03 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications

Family Cites Families (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
US5574934A (en) 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5423003A (en) * 1994-03-03 1995-06-06 Geonet Limited L.P. System for managing network computer applications
US6160549A (en) * 1994-07-29 2000-12-12 Oracle Corporation Method and apparatus for generating reports using declarative tools
US5655081A (en) 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
DE69628965T2 (de) * 1995-03-22 2004-02-26 Sun Microsystems, Inc., Mountain View Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
EP0733967B1 (en) 1995-03-24 2005-02-09 Hewlett-Packard Company, A Delaware Corporation Methods and apparatus for monitoring events and implementing corrective action in a multi-entity computer system
US5764241A (en) 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US6185601B1 (en) * 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6662205B1 (en) 1996-10-01 2003-12-09 International Business Machines Corporation Scaleable and extensible system management architecture with dataless endpoints
US5937388A (en) 1996-12-05 1999-08-10 Hewlett-Packard Company System and method for performing scalable distribution of process flow activities in a distributed workflow management system
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6710786B1 (en) * 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6026404A (en) * 1997-02-03 2000-02-15 Oracle Corporation Method and system for executing and operation in a distributed environment
US5958010A (en) * 1997-03-20 1999-09-28 Firstsense Software, Inc. Systems and methods for monitoring distributed applications including an interface running in an operating system kernel
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
US6055363A (en) 1997-07-22 2000-04-25 International Business Machines Corporation Managing multiple versions of multiple subsystems in a distributed computing environment
US6005849A (en) 1997-09-24 1999-12-21 Emulex Corporation Full-duplex communication processor which can be used for fibre channel frames
US7024450B1 (en) * 1997-10-06 2006-04-04 Mci, Inc. Method and apparatus for deploying service modules among service nodes distributed in an intelligent network
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6167538A (en) 1998-03-06 2000-12-26 Compaq Computer Corporation Method and apparatus for monitoring components of a computer system
US6330717B1 (en) 1998-03-27 2001-12-11 Sony Corporation Of Japan Process and system for developing an application program for a distributed adaptive run-time platform
US6070190A (en) 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6327622B1 (en) 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6342907B1 (en) * 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6415297B1 (en) * 1998-11-17 2002-07-02 International Business Machines Corporation Parallel database support for workflow management systems
US6728748B1 (en) 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6279009B1 (en) 1998-12-04 2001-08-21 Impresse Corporation Dynamic creation of workflows from deterministic models of real world processes
US6546364B1 (en) * 1998-12-18 2003-04-08 Impresse Corporation Method and apparatus for creating adaptive workflows
US6336217B1 (en) 1998-12-30 2002-01-01 International Business Machines Corporation Systems, methods and computer program products for end-to-end software development process automation
US20020135611A1 (en) 1999-03-04 2002-09-26 Trevor Deosaran Remote performance management to accelerate distributed processes
US6430576B1 (en) 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6618719B1 (en) * 1999-05-19 2003-09-09 Sybase, Inc. Database system with methodology for reusing cost-based optimization decisions
US6493594B1 (en) * 1999-06-04 2002-12-10 Lucent Technologies Inc. System and method for improved software configuration and control management in multi-module systems
US6662356B1 (en) 1999-06-30 2003-12-09 Microsoft Corporation Application program interface for transforming heterogeneous programs
US6640241B1 (en) * 1999-07-19 2003-10-28 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US6718535B1 (en) 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US7403946B1 (en) 1999-10-01 2008-07-22 Accenture Llp Data management for netcentric computing systems
JP3738624B2 (ja) 1999-10-26 2006-01-25 日本電気株式会社 分散アプリケーション制御システム及び制御方法並びにプログラムを記録した記録媒体
US7072934B2 (en) 2000-01-14 2006-07-04 Saba Software, Inc. Method and apparatus for a business applications server management system platform
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US7328233B2 (en) * 2000-01-19 2008-02-05 Corybant, Inc. Method and apparatus for implementing an active information model
US6654783B1 (en) 2000-03-30 2003-11-25 Ethergent Corporation Network site content indexing method and associated system
US6687735B1 (en) 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US20020038217A1 (en) * 2000-04-07 2002-03-28 Alan Young System and method for integrated data analysis and management
US7392210B1 (en) 2000-04-07 2008-06-24 Jpmorgan Chase Bank, N.A. Workflow management system and method
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
US7685239B2 (en) * 2000-06-28 2010-03-23 Canon Kabushiki Kaisha Image communication apparatus, image communication method, and memory medium
WO2002019097A1 (en) 2000-09-01 2002-03-07 International Interactive Commerce, Ltd. System and method for collaboration using web browsers
WO2002019131A1 (en) 2000-09-01 2002-03-07 Op40, Inc. System and method for collaboration using web browsers
US6920458B1 (en) * 2000-09-22 2005-07-19 Sas Institute Inc. Model repository
US6944759B1 (en) * 2000-09-29 2005-09-13 Hewlett-Packard Development Company, L.P. Automatic system configuration management
US6907395B1 (en) 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US6915338B1 (en) 2000-10-24 2005-07-05 Microsoft Corporation System and method providing automatic policy enforcement in a multi-computer service application
WO2002035395A2 (en) 2000-10-27 2002-05-02 Entigen Corporation Integrating heterogeneous data and tools
US7174359B1 (en) 2000-11-09 2007-02-06 International Business Machines Corporation Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently
US7600014B2 (en) * 2000-11-16 2009-10-06 Symantec Corporation Method and system for monitoring the performance of a distributed application
US7020869B2 (en) 2000-12-01 2006-03-28 Corticon Technologies, Inc. Business rules user interface for development of adaptable enterprise applications
US7296268B2 (en) 2000-12-18 2007-11-13 Microsoft Corporation Dynamic monitor and controller of availability of a load-balancing cluster
US6931644B2 (en) * 2000-12-21 2005-08-16 International Business Machines Corporation Hierarchical connected graph model for implementation of event management design
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP2002334194A (ja) 2001-02-09 2002-11-22 Internatl Business Mach Corp <Ibm> ワークフロー管理システムにおいて選択的コマンド制御を提供する方法、システム、プログラム
US20020147962A1 (en) * 2001-02-12 2002-10-10 International Business Machines Corporation Method and system for incorporating legacy applications into a distributed data processing environment
US6801818B2 (en) 2001-03-14 2004-10-05 The Procter & Gamble Company Distributed product development
EP1248170B1 (en) * 2001-04-05 2009-09-16 INPECO IP Ltd. Method for the management of workcell systems based on an automation management system
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
US6948151B2 (en) * 2001-06-29 2005-09-20 International Business Machines Corporation System and method for dynamic packaging of component objects
US20050155042A1 (en) 2001-07-02 2005-07-14 Michael Kolb Component-based system for distributed applications
US7055143B2 (en) 2001-07-10 2006-05-30 Microsoft Corporation System and methods for providing a declarative syntax for specifying SOAP-based web services
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US7444618B2 (en) 2001-08-06 2008-10-28 Tata Consultancy Services Limited Automatic generation of batch programs with identification, insertion of invariables, declarative statements and variables with the use of place-marks
CA2357087C (en) 2001-09-06 2009-07-21 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US20030135384A1 (en) 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US7660886B2 (en) 2001-09-27 2010-02-09 International Business Machines Corporation Apparatus and method of representing real-time distributed command execution status across distributed systems
US7035930B2 (en) * 2001-10-26 2006-04-25 Hewlett-Packard Development Company, L.P. Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers
US7085837B2 (en) 2001-12-04 2006-08-01 International Business Machines Corporation Dynamic resource allocation using known future benefits
WO2003050674A1 (en) * 2001-12-07 2003-06-19 Dbase, Inc. Drag-and-drop dynamic distributed object model
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)
US7152229B2 (en) 2002-01-18 2006-12-19 Symbol Technologies, Inc Workflow code generator
CA2476314A1 (en) 2002-02-07 2003-08-14 Think-Dynamics Inc. Method and system for managing resources in a data center
US20030195763A1 (en) 2002-04-11 2003-10-16 International Business Machines Corporation Method and system for managing a distributed workflow
WO2003085513A2 (en) * 2002-04-11 2003-10-16 International Business Machines Corporation A software distribution method and system
US7130881B2 (en) 2002-05-01 2006-10-31 Sun Microsystems, Inc. Remote execution model for distributed application launch and control
US7437731B2 (en) 2002-05-30 2008-10-14 Oracle International Corporation Coordinated collaboration system in an integration platform
US7415483B2 (en) * 2002-06-05 2008-08-19 Sap Ag Individual data objects in enterprise computing systems
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US20040040015A1 (en) * 2002-08-23 2004-02-26 Netdelivery Corporation Systems and methods for implementing extensible generic applications
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7240325B2 (en) 2002-09-11 2007-07-03 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US7096311B2 (en) 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7167915B2 (en) * 2002-10-18 2007-01-23 International Business Machines Corporation Monitoring storage resources used by computer applications distributed across a network
US20040088350A1 (en) * 2002-10-31 2004-05-06 General Electric Company Method, system and program product for facilitating access to instrumentation data in a heterogeneous distributed system
CA2412747A1 (en) * 2002-11-26 2004-05-26 Cognos Incorporated System and method for monitoring business performance
US20050251546A1 (en) 2002-12-11 2005-11-10 International Business Machines Corporation Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture
US7395526B2 (en) * 2002-12-23 2008-07-01 Sun Microsystems, Inc. Method and system for managing application server lifecycle
US20040148370A1 (en) 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US7168077B2 (en) 2003-01-31 2007-01-23 Handysoft Corporation System and method of executing and controlling workflow processes
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7302609B2 (en) * 2003-03-12 2007-11-27 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
US20040186905A1 (en) * 2003-03-20 2004-09-23 Young Donald E. System and method for provisioning resources
US20040187140A1 (en) 2003-03-21 2004-09-23 Werner Aigner Application framework
US8161094B2 (en) 2003-06-04 2012-04-17 Sony Computer Entertainment Inc. System and method for notification within decentralized network
US6915656B2 (en) * 2003-07-14 2005-07-12 Eco Technology Solutions, Llc Heat pump system
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7403956B2 (en) * 2003-08-29 2008-07-22 Microsoft Corporation Relational schema format
US7503043B2 (en) 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
US20050071737A1 (en) * 2003-09-30 2005-03-31 Cognos Incorporated Business performance presentation user interface and method for presenting business performance
US8452881B2 (en) * 2004-09-28 2013-05-28 Toufic Boubez System and method for bridging identities in a service oriented architecture
US20050074003A1 (en) * 2003-10-02 2005-04-07 Ball David Alexander Distributed software architecture for implementing BGP
US7379999B1 (en) 2003-10-15 2008-05-27 Microsoft Corporation On-line service/application monitoring and reporting system
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
AU2004286660B2 (en) 2003-10-27 2011-06-16 Hitachi Vantara, LLC Policy-based management of a redundant array of independent nodes
US20050108703A1 (en) * 2003-11-18 2005-05-19 Hellier Charles R. Proactive policy-driven service provisioning framework
US20050120106A1 (en) * 2003-12-02 2005-06-02 Nokia, Inc. System and method for distributing software updates to a network appliance
US7454496B2 (en) * 2003-12-10 2008-11-18 International Business Machines Corporation Method for monitoring data resources of a data processing network
US20050137839A1 (en) 2003-12-19 2005-06-23 Nikolai Mansurov Methods, apparatus and programs for system development
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US20050188075A1 (en) 2004-01-22 2005-08-25 International Business Machines Corporation System and method for supporting transaction and parallel services in a clustered system based on a service level agreement
US8197325B2 (en) * 2004-01-27 2012-06-12 Integrated Group Assets Inc. Method and apparatus for providing an instant lottery game and a supplemental game
WO2005081110A2 (en) * 2004-02-13 2005-09-01 Memento Inc. System and method for instrumenting a software application
US20050198628A1 (en) * 2004-03-04 2005-09-08 Graham Christoph J. Creating a platform specific software image
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
US7822662B2 (en) * 2004-03-29 2010-10-26 Microsoft Corporation Key performance indicator system and method
US8271541B2 (en) 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7079010B2 (en) * 2004-04-07 2006-07-18 Jerry Champlin System and method for monitoring processes of an information technology system
US7526734B2 (en) * 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US7376534B2 (en) 2004-05-21 2008-05-20 Bea Systems, Inc. Watches and notifications
US7370296B2 (en) 2004-05-25 2008-05-06 International Business Machines Corporation Modeling language and method for address translation design mechanisms in test generation
US7487080B1 (en) * 2004-07-08 2009-02-03 The Mathworks, Inc. Partitioning a model in modeling environments
US7747641B2 (en) * 2004-07-09 2010-06-29 Microsoft Corporation Modeling sequence and time series data in predictive analytics
US7716253B2 (en) * 2004-07-09 2010-05-11 Microsoft Corporation Centralized KPI framework systems and methods
US7467078B2 (en) * 2004-07-16 2008-12-16 Agilent Technologies Inc. Portable distributed application framework
US20060070066A1 (en) * 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
US7561673B2 (en) 2004-09-30 2009-07-14 Microsoft Corporation Integration of speech services with telecommunications
US7796520B2 (en) * 2004-09-30 2010-09-14 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US7631291B2 (en) 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
JP4167643B2 (ja) * 2004-10-27 2008-10-15 株式会社日立製作所 業務システムの運用方法、運用管理システムおよび運用プログラム
US20060095443A1 (en) * 2004-10-29 2006-05-04 Kerika, Inc. Idea page system and method
US8032863B2 (en) 2004-11-18 2011-10-04 Parasoft Corporation System and method for global group reporting
US20060130047A1 (en) 2004-11-30 2006-06-15 Microsoft Corporation System and apparatus for software versioning
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US20060155738A1 (en) 2004-12-16 2006-07-13 Adrian Baldwin Monitoring method and system
US9535679B2 (en) * 2004-12-28 2017-01-03 International Business Machines Corporation Dynamically optimizing applications within a deployment server
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
US20060161862A1 (en) 2005-01-20 2006-07-20 Microsoft Corporation Enabling users to create and use a directory of document links from within a file menu of an application
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
JP2006228115A (ja) * 2005-02-21 2006-08-31 Ntt Comware Corp 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
US7895566B2 (en) * 2005-03-10 2011-02-22 Research In Motion Limited System and method for building a deployable component based application
US7747985B2 (en) * 2005-03-18 2010-06-29 Microsoft Corporation Conformance testing of multi-threaded and distributed software systems
US7770151B2 (en) 2005-04-07 2010-08-03 International Business Machines Corporation Automatic generation of solution deployment descriptors
US7979520B2 (en) 2005-04-15 2011-07-12 Microsoft Corporation Prescriptive architecture recommendations
US20060236254A1 (en) * 2005-04-18 2006-10-19 Daniel Mateescu System and method for automated building of component based applications for visualizing complex data structures
US7761844B2 (en) * 2005-04-22 2010-07-20 Ubs Ag Technique for platform-independent service modeling
JP4372043B2 (ja) 2005-05-12 2009-11-25 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7757213B2 (en) 2005-05-18 2010-07-13 Microsoft Corporation Aggregation-based management of a distributed business process application
EP1729213A1 (en) 2005-05-30 2006-12-06 Honda Research Institute Europe GmbH Development of parallel/distributed applications
US20060271322A1 (en) 2005-05-31 2006-11-30 David Haggerty Systems and Methods Providing A Normalized Graphical User Interface For Testing Disparate Devices
US7761851B2 (en) 2005-05-31 2010-07-20 International Business Machines Corporation Computer method and system for integrating software development and deployment
US7703075B2 (en) * 2005-06-22 2010-04-20 Microsoft Corporation Programmable annotation inference
US7359824B2 (en) 2005-06-29 2008-04-15 International Business Machines Corporation Systems and methods for a distributed execution environment with per-command environment management
US8738751B2 (en) * 2005-07-29 2014-05-27 Telecom Italia S.P.A. Method and system for generating instruction signals for performing interventions in a communication network, and corresponding computer-program product
JP5019817B2 (ja) * 2005-08-15 2012-09-05 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US7454492B2 (en) 2005-08-26 2008-11-18 International Business Machines Corporation Method and apparatus for configuring and modeling server information in an enterprise tooling environment
US20070050237A1 (en) * 2005-08-30 2007-03-01 Microsoft Corporation Visual designer for multi-dimensional business logic
US7818714B2 (en) 2005-09-15 2010-10-19 Microsoft Corporation Integration of process and workflows into a business application framework
US7430559B2 (en) 2005-09-21 2008-09-30 Microsoft Corporation Generalized idempotent requests
FR2891077B1 (fr) 2005-09-22 2008-12-12 Xcalia Sa Systeme de mise en oeuvre d'une application metier.
US8407610B2 (en) 2005-09-30 2013-03-26 Sap Portals Israel Ltd. Executable and declarative specification for graphical user interfaces
WO2007044656A2 (en) * 2005-10-07 2007-04-19 Neoedge Networks, Inc. Advertisement identification, selection, and distribution involving a peer-to-peer network
US7941309B2 (en) * 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7512707B1 (en) * 2005-11-03 2009-03-31 Adobe Systems Incorporated Load balancing of server clusters
US8397209B2 (en) * 2005-11-17 2013-03-12 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Software modeling system and method
WO2007072501A2 (en) 2005-12-19 2007-06-28 Mphasis Bfl Limited A system and a methodology for providing integrated business performance management platform
US8122427B2 (en) 2006-01-04 2012-02-21 Microsoft Corporation Decentralized system services
US20070174228A1 (en) * 2006-01-17 2007-07-26 Microsoft Corporation Graphical representation of key performance indicators
US20070179823A1 (en) * 2006-01-30 2007-08-02 Kumar Bhaskaran Observation modeling
US7869585B2 (en) * 2006-03-17 2011-01-11 Microsoft Corporation Declarations for transformations within service sequences
US20070226681A1 (en) * 2006-03-23 2007-09-27 Bestbrains Aps System for annotation based model driven software development
US8214474B2 (en) 2006-04-18 2012-07-03 International Business Machines Corporation Autonomic computing system with model transfer
US20070244904A1 (en) 2006-04-18 2007-10-18 Kristopher Durski Method and Architecture for Goal Oriented Applications, Configurations and Workflow Solutions on-the-Fly
US7774744B2 (en) * 2006-04-26 2010-08-10 Sap Ag Using relatedness information for programming
US20070288885A1 (en) 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model
US8793584B2 (en) 2006-05-24 2014-07-29 International Business Machines Corporation Customizable user interface wrappers for web applications
US7996830B2 (en) 2006-06-05 2011-08-09 International Business Machines Corporation Programming model generic application deployment
US7844942B2 (en) 2006-06-12 2010-11-30 International Business Machines Corporation System and method for model driven transformation filtering
US20070294364A1 (en) 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8381180B2 (en) * 2006-09-08 2013-02-19 Sap Ag Visually exposing data services to analysts
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
US20080244423A1 (en) 2007-03-28 2008-10-02 Sap Ag Melting groups
US8667318B2 (en) 2007-05-14 2014-03-04 Picongen Wireless, Inc. Method and apparatus for wireless clock regeneration
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US7797289B2 (en) * 2007-09-05 2010-09-14 Oracle International Corporation Method and apparatus for automatically executing rules in enterprise systems
US8099720B2 (en) * 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8015281B2 (en) 2008-04-21 2011-09-06 Microsoft Corporation Dynamic server flow control in a hybrid peer-to-peer network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854069B2 (en) * 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
US7200530B2 (en) * 2003-03-06 2007-04-03 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications

Also Published As

Publication number Publication date
JP5216853B2 (ja) 2013-06-19
JP2010532532A (ja) 2010-10-07
EP2176778B1 (en) 2018-05-16
TW200903332A (en) 2009-01-16
WO2009006026A3 (en) 2009-03-19
US8239505B2 (en) 2012-08-07
CN101689167A (zh) 2010-03-31
TWI438684B (zh) 2014-05-21
WO2009006026A2 (en) 2009-01-08
EP2176778A2 (en) 2010-04-21
US20090006062A1 (en) 2009-01-01
EP2176778A4 (en) 2011-10-12

Similar Documents

Publication Publication Date Title
CN101689167B (zh) 在分布式系统中逐步实现声明性模型
EP1739515B1 (en) Kanban control cycle system
CA2597758C (en) Distributed asset management system and method
CN101836201B (zh) 用于翻译声明性模型的方法及系统
CN101310265B (zh) 生产性套件到业务线的同步机制
CN1783132B (zh) 通过工作流事务的批处理来同步运行库和应用状态
CN101796752B (zh) 内在地集成企业移动性的方法和系统
CN101299754B (zh) 具有动态用户界面的终端用户控制配置系统
US20090125359A1 (en) Integrating a methodology management system with project tasks in a project management system
KR100715077B1 (ko) 공급자 및 고객 장치 사이의 통신을 위한 방법 및 시스템
CN101535978A (zh) 分布式服务器系统中的消息转发备份管理器
CN101042704A (zh) 用于依照公共信息模型来管理对象的系统和方法
CN1987923A (zh) 为预装载软件进行许可激活
US20090171758A1 (en) Architectural design for physical inventory application software
CN101286212A (zh) 业务流程执行方法、业务流程引擎及其部署方法
CN104067258A (zh) 平台运行时间抽象
CN101834732A (zh) 在电子网络中有效使用传输操作器的系统和方法
CN104094299A (zh) 从发布的日历检索可用性信息
AU2008203816B2 (en) Message sequence management of enterprise based correlated events
US8239851B2 (en) Business scope dependent add-on content provisioning
CN108153223B (zh) 用于材料处置系统的可扩缩实时网络应用的阶段式部属
CN102197390A (zh) 通过实现和绑定合约向客户机服务提供功能
CN101719244A (zh) 处理库存单据的方法、应用服务器和企业网络系统
US20140172955A1 (en) Distributed mobile enterprise application platform
CN111429072B (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.