CN101933000B - 管理服务应用程序中的组件程序 - Google Patents

管理服务应用程序中的组件程序 Download PDF

Info

Publication number
CN101933000B
CN101933000B CN200980103908.2A CN200980103908A CN101933000B CN 101933000 B CN101933000 B CN 101933000B CN 200980103908 A CN200980103908 A CN 200980103908A CN 101933000 B CN101933000 B CN 101933000B
Authority
CN
China
Prior art keywords
component programs
value
formulism
service
application
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
CN200980103908.2A
Other languages
English (en)
Other versions
CN101933000A (zh
Inventor
J·伯纳布-奥班
Y·A·哈利迪
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 CN101933000A publication Critical patent/CN101933000A/zh
Application granted granted Critical
Publication of CN101933000B publication Critical patent/CN101933000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了各种方法、系统、以及其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行根据本发明的各实施例的用于根据服务模型来管理服务应用程序中的组件程序的方法。最初,从服务模型中提取可给予组件程序的配置设置。启动用于根据对服务应用程序上的负载水平和/或服务模型中的规约的改变来管理服务应用程序的实例化过程。该实例化过程包括在数据中心内部署组件程序或将其标识为可用,以及自动在所部署的组件程序中传播从配置设置导出的公式化值。将这些导出的公式化值安装到组件程序中,由此提供与服务模型一致的服务应用程序的功能。

Description

管理服务应用程序中的组件程序
背景
通常,软件应用程序被编写成在其配置中允许许多自由度。在利用该特性时,各个用户能够将特定软件应用程序设置成以对每一个用户专用的方式执行。由此,这些结合在单个软件应用程序中的自由度使得该软件应用程序能够产生完全不同的结果。
这种类型的软件应用程序由允许用户经由因特网远程地操纵应用程序的应用服务提供者(ASP)来利用。因为软件应用程序包括自由度,所以用户可向ASP提供性能要求以便手动地编程到应用程序中。此外,大多数软件应用程序包括单独的底层元素,必须单独标识并手动编程这些底层元素以使得软件应用程序可表达性能要求。根据接收到的性能要求来手动编程底层元素的过程是劳动力密集的且容易出错。因此,这种用于定制软件应用程序的特别方法将脆弱性引入软件应用程序从ASP的提供中。这些手动编程的缺点在大量用户不断提供并改变其各自的性能要求时恶化。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的各实施例提供了一种通过提供用于根据服务模型来自动管理服务应用程序中的组件程序的结构(例如,实例化方案)来减少手动编程的缺点的服务建模方法。最初,检测实例化服务应用程序中的组件程序的触发事件。在各实施例中,触发基于对服务应用程序上的负载水平的改变的指示(例如,通过监视主存服务应用程序的网站的流量),或者对服务模型中的规约的改变的指示(例如,通过修改在应用程序提供者和客户机之间建立的服务描述合同)。
与检测触发事件相关联地,从服务模型的规约中提取配置设置,其中这些配置设置(例如,组件程序的地址、算法标识符、服务位置、存储器资源地址等)用于配置组件程序中的参数。在一种情况下,组件程序被部署在执行服务应用程序的数据中心中的各计算设备处。在另一种情况下,驻留在各计算设备上的先前建立的组件程序被标识为可供实例化。这些所部署和/或所标识的组件程序根据包括以下逻辑步骤的实例化过程来配置:访问图(例如,变换图、结构图)、根据变换图来从配置设置导出公式化值、自动在组件程序中传播公式化值、根据结构图来定位对应于公式化值的参数、以及在适当的参数处安装公式化值。该稳健的实例化过程自动配置组件程序,由此显著地减少手动编程中所固有的缺点(以上所讨论的)。
附图简述
以下参考附图详细描述本发明的各实施例,附图中:
图1是适用于实现本发明的各实施例的示例性计算环境的框图;
图2是适用于实现本发明的各实施例的示例性计算系统的框图;
图3是示出根据本发明的一实施例的用于根据服务模型来管理服务应用程序中的组件的方法的流程图;
图4和5是示出用于将公式化值安装到组件程序的适当参数中的方法的流程图;以及
图6是示出根据本发明的一实施例的用于响应触发事件的方法的流程图。
详细描述
此处用细节来描述本发明的各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。
本发明的各实施例涉及各种方法、系统、以及其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行根据本发明的各实施例的用于根据服务模型来自动管理服务应用程序中的组件程序的方法。最初,检测实例化服务应用程序中的组件程序的触发事件。在各实施例中,触发基于对服务应用程序上的负载水平的改变的指示(例如,通过监视主存服务应用程序的网站的流量),或者对服务模型中的规约的改变的指示(例如,通过修改在应用程序提供者和客户机之间建立的服务描述合同)。
与检测触发事件相关联地,从服务模型的规约中提取配置设置,其中这些配置设置(例如,组件程序的地址、算法标识符、服务位置、存储器资源地址等)用于配置组件程序中的参数。在一种情况下,组件程序被部署在执行服务应用程序的数据中心中的各计算设备处。在另一种情况下,驻留在各计算设备上的先前建立的组件程序被标识为可供实例化。这些所部署和/或所标识的组件程序根据包括以下逻辑步骤的实例化过程来配置:访问图(例如,变换图、结构图)、根据变换图来从配置设置导出公式化值、自动在组件程序中传播公式化值、根据结构图来定位对应于公式化值的参数、以及在适当的参数处安装公式化值。
因此,在一方面,本发明的各实施例涉及一种或多种其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行用于根据服务模型来管理服务应用程序中的一个或多个组件程序的方法。该方法包括确定服务应用程序上的负载水平,其中该服务应用程序包括可以在数据中心中的单独计算设备上执行的组件程序;从服务模型中提取可给予组件程序的配置设置;以及启动用于根据负载水平来管理服务应用程序的实例化过程。该实例化过程包括在数据中心内部署组件程序,自动在所部署的组件程序中传播从配置设置导出的公式化值,以及至少暂时将公式化值安装到组件程序中,由此提供与服务模型一致的服务应用程序的功能。在各实施例中,该方法还包括根据所安装的公式化值来执行服务应用程序。
在另一方面,本发明的各实施例涉及一种具体化在一个或多个计算机存储介质上的计算机系统,该计算机存储介质上包含有用于执行一种方法的计算机可执行指令,该方法用于通过将配置设置传播到组件程序来实例化服务应用程序以由此提升服务应用程序的功能。该计算机系统包括第一计算设备和第二计算设备。第一计算设备执行支持服务应用程序的操作的组件程序。第二计算设备启动用于根据服务模型来实现服务应用程序的实例化过程。该实例化过程包括从服务模型中的规约中提取配置设置,将驻留在第一计算设备上的组件程序标识为可供实例化,询问组件程序中的参数以确定这些组件程序中的某一些是否与配置设置兼容,自动在兼容的组件程序中传播从配置设置导出的公式化值,以及根据公式化值来配置兼容的组件程序的参数。
在又一方面,本发明的各实施例涉及一种用于根据实例化方案来配置在数据中心中操作的服务应用程序的组件程序的计算机化方法。该计算机化方法包括至少以下步骤:通过询问服务模型来确定配置设置;访问实例化方案,其中该实例化方案指示要部署哪些组件程序以满足服务模型,并且其中该实例化方案提供变换图;在数据中心内的多个计算设备上部署所指示的组件程序;部分地基于变换图来将配置设置转换成公式化值;自动将公式化值分发给所部署的组件程序;以及至少暂时将所分发的公式化值与所部署的组件程序相关联地存储。
在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各实施例的示例性操作环境。
泛而参考附图,并且首先具体参考图1,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的各实施例的使用范围或功能提出任何限制。也不应该把计算环境100解释为对所示出的任一组件或其组合有任何依赖性或要求。
本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令的一般上下文中描述,该机器可使用指令包括诸如程序组件之类的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序组件指的是执行特定任务或实现特定提取数据类型的代码。本发明的各实施例可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
继续参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口118、I/O组件120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。尽管为了清楚起见用线条示出了图1的各框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等的呈现组件认为是I/O组件。而且,处理器具有存储器。发明人关于此点认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算机”或“计算设备”。
计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其它存储器技术;CDROM、数字多功能盘(DVD)或其它光或全息介质;磁带盒、磁带、磁盘存储或其它磁存储设备;或可用于对所需信息进行编码并且可由计算设备100访问的任何其它介质。
存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线设备等等。
现在转向图2,示出了例示根据本发明的一实施例的被配置成根据服务模型来管理服务应用程序210中的组件程序201、202、203和204的计算系统200的框图。本领域普通技术人员将理解和明白,图2所示的计算系统200仅仅是一个合适的计算系统环境的示例,并且不旨在对本发明的各实施例的使用范围或功能提出任何限制。也不应该将计算系统200解释为对其中所示出的任何单个组件或各组件的组合有任何依赖性或要求。此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。
计算系统200包括客户机计算设备215、相关服务提供者220、以及数据中心225,它们全部都经由网络(未示出)彼此通信。网络可包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。因此,网络不在此进一步描述。
图2所示的客户机计算设备215和相关服务提供者220、以及数据中心225中的每一个都可以是任何类型的计算设备,诸如例如,以上参考图1描述的计算设备100。仅作为示例而非限制,客户机计算设备215和相关服务提供者220中的每一个都可以是个人计算机、台式计算机、膝上型计算机、手持式设备、移动手机、消费电子设备等。在各实施例中,数据中心225可以是服务器、计算设备的集合、或者能够执行服务应用程序210的其他机器。另外,客户机计算设备215还可包括驻留在其上的web浏览器应用程序230,该web浏览器应用程序经由到数据中心225的有线或无线网络路径来访问服务应用程序210。然而,应当注意,本发明的各实施例不限于在这些计算设备上实现,而是可在处于其各实施例的范围内的各种不同类型的计算设备的任一种上实现。
如图2所示,客户机计算设备215被配置成执行web浏览器应用程序230以访问服务应用程序210。服务应用程序210能够以大致直接的方式、经由通信路径235、或通过相关服务提供者220来访问。在各实施例中,通过相关服务提供者220的访问包括向其传递用户提供的凭证240。通常,用户提供的凭证240是登录数据、口令或由客户机提供以满足在相关服务提供者220处实现的安全协议的任何其他信息。进而,相关服务提供者220在消息245中与组件201、202、203和204中的一个或多个交换凭证240。
在各实施例中,相关服务提供者220位于数据中心225的外部并由与维护服务应用程序210的应用服务提供者分开的实体来管理。然而,相关服务提供者220能够通过在其间交换消息245来与组件程序201、202、203和204协调活动。在相关服务提供者220和组件程序201、202、203和204之间协调活动由针对相关服务提供者220的资源位置来促进。这些资源位置通常根据服务模型中的规约来建立。
一般而言,服务模型是提供用于管理服务应用程序210的组件程序201、202、203和204的指令的接口蓝图。因此,服务模型包括将这些管理方面标识为以下内容的规约:在实例化期间采用哪些图;在传播组件程序201、202、203和204期间利用哪些计算设备;组件程序201、202、203和204之间的通信路径246和247位于哪里;以及描述将由数据中心225执行服务应用程序210的特定方式的任何其他信息。在一种情况下,服务模型部分地根据在客户机和应用服务提供者之间建立的服务描述合同来生成。作为服务描述合同的结果,向客户机提供对由应用服务提供者维护的服务应用程序210以及其他软件的访问。
此外,服务模型提供规约中的允许从中提取隐式和显式配置设置的挂钩。在各实施例中,隐式配置设置提供结构信息(例如,组件地址、资源位置、以及存储器资源地址)以便于组件程序201、202、203和204和/或其他组件(例如,相关服务提供者220、存储器资源250)中的每一个之间的交互。另外,隐式配置设置提供用于消费和转换上述组件之间的消息的应用程序编程接口(API),由此允许这些组件和谐地通信。在各实施例中,显式配置设置向组件程序201、202、203和204中的参数提供影响这些组件程序的功能的指令(例如,算法标识符以及其他配置值)。仅仅作为示例,在服务模型中储存用于将客户机登录到服务应用程序210中的专用凭证。服务模型中的挂钩将这些凭证提供给显式配置设置,这些显式配置设置将凭证分发给组件201作为期望值。将这些期望值与在消息245中从相关服务提供者220传递的用户提供的凭证240进行比较。在接收到消息245后,组件201将用户提供的凭证240与期望值进行比较。如果比较结果匹配,则向客户机提供对服务应用程序210的访问。
提供用于执行服务应用程序210等的数据中心225。服务应用程序210包括可针对使用(例如,每小时客户机命中数)或通过修改服务模型来缩放的一组组件程序201、202、203和204。通常,服务应用程序210通过包括许多不同的组件(例如,组件程序201、202、203和204)来表征,这与传统应用程序类似。在一示例性实施例中,服务应用程序210管理不同的组件以使得这些组件一起用作组合的因特网服务。作为示例,服务应用程序210是允许各个客户机在特定网站发表评论的博客服务。因为可能存在全都访问博客服务的数千个客户机,所以部署博客服务用来支持其持续操作的多个组件。这些组件相互协调动作以用作单个应用程序,由此对组件的部署和解散对于客户机是透明的。
尽管已经示出和描述了服务应用程序210的一个实例,但本领域的普通技术人员应理解和明白,多个服务应用程序可以在数据中心225中执行,并且本发明的各实施例不限于所示出和所描述的服务应用程序210。在具有不止一个服务应用程序的实施例中,服务应用程序210和其他服务应用程序(未示出)可以独立地和/或相互协作地操作。在一种情况下,同时在数据中心225上运行的服务应用程序共享组件程序集201、202、203和204。仅仅作为示例,组件程序集201、202、203和204可由新服务应用程序(例如,根据使用要求来重新提供的)来消费,或者在服务应用程序(例如,访问程序组件的多个服务应用程序)之间共享。由此,在各实施例中,数据中心225上的资源提供许多相互依赖的或独立服务应用程序的互操作性。
在各实施例中,数据中心225包括各种机器,诸如第一计算设备255和第二计算设备265、以及存储器资源250。计算设备255和265可以是任何类型的计算设备,诸如例如,计算设备100(参见图1)、个人计算机、服务器、计算设备的集合、或者能够执行服务应用程序210的其他机器。另外,计算设备255和265能够存储并执行组件程序201、202、203和204。组件程序201、202、203和204包含由服务应用程序210管理的大量组件程序中的若干组件。在各实施例中,组件程序201、202、203和204根据服务模型中的规约来开发或编写。在一种情况下,组件程序201、202、203和204中的一个或多个根据服务模型中的准许在确定对配置设置的更新已经发生时自动重新配置参数270的一组规则来开发。尽管在图2中描绘并在此处描述了四个组件程序,但本发明的各实施例构想利用任何数量的组件程序来支持服务应用程序210的操作。在一示例性实施例中,组件程序的数量涉及服务应用程序210上的负载水平,其中负载水平爬得越高,所部署的组件程序就越多。
参数270通常驻留在组件程序201、202、203和204上,或者在分别驻留在组件201和204上的元素266和275上。一般而言,参数精细地调整每一个组件在内部作出的决定,由此细化各组件的经协调的执行。参数270在数量和特性方面是示例性的。即,尽管在特定组件程序或元素示出了特定参数,但本发明的各实施例构想零到多个参数驻留在组件程序或元素中的任一个上。
存储器资源250通常驻留在数据中心225上并被配置成存储数据。在各实施例中,可以在存储器资源250中搜索与其相关联地存储的项目中的一个或多个。本领域的普通技术人员可以理解和明白,存储在数据存储250中的数据可以是可配置的,并可包括与服务应用程序210的执行相关的任何信息。这一信息的内容和量决不旨在限制本发明的各实施例的范围。此外,尽管被示为单个、独立组件,但存储器资源250实际上可以是多个数据存储,例如数据库群集。另外,存储在存储器资源250处的数据可由组件程序201、202、203和204访问。在一个实施例中,向配置设置提供准许组件程序201、202、203和204中的一个或多个定位存储器资源250的存储器资源地址或另一适当的存储器分配,以便从中访问数据。
在操作中,服务应用程序210被配置成管理组件程序201、202、203和204。一管理方面涉及在检测到触发事件时建立并配置组件程序201、202、203和204。触发事件警告服务应用程序210在检测到该触发事件时实例化服务应用程序210中的组件程序201、202、203和204。在各实施例中,触发基于对服务应用程序210上的负载水平的改变的指示(例如,通过监视来自一个或多个客户机计算设备215的流量),或者对服务模型中的规约的改变的指示(例如,通过修改在应用服务提供者和客户机之间建立的服务描述合同),如下文中参考图6更全面地讨论的。
与检测触发事件相关联地,从规约和或服务模型的挂钩中提取配置设置280。一般而言,配置设置280促进正确地管理服务应用程序210。在各实施例中,配置设置280可以是隐式或显式配置设置,如以上更全面地讨论的。在特定情况下,配置设置280包括组件程序的地址、算法标识符、服务位置、存储器资源地址、或者用于配置组件程序中的参数的任何其它数据串。
与提取配置设置280相关联地或同时地,为了满足负载,满足已更新的服务模型,或出于涉及服务应用程序210的操作的任何其它原因,建立组件程序201、202、203和204。在一种情况下,建立组件程序201、202、203和204包括在数据中心225中的各计算设备255和265处部署组件程序201、202、203和204。在另一种情况下,建立组件程序201、202、203和204包括将驻留在计算设备255和256上的先前建立的组件程序标识为可供实例化。尽管已经示出建立组件程序201、202、203和204的两种不同的方式,但本领域的普通技术人员应理解和明白,可以利用用于建立组件程序201、202、203和204的其他方法,并且本发明的各实施例不限于此处所示出和描述的那些方式。
这些所部署和/或所标识的组件程序201、202、203和204根据包括以下逻辑步骤的实例化过程来配置:访问图(例如,变换图、结构图)、根据变换图来从配置设置280导出公式化值290、自动在组件程序201、202、203和204中传播公式化值290、根据结构图来定位对应于公式化值290的参数270、以及在适当的参数270处安装公式化值290。在一示例性实施例中,服务应用程序210询问参数270以便在安装公式化值290之前确定组件201、202、203和204中的每一个是否与配置设置280兼容。
现在转向图3,示出了例示根据本发明的一实施例的用于根据服务模型来管理服务应用程序中的组件的总体方法300的流程图。最初,如框305所示,在服务应用程序处接收指示(例如,触发事件)。触发事件参考图6更全面地讨论。通常,该指示警告服务应用程序应建立更多或更少的组件程序以维护该服务应用程序的统一操作。在一示例性实施例中,组件程序的添加和删减对于当前正在访问服务应用程序的客户机是透明的。如框310所示,在询问服务模型中的规约时从挂钩中提取配置设置。如上文中更全面地讨论的,可以提取各种类型的配置设置,诸如隐式和显式配置设置。
如框315所示,启动用于根据触发事件来管理服务应用程序的实例化过程。在各实施例中,实例化过程包括至少以下逻辑步骤:建立组件程序;导出公式化值;自动传播公式化值;以及安装公式化值。具体而言,如框320所示,通过部署(例如,生成新组件程序)或将数据中心内的机器上的现有组件程序标识为可用来建立组件程序。在将现有组件程序标识为可用的示例性实施例中,询问现有组件程序中的参数以确定它们是否与配置设置兼容。因此,这些“兼容”组件程序在传播期间接收公式化值。
在各实施例中,这些组件程序位于数据中心内的一个或多个计算设备处。这种样式的远程部署通过由配置设置提供给组件设备的指令(例如,组件地址)来启用。另外,配置设置包括用于配置某些组件程序处的API的指令,以由此允许每一个组件程序与其他类型的组件程序和组件程序的其他实例、存储器资源、以及远程相关服务提供者(例如,由通信伙伴维护的服务)相协调。
如框325所示,从配置设置导出公式化值。在各实施例中,公式化值根据变换图、所确定的每一个组件程序的状态、或其组合来导出。自动将这些公式化值传播到所部署的组件程序、兼容的组件程序、或其组合,如框330所示。这些步骤(例如,框320、325和330)可以按任何次序或相伴地采取。如框335所示,在组件程序的参数处安装公式化值。在其他实施例中,公式化值被暂时与对应的参数相关联地存储。与安装参数相关联地,根据公式化值来执行服务应用程序,如框340所示。
现在转向图4和5,示出了例示根据本发明的一实施例的用于将公式化值安装到组件程序的适当参数中的方法400和500的流程图。最初,参考图4,由服务应用程序访问图结构,如框410所示。在其他实施例中,结构图由配置设置访问或被存储在配置设置中。如框420所示,根据结构图中的逻辑来定位组件程序中的参数。因此,结构图的逻辑帮助将公式化值定向到适当的参数,由此促进公式化值的正确安装,如框430所示。
参考图5,如框510所示,确定所建立的组件程序中的每一个的状态。在各实施例中,状态一般涉及组件程序的实例或类型,或组件程序的现有配置。如框520所示,访问变换图。在一示例性实施例中,变换图包括允许在进入每一个组件程序的所确定的状态时将配置设置表达为公式化值的逻辑。基于该逻辑,导出对应于组件程序的每一个实例的公式化值。
图6是示出根据本发明的一实施例的用于响应触发事件的方法600的流程图。如框610所示,接收对服务描述合同的修改的指示。如框620所示,确定这些修改是否影响服务模型中的规约。如果该判定指示未产生实质性影响,则维护组件程序的当前配置,如框630所示。如框640所示,监视服务应用程序处的流量。如框650所示,确定是否存在对负载水平的改变。如果该判定指示没有对负载水平的改变或实质性调整,则维护组件程序的当前配置,如框630所示。
然而,如果框620和650的判定指示触发事件已经发生(例如,发生对负载水平的实质性改变,或者对规约的修改已产生实质性影响),则根据服务模型来更新已更新的配置设置,如框660所示。利用服务模型来创建已更新的配置设置在上文中参考图2更全面地讨论。如框670所示,从已更新的配置设置导出公式化值。如框680所示,用所导出的公式化值来重新配置组件程序。在各实施例中,重新配置包括图3中所列出的各步骤。
参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明的各实施例的所属领域的普通技术人员将变得显而易见。
从前述内容可知,本发明很好地适用于实现前述的所有目的和目标,并且具有对于该系统和方式是显而易见且固有的其他优点。可以理解,特定的特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这由权利要求书所构想并在其范围之内。

Claims (18)

1.一种用于根据服务模型来管理服务应用程序中的一个或多个组件程序的方法,所述方法包括:
确定所述服务应用程序上的负载水平(305),其中所述服务应用程序包括可以在数据中心内的单独的计算设备上执行的一个或多个组件程序;
从所述服务模型中提取可给予所述一个或多个组件程序的配置设置(310);
启动用于根据所述负载水平来管理所述服务应用程序的实例化过程(315),所述实例化过程包括:
(1)在所述数据中心内部署所述一个或多个组件程序(320);
(2)确定所部署的一个或多个组件程序中的每一个的状态;
(3)访问变换图,其中所述变换图包括用于将所述配置设置表达为对应于所述一个或多个组件程序中的每一个的状态的公式化值的逻辑;
(4)根据所述变换图的逻辑来从所述配置设置导出所述公式化值;以及
(5)自动在所部署的一个或多个组件程序中传播从所述配置设置导出的公式化值(330);以及
至少暂时将所述公式化值安装到所述一个或多个组件程序中(335),由此提供与所述服务模型一致的服务应用程序的功能。
2.如权利要求1所述的方法,其特征在于,确定负载水平包括监视主存所述服务应用程序的网站的流量。
3.如权利要求1所述的方法,其特征在于,所述服务应用程序包括驻留在数据中心上的、由客户机可经由web浏览器应用程序访问的应用服务提供者来维护的软件。
4.如权利要求3所述的方法,其特征在于,所述服务模型部分地根据在所述应用服务提供者和所述客户机之间建立的服务描述合同来生成。
5.如权利要求1所述的方法,其特征在于,还包括根据所安装的公式化值来执行所述服务应用程序。
6.一种计算机系统,所述计算机系统用于执行一种通过将配置设置传播到一个或多个组件程序来实例化服务应用程序以由此提升所述服务应用程序的功能的方法,所述计算机系统包括:
第一计算设备(255),其执行支持所述服务应用程序的操作的一个或多个组件程序;以及
第二计算设备(265),其启动用于根据服务模型来实现所述服务应用程序的实例化过程,所述实例化过程包括:
(1)从所述服务模型中的规约中提取配置设置;
(2)将驻留在所述第一计算设备上的一个或多个组件程序标识为可用于实例化;
(3)询问所述一个或多个组件程序中的参数以确定所述一个或多个组件程序中的某一些是否与所述配置设置兼容;
(4)从所述一个或多个兼容的组件程序访问结构图,其中所述结构图包括用于定位所述一个或多个兼容的组件程序中的参数的逻辑
(5)自动在一个或多个兼容的组件程序中传播从所述配置设置导出的公式化值;
(6)根据所述结构图的逻辑来将从所述配置设置导出的公式化值定向到适当的参数;以及
(7)根据所述公式化值来配置所述一个或多个兼容的组件程序的参数。
7.如权利要求6所述的计算机系统,其特征在于,所述实例化过程还包括:
接收对所述服务模型的规约的修改的指示;以及
从所修改的规约中提取已更新的配置设置。
8.如权利要求7所述的计算机系统,其特征在于,驻留在所述第一计算设备上的一个或多个组件程序根据准许在接收到来自所述已更新的配置设置的公式化值时自动重新配置所述参数的一组规则来开发。
9.如权利要求6所述的计算机系统,其特征在于,所述第二计算设备还被配置成执行支持所述服务应用程序的操作的一个或多个组件程序。
10.如权利要求9所述的计算机系统,其特征在于,所述配置设置包括组件地址,所述组件地址准许驻留在所述第一计算设备上的一个或多个组件程序与驻留在所述第二计算设备上的一个或多个组件程序协调活动。
11.如权利要求6所述的计算机系统,其特征在于,所述配置设置包括算法标识符,所述算法标识符指示所述一个或多个组件程序启动特定算法,以由此影响所述服务应用程序的执行。
12.如权利要求6所述的计算机系统,其特征在于,还包括用于支持所述服务应用程序的操作的一组相关服务,所述服务应用程序由应用服务提供者来管理,而所述一组相关服务由与所述应用服务提供者分开的至少一个实体来管理。
13.如权利要求12所述的计算机系统,其特征在于,所述配置设置包括资源位置,所述资源位置准许所述一个或多个组件程序与位于所述第一计算设备和所述第二计算设备外部的一组相关服务协调活动。
14.如权利要求13所述的计算机系统,其特征在于,所述协调活动包括:
在所述一组相关服务和所述一个或多个组件程序之间交换消息;以及
将所交换的消息与安装在所述一个或多个兼容的组件程序的参数处的公式化值进行比较。
15.如权利要求14所述的计算机系统,其特征在于,所交换的消息包括用户提供的凭证。
16.如权利要求6所述的计算机系统,其特征在于,所述第一计算设备和所述第二计算设备包括数据中心,其中所述数据中心包括存储数据的存储器资源,其中所述存储器资源处的数据可由所述一个或多个组件程序访问。
17.如权利要求16所述的计算机系统,其特征在于,所述配置设置包括存储器资源地址,所述存储器资源地址准许所述一个或多个组件程序定位适当的存储器资源以便访问所述数据。
18.一种用于根据实例化方案来配置在数据中心中操作的服务应用程序的组件程序的计算机化方法,所述方法包括:
通过询问服务模型来确定配置设置(310);
访问所述实例化方案,其中所述实例化方案指示部署哪些组件程序以满足所述服务模型,并且其中所述实例化方案提供变换图;
在所述数据中心内的多个计算设备上部署所指示的组件程序(320);
部分地基于所述变换图来将所述配置设置转换成公式化值(325),所述公式化值包括期望值,其中在实例化后,所部署的组件程序被配置成允许用户在用户提供的凭证与所述期望值中的对应期望值匹配时访问所述服务应用程序;
自动将所述公式化值分发到所部署的组件程序(330);以及
至少暂时将所分发的公式化值与所部署的组件程序相关联地存储(335)。
CN200980103908.2A 2008-01-30 2009-01-07 管理服务应用程序中的组件程序 Active CN101933000B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/022,756 US8112771B2 (en) 2008-01-30 2008-01-30 Managing component programs within a service application
US12/022,756 2008-01-30
PCT/US2009/030283 WO2009099694A2 (en) 2008-01-30 2009-01-07 Managing component programs within a service application

Publications (2)

Publication Number Publication Date
CN101933000A CN101933000A (zh) 2010-12-29
CN101933000B true CN101933000B (zh) 2014-03-05

Family

ID=40900553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980103908.2A Active CN101933000B (zh) 2008-01-30 2009-01-07 管理服务应用程序中的组件程序

Country Status (11)

Country Link
US (1) US8112771B2 (zh)
EP (1) EP2238533B1 (zh)
JP (1) JP4966414B2 (zh)
KR (1) KR101547847B1 (zh)
CN (1) CN101933000B (zh)
AU (1) AU2009210699B2 (zh)
BR (1) BRPI0906256B1 (zh)
CA (1) CA2710654C (zh)
RU (1) RU2487396C2 (zh)
TW (1) TWI385576B (zh)
WO (1) WO2009099694A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131644B2 (en) 2006-08-29 2012-03-06 Sap Ag Formular update
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) * 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US9253020B2 (en) * 2009-06-11 2016-02-02 International Business Machines Corporation Web service interaction in a dynamically extensible business application
KR101209951B1 (ko) * 2011-06-10 2012-12-07 주식회사 캐스트이즈 안드로이드 어플리케이션 실행 요청에 따른 어플리케이션별 연계 작업 사전 수행 장치 및 방법
US20130254757A1 (en) * 2012-03-22 2013-09-26 Shenol YOUSOUF Nesting installations of software products
US10169000B2 (en) 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
CN104541247B (zh) * 2012-08-07 2018-12-11 超威半导体公司 用于调整云计算系统的系统和方法
US9569274B2 (en) * 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
GB2526331A (en) * 2014-05-21 2015-11-25 Vodafone Ip Licensing Ltd Management of resource allocation in a mobile telecommunication network
US9900391B2 (en) 2014-08-05 2018-02-20 Microsoft Technology Licensing, Llc Automated orchestration of infrastructure service blocks in hosted services
WO2016050270A1 (en) * 2014-09-29 2016-04-07 Hewlett-Packard Development Company L.P. Provisioning a service
US10270735B2 (en) 2014-10-10 2019-04-23 Microsoft Technology Licensing, Llc Distributed components in computing clusters
CN105426200B (zh) 2015-10-30 2018-11-09 小米科技有限责任公司 通讯模组固件和插件生成方法及装置
EP3363157B1 (en) * 2016-01-19 2022-03-02 Hewlett Packard Enterprise Development LP Computer system managements
US11171841B2 (en) 2016-01-28 2021-11-09 Hewlett Packard Enterprise Development Lp System for propagating a modification of a first service, in a service graph, to a second service
US11196643B2 (en) 2018-04-04 2021-12-07 Hewlett Packard Enterprise Development Lp State transitions for a set of services
US11281491B2 (en) 2018-11-21 2022-03-22 Hewlett Packard Enterprise Development Lp Execution of services concurrently
CN109697152B (zh) * 2019-03-01 2022-04-05 北京慧辰资道资讯股份有限公司 一种智能生成机柜设备发热大数据的方法及装置
US11765604B2 (en) 2021-12-16 2023-09-19 T-Mobile Usa, Inc. Providing configuration updates to wireless telecommunication networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
CN1832478A (zh) * 2005-03-08 2006-09-13 微软公司 用于传统组件的动态服务生成

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3006551B2 (ja) * 1996-07-12 2000-02-07 日本電気株式会社 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
JP2002202928A (ja) * 2000-12-28 2002-07-19 Nec Corp アプリケーションサービスoemシステム
US7039705B2 (en) * 2001-10-26 2006-05-02 Hewlett-Packard Development Company, L.P. Representing capacities and demands in a layered computing environment using normalized values
US7246350B2 (en) * 2002-01-07 2007-07-17 Intel Corporation Dynamic composition and maintenance of applications
JP2003316576A (ja) * 2002-04-25 2003-11-07 Hitachi Ltd アプリケーション制御方法及びその実施装置並びにその処理プログラム
US7797403B2 (en) * 2002-07-12 2010-09-14 Microsoft Corporation Deployment of configuration information
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US20050251786A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
GB0420673D0 (en) * 2004-09-17 2004-10-20 Ibm Data sharing system, method and software tool
JP2006119848A (ja) 2004-10-20 2006-05-11 Fujitsu Ltd ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
US7827563B2 (en) * 2004-11-03 2010-11-02 Kyocera Mita Corporation Open architecture and interfaces for workflow applications in office document systems
JP2006252189A (ja) * 2005-03-10 2006-09-21 Hitachi Ltd アプリケーション運用管理システム及び方法
US20060242647A1 (en) * 2005-04-21 2006-10-26 Kimbrel Tracy J Dynamic application placement under service and memory constraints
US20060245354A1 (en) 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for deploying and instantiating multiple instances of applications in automated data centers using application deployment template
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US8978125B2 (en) * 2006-10-19 2015-03-10 Oracle International Corporation Identity controlled data center
US7886188B2 (en) * 2007-11-20 2011-02-08 International Business Machines Corporation System and method for distributed monitoring of a soap service
JP5745749B2 (ja) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
CN1832478A (zh) * 2005-03-08 2006-09-13 微软公司 用于传统组件的动态服务生成

Also Published As

Publication number Publication date
BRPI0906256A2 (pt) 2015-07-07
JP2011512579A (ja) 2011-04-21
RU2487396C2 (ru) 2013-07-10
JP4966414B2 (ja) 2012-07-04
TWI385576B (zh) 2013-02-11
US8112771B2 (en) 2012-02-07
AU2009210699B2 (en) 2013-05-23
AU2009210699A1 (en) 2009-08-13
EP2238533A4 (en) 2014-08-06
KR20100105737A (ko) 2010-09-29
BRPI0906256B1 (pt) 2019-11-26
CN101933000A (zh) 2010-12-29
RU2010132155A (ru) 2012-02-10
CA2710654C (en) 2016-07-26
CA2710654A1 (en) 2009-08-13
TW200941342A (en) 2009-10-01
KR101547847B1 (ko) 2015-08-27
WO2009099694A2 (en) 2009-08-13
EP2238533A2 (en) 2010-10-13
US20090193439A1 (en) 2009-07-30
EP2238533B1 (en) 2020-02-19
WO2009099694A3 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
CN101933000B (zh) 管理服务应用程序中的组件程序
CN102110211B (zh) 用于管理安全事件的方法和装置
CN105706469B (zh) 管理机器对机器设备
CN101449242B (zh) 按需组合和拆卸服务基础架构的方法和装置
WO2019062304A1 (zh) 用于管理区块链节点的计算资源的方法、设备和系统
CN102473170B (zh) 基于虚拟机的应用服务供应
US9756030B2 (en) Secure cloud based multi-tier provisioning
CN101840346B (zh) 云主机部署的方法及系统
US8549514B2 (en) Distributing customized software products
CN100399268C (zh) 一种不依赖操作系统更新软件数据的计算机系统及方法
CN111343004B (zh) 基于Docker的Fabric网络远程部署方法、装置和系统
CN102804202B (zh) 内容网格搜索
CN109564527A (zh) 云计算节点的安全配置
US20080040455A1 (en) Model-based deployment and configuration of software in a distributed environment
CN101681342B (zh) 廉价驱动器的冗余堆(rpid)
CN103635885A (zh) 通过提供预构建环境的即时可用性来部署用于测试的环境
CN103309703A (zh) 用于在网络化计算环境中标识最佳升级方案的系统和方法
CN105359056B (zh) 用于信息处理系统的数据调整功率预算
US20130234863A1 (en) Method and apparatus for mobile metering
CN104025048A (zh) 软件安装
US20160183107A1 (en) System monitoring and management
US20230280996A1 (en) Application hosting, monitoring, and management within a container hosting environment
CN103106086A (zh) 操作系统处理方法以及系统
CN110019482A (zh) 粮情数据采集方法、粮情中间件平台及粮情数据采集系统
CN109284219A (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
GR01 Patent grant
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: 20150427

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

Effective date of registration: 20150427

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.