CN101449242A - 按需组合和拆卸服务基础架构的方法和装置 - Google Patents
按需组合和拆卸服务基础架构的方法和装置 Download PDFInfo
- Publication number
- CN101449242A CN101449242A CNA2007800182277A CN200780018227A CN101449242A CN 101449242 A CN101449242 A CN 101449242A CN A2007800182277 A CNA2007800182277 A CN A2007800182277A CN 200780018227 A CN200780018227 A CN 200780018227A CN 101449242 A CN101449242 A CN 101449242A
- Authority
- CN
- China
- Prior art keywords
- service
- composite services
- moving object
- dependence
- discerned
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用于创建组合服务的计算机实现方法、装置和计算机可用程序代码。响应于接收到对组合服务的请求(302),利用一组用于管理服务的活动对象(406)来识别(802,906)依赖性(500),以形成已识别的依赖性(500)。已识别的依赖性(500)指定组合服务的需求。组合服务具有多个组件。使用已识别的依赖性(500)来识别(906,908)组合服务的组件,以形成已识别的组件。使用已识别的组件创建(910,912)组合服务。
Description
技术领域
本发明总体上涉及网络化计算机系统。更具体地,本发明涉及网络化计算机环境中的软件和系统管理。
背景技术
诸如计算系统集群、数据中心和网格系统的分布式系统涉及大量资源和服务组件的管理。提供给这种系统用户的典型最终服务需要多种资源和服务组件的组合,其一起递送用户感兴趣的最终服务。多个组件的这种组合或组合服务需要仔细地配置和部署这些组件,使其以兼容的方式对接,从而组合服务被部署、初始化,并处理由用户提交的工作负荷,适度地处理组件级故障,以及当处理工作负荷波动时提供鲁棒服务。
实现组件的这种组合涉及对大量不同种类的资源和服务组件的协同安排。人工管理各种任务倾向于乏味并易于犯错。当资源属于多个管理域时,复杂程度将增加。虽然基于网格的系统能够为跨越多个管理域共享资源提供便利,但是从系统管理员的角度来看,基于网格的系统更加难于管理。难于管理的一个原因是,当前水平的系统管理技术并没有跟上中间件和网格技术发展的步伐。在管理单个系统或基于集群的系统中已经取得了一定成绩。即使对于这些系统,在现有基础架构上配置和部署新服务或管理现有服务和软件栈的生命周期时,系统管理也面临更高级别的复杂性。在复杂应用环境中,例如,在涉及协同安排由多个商业过程所形成的工作流的环境中,状况更加糟糕。在这种情形中,部署解决方案和生命周期管理解决方案需要综合观察所涉及的多层(tier),并且当前的系统管理技术不提供构建这种解决方案所需的手段。
配置和部署软件组件的传统方法,严重依赖于域专家关于组件需求、中间件可用性和底层基础架构,以及整个IT环境的知识。使用这种背景知识,首先需要系统管理员配置现有的基础架构,并接着定制新组件的配置步骤和部署步骤,从而可以成功地部署新组件。在分布式组件的情形中,这种方法可能会费时、易于犯错,以及不能升级至大规模安装。另外,由于系统管理员是部署工作流程的关键因素,所以这种方法并没有自动化。
配置和管理系统的大型安装的能力是信息技术界内的活跃研究领域。本地配置(LCFG)是当前使用的基于脚本的系统,该系统基于存储在中央数据库的配置信息来动态地配置机器(Anderson,P.,“Towards a High-Level Machine Configuration System,”LISA,1994)。该信息与需要配置在系统上的网络、系统和服务有关。对象组的智能框架(SmartFrog)是用于指定分布式应用的配置和部署的已知系统(Goldsack,P,Guijarro,J,Mecheneau,G,Murray,P,Toft,P,“SmartFrog:Configuration and Automatic Ignition of DistributedApplications”HP OVUA 2003)。SmartFrog提供了一种指定应用的配置和应用之间的依赖性的语言。SmartFrog提供了一种在分布式系统上处理和部署应用的基础架构。GridWeaver项目正在探究结合LCFG技术和SmartFrog技术用于大型系统的配置管理的观点。结构化信息标准推动组织(OASIS)正着眼于使用web服务来管理分布式资源。网格论坛正在尝试将作为配置描述、部署和生命周期管理(CDDLM)行为一部分的规范语言(specification language)标准化。
发明内容
示范性实施方式提供了用于创建组合服务的计算机实现方法、装置和计算机可用程序代码。响应于接收到对所述组合服务的请求,利用一组用于管理服务的活动对象识别依赖性以形成已识别的依赖性。所述已识别的依赖性指定所述组合服务的需求。所述组合服务具有多个组件。使用所述已识别的依赖性来识别所述组合服务的组件,以形成已识别的组件。使用所述已识别的组件来创建所述组合服务。
附图说明
在所附权利要求中阐明了被认为是示范性实施方式特性的新颖特征。然而,结合附图并参照下列示范性实施方式的详细描述,将最好地理解示范性实施方式本身以及使用的优选模式、进一步目的及其优点,其中:
图1描述了示范性实施例可以在其中实施的、数据处理系统的网络的图形表示。
图2描述了示范性实施例可以在其中实施的、数据处理系统的框图。
图3描述了根据示范性实施方式的、使用用于配置和部署的活动知识库(repository)的、基于组合的服务管理基础架构。
图4描述了根据示范性实施方式的活动知识库的组件。
图5描述了根据示范性实施方式的、服务的对象依赖图的示例。
图6描述了根据示范性实施方式的、用于管理组合服务的宏级控制。
图7描述了根据示范性实施方式的、用于组合和管理组合软件服务的操作的流程图。
图8描述了根据示范性实施方式的、针对活动模板的服务组合的流程图。
图9描述了根据示范性实施方式的、针对活动对象的服务组合的流程图。
图10描述了根据示范性实施方式的、针对活动模板的服务拆卸的流程图。
图11A-11C描述了根据示范性实施方式,针对活动对象的服务拆卸的流程图。
具体实施方式
以下文件使用了术语“物理资源”或“资源”来表示诸如计算机服务器、计算机网络、文件系统等的硬件资源。这些资源可以开启或关闭、共享或以专用模式使用,并具有物理位置。术语“计算机服务”用于标识由运行在一个或多个资源上的计算机程序所提供的服务。
示范性实施方式对软件组件和服务的管理提供了解决方案。现在参照附图,特别参照图1-图2,其提供了实施例可以在其中实施的数据处理环境的代表性图示。应当理解,图1-图2仅是示例性的,并不意图对方面或实施方式可以实施的环境表明或暗示出任意限制。可以不脱离示范性实施方式的精神和范围,对已描述的环境作出许多更改。
现在参照附图,图1描述了示范性实施例可以在其中实施的、数据处理系统的网络的图形表示。网络数据处理系统100是可以实现本发明实施方式的计算机网络。网络数据处理系统100包括网络102,网络102是用于在网络数据处理系统100内相互连接的各种设备和计算机之间提供通信链路的媒介。网络102可以包括诸如有线/无线通信链路,或者纤维光缆的连接。
在描述的示例中,服务器104和服务器106连同存储单元108连接到网络102。另外,客户端110,112和114连接到网络102。举例,这些客户端110,112和114可以是个人计算机或网络计算机。在描述的示例中,服务器104向客户端110,112和114提供诸如启动文件、操作系统图像和应用的数据。在这个示例中,客户端110,112和114是服务器104的客户端。网络数据处理系统100可以包括另外的服务器、客户端和没有示出的其它设备。
在描述的示例中,网络数据处理系统100是互联网,网络102表示全球范围内使用传输控制协议/互联网协议(TCP/IP)协议组相互通信的网络和网关的集合。互联网的中心是重要节点或主机之间的高速数据通信链路的主干网,包括数以千计商业性、政府性、教育性的公司系统和对数据和消息进行路由的其它公司系统。当然,网络数据处理系统100还可以实施为许多不同类型的网络,比如举例来说,内联网、本地局域网(LAN)或广域网(WAN)。图1意在作为示例,而不是作为对不同实施方式的结构性限制。
现在参照图2,示出了可以实现示范性实施例的数据处理系统的结构图。数据处理系统200是计算机(比如图1中的服务器104或客户端110)的示例,执行实施方式的过程的计算机可用代码或指令可以位于其中。
在描述的示例中,数据处理系统200采用包括北桥和存储控制器集线器(MCH)202,以及南桥和输入/输出(I/O)控制器集线器(ICH)204的集线器结构。处理器206、主存储器208和图形处理器210耦合到北桥和存储控制器集线器202。图形处理器210例如可以通过加速图形端口(AGP)耦合到MCH。
在描述的示例中,本地局域网(LAN)适配器212耦合到南桥和I/O控制器集线器204,并且音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)端口以及其它通信端口232,以及PCI/PCIe设备234通过总线238耦合到南桥和I/O控制器集线器204,而且硬盘驱动器(HDD)226和CD-ROM驱动器230通过总线240耦合到南桥和I/O控制器集线器204。PCI/PCIe设备可以包括,例如,以太网适配器、插卡、笔记本计算机的PC卡。PCI使用卡总线控制器,PCIe却并不使用。ROM224例如可以是闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可以使用,例如,集成驱动电子装置(IDE)或串行高级技术附加(SATA)接口。超级I/O(SIO)设备236可以耦合到南桥和I/O控制器集线器204。
操作系统运行在处理器206上,并协调图2中的数据处理设备200内的各种组件并对其提供控制。该操作系统可以是商业上可用的操作系统,比如 XP(Microsoft和Windows是微软公司在美国、其它国家或所有国家的商标)。诸如JAVATM编程系统的面对对象编程系统可以与该操作系统结合运行,并提供从数据处理系统200上执行的Java程序或应用对该操作系统的调用(Java和所有基于Java的商标是Sun微系统公司在美国、其它国家或者说所有国家的商标)。
操作系统的指令、面对对象编程系统和应用或程序都位于诸如硬盘驱动器226的存储设备中,也可以位于主存储器208中以由处理器206执行。可以由处理器206利用计算机实施的指令执行示范性实施方式的过程,所述计算机实施的指令可以位于诸如主存储器208、只读存储器224或其它一或多个外围设备的存储器中。
图1-图2中的硬件可以随着实施而变化。诸如闪存、等效的非易失性存储器或光盘驱动器等其它内部硬件或外围设备,可以附加或替代在图1-图2中描述的硬件。另外,可以将示范性实施方式的过程应用到微处理器数据处理系统。
在一些示范性示例中,数据处理系统200可以是个人数字助理(PDA),其通常配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括诸如系统总线、I/O总线和PCI总线的一或多个总线。当然,该总线系统可以利用任意类型的通信结构或架构实施,这些通信结构或架构可以为附加到该结构或架构的组件或设备之间提供数据传输。通信单元可以包括一或多个用于传送和接收数据的设备,比如调制解调器或网络适配器。存储器例如可以是主存储器208或在北桥和存储器控制器集线器202中找到的高速缓冲存储器。处理单元可以包括一个或多个处理器或CPU。图1-图2中描述的示例以及上述示例并不意图暗示架构限制。举例,数据处理系统200还可以是平板计算机、膝上型计算机或除PDA形式之外的电话设备。
示范性实施方式提供了用于按需组合和拆卸服务基础架构的计算机实现方法、装置和计算机可用程序代码。该方法在诸如集群环境、数据中心类型环境和共享网格环境之类的分布式环境中配置和部署软件服务和资源组件,从而使组件协同工作,以提供按照期望方式运行的组合服务。自动管理和控制在组件级以及组合联合级进行。
软件服务是由运行在本地或/远程计算机网络上的计算机程序或程序集所提供的服务;软件服务提供对服务请求的部分或完全解决方案,并且不需要请求者执行包括配置、部署和生命周期管理任务在内的、与服务关联的任何管理任务。软件服务的一些示例为薪金名册服务、消费者管理服务、供应链管理服务、搜索引擎服务、电子邮件服务、认证服务、消息传送服务、一般应用管理服务(诸如由应用服务器提供的)、数据库服务、网络连接服务等。
软件服务管理包括服务依赖性分析、资源以及对已部署服务的计划调度、配置管理、部署管理和部署后的生命周期管理。这些管理功能本身是软件服务。示范性实施方式提供这些管理服务,从而使软件服务的必要安装、配置和部署都会响应于来自用户的服务请求而以系统化和受控的方式被执行。另外,实施方式对已部署的服务进行管理,从而按照当前请求的工作负荷和/或预期的未来工作负荷来执行这些服务,并且当不被需要时或需要维护时,这些服务脱机或被终止。
当服务状态偏离期望状态时,示范性实施方式提供了管理服务来将已部署的服务维持到期望状态并采取纠正行动。响应于与特定服务有关的提示,实施方式中的管理服务自动地触发分析,以确定提示原因、确定是否需要使用备用资源或支持服务,并且使用备用资源和/或服务来重新部署被管理的服务。这些管理服务可以升级,固有地是自发的,并且可以管理多平台的服务。
图3描述了根据示范性实施方式的、使用用于配置和部署的活动知识库的、基于组合的服务管理基础架构。在基于组合的服务管理基础架构300中,新类型的服务请求302和当前支持的请求类型的服务请求304到达服务基础架构管理器接口306。服务请求是来自(i)最终用户的服务、(ii)系统中的其它服务,或(iii)网络中别处的其它服务的、针对服务的请求。被请求的服务是系统通过一个或多个软件服务和由系统支持的物理资源所能够提供的服务。
注意到,在完成前,该请求可以被多个软件服务处理,并且所有这些服务需要通过在运行时配置、部署和管理而变得可用。软件服务可以被系统支持,但是该软件服务不可能一直被配置和部署。即使对软件服务进行配置和部署,也不能将该软件服务配置为:满足服务请求关于期望性能的需求和/或服务所期望的递送方式。举例,该请求可能要求以安全或专用服务递送模式来递送服务。
新类型的服务请求302,包括针对当前没有布置和部署在系统中的软件服务的请求。当前所支持的请求类型的服务请求304,是针对已经布置和部署在系统中的软件服务的请求。新类型或当前支持类型的请求由运行在终端(end-point)资源314上的软件服务来服务。在服务基础架构管理器接口306处对请求的处理,对于服务请求者是透明的。
管理员可以与系统交互以执行动作,比如设置用于配置或重新配置资源状态的策略、通过覆盖默认设置来配置和部署软件服务的策略,和使用管理员接口308的类似操作。管理员发出的命令经由管理员接口308发送到服务基础架构管理器接口306。在后端,服务基础架构管理器接口306与协调和管理服务310和活动知识库312交互。活动知识库312包括活动对象和活动模板。活动对象经由终端管理接口316与终端资源314,或运行在终端资源上的软件服务相交互。另外,协调和管理服务310还与活动知识库312交互。如前所提及,该请求实际上在端点资源314处被处理。
图4描述了根据示范性实施方式的活动知识库的组件。活动知识库402可以是诸如图3的活动知识库312的活动知识库。如前所述,活动知识库402包括活动模板404和活动对象406。活动模板是用于活动对象的模板。活动对象是使用可用资源和其它已管理的服务实例来管理已实例化的或将被实例化的服务实例的管理对象,比如被管理的服务组件408之一。系统中的每一物理资源和服务组件在活动知识库402中具有代表性的活动对象。活动对象管理那些资源或服务。资源和服务或支持资源和支持服务,被称为是用于构建组合服务的组件。在活动知识库402中的活动模板404中,针对被管理的每一类型服务存在活动模板。
只要对服务的新实例进行了实例化,便根据活动模板404中的活动模板(代表正在实例化的服务类型)、在活动对象406中也实例化新的活动对象。然而,并不是任何时候活动模板404中的每一活动模板都会在活动对象406中具有实例化的活动对象。
基于所管理的物理资源以及使用这些物理资源组成的服务当前集合,新的活动对象在活动对象406中被实例化。资源是实施服务所需要的组件。举例,资源可以是物理计算机服务器、应用服务器或web服务器。服务是由逻辑组件提供的功能。举例,计算服务可以提供计算功能,而数据库服务可以提供存储功能。资源可以是严格的硬件资源、软件资源,或硬件和软件的结合。
随着新的服务在现有服务和/或物理资源的基础上被组成和实例化,可以在活动对象406中实例化新的活动对象。类似地,当不再需要组合服务时,该组合服务和用于管理该组合服务的活动对象都终止。终止的活动对象作为垃圾被收集。另外,活动对象406内与组合服务或用于支持和组成该被终止服务的资源的相对应的活动对象,都被更新以反映它们不再支持该组合服务的事实。当不再需要组件时,活动对象406内的相应活动对象被销毁并作为垃圾被收集。
当范围变化或者由相应活动对象控制的环境被调整、更新或发展时,活动模板404被更新。当新类型的资源或服务引入到被管理的环境时,新的活动模板同样被引入活动模板404中。举例,当6.0作为企业版JavaBeansTM(EJB)容器服务被引入到系统时,新的活动模板被引入活动模板404中。即使在活动模板404中存在用于5.x的活动模板,也还是这么做。这是因为管理6.0与管理5.x容器显著不同。活动模板具有关于被提供的服务的信息、依赖性需求和一或多个平台的配置和部署信息。
当支持6.01时,并不会引入新的模板,但是现有的模板被更新以适应区别。对6.0容器的模板应用更新,因为这两个发布版本在管理方面区别很小。源自模板的活动对象可以管理6.0容器,也可以管理6.01容器。类似地,如果最初6.0仅部署在平台,则6.0的模板仅具有管理管理上的容器的信息。如果后来,6.0还被部署和支持在平台,则6.0的模板需要被更新以增加这种能力,这是改变模板范围的示例。
当将要部署和启用新的服务组件时,在活动知识库402中,活动对象形式的新的服务实例对象被实例化。该活动对象管理将被组合、配置和部署在系统中的实际服务实例。为了成功部署和发挥作用,服务实例可能需要来自其它服务实例和资源实例的支持。需要的支持被称为服务实例的依赖性以及活动知识库402中相应活动对象的依赖性需求。
活动知识库402中的活动对象406中的每一活动对象,被编程来管理特定资源或服务组件,以通过达到期望状态来递送组件特定的服务。期望状态是由活动对象管理的实际服务实例实现期望效果或动作所需的状态。活动对象406中的每一活动对象,都了解其具有管理责任的被管理的资源或服务组件的当前状态和期望状态。期望状态可以受到系统管理员、策略管理者或系统中其它对象的影响。如果活动对象具有未实现的依赖性需求,则在依赖性被成功满足之前,活动对象的当前状态将不会转变到期望状态。如果服务实例的被观察到的状态与期望状态不匹配,那么活动对象触发一组用于活动知识库402内附加处理的行动。活动知识库402为执行查找、服务/资源代理、创建组成员、设置策略等提供便利。
每一活动对象406监控下列实体:
1.被递送的服务的状态,
2.支持服务的状态,和
3.被支持的服务的状态。
针对配置和部署的控制在两个级别被执行:一个在微级别,另一个在宏级别。微级别控制操作在服务模板和服务实例对象的级别。需要协调多个服务以支持一个或多个更高级服务的全面控制,由宏级别控制促进。宏级别控制允许管理服务协调行动,比如以一致方式进行的联合服务配置和部署。宏级别系统控制建立在微级别系统控制之上,并利用微级别系统控制。
所有的计划相关逻辑(比如用于依赖性分析和共享支持服务的逻辑)被封装到活动对象406中。这种逻辑是动态可更新的,可以嵌入插件以增加先前不存在的功能性。
每一活动对象406具有用于对在活动知识库中的活动对象所代表的服务进行管理的四个功能组件。该四个管理功能可以包括:监控、分析、配置和执行(MACE)。
在这些例子中,监控功能监控下列实体:
(1)被管理的服务的状态;
(2)被管理的服务组件所依赖的服务的状态;即,向被管理的服务提供支持的服务组件(如果有的话)的状态;
(3)由被管理的组件支持的服务组件的状态,即,依赖于管理服务组件的服务组件(如果有的话)的状态;和
(4)管理员的输入。
该分析功能向活动对象提供决策能力。该分析功能由下列一个或多个事件触发行动:
(1)所观察到的被管理对象的状态和期望状态的不平衡;
(2)由支持组件提供的功能性和服务级别的不平衡;和
(3)由这个组件支持的组件所要求的功能性和服务级别的不平衡。
由于(i)当前状态或(ii)期望状态中任一项的变化,可以发生上述任一不平衡。举例,考虑安装到服务器但是当前没有启动的应用服务器。该应用服务器的当前状态是“离线”。如果期望状态设置到具有某种属性(比如缓冲器大小,处理的请求数目以及到特定数据库的链接)的“在线”,这就造成了不平衡,这种不平衡会触发相应活动对象中分析组件。当它置为具有期望属性的“在线”后,假设当前状态变成“在线”和“丢失到数据库的连接”。再一次,这就造成了将分析组件触发到行动的不平衡。经由监控功能组件通知当前状态的变化。通过(i)协调服务和管理服务或(ii)经由管理员接口的管理员行动,或(iii)来自另一活动对象的、要求在现有策略条件下的行动的、针对服务的请求中的任一个,导致期望状态的变化。
当分析组件认识到被管理的对象的当前状态和期望状态之间存在不平衡时,该分析组件执行分析以建立被管理的服务将被转变到的最优配置状态。为了执行该分析,分析组件考虑系统中其它服务和资源的状态和可用性,以及当前和将被支持的服务组件或工作负载的需求和优先级。在分析步骤的最后,完全确定了支持资源和软件服务,并且最终确定表征该支持的参数。举例,表征该支持的参数可以是连接数、端口数、预期响应时间和最小保证带宽。类似地,表征该被支持的服务的参数也定下来。
分析的复杂度和特性取决于分析组件可用的决策选择。可以用高精度指定期望状况。举例,期望状态可以对使能有特定网络适配器、具有特定IP地址和以特定方式配置的特定web服务的特定web服务器上的特定版本、发布和补丁级别的“在线”实例进行详述。在这种情形中,在没有选择的情况下,分析组件识别要使用的资源和服务以及施加到支持服务的配置参数,从而被管理的服务可以达到前述预期状态。
另一方面,可以用可能状态的范围或在某种程度上自由地指定期望状态。举例,期望状态可以对特定网络子域中任意服务器上兼容6.0版本的“在线”实例进行详述,或者可以在其被启动的服务器上、无约束地将应用服务器的期望状态设置成“在线”。结果,可以使用第一可用服务器。在另一示例中,该约束可能需要从一组服务器中使用最大容量存储的服务器。当具有选择和配置支持服务和资源的选择时,分析组件通过与其它活动模板和/或活动对象交互而作出决策。
基于正被考虑配置和部署的现有服务和新服务的可用能力和性能级别及相应要求,通过将最优问题公式化并解决之来实现该交互。该最优问题的目标由与被管理的对象相关的策略管控。一些与被管理的服务相关的策略的示例是特定时间内某些用户组独占使用该服务、为维修目的的留出时间、用作支持资源的优选资源实例,等。
分析组件考虑这些策略,并且试图解决系统中尽可能多的不平衡。如果不能够完全消除不平衡,则分析组件试图满足依赖性,从而可实现的新状态最接近于期望状态,并且从当前状态转变到这个新状态是可能的。这个分析的结果确定用于纠正系统中不平衡的实际支持服务和资源。由于这些支持服务和资源的状态确定了管理服务将被转变到的最终状态,所以被管理的服务不能总是实现该实际期望状态,但是可以实现次优状态。取决于实现的状态距期望状态有多远,可以重复分析以及随后的配置和部署步骤。
配置功能从分析功能获取结果,并且执行下列任务:
(1)创建配置或重新配置被管理的服务组件的现有状态的行动计划,使得被管理的服务组件可以以最优方式从其当前状态转变到新状态;
(2)确定为组件带来实际变化的实际运行命令、脚本和过程;和
(3)在自我配置之前向支持的服务组件发送请求消息,在配置变化适当后,向从属(dependent)的服务发送确认消息。
执行功能执行下列任务:
(1)执行由配置功能确定的行动计划,从而根据策略来管理失败的风险;
(2)执行核实步骤以确认已经发生期望的变化;
(3)当初始计划不成功时,执行备用行动计划;和
(4)在配置变化就位后,核实与支持组件和从属组件的交互。
每一活动对象406内封装的MACE功能,支持由活动对象表示的被管理的软件服务组件独立地演进并适应系统中发生的变化。与该领域内的现有技术不同,示范性实施方式并不需要为了管理那些组件而完全集中地评价服务组件。此处描述的系统允许规定系统的整体管理的全局策略,而不需要集中决策和执行能力。只要活动对象需要操纵被管理的对象,该活动对象便触发系统运行时。系统运行时仅检查活动对象的状态,并执行包含在活动对象内的行动。一些这种行动在被管理的服务上运行,并且其它行动在知识库中的其它活动对象上运行。
举例,活动对象可以发出要求被管理的对象“离线”的命令。在其它情形中,活动对象可以向另一活动对象发送通知,指出不再需要来自由被通知的活动对象管理的支持服务。活动对象的状态可以受到诸如资源监控器、服务监控器和其它更高层活动对象请求的管理行动之类的外部事件的影响。当事件改变活动对象的状态时,在先描述的管理组件被激活,并且活动对象开始将被管理的服务指导入更稳定状态。
活动知识库402中的每一活动对象406与管理接口相关联,以控制和监控活动对象所管理的资源和服务的动作。管理接口用于实际资源组件或服务组件,并且包括如何配置、安装、部署、测试和管理组件的生命周期事件的过程。对于每一被管理的服务组件,管理接口还为被管理的服务可能被转变到的可能状态维持当前状态信息和依赖性信息。例如,在图4中,活动对象410与应用服务器412相关联,活动对象414与服务器上的操作系统平台416相关联,并且活动对象418与数据库服务器420相关联。
当无法利用现有服务或服务组合来服务于服务请求时,表示被请求的服务的类型的活动模板被通知。接着,活动模板评估该请求,并且要么实例化新的活动对象以管理该服务的新实例,要么指示现有的活动对象重新配置被管理的对象以适应该新请求。简单地通过改变被管理的服务的期望状态,重新配置的指令被执行。这种情形下紧随的动作是当新活动对象被创建时紧随动作的子集。下面描述由新实例化的活动对象所执行的、导致从组件服务中组合和部署组合服务的一套行动,该行动通过递归地向下遍历依赖性树并建立组件服务树,直到整个组合服务完成被配置和部署为止。
在活动知识库402的建立中,活动对象的直接依赖性是已知的但是未得到满足。当在活动知识库402中实例化活动对象时,活动对象被指定称为期望状态的状态,并称为当前状态的另一状态。当前状态是由活动对象管理的服务或资源的状态。期望状态是管理服务或资源的期待状态。
活动对象中的分析组件连续地监控这两个状态。如果这两个状态不匹配,则分析组件分析将当前状态转变到期望状态的可能选择,并且确定是否有为了实现预期状态的、必须实现的任意的依赖性需求。因此,如果活动对象被实例化时,当前状态是“离线”而期望状态是“在线”,则活动对象中的分析组件检查为了使管理资源/服务在线而需要被满足的依赖性。依赖性信息存储在依赖性需求接口中,它是被管理的对象的六个管理接口之一。通过所需要的服务或资源的类型来表示每一依赖性。依赖性分析识别需要从当前状态转变到期望状态的服务或资源的特定类型。另外,分析组件还确定需要满足依赖性的其它服务/资源上的性能和任意位置约束。这是期望状态的函数。
举例,如果web服务器的期望状态需要每分钟处理m次业务,其中m的值已知,则分析组件首先确定该web服务器依赖于数据库服务,接着该分析组件量化该数据库服务满足性能需求的特征。由于该数据库服务以读取和更新数据记录的速度为特征,分析组件计算数据库服务有资格作为支撑服务所需要的最小读取(r)和更新速度(u)。换句话说,分析组件计算关于支持数据库服务的一组性能约束。m,u和r之间的关系可以由单一代数公式表达,或者可能需要表示该数据库系统的近似性能的多项式等式的评估。
性能特定的特征(用于从需要实现某种期望状态的支持服务确定性能级别的)在依赖性需求接口中被编码。注意到,分析组件并不识别用于满足特定依赖性的支持服务/资源的确切实例。分析组件仅仅量化需要的资源/服务的类型,以及支持组件的性能、位置和安全约束。关于期望状态、到达该状态需要满足的依赖性、对支持服务/资源的约束的信息,被送交给配置组件。
配置组件确定实际组件及其用来实现依赖性的容量的部分。配置组件通过接触活动模板为每一未满足依赖性做出判定,该活动模板表示需要满足该依赖性的服务/资源的类型。配置组件向每一这种活动模板发出对服务(其是正在被找寻的,并且必须满足相关约束)类型的请求。每个这种活动模板试图通过下列三种方式中的一种完成该请求:(i)指定现有服务/资源以提供必要支持,(ii)重新配置该现有服务以适应新要求,或(iii)配置和部署新服务实例以提供必要支持。当这些选项无一可能时,配置组件返回否定确认。当可以提供支持时,配置组件返回管理该支持服务的相应活动对象的地址。注意到,可以通过可接受范围来表达关于依赖性的性能约束。举例,由预期在该范围内递送服务的已识别支持服务来表达该接受范围。策略在确定约束中起作用。策略可以指定放松约束的情况,并且可以指定约束放松的程度。支持活动模板在做出决策时考虑这些策略。
每一支持活动模板的后面步骤与在指示的活动对象处触发动作的原始请求的上下文中描述的步骤相同。递归地跟随这些步骤,直到要么所有的依赖性都解决,要么给定系统资源组设置和当前策略设置无法解决依赖性。因此,从活动模板到活动对象到支持活动模板等,自上而下地遍历用于向任意服务组件提供支持的整个依赖性树。通过同时深度优先遍历依赖性图,以自下而上的方式建立实际服务的依赖性树。源自支持节点的所有路径被同时发掘。
只要支持服务被配置和部署到准备提供必要服务的状态,请求的活动对象被通知肯定确认以及管理该支持服务的活动对象的详情。在确定后,所有的支持服务组件/资源组件以及它们的当前配置,包括它们的可用容量,对于依赖性图中的每一节点都是已知的。使用这种信息,配置组件量化在支持服务上配置服务时使用的实际参数。所述参数可以包括:IP地址、使用的通信端口、用户识别和允许访问支持服务的密码、缓冲器大小,等等。参数的细节取决于服务的类型。配置信息接着被传递到执行组件。
执行组件执行建立和安装过程并发送命令,从而管理服务在支持服务上以期望状态被实例化。紧接着的命令和过程存储在活动对象的服务部署管理接口中。这就完成了将服务部署为组件服务的组合。在部署之后,该用户请求被处理或其它更高级服务在这种服务组合之上被组合。
总而言之,通过配置和部署共同形成该组合的服务组件来形成组合服务。在自上而下地遍历组件之间的依赖性时,确切的服务组件被动态地确定。从该组合最高级别的服务类型的活动模板开始,通过访问活动知识库中的活动模板和活动对象,自上而下地遍历依赖性树。在活动知识库中,活动对象是依赖性树的节点。随着自上而下地遍历树,每一节点的活动对象被识别。在由活动对象管理的实际服务组件之间,也形成相同的依赖性树。通过同时深度优先遍历依赖性图,依赖图中的实际服务组件以自下而上的方式被配置和部署。
当组合服务被组成时,如果组合服务的任意组件未满足必需配置而被部署,相应的活动对象引起特定的行动以在该组件中带来期望的配置变化。只要该服务组件被重新配置和部署并且性能符合要求,便通知依赖图中更高级别的活动对象。一旦所有的必需支持组件都已经准备好并在起作用,则下一级别的对象配置和部署实际服务组件。这样持续直到所有组件(包括最高级服务组件)都被配置、部署和达到期望服务递送状态。
当不再需要服务、或管理员发出服务拆卸命令、或需要关闭服务的策略生效、或该服务在当前条件设置下不能维持时,发生拆卸过程。该步骤涉及组合服务的完全反向步骤。在这种情形下,高级服务的活动模板首先将活动对象的期望状态设置为离线。该活动对象的分析组件通知配置组件将配置改变为离线。相应地,配置组件首先通知支持服务组件的活动模板(如果有的话)该服务终止。配置组件等待接收来自支持组件的活动模板的肯定确认。在接收到来自活动模板的、该活动模板已经终止关于服务组件的依赖性的确认后,配置组件通知执行组件终止由活动对象管理的服务。在被管理的服务被终止后,配置组件通知对应于服务的、向服务提供支持的活动模板(如果有的话),该支持服务不再需要。在接收到来自活动模板的肯定确认后,配置组件通知其自身的活动模板服务成功终止,接着活动对象终止自身。
拆卸组合服务也是递归的过程,在作为组合服务管理树一部分的每一活动对象执行相同的步骤。可以在依赖性树的任意节点开始拆卸处理,并不一定要在高级别开始。一旦依赖图中任意节点处的活动对象被通知离线,则仅在活动对象支持的所有服务都已终止或者已发现其它备用支持服务组件后,活动对象才终止被管理的服务。类似地,直到依赖该服务的所有服务已被终止或已发现备用支持,每一这种被支持的服务才终止。在到达依赖图顶部(那里发生了实际目标服务的第一次拆卸)的全程中,递归地持续进行核实处理。接着,以自上到下的方式终止更低级别的服务组件。重点注意,该递归沿着开始自每一从属活动对象的平行路径并发地散开(unravel)。作为拆卸的一部分,软件组件卸载或重新配置自身,而硬件组件成为可用资源池的一部分。
图5描述了根据示范性实施方式的、服务的对象依赖图的示例。对象依赖图500可以描述诸如企业的高层服务的依赖性。对象依赖图500将组件之间的依赖性记录为有向图。对象依赖图500的每一节点表示资源或服务组件。对象依赖图500中每一节点之间的线条,表示高级别组件对更低级别支持组件的依赖性。举例,高级别或组合服务可以依赖于多个单独的服务和单独的资源。
举例,在对象依赖图500的根处,包括显示为foobar.redbank.com:80/AccountService(帐户服务),由服务502指示的节点。举例,服务502可以是用于用户跨越互联网可以访问的、在线银行的高层服务。在一个示例中,可以通过统一资源定位符(URL)、超链接、超文本传输协议(HTTP),或其它格式的形式访问服务502。超文本传输协议是使能客户端和服务器之间的web浏览的实际通信协议。统一资源定位符是作为资源(典型的在互联网上)的标识符的格式化字串。统一资源定位符用在软件语言中,比如标识超链接的锚的超文本标记语言(HTML)。
如这个示例所示,服务502依赖于称为AccountService(帐户服务)504的web服务和Apache web服务器508,其中Apache web服务器508附加的服务(包括展示服务功能和认证服务功能)。该web服务,即AccountService 504,具有对IBM WebSphere应用服务器506和IBM DB2数据库服务器514的依赖性。IBM WebSphere应用服务器506具有对Microsoft 2003服务器516的依赖性。另外,服务502分别依赖于显示为abc.payment.com:9080/payment(支付)和abc.broker.com:9080/portfolio(投资组合)的外部主机服务510和512。举例,外部主机服务510可以用于接收对服务502所提供的服务的付款。外部主机服务512可以用于存储关于投资组合中金融资产的数据。可以结合用户定义策略来使用改变管理系统,以确定如何最有效率地实施改变和更新对象依赖图500中的对象。
上述组合服务的组合和拆卸,阐明了使用由活动知识库中活动对象和活动模板所运用的微级别控制对服务组件的管理。这样做时,活动对象和模板还影响支持和被支持的服务或资源实例的动作。而且,活动对象和模板还响应于被支持的资源和支持资源的动作的变化。然而,微级别控制并不提供考虑了全局约束和策略的同步全局变化。这种变化由宏级别控制提供。举例,需要宏级别控制,以执行诸如临界资源被共享的方式、给予命令优先级的方式及命令被服务的方式的总体策略。当资源很少且需求可能超出供应时,这种策略是必需的。当要做出复杂决策且权衡(tradeoff)并不明确时,策略也是必需的。
图6描述了根据示范性实施方式的、用于管理组合服务的宏级别控制。协调和管理服务600为诸如图3中协调和管理服务310的协调和管理服务。协调和管理服务600包括管理服务,其提供用于管理组合服务的宏级别控制。
协调和管理服务600由分析和计划引擎602、配置引擎604、部署引擎606、监控引擎608和生命周期引擎610提供。这些引擎中的每一个,与活动知识库612和活动知识库612中呈现的管理对象相交互。由示出的五个引擎提供的宏级别控制被转化成微控制。活动对象(诸如图4的活动知识库612中的活动对象406)控制相应资源和组件服务,从而宏控制的期望效果在微级别实现。
如之前所述,活动知识库612管理软件服务组件的所有生命周期方面,以响应于服务请求来递送解决方案。活动知识库612考虑了相关的系统管理策略以及由物理资源可用性带来的约束,来执行这个功能。作为进一步解释,这个生命周期管理的一个方面是当需要组合服务时对复杂服务的组合。另一方面是当没有需要、或策略需要这种行动,或一或多个支持服务不可用时,拆卸或分解复杂服务。
如前所述,活动知识库612中的活动对象也能够配置被管理的服务,以支持一组从属组件或处理一类请求。当在多个实体之间共享支持服务和资源组件时,或者当这些组件是异质的时,或者当它们稀少时,这些服务和资源需要被协商并分配到一个或多个更高级别的从属服务。服务和资源组件是在一个或多个特性能力上不同于其它组件的组件。稀有组件是具有争用相同的支持资源的多个从属组件的组件。支持资源是由高层服务使用以提供高层服务的功能性的资源。举例,如果高层服务是银行,则支持资源可以包括用户的互联网门户、信用检查服务、以及关于消费者信息的数据库。协调和管理服务600提供必需的代理服务、匹配服务、配置服务和部署服务。
分析和计划引擎602提供服务和资源代理、匹配和分配功能性。当服务和资源能力缺乏时,或者当活动模板由于现有策略的结果而不能解决共享问题时,需要支持组件的更高级别活动对象构造依赖图,并且将它们的需求和依赖图传送到分析和计划引擎602。分析和计划引擎602收集所有这些需求和活动知识库612中待处理的依赖性。分析和计划引擎602集中当前可利用资源和服务组件能力、资源和服务特定策略、优先级、偏好和整体商业目标。分析和计划引擎602在服务说明书、服务配置和被分析的活动服务的服务状态段中寻找这些信息。
分析和计划引擎602通过对依赖图中的依赖性、作为约束的可用能力和作为目标函数的商业目标进行建模,以此来将最优化问题公式化。这个最优化问题的解决方案,确切地确定被分析的依赖图中每一节点处使用哪个支持组件。
分析和计划引擎602还确定是否由多个从属服务共享支持组件或是否以专用模式使用该支持组件、用于共享的任意优先级方案,以及从属组件确切何时使用支持组件。如果活动知识库612中并不存在支持组件或当前策略不允许共享时,使用活动知识库612中的相应模板创建该对象的新实例。已有和新创建实例对象的期望状态被设置,以反映表现在依赖图中的新需求。
分析和计划引擎602利用未实现的依赖性为每一活动对象准备解决方案依赖图。解决方案依赖图被写入相应活动对象的服务配置段。分析和计划引擎602还更新在依赖图中提供支持服务的活动对象的期望状态。
如果分析和计划引擎602不能满足活动对象的依赖性,则当前状态与期望状态不匹配。在这种情形下,在下一评估阶段,由分析和计划引擎602重新考虑活动对象的需求。继续重新考虑,直到必需资源和服务变得可用,或者直到不再需要对应于活动对象的服务。
配置引擎604使用服务依赖图,以产生满足更高级服务需求所需要的服务配置描述。配置引擎604产生描述依赖性树中每一组件的配置设置,以及组件服务和资源被部署和配置的顺序的配置依赖图。配置依赖图也存储在要考虑对象的部署段中,并且被部署引擎606使用。配置引擎604还为配置依赖图中每一活动对象更新配置设置。该更新提升相应活动对象,以引起它们管理的对象的期望变化,从而该组件可以提供必需的支持。
接着,部署引擎606使用配置依赖图,以请求完成该请求所需要的资源。部署引擎606沿着内部工作流分配和供应资源,并对被供应和配置的服务执行单元测试和集成测试。对于每一资源,部署引擎606使用配置依赖图以开始资源的安装和配置。安装和配置进展由监控引擎608连续地监控。监控引擎608负责更新知识库中每一代表性对象的状态。如果在单元测试或集成测试中遇到失败,通过执行可以包括获取一组新资源的恢复行动,工作流重新启动。
图7描述了根据示范性实施方式的、用于组合和管理组合软件服务的操作的流程图。在图7的过程启动之前,接收请求以便在计算机网络中部署软件服务。如果被请求的软件服务是新的软件服务(诸如图3中服务基础架构管理器接口306的服务基础架构管理器接口),则将该请求通知给诸如图3中活动知识库312的活动知识库。服务基础架构管理器等待来自活动知识库的响应。
响应于该通知,活动知识库标识能够提供对用于处理已通知的请求类型的服务进行管理的活动知识库中活动模板(步骤702)。接着,活动知识库向已标识的活动模板发送服务请求通知(步骤704)。接着,活动知识库等待来自于已标识的活动模板的、关于被请求服务可用性的肯定确认(步骤706)。在被请求的服务可用之后,活动模板向活动知识库通知服务的可用性和服务的位置(步骤708)。活动知识库反过来向服务基础架构管理器通知服务的可用性和位置以及服务组合(步骤710),随后终止过程。
图8描述了根据示范性实施方式的、活动模板的服务组合流程图。图8的过程可以由诸如图4中位于活动知识库(诸如,图3的活动知识库)中的活动模板404的活动模板实施。在图7的步骤704中被通知后,活动模板确定是否有它产生的任意现有活动对象能够处理未解决的通知事件,或是否新的活动对象需要被实例化(步骤802)。在步骤802,考虑新请求的需求和由现有活动对象管理的现有服务处理这些需求的能力而做出决策。使用现有的服务来处理该请求,只要并不影响当前义务以及并不违背任一现有策略。否则,创建和管理新的服务实例。
如果活动模板决定实例化新的活动对象,活动模板在活动知识库中产生新的活动对象,并且将期望状态设置到能够导致需要的服务实例成功实例化的状态(步骤806)。举例,响应于帐号更新的请求,活动模板可以产生用于管理诸如图5中服务器502的AccountService Web服务的活动对象,并且用AccountService将期望状态设置到“达到在线”。接着,活动模板等待来自活动对象的、关于达到被管理的服务中期望状态的肯定确认(步骤808)。活动模板接着向活动知识库发送关于被请求服务可用性的肯定确认(步骤810),随后终止该处理。活动知识库是图8的处理中的服务请求者。
如果在步骤802的确定中,活动模板决定不实例化新的活动对象,则该过程标识现有的活动对象以重新配置和改变其期望状态(步骤812)。接着,活动模板等待来自活动对象的、关于达到被管理的服务中期望状态的肯定确认(步骤808)。
图9描述了根据示范性实施方式的、针对活动对象的服务组合的流程图。图9的过程可以由诸如图4的活动对象410的活动对象实施。同时地,在图8的步骤806和步骤812后,被实例化的活动模板确定当前状态是否与期望状态相同(步骤902)。如果当前状态与期望状态相同,被实例化的活动模板继续监控期望状态和当前状态,并且重复步骤902。如果在步骤902中当前状态与期望状态不相同,被实例化的活动模板确定由活动对象管理的服务组件的配置是否处于期望状态(步骤904)。接着,当被管理的服务组件处于期望状态时,该过程确定对其它服务组件的依赖性(步骤906)。接着,该过程确定用于支持服务组件的配置参数的范围(步骤908)。接着,该处理向与需要的支持服务相关联的活动模板发送服务请求通知(步骤910)。
接着,该过程等待来自支持服务的活动模板的肯定确认(步骤912)。接着,当所有支持服务组件都已经准备好进行服务时,该处理向由活动对象管理的服务组件发送配置命令,使得该服务组件可以从当前状态转变到期望状态(步骤914)。接着,当由活动对象管理的服务组件运行在期望配置时,该过程向服务组件的活动模板发送肯定确认(916),并且随后终止该处理。同时,在图9的步骤910之后,该过程进行到图8的步骤802(其中在图9的步骤906被标识用于支持服务的活动模板)执行该处理步骤以使能必需支持。
图10描述了根据示范性实施方式的、针对活动模板的服务分解的流程图。当活动模板接收到通知,由活动模板经由活动对象管理的一或多个被管理的服务实例提供的服务不再被需要。该通知可以由策略或管理员命令或预期工作负载减少或从属服务组件离线所触发。不管何种原因造成该通知,从活动模板的观点看,该通知意味着被服务组件支持的工作负荷的减少。图10的过程可以由诸如图4的活动模板404的活动模板实施。
图10的过程始于分析该通知,该活动模板确定一个或多个将被依赖性终止影响的服务实例,此后活动模板标识对应于那些服务实例的活动对象(步骤1002)。接着,活动模板确定依赖性减少对将当前工作负载映射到由该组活动对象管理的服务组件所造成的影响(步骤1004)。即使被终止的服务依赖性由服务实例中的一个处理以维持负载平衡和服务实例的基于策略匹配,活动模板集中地分析服务实例的配置,无论有或者没有将被终止的依赖性。由于整体工作负载的改变,诸如将剩余服务依赖性映射在服务实例上的新配置,可以导致一或多个服务实例的终止和/或重新配置。使用该新配置,活动模板接着在受影响服务实例的已识别清单上循环,直到每一受影响活动对象已经被处理(步骤1006)。对于每一这种活动对象,如果由活动对象管理的该服务组件将被终止或被重新配置,该过程通过比较新旧配置来确定活动模板的配置。接着确定由活动对象管理的服务组件是将被终止还是被重新配置?(步骤1008)如果在步骤1008该服务实例被终止,活动模板设置要终止的受影响活动对象的期望状态(步骤1010)。这一步骤及通到这一步骤的所有步骤是服务拆卸或分解处理的一部分。
如果在步骤1008该服务实例被重新配置,活动模板利用新工作负载和新从属服务组件,设置重新配置的受影响活动对象的期望状态(步骤1012)。在步骤1012后,该过程进行到如图9的步骤902描述的服务实例重新配置。
图11A-11C描述了根据示范性实施方式的、活动对象中服务分解的流程图。由诸如图4的活动对象410的活动对象实施图11A-11C的过程。在图10的步骤1010后,对于每个受到相仿影响的活动对象,并发地执行该过程。当活动对象确定被管理的服务实例的当前状态和期望状态不匹配时,在受影响活动对象处触发该过程步骤(步骤1102)。只要这两个状态匹配,重复步骤1102。如果步骤1102中当前状态与期望状态不相同,该过程确定由活动对象管理的服务组件的配置处在期望状态(步骤1104)。
接着,对于现在由被管理的服务组件支持的每一服务组件,该过程确定是否每一服务组件将被支持在期望状态(步骤1106)。接着,对于被支持在当前状态但不是期望状态的每一服务组件,该过程向相应活动模板发送通知,以终止它们的依赖性(步骤1108)。
接着,该过程等待来自所有从属服务组件的依赖性终止的肯定确认(步骤1110)。接着,当被管理的服务组件处于期望状态时,该过程确定对其它服务组件的依赖性(步骤1112)。接着,该过程向被管理的服务发送重新配置命令,以终止期望状态中不需要的服务组件的依赖性(步骤1114)。接着,当重新配置命令成功时,该过程向用于服务组件的活动模板发送在期望状态中其不再被需要的信息通知(步骤1116)。
接着,该过程确定是否被管理的服务将被终止(步骤1118)。如果被管理的服务将被终止,该过程向被管理的服务发送重新配置命令以准备终止(步骤1120)。接着,该过程向被管理的服务的活动模板发送通知,告知服务组件终止(步骤1122)。接着,当被管理的服务准备终止时,该过程发送命令以终止该被管理的服务(步骤1124)。接着,被管理的服务终止自身(步骤1126),并且随后该处理终止。
如果步骤1118中该被管理的服务将不被终止,对于被管理的服务在期望状态中继续依赖的服务组件,该过程确定是否该依赖性需要被重新配置(步骤1128)。接着,对于需要被支持的每一支持服务,该过程挂起依赖性,并向相应活动模板发送服务重新配置通知请求(步骤1130)。接着,对于被管理的服务在期望状态中将依赖的任何新服务组件,该过程向与被需要的服务相关联的活动模板发送服务请求通知(步骤1132)。
接着,该过程等待来自支持期望状态中所需服务的活动模板的肯定确认(步骤1134)。接着,当所有的支持服务组件都准备好提供必需支持时,该过程发送重新配置命令,从而可以从当前状态转变到期望状态(步骤1136)。接着,当由活动对象管理的服务组件运行在期望状态时,该过程将当前状态改变到期望状态,并向服务组件的活动模板通知状态改变(步骤1138),随后该处理终止。
并发地,在步骤1110和步骤1122后,该过程返回到图10的步骤1002。并发地,在步骤1130和步骤1132后,该处理返回到图8的步骤802。
再次概括,示范性实施方式提供了包括通过动态和自主方式,表示被管理实体之间的依赖性关系的模板和对象的知识库。服务组件被自行组织,以形成配置和部属高层服务所需的完全支持机制。自动检测出具有未实现或未满足依赖性的高层服务。有资格的服务和资源组件被标识,并且部分或全部被匹配,以部分地或全部地满足一个或多个高层服务的依赖性需求。
计划使用允许支持服务有效率地符合商业目标。通过考虑高层服务依赖性和需求、支持服务的可用能力和资源组件、组件特定策略和偏好,以及基于特定商业目标的目标函数,执行系统约束的总体优化。
活动知识库中的活动对象之间的部署-准备依赖性关系,是动态构成的,用于在分布式环境中利用可用资源部署组合服务。自动地响应资源池的变化。例如,如果针对服务移动机器,那么不需要重新配置依赖于将可用的机器的所有工作流。在使用间接层的活动知识库中对对象和模板的使用,使得无需系统管理员跟踪、配置和部署组合中的每一组件,就可以轻松管理底层的物理资源。通过在高层服务的状态中引入单一变化,通过标识和配置支持服务,复合服务被组合和分解。
因此,示范性实施方式提供用于按需组合和拆卸服务基础架构的计算机实现方法、装置和计算机可用程序代码。该方法配置和部署软件服务和资源组件,从而组件一起工作以提供按预期方式运行的高层服务。自动管理和控制发生在组件级别以及组合联合级别。结果,按需自动地部署、配置、重新配置和拆卸高层服务,减少了管理员和其它IT人员维持高层服务所需要的时间量。
本发明可以采用完全硬件的实施方式、完全软件的实施方式,或包括硬件和软件组件的实施方式的形式。在优选实施方式中,以包括但不限于固件、常驻软件、微代码等的软件实施本发明。
另外,本发明可以采用计算机可用介质或计算机可读介质可访问的计算机程序产品的形式,该介质提供计算机或任意指令执行系统使用或与其相关的程序代码。为了描述目的,计算机可用或计算机可读的介质可以是容纳、存储、通信、传播或运送由指令执行系统、装置或设备使用或与其相关的程序代码的任意有形装置。
该介质可以是电子的、磁的、光的、电磁的、红外线的或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统,包括通过总线直接或间接地耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行中使用到的本地存储器、大容量存储器,以及提供至少部分程序代码临时存储以减少在执行中从大容量存储器检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但是不限于键盘、显示器、指点设备,等),可以直接或通过与I/O控制器交互耦合到系统。
网络适配器也可以耦合到系统,通过与私有或公共网络交互,使数据处理系统耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是当前可用类型的网络适配器中的一些。
本发明呈现的描述是为了说明和描述目的,并不意欲穷举或将本发明限制为披露的形式。对于本领域技术人员,本发明的许多修改和变化是明显的。选择和描述实施方式,以最好地解释本发明的原则和特定应用,并且使本领域的其它技术人员理解本发明具有各种变化的各种实施方式适应于特定的使用构思。
Claims (20)
1、一种用于创建组合服务的计算机实现方法,所述计算机实现方法包括:
响应于接收到对所述组合服务的请求,利用一组用于管理服务的活动对象来识别依赖性以形成已识别的依赖性,其中所述已识别的依赖性指定所述组合服务的需求,并且其中所述组合服务具有多个组件;
使用所述已识别的依赖性来识别用于所述组合服务的组件,以形成已识别的组件;和
使用所述已识别的组件创建所述组合服务。
2、根据权利要求1所述的计算机实现方法,其中所述已识别的依赖性指示支持服务和与所述组合服务相关联的支持资源,其中使用依赖图来识别所述依赖性。
3、根据权利要求1所述的计算机实现方法,进一步包括:
检测所述组合服务的未实现依赖性。
4、根据权利要求3所述的计算机实现方法,进一步包括:
分析所述组合服务的未实现依赖性;以及
将可用的支持服务和可用的支持资源与所述组合服务进行匹配,以满足所述未实现的依赖性。
5、根据权利要求4所述的计算机实现方法,其中所述匹配步骤进一步包括:
完全地或部分地将所述可用的支持服务和所述可用的支持资源与所述组合服务进行匹配。
6、根据权利要求2所述的计算机实现方法,进一步包括:
计划所述支持服务和所述支持资源的使用,以达到商业目标;和
基于约束执行全局优化。
7、根据权利要求6所述的计算机实现方法,进一步包括:
基于所述依赖性、需求、可用的支持服务、可用的支持资源、组件偏好和商业目标来表达所述约束。
8、根据权利要求1所述的计算机实现方法,进一步包括:
响应于正被创建的组合服务,根据活动模板来实例化新的活动对象,所述活动模板表示所述组合服务所代表的服务类型。
9、根据权利要求1所述的计算机实现方法,进一步包括:
对标识所述依赖性的依赖图进行组合。
10、根据权利要求2所述的计算机实现方法,进一步包括:
响应于所述支持服务和资源池中的所述支持资源的改变,持续地支持所述组合服务。
11、根据权利要求2所述的计算机实现方法,其中所述组合服务、所述支持服务和所述支持资源是分布式网络的一部分,其中活动对象存储在活动知识库中。
12、根据权利要求1所述的计算机实现方法,进一步包括用于拆卸所述组合服务的步骤,所述步骤包括:
响应于接收到事件,利用一组用于管理所述已识别的服务的活动对象来识别所述已识别的组件和已识别的依赖性,其中所述事件由策略、拆卸所述组合服务的管理员命令或组件失败中的任一项触发;以及
使用所述活动对象组系统地拆卸所述组合服务,从而不影响提供给所述系统的其它组合服务。
13、根据权利要求2所述的计算机实现方法,进一步包括:
通过引入所述组合服务的状态的改变,部署所述支持服务和支持资源的所述组合服务;以及
通过引入所述组合服务的所述状态的所述改变,拆卸所述组合服务。
14、一种数据处理系统,包括:
总线系统;
连接到所述总线系统的通信系统;
连接到所述总线系统的存储器,其中所述存储器包括指令集和组合服务;以及
连接到所述总线系统的处理单元,其中所述处理单元执行所述指令集以:响应于接收到对所述组合服务的请求,利用一组用于管理服务的活动对象来识别依赖性以形成已识别的依赖性,其中所述已识别的依赖性指定所述组合服务的需求,并且其中所述组合服务具有多个组件;使用所述已识别的依赖性来识别所述组合服务的组件,以形成已识别的组件;使用所述已识别的组件来创建所述组合服务。
15、一种计算机程序产品,包括包含用于创建组合服务的程序代码的计算机可用介质,所述计算机程序产品包括:
用于响应于接收到对所述组合服务的请求,利用一组用于管理服务的活动对象来识别依赖性以形成已识别的依赖性的计算机可用程序代码,其中所述已识别的依赖性指定所述组合服务的需求,并且其中所述组合服务具有多个组件;
用于使用所述已识别的依赖性来识别所述组合服务的组件以形成已识别组件的计算机程序代码;以及
用于使用所述已识别的组件来创建所述组合服务的计算机程序代码。
16、根据权利要求15所述的计算机程序产品,进一步包括:
用于决定所述请求是否可以被现有的活动对象处理的计算机程序代码;
响应于所述请求不能被现有的活动对象处理的决定,用于实例化新的活动对象的计算机程序代码。
17、根据权利要求15所述的计算机程序产品,进一步包括:
用于通过配置所述已识别的组件将组合服务状态从当前状态改变到期望状态的计算机程序代码。
18、根据权利要求15所述的计算机程序产品,进一步包括:
用于根据依赖性树形成所述组合服务的计算机程序代码,其中所述组合服务的已识别的组件是活动知识库中的活动对象和活动模板。
19、根据权利要求18所述的计算机程序产品,其中所述活动知识库活动地管理一组组合服务,其中通过基于需求创建所述组合服务组、更新所述组合服务组和分解所述组合服务组,所述组合服务组被管理。
20、一种用于提供组合服务的方法,该方法包括:
从客户接收对所述组合服务的请求;
响应于接收到所述请求,利用一组活动对象以依赖性的形式识别所述组合服务的需求,其中所述依赖性指定所述组合服务的需求;
使用所述依赖性来识别所述组合服务的组件,以形成已识别的组件;
使用所述已识别的组件,在计算机可用介质上为所述组合服务创建计算机可用程序代码;和
将所述计算机可用介质发送到所述客户端。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/453,741 | 2006-06-15 | ||
US11/453,741 US7496893B2 (en) | 2006-06-15 | 2006-06-15 | Method for no-demand composition and teardown of service infrastructure |
PCT/US2007/013941 WO2007146368A2 (en) | 2006-06-15 | 2007-06-14 | Method and apparatus for on-demand composition and teardown of service infrastructure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101449242A true CN101449242A (zh) | 2009-06-03 |
CN101449242B CN101449242B (zh) | 2013-03-20 |
Family
ID=38832533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780018227.7A Expired - Fee Related CN101449242B (zh) | 2006-06-15 | 2007-06-14 | 按需组合和拆卸服务基础架构的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7496893B2 (zh) |
EP (1) | EP2035925A4 (zh) |
JP (1) | JP5068313B2 (zh) |
CN (1) | CN101449242B (zh) |
BR (1) | BRPI0713643A2 (zh) |
IL (1) | IL195214A (zh) |
TW (1) | TW200820075A (zh) |
WO (1) | WO2007146368A2 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007323A (zh) * | 2015-07-22 | 2015-10-28 | 上海斐讯数据通信技术有限公司 | 一种云资源的编排系统和方法 |
CN105335207A (zh) * | 2014-05-29 | 2016-02-17 | 国际商业机器公司 | 用于管理虚拟机实例的方法和装置 |
CN107209694A (zh) * | 2014-12-24 | 2017-09-26 | 皇家Kpn公司 | 用于控制按需服务供应的方法 |
CN107508704A (zh) * | 2017-08-16 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种云服务的生成方法及生成装置 |
CN107729046A (zh) * | 2017-10-17 | 2018-02-23 | 福建富士通信息软件有限公司 | 一种软件版本自动化发布方法及装置 |
CN108604334A (zh) * | 2016-02-13 | 2018-09-28 | At&T知识产权部有限合伙公司 | 用于自主服务组合的方法和装置 |
CN112042154A (zh) * | 2018-03-23 | 2020-12-04 | 施耐德电气美国股份有限公司 | 渐进的基于云的架构的系统和方法 |
WO2021044296A1 (en) * | 2019-09-06 | 2021-03-11 | International Business Machines Corporation | Deploying microservices across a service infrastructure |
CN113826367A (zh) * | 2019-09-28 | 2021-12-21 | 腾讯美国有限责任公司 | 用于计算平台上的功能实现的计算资源估计 |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7950007B2 (en) * | 2006-06-15 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for policy-based change management in a service delivery environment |
US7519711B2 (en) * | 2006-06-15 | 2009-04-14 | International Business Machines Corporation | Method for middleware assisted system integration in a federated environment |
US7496893B2 (en) * | 2006-06-15 | 2009-02-24 | International Business Machines Corporation | Method for no-demand composition and teardown of service infrastructure |
US20070294364A1 (en) * | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Management of composite software services |
US9274921B2 (en) * | 2006-12-27 | 2016-03-01 | International Business Machines Corporation | System and method for managing code displacement |
US8751626B2 (en) * | 2007-10-23 | 2014-06-10 | Microsoft Corporation | Model-based composite application platform |
US20090165021A1 (en) * | 2007-10-23 | 2009-06-25 | Microsoft Corporation | Model-Based Composite Application Platform |
ATE540503T1 (de) | 2007-11-21 | 2012-01-15 | Alcatel Lucent | Normalisierungseinrichtung und verfahren zum anfordern von einem schlüssel/wert paar eines gerätes |
US8370795B1 (en) * | 2008-01-31 | 2013-02-05 | Intuit Inc. | Method and system for explaining a value of a field in a form |
US8108831B2 (en) * | 2008-02-07 | 2012-01-31 | Microsoft Corporation | Iterative component binding |
US8307329B2 (en) | 2008-02-07 | 2012-11-06 | Microsoft Corporation | Implicit composition of component bindings |
US8954550B2 (en) * | 2008-02-13 | 2015-02-10 | Microsoft Corporation | Service dependency discovery in enterprise networks |
US8935371B2 (en) * | 2008-02-25 | 2015-01-13 | Sap Se | Hierarchical system operation in an adaptive computing environment |
US9104794B2 (en) * | 2008-07-15 | 2015-08-11 | Microsoft Technology Licensing, Llc | Automatic incremental application dependency discovery through code instrumentation |
US8051332B2 (en) | 2008-07-15 | 2011-11-01 | Avicode Inc. | Exposing application performance counters for .NET applications through code instrumentation |
US8689231B2 (en) * | 2009-06-30 | 2014-04-01 | Sap Ag | System and method for ordering tasks with complex interrelationships |
US8645936B2 (en) * | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
US8352610B2 (en) * | 2009-11-25 | 2013-01-08 | International Business Machines Corporation | Matching interest and availability of services in distributed federated service domains |
US9069619B2 (en) * | 2010-01-15 | 2015-06-30 | Oracle International Corporation | Self-testable HA framework library infrastructure |
US8583798B2 (en) * | 2010-01-15 | 2013-11-12 | Oracle International Corporation | Unidirectional resource and type dependencies in oracle clusterware |
US8438573B2 (en) * | 2010-01-15 | 2013-05-07 | Oracle International Corporation | Dependency on a resource type |
US8949425B2 (en) | 2010-01-15 | 2015-02-03 | Oracle International Corporation | “Local resource” type as a way to automate management of infrastructure resources in oracle clusterware |
US20110179173A1 (en) * | 2010-01-15 | 2011-07-21 | Carol Colrain | Conditional dependency in a computing cluster |
US9207987B2 (en) * | 2010-01-15 | 2015-12-08 | Oracle International Corporation | Dispersion dependency in oracle clusterware |
US9098334B2 (en) * | 2010-01-15 | 2015-08-04 | Oracle International Corporation | Special values in oracle clusterware resource profiles |
US9026589B1 (en) * | 2010-05-04 | 2015-05-05 | Amazon Technologies, Inc. | Stubbing techniques in distributed-services environments |
WO2011141759A1 (en) * | 2010-05-10 | 2011-11-17 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for auto-scaling information distribution using distributed processing elements |
US8930942B2 (en) * | 2010-05-26 | 2015-01-06 | Tibco Software Inc. | Capability model for deploying componentized applications |
US9178766B2 (en) * | 2010-06-28 | 2015-11-03 | Amazon Technologies, Inc. | Provisioning multiple network resources |
US8819683B2 (en) * | 2010-08-31 | 2014-08-26 | Autodesk, Inc. | Scalable distributed compute based on business rules |
US8615755B2 (en) * | 2010-09-15 | 2013-12-24 | Qualcomm Incorporated | System and method for managing resources of a portable computing device |
JPWO2012114889A1 (ja) * | 2011-02-23 | 2014-07-07 | 日本電気株式会社 | アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム |
US9389922B2 (en) | 2011-03-11 | 2016-07-12 | International Business Machines Corporation | Declarative service domain federation |
CN103649984B (zh) * | 2011-07-07 | 2016-10-19 | 英派尔科技开发有限公司 | 用于聚合环境中的供应商优化的方法和系统 |
US9817807B1 (en) * | 2011-08-23 | 2017-11-14 | Amazon Technologies, Inc. | Selecting platform-supported services |
US8819491B2 (en) | 2011-09-16 | 2014-08-26 | Tripwire, Inc. | Methods and apparatus for remediation workflow |
US8862941B2 (en) | 2011-09-16 | 2014-10-14 | Tripwire, Inc. | Methods and apparatus for remediation execution |
US9977653B2 (en) * | 2012-06-30 | 2018-05-22 | International Business Machines Corporation | Discovery and modeling of deployment actions for multiple deployment engine providers |
US8935234B2 (en) * | 2012-09-04 | 2015-01-13 | Oracle International Corporation | Referentially-complete data subsetting using relational databases |
CN103269282A (zh) | 2013-04-25 | 2013-08-28 | 杭州华三通信技术有限公司 | 网络配置自动部署方法和装置 |
WO2015116180A1 (en) | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Functional unit promotion to management unit |
US9258196B2 (en) | 2014-02-05 | 2016-02-09 | International Business Machines Corporation | Composite service pre-provisioning |
US9705995B2 (en) * | 2014-03-18 | 2017-07-11 | Axis Ab | Capability monitoring in a service oriented architecture |
KR20180043385A (ko) | 2014-04-09 | 2018-04-27 | 콘비다 와이어리스, 엘엘씨 | 서비스 인에이블러 기능 |
US9965263B2 (en) | 2014-06-02 | 2018-05-08 | Gogrid, LLC | Cloud orchestration engine |
JPWO2015194139A1 (ja) * | 2014-06-17 | 2017-04-20 | 日本電気株式会社 | 情報処理装置、配備方法、及び、プログラム |
US10282187B2 (en) | 2014-07-03 | 2019-05-07 | Oracle International Corporation | Efficient application patching in heterogeneous computing environments |
WO2016050270A1 (en) * | 2014-09-29 | 2016-04-07 | Hewlett-Packard Development Company L.P. | Provisioning a service |
US9778926B2 (en) | 2014-10-30 | 2017-10-03 | Google Inc. | Minimizing image copying during partition updates |
US9886263B2 (en) * | 2015-03-24 | 2018-02-06 | Oracle International Corporation | Techniques for efficient application configuration patching |
US11263006B2 (en) | 2015-11-24 | 2022-03-01 | Vmware, Inc. | Methods and apparatus to deploy workload domains in virtual server racks |
US10313479B2 (en) * | 2015-11-24 | 2019-06-04 | Vmware, Inc. | Methods and apparatus to manage workload domains in virtual server racks |
WO2017129248A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Service orchestration |
JP6668467B2 (ja) * | 2016-06-03 | 2020-03-18 | 株式会社日立製作所 | 管理システム及びリソーススケジューリング方法 |
US10922089B2 (en) * | 2016-09-22 | 2021-02-16 | Groupon, Inc. | Mobile service applications |
JP2018055479A (ja) * | 2016-09-29 | 2018-04-05 | 富士通株式会社 | サービス条件処理プログラム、装置、及び方法 |
US10454836B2 (en) * | 2016-11-01 | 2019-10-22 | At&T Intellectual Property I, L.P. | Method and apparatus for dynamically adapting a software defined network |
US10284730B2 (en) | 2016-11-01 | 2019-05-07 | At&T Intellectual Property I, L.P. | Method and apparatus for adaptive charging and performance in a software defined network |
US10469376B2 (en) | 2016-11-15 | 2019-11-05 | At&T Intellectual Property I, L.P. | Method and apparatus for dynamic network routing in a software defined network |
US10039006B2 (en) | 2016-12-05 | 2018-07-31 | At&T Intellectual Property I, L.P. | Method and system providing local data breakout within mobility networks |
US10264075B2 (en) * | 2017-02-27 | 2019-04-16 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for multiplexing service information from sensor data |
US10469286B2 (en) | 2017-03-06 | 2019-11-05 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for managing client devices using a virtual anchor manager |
US10212289B2 (en) | 2017-04-27 | 2019-02-19 | At&T Intellectual Property I, L.P. | Method and apparatus for managing resources in a software defined network |
US10466979B1 (en) | 2017-06-01 | 2019-11-05 | Nationwide Mutual Insurance Company | Software requirements creating and tracking system and method |
JP6984087B2 (ja) * | 2017-10-11 | 2021-12-17 | 日本電信電話株式会社 | サービス開発システム、リソース予測方法及びサービス開発プログラム |
US10360012B2 (en) * | 2017-11-09 | 2019-07-23 | International Business Machines Corporation | Dynamic selection of deployment configurations of software applications |
US11196643B2 (en) | 2018-04-04 | 2021-12-07 | Hewlett Packard Enterprise Development Lp | State transitions for a set of services |
US11175802B2 (en) * | 2018-09-21 | 2021-11-16 | Sap Se | Configuration object deletion manager |
US11630662B2 (en) * | 2018-10-03 | 2023-04-18 | Mitsubishi Electric Corporation | Software analysis device, software analysis method, and software analysis program |
US11281491B2 (en) | 2018-11-21 | 2022-03-22 | Hewlett Packard Enterprise Development Lp | Execution of services concurrently |
US11500687B2 (en) | 2019-09-27 | 2022-11-15 | Tencent America LLC | Method and apparatus for cloud service |
US11356382B1 (en) * | 2020-09-30 | 2022-06-07 | Amazon Technologies, Inc. | Protecting integration between resources of different services using service-generated dependency tags |
US20220357861A1 (en) * | 2021-05-10 | 2022-11-10 | Dropbox, Inc. | Service management system for scaling services based on dependency information in a distributed database |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
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 |
US6330689B1 (en) | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
US6247113B1 (en) * | 1998-05-27 | 2001-06-12 | Arm Limited | Coprocessor opcode division by data type |
US6330710B1 (en) * | 1998-06-19 | 2001-12-11 | At&T Corp. | Servlet-based architecture for dynamic service composition |
US6336138B1 (en) * | 1998-08-25 | 2002-01-01 | Hewlett-Packard Company | Template-driven approach for generating models on network services |
US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
US6901442B1 (en) | 2000-01-07 | 2005-05-31 | Netiq Corporation | Methods, system and computer program products for dynamic filtering of network performance test results |
US6697806B1 (en) * | 2000-04-24 | 2004-02-24 | Sprint Communications Company, L.P. | Access network authorization |
US7171654B2 (en) | 2000-05-25 | 2007-01-30 | The United States Of America As Represented By The Secretary Of The Navy | System specification language for resource management architecture and corresponding programs therefore |
JP2002041489A (ja) * | 2000-07-25 | 2002-02-08 | Mitsubishi Electric Corp | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 |
US7076728B2 (en) * | 2000-12-22 | 2006-07-11 | International Business Machines Corporation | Method and apparatus for end-to-end content publishing system using XML with an object dependency graph |
US7287147B1 (en) * | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
US7013461B2 (en) * | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US6996588B2 (en) | 2001-01-08 | 2006-02-07 | International Business Machines Corporation | Efficient application deployment on dynamic clusters |
US7464154B2 (en) | 2001-05-18 | 2008-12-09 | Network Resonance, Inc. | System, method and computer program product for analyzing data from network-based structured message stream |
US7694303B2 (en) | 2001-09-25 | 2010-04-06 | Sun Microsystems, Inc. | Method for dynamic optimization of multiplexed resource partitions |
WO2003063009A1 (en) * | 2002-01-18 | 2003-07-31 | Bea Systems, Inc. | System, method and interface for controlling server lifecycle |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US7243306B1 (en) * | 2002-07-17 | 2007-07-10 | International Business Machines Corporation | Service descriptor for a multitier compute infrastructure |
US7096459B2 (en) * | 2002-09-11 | 2006-08-22 | International Business Machines Corporation | Methods and apparatus for root cause identification and problem determination in distributed systems |
US20040060054A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Composition service for autonomic computing |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US8140677B2 (en) | 2002-11-21 | 2012-03-20 | International Business Machines Corporation | Autonomic web services hosting service |
US7526452B2 (en) * | 2002-12-16 | 2009-04-28 | International Business Machines Corporation | Apparatus, methods and computer programs for metering and accounting for services accessed over a network |
US20060294238A1 (en) | 2002-12-16 | 2006-12-28 | Naik Vijay K | Policy-based hierarchical management of shared resources in a grid environment |
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 |
US7392399B2 (en) * | 2003-05-05 | 2008-06-24 | Sun Microsystems, Inc. | Methods and systems for efficiently integrating a cryptographic co-processor |
US7426736B2 (en) * | 2003-05-22 | 2008-09-16 | International Business Machines Corporation | Business systems management solution for end-to-end event management using business system operational constraints |
US20040261060A1 (en) * | 2003-06-20 | 2004-12-23 | Haselden J. Kirk | Dependency based package deployment |
US7703029B2 (en) | 2003-07-28 | 2010-04-20 | Sap Ag | Grid browser component |
US7584454B1 (en) * | 2003-09-10 | 2009-09-01 | Nextaxiom Technology, Inc. | Semantic-based transactional support and recovery for nested composite software services |
US7103874B2 (en) * | 2003-10-23 | 2006-09-05 | Microsoft Corporation | Model-based management of computer systems and distributed applications |
US7926051B2 (en) | 2003-11-10 | 2011-04-12 | International Business Machines Corporation | Automatic parallel non-dependent component deployment |
US7568195B2 (en) | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7340654B2 (en) | 2004-06-17 | 2008-03-04 | Platform Computing Corporation | Autonomic monitoring in a grid environment |
US7712100B2 (en) | 2004-09-14 | 2010-05-04 | International Business Machines Corporation | Determining a capacity of a grid environment to handle a required workload for a virtual grid job request |
US7222149B2 (en) * | 2004-09-17 | 2007-05-22 | Microsoft Corporation | Ordering decision nodes in distributed decision making |
GB0421646D0 (en) | 2004-09-29 | 2004-10-27 | British Telecomm | Sharing data processing resources |
US7668741B2 (en) | 2005-01-06 | 2010-02-23 | International Business Machines Corporation | Managing compliance with service level agreements in a grid environment |
US20060195559A1 (en) | 2005-02-28 | 2006-08-31 | University Of Westminster | Services for grid computing |
US7945041B2 (en) * | 2005-05-27 | 2011-05-17 | International Business Machines Corporation | Method, system and program product for managing a customer request |
CN100583137C (zh) * | 2005-08-26 | 2010-01-20 | 南京邮电大学 | 基于内部工作流的网格服务构造方法 |
US20070050431A1 (en) * | 2005-08-26 | 2007-03-01 | Microsoft Corporation | Deploying content between networks |
US7899903B2 (en) * | 2005-09-30 | 2011-03-01 | Microsoft Corporation | Template based management system |
CN1764183A (zh) * | 2005-11-03 | 2006-04-26 | 西安交通大学 | 一种基于计算机网络的QoS驱动的提供组合Web服务的计算机系统 |
US7620653B1 (en) * | 2006-02-01 | 2009-11-17 | Amazon Technologies, Inc. | Service for retrieving and aggregating data used to generate web pages or other content items |
US20070294364A1 (en) | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Management of composite software services |
US7496893B2 (en) * | 2006-06-15 | 2009-02-24 | International Business Machines Corporation | Method for no-demand composition and teardown of service infrastructure |
US7519711B2 (en) * | 2006-06-15 | 2009-04-14 | International Business Machines Corporation | Method for middleware assisted system integration in a federated environment |
US7950007B2 (en) | 2006-06-15 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for policy-based change management in a service delivery environment |
-
2006
- 2006-06-15 US US11/453,741 patent/US7496893B2/en not_active Expired - Fee Related
-
2007
- 2007-06-07 TW TW096120484A patent/TW200820075A/zh unknown
- 2007-06-14 EP EP07796092A patent/EP2035925A4/en not_active Withdrawn
- 2007-06-14 JP JP2009515480A patent/JP5068313B2/ja not_active Expired - Fee Related
- 2007-06-14 CN CN200780018227.7A patent/CN101449242B/zh not_active Expired - Fee Related
- 2007-06-14 BR BRPI0713643-9A2A patent/BRPI0713643A2/pt not_active Application Discontinuation
- 2007-06-14 WO PCT/US2007/013941 patent/WO2007146368A2/en active Search and Examination
-
2008
- 2008-05-06 US US12/115,637 patent/US8191043B2/en not_active Expired - Fee Related
- 2008-11-11 IL IL195214A patent/IL195214A/en active IP Right Grant
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335207A (zh) * | 2014-05-29 | 2016-02-17 | 国际商业机器公司 | 用于管理虚拟机实例的方法和装置 |
CN105335207B (zh) * | 2014-05-29 | 2019-04-12 | 国际商业机器公司 | 用于管理虚拟机实例的方法和装置 |
CN107209694A (zh) * | 2014-12-24 | 2017-09-26 | 皇家Kpn公司 | 用于控制按需服务供应的方法 |
CN107209694B (zh) * | 2014-12-24 | 2022-03-08 | 皇家Kpn公司 | 用于控制按需服务供应的方法 |
CN105007323A (zh) * | 2015-07-22 | 2015-10-28 | 上海斐讯数据通信技术有限公司 | 一种云资源的编排系统和方法 |
US11615425B2 (en) | 2016-02-13 | 2023-03-28 | At&T Intellectual Property I, L.P. | Method and apparatus for autonomous services composition |
CN108604334A (zh) * | 2016-02-13 | 2018-09-28 | At&T知识产权部有限合伙公司 | 用于自主服务组合的方法和装置 |
US11222343B2 (en) | 2016-02-13 | 2022-01-11 | At&T Intellectual Property I, L.P. | Method and apparatus for autonomous services composition |
CN107508704A (zh) * | 2017-08-16 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种云服务的生成方法及生成装置 |
CN107729046A (zh) * | 2017-10-17 | 2018-02-23 | 福建富士通信息软件有限公司 | 一种软件版本自动化发布方法及装置 |
CN112042154A (zh) * | 2018-03-23 | 2020-12-04 | 施耐德电气美国股份有限公司 | 渐进的基于云的架构的系统和方法 |
CN112042154B (zh) * | 2018-03-23 | 2024-03-29 | 施耐德电气美国股份有限公司 | 渐进的基于云的架构的系统和方法 |
WO2021044296A1 (en) * | 2019-09-06 | 2021-03-11 | International Business Machines Corporation | Deploying microservices across a service infrastructure |
US11556321B2 (en) | 2019-09-06 | 2023-01-17 | International Business Machines Corporation | Deploying microservices across a service infrastructure |
GB2603340A (en) * | 2019-09-06 | 2022-08-03 | Ibm | Deploying microservices across a service infrastructure |
GB2603340B (en) * | 2019-09-06 | 2023-04-26 | Ibm | Deploying microservices across a service infrastructure |
CN113826367B (zh) * | 2019-09-28 | 2023-08-08 | 腾讯美国有限责任公司 | 用于实现处理功能的资源估计方法、装置和电子设备 |
CN113826367A (zh) * | 2019-09-28 | 2021-12-21 | 腾讯美国有限责任公司 | 用于计算平台上的功能实现的计算资源估计 |
Also Published As
Publication number | Publication date |
---|---|
BRPI0713643A2 (pt) | 2014-06-24 |
EP2035925A4 (en) | 2010-11-03 |
US8191043B2 (en) | 2012-05-29 |
EP2035925A2 (en) | 2009-03-18 |
US7496893B2 (en) | 2009-02-24 |
US20080209397A1 (en) | 2008-08-28 |
US20070294668A1 (en) | 2007-12-20 |
JP5068313B2 (ja) | 2012-11-07 |
IL195214A (en) | 2012-05-31 |
WO2007146368A3 (en) | 2008-10-02 |
WO2007146368A2 (en) | 2007-12-21 |
CN101449242B (zh) | 2013-03-20 |
TW200820075A (en) | 2008-05-01 |
JP2009540469A (ja) | 2009-11-19 |
IL195214A0 (en) | 2009-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101449242B (zh) | 按需组合和拆卸服务基础架构的方法和装置 | |
CN101454766B (zh) | 用于管理软件服务的方法和数据处理系统 | |
RU2737344C2 (ru) | Способы, системы и устройство для динамического обеспечения безграничного администрирования действующей конфигурации m..n высокой доступности с дополняющим ресурсом | |
US11074098B2 (en) | Systems and methods for java virtual machine management | |
CN101449263B (zh) | 用于实例化网络上的服务的以计算机实现的方法和装备 | |
CN101946258B (zh) | 基于计算机的业务过程在专用硬件上的基于模型的部署 | |
Tsaregorodtsev et al. | DIRAC: a community grid solution | |
EP2238533B1 (en) | Managing component programs within a service application | |
CN101449241B (zh) | 用于服务递送环境中的基于策略的改变管理的方法和装置 | |
US10104053B2 (en) | System and method for providing annotated service blueprints in an intelligent workload management system | |
CN100418057C (zh) | 用于应用程序分布式管理的启用网格的虚拟机的方法和系统 | |
US7684964B2 (en) | Model and system state synchronization | |
EP4006728A1 (en) | Systems and methods for private cloud computing | |
US20040205179A1 (en) | Integrating design, deployment, and management phases for systems | |
US10481890B2 (en) | Environment mapping and patching synthesis | |
CN101946261A (zh) | 基于计算机的业务过程的自动化模型产生 | |
JP7177335B2 (ja) | 情報処理方法、情報処理装置および情報処理プログラム | |
CN102841842A (zh) | 用于下一代测试系统的自动化控制器 | |
Xing et al. | Occam: A Programming System for Reliable Network Management | |
CN118796160A (zh) | 软件架构设计平台及软件架构设计方法 | |
SHARAF | Engineering of a set of software tools for server farms virtualization | |
Shwartz et al. | Managing system capabilities and requirements using rough set theory | |
Othman | Integrating Adaptive services in Grid Resource Brokering | |
Hoshing et al. | Accelerator Tool for formal ATAM®-based Architecture Evaluation |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20200614 |
|
CF01 | Termination of patent right due to non-payment of annual fee |