CN101836201A - 翻译声明性模型 - Google Patents

翻译声明性模型 Download PDF

Info

Publication number
CN101836201A
CN101836201A CN200880113469A CN200880113469A CN101836201A CN 101836201 A CN101836201 A CN 101836201A CN 200880113469 A CN200880113469 A CN 200880113469A CN 200880113469 A CN200880113469 A CN 200880113469A CN 101836201 A CN101836201 A CN 101836201A
Authority
CN
China
Prior art keywords
action
declarative models
order
executive plan
model
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.)
Granted
Application number
CN200880113469A
Other languages
English (en)
Other versions
CN101836201B (zh
Inventor
I·塞杜金
L·S·瓦内利三世
G·M·文卡特拉马纳帕
S·莫汉蒂
C·S·塞万
A·迪胡特
R·R·瑞格哈文达尔劳
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 CN101836201A publication Critical patent/CN101836201A/zh
Application granted granted Critical
Publication of CN101836201B publication Critical patent/CN101836201B/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/30Creation or generation of source code
    • 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/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明延及用于翻译声明性模型的方法、系统和计算机程序产品。本发明的各实施例便于处理声明性模型来对应用程序执行各种操作,诸如例如应用程序部署、应用程序更新、诸如开始和停止等应用程序控制、通过操纵应用程序来发出事件以进行的应用程序监视等等。应用程序的声明性模型在目标环境上处理和实现,此后它们可被执行、扩展、以及监视。

Description

翻译声明性模型
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
随着计算机化的系统日益普及,此类系统内采用的软件和硬件的复杂度也日益增加。一般而言,对看起来愈加复杂的软件的需求持续增长,这进一步趋向于成为推动硬件更大开发的动力之一。例如,如果应用程序对给定硬件系统要求太高,则该硬件系统可能效率低下地操作,或者完全无法处理该应用程序。然而,应用程序开发的目前趋势通过至少部分地使用分布式应用程序已移除了许多这些类型的硬件约束。一般而言,分布式应用程序包括在若干不同的硬件组件上——往往是在分层环境中的不同计算机系统上执行的组件。
在分布式应用程序下,不同的计算机系统可通过网络来彼此通信传递各种处理结果。由此,一组织将采用分布式应用服务器来管理众多不同计算机系统上的若干不同分布式应用程序。例如,用户可采用一个分布式应用服务器来管理在一组不同的计算机系统上执行的电子商务应用程序的操作。用户也可使用分布式应用服务器来管理在相同的或甚至是不同的一组计算机系统上的客户管理应用程序的执行。
当然,通过分布式应用服务器管理的每个对应的分布式应用又可具有通过不同的(且可能是不同配置的)网络连接在其他不同的(且可能是不同配置的)计算机系统上执行的若干不同的模块和组件。因此,尽管通过若干不同计算机系统组合处理能力的这一能力是优点,但存在着与分布式应用程序模块相关联的各种复杂性。
例如,常规分布式应用程序服务器一般未针对高效缩放性配置。即,大多数分布式应用服务器被配置成管理给定的分布式应用程序的精确指令,诸如精确引用和/或组件寻址方案。如此,应用程序的各组件之间通常存在相对紧密的耦合。因此,在管理器想要将特定模块或组件重新部署到另一服务器或一组计算机系统时,该重新部署总是存在着引发错误(例如,由于网络协议、系统配置等的差异)的某种(并且可能是显著的)可能。在消息未被向前传递到需要它们的地方的情况下或在它们未被正确地向前传递的情况下,可能造成这些错误。
简要概述
本发明延及用于翻译声明性模型的方法、系统和计算机程序产品。一种计算机系统包括一个或多个驱动程序。每一驱动程序被配置成处理用于不同技术的指定组合的模型。该计算机系统还包括一个或多个翻译器。每一翻译器被配置成处理表示来自多种不同技术的指定技术内的对象的模型元素。
在某些实施例中,该计算机系统接收声明性模型连同命令。该声明性模型和该命令共同指示基于所接收的声明性模型来为一应用程序实现该命令的意图。该计算机系统标识被配置成处理与所接收的声明性模型中指示的技术组合相对应的声明性模型的驱动程序。该计算机系统将所接收的声明性模型和命令转发到所标识的驱动程序。所标识的驱动程序解析所接收的声明性模型来标识各模型元素及其相互关系。
对于每一所标识的模型元素,该计算机系统标识被配置成翻译与所标识的模型元素相对应的指定技术的模型元素的翻译器。对于每一所标识的模型元素,该计算机系统将该模型元素发送到所标识的翻译器。
对于每一所标识的模型元素,该计算机系统接收要在指定技术内执行以部分地为该应用程序实现该命令的动作序列。所接收的动作序列是完全实现该命令所要执行的全部动作的子集。
该计算机系统将所接收的针对在声明性模型中标识的模型因素的动作序列组装成执行计划。以相对于所接收的针对其他模型元素的动作序列的指定次序来将所接收的动作序列组装成执行计划。该指定次序基于该模型元素相对于所接收的声明性模型中的其他模型元素的关系。该计算机系统执行该执行计划来为应用程序实现命令。对执行计划的执行包括以指定次序执行所接收的针对每一模型元素的动作序列。
在其他实施例中,将应用程序的当前和先前执行计划进行比较。比较的结果用于导出新执行计划。导出新执行计划可包括基于当前执行计划中所包括或未包括的动作来添加、删除、更新、以及逆转来自先前执行计划的动作。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可获得本发明的上述和其他优点和特征的方法,将通过引用附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1示出了便于翻译声明性模型的示例计算机体系结构。
图2A-2B示出用于翻译声明性应用程序模型的更详细的计算机体系结构的不同视图。
图3示出用于翻译声明性应用程序模型的计算机体系结构的进一步分解视图。
图4示出用于翻译模型来实现所接收命令的示例方法的流程图。
图5示出用于翻译声明性应用程序模型来更新应用程序的计算机体系结构的示例。
图6示出用于更新应用程序的更新动作的示例。
图7示出用于翻译模型来实现更新命令的示例方法的流程图。
详细描述
本发明延及用于翻译声明性模型的方法、系统和计算机程序产品。一种计算机系统包括一个或多个驱动程序。每一驱动程序被配置成处理用于不同技术的指定组合的模型。该计算机系统还包括一个或多个翻译器。每一翻译器被配置成处理表示来自多种不同技术的指定技术内的对象的模型元素。
在某些实施例中,该计算机系统接收声明性模型连同命令。该声明性模型和命令共同指示基于所接收的声明性模型来为一应用程序实现该命令的意图。该计算机系统标识被配置成处理与该所接收的声明性模型中指示的技术的组合相对应的声明性模型的驱动程序。该计算机系统将所接收的声明性模型和命令转发到所标识的驱动程序。所标识的驱动程序解析所接收的声明性模型来标识各模型元素及其相互关系。
对于每一所标识的模型元素,该计算机系统标识被配置成翻译与所标识的模型元素相对应的指定技术的模型元素的翻译器。对于每一所标识的模型元素,该计算机系统将该模型元素发送到所标识的翻译器。
对于每一所标识的模型元素,该计算机系统接收要在指定技术内执行以部分地为该应用程序实现该命令的动作序列。所接收的动作序列是完全实现该命令所要执行的全部动作的子集。
该计算机系统将所接收的针对在声明性模型中标识的模型因素的动作序列组装成执行计划。以相对于所接收的针对其他模型元素的动作序列的指定次序来将所接收的动作序列组装成执行计划。该指定次序基于该模型元素相对于所接收的声明性模型中的其他模型元素的关系。该计算机系统执行该执行计划来为应用程序实现命令。对执行计划的执行包括以指定次序执行所接收的针对每一模型元素的动作序列。
在其他实施例中,将应用程序的当前和先前执行计划进行比较。比较的结果用于导出新执行计划。导出新执行计划可包括基于当前执行计划中所包括或未包括的动作来添加、删除、更新、以及逆转来自先前执行计划的动作。
本发明的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或储存计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:物理存储介质和传输介质。
物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,应当理解,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到物理存储介质。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的物理存储介质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1示出了便于翻译声明性模型的示例计算机体系结构100。如图1所示,计算机体系结构100包括翻译系统101和环境105。环境105还包括可由翻译系统101访问的多个资源,诸如举例而言资源105A、105B、以及105C。如进一步描绘的,翻译系统101接收声明性模型102和命令103。翻译系统101根据命令103翻译声明性模型102,从而使得动作104A、104B、以及104C在环境105内执行。
一般而言,模型是描述诸如应用程序模块(例如,分布式应用程序的可分布组件)等主题的数据。因此,声明性模型102可以描述彼此连接或相关的一个或多个应用程序模块。每一模块还可包括也可彼此相关的一个或多个资源。因此,声明性模型102的各元素可用来描述表示分布式应用程序的至少一部分的相关应用程序模块和资源。例如,声明性模型102可以描述web服务的模块,该web服务包括资源(例如,文件)、人工产物(例如,必须创建以主存该web服务的IIS虚拟目录)、以及配置信息。
一般而言,命令表示要对模型执行的操作。命令实际上可以表示可对模型执行的任何操作,诸如举例而言部署、解除部署、开始、停止、更新、监视等。因此,命令103可以表示要对声明性模型102执行的操作。
模型连同命令一起可以用来表示意图。所表示的意图可以是用户意图或自动化意图。例如,声明性模型102连同命令103一起可以表示用户的“部署我的web服务”、“开始执行我的web服务”等意图。
因此,响应于接收到声明性模型102和命令103,翻译系统101可处理模型102和命令103以实现所表示的意图。实现所表示的意图可包括对环境105的资源执行一个或多个动作,如动作104A、104B、104C等。例如,为了部署用户的web服务,翻译系统101可将文件复制到资源105B,在资源105A上创建人工产物(如在web服务器上创建目录),以及创建或更改该web服务所需的资源105C(例如,配置文件)。
图2A示出了便于翻译声明性应用程序模型的示例计算机体系结构200。计算机体系结构200中描绘了工具225、储存库220、执行模块215、驱动程序管理器230、以及分析模块210。所示组件中的每一个可通过诸如例如局域网(“LAN”)、广域网(“WAN”)或甚至因特网等网络彼此连接。因此,所描绘的组件中的每一个以及任何其他连接组件都可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
如图所示,工具225可用来编写应用程序的并且存储在储存库220中的声明性模型,如储存库220中的声明性应用程序模型253。声明性模型用来确定真实世界运行(部署的)应用程序的结构和行为。声明性模型还用于确定从基于该声明性模型部署的应用程序报告(发出)什么事件。因此,用户(例如,分布式应用程序开发者)可使用一个或更多个工具225来创建声明性模型253。声明性模型可包括声明如何配置和执行应用程序的多个互相关的模型元素。
一般而言,声明性模型包括表达分布式应用程序的应用程序意图的一个或多个高级声明集合。因此,高级声明一般描述分布式应用程序中的一个或多个模块的操作和/或行为。然而,高级声明不一定描述部署具有该特定操作/行为的分布式应用程序所需的实现步骤(但在适当的情况下它们可以描述)。例如,声明性应用程序模型253可以表达工作流的一般化意图,包括例如第一和第二web服务彼此连接。然而,声明性应用程序模型153不一定描述第一和第二web服务彼此连接的方式(例如,协议)或位置(例如,URI端点)。两web服务连接的方式和位置的具体细节基于web服务所部署的位置来确定(例如,具体机器和具体web服务器配置)。
可响应于接收到对声明性应用程序模型执行操作的命令来实现对应用程序的基于声明性应用程序模型的应用程序控制。例如,执行模块215可接收输入(例如,用户发起的输入或自动化输入)。输入是从工具225或从计算机程序(例如用户界面或程序界面上的)接收到的。输入可包括对模型(例如,文件名、URL等)和命令的引用。该命令表示要对所引用的模型执行的操作(例如,部署、解除部署、开始、停止、更新等)。
为对应用程序执行声明性模型所描述的所请求操作,将该声明性应用程序模型发送到执行模块215。执行模块215可细化声明性应用程序模型,直到不存在歧义并且细节足以供驱动程序消费为止。因此,执行模块215可接收并细化声明性应用程序模型253,以使声明性应用程序模型253可由驻留在驱动程序管理器230内部的驱动程序翻译成所部署的真实世界应用程序。
一般而言,“细化”声明性模型可包括诸如例如逐步完善等某种类型的工作分解结构,以使声明性模型指令被充分完成以供驱动程序或驱动程序管理器230进行翻译。由于声明性模型可由人类用户相对松散地编写(即,包含一般化意图指令或请求),因此可能存在执行模块215修改或补充声明性模型以部署应用程序的不同程度或范围。工作分解模块216可以实现诸如逐步完善算法等弱分解结构算法,以确定何时已达到适当粒度并且指令对驻留在驱动程序管理器230中的驱动程序而言是足够的。
执行模块215还可以解决声明性模型中所包括的相关性和约束。例如,执行模块215可被配置成基于声明性应用程序模型253中的元素之间的相关性(例如,一个web服务连接到另一个)的语义来细化声明性应用程序模型253。因此,执行模块215和工作分解模块216可以互操作来输出详细应用程序模型253D,该详细应用程序模型253D提供驻留在驱动程序管理器230中的驱动程序、且具有足够信息来部署分布式应用程序207。
另外,执行模块215可被配置成填充关于计算机系统分配的缺失数据。例如,执行模块可以标识声明性模型253中的没有特定计算机系统地址需求或操作需求的多个不同的模块。因此,执行模块215可以向可用计算机系统分配分布式应用程序模块。执行模块215可以推理出将数据填充到经细化的声明性应用程序模型253中的最佳方式。例如,如先前所描述的,执行组件215可基于连接接近性来确定并决定对web服务使用什么传输,或者基于适用于按需处理预期高峰的因素来确定和决定如何分配分布式应用程序模块。执行模块215随后可以在详细应用程序模型253D(或其一个分段)中记录缺失数据。该详细应用程序模型还可以保存在储存库220中。
在补充或替换实施例中,执行模块215可被配置成计算声明性应用程序模型253中的相关数据。例如,执行模块215可基于对机器的分布式应用程序模块分配来计算相关数据。因此,执行模块215可以计算端点上的URI地址,并且将对应的URI地址从提供者端点传播到消费者端点。另外,执行模块215可以评估声明性应用程序模型253中的约束。例如,执行组件215可被配置成检查两个分布式应用程序模块实际上是否可被分配给同一机器,并且如果为否,则执行模块215可细化详细应用程序模型253D以适应该要求。
在向声明性应用程序模型253添加了所有适当的数据(或以其他方式修改/细化)后,执行组件215可以最终确定经细化的详细应用程序模型253D,以使其可由驻留在驱动程序管理器230中的平台专用驱动程序来翻译。为了最终确定或完成详细应用程序模型253D,执行模块215可以例如将声明性应用程序模型划分成各个分段,这些分段可被作为任何一个或多个平台专用驱动程序的目标。因此,执行模块215可以用其目标驱动程序(例如,驻留在驱动程序管理器230中的平台专用驱动程序的地址/ID)来标记每一声明性应用程序模型(或其分段)。此外,执行模块215可以验证详细应用程序模型(例如,253D)实际上可由驻留在驱动程序管理器230中的驱动程序翻译,并且如果为是则将该详细应用程序模型(或其分段)传递给驱动程序管理器230以分派给适当的驱动程序来进行翻译。
在任何情况下,驱动程序管理器230与一个或多个驱动程序和翻译器互操作以将详细应用程序模块253翻译成一个或多个(平台专用)动作233。如在图2A中所示,动作233可用来实现分布式应用程序207的模型命令226中所表示的操作的意图。
在部署期间,分布式应用程序可以提供关于执行的操作信息。例如,在执行期间,分布式应用程序207可以发出指示已在分布式应用程序207处发生的事件(例如,执行或性能问题)的事件流237。在一个实现中,分布式应用程序207在连续的、正在进行的基础上发出事件流237,而在其他实现中,分布式应用程序207在调度基础上(例如,基于驻留在驱动程序管理器230中的平台专用驱动程序所设置的调度)发送事件流237。驱动程序管理器230又将事件流237传送给分析模块210以供分析、调节、和/或进行其他适当的修改。事件流237中所发出的事件在声明性应用程序模型253中定义。
一般而言,分析模块210基于存储在储存库220中的声明性观察模型(例如,观察模型276)连同声明性应用程序模型253一起来聚集、关联、并用其他方式过滤来自事件流237的数据,以标识分布式应用程序207的感兴趣的趋势和行为。分析模块210还可以基于所标识的趋势来按需自动地调整声明性应用程序模型253的意图。例如,分析模块210可以向储存库220发送模型修改238以调整声明性模型253的意图。例如,经调整的意图可以在计算机系统快用完系统存储器的情况下减少该计算机系统上每秒所处理的消息的数量,在当前分配的机器重引导过于频繁的情况下在另一机器上重新部署分布式应用程序207,等等。
图2B描绘驱动程序管理器230中可包括的组件的更详细视图。如图2B所示,驱动程序管理器230包括类型定位器241、驱动程序342、以及翻译器261。
类型定位器241是将模型和模型元素映射到可以处理它们的对应的驱动程序和翻译器的查找机制。
驱动程序242被配置成接收并处理模型和命令。驱动程序242被配置成与其理解的一列命令和其支持的一组技术模型一起使用。例如,驱动程序242可以是能够翻译描述使用微软
Figure GPA00001115679300111
Windows通信框架(“WCF”)并将被主存在微软因特网信息服务器(“IIS”)上的web服务的web服务模块模型的WCF-IIS驱动程序。
如图所示,驱动程序242包括产生执行计划244的模型解释器243。模型解释器243被配置成解析所接收的模型并生成对应的执行计划(例如,执行计划244)。为了从所接收的模型生成执行计划,模型解释器243可以标识模型的各组成模型元素及其相互关系。模型解释器243随后可以调用对应的模型元素解释器来检索每一模型元素的动作序列。模型解释器243将每一模型元素的动作序列组合成单个动作序列以包括在执行计划中。
因此,例如,执行计划244是可被执行以对模型执行一操作的顺序动作集合。执行计划244还提供包含可由动作在其执行期间使用的模型信息的执行上下文。这些动作还使用该上下文来传递其他动作在执行期间所需的信息。
翻译器261是相关动作集合和模型元素解释器的包。翻译器261将与特定技术具有密切关系的各个过程绑定在一起。例如,OSConfig(操作系统配置)翻译器具有可以处理诸如文件和文件夹等操作系统人工产物的动作集合。这些动作可以是创建、复制、移动、删除等。
如图所示,翻译器261包括模型元素解释器262和动作263A、263B、以及263C。模型元素解释器262被配置成解析模型元素并组装可被执行以操作该模型元素所表示的事物的动作序列。
动作263A、263B、以及263C表示基于单个模型元素来操作的可执行过程。例如,CopyFile(复制文件)动作可以将给定文件复制到给定目的地,其中该文件在描述诸如web服务等应用程序模块的模型中由资源模型元素来描述。
动作可包括各种不同的属性。例如,动作可以是幂等的。即,对同一模型元素再次成功执行同一动作将获得同一结果。动作可以具有唯一标识符。如果两个动作要做同样的事情,则这两个动作可具有相同的标识符。例如,当文件具有相同的绝对路径时,安装该文件的两个动作可以具有相同的标识符。
动作可以与对应的逆动作相关联。逆动作可以撤消该动作的效果。例如,CopyFile的逆是移除文件或恢复被盖写的原始文件的过程。动作可以与应用比现有资源更加新的资源版本的对应更新动作相关联。
因此,图2B中所示的各组件和数据可以互操作来实现所接收的模型和命令中所表示的意图。
图3示出用于翻译声明性应用程序模型的示例计算机体系结构300的进一步分解视图。如图所示,计算机体系结构300包括驱动程序管理器330。驱动程序管理器330可与计算机体系结构200中所示的驱动程序管理器230相类似地(或甚至相同地)配置。驱动程序管理器330主存驱动程序和翻译器并接收输入。例如,驱动程序管理器300主存多个驱动程序,诸如举例而言wcf-IIS驱动程序342和Aspx-IIS驱动程序352。
每一驱动程序可包括被配置成解析模型并生成执行计划的模型解释器(例如,分别是模型解释器343和353)。因此,在接收到模型后,每一驱动程序可以标识各组成资源及其相互关系,调用适当的资源解释器来检索动作序列,并将动作序列组装成执行计划。
驱动程序管理器300还主存多个翻译器,诸如举例而言操作系统技术翻译器361、IIS技术翻译器371、以及WCF技术翻译器381。每一翻译器可包括用于解析描述资源的模型元素并组装可对该资源所表示的事物执行的动作序列的资源解释器(例如,分别是资源解释器362、372、以及382)。每一翻译器可以对应于环境的一部分。例如,操作系统技术翻译器361对应于操作系统391,IIS技术翻译器371对应于IIS 392,而WCF技术翻译器381对应于WCF 393。
因此,在翻译器接收到描述资源的模型元素时,该资源表示该环境的对应部分内的某一对象。例如,在操作系统技术翻译器361接收到资源时,该资源对应于操作系统391中的对象(例如,service.svc文件)。类似地,在IIS技术翻译器371接收到资源时,该资源对应于IIS 392中的对象(例如,用户web服务“/myservice(我的服务)”的位置)。同样,在WCF技术翻译器381的情况下,该资源对应于WCF 393中的对象(例如,Web.config)。
一般而言,分派器371被配置成接收模型和命令并将该模型和命令分派给适当的驱动程序。因此,在接收到模型和命令后,分派器371可将该模型转发到类型定位器341。类型定位器341可以接收该模型并基于该模型来定位用于处理该模型的驱动程序的适当类型。类型定位器341可以向分派器371返回标识驱动程序的适当类型的驱动程序ID。分派器371随后可以使用驱动程序ID来向所标识的适当驱动程序分派模型和命令。
驱动程序还可以利用类型定位器341来为模型中所包括的描述资源的模型元素定位适当的翻译器。对于模型中的描述资源的每一模型元素,驱动程序可以将描述资源的模型元素提交给类型定位器341。类型定位器341可以接收描述资源的模型元素并基于该描述资源的模型元素来定位用于翻译该描述资源的模型元素的翻译器的适当类型。类型定位器341可以向驱动程序返回标识驱翻译器的适当类型的翻译器ID。驱动程序随后可以使用翻译器ID来将描述资源的模型元素分派给所标识的适当翻译器。
该适当的翻译器解析所接收的描述资源的模型元素来为所接收的命令组装动作序列,并将该动作序列返回给驱动程序。驱动程序随后将不同的动作序列组装成单个执行计划。驱动程序随后执行该执行计划。该执行计划中的动作被顺序地执行,从而直接在环境上操作(例如,在操作系统391、IIS 391、以及WCF 392中的一个或多个上),以实现模型353和命令329中共同表示的意图。
图4示出用于翻译模型来实现所接收命令的示例方法400的流程图。方法400将参考计算机体系结构300中的组件和数据来描述。
方法400包括接收声明性模型连同命令的动作,该声明性模型和该命令共同指示基于所接收的声明性模型来为应用程序实现该命令的意图(动作401)。例如,分派器371可以接收模型353和命令329。模型353可包括声明如何配置和执行应用程序的多个相互关联的模型元素。命令329可以是用于对应用程序进行部署、解除部署、开始、停止等的命令。
方法400包括标识被配置成处理与所接收的声明性模型中指示的技术的组合相对应的声明性模型的驱动程序的动作(动作402)。例如,分派器371可以向类型定位器341发送模型353。类型定位器341可以接收模型353。类型定位器341可以处理模型353以确定适用于处理模型353的驱动程序的类型。
对驱动程序类型的确定可以基于模型353的各模型元素中指示的和/或与其相关的技术的组合(例如,操作系统、网络协议、数据类型等的组合)。例如,类型定位器341可以确定Wcf-IIS驱动程序342是用于基于模型353中所包含的与IIS 392和WCF 393相关的模型元素来处理模型353的适当驱动程序。响应于该确定,类型定位器314可以将驱动程序ID 384(驱动程序342的标识符)发送给分派器371。
方法400包括将所接收的声明性模型和命令转发给所标识的驱动程序的动作(动作403)。例如,分派器371可以利用驱动程序ID 384来将模型353和命令329转发给Wcf-IIS驱动程序342。
方法400包括所标识的驱动程序解析所接收的声明性模型以标识各模型元素及其相互关系的动作(动作404)。模型解释器343可以解析模型353以标识模型353内的各模型元素和各模型元素彼此的关系。例如,模型解释器343可以标识模型元素354A、354B、354C等。
对于每一所标识的模型元素,方法400包括标识被配置成翻译与所标识的模型元素相对应的指定技术的模型元素的翻译器的动作(动作405)。例如,Wcf-IIS驱动程序342可以将所标识的模型元素(如模型元素354A)发送给类型定位器341。类型定位器341可以接收模型元素354A。类型定位器可以处理模型元素354A来确定适用于翻译模型元素354A的翻译器的类型。
对翻译器类型的确定可以基于模型元素354A中所指示的和/或与其相关的指定技术(例如,操作系统、网络协议、数据类型等之一)。例如,类型定位器341可以基于指示操作系统391或与其相关的模型元素354A来确定操作系统技术翻译器361是用于翻译模型元素354A的适当驱动程序。响应于该确定,类型定位器314可以将翻译器ID 355(翻译器361的标识符)发送给Wcf-IIS驱动程序342。可以对模型353中所包括的模型元素354B、354C等进行类似的确定。
对于每一所标识的模型元素,方法400包括将模型元素发送给翻译器的动作(动作406)。例如,Wcf-IIS驱动程序342可以利用翻译器ID 355来将模型元素354A转发给操作系统技术翻译器361。资源解释器362可以将模型元素354A翻译成动作序列363。动作序列363包括要在操作系统391中执行以实现命令329的意图的一部分的多个动作,如动作363A、363B等。
类似地,Wcf-IIS驱动程序342可以利用适当的翻译器ID来将模型元素354B转发给IIS技术翻译器371。资源解释器372可以将模型元素354B翻译成动作序列373。动作序列373包括要在IIS 392中执行以实现命令329的意图的另一部分的多个动作,如动作373A、373B等。
同样,Wcf-IIS驱动程序342可以利用适当的翻译器ID来将模型元素354C转发给WCF技术翻译器381。资源解释器382可以将模型元素354C翻译成动作序列383。动作序列383包括要在WCF 393中执行以实现命令329的意图的又一部分的多个动作,如动作383A、383B等。
基于指示指定技术和/或与其相关的模型元素,还可以向操作系统技术翻译器361、IIS技术翻译器371、WCF技术翻译器381中的任一个以及其他适当的技术翻译器(未示出)发送其它模型元素。
对于每一所标识的模型元素,方法400包括接收要在指定技术内执行来为应用程序部分地实现命令的动作序列的动作(动作407),该动作序列是完全实现该命令所要执行的全部动作的子集。例如,模型解释器343可以接收来自操作系统技术翻译器361的动作序列363、来自ISS技术翻译器371的动作序列373、来自WCF技术翻译器381的动作序列383等。每一动作序列是基于模型353来为应用程序完全实现命令329所要执行的全部动作的子集。
对于每一所标识的模型元素,方法400包括将所接收的针对模型元素的动作序列组装成执行计划的动作,基于该模型元素与所接收的声明性模型中的其他模型元素的关系以相对于所接收的针对其他模型元素的动作序列的指定次序来将该所接收的动作序列组装成执行计划(动作408)。例如,模型解释器343可以将动作序列363、373、383等组装成执行计划344。基于模型353中各对应模型元素之间的关系以指定次序来组装动作序列363、373、383等。
方法400包括执行该执行计划来为应用程序实现该命令的动作,对执行计划的执行包括以指定次序执行所接收的针对每一模型元素的动作序列(动作409)。例如,Wcf-IIS驱动程序342可以执行执行计划344来为要使用操作系统391、IIS 392、以及WCF 393等的各个部分的应用程序实现命令329(基于模型353)。
图5示出用于翻译声明性应用程序模型来更新应用程序的计算机体系结构500的示例。如图所示,计算机体系结构500包括驱动程序501、翻译器502、以及比较与更新模块507。在计算机体系结构500内并且如上所述,驱动程序501可以接收模型(例如,模型的当前版本502C以及模型的先前版本502P)和命令(例如,更新命令503),解析出各模型元素(例如,模型元素504),将这些模型元素发送给翻译器502中的适当翻译器,并从该适当翻译器接收返回的动作序列(例如,动作序列506)。从该动作序列,驱动程序501可以创建执行计划,如当前执行计划511和先前执行计划512。
比较与更新模块507被配置成接收应用程序的当前执行计划和先前执行计划并比较这两个执行计划以标识这两个执行计划内的动作序列的差异。根据所标识的差异,比较与更新模块507可以将当前执行计划中的动作应用于先前执行计划中的动作以导出新执行计划。新执行计划可包括用于更新现有应用程序的更新动作。
图6示出用于更新应用程序的更新动作600的示例。行601指示当一动作包括在执行计划的当前版本和先前版本两者中时,在新执行计划中包括更新动作以将动作的先前版本的执行效果更新成动作的当前版本的效果。行602指示当一动作只包括在执行计划的当前版本中时,该动作的当前版本被添加到新执行计划。行603指示当一动作只包括在执行计划的先前版本中时,在新执行计划中包括逆动作以移除动作的先前版本的执行效果。
图7示出用于翻译模型来实现更新命令的示例方法700的流程图。方法700将参考计算机体系结构500以及更新动作600中的组件和数据来描述。
方法700包括接收声明性模型连同更新命令的动作,该声明性模型和该更新命令共同指示基于所接收的声明性模型的先前版本来更新应用程序的意图(动作701)。例如,驱动程序501可以接收模型的当前版本502C和更新命令503。模型的当前版本502C和更新命令503共同表示更新应用程序522的意图。
方法700包括为所接收的声明性模型组装当前执行计划的动作,该当前执行计划包括基于所接收的声明性模型中的各模型元素之间的关系来以指定次序组装的动作序列(动作702)。例如,驱动程序501可以从模型的当前版本502C解析出模型元素,并将这些模型元素(例如,模型元素504中所包括的模型元素)发送给翻译器502中的适当翻译器。该适当翻译器可以返回动作序列(例如,动作序列506中所包括的动作序列)。驱动程序501可以从该动作序列组装当前执行计划511。
方法700包括访问所接收的声明性模型的先前版本的动作(动作703)。例如,驱动程序501可以访问模型的先前版本502P。应用程序522基于模型的先前版本502P。
方法700包括为所接收的声明性模型的先前版本组装先前执行计划的动作,该先前执行计划包括基于所接收的声明性模型的先前版本中的各模型元素之间的关系来以指定次序组装的先前动作序列(动作704)。例如,驱动程序501可以从模型的先前版本502P解析出模型元素,并将这些模型元素(例如,模型元素504中所包括的模型元素)发送给适当的翻译器502。该适当翻译器可以返回动作序列(例如,动作序列506中所包括的动作序列)。驱动程序501可以从该动作序列组装先前执行计划512。
方法700包括将当前执行计划与先前执行计划进行比较的动作(动作705)。例如,比较与更新模块507可以将当前执行计划511与先前执行计划512进行比较。根据该比较,比较与更新模块507可以确定动作是否被包括在当前执行计划511和先前执行计划512之一或两者中。
方法700包括基于比较结果来导出用于更新应用程序的新执行计划的动作(动作706)。例如,比较与更新模块507可以基于将当前执行计划511与先前执行计划512进行比较的结果来导出新执行计划513以用于更新应用程序522。
新执行计划的导出可包括将更新、当前、或逆动作插入到新执行计划。例如,对于当前执行计划和先前执行计划两者中所包括的每一动作,在新执行计划中包括更新动作(动作707)。对于仅当前执行计划中所包括的每一动作,将该来自当前执行计划的动作包括在新执行计划中(动作708)。对于仅先前执行计划中所包括的每一动作,将用于逆转该先前执行计划中的动作的逆动作包括在新执行计划中(动作709)。该逆动作用于在计算环境521内消除来自先前执行计划的动作的影响。
方法700包括执行新执行计划以更新计算环境内的应用程序的动作(动作710)。例如,驱动程序510可以执行新执行计划513。对新执行计划513的执行可以使得动作531被发送到计算环境521中。动作531可以在计算环境中实现以将应用程序522更新成应用程序522U。
本发明的各实施例也是可扩展的。驱动程序可以向类型定位器(例如314)注册以向分派器展示功能。类似地,翻译器可以向类型定位器注册以向驱动程序展示功能。驱动程序可以重用现有翻译器。例如,参考图3,Aspx-IIS驱动程序352可以使用操作系统技术翻译器361和IIS技术翻译器371(连同Acpx翻译器(未示出))来处理各模型元素。
各实施例可以提供驱动程序、模型解释器、模型元素解释器、以及动作的基类和一般实现。因此,用于创建并运行执行计划、定位类型、以及生成更新计划的基础结构都通过共同框架来提供。结果,开发者可以集中于创建新模型,并且翻译器集中于将各模型元素处理成动作。各个基类可以任选地扩展以创建模型和模型元素解释器,从而处理关系未在模型中表达的情况,由此可能阻止基本实现推断动作序列。
因此,本发明的各实施例便于处理声明性模型来对应用程序执行各种操作,诸如举例而言应用程序部署、应用程序更新、诸如开始和停止等应用程序控制、通过操纵应用程序发出事件来进行的应用程序监视等等。应用程序的声明性模型在目标环境上处理和实现,此后它们可被执行、扩展、以及监视。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (20)

1.一种用于在计算环境内的计算机系统处翻译模型(353)以在所述计算环境内实现所接收命令(329)的方法,所述计算环境包括多种不同的技术,所述计算机系统包括一个或多个驱动程序(342、352),每一驱动程序被配置成处理用于不同技术的指定组合的模型(353),所述计算机系统包括一个或多个翻译器(361、371、381),每一翻译器被配置成处理表示来自所述多种技术的指定技术内的对象的模型元素(354A、354B、354C),所述方法包括:
接收声明性模型(353)连同命令(329)的动作,所述声明性模型(353)和所述命令(329)共同指示基于所接收的声明性模型(353)来为应用程序实现所述命令(329)的意图;
标识被配置成处理与所接收声明性模型(353)中指示的技术组合相对应的声明性模型的驱动程序(342)的动作;
将所接收的声明性模型(353)和所述命令(329)转发给所标识的驱动程序(342)的动作;
所标识的驱动程序(342)解析所接收的声明性模型(353)以标识各模型元素(354A、354B、354C)及其相互关系的动作;
对于每一所标识的模型元素:
标识被配置成翻译与所标识的模型元素相对应的指定技术的模型元素的翻译器(361、371、381)的动作;
将所述模型元素发送给所标识的翻译器的动作;
接收要在所述指定技术内执行来为所述应用程序部分地实现所述命令(329)的动作序列(363、373、383)的动作,所述动作序列是完全实现所述命令所要执行的全部动作的子集;以及
将所接收的针对所述模型元素的动作序列组装成执行计划(344)的动作,基于所述模型元素与所接收的声明性模型中的其他模型元素的关系以相对于所接收的针对其他模型元素的动作序列的指定次序来将所接收的动作序列组装成所述执行计划;以及
执行所述执行计划(344)来为所述应用程序实现所述命令(329)的动作,对所述执行计划(344)的执行包括以所述指定次序执行所接收的针对每一模型元素的动作序列(363、373、383)。
2.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来部署应用程序的命令的动作。
3.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来解除部署应用程序的命令的动作。
4.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来开始应用程序的命令的动作。
5.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来停止应用程序的命令的动作。
6.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来发起或终止对应用程序的监视的命令的动作。
7.如权利要求1所述的方法,其特征在于,接收声明性模型连同命令的动作包括接收基于所述声明性模型来更新应用程序的命令的动作。
8.如权利要求1所述的方法,其特征在于,接收要在所述指定技术内执行的动作序列的动作包括接收幂等动作序列的动作。
9.一种用于在计算环境内的计算机系统处使用的计算机程序产品,所述计算环境包括多种不同的技术,所述计算机系统包括一个或多个驱动程序,每一驱动程序被配置成处理用于不同技术的指定组合的模型,所述计算机系统包括一个或多个翻译器,每一翻译器被配置成处理表示来自所述多种技术的指定技术内的对象的模型元素,所述计算机程序产品用于实现一种用于翻译模型以在所述计算环境内实现所接收命令的方法,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个物理存储介质,所述指令当在处理器处执行时使得所述计算机系统执行所述方法,所述方法包括以下动作:
接收声明性模型连同命令,所述声明性模型和所述命令共同指示基于所接收的声明性模型来为应用程序实现所述命令的意图;
标识被配置成处理与所接收的声明性模型中指示的技术的组合相对应的声明性模型的驱动程序;
将所接收的声明性模型和所述命令转发给所标识的驱动程序;
解析所接收的声明性模型来标识各模型元素及其相互关系;
对于每一所标识的模型元素:
标识被配置成翻译针对与所标识的模型元素相对应的指定技术的模型元素的翻译器;
将所述模型元素发送给所述翻译器;
接收要在所述指定技术内执行来为所述应用程序部分地实现所述命令的动作序列,所述动作序列是完全实现所述命令所要执行的全部动作的子集;以及
将所接收的针对所述模型元素的动作序列组装成执行计划,基于所述模型元素与所接收的声明性模型中的其他模型元素的关系以相对于所接收的针对其他模型元素的动作序列的指定次序来将所接收的动作序列组装成所述执行计划;以及
执行所述执行计划来为所述应用程序实现所述命令,对所述执行计划的执行包括以所述指定次序执行所接收的针对每一模型元素的动作序列。
10.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来部署应用程序的命令的计算机可执行指令。
11.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来解除部署应用程序的命令的计算机可执行指令。
12.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来开始应用程序的命令的计算机可执行指令。
13.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来停止应用程序的命令的计算机可执行指令。
14.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来发起或终止对应用程序的监视的命令的计算机可执行指令。
15.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收声明性模型连同命令的计算机可执行指令包括在执行时使得所述计算机系统接收基于所述声明性模型来更新应用程序的命令的计算机可执行指令。
16.如权利要求9所述的计算机程序产品,其特征在于,在执行时使得所述计算机系统接收要在所述指定技术内执行的动作序列的计算机可执行指令包括在执行时使得所述计算机系统接收幂等动作序列的计算机可执行指令。
17.一种用于在计算环境内的计算机系统处更新所述计算环境内的基于模型的应用程序的方法,所述计算环境包括多种不同的技术,所述计算机系统包括一个或多个驱动程序,每一驱动程序被配置成处理用于不同技术的指定组合的模型,所述计算机系统包括一个或多个翻译器,每一翻译器被配置成处理表示来自所述多种技术的指定技术内的对象的模型元素,所述方法包括:
接收声明性模型连同更新命令的动作,所述声明性模型和所述更新命令共同指示基于所接收的声明性模型的先前版本来更新应用程序的意图;
为所接收的声明性模型组装当前执行计划的动作,所述当前执行计划包括基于所接收的声明性模型中的各模型元素之间的关系来以指定次序组装的动作序列;
访问所接收的声明性模型的先前版本的动作;
为所接收的声明性模型的先前版本组装先前执行计划的动作,所述先前执行计划包括基于所接收的声明性模型的先前版本中的各模型元素之间的关系来以指定次序组装的先前动作序列;
将所述当前执行计划与所述先前执行计划进行比较的动作;
基于所述比较来导出用于更新所述应用程序的新执行计划的动作;以及
执行所述新执行计划以更新所述计算环境内的所述应用程序的动作。
18.如权利要求17所述的方法,其特征在于,所述基于所述比较来导出用于更新所述应用程序的新执行计划的动作包括在所述新执行计划内包括针对所述当前执行计划和所述先前执行计划两者中所包括的至少一个动作的更新动作,所述更新动作用于根据来自所述当前执行计划的所述动作来更新来自所述先前执行计划的所述动作。
19.如权利要求17所述的方法,其特征在于,所述基于所述比较来导出用于更新所述应用程序的新执行计划的动作包括将仅所述当前执行计划中所包括的至少一个动作包括在所述新执行计划中。
20.如权利要求17所述的方法,其特征在于,所述基于所述比较来导出用于更新所述应用程序的新执行计划的动作包括在所述新执行计划中包括仅所述先前执行计划中所包括的至少一个动作的逆动作,所述逆动作用于在所述计算环境内消除所述至少一个动作的影响。
CN2008801134699A 2007-10-26 2008-10-26 用于翻译声明性模型的方法及系统 Active CN101836201B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/925,201 US8099720B2 (en) 2007-10-26 2007-10-26 Translating declarative models
US11/925,201 2007-10-26
PCT/US2008/081231 WO2009055751A1 (en) 2007-10-26 2008-10-26 Translating declarative models

Publications (2)

Publication Number Publication Date
CN101836201A true CN101836201A (zh) 2010-09-15
CN101836201B CN101836201B (zh) 2013-03-06

Family

ID=40580077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801134699A Active CN101836201B (zh) 2007-10-26 2008-10-26 用于翻译声明性模型的方法及系统

Country Status (5)

Country Link
US (2) US8099720B2 (zh)
EP (1) EP2218021A4 (zh)
JP (1) JP5346032B2 (zh)
CN (1) CN101836201B (zh)
WO (1) WO2009055751A1 (zh)

Families Citing this family (23)

* 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
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8434056B2 (en) * 2009-06-17 2013-04-30 Phillip J. Windley Rule engine system controlling devices of disparate types and protocols
US8458676B2 (en) 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US10244017B2 (en) * 2009-08-14 2019-03-26 International Business Machines Corporation Processing of streaming data with a keyed join
US8868518B2 (en) * 2009-08-14 2014-10-21 International Business Machines Corporation Processing of streaming data with keyed aggregation
US8321865B2 (en) * 2009-08-14 2012-11-27 International Business Machines Corporation Processing of streaming data with a keyed delay
US8473783B2 (en) * 2010-11-09 2013-06-25 International Business Machines Corporation Fault tolerance in distributed systems
US9098344B2 (en) 2011-12-27 2015-08-04 Microsoft Technology Licensing, Llc Cloud-edge topologies
GB2507338A (en) 2012-10-26 2014-04-30 Ibm Determining system topology graph changes in a distributed computing system
US9588740B1 (en) * 2013-03-09 2017-03-07 Ca, Inc. Systems, methods and computer program products for construction of cloud applications
US10075508B2 (en) * 2013-03-15 2018-09-11 Microsoft Technology Licensing, Llc Application-centric socialization
US9645809B2 (en) 2013-05-29 2017-05-09 Microsoft Technology Licensing, Llc Updating software components through online stores
US10417116B2 (en) * 2016-07-28 2019-09-17 International Business Machines Corporation System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay
US11039225B2 (en) * 2016-12-15 2021-06-15 Microsoft Technology Licensing, Llc Declarative IoT data control
US10917706B2 (en) 2016-12-15 2021-02-09 Microsoft Technology Licensing, Llc Configurable IoT device data collection
US10394699B1 (en) * 2017-09-11 2019-08-27 Cadence Design Systems, Inc. Method and system for reusing a refinement file in coverage grading
US10848379B2 (en) 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments

Family Cites Families (213)

* 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
US5327529A (en) 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
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
US5809266A (en) 1994-07-29 1998-09-15 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
EP0733972B1 (en) 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
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
US6026404A (en) 1997-02-03 2000-02-15 Oracle Corporation Method and system for executing and operation in a distributed environment
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
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
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
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
WO2001025914A2 (en) 1999-10-01 2001-04-12 Accenture Llp. Operations architectures for netcentric computing systems
JP3738624B2 (ja) 1999-10-26 2006-01-25 日本電気株式会社 分散アプリケーション制御システム及び制御方法並びにプログラムを記録した記録媒体
AU2001227857A1 (en) 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications 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
US7392210B1 (en) 2000-04-07 2008-06-24 Jpmorgan Chase Bank, N.A. Workflow management system and method
US20020038217A1 (en) 2000-04-07 2002-03-28 Alan Young System and method for integrated data analysis and management
US7310801B2 (en) 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6854069B2 (en) 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
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
US6505342B1 (en) 2000-05-31 2003-01-07 Siemens Corporate Research, Inc. System and method for functional testing of distributed, component-based software
US7685239B2 (en) 2000-06-28 2010-03-23 Canon Kabushiki Kaisha Image communication apparatus, image communication method, and memory medium
US20030172135A1 (en) 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
AU2001288644A1 (en) 2000-09-01 2002-04-08 International Interactive Commerce, Ltd. System, method, uses, products, program products, and business methods for distributed internet and distributed network services
US6920458B1 (en) 2000-09-22 2005-07-19 Sas Institute Inc. Model repository
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
US7814198B2 (en) 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
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
ATE443285T1 (de) 2001-04-05 2009-10-15 Inpeco Ip Ltd Verfahren zur verwaltung von arbeitszellensystemen mit einem automatisierungsverwaltungssystem
US6934702B2 (en) 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
WO2002099635A1 (en) 2001-06-01 2002-12-12 The Johns Hopkins University System and method for an open autonomy kernel (oak)
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
US6986135B2 (en) 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US7756723B2 (en) 2001-09-07 2010-07-13 Eclipsys Corporation System and method for managing patient bed assignments and bed occupancy in a health care facility
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
AU2002362090A1 (en) 2001-12-07 2003-06-23 Dbase, Inc. Drag-and-drop dynamic distributed object model
WO2003060707A1 (en) 2002-01-11 2003-07-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
AU2003202356A1 (en) 2002-02-07 2003-09-02 Thinkdynamics 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
US7130881B2 (en) 2002-05-01 2006-10-31 Sun Microsystems, Inc. Remote execution model for distributed application launch and control
US7219351B2 (en) 2002-05-30 2007-05-15 Oracle International Corporation Multi-view conversion system and method for exchanging communications between heterogeneous applications
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
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
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7096311B2 (en) 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7702739B1 (en) 2002-10-01 2010-04-20 Bao Tran Efficient transactional messaging between loosely coupled client and server over multiple intermittent networks with policy based routing
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
US7412658B2 (en) * 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
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
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
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
DE10331873B4 (de) 2003-07-14 2022-09-01 Robert Bosch Gmbh Verfahren zur Überwachung verteilter Software
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
US7503043B2 (en) 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
CA2443657A1 (en) 2003-09-30 2005-03-30 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
WO2005043323A2 (en) 2003-10-27 2005-05-12 Archivas, Inc. Policy-based management of a redundant array of independent nodes
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
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
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
US7561673B2 (en) 2004-09-30 2009-07-14 Microsoft Corporation Integration of speech services with telecommunications
US7631291B2 (en) 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US8170901B2 (en) 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
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
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
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
US7689455B2 (en) 2005-04-07 2010-03-30 Olista Ltd. Analyzing and detecting anomalies in data records using artificial intelligence
US20100262901A1 (en) 2005-04-14 2010-10-14 Disalvo Dean F Engineering process for a real-time user-defined data collection, analysis, and optimization tool (dot)
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
EP1715419A1 (en) 2005-04-22 2006-10-25 Ubs Ag A technique for platform-independent service modeling
JP4372043B2 (ja) 2005-05-12 2009-11-25 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7752598B2 (en) * 2005-05-13 2010-07-06 International Business Machines Corporation Generating executable objects implementing methods for an information model
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
US7761851B2 (en) 2005-05-31 2010-07-20 International Business Machines Corporation Computer method and system for integrating software development and deployment
US7529990B2 (en) 2005-05-31 2009-05-05 Bsquare Corporation Systems and methods for managing multi-device test sessions
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
ES2383307T3 (es) 2005-07-29 2012-06-20 Telecom Italia S.P.A. Procedimiento y sistema para generar señales de instrucción para realizar intervenciones en una red de comunicación, y producto de programa informático correspondiente
JP5019817B2 (ja) 2005-08-15 2012-09-05 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US7487137B2 (en) * 2005-08-17 2009-02-03 International Business Machines Corporation Apparatus, system, and method for java bean delta generation
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
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
US20070234277A1 (en) 2006-01-24 2007-10-04 Hui Lei Method and apparatus for model-driven business performance management
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
US20070244904A1 (en) 2006-04-18 2007-10-18 Kristopher Durski Method and Architecture for Goal Oriented Applications, Configurations and Workflow Solutions on-the-Fly
US8214474B2 (en) 2006-04-18 2012-07-03 International Business Machines Corporation Autonomic computing system with model transfer
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
US7735060B2 (en) 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8095923B2 (en) 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
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
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US7797289B2 (en) 2007-09-05 2010-09-14 Oracle International Corporation Method and apparatus for automatically executing rules in enterprise systems
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US20090112932A1 (en) 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US20090113292A1 (en) 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US8352407B2 (en) 2008-01-21 2013-01-08 Hewlett-Packard Development Company, L.P. Systems and methods for modeling consequences of events
US8015281B2 (en) 2008-04-21 2011-09-06 Microsoft Corporation Dynamic server flow control in a hybrid peer-to-peer network

Also Published As

Publication number Publication date
JP5346032B2 (ja) 2013-11-20
WO2009055751A1 (en) 2009-04-30
US20120042305A1 (en) 2012-02-16
JP2011502309A (ja) 2011-01-20
US20090113437A1 (en) 2009-04-30
US8443347B2 (en) 2013-05-14
CN101836201B (zh) 2013-03-06
EP2218021A4 (en) 2011-10-12
EP2218021A1 (en) 2010-08-18
US8099720B2 (en) 2012-01-17

Similar Documents

Publication Publication Date Title
CN101836201B (zh) 用于翻译声明性模型的方法及系统
CN107391114B (zh) 页面可视化渲染方法及装置
CN1658608B (zh) 用于提供可修改通用应用内容的系统和方法
CN103001963B (zh) 用于最小下载和模拟的页面导航特征的方法和系统
US7962565B2 (en) Method, apparatus and system for a mobile web client
US8225308B2 (en) Managing software lifecycle
CN101681343B (zh) 用于向Web浏览器提供桌面或应用遥控的系统和方法
US7934019B2 (en) System for extending business systems to a mobile workforce
CN107203395A (zh) 资源升级方法、装置及计算机可读存储介质和电子设备
CN1658609B (zh) 定制应用内容供应的系统和方法
CN105453035B (zh) 用于接收对存储在计算机系统处的软件组件的更新的方法
US20090113379A1 (en) Modeling and managing heterogeneous applications
US20060112398A1 (en) System and Methodology Providing Service Invocation for Occasionally Connected Computing Devices
US20060190806A1 (en) Systems and method for deploying a software application on a wireless device
CN103443790A (zh) 用于多服务器预定系统上的同步机制的方法和系统
CN102971707A (zh) 为软件包安装配置计算机系统
CN101101550B (zh) 将新用户界面映射到已有的整合界面的方法和系统
US20180046439A1 (en) Network service providing method and network service station using same
CN1749961A (zh) 使用网络模型的单机软件
CN109413140B (zh) Pacs服务器远程自动升级的方法
US11403084B2 (en) System and method for implementing an orchestration engine
CN104881454A (zh) 参数的更新方法及系统
CN105677536A (zh) 一种任务消息的实现方法及实现该任务消息的任务系统
CN102385617A (zh) 动态域查询及查询转换
CN117130647A (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: 20150428

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

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.