CN108614716B - 用于指定基于云的部署的配置的高级语言 - Google Patents

用于指定基于云的部署的配置的高级语言 Download PDF

Info

Publication number
CN108614716B
CN108614716B CN201710094976.3A CN201710094976A CN108614716B CN 108614716 B CN108614716 B CN 108614716B CN 201710094976 A CN201710094976 A CN 201710094976A CN 108614716 B CN108614716 B CN 108614716B
Authority
CN
China
Prior art keywords
class
cloud
deployment
definition
definitions
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
CN201710094976.3A
Other languages
English (en)
Other versions
CN108614716A (zh
Inventor
P·里斯博德
P·K·萨达
R·S·库尔卡尼
R·贾因
V·S·谢诺伊
V·萨哈斯拉纳曼
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN108614716A publication Critical patent/CN108614716A/zh
Application granted granted Critical
Publication of CN108614716B publication Critical patent/CN108614716B/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/60Software deployment
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0266Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]
    • 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/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • 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]
    • H04L41/5012Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

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)
  • Stored Programmes (AREA)

Abstract

本公开的各实施例总体上涉及用于指定基于云的部署的配置的高级语言。具体地,涉及用于指定基于云的部署的配置的高级语言的方法、***和装置、包括在计算机存储介质上编码的计算机程序。在一个方面中,方法包括:接收用于配置基于云的部署的配置规范,配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对基于云的部署的相应数据或者功能部件进行建模,并且每个类的相应类定义代表由该类建模的数据或者功能部件的请求的状态;导出用于基于一个或者多个类的类定义而配置基于云的部署的多个应用编程接口(API)调用;使得执行多个API调用以配置基于云的部署。

Description

用于指定基于云的部署的配置的高级语言
分案申请说明
本申请是申请日为2012年3月15日、申请号为201280023417.9、发明名称为“用于指定基于云的部署的配置的高级语言”的中国发明专利申请的分案申请。
有关申请的交叉引用
本申请根据35U.S.C.§119(e)要求对于2011年3月16日提交的第61/453,478号美国临时申请的权益,其整体通过引用而结合于此。
技术领域
本说明书主要地涉及云计算。
背景技术
云计算是被开发用以支持对如下可配置计算资源(例如网络、服务器、存储装置、应用和服务)的共享池的方便、按需网络访问,该计算资源可以被快速、动态并且用最少的人工管理精力和与服务提供方的人员交互来配备和释放这些计算资源。
一些常见的基于云的服务模型包括软件(例如商业上可用软件应用)即服务(SaaS)、平台(例如软件应用、比如虚拟机或者应用框架的托管环境)即服务(PaaS)和基础设施(例如计算机功率、存储装置、数据库、联网服务等)即服务(IaaS)。在使基于云的服务可用于云服务客户之前,根据配置规范来配置服务的各种方面,从而在部署服务时它满足客户的需要和使用需求。
发明内容
本说明书描述涉及云计算环境使用和管理的技术。
一般而言,可以在包括以下动作的方法中体现本说明书中描述的主题内容的另一创新方面:接收用于配置基于云的部署的配置规范,配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对基于云的部署的相应数据或者功能部件进行建模,并且每个类的相应类定义代表由该类建模的数据或者功能部件的请求的状态;导出用于基于一个或者多个类的类定义而配置基于云的部署的多个应用编程接口(API)调用;并且使得执行多个API调用以配置基于云的部署。
这些和其它实施例可以各自可选地包括以下附加特征中的一个或者多个附加特征。一个或者多个类包括至少一个现有基本类和至少一个从现有基本类扩展的定制的类,定制的类继承现有基本类的各类参数,并且定制的类修改从现有基本类继承的类参数中的至少一个类参数的值,或者包括未存在于现有基本类中的至少一个新类参数。由每个类建模的数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在基于云的环境中利用的服务、由基于云的环境中安装的应用执行的软件作用、保持将在基于云的环境的部署或者操作期间使用的数据的数据包。规范语言支持在类定义之间的依赖,并且在第一个类与第二个类之间的定义依赖代表在由第一个类和第二个类建模的相应部件之间的部署依赖。规范语言支持在类定义之间的连接,并且将第二类的实例链接到第一类的类参数的值指派代表在由第一类和第二类建模的相应部件之间的连接。基于一个或者多个类的相应类定义来标识由一个或者多个类建模的多个数据和功能部件以及在多个数据或者功能部件之中存在的一个或者多个依赖关系和连接关系;基于标识的多个数据和功能部件以及标识的依赖关系和连接关系导出基于云的环境的框图;并且在框图中表示用于动态重新配置基于云的环境的触发事件。标识各自已经根据用规范语言编写的相应配置规范而执行的多个基于云的部署;标识至少一个基本类,该至少一个基本类的类定义在多个基于云的部署中的数个基于云的部署中被使用;监视多个基于云的部署中的数个基于云的部署中的每个的相应性能;以及基于多个基于云的部署中的数个基于云的部署的总体性能来计算至少一个基本类的质量度量。存储规范语言的多个核心类的各类定义,每个核心类对应于基于云的环境的模块化部件,每个核心类能够利用附加类参数进行扩展以配置相应模块化部件;存储在核心类中的每个核心类与相应API调用组之间的映射,相应API调用组用于根据核心类的类参数来配置与核心类相关联的模块化部件;以及存储多个协议,该多个协议用于修改与每个核心类相关联的相应API调用组以为从核心类导出的新类定义而获得新API调用组。导出用于配置基于云的部署的多个API调用还包括:基于多个核心类中的一个或者多个核心类相关联的相应API调用组、并且基于用于修改相应API调用组的多个协议来导出多个API调用,该配置规范的所述一个或者多个类从所述多个核心类导出。多个协议还包括用于根据在根据规范语言编写的类定义中指定的依赖关系和连接关系施加API调用组的排序的规则。
一般而言,可以在包括以下动作的方法中体现本说明书中描述的主题内容的另一创新方面:从多个定义供应方中的每个定义供应方接收相应定义提交,其中相应定义提交包括用规范语言编写的一个或者多个类定义,并且每个类定义使用一组可配置类参数对基于云的部署的数据或者功能部件进行建模,并且可扩展以通过修改可配置类参数的组中的一个或者多个类参数、或者添加一个或者多个新类参数来创建至少一个新类定义;并且提供呈现从多个定义供应方接收的类定义的用户界面以用于由多个定义用户回顾和选择。
这些和其它实施例可以各自可选地包括以下附加特征中的一个或者多个附加特征。接收用规范语言编写的多个不同配置规范,多个不同配置规范各自用于配置不同的基于云的部署,并且包括从多个定义供应方接收的类定义中的相同类定义扩展的不同类定义;并且至少基于在不同的基于云的部署中的不同配置规范中的、接收的类定义中的相同类定义和从接收的类定义扩展的不同类定义来配置该不同的基于云的部署中的每个。对于接收的类定义中的每个类定义:监视类定义在已经被用来配置多个基于云的部署的多个配置规范中的使用;并且为类定义在多个配置规范中的每个使用而记录向类定义的定义供应方的贷记和向与使用关联的定义用户的收费。类定义的使用包括类定义在已经用来执行相应的基于云的部署的相应配置规范中的实例化。类定义的使用包括对类定义的扩展以创建在用来执行相应的基于云的部署的相应配置规范中实例化的新类定义。从软件供应方接收软件提交,软件提交包括将在基于云的环境中部署的软件应用和各自用于用以不同方式在基于云的环境中部署软件应用的多个不同配置规范;并且提供多个不同配置规范以用于由软件用户回顾和选择。接收软件用户对多个不同配置规范之一的选择;根据选择的不同配置规范在基于云的环境中部署软件应用;并且基于与选择的不同配置规范关联的相应架构记录向软件用户的收费和向软件供应方的贷记。
一般而言,可以在包括以下动作的方法中体现本说明书中描述的主题内容的另一创新方面:提供多个类定义以用于选择,每个类定义使用可配置类参数组来对基于云的环境的相应数据或者功能部件进行建模,每个类定义支持在用于基于云的部署的配置规范中实例化和继承类定义;基于多个基于云的部署的总体性能导出与多个类定义中的每个类定义相关联的相应性能度量,其中已经根据需要实例化类定义或者从类定义导出的新类定义的各配置规范执行多个基于云的部署;并且在对多个类定义排行时利用与多个类定义中的每个类定义相关联的相应性能度量。
这些和其它实施例可以各自可选地包括以下附加特征中的一个或者多个附加特征。基于该基于云的环境的由多个类定义建模的相应数据或者功能部件对多个类定义分类;并且在多个类定义的相应类别内对类定义排行。提供多个类定义用于选择还包括:在选择用户界面中随着多个类定义中的每个类定义提供相应性能度量用于用户回顾。对于多个类定义中的每个类定义:标识已经根据需要实例化类定义或者从类定义导出的至少一个新类定义的各配置规范执行的多个基于云的部署;监视多个基于云的部署的各性能;并且关联多个部署的各性能与类定义。基于多个基于云的部署的总体性能导出与多个类定义中的每个类定义相关联的相应性能度量还包括:对于多个类定义中的每个类定义,标识根据类定义或者从类定义导出的新类定义而配置的多个基于云的部署中的一个或者多个数据或者功能部件;标识与标识的一个或者多个数据或者功能部件相关联的一个或者多个性能度量;并且通过聚合标识的一个或者多个性能度量来导出与类定义关联的相应性能度量。性能度量包括对延时、可靠性、可缩放性、可用性或者安全性的一个或者多个测量。对于多个类定义中的每个类定义:跟踪已经至少部分根据类定义而配置的基于云的部署的相应计数;并且在对多个类定义排行时利用与多个类定义关联的各计数。对于多个类定义中的每个类定义:跟踪在已经至少部分地基于类定义而配置的基于云的部署中遇到的问题的各计数;并且跟踪用于化解在已经至少部分根据类定义而配置的基于云的部署中遇到的问题的所需改变的数目;以及在对多个类定义排行时利用与多个类定义关联的问题的各计数和所需改变的各数目。与多个类定义关联的所需改变的相应数目用来计算在对多个类定义排行时向与多个类定义关联的相应性能度量给予的各权值。
可以实施本说明书中描述的主题内容的具体实施例以便实现以下优点中的一个或者多个优点。
高级面向对象的规范语言允许基于云的部署中的可配置部件由包括可配置类参数的类定义来建模。面向对象的规范语言支持扩展现有基本类定义以创建新类定义,并且支持新类定义继承来自现有基本类定义的类参数。基于云的服务的监管用户可以基于在配置一个或者多个通用部署时使用的类定义、比如通过修改类定义的类参数值、改变在类之间的相互关系和用新类参数补充现有类参数来定制基于云的部署。
面向对象的规范语言允许对可配置的不同类型的云服务部件进行多层抽象化。例如高级面向对象的规范语言不仅支持对硬件和虚拟资源建模的类定义,而且支持由基于云的部署中的软件应用和服务来服务的软件作用和服务作用。此外,面向对象的规范语言提供用于指定在类之间的依赖和连接的语法。涉及到多个子部件和复杂结果的云部件可以由类定义建模,这些类定义引用多个类型的基本类,并且指定在基本类之间的各相互关系。
配置规范可以依赖于现有类定义以在高抽象化水平配置云部署的一些方面而使用新导出的类定义在更详细水平定制其它方面。基于云的服务的监管用户能够通过选择用于在用于基于云的部署的配置规范中包括和实例化的适当类定义集合来控制用于基于云的部署的定制水平。
此外,面向对象的规范语言允许创建和存储对公共或者专用云服务部件建模的许多类定义。这些存储的类定义可以如在将来部署的配置规范中那样由不同云服务客户扩展或者重用。类定义在规范配置中的这一重用可以提高部署过程的速度和效率。
由于可以重用并且在许多运服务客户之间共享类定义,所以云服务客户无需重复用于为相同或者相似目的开发适当配置规范的工作。可以开发用于共享可重用类定义的集市,从而云服务客户可以选择付费购买或者许可使用由其它云服务客户开发和提供给的现有类定义。此外,可以向软件应用提供适合云客户的不同使用需求和组织基础设施的不同类型的配置规范(即作为“配置卷包”的软件解决方案)。
在用面向对象的规范语言编写基于云的部署的配置规范时,云服务提供方能够解析配置规范以标识在配置基于云的部署的每个数据或者功能部件时涉及到的类定义。另外,在根据配置规范执行部署时,云服务提供方也能够标识与部署的数据或者功能部件中的每个数据或者功能部件关联的下层软件或者虚拟资源。因此,面向对象的规范语言使云服务提供方能够监视基于云的部署的数据和功能部件的性能并且关联性能与用来配置数据和功能部件中的每个数据和功能部件的类定义。因此,云服务提供方可以向云服务客户提供关于需要修改配置规范的哪些部分以提高部署的性能的指导。
在一些实现中,云服务提供方可以基于配置规范生成用于基于云的部署的框图。可以在框图上可视地表示部署的不同部件的性能。也可以在框图中表示在配置规范中指定的各种重新配置触发。这一可视表示允许基于云的部署的管理员及时和适当调整部署的配置参数。
面向对象的规范语言允许类定义在多个配置规范中并且在潜在地由多个云服务客户重用。云服务提供方可以跟踪已经使用涉及到重用的类定义的配置规范而配置的多个基于云的部署的性能。对于每个重用的类定义,云服务提供方可以基于已经使用类定义而配置的多个部署的总体性能评价类定义的质量。在用于共享可重用类定义的集市中,可以提供基于类定义质量的类定义排行和质量分数。这一排行或者质量分数帮助云服务客户更好地选择用于在它们自己的基于云的部署中重用的类定义。排行或者质量分数也帮助可重用类定义的提供方改进它们的类定义。
在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其它特征、方面和优点将从描述、附图和权利要求中变得清楚。
附图说明
图1图示示例云计算环境。
图2A示出用于基于云的部署的常规配置规范的示例。
图2B图示根据图2A中所示配置规范的基于云的部署的合成拓扑。
图3A是用示例面向对象的规范语言编写的示例配置规范。
图3B是包括用示例面向对象的规范语言编写的可重用类定义的示例模块。
图3C是利用图3B中所示可重用类定义的示例配置规范。
图4是示例云服务提供方的示例云服务管理器的框图。
图5是示出根据图3C中所示配置规范配置的示例基于云的部署的拓扑的框图。
图6是用于处理用面向对象的规范语言编写的配置规范的示例过程的流程图。
图7是用于以基于云的部署的配置规范为基础导出框图的示例过程的流程图,该框图示出基于云的部署的拓扑。
图8是监视基于云的部署的性能并且关联性能与在配置基于云的部署时使用的类定义的示例过程的流程图。
图9是用于基于至少部分基于重用的类定义而配置的多个基于云的部署的总体性能评价重用的类定义的质量的示例过程的流程图。
图10是用于导出API调用的示例过程的流程图,这些API调用用于基于在配置规范中使用的类定义而配置基于云的部署。
图11是用于提供用于共享可重用类定义的平台的示例过程的流程图。
图12是用于基于全使用至少一个公共可重用类定义的不同配置规范来配置多个不同的基于云的部署的示例过程的流程图。
图13是用于向定义用户收费并且基于由定义供应方提供的可重用类定义的使用向定义供应方贷记的示例过程的流程图。
图14是用于提供用于销售“配置卷包”的软件解决方案的平台的示例过程的流程图。
图15是用于基于软件用户对配置卷包的软件解决方案的选择向软件用户收费并且向软件提供方贷记的示例过程的流程图。
图16是用于在对已经在配置多个基于云的部署时使用的可重用类定义排行时利用多个基于云的部署的总体性能度量的示例过程的流程图。
图17是用于对可重用类定义分类并且在可重用类定义的相应类别内对它们排行的示例过程的流程图。
图18是用于关联多个基于云的部署的性能与用来配置多个基于云的部署的类定义的示例过程的流程图。
图19是用于基于多个部署的总体性能导出与重用的类定义关联的性能度量的示例过程的流程图。
图20是用于在对可重用类定义排行时利用多个因素的示例过程的流程图。
各种附图中的相似标号和标示指示相似要素。
具体实施方式
在云计算环境中,云服务客户(例如终端用户或者企业)通过一个或者多个网络(例如因特网)获得对软件、平台和/或基础设施服务的访问。云服务客户能够例如通过由云服务提供方提供的配置用户界面和/或通过在云服务提供方存储的可编程建立的配置规范随需缩放服务水平(例如按照服务类型、质量和数量)。对应地,云服务提供方汇聚资源并且经由多租户模型服务于它的客户,在该多租户模型中根据客户需求指派和重新指派、配置和重新配置物理和虚拟资源。在云基础设置下层的物理资源的位置未向云服务客户暴露并且可以动态改变。
图1是图示示例云计算环境100的框图。在示例云计算环境100中,云服务客户(例如102a、102b、102c)通过一个或者多个网络106使用客户设备来与云服务提供方104通信。云服务客户包括云服务提供方104比如在“软件即服务”(SaaS)模型中提供的软件应用的终端用户。云服务客户也可以包括比如在“平台即服务”(PaaS)和/或“基础设施即服务”(IaaS)模型中从云服务提供方104接收平台和/或基础设施服务的企业客户。云服务提供方104提供的软件应用服务、平台服务和基础设施服务由内勤或者第三方服务开发者108开发并且通过云服务提供方104而对云服务客户可用。云服务客户可以运用来自云服务提供方104的多于一个类型的服务。
在一个示例中,在多层中在概念上构造云服务提供方104。最低层是在其上构建云服务提供方104的其它层的固件和硬件层110。固件和硬件层110包括跨越因特网在地理上分布的并且提供物理资源的通用贡献节点(例如数据中心、计算机和存储设备),以用于实施云服务提供方104的更高层。
在固件和硬件层110以上是软件内核层112。软件内核层112包括托管由云服务提供方104提供的云基础设施服务的操作***111和/或虚拟机管理器113。软件内核层112通过一个或者多个硬件/固件级应用编程接口(API)控制下层固件和硬件层110并且与下层固件和硬件层110通信。硬件/固件级API可以是提供方专属的并且被实施用于支持基于超文本传送协议(HTTP)和HTTP安全(HTTPS)的通信协议。提供方专属API的示例包括Amazon Web服务API、Google应用引擎API和Microsoft SQL Azure API。
云服务提供方104提供的基础设施服务包括虚拟化的资源、比如虚拟机、虚拟存储装置(例如虚拟盘)、虚拟网络装置(例如防火墙)等。基础设施服务也包括虚拟化的服务、比如数据库服务、联网服务、文件***服务、web托管服务、负荷平衡服务、MapReduce服务、消息队列服务、地图服务、电子邮件服务等。这些基础设施服务中的每个基础设施服务可以由云服务客户运用并且被部署在软件内核层112以上的基础设施服务层114中。
基础设施服务部署的规模和各种方面(例如数据、连接性以及在服务部件内和在服务部件之间的依赖关系)可由云服务客户的管理员用户配置。在一个示例中,管理员用户经由云服务提供方104的前端接口120向云服务提供方104提交配置规范。云服务提供方104根据涉及到的基础设施服务的API和下层软件内核层112的API将配置规范翻译成对基础服务层114和内核层112的指令(例如API调用)。执行这些指令以配备和配置在部署的配置规范中请求的基础设施服务。例如可以将配置规范翻译成基础设施和内核级API调用,这些API调用创建、重建、移动或者删除部件(例如虚拟机和服务)并且指派或者改变部件的属性(例如存储器和CPU分配、网络设置、盘大小和卷)。
除了基础设施服务之外,示例云服务提供方104也提供平台服务、比如用于运行虚拟机的环境(例如Linux、Solaris、Microsoft Windows等)或者用于开发和起动特定类型的软件应用的框架(例如.NET、Java、Oracle数据库等)。平台服务通过基础设施服务层114实施于平台服务层116中并且可以运用用特定方式配置的一个或者多个基础设施服务。平台服务的配置可以由根据平台服务的API并且可选地根据在启用平台服务时运用的基础设施服务的API编写的程序代码来实现。
在这一示例中,云服务提供方104也提供应用服务层118中的软件应用服务。软件应用(例如商业上可用软件应用)可以被安装于一个或者多个虚拟机上,或者被部署于平台服务层116中的应用框架中。软件应用也可以与基础设施层114中的一个或者多个基础设施服务部件(例如防火墙、数据库、web服务器等)通信。可以通过软件本身的API以及下层平台和基础设施服务部件的API实现应用服务层118中的软件应用的安装和配置。
为了管理向云服务客户(例如102a、102b、102c)提供的基于云的服务的部署和操作,示例云服务提供方104包括云服务管理器122。示例云服务管理器122与前端接口120通信以从云服务客户接收服务请求。示例云服务管理器122还负责管理云资源和服务、包括服务注册、配备、协调、监视、调度等。如在本说明书中描述的那样,示例云服务管理器122也包括用于将不同服务层(例如层114、116和118)(例如如在一个或者多个配置规范和服务水平协定(SLA)中表达的)用户要求翻译成(例如如在一个或者多个内核硬件/固件级API调用中表达的)物理资源需求的工具和库。
虽然示例云服务提供方104提供所有三个类型的基于云的服务,但是在一些实现中可以提供更少或者更多类型的服务。在一些实现中,云服务提供方104可以向其它云服务提供方外包云服务中的一些云服务或者服务的部分。云服务管理器120可以实施对这些其它云服务提供方的API调用用于向云服务客户支持该云服务管理器的服务中的一些服务。此外,图1中所示云服务提供方104的概念层仅为示例。可以例如根据云服务提供方实际赋予的服务类型来提供云服务提供方的其它概念结构。
在这一示例中,云服务客户可以运用服务层114、116和118中的每个服务层中赋予的基于云的服务。根据云服务客户已经运用的服务类型,在配置服务时向云服务客户批准不同级别的控制。例如,如果运用软件应用服务,则向云服务客户的管理员用户给予对如何配置软件应用的控制,但是对支持软件应用的下层平台和基础设施服务的控制留在云服务提供方104。如果运用平台服务,则向云服务客户的监管用户给予对如何配置平台和/或应用框架的控制,但是对支持平台和/或应用框架的基础设施服务的控制留在云服务提供方104。类似地,如果运用基础设施服务,则向云服务客户的监管用户给予对运用的特定基础设施服务、而不是对下层内核层112以及固件和硬件层110的控制。
在云计算环境100中,云服务客户使用数据处理装置、比如个人计算机、智能电话和平板计算机来访问基于云的服务。根据运用的服务类型,不同用户界面或者编程接口可以用来与云服务提供方104通信。
例如,如果运用软件应用服务,则终端用户可以通过web浏览器访问和使用软件应用。如果运用平台或者基础设施服务,则服务的用户(例如云服务客户的管理员用户)可以访问配置用户界面,该配置用户界面包括用于控制和配置服务的监管功能。监管功能例如包括启动或者停止虚拟机、管理云存储装置、在虚拟机上安装和部署软件或者建立web服务器等。此外,云服务提供方104可以可选地允许云服务客户的管理员用户根据依赖于提供方、平台、框架和/或服务的应用编程接口(API)编写程序代码以控制和配置云服务客户接收的服务的各种方面。在一些实现中,如果开放标准用于云计算环境,则独立于提供方、平台、框架和服务的API也可以用来控制和配置服务。
在配置基于云的服务以用于部署时,服务用户或者服务开发者向云服务提供方104提供一个或者多个配置文件。配置文件阐述按照各种配置参数表达的服务的希望的初始状态。通常根据云服务提供方104提供或者识别的规则和语法用结构化方式编写配置文件,从而配置文件将由云服务提供方104正确解析和解译。
图2A是用于在云计算环境中部署简单web应用的常规配置规范200的示例。用可扩展标记语言(XML)编写示例配置规范200,该XML是用于指定用于基于云的部署的配置的常用语言。在文本文件中向云服务提供方提供示例配置规范200。云服务提供方使用如下工具(例如解析器或者API翻译器),这些工具根据配置文件中的标记(例如MXL标签、元素和属性等)解析配置文件,并且将配置文件中指定的要求转换成一个或者多个API调用集合。在确定适当API调用集合之后,云服务提供方执行API调用以根据在配置文件中阐述的要求执行部署。
图2B图示web应用服务在根据配置规范200部署它之后的合成拓扑208。首先根据代码块202,在单个网格服务管理器(GSM)虚拟机212上部署单个GSM 210。在GSM机器212上部署GSM 210之后,如代码块204指定的那样,部署两个网格服务容器(GSC)214a和214b,每个GSC在相应GSC机器(216a或者216b)上。然后根据代码块202,GSM在两个GSC 214a和214b中的每个GSC内安装web应用软件的副本(例如应用副本218a或者218b)。根据代码块206,在负荷平衡器机器222上启动并且使用负荷平衡器服务220以将业务(例如来自客户端浏览器224的HTTP请求)引向两个GSC机器216a和216b,并且用隧道发送回在GSC机器216a和216b上运行的web应用预备的响应。
如图2A和2B中所示,示例常规配置规范200依赖于嵌套标记构造(例如代码块202、204和206)以描述部署的部件和在部件之间的关系。编写配置规范200的用户需要熟悉在进入配置规范200的每个标记构造内的细节和该标记构造对云服务提供方的API翻译器的含义。对于大型和复杂部署,配置文件可以变成很冗长和复杂而又许多层标记和重复语句。另外,代码重用可能性随着配置规范变成冗长和复杂而减少,因为为另一部署定制配置规范将需要许多改变并且调试定制的配置文件也将变成更困难。
如在本说明书中公开的那样,取代用标记语言或者通过图形用户界面提供配置规范,云服务客户或者服务开发者可以提供用高级面向对象的规范语言编写的配置规范。高级面向对象的规范语言允许基于云的部署的部件(例如基础设施、存储设备、服务、待安装的软件包和安装的软件应用发挥的“软件作用”)为一个或者多个可重用和可修改类的实例,其中每个类使用可配置类参数组对部署的部件建模。可以使用由面向对象的规范语言提供的语法和函数为特定部署指定、重用或者修改每个类参数的值。每个可重用和可修改类的示例声明由该类建模的部件的希望的状态。
如在本说明书中描述的那样,高级面向对象的规范语言支持继承类定义。可以基于如下语句提供新类定义,这些语句使用高级规范语言使一个或者多个现有类定义相关或者修改一个或者多个现有类定义。使不同类相关的语句捕获在部署的多个方面(例如数据或者功能部件)之间的关系。这样的关系的示例包括在部署中的软件安装与服务激活之间的依赖在部署中的多个软件作用之间的连接以及在部署中的软件作用与服务或者虚拟设备之间的连接。也可以通过添加新类参数和/或方法扩展现有类定义来创建新类定义。用户可以通过指定从一个或者多个现有基本类导出的新类来定制部署并且实例化新类。
根据这一规范,云服务提供方能够基于由在配置规范中包括的类定义指定的要求将用高级面向对象的规范语言编写的配置规范编译成API调用集合。在配置规范中包括类定义是指在配置规范中请求实例化类定义或者实例化从类定义导出的新类定义。
在一些实现中,云服务提供方的不同服务层和在相同层内的不同服务具有不同API。为了编译用面向对象的规范语言编写的配置规范,云服务提供方存储用于将规范语言的更基本类定义(或核心类定义)集合的每个类定义翻译成相应API调用组的规则和协议集合。用于每个核心类定义的API调用组服从由核心类定义建模的部件类型的API。编译器继而能够使用规则和协议集合以将从核心类定义导出的所有类定义翻译成适当API调用组合以配置特定部署的所有部件。在一些实现中,向云服务提供方的一个或者多个服务器发送并且在该一个或者多个服务器上执行API调用。备选地,可以向云服务提供方或者第三方服务提供方的中间部件传递API调用中的一些API调用,其中API调用由更低级AP调用进一步处理并且由中间部件或者第三方服务提供方的子部件执行。
在一些实现中,高级面向对象的规范语言也包括用于指定触发的语法,这些触发用于缩放或者动态重新配置部署的各种方面。例如对虚拟机建模的类定义可以包括用于缩放策略的一个或者多个类参数,从而编译器可以导出API调用以动态调整基于云服务管理器(例如图1中所示云服务管理器122)监视的各种性能度量部署的虚拟机数目。
以下示例(图3A-3C中所示)图示了示例面向对象的规范语言的语法和各种属性以及如何可以根据示例面向对象的规范语言并且基于现有和新导出的类定义指定基于云的部署。
在第一示例中,在图3A中示出用示例面向对象的规范语言编写的示例配置规范300。根据这一配置规范300进行的部署用于起动安装有web服务器(例如Apache web服务器)的虚拟机并且供给数据包中存在的文件。
这一示例假设存在多个基本类定义,编译器能够解析这些基本类定义并且将它们翻译成API调用。现有基本类定义包括编译器提供的核心类定义集合,并且可能包括直接或者经由一个或者多个中间类定义而从核心类定义中的一个或者多个核心类定义扩展的其它类定义。
在一些实现中,将现有基本类定义分组成模块(例如图3A中所示模块“utils”、“std”),并且在每个模块中包括的类在配置规范中由跟随有类名称的模块名称(例如如规范300中所示"std.Parameters"、"utils.ConfiguratorLAMP"、"std.DataPackage"、"std.Role"、"utils.PublicTCPFirewall"、"utils.BaseDeployment")引用。基本类定义中的每个基本类定义指定受到在配置规范300中阐述的修改和部件关系制约的、基于云的部署的对应部件的初始配置状态。
如图3A中所示,配置规范300包括从现有基本类定义扩展的新类定义。例如分别如新类定义302、304、306、308、310和312所示,新类"Params"从基本类"std.Parameters"扩展,新类"SimpleHostingPackage"从基本类"std.DataPackage"扩展,新类"SimpleHostingVM"从基本类"utils.Configurator.LAMP"扩展,新类SimpleHostingRole"从基本类"std.Role"扩展,类"SimpleHostingFirewall"从基本类"utils.PublicTCPFirewell"扩展,并且类"SimpleHostingDeployment"从基本类扩展"utils.BaseDeployment"。配置规范300通过创建"SimpleHostingDeployment"类的如下实例(如语句314所示)来触发部署简单托管应用,该实例又创建其它类的实例,"SimpleHostingDeployment"类是从这些其它类导出的。
在这一示例中,"SimpleHostingDeployment"类定义312通过修改"roles"参数和"firewall"参数这两个类参数来定制基本类"utils.BaseDeployment"的定义。"roles"参数指定一个或者多个安装的软件包应当在部署中发挥的相应软件作用。"firewall"参数指定将包括防火墙服务作为部署的部分。在这一情况下,类定义312指定将包括由"SimpleHostingRole"类代表的单个软件作用。类定义312还指定将在这一部署中包括的防火墙服务由"SimpleHostingFirewall"类的实例代表。根据面向对象的规范语言的属性,"SimpleHostingDeployment"类继承基本类"utils.BaseDeployment"中定义的其它类参数而无进一步修改。这些其它类参数描述无需为这一简单托管部署而进一步定制的部署的其它方面。
根据类定义312,"SimpleHostingDeployment"类的实例化需要也实例化"SimpleHostingRole"和"SimpleHostingFirewall"。如图3A中所示,"SimpleHostingRole"类定义308从基本类"std.Role"扩展。两个类基于“软件作用”模型,该模型根据软件安装在基于云的部署中发挥的作用对软件安装分类。例如可以安装软件包以发挥web托管、前端、后端、通信接口等的作用。根据软件安装发挥的特定作用,不同参数可以用来配置软件安装。用于软件作用的每个可配置参数可以在基于“软件作用”模型创建的类定义中具有对应类参数或者函数。
在一个示例中,除了软件安装在部署中发挥的作用的标识符或者名称之外,“软件作用”模型还可以包括配置用于软件安装的各种方面的模型参数,这些方面包括将在其上安装软件的虚拟机、软件二进制的位置、关于哪个安装器程序应当用来安装软件的指令等。如果软件安装要求先执行其它服务或者软件安装,则在“软件作用”模型中可选地也包括这一依赖。依赖关系的示例是“在…之后开始”或者“在…之前停止”。也可以支持其它依赖类型(例如在相同虚拟机上安装等)。
在图3A中的这一示例中,用于"SimpleHostingRole"类的类定义308指定软件安装在部署中的作用是用作“webhost”。通过"simplehosting.webhost"类的类定义使将如何部署“webhost”软件为编译器所知。在这一示例中,"simplehosting.webhost"类定义包括已经编写并且变得为编译器所知的简单apache web服务器的配置。在实例化"SimpleHostingRole"类时,也实例化"simplehosting.webhost"类。
用于"SimpleHostingRole"类的类定义308还声明为了运行这一webhost而需要的数据包由"SimpleHostingPackage"类的实例代表,并且将在由"SimpleHostingVM"类的实例代表的虚拟机上安装webhost。
在这一示例中,"roleName"、"moduleName"、"dataPackages"和"vms"中的每项是"std.Role"类的参数并且在"SimpleHostingRole"类定义308中被定制。"std.Role"类的其它类参数由"SimpleHostingRole"类继承而无修改。
"SimpleHostingRole"类的类定义308也定义少数新参数、比如"serving_domain"和"document_root"参数,这些参数的值是通过另一参数名称(例如"Params"类302的"serving_domain")间接或者由直接值条目(例如"/var/www/static")指派的。在这一示例中,定义仅一个软件作用,因此未在安装或者执行方面为软件作用(例如"SimpleHostingRole")指定在软件作用的依赖。
关于部署的防火墙部件,"SimpleHostingFirewall"的类定义310基于现有"utils.PublicTCPFirewall"类定义。在这一示例中,"utils.PublicTCPFirewall"类定义将传输控制协议(TCP)设置成协议的公用防火墙。"PublicTCPFirewall"类的为这一部署而修改的仅有参数是"target"和"ports"参数。在类定义310中,防火墙的目标由"SimpleHostingRole"类的实例代表,而将防火墙的端口设置成端口"80"。为了配置防火墙而需要的其它参数(例如参数"source"和"protocol")在"PublicTCPFirewall"的基本类定义中被指定并且由"SimpleHostingFirewall"类继承而无修改。在这一示例中,在防火墙部件与简单托管软件作用(例如由"SimpleHostingRole"类的实例代表)之间的连接由向"target"参数的值指派指定。
在这一示例中,"SimpleHostingFirewall"和"utils.PublicTCPFirewall"类的类定义均基于防火墙服务模型。不同于“软件作用”模型,服务模型无需包括用于下层虚拟机、盘或者软件包的参数。取而代之,这些方面由云服务提供方控制而未受制于服务的用户的配置。如同在“软件作用”模型中,服务模型也可选地包括如下参数,这些参数指定在服务之间和在服务与软件作用之间的依赖。在这一示例中,防火墙部件连接到web服务器部件,但是未为这一简单托管部署指定防火墙服务的依赖。
如更早阐述和图3中示出的那样,"SimpleHostingRole"类的类定义308需要实例化"SimpleHostingPackage"类和"SimpleHostingVM"类。"SimpleHostingPackage"类的类定义304指定需要向托管"SimpleHostingRole"的虚拟机复制的数据的源(例如在当前目录中的“数据”)。类定义304还指定复制的数据在虚拟机上的目的地目录(例如"/var/www/static")。在根据配置规范300执行部署时,从配置文件驻留于其中的目录向已经根据"SimpleHostingVM"类定义306部署的虚拟机上的目的地目录"/var/www/static"复制数据包“数据”。
如图3A中所示,"SimpleHostingVM"类定义306从"utils.ConfiguratorLAMP"类定义扩展。两个类基于虚拟机模型并且指定如何可以配置虚拟机。在这一示例中,"utils.ConfiguratorLAMP"类配置已经安装有Apache web服务器的定制的虚拟机。因此,通过从"utils.ConfiguratorLAMP"类而不是标准虚拟机类扩展,用户可以简化和加速配置过程。"SimpleHostingVM"类定义306也通过新添加的"replicas"和"staticIP"类参数指定将在这一部署中运用的虚拟机数目和将向虚拟机绑定的外部IP地址。常用来配置一个或者多个虚拟机以用于支持软件作用的其它参数例如包括用于虚拟机的CPU和存储器要求、将附着到虚拟机的存储盘、附着到虚拟机的只读存储装置源、虚拟机的IP地址、网络接口、虚拟机的数据中心位置等的配置参数。可选地在虚拟机类定义或者从虚拟机基本类定义扩展的另一个类中包括这些虚拟机模型参数中的每个虚拟机模型参数作为类参数。
可选地,在部署的配置规范、比如示例配置规范300中所示配置规范中包括特殊"Params"类。可以在这一类定义中提供参数值并且使用这些参数值以向在相同配置文件中包括的其它类定义中的参数指派值。例如通过对各参数名称进行的引用而向类定义306和308中注入参数"replica_count"、"serving_domain"和"ip_array"的值。
如示例配置规范300中所示,有可能基于不同部件模型来为基于云的部署的不同部件创建类定义。可以基于在基于云的计算环境中普遍出现的各种类型的基础设施、存储装置、服务和软件作用的模型来开发高级面向对象的规范语言。每个模型使用多个模型参数来描述对应基础设施部件、存储装置、服务或者软件作用。可以基于这些部件模型来创建核心类定义,这些核心类定义代表基于云的环境的一些最公共和基本部件的通用初始配置状态。由于可以从多个基本部件的组合构建更复杂部件,所以可以从多个类型类定义和/或从核心内定义导出的其它类定义创建如下类定义,这些类定义代表更复杂部件的初始配置状态。
创建高级面向对象的规范语言的编译器以基于这些部件模型解析类定义、提取由类参数的值表达的配置要求并且将要求翻译成用于配置由这些部件模型代表的部件类型的恰当API调用集合。在一些实现中,将编译器实现为读取配置文件并且输出API调用集合的软件程序或者脚本。在一些实现中,编译器也指引对云服务提供方或者第三方提供方的适当部件的API调用以用于执行。
图3A中所示示例已经图示分别基于示例软件数据包模型、示例虚拟机模型、示例“软件作用”模型、示例防火墙服务模型和示例开发模型开发的类定义。作为附加示例,示例存储装置模型包括用于配置部署的存储选项的方面的模型参数,这些方面包括存储装置的大小、存储装置的装配点等。在一些实现中,存储装置模型可选地包括用于基于存储装置的监视的使用来动态调整存储装置的大小的缩放策略。另外,除了防火墙服务之外,基于云的环境还可以包括许多平台和基础设施服务、比如数据库服务、消息队列服务、负荷平衡服务、地图服务、MapReduce服务等。可以为这些基于云的服务中的每个服务开发不同服务模型,并且可以基于不同服务模型创建用于配置不同服务的类定义。
如图3A的示例所示,面向对象的规范语言使得能够创建类分级,这些类分级代表用于云计算环境的各种层中的部件的不同定制水平。用面向对象的规范语言编写的配置规范可以通过从现有类定义扩展或者在向类参数指派值时引用现有类定义的实例来重用现有类定义。重用现有类定义简化用于新部署的配置规范。另外,在重用现有类定义时,用户仅需知道现有类定义可以实现的配置状态、但是无需在类定义内阐述的所有文字细节以实现该配置状态。
此外,可以基于多个现有类定义开发高度复杂部件(例如涉及到多个服务、多个数据源和多个部署级别)的类定义而对现有类定义的类参数有或者无修改。用户可以在新部署中重用这些高度复杂类定义而未在所有级别上深入理解这些复杂类定义。
通过选择用于在新配置规范中定制和修改的适当基本类,用户也获得对部署的特定方面的更精化控制而留下部署的其它方面对基本类的定义为通用。
图3B示出在多个基于云的部署的配置规范中存储(例如在"lamp"模块320)和重用的一些基本类定义。为各种基于Linux Apache MySQL Perl/Python(LAMP)的应用部署而定制这些基本类定义。每个类定义包括用于配置基于LAMP的应用部署的相应数据或者功能部件的一些常用类参数。
图3C提供了示例配置规范340,该配置规范利用"lamp"模块320中的基本类以在基于LAMP的应用部署中部署Mantis调试软件。通过利用"lamp"模块320中的基本类定义,用于Mantis应用部署的配置规范340无需包括如何配置基本的基于LAMP的环境的细节,而仅需定制Mantis应用部署特有的方面。
下文描述"lamp"模块320中的基本类定义如何用来建立基本LAMP部署结构。在"lamp"模块320中,特殊"Params"类322包括多个类定义中使用的一些参数、比如指示是否应当在相同虚拟机上安装Apache软件和MySQL软件的标志"single_node"、用于指定将向LAMP前端部件绑定的IP地址的"frontend_ip"参数、用于指定Apache网站的域名的"servingdomain"参数、用于设置Apache服务器的文档根的"doc_root"参数、用于相对于持久盘装配点设置数据库文件夹的"mysqldatafolder"参数、用于指定持久盘的名称的"mysql_pdname"参数、用于指定持久盘的装配点的"mysql_pd_mount_point"参数、用于以GB为单位指定持久盘的大小的"pd_size_gb"参数。可选地,可以通过由云服务提供方提供的命令行工具改变特殊"Params"类中的参数值以使得更便于用户基于"lamp"模块调整部署。
基于LAMP的应用部署通常包括以下部件:前端(即前端软件应用的软件)、在其上安装前端软件应用(例如Apache web服务器应用)的虚拟机、数据库(即数据库软件的软件作用)、在其上安装数据库软件应用(例如MySQL软件应用)的虚拟机、用于存储数据库的持久盘和防火墙。以上部件中的每个部件由可为特定的基于LAMP的应用部署而配置的相应类参数集合建模。
如图3B中所示,类定义"FrontendVM"324从现有类定义"utils.ConfiguratorLAMP"扩展,该类定义配置已经安装有Apache web服务器软件的虚拟机映像。在这一情况下,如"Params"类定义322中的"single_node"标志所示,将在与Apache软件相同的虚拟机上安装MySQL数据库软件。因此,"DatabaseVM"类定义326也从类定义"utils.ConfiguratorLAMP"扩展。
在"lamp"模块320中,"MysqlPD"类定义328对将在其上存储数据库的持久盘建模。MysqlPD类定义328例如包括指定持久盘的名称、持久盘的大小和持久盘的装配点的参数。从现有"std.PersistentDiskSpec"类定义继承指定应当如何配置持久盘的其它参数而无修改。
"FrontendRole"类定义330对基于LAMP的环境的前端部件建模。"FrontendRole"类定义330从由现有基本类定义"std.Role"建模的标准软件作用扩展。"FrontendRole"也引用"lampfront"占位符类和"lamp"占位符模块作为向"roleName"和"moduleName"类参数指派的临时值。这些临时值将被如下实际模块和类的名称取代,该实际模块和类配置待部署的LAMP前端软件应用。如将图3C中示出的那样,配置前端软件(例如Mantis调试软件)的类定义是"mantis"模块中的"mantis_frontend"类。类定义330也阐述将在其上安装LAMP前端作用的虚拟机由"FrontVM"类324的实例代表。
"DatabaseRole"类定义332对基于LAMP的环境的数据库部件建模。"DatabaseRole"类也引用用于后端软件配置的占位符模块(例如"lamp"和"lamp_backend")中的占位符类。占位符类和占位符模块的名称将被配置后端数据库软件的类和模块的实际名称取代。"DatabaseRole"类定义332也指定存储数据库的持久盘由"MysqlPD"类定义328的实例代表。此外,定义"vms"参数以指示如果将"single_node"标志设置成TRUE则用于安装LAMP环境的后端数据库软件的虚拟机将由"FrontendVM"类的示例代表,否则虚拟机将由"DatabaseVM"类的实例代表。
最后,在"lamp"模块320中,基于LAMP的环境的防火墙部件由"HttpFirewall"类定义334建模。"HttpFirewall"类定义从现有"utils.PublicTCPFirewall"类定义扩展、比如"utils.PublicTCPFirewall"类的协议、源和目标参数由"HttpFirewall"类继承。"HttpFirewall"类定义将"utils.PublicTCPFirewall"的"port"参数从"any"修改成"80"。
在图2B中所示"lamp"模块320中阐述的每个类定义如用于应用专属部署和/或用于创建其它模块中的新类定义那样可扩展、可修改和/或可使用。图3C中所示配置规范340包括图3B中所示"lamp"模块320中的类定义并且在这些类定义上构建。在配置规范340的开头的语句342指向包含"lamp"模块320的类定义的文件以向编译器指示何处定位配置规范340中使用的基本类定义。
配置规范340用于配置应用部署,该应用部署在LAMP结构中起动虚拟机并且在虚拟机上安装Mantis调试软件。Mantis是用PHP脚本语言编写的基于web的错误跟踪***并且与MySQL数据库和web服务器工作。
如在"MantisDeployment"类定义354中指定的那样,该部署需要安装两个软件作用和防火墙。在这一情况下,根据"MantisFrontend"类定义348和"MantisDatabaseRole"类定义350创建两个软件作用,而根据"MantisFirewall"类定义352创建防火墙。在编译配置规范340时,语句356产生"MantisDeployment"类的实例并且使"MantisDeployment"类依赖于的其它类也被实例化。
在这一示例中,"MantisFrontend"类定义348从图2B中所示"lamp.FrontendRole"类定义330扩展。为Mantis软件安装而修改的类参数包括"roleName"、软件配置规范的"moduleName",可以从其复制Mantis软件二进制的"dataPackages"和将与Mantis应用部署关联的数据库主机。从"lamp.FrontendRole"类定义332继承用于Mantis前端的虚拟机方面的配置参数而无修改。换而言之,编写配置规范340的用户接受在"lamp"模块320中指定的默认虚拟机配置并且无需用该级别的细节定制Mantis应用部署。
类似地,"MantisDatabaseRole"类定义350从图3B中所示"lamp.DatabaseRole"类定义332扩展。为Mantis软件安装而修改的类参数包括用于后端数据库作用的配置规范的"roleName"和"moduleName"。此外,将数据库作用的前端主机设置成的"MantisFrontendRole"的实例。从"lamp.DatabaseRole"类定义332继承用于数据库后端作用的虚拟机方面和持久盘方面的配置而无修改。
此外,"MantisFirewall"类定义352从"lamp.HTTpFirewall"继承参数并且仅将用于"target"参数的值修改成"MantisFrontendRole"类的实例。从在"lamp"模块320中定义的基本类"lamp.HTTpFirewall"继承"MantisFirewall"类的其它参数、比如"port"和"protocol"参数。
在特殊"Params"类定义344中阐述Mantis部署特有的其它参数和值,并且在"MantisPackage"类定义346中指定从其复制Mantis软件的数据包。
在以上示例中,从为通用的基于LAMP的应用部署而创建的基本类定义(例如在"lamp"模块320中的类定义)导出用于Mantis软件部署的配置规范。无需为Mantis应用部署重新定义基于LAMP的部署的许多方面的配置。用于Mantis应用部署的配置规范仅需指定Mantis应用部署特有的或者需要定制的新参数或者新参数值。无需在配置规范340中重新指定或者修改已经为该部署的其它更多通用方面定义的参数。该部署的这些其它方面的细节可以保持对用户不透明。
图3A-图3C中所示示例仅举例说明用于编写基于云的部署的配置规范的面向对象的规范语言的性质。在各种实现方式中,面向对象的规范语言的确切语法可以脱离示例中所示语法。另外,可以创建许多类型的基本类以对可以在云环境中存在的部件建模。用于指定在由类建模的部件之间的关系的语法也可以从一个面向对象的规范语言到另一面向对象的规范语言变化。对于给定的面向对象的规范语言,可以创建编译器以根据预定语法规则集合解析在用面向对象的规范语言编写的配置文件中包括的类定义以提取用来在云环境中配置各种类型的部件的参数。
图4示出示例云服务提供方104的示例云服务管理器222。示例云服务管理器222负责根据由基于云的服务的监管用户(例如102a、102b、102c)提供的配置规范104部署服务。云服务管理器222通过云服务提供方104的前端120从云客户的监管用户接收通信。在一些实现中,云服务管理器222可以具有它自己的与云服务客户直接通信的前端部件。
在前端120从云服务客户(例如102a、102b、102c)的监管用户接收配置规范104之后,前端120向云服务管理器222的API翻译器404传递接收的配置规范104。API翻译器404具有对核心类定义(例如存储于定义数据库406中)和翻译协议(例如存储于规则数据库408中)的库的访问,这些翻译协议关于如何将核心类定义翻译成用于配置云服务提供方104的基于云的环境的各种部件的各API调用集合。
例如API翻译器404可以包括编译器(例如解析脚本或者程序),该编译器解析在配置规范104中接收的类定义、标识所有基本类——在配置规范中的类别是从这些基本类导出的——并且提取留为未修改的基本类参数以及修改或者新的类参数。此外,编译器也从类定义中的语句标识在基于云的部署的部件之间的所有关系(例如连接和依赖)。基于类参数的值和存储的翻译协议,API翻译器404生成用于配置基于云的部署的各种方面的适当API调用集合410。
例如翻译协议可以包括在对基于云的环境的相应模块方面建模的核心类定义到用来配置基于云的环境的该方面的API调用组之间的映射。翻译协议还可以包括用于用从核心类定义导出的类中的为基于云的环境的该模块方面指定的参数值修改API调用集合(例如改变在API调用中使用的默认参数)的协议。
作为更具体示例,假设标准虚拟机类定义(例如"std.VM"类)是编译器已知的核心类定义。编译器将具有对翻译规则的访问,该翻译规则将核心类定义映射到如下配备API调用集合,对云服务提供方104的内核层中的VM管理器进行这些配备API调用用于部署标准虚拟机影响。可以在配备API调用中使用默认参数集合(例如重复计数、IP地址、存储器要求等)。用于修改API调用的协议可以包括用于根据在规范配置中和在从标准虚拟机类定义导出的中间类定义中指定的参数值改变默认参数值的协议。例如,如果从标准虚拟机映像导出的新类定义的类参数指定将在虚拟机映像上安装软件包,则翻译协议将指定应当如何向与配置标准虚拟机映像关联的API调用组添加用于在指明的虚拟机上安装软件包的附加API调用。
在一些实现中,编写用于将类定义翻译成API调用的协议为程序脚本。由于向类定义数据库406添加新核心类定义,所以可以创建并且向翻译规则数据库408添加用于翻译新类定义的协议。翻译协议可以例如由云服务提供方104创建。在一些实现中,在解析接收的配置规范的过程中遇到特定类定义时,API翻译器404定位和运行对应脚本以将类定义解析成API调用集合。API调用在执行时使类定义指定的配置在基于云的环境中被实现。
在一些实现中,向云服务管理器222的服务启动器部件412发送API翻译器404生成的API调用410。服务启动器部件412负责向其中可以执行API调用410的、云服务提供方104的云服务环境或者部件的各种层用信道发送API调用。在一些实现中,在由于在部署的各种方面之间的差异而将在若干阶段中执行部署时,服务启动器部件412也负责检查向层和/或部件发送出API调用的顺序并且验证已经在恰当序列中完成API调用。
由于可以在多个配置规范中重用如在本说明书中公开的那样用面向对象的规范语言编写的类定义,所以云服务的管理员用户可以希望在他们自己的配置规范中运用由第三方(例如另一用户、云服务提供方的服务开发者或者第三方开发者)提供的类定义而不是自行开发那些类定义。在一些实现中,用于共享/销售和选择现有配置规范和可重用类定义的集市可以例如由云服务提供方或者第三方提供方提供。
在这一示例中,云服务提供方104提供这样的用于共享可重用配置规范和类定义的平台。在一些实现中,云服务提供方的前端120提供定义提交用户界面和定义选择界面以有助于共享可重用配置规范和类定义。提供配置规范和类定义416以用于由其它方使用的各方充当用于云服务提供方104的定义提供方414来服务。潜在定义用户包括基于云的服务的监管用户。潜在定义用户也可选地包括定义供应方,这些定义供应方基于由其它定义供应方提供的现有类定义创建新可重用类定义或者用于提交的类定义。
如图4中所示,云服务提供方104的云服务管理器222或者云服务管理器222的部件可以服务于管理用于共享可重用类定义的平台。定义供应方414通过由前端120提供的定义提交用户界面向云服务管理器222提交可重用类定义416。每个类定义提交可以比如在类模块中包括多个可重用类定义。在提交中的每个类定义伴随有对类定义如果在配置规范中被随后使用则可以实现的初始配置状态的描述。在一些实现中,描述也包括关于如何可以在配置规范中随后修改类定义中的类参数以适应特定部署的需要的指令。
在定义供应方提交可重用类定义或者可重用类定义模块时,云服务管理器222可以在类定义数据库(例如类定义数据库406)中存储接收的类定义。在一些实现中,前端120为定义供应方414提供注册和认证服务。与注册的定义供应方414的标识符关联地存储从定义供应方接收的每个类定义或者类模块,从而可以在由定义用户随后使用或者购买类定义时对定义供应方414恰当贷记。
在一些实现方式中,定义供应方414可以免费或者有成本可重用类定义416。云服务管理器222可以通过定义共享平台有助于向潜在定义用户(例如云服务客户的监管用户)销售或者许可可重用类定义。在一些实现中,定义供应方414针对用于由定义供应方414提供的可重用类定义的不同使用水平提供、并且云服务管理器存储与销售或者许可关联的相应价格。
在一些实现中,云服务管理器222通过前端210提供定义选择用户界面。定义选择用户界面呈现比如在定义新类定义过程中可用于重用的类定义。新类定义包括在新部署的配置规范中包括的类定义并且可选地包括向云服务提供方提交的用于由其它方重用的类定义。潜在定义用户(例如云服务客户的监管用户和定义供应方)可以将可用于通过定义选择界面选择的类定义与它们的价格和描述并且可选地与评论和质量分数一起查看,并且判决是否在配置规范中重用类定义中的一个或者多个类定义或者用于导出信类定义。
在一些实现中,定义选择用户界面允许类定义的用户下载或者复制可用于选择的可重用类定义。在一些实现中,用户无需复制或者下载类定义并且可以仅通过在向云服务提供方提交的用于部署的配置规范中标识模块和类名称来使用类定义。云服务管理器222将标识和定位在规范文件中引用的类定义并且保持类定义的使用跟踪。
在一些实现中,重用涉及到整个模块(图3B中所示"lamp"模块),其中该模块包括多个相关类定义的汇集,这些类定义用于配置包括多个子部件的云部件。在一些实现中,基于类定义或者类模块所建模的部件类型对类定义或者类模块分类。在一些实现中,定义选择界面允许类定义的***按类别、功能、定义供应方和与类定义和模块关联的其它属性来搜索或者回顾可用类定义。
在一些实现中,云服务提供方104或者第三方提供方也提供用于软件供应方418提供软件解决方案的平台,这些软件解决方案伴随有用于配置软件解决方案的多个备选配置规范或者备选类定义汇集。例如员工管理程序可以伴随有为具有不同规模、需要和内部基础设施的云服务客户定制的配置规范。在云服务客户购买或者许可用于在云服务提供方104的云环境中部署的软件解决方案时,云服务客户可以选择最适应它的需要的配置规范。
在一些实现中,服务管理器222可以通过前端120提供的软件提交用户界面接收与伴随有配置规范(例如配置规范或者可重用类定义模块)的软件解决方案的提交。在一些实现中,软件提交用户界面包括注册和认证能力,从而与提交配置卷包的软件解决方案420的软件提供方关联地存储配置卷包的软件解决方案420的每个提交。
云服务提供方104可以通过前端120在软件选择界面中向云服务客户(例如102a、102b、102c)提供配置卷包的软件解决方案。软件选择界面也可以提供对伴随每个软件解决方案的不同配置规范的描述。在用户(例如基于云的应用服务的监管用户)从软件选择界面选择软件解决方案和伴随配置规范之一时,云服务提供方104可以根据选择的配置规范在基于云的环境中起动软件解决方案而有或者无附加定制。
在一些实现中,云服务提供方104有助于(例如记账部件426)为通过由基于服务提供方104提供的平台实现的、可重用配置规范、可重用类定义和配置卷包的软件解决方案的销售和购买记账。在一些实现中,云服务提供方无需直接提供这些平台、但是基于已经在云服务提供方104的云环境中出现的实际使用向可重用配置规范、可重用类定义和配置卷包的软件解决方案的用户和提供方提供(例如记账部件426的)记账服务。
在一些实现中,云服务管理器222包括服务监视器422。服务监视器422监视已经在云服务提供方104的云环境中部署的云服务的状态。服务监视器422监视的状态例如包括为基于云的部署的每个部件运用的虚拟资源、虚拟资源的使用水平、基于云的部署的每个部件运用的云服务、云服务的使用水平。服务监视器422可以基于与每个基于云的部署关联的虚拟资源和基于云的服务的状态计算与部署关联的性能度量。性能度量例如包括接收的用户请求数目、与响应关联的延时、虚拟资源和服务的可用性、每个虚拟资源或者服务的故障率、虚拟资源和服务的容错水平等。在一些实现中,在云服务管理器222的性能数据存储库424中存储性能度量。
如在本说明书中公开的那样,可以根据用面向对象的规范语言编写的配置规范执行基于云的部署,其中配置规范包括在不同抽象化水平对基于云的部署的不同方面建模的类定义。在云服务管理器222将配置规范处理成类定义集合时,云服务管理器222能够跟踪已经对部署的那些不同方面中的每个方面的配置有影响的类定义的分级。另外,云服务提供方能够将专用于基于云的部署的不同方面的虚拟资源和服务与对基于云的部署的那些方面的配置有影响的不同类分级进行关联。
因此,面向对象的规范语言允许基于对基于云的部署的方面的性能有贡献的虚拟资源和服务的状态和性能来为这些不同方面中的每个方面导出性能度量。具体而言,与基于云的部署的每个方面关联的性能与在配置基于云的部署的该方面时涉及到的类定义关联。然后可以在为类定义确定质量测量时使用与类定义关联的性能来作为因素。如果在配置多个基于云的部署时使用类定义,则与类定义关联的总体性能可以用来评估类定义的指令。
使用图3B和3C中所示可重用类定义和配置规范作为示例,在服务云管理器222根据"MantisDeployment"类定义354和"MantisDeployment"类定义354依赖于的所有基本类在Mantis应用部署中部署Mantis和MySQL软件应用和防火墙服务时,服务管理器222可以监视软件作用、防火墙服务和支持软件作用的下层虚拟机的相应性能。云服务管理器222可以例如关联前端作用的相应性能与对Mantis部署的前端部件的配置有影响的类、关联防火墙部件的相应性能与对防火墙部件的配置有影响的类、关联在前端作用下层的虚拟机的相应性能与对前端虚拟机的配置有影响的类等等。
在一些实现中,云服务管理器222可以根据用面向对象的规范语言编写的配置规范生成基于云的部署的***框图。例如可以从***规范中的类定义标识基础设施部件、存储装置、服务、软件作用的性质以及它们的相互关系(例如依赖和连接)和重新配置触发并且将这些表示为部署的***框图中的对应元素。可以例如在API翻译器404解析配置规范时创建基本***框图。
图5示出可以基于图3C中所示部署规范340创建的框图500。在解析Mantis应用部署的配置规范340时,云服务管理器222从"MantisDeployment"类定义354识别存在在部署中涉及到的两个软件作用和防火墙、例如由"MantisFrontendRole"和"MantisDatabaseRole"类定义建模的软件作用以及由"MatisFirewall"类定义建模的防火墙。因此,云服务管理器222可以在代表Mantis应用部署的块502内添加用于前端作用的块504、用于数据库作用的块506以及用于防火墙服务的块508。
接着根据"MantisFrontendRole"类的类定义,云服务管理器222确定将根据"mantis_frontend"class的类定义部署服务于前端作用的软件应用。云服务管理器222因此在块504内添加块510以代表服务于前端作用的前端软件。类似地,服务管理器222从"MantisDatabaseRole"类的类定义确定将根据"mantis_backend"的类定义部署服务于数据库作用的软件应用。因此,服务管理器在块506内添加块512以代表服务于数据库作用的后端数据库软件。
另外,根据"MantisFrontendRole"和"MantisDatabaseRole"的类定义348和350,前端作用和数据库作用相互连接。基于"MantisFirewall"的类定义352,防火墙连接到前端作用。因此,云服务管理器222可以在块504与块506之间***连接514以代表在前端作用与数据库作用之间的连接关系。此外,云服务管理器222也在块504与块508之间***连接516以代表在前端作用与防火墙之间的连接关系。
此外,由于"MantisFrontRole"类定义348从"FrontRole"类定义330扩展,所以云服务管理器222从"FrontRole"类的类定义330确定将在由"FrontendVM"类定义324建模的虚拟机上安装前端软件(例如Mantis软件)。类似地,"MantisDatabaseRole"类定义350从"DatabaseRole"类定义332扩展,并且云服务管理器222从"DatabaseRole"类的类定义332确定将在与前端作用软件相同的虚拟机上安装后端数据库软件(例如MySQL数据库软件)。基于以上信息,服务管理器222在块504和506之下添加块518以代表用于前端作用和数据库作用的下层虚拟机。
另外,根据"DatabaseRole"类定义332,云服务管理器222确定持久盘由在下层虚拟机上的装配点连接到数据库作用。根据在"MysqlPD"类定义328中指定的规范部署来部署持久盘。因此,服务管理器222向块502添加代表mantis部署的块520并且添加连接522以代表在数据库软件、它的下层虚拟机和持久盘之间的连接关系。
在一些实现中,在部署该部署的部件时,服务管理器222也可以为在框图500中表示的每个块或者连接记录与下层基础部件关联的标识符(例如进程ID或者虚拟机和其它虚拟资源的标识符)。在云服务管理器222监视用于部署的下层虚拟资源和服务的状态时,云服务管理器222可选地为在框图500中表示的每个部件(例如块和连接)确定性能或者使用度量。云服务管理器222也可以可选地代表***框图500中的不同部件的性能和使用。
在一些实现中,可以在框图500上示出该部署的这些不同部件的性能和使用及其改变的可视化。在一些实施中,云服务管理器222可以在用于每个云服务用户的云服务的管理界面中在框图上以可视形式呈现性能和使用统计。例如可以将性能和使用统计表示为根据部件在云环境的实际条件动态改变的直方图或者饼形图。在一些实现中,云服务提供方根据性能和使用统计向云服务客户端结算。
在一些实现中,配置规范可选地包括可编程地触发的重新配置请求。例如用于部件的配置规范可以指定在特定的监视的参数达到指定的阈值时云服务管理器222将按照指定的数量缩放配备的虚拟机或者服务。对于更具体示例,持久盘类的类定义(例如"MysqlPD"类定义)可以包括如下语句,该语句请求在盘容量被80%利用时增加持久盘的大小;"frontendVM"类的类定义可以请求在前端作用的延时多于一秒时前端VM的"replica-count"参数将被增加一;等等。
如在本说明书中阐述的那样,面向对象的规范语言允许基于云的部署中的每个部件的配置由相应类定义集合指定。在解析配置规范时,服务管理器能够标识部署的部件并且标识所有如下基本类,这些基本类的类参数对部件的配置状态有贡献或者影响。在一些实现中,每个部件的性能与对该部件的配置有贡献的类定义关联。如果类定义对多个部署中的多个部件的配置有贡献,则多个部署中的这些多个部件的性能可以都与该类定义关联。可以至少部分基于多个部署中的所有多个部件的总体性能评估类定义的质量。
在一些实现中,云服务管理器保持每个类定义在基于云的环境中的使用的跟踪并且向已经在他们的部署中使用类定义的云服务用户收费。可选地,向用户结算的收费数量基于用户已经为在用户已经请求的所有部署中的类定义而增长的使用数量。在一些实现中,在类定义由第三方定义提供方提供时,云服务管理器222可以对于第三方定义提供方提供的类定义的每个使用而记录向第三方定义提供方的贷记。
例如在解析图3C中所示用于Mantis应用部署的配置规范时,云服务管理器222记录Mantis前端部件504根据从"lamp.FrontendRole"类定义330扩展的"MantisFrontendRole"类定义348来部署、将"mantis_frontend"类定义用于软件配置并且"MantisPackage"类定义347用于标识软件包的位置并且连接到"MantisDatabaseRole"类350。另外,服务管理器222确定"lamp.FrontendRole"类定义330还从"std.Role"类定义扩展、使用FrontendVM"类定义324并且FrontendVM"类定义324从"utils.ConfiguratorLAMP"类定义扩展。
云服务管理器222可以继续通过跟踪连接到"MantisFrontendRole"类定义348的类分级来标识在部署的前端作用部件的配置中涉及到的类定义,直至标识出最基本类定义集合。对前端作用部件的配置有共享的所有类定义与用于部署的前端作用部件关联。可以为部署的每个部件执行相似过程。
在执行部署时,云服务管理器222可以根据在部署中使用每个类定义的次数记录该类定义在配置部署时的使用。在一些实现中,根据由类定义的定义工艺中建立的支付结构(例如按使用许可或者按销售收费)在每个部署中仅一次或者为每个用户对类定义的多个使用计数。
在一些实现中,在可重用定义的集市中,可以根据每个重用的类定义在使用该类定义的所有部署中的总体性能比对其它重用的类定义对该重用的类定义排行。在一些实现中,部署的性能可以与对部署的配置有贡献的每个类定义关联,并且在评价该类定义的质量时被使用。在一些实现中,仅配置受类定义影响的那些部件的性能与该类定义关联并且在评价类定义的质量时被使用。
例如在云服务管理器标识多个部署中的受虚拟机类定义影响的多个部件时,在评价虚拟机类定义的质量时使用多个部件的总体性能。此外,在云服务管理器标识对部署的前端作用部件的配置有贡献的所有类定义时,部署中的与前端作用部件关联的性能将与这些标识的类定义中的每个类定义关联。
在一些实现中,基于与至少部分基于每个定义而配置的所有多个部件或者部署关联的总体性能为该类定义计算质量分数。可以在云服务提供方提供的定义选择界面中与类定义呈现质量分数。在一些实现中,可以例如基于利用每个类定义的部署的规模、该类定义在利用该类定义的每个部署中的权值或者影响、根据该类定义而配置的部件的可用性、容错性、可缩放性和部件的故障率、遇到的问题类型、为了化解遇到的问题而需要的修改、显式用户反馈等为该类定义计算多个质量度量。基于各种质量度量,可以为每个共享的类定义提供一个或者多个类型的质量分数,并且潜在定义用户可以基于质量分数浏览可用共享类定义的列表。
虽然以上示例描述关于可重用类定义的质量分数,但是可以为可重用类模块、可重用配置规范或者配置卷包的软件解决方案计算相似质量分数。
图6是用于处理用面向对象的规范语言编写的配置规范的示例过程600的流程图。在图3A-3C中所示示例中描述这样的高级面向对象的规范语言的示例。示例过程600可以由云服务提供方(例如图1中所示云服务提供方104)、比如由云服务提供方的云服务管理器(例如云服务管理器222)执行。在一些实现中,云服务管理器通过API翻译器部件(例如图4中的API翻译器404)执行过程600。
在示例过程600中,(例如云服务提供方的API翻译器)接收用于配置基于云的部署的配置规范(602)。配置规范是用面向对象的规范语言编写的并且需要实例化一个或者多个类的类定义。每个类模型使用可配置类参数组对基于云的部署的相应数据或者功能部件建模。每个类的相应类定义代表由该类建模的数据或者功能部件的请求的状态。基于一个或者多个类的类定义导出用于配置基于云的部署的多个API调用(604)。然后,用于云服务提供方的API翻译器使多个API调用被执行以配置基于云的部署(606)。
在一些实现中,一个或者多个类包括至少一个现有基本类和从现有基本类扩展的至少一个定制的类。在一些实现中,定制的类继承现有基本类的相应类参数并且修改从现有基本类继承的类参数中的至少一个类参数的值。附加地或者备选地,定制的类继承现有基本类的相应类参数并且包括现有基本类中未存在的至少一个新类参数。
在一些实现中,每个类建模的数据或者功能部件是支持基于云的服务的虚拟设备、在基于云的环境中利用的服务、由基于云的环境中的安装的应用执行的软件作用、保持将在基于云的环境的部署或者操作期间使用的数据的数据包中的一项或者它们中的一项或者多项的组合。
在一些实现中,面向对象的规范语言支持在类定义之间的依赖,并且在第一类与第二类之间的定义依赖代表在由第一类和第二类建模的各部件之间的部署依赖。在一些实现中,在第一类与第二类之间的定义依赖由第一类的类参数表达,其中第一类的类参数引用第二类的实例。
在一些实现中,面向对象的规范语言支持在类定义之间的连接,并且将第二类的实例连接到第一类的类参数的值指派代表在由第一类和第二类建模的相应部件之间的连接。
图7是用于以基于云的部署的配置规范为基础导出框图的示例过程700的流程图,该框图示出基于云的部署的拓扑。示例过程700可以由云服务提供方(例如图1和图4中所示云服务提供方104)的云服务管理器执行。
在示例过程700中,云服务提供方基于配置规范中的一个或者多个类的各类定义来标识由一个或者多个类建模的多个数据和功能部件以及在多个数据或者功能部件之间存在的一个或者多个依赖和连接关系(702)。然后,云服务提供方基于标识的多个数据和功能部件以及标识的依赖和连接关系导出基于云的环境的框图(704)。在一些实现中,在导出框图时,云服务提供方也在框图中表示用于动态重新配置基于云的环境的触发事件。
图8是用于监视基于云的部署的性能并且关联性能与在配置基于云的部署时使用的类定义的示例过程800。
在示例过程800中,对于每个类定义,云服务提供方标识按照基于云的部署的方面的相应初始配置状态受类定义影响的方面(802)。云服务提供方监视与标识的方面关联的一个或者多个性能度量(804)。云服务提供方将一个或者多个性能度量与类定义(806)进行关联。然后,云服务提供方在计算类定义的质量度量时利用一个或者多个性能度量(808)。
图9是用于基于至少部分基于重用的类定义而配置的多个基于云的部署的总体性能评价重用的类定义的质量的示例过程900的流程图。
在示例过程900中,云服务提供方标识各自已经根据用面向对象的规范语言编写的相应配置规范执行的多个基于云的部署(902)。云服务提供方然后标识至少一个基本类,该至少一个基本类的类定义在多个基于云的部署中的数个基于云的部署中被使用(904)。云服务提供方监视多个基于云的部署中的数个基于云的部署中的每个的相应性能(906)。云服务提供方然后基于多个基于云的部署中的数个基于云的部署的总体性能计算至少一个基本类的质量度量(908)。在一些实现中,多个基于云的环境中的数个环境中的每个环境的性能是与由至少一个类建模的数据或者功能部件关联的性能。
图10是用于导出API调用的示例过程1000的流程图,这些API调用用于基于在配置规范中使用的类定义而配置基于云的部署。
在示例过程1000中,云服务提供方存储面向对象的规范语言的多个核心类的各类定义(1010)。每个核心类对应于基于云的环境的模块部件,并且每个核心类可用附加类参数扩展以配置相应模块部件。云服务提供方也存储在核心类中的每个核心类与各API调用组之间的映射(1020)。相应API调用组用于根据核心类的类参数配置与核心类关联的模块部件。云服务提供方也存储用于修改与每个核心类关联的各API调用组以为从核心类导出的新类定义而获得新API调用组的多个协议(1030)。
在一些实现中,为了导出用于配置基于云的部署的多个API调用,云服务提供方基于与从其导出配置规范的一个或者多个类的多个核心类中的一个或者多个核心类关联的各API调用组、并且基于用于修改相应API调用组的多个协议来导出多个API调用。
在一些实现中,多个协议还包括用于根据在根据面向对象的规范语言编写的类定义中指定的依赖和连接关系施加API调用组的排序的规则。
图11是用于提供用于共享可重用类定义的平台的示例过程1100的流程图。示例过程1100可以由云服务提供方或不提供基于云的服务的平台提供方来执行。
在示例过程1100中,云服务提供方或者平台提供方从多个定义供应方中的每个定义供应方接收相应定义提交(1110)。相应定义提交包括用面向对象的规范语言编写的一个或者多个类定义。每个类定义使用可配置类参数之对基于云的部署的数据或者功能部件建模并且可扩展以通过修改可配置类参数组的一个或者多个类参数或者添加一个或者多个新类参数来创建至少一个新类定义。云服务提供方或者平台提供方然后提供呈现从多个定义供应方接收的类定义的用户界面以用于由多个定义用户回顾和选择(1120)。
图12是用于基于都使用至少一个公共可重用类定义的不同配置规范配置多个不同的基于云的部署的示例过程1200的流程图。示例过程1200可以由云服务提供方、比如图4中所示示例云服务提供方104执行。
在示例过程1200中,云服务提供方接收用面向对象的规范语言编写的多个不同配置规范(1210)。多个不同配置规范各自用于配置不同的基于云的部署并且包括从多个定义供应方接收的类定义中的相同类定义扩展的不同类定义。然后,云服务提供方至少基于在不同的基于云的部署中的每个不同的基于云的部署的不同配置规范中的、接收的类定义中的相同类定义和从相同类定义扩展的不同类定义而配置该不同的基于云的部署(1220)。
图13是用于向定义用户收费并且基于由定义供应方提供的可重用类定义的使用向定义供应方贷记的示例过程1300的流程图。
在示例过程1300中,对于接收的类定义中的每个类定义,云服务提供方监视类定义在已经用来配置多个基于云的部署的多个配置规范中的使用(1310)。云服务提供方为类定义在多个配置规范中的每个使用而记录向类定义的定义供应方的贷记和向与使用关联的定义用户的收费(1320)。
在一些实现方式中,类定义的使用包括类定义在已经用来执行相应的基于云的部署的相应配置规范中的实例化。在一些实现中,类定义的使用包括扩展类定义以创建在用来执行相应的基于云的部署的相应配置规范中实例化的新类定义。
图14是用于提供用于销售“配置卷包”的软件解决方案的平台的示例过程1400的流程图。过程1400可以由云服务提供方或未提供基于云的服务的平台提供方提供。
在示例过程1400中,云服务提供方或者平台提供方从软件供应方接收软件提交(1410)。软件提交包括将在基于云的环境中部署的软件应用和各自用于用不同方式在基于云的环境中部署软件应用的多个不同配置规范。然后,云服务提供方或者平台提供方提供多个不同配置规范用于由软件用户回顾和选择(1420)。
图15是用于基于软件用户对配置卷包的软件解决方案的选择向软件用户收费并且向软件提供方贷记的示例过程1500的流程图。示例过程1500可以由云服务提供方(例如图4中所示云服务提供方104)执行。
在示例过程1500中,云服务提供方接收软件用户对多个不同配置规范之一的选择(1510)。云服务提供方根据选择的不同配置规范在基于云的环境中部署软件应用(1520)。然后,云服务提供方基于与选择的不同配置规范关联的相应价格记录向软件用户的收费和向软件提供方的贷记(1530)。在一些实现中,为了提供多个类定义用于选择,云服务提供方在选择用户界面中随着多个类定义中的每个类定义提供各性能度量以用于用户回顾。
图16是用于在对已经在配置多个基于云的部署时使用的可重用类定义排行时利用多个基于云的部署的总体性能度量的示例过程1600的流程图。示例过程1600可以由云服务提供方(例如图4中的云服务提供方104)执行。
在示例过程1600中,云服务提供方提供多个类定义以用于选择(1610)。每个类定义使用可配置类参数组对基于云的环境的相应数据或者功能部件建模。每个类定义支持在用于基于云的部署的配置规范中实例化和继承类定义。云服务提供方也基于多个基于云的部署的总体性能导出与多个类定义中的每个类定义关联的各性能度量,其中已经根据需要实例化类定义或者从类定义导出的新类定义的相应配置规范执行多个基于云的部署(1620)。然后,云服务提供方在对多个类定义排行时利用与多个类定义中的每个类定义关联的各性能度量(1630)。
图17是用于对可重用类定义分类并且在可重用类定义的相应类别内对它们排行的示例过程1700的流程图。
在示例过程1700中,云服务提供方基于该基于云的环境的由多个类定义建模的相应数据或者功能部件对多个类定义分类(1710)。然后,云服务提供方在多个类定义的各类别内对类定义排行(1720)。
图18是用于关联多个基于云的部署的性能与用来配置多个基于云的部署的类定义的示例过程1800的流程图。
在示例过程1800中,对于多个类定义中的每个类定义,云服务提供方标识已经根据需要实例化类定义或者从类定义导出的至少一个新类定义的各配置规范执行的多个基于云的部署(1810)。云服务提供方监视多个基于云的部署的各性能(1820)。云服务提供方然后关联多个部署的各性能与类定义(1830)。
图19是用于基于多个部署的总体性能导出与重用的类定义关联的性能度量的示例过程1900的流程图。
在基于多个基于云的部署的总体性能导出与多个类定义中的每个类定义关联的各性能度量时,云服务提供方执行示例过程1900。在示例过程1900中,云服务提供方为多个类定义中的每个类定义标识根据类定义或者从类定义导出的新类定义而配置的多个基于云的部署中的一个或者多个数据或者功能部件(1910)。云服务提供方标识与标识的一个或者多个数据或者功能部件关联的一个或者多个性能度量(1920)。然后,云服务提供方通过聚合标识的一个或者多个性能度量来导出与类定义关联的各性能度量(1930)。在一些实现方式中,性能度量包括延时、可靠性、可缩放性、可用性或者安全性的一个或者多个度量。
图20是用于在对可重用类定义排行时利用多个因素的示例过程2000的流程图。
在示例过程2000中,对于每个类定义,云服务提供方跟踪已经至少部分根据类定义而配置的基于云的部署的相应计数(2010)。可选地,云服务提供方跟踪在已经至少部分基于类定义而配置的基于云的部署中遇到的问题的相应计数。可选地,云服务提供方也跟踪用于化解在已经至少部分根据类定义而配置的基于云的部署中遇到的问题的所需改变的数目。然后,云服务提供方在对多个类定义排行时利用与多个类定义关联的各计数(2020)。可选地,云服务提供方在对多个类定义排行时也利用与多个类定义关联的问题的各计数和所需改变的各数目。
在一些实现中,与多个类定义关联所需改变的相应数目用来计算在对多个类定义排行时向与多个类定义关联的相应性能度量给予的相应权值。
可以在数字电子电路装置中或者在包括说明书中公开的结构及其结构等效物的计算机软件、固件或者硬件中或者在它们中的一项或者多项的组合中实施本说明书中描述的主题内容和功能操作的实施例。可以实施本说明书中描述的主题内容的实施例为一个或者多个计算机程序、即在计算机存储介质上编码的用于由数据处理装置执行或者用于控制数据处理装置的操作的一个或者多个计算机程序指令模块。备选地或者附加地,程序指令可以被编码于人为生成的传播信号、例如机器生成的电、光或者电磁信号上,该传播信号被生成用于对信息进行编码用于向适当接收器装置传输以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器设备或者它们中的一项或者多项的组合。
术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器、举例而言包括可编程处理器、计算机或者多个处理器或者计算机。装置可以包括专用逻辑电路装置、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。装置除了硬件之外也可以包括为讨论的计算机程序创建执行环境的代码、例如构成处理器固件、协议栈、数据库管理***、操作***或者它们中的一项或者多项的组合的代码。
可以用包括编译或者解译语言或者声明性或者过程化语言的任何形式的编程语言编写计算机程序(也称为程序、软件、软件应用、脚本或者代码),并且可以用任何形式部署它、包括部署为独立程序或者部署为适合在计算环境中使用的模块、部件、子例程或者其它单元。计算机程序可以但是无需对应于文件***中的文件。程序可以存储于保持其它程序或者数据的文件(例如存储于标记语言文档中的一个或者多个脚本)的部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路装置、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)执行并且也可以实施装置为该专用逻辑电路装置。
举例而言,适合执行计算机程序的处理器包括通用和专用微处理器以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于进行或者执行指令的处理器以及用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机也将包括用于存储数据的一个或者多个海量存储设备、例如磁盘、磁光盘或者光盘或者***作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者二者。然而计算机无需具有这样的设备。另外,计算机可以嵌入于另一设备中,聊举数例,另一设备例如是移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位***(GPS)接收器或者便携存储设备(例如通用串行总线(USB)快闪驱动)。
适合存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例而言,这些形式包括半导体存储器设备、例如EPROM、EEPROM和闪存设备;磁盘、例如内部硬盘或者可拆卸盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路装置补充或者并入于专用逻辑电路装置中。
为了提供与用户的交互,在本说明书中描述的主题内容的实施例可以实施于计算机上,该计算机具有用于向用户显示信息的显示设备、例如CRT(阴极射线管)或者LCD(液晶显示器)监视器以及用户可以用来向计算机提供输入的键盘和指示设备、例如鼠标或者跟踪球。其它种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感测反馈、例如视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档、例如通过响应于从用户的用户上的web浏览器接收的请求向web浏览器发送网页来与用户交互。
在本说明书中描述的主题内容的实施例可以实施于计算***中,该计算***包括例如作为数据服务器的后端部件或者包括中间件部件、例如应用服务器或者包括前端部件、例如具有图形用户界面或者web浏览器——用户可以通过该图形用户界面或者web浏览器与本说明书中描述的主题内容的实现方式交互——的客户端计算机或者一个或者多个这样的后端、中间件或者前端部件的任何组合。***的部件可以由任何数字数据通信形式或者介质、例如通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、例如因特网。
计算***可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。
尽管本说明书包含许多具体实施细节,但是这些不应解释为限制任何发明的或者可以要求保护的内容的范围而实际上描述具体发明的具体实施例可以特有的特征。在本说明书中在单独实施例的背景中描述的某些特征也可以在单个实施例中组合实施。反言之,在单个实施例的背景中描述的各种特征也可以在多个实施例中单独或者在任何适当子组合中实施。另外,虽然上文可以描述特征为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变化。
类似地,尽管在附图中按特定顺序描绘操作,但是这不应理解为要求按所示特定顺序或者按依次顺序进行这样的操作或者进行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在以上描述的实施例中的各种***部件的分离不应理解为在所有实施例中要求这样的分离,并且应当理解描述的程序部件和***一般可以一起集成于单个软件产品中或者封装成多个软件产品。
这样已经描述主题内容的具体实施例。其它实施例在所附权利要求的范围内。例如在权利要求中记载的动作可以按不同顺序来进行而仍然实现希望的结果。作为一个示例,在附图中描绘的过程未必需要所示具体顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

Claims (47)

1.一种用于确定在基于云的部署中使用的类的质量度量的计算机实现的方法,包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应数据或者功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述数据或者功能部件的请求的状态;
导出用于基于所述一个或者多个类的所述类定义而配置所述基于云的部署的多个应用编程接口(API)调用;
使得执行所述多个API调用以配置所述基于云的部署;
标识各自已经根据用所述规范语言编写的相应配置规范而执行的多个基于云的部署;
标识基本类,所述基本类的类定义在所述多个基于云的部署中的数个基于云的部署中被使用;
监视所述多个基于云的部署中的每个的相应性能;
基于所述多个基于云的部署的总体性能来确定针对所述基本类中的每个基本类的对应质量度量;以及
其中所述确定包括:
在根据所述基本类的所述类定义或者从所述类定义导出的新的类定义配置的所述多个基于云的部署中标识一个或多个数据或功能部件,
标识与所标识的一个或多个数据或功能部件相关联的一个或多个性能度量,以及
通过聚合所标识的一个或者多个性能度量来导出与所述类定义相关联的性能度量,
利用所述性能度量来计算所述质量度量;
提供针对所述基本类中的每个基本类的所述性能度量以在选择用户界面中供用户回顾以使得能够选择所述基本类中的一个基本类。
2.根据权利要求1所述的计算机实现的方法,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
3.根据权利要求1所述的计算机实现的方法,其中:
由每个类建模的所述数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在所述基于云的环境中利用的服务、由所述基于云的环境中安装的应用执行的软件作用、保持将在所述基于云的环境的部署或者操作期间使用的数据的数据包。
4.根据权利要求1所述的计算机实现的方法,其中:
所述规范语言支持在类定义之间的依赖以及在类定义之间的连接中的至少一项,并且其中在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖,并且其中将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的相应部件之间的连接,
相应部件由所述第一类和所述第二类建模。
5.一种用于确定在基于云的部署中使用的类的质量度量的***,包括:
一个或多个处理器;以及
其上存储有指令的存储器,所述指令在由所述一个或多个处理器执行时使得所述处理器执行以下操作,包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应数据或者功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述数据或者功能部件的请求的状态;
导出用于基于所述一个或者多个类的所述类定义而配置所述基于云的部署的多个应用编程接口(API)调用;
使得执行所述多个API调用以配置所述基于云的部署;
标识各自已经根据用所述规范语言编写的相应配置规范而执行的多个基于云的部署;
标识基本类,所述基本类的类定义在所述多个基于云的部署中的数个基于云的部署中被使用;
监视所述多个基于云的部署中的每个的相应性能;
基于所述多个基于云的部署的总体性能来确定针对所述基本类中的每个基本类的对应质量度量;以及
其中所述确定包括:
在根据所述基本类的所述类定义或者从所述类定义导出的新的类定义配置的所述多个基于云的部署中标识一个或多个数据或功能部件,
标识与所标识的一个或多个数据或功能部件相关联的一个或多个性能度量,以及
通过聚合所标识的一个或者多个性能度量来导出与所述类定义相关联的性能度量,
利用所述性能度量来计算所述质量度量;
提供针对所述基本类中的每个基本类的所述性能度量以在选择用户界面中供用户回顾以使得能够选择所述基本类中的一个基本类。
6.根据权利要求5所述的***,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
7.根据权利要求5所述的***,其中:
由每个类建模的所述数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在所述基于云的环境中利用的服务、由所述基于云的环境中安装的应用执行的软件作用、保持将在所述基于云的环境的部署或者操作期间使用的数据的数据包。
8.根据权利要求5所述的***,其中:
所述规范语言支持在类定义之间的依赖以及在类定义之间的连接中的至少一项,并且其中在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖,并且其中将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的相应部件之间的连接。
9.一种其上存储有指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述处理器执行根据权利要求1所述的计算机实现的方法。
10.根据权利要求9所述的计算机可读介质,其中导出用于配置所述基于云的部署的所述多个API调用还包括:
基于与所述多个基本类中的一个或者多个基本类相关联的相应API调用组、并且基于用于修改所述相应API调用组的多个协议来导出所述多个API调用,所述配置规范的所述一个或者多个类从所述多个基本类导出。
11.根据权利要求10所述的计算机可读介质,其中:
所述多个协议还包括用于根据在根据所述规范语言编写的类定义中指定的依赖关系和连接关系施加所述API调用组的排序的规则。
12.根据权利要求9所述的计算机可读介质,其中:
所述一个或者多个类包括至少一个现有基本类和从所述现有基本类扩展的至少一个定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
13.根据权利要求9所述的计算机可读介质,其中:
由每个类建模的所述数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在所述基于云的环境中利用的服务、由所述基于云的环境中安装的应用执行的软件作用、保持将在所述基于云的环境的部署或者操作期间使用的数据的数据包。
14.根据权利要求9所述的计算机可读介质,其中:
所述规范语言支持类定义之间的依赖,并且在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖。
15.根据权利要求9所述的计算机可读介质,其中:
所述规范语言支持类定义之间的连接,并且将第二类的实例链接到第一类的类参数的值指派代表由所述第一类和所述第二类建模的相应部件之间的连接。
16.一种用于对基于云的部署进行动态重新配置的计算机实现的方法,包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述功能部件的请求的状态,其中用于特定未实例化类的至少一个可配置的类参数指定用于由特定类建模的所述功能部件的动态重新配置的触发事件,所述动态重新配置由所述配置规范中的语句,其中,所述功能部件中的一些是由所述基于云的环境中安装的应用执行的软件作用,其中:
所述一个或多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值以指定用于与所述基本类不同的定制类的软件作用,其中,所指定的软件作用包括描述基于云的部署的配置的模型参数,并且其中,第二基于云的部署包括从所述现有基本类扩展的第二定制类,所述第二定制类指定包括描述不同配置的第二模型参数的第二软件作用;
导出用于基于所述一个或者多个类的所述类定义并且基于所述模型参数中的至少一个而配置所述基于云的部署的多个应用编程接口(API)调用,其中,所述API调用中的至少一个API调用被配置成实例化所述未实例化类以对所指定的触发事件进行监视;
使得执行所述多个API调用以配置所述基于云的部署;
监视所述基于云的部署的性能度量;以及
基于所述性能度量与所述触发事件的匹配,使得所述功能部件根据如在所述配置规范中所指定的语句的动态重新配置。
17.根据权利要求16所述的计算机实现的方法,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
18.根据权利要求16所述的计算机实现的方法,其中:
由每个类建模的所述功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备或者在所述基于云的环境中利用的服务。
19.根据权利要求16所述的计算机实现的方法,其中:
所述规范语言支持在类定义之间的依赖以及在类定义之间的连接中的至少一项,并且其中在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖,并且其中将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的各部件之间的连接。
20.根据权利要求16所述的计算机实现的方法,其中,所述功能部件中的一些是定义基于软件作用的操作的顺序的依赖关系。
21.根据权利要求16所述的计算机实现的方法,其中,所述规范语言支持软件作用和服务或虚拟设备中的一个之间的依赖中的至少一项。
22.一种用于对基于云的部署进行动态重新配置的***,包括:
一个或多个处理器;以及
其上存储有指令的存储器,所述指令在由所述一个或多个处理器执行时使得所述处理器执行以下操作,包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述功能部件的请求的状态,其中用于特定未实例化类的至少一个可配置的类参数指定用于由特定类建模的所述功能部件的动态重新配置的触发事件,所述动态重新配置由所述配置规范中的语句,其中,所述功能部件中的一些是由所述基于云的环境中安装的应用执行的软件作用,其中:
所述一个或多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值以指定用于与所述基本类不同的定制类的软件作用,其中,所指定的软件作用包括描述基于云的部署的配置的模型参数,并且其中,第二基于云的部署包括从所述现有基本类扩展的第二定制类,所述第二定制类指定包括描述不同配置的第二模型参数的第二软件作用;
导出用于基于所述一个或者多个类的所述类定义并且基于所述模型参数中的至少一个而配置所述基于云的部署的多个应用编程接口(API)调用,其中,所述API调用中的至少一个API调用被配置成实例化所述未实例化类以对所指定的触发事件进行监视;
使得执行所述多个API调用以配置所述基于云的部署;
监视所述基于云的部署的性能度量;以及
基于所述性能度量与所述触发事件的匹配,使得所述功能部件根据如在所述配置规范中所指定的语句的动态重新配置。
23.根据权利要求22所述的***,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
24.根据权利要求22所述的***,其中:
由每个类建模的所述功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备或者在所述基于云的环境中利用的服务。
25.根据权利要求22所述的***,其中:
所述规范语言支持在类定义之间的依赖以及在类定义之间的连接中的至少一项,并且其中在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖,并且其中将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的各部件之间的连接。
26.根据权利要求22所述的***,其中,所述功能部件中的一些是定义基于软件作用的操作的顺序的依赖关系。
27.根据权利要求22所述的***,其中,所述规范语言支持软件作用和服务或虚拟设备中的一个之间的依赖中的至少一项。
28.一种其上存储有指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述处理器执行操作,所述操作包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述功能部件的请求的状态,其中用于特定未实例化类的至少一个可配置的类参数指定用于由特定类建模的所述功能部件的动态重新配置的触发事件,所述动态重新配置由所述配置规范中的语句,其中,所述功能部件中的一些是由所述基于云的环境中安装的应用执行的软件作用,其中:
所述一个或多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值以指定用于与所述基本类不同的定制类的软件作用,其中,所指定的软件作用包括描述基于云的部署的配置的模型参数,并且其中,第二基于云的部署包括从所述现有基本类扩展的第二定制类,所述第二定制类指定包括描述不同配置的第二模型参数的第二软件作用;
导出用于基于所述一个或者多个类的所述类定义并且基于所述模型参数中的至少一个而配置所述基于云的部署的多个应用编程接口(API)调用,其中,所述API调用中的至少一个API调用被配置成实例化所述未实例化类以对所指定的触发事件进行监视;
使得执行所述多个API调用以配置所述基于云的部署;
监视所述基于云的部署的性能度量;以及
基于所述性能度量与所述触发事件的匹配,使得所述功能部件根据如在所述配置规范中所指定的语句的动态重新配置。
29.根据权利要求28所述的计算机可读介质,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
30.根据权利要求28所述的计算机可读介质,其中:
由每个类建模的所述功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备或者在所述基于云的环境中利用的服务。
31.根据权利要求28所述的计算机可读介质,其中:
所述规范语言支持在类定义之间的依赖以及在类定义之间的连接中的至少一项,并且其中在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖,并且其中将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的各部件之间的连接。
32.根据权利要求28所述的计算机可读介质,其中,所述功能部件中的一些是定义基于软件作用的操作的顺序的依赖关系。
33.根据权利要求28所述的计算机可读介质,其中,所述规范语言支持软件作用和服务或虚拟设备中的一个之间的依赖中的至少一项。
34.一种用于指定基于云的部署的配置的计算机实现的方法,包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应数据或者功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述数据或者功能部件的请求的状态;
导出用于基于所述一个或者多个类的所述类定义而配置所述基于云的部署的多个应用编程接口(API)调用;
使得执行所述多个API调用以配置所述基于云的部署;
存储所述规范语言的多个基本类的相应类定义,每个基本类对应于基于云的部署的模块部件,每个基本类能够利用附加类参数扩展以配置相应模块部件;
存储所述基本类中的每个基本类与相应API调用组之间的映射,所述相应API调用组用于根据所述基本类的所述类参数来配置与所述基本类相关联的所述模块部件;以及
存储用于修改与每个基本类相关联的相应API调用组以为从所述基本类导出的新类定义而获得新API调用组的多个协议。
35.根据权利要求34所述的方法,其中,导出用于配置所述基于云的部署的所述多个API调用进一步包括:
基于与从其导出所述配置规范的一个或者多个类的多个基本类中的一个或者多个基本类相关联的相应API调用组并且基于用于修改相应API调用组的多个协议来导出多个API调用。
36.根据权利要求35所述的方法,其中:
所述多个协议还包括用于根据在根据所述规范语言编写的类定义中指定的依赖和连接关系施加API调用组的排序的规则。
37.根据权利要求34所述的方法,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
38.根据权利要求34所述的方法,其中,
由每个类建模的所述数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在所述基于云的环境中利用的服务、由所述基于云的环境中安装的应用执行的软件作用、保持将在所述基于云的环境的部署或者操作期间使用的数据的数据包。
39.根据权利要求34所述的方法,其中:
所述规范语言支持在类定义之间的依赖,并且在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖。
40.根据权利要求34所述的方法,其中:
所述规范语言支持在类定义之间的连接,并且将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的相应部件之间的连接。
41.一种其上存储有指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述处理器执行操作,所述操作包括:
接收用于配置基于云的部署的配置规范,所述配置规范是用规范语言编写的并且需要实例化一个或者多个类的相应类定义,每个类使用可配置类参数组来对所述基于云的部署的相应数据或者功能部件进行建模,并且每个类的所述相应类定义代表由所述类建模的所述数据或者功能部件的请求的状态;
导出用于基于所述一个或者多个类的所述类定义而配置所述基于云的部署的多个应用编程接口(API)调用;
使得执行所述多个API调用以配置所述基于云的部署;
存储所述规范语言的多个基本类的相应类定义,每个基本类对应于基于云的部署的模块部件,每个基本类能够利用附加类参数扩展以配置相应模块部件;
存储所述基本类中的每个基本类与相应API调用组之间的映射,所述相应API调用组用于根据所述基本类的所述类参数来配置与所述基本类相关联的所述模块部件;以及
存储用于修改与每个基本类相关联的相应API调用组以为从所述基本类导出的新类定义而获得新API调用组的多个协议。
42.根据权利要求41所述的计算机可读介质,其中,导出用于配置所述基于云的部署的所述多个API调用进一步包括:
基于与从其导出所述配置规范的一个或者多个类的多个基本类中的一个或者多个基本类相关联的相应API调用组并且基于用于修改相应API调用组的多个协议来导出多个API调用。
43.根据权利要求41所述的计算机可读介质,其中:
所述多个协议还包括用于根据在根据所述规范语言编写的类定义中指定的依赖和连接关系施加API调用组的排序的规则。
44.根据权利要求41所述的计算机可读介质,其中:
所述一个或者多个类包括至少一个现有基本类和至少一个从所述现有基本类扩展的定制类,
所述定制类继承所述现有基本类的相应类参数,并且
所述定制类修改从所述现有基本类继承的所述类参数中的至少一个类参数的值,或者包括未存在于所述现有基本类中的至少一个新类参数。
45.根据权利要求41所述的计算机可读介质,其中,
由每个类建模的所述数据或者功能部件是以下中的一项或者以下中一项或者多项的组合:支持基于云的环境的虚拟设备、在所述基于云的环境中利用的服务、由所述基于云的环境中安装的应用执行的软件作用、保持将在所述基于云的环境的部署或者操作期间使用的数据的数据包。
46.根据权利要求41所述的计算机可读介质,其中:
所述规范语言支持在类定义之间的依赖,并且在第一类与第二类之间的定义依赖代表在由所述第一类和所述第二类建模的相应部件之间的部署依赖。
47.根据权利要求41所述的计算机可读介质,其中:
所述规范语言支持在类定义之间的连接,并且将第二类的实例链接到第一类的类参数的值指派代表在由所述第一类和所述第二类建模的相应部件之间的连接。
CN201710094976.3A 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言 Active CN108614716B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161453478P 2011-03-16 2011-03-16
US61/453,478 2011-03-16
CN201280023417.9A CN103582867B (zh) 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280023417.9A Division CN103582867B (zh) 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言

Publications (2)

Publication Number Publication Date
CN108614716A CN108614716A (zh) 2018-10-02
CN108614716B true CN108614716B (zh) 2021-03-26

Family

ID=46726649

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280023417.9A Active CN103582867B (zh) 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言
CN201710094976.3A Active CN108614716B (zh) 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280023417.9A Active CN103582867B (zh) 2011-03-16 2012-03-15 用于指定基于云的部署的配置的高级语言

Country Status (6)

Country Link
US (7) US8261295B1 (zh)
EP (3) EP4369197A3 (zh)
CN (2) CN103582867B (zh)
AU (1) AU2012229110B2 (zh)
CA (1) CA2830237C (zh)
WO (1) WO2012125815A2 (zh)

Families Citing this family (307)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058571B2 (en) * 2007-08-31 2015-06-16 Red Hat, Inc. Tool for automated transformation of a business process definition into a web application package
US8954952B2 (en) * 2007-11-30 2015-02-10 Red Hat, Inc. Portable business process deployment model across different application servers
AU2009259876A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9069599B2 (en) * 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US9772831B2 (en) 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8533343B1 (en) 2011-01-13 2013-09-10 Google Inc. Virtual network pairs
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9015710B2 (en) 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US8359224B2 (en) * 2011-05-31 2013-01-22 Software Ag Systems and/or methods for identifying service candidates based on service identification indicators and associated algorithms
US9501295B2 (en) * 2011-07-05 2016-11-22 International Business Machines Corporation Method and system for handling locale and language in a cloud management system
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US20140006482A1 (en) 2012-07-02 2014-01-02 Vmware, Inc. Method and system for providing inter-cloud services
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
CN102968593B (zh) * 2011-08-31 2016-08-03 国际商业机器公司 用于多租户环境下定位应用程序的隔离点的方法和***
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US9781205B2 (en) * 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection
US9229784B2 (en) * 2011-09-21 2016-01-05 International Business Machines Corporation Determining resource instance placement in a networked computing environment
US9069616B2 (en) 2011-09-23 2015-06-30 Google Inc. Bandwidth throttling of virtual disks
US8943470B2 (en) * 2011-09-23 2015-01-27 The Mathworks, Inc. Requirements framework
US9542432B2 (en) 2011-09-30 2017-01-10 Oracle International Corporation Systems and methods for multitenancy data
US9529576B2 (en) * 2011-09-30 2016-12-27 Oracle International Corporation Systems and methods for object to XML mappings
CN103034453B (zh) * 2011-09-30 2015-11-25 国际商业机器公司 管理虚拟机实例中预安装应用的持久数据的方法和装置
US8914515B2 (en) * 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
CN103890706B (zh) 2011-10-31 2019-06-14 惠普发展公司,有限责任合伙企业 用于渲染内容的渲染许可
US8793379B2 (en) * 2011-11-01 2014-07-29 Lsi Corporation System or method to automatically provision a storage volume by having an app-aware based appliance in a storage cloud environment
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US9043766B2 (en) * 2011-12-16 2015-05-26 Facebook, Inc. Language translation using preprocessor macros
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US9160681B2 (en) * 2012-01-27 2015-10-13 Empire Technology Development Llc Spiral protocol for iterative service level agreement (SLA) execution in cloud migration
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US9183189B1 (en) * 2012-02-01 2015-11-10 Amazon Technologies, Inc. Network site hosting in a managed environment
US8996887B2 (en) 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US9916545B1 (en) * 2012-02-29 2018-03-13 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US10031783B2 (en) * 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) * 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
CN102638567B (zh) * 2012-03-02 2015-05-20 深圳市朗科科技股份有限公司 多应用云存储平台和云存储终端
US20130232470A1 (en) * 2012-03-03 2013-09-05 John C. Yung Launching an application stack on a cloud platform environment
US8335851B1 (en) * 2012-03-12 2012-12-18 Ringcentral, Inc. Network resource deployment for cloud-based services
US10089152B1 (en) 2012-03-19 2018-10-02 Amazon Technologies, Inc. Using scripts to bootstrap applications with metadata from a template
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US8949930B1 (en) 2012-03-19 2015-02-03 Amazon Technologies, Inc. Template representation of security resources
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US10169083B1 (en) * 2012-03-30 2019-01-01 EMC IP Holding Company LLC Scalable method for optimizing information pathway
US9462080B2 (en) * 2012-04-27 2016-10-04 Hewlett-Packard Development Company, L.P. Management service to manage a file
US20130290511A1 (en) * 2012-04-27 2013-10-31 Susan Chuzhi Tu Managing a sustainable cloud computing service
US20130290934A1 (en) * 2012-04-30 2013-10-31 Gregory Simon Monitoring applications executing on a computer device using programmatic triggers
CN104335170A (zh) * 2012-06-08 2015-02-04 惠普发展公司,有限责任合伙企业 云应用部署
US9952909B2 (en) * 2012-06-20 2018-04-24 Paypal, Inc. Multiple service classes in a shared cloud
US9058232B2 (en) * 2012-06-25 2015-06-16 Cloudvolumes, Inc. Systems and methods to create a clean install of an application
US9491035B1 (en) * 2012-06-29 2016-11-08 EMC IP Holding Company LLC Cloud services directory protocol
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9674270B2 (en) * 2012-07-18 2017-06-06 Google Inc. Methods and systems for dynamically provisioning resources for on-demand courses
EP2875440A4 (en) 2012-07-20 2016-05-25 Hewlett Packard Development Co POLICY-BASED SCALING OF NETWORK RESOURCES
US9292352B2 (en) * 2012-08-10 2016-03-22 Adobe Systems Incorporated Systems and methods for cloud management
US10963420B2 (en) 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US10755208B2 (en) * 2012-08-15 2020-08-25 Sap Se Methods, apparatus and system for mediating services
US8805921B2 (en) * 2012-08-20 2014-08-12 International Business Machines Corporation System and method supporting application solution composition on cloud
US9098346B2 (en) * 2012-08-21 2015-08-04 Verizon Patent And Licensing Inc. Cloud services layer dynamic API
US9378055B1 (en) 2012-08-22 2016-06-28 Societal Innovations Ipco Limited Configurable platform architecture and method for use thereof
EP2893443B1 (en) * 2012-09-03 2020-01-22 Telefonaktiebolaget LM Ericsson (publ) Re-configuration in cloud computing environments
US10225323B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing java cloud services for use with a cloud computing environment
US9274843B2 (en) 2012-09-14 2016-03-01 Ca, Inc. Multi-redundant switchable process pooling for cloud it services delivery
US9311161B2 (en) * 2012-09-14 2016-04-12 Ca, Inc. Automatically configured management service payloads for cloud IT services delivery
US10237370B2 (en) * 2012-09-22 2019-03-19 Avaya Inc. Co-resident plug-ins of third party software
US20150304230A1 (en) * 2012-09-27 2015-10-22 Hewlett-Packard Development Company, L.P. Dynamic management of a cloud computing infrastructure
US9154296B1 (en) 2012-09-28 2015-10-06 Emc Corporation Secure and anonymous distributed authentication
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
WO2014088543A1 (en) * 2012-12-03 2014-06-12 Hewlett-Packard Development Company, L.P. Cloud object
US10057183B2 (en) * 2012-12-07 2018-08-21 Hewlett Packard Enterprise Development Lp Network resource management
CN104981777B (zh) * 2012-12-11 2019-05-10 德国电信股份有限公司 用于在计算资源上部署应用的计算机实现的方法、***和计算机程序产品
WO2014105027A1 (en) * 2012-12-27 2014-07-03 Intel Corporation Reservation and execution image writing of native computing devices
US9122510B2 (en) 2013-01-02 2015-09-01 International Business Machines Corporation Querying and managing computing resources in a networked computing environment
FR3000857B1 (fr) * 2013-01-10 2015-02-20 Virtuor Procede, boitier et systeme d'acces a un service informatique au travers d'un reseau de communication
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US8966025B2 (en) 2013-01-22 2015-02-24 Amazon Technologies, Inc. Instance configuration on remote platforms
US9002997B2 (en) 2013-01-22 2015-04-07 Amazon Technologies, Inc. Instance host configuration
US9268533B2 (en) * 2013-01-30 2016-02-23 International Business Machines Corporation Method and apparatus for enabling layered property definition in traditional and cloud computing environments
US9588740B1 (en) * 2013-03-09 2017-03-07 Ca, Inc. Systems, methods and computer program products for construction of cloud applications
US9552232B2 (en) * 2013-03-12 2017-01-24 Xerox Corporation System and process to recommend cloud service cloud configuration based on service similarity
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US10216503B2 (en) * 2013-03-13 2019-02-26 Elasticbox Inc. Deploying, monitoring, and controlling multiple components of an application
US9590872B1 (en) 2013-03-14 2017-03-07 Ca, Inc. Automated cloud IT services delivery solution model
US20140280805A1 (en) * 2013-03-14 2014-09-18 Rackspace Us, Inc. Two-Sided Declarative Configuration for Cloud Deployment
US9430255B1 (en) 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
US9552198B2 (en) 2014-09-26 2017-01-24 Oracle International Corporation Drift management of images
US9665366B2 (en) 2014-09-26 2017-05-30 Oracle International Corporation Creation of a software configuration signature for software
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
EP2972975A4 (en) * 2013-03-15 2016-11-16 Servicemesh Inc SYSTEMS AND METHOD FOR ENHANCING MULTIPLE USE OF COMPUTER RESOURCES
WO2014175883A1 (en) * 2013-04-24 2014-10-30 Empire Technology Development, Llc Datacenter managed thread and multi-processing support
US9665387B2 (en) 2013-05-08 2017-05-30 Amazon Technologies, Inc. User-influenced placement of virtual machine instances
EP2994832A4 (en) * 2013-05-08 2016-12-14 Amazon Tech Inc USER-CONTROLLED PLACEMENT OF INSTANCES OF VIRTUAL MACHINES
US9648134B2 (en) 2013-05-20 2017-05-09 Empire Technology Development Llc Object migration between cloud environments
US10606569B2 (en) * 2013-06-02 2020-03-31 Microsoft Technology Licensing, Llc Declarative configuration elements
US9223586B1 (en) * 2013-06-27 2015-12-29 Amazon Technologies, Inc. Run-time limitations of software applications based on user characteristics
EP2852124A4 (en) * 2013-07-09 2015-12-02 Cloud Technology Ltd G RESOURCE DEPLOYMENT METHOD FOR CLOUD COMPUTING ENVIRONMENT
US9294482B2 (en) * 2013-07-25 2016-03-22 Oracle International Corporation External platform extensions in a multi-tenant environment
KR101782457B1 (ko) * 2013-08-13 2017-09-28 후아웨이 테크놀러지 컴퍼니 리미티드 어플리케이션 업그레이드 방법 및 장치
US10360064B1 (en) * 2013-08-19 2019-07-23 Amazon Technologies, Inc. Task scheduling, execution and monitoring
US9612815B1 (en) 2013-08-22 2017-04-04 Ca, Inc. Method and tool for automating deployment of reference implementation architectures for pre-integrated multi-product solutions
US10693805B2 (en) * 2013-08-27 2020-06-23 Red Hat, Inc. Tracking costs for a deployable instance
US9686121B2 (en) 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control via provider-defined interfaces
US9485323B1 (en) 2013-09-23 2016-11-01 Amazon Technologies, Inc. Managing pooled client-premise resources via provider-defined interfaces
US9754303B1 (en) 2013-10-03 2017-09-05 Ca, Inc. Service offering templates for user interface customization in CITS delivery containers
US9270703B1 (en) 2013-10-22 2016-02-23 Amazon Technologies, Inc. Enhanced control-plane security for network-accessible services
US9509761B2 (en) * 2013-10-23 2016-11-29 Sap Se Open user interface
US9646003B2 (en) * 2013-11-20 2017-05-09 Wolfram Research, Inc. Cloud storage methods and systems
US9619217B2 (en) 2013-11-20 2017-04-11 Wolfram Research, Inc. Methods and systems for cloud computing
US10333789B1 (en) 2013-12-18 2019-06-25 Amazon Technologies, Inc. Client-directed placement of remotely-configured service instances
CN103677845B (zh) * 2013-12-24 2017-02-15 广联达软件股份有限公司 一种网站应用部署方法
IN2013CH06085A (zh) * 2013-12-26 2015-07-03 Inforys Ltd
CN104765620B (zh) * 2014-01-02 2018-01-26 国际商业机器公司 一种程序模块部署的方法和***
US9436813B2 (en) * 2014-02-03 2016-09-06 Ca, Inc. Multi-tenancy support for a product that does not support multi-tenancy
US20150229628A1 (en) * 2014-02-10 2015-08-13 Qamal Kosim-Satyaputra System, method and architecture for providing integrated applications
US9766940B2 (en) 2014-02-10 2017-09-19 International Business Machines Corporation Enabling dynamic job configuration in mapreduce
GB2524951A (en) * 2014-03-13 2015-10-14 Vodafone Ip Licensing Ltd Management of resource allocation in a mobile telecommunication network
US10176005B2 (en) * 2014-03-31 2019-01-08 Cypherpath, Inc. Environment virtualization
WO2015163920A1 (en) * 2014-04-25 2015-10-29 Hewlett-Packard Development Company, L.P. Configuration based on a blueprint
WO2015165111A1 (en) * 2014-04-30 2015-11-05 Pivotal Software, Inc. Fast deployment across cloud platforms
US10148736B1 (en) * 2014-05-19 2018-12-04 Amazon Technologies, Inc. Executing parallel jobs with message passing on compute clusters
US10154095B2 (en) 2014-05-21 2018-12-11 N.Io Innovation, Llc System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance
US9891893B2 (en) 2014-05-21 2018-02-13 N.Io Innovation, Llc System and method for a development environment for building services for a platform instance
CN106796514A (zh) * 2014-05-21 2017-05-31 社会创新Ipco有限公司 用于完全可配置的实时处理的***和方法
US10516667B1 (en) * 2014-06-03 2019-12-24 Amazon Technologies, Inc. Hidden compartments
US10049033B2 (en) 2014-06-03 2018-08-14 Sap Se Application gateway for cloud computing systems
US10089476B1 (en) 2014-06-03 2018-10-02 Amazon Technologies, Inc. Compartments
US9471283B2 (en) * 2014-06-11 2016-10-18 Ca, Inc. Generating virtualized application programming interface (API) implementation from narrative API documentation
US9424065B2 (en) * 2014-06-26 2016-08-23 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools
US9378041B2 (en) * 2014-07-08 2016-06-28 Cognizant Technology Solutions India Pvt. Ltd. Method and system for integrating and implementing virtual service packages across different service virtualization tools
US9900391B2 (en) * 2014-08-05 2018-02-20 Microsoft Technology Licensing, Llc Automated orchestration of infrastructure service blocks in hosted services
US9800673B2 (en) * 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9473567B2 (en) 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US9606826B2 (en) * 2014-08-21 2017-03-28 International Business Machines Corporation Selecting virtual machines to be migrated to public cloud during cloud bursting based on resource usage and scaling policies
US10795567B2 (en) 2014-08-22 2020-10-06 Zoho Corporation Private Limited Multimedia applications and user interfaces
US10320622B2 (en) * 2014-08-22 2019-06-11 Vmware, Inc. Policy declarations for cloud management system
US9817645B2 (en) * 2014-09-17 2017-11-14 Sap Se Reusable application configuration with dynamic resource determination
US11323401B2 (en) 2014-09-24 2022-05-03 Zoho Corporation Private Limited Email interface for application creation and management
US20160087929A1 (en) 2014-09-24 2016-03-24 Zoho Corporation Private Limited Methods and apparatus for document creation via email
US10366428B2 (en) 2014-11-18 2019-07-30 Zoho Corporation Private Limited Methods and systems for grouping and prioritization of website visitors for live support
US10067959B1 (en) * 2014-12-19 2018-09-04 Amazon Technologies, Inc. Techniques for adapting data storage systems for peaky usage models
US10171560B2 (en) * 2015-01-05 2019-01-01 International Business Machines Corporation Modular framework to integrate service management systems and cloud orchestrators in a hybrid cloud environment
US9535754B1 (en) * 2015-02-05 2017-01-03 Amazon Technologies, Inc. Dynamic provisioning of computing resources
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9720659B2 (en) * 2015-02-12 2017-08-01 International Business Machines Corporation Sparse object instantiation
US9946520B1 (en) 2015-02-26 2018-04-17 MathNimbus Inc. Conversion of interpretive language functions into web applications or services
CN105991341A (zh) * 2015-03-06 2016-10-05 中兴通讯股份有限公司 一种实现参数配置的方法和装置
US10275440B2 (en) * 2015-03-16 2019-04-30 Microsoft Technology Licensing Llc Setup data extraction for deploying a solution package
WO2016151398A1 (en) * 2015-03-23 2016-09-29 Societal Innovations Ipco Limited System and method for configuring a platform instance at runtime
US10270668B1 (en) * 2015-03-23 2019-04-23 Amazon Technologies, Inc. Identifying correlated events in a distributed system according to operational metrics
WO2016154785A1 (zh) * 2015-03-27 2016-10-06 华为技术有限公司 一种云平台、运行应用的方法及接入网单元
US20160294922A1 (en) * 2015-03-31 2016-10-06 Hewlett-Packard Development Company, L.P. Cloud models
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
CN104967664A (zh) * 2015-05-13 2015-10-07 西安三星电子研究有限公司 云的自动化部署***和方法
FR3037165B1 (fr) * 2015-06-03 2022-07-29 Bull Sas Dispositif d'interface de programmation pour generer des programmes informatiques dedies de service d'utilisation de ressources informatiques partagees
US9948746B2 (en) 2015-06-15 2018-04-17 International Business Machines Corporation Request processing according to degradation monitoring
US10416976B2 (en) 2015-07-27 2019-09-17 Nec Corporation Deployment device, deployment method, and recording medium
US10769212B2 (en) * 2015-07-31 2020-09-08 Netapp Inc. Extensible and elastic data management services engine external to a storage domain
EP3329449A4 (en) * 2015-07-31 2019-02-06 Ent. Services Development Corporation LP PORTAL FOR FEDERATED MARKETPLACE
US20170041386A1 (en) * 2015-08-05 2017-02-09 International Business Machines Corporation Provisioning a target hosting environment
CN105117464B (zh) * 2015-08-25 2019-02-15 北京金山安全软件有限公司 一种应用推送方法、装置及服务设备
US20170063597A1 (en) * 2015-08-31 2017-03-02 Ca, Inc. Api provider insights collection
CN106559438B (zh) * 2015-09-24 2019-12-31 阿里巴巴集团控股有限公司 一种基于目标网络平台的程序上传方法和装置
US9584440B1 (en) * 2015-10-12 2017-02-28 Xirsys Llc Real-time distributed tree
US10095482B2 (en) * 2015-11-18 2018-10-09 Mastercard International Incorporated Systems, methods, and media for graphical task creation
US10083217B2 (en) * 2015-11-26 2018-09-25 International Business Machines Corporation Method and system for upgrading a set of replicated state machine processes
US10394789B1 (en) 2015-12-07 2019-08-27 Amazon Technologies, Inc. Techniques and systems for scalable request handling in data processing systems
US10250452B2 (en) * 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US20170171020A1 (en) * 2015-12-14 2017-06-15 Microsoft Technology Licensing, Llc Using declarative configuration data to manage cloud lifecycle
US20170171034A1 (en) * 2015-12-15 2017-06-15 Microsoft Technology Licensing, Llc Dynamic/on-demand packaging as part of deployment
CN105607903A (zh) * 2015-12-15 2016-05-25 国云科技股份有限公司 一种部署openstack组件的方法
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
US9542219B1 (en) * 2015-12-17 2017-01-10 International Business Machines Corporation Automatic analysis based scheduling of jobs to appropriate cloud resources
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US10439867B2 (en) * 2015-12-31 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for optimizing a software defined network configuration
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
US10762285B2 (en) 2016-02-23 2020-09-01 Wolfram Research, Inc. Methods and systems for generating electronic forms
US10652126B2 (en) 2016-02-26 2020-05-12 Arista Networks, Inc. System and method of a cloud service provider tracer
US11223536B2 (en) 2016-04-04 2022-01-11 At&T Intellectual Property I, L.P. Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
DE102016107797A1 (de) * 2016-04-27 2017-11-02 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts
CN105959138B (zh) * 2016-04-29 2019-05-17 深圳大数点科技有限公司 基于云计算的微服务动态部署的***及方法
US10250456B2 (en) * 2016-05-17 2019-04-02 Microsoft Technology Licensing, Llc Operational management in cloud computing systems
US10452451B2 (en) * 2016-06-10 2019-10-22 Board Of Regents, The University Of Texas System Systems and methods for scheduling of workload-aware jobs on multi-clouds
US9977670B2 (en) 2016-08-10 2018-05-22 Bank Of America Corporation Application programming interface for providing access to computing platform definitions
US10469315B2 (en) 2016-08-10 2019-11-05 Bank Of America Corporation Using computing platform definitions to provide segmented computing platforms in a computing system
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10778810B2 (en) * 2016-09-25 2020-09-15 Salesforce.Com, Inc. Staging and deployment to multiple service clouds
US11038986B1 (en) * 2016-09-29 2021-06-15 Amazon Technologies, Inc. Software-specific auto scaling
US10776385B2 (en) 2016-12-02 2020-09-15 Vmware, Inc. Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases
US10873501B2 (en) * 2016-12-09 2020-12-22 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US10560540B2 (en) * 2016-12-12 2020-02-11 Sap Se Optimizing provisioning of Java-based web applications on PaaS like cloud foundry
CN108206745B (zh) 2016-12-16 2020-03-20 华为技术有限公司 业务的操作方法、装置及云计算***
US10802810B2 (en) * 2016-12-27 2020-10-13 Sap Se Consuming persistent library bundles
US10691474B2 (en) 2017-01-03 2020-06-23 International Business Machines Corporation Text resources processing in an application
US10776332B2 (en) * 2017-02-08 2020-09-15 International Business Machines Corporation Managing cooperative computer software applications
US10593009B1 (en) * 2017-02-22 2020-03-17 Amazon Technologies, Inc. Session coordination for auto-scaled virtualized graphics processing
US10618137B2 (en) * 2017-03-24 2020-04-14 National Cheng Kung University Automated constructing method of cloud manufacturing service and cloud manufacturing system
US10868719B2 (en) * 2017-04-28 2020-12-15 Oracle International Corporation System and method for federated configuration in an application server environment
CN107153556A (zh) * 2017-04-28 2017-09-12 武汉票据交易中心有限公司 一种应用服务器基础框架的配置方法及其***
US10685169B2 (en) 2017-05-08 2020-06-16 Zoho Corporation Private Limited Messaging application with presentation window
CN110476402B (zh) * 2017-05-22 2021-03-30 华为技术有限公司 网络切片创建的方法、装置以及通信***
US10728186B2 (en) 2017-05-24 2020-07-28 Sap Se Preventing reader starvation during order preserving data stream consumption
US11005733B2 (en) 2017-06-08 2021-05-11 Vmware, Inc Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system
CN107273165B (zh) * 2017-06-19 2021-03-23 苏州浪潮智能科技有限公司 一种实现模块动态调用的***及方法
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
CN109327490B (zh) * 2017-07-31 2021-01-15 华为技术有限公司 一种部署云服务组件的方法和服务器
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10496396B2 (en) * 2017-09-29 2019-12-03 Oracle International Corporation Scalable artificial intelligence driven configuration management
WO2019067747A1 (en) 2017-09-29 2019-04-04 Qloudable, Inc. COMMUNICATION AND DEVICE MANAGEMENT IN COMPUTER DATA NETWORKS
US10496434B2 (en) * 2017-10-30 2019-12-03 EMC IP Holding Company LLC Elastic scaling job thread pool in a cloud event process infrastructure
US10514935B2 (en) * 2017-10-31 2019-12-24 Salesforce.Com, Inc. System and method for third party application enablement
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
US10353716B2 (en) 2017-11-13 2019-07-16 International Business Machines Corporation Automated deployment and performance evaluation of a virtualized-computing environment
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US10628235B2 (en) 2018-01-11 2020-04-21 Robin Systems, Inc. Accessing log files of a distributed computing system using a simulated file system
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US10845997B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Job manager for deploying a bundled application
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US10579364B2 (en) * 2018-01-12 2020-03-03 Robin Systems, Inc. Upgrading bundled applications in a distributed computing system
US10887167B2 (en) 2018-04-30 2021-01-05 At&T Intellectual Property I, L.P. Adaptive software-defined storage for cloud storage workloads
US10789065B2 (en) 2018-05-07 2020-09-29 Oracle lnternational Corporation Method for automatically selecting configuration clustering parameters
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
US10860339B2 (en) * 2018-08-03 2020-12-08 Dell Products L.P. Autonomous creation of new microservices and modification of existing microservices
US10999163B2 (en) * 2018-08-14 2021-05-04 Juniper Networks, Inc. Multi-cloud virtual computing environment provisioning using a high-level topology description
US10809987B2 (en) 2018-08-14 2020-10-20 Hyperblox Inc. Software acceleration platform for supporting decomposed, on-demand network services
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
US10908848B2 (en) 2018-10-22 2021-02-02 Robin Systems, Inc. Automated management of bundled applications
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
US10620871B1 (en) 2018-11-15 2020-04-14 Robin Systems, Inc. Storage scheme for a distributed storage system
US10521220B1 (en) * 2018-12-18 2019-12-31 Palantir Technologies Inc. Systems and methods for coordinating the deployment of components to defined user groups
US11467882B2 (en) * 2018-12-21 2022-10-11 Target Brands, Inc. Methods and systems for rapid deployment of configurable computing resources
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10831387B1 (en) 2019-05-02 2020-11-10 Robin Systems, Inc. Snapshot reservations in a distributed storage system
CN110134458B (zh) * 2019-05-14 2022-04-26 中国人民解放军海军工程大学 Qnx操作***通用无源码软件参数调整方法及其***、及***的实现方法
US10877684B2 (en) 2019-05-15 2020-12-29 Robin Systems, Inc. Changing a distributed storage volume from non-replicated to replicated
US11599752B2 (en) * 2019-06-03 2023-03-07 Cerebri AI Inc. Distributed and redundant machine learning quality management
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
CN110324191B (zh) * 2019-07-09 2022-08-23 西安点告网络科技有限公司 混合云部署方法、装置及***
US11923994B2 (en) 2019-08-22 2024-03-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and packet core system for common charging of network connectivity and cloud resource utilization
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
CN110888646B (zh) * 2019-11-28 2021-11-12 京东数字科技控股有限公司 部署方法、装置、***和存储介质
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
CN111198726B (zh) * 2019-12-30 2023-07-14 中科星图股份有限公司 一种适应传统应用云化的配置***及方法
US11138004B1 (en) * 2020-05-22 2021-10-05 Paypal, Inc. Modification of application functionality using object-oriented configuration data
CN111752723B (zh) * 2020-06-06 2021-05-04 中国科学院电子学研究所苏州研究院 一种可视化的多源服务管理***及其实现方法
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11516096B2 (en) 2020-06-17 2022-11-29 Red Hat, Inc. Automatically managing performance of software in a distributed computing environment
WO2022005914A1 (en) * 2020-06-29 2022-01-06 Illumina, Inc. Temporary cloud provider credentials via secure discovery framework
US11032160B1 (en) * 2020-07-31 2021-06-08 Boomi, Inc. Serverless elastic scale API gateway management system and method of an API service control plane system
US11740882B2 (en) * 2020-08-21 2023-08-29 Omni Technologies Modular software integration tools and systems
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
CN112153156B (zh) * 2020-09-28 2023-01-10 上海骞云信息科技有限公司 一种用于云服务的数据处理方法和装置
US11044139B1 (en) * 2020-09-29 2021-06-22 Atlassian Pty Ltd Apparatuses, methods, and computer program products for dynamic generation and traversal of object dependency data structures
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11467947B2 (en) * 2020-10-19 2022-10-11 EMC IP Holding Company LLC Automated mocking of computer system deployments
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
GB202017948D0 (en) 2020-11-13 2020-12-30 Microsoft Technology Licensing Llc Deploying applications
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
TWI810502B (zh) 2020-12-11 2023-08-01 財團法人工業技術研究院 運動控制系統及運動控制方法
CN112968808B (zh) * 2021-02-01 2022-06-21 中科视拓(南京)科技有限公司 一种通用的部署深度目标检测网络api的方法
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection
US11960918B2 (en) * 2021-07-23 2024-04-16 Dell Products L.P. Creating product orchestration engines
US11868319B2 (en) * 2021-12-08 2024-01-09 International Business Machines Corporation File storage system based on attributes of file components
US11789948B2 (en) * 2021-12-10 2023-10-17 Sap Se Computational dependency directory
CN114546473A (zh) * 2022-02-23 2022-05-27 北京金堤科技有限公司 自动化集成部署服务的方法和装置、以及电子设备和存储介质
US20230297689A1 (en) * 2022-03-21 2023-09-21 Bank Of America Corporation System for deployable software vulnerability testing platform
US20230362234A1 (en) * 2022-05-04 2023-11-09 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment
US11875196B1 (en) * 2023-03-07 2024-01-16 Appian Corporation Systems and methods for execution in dynamic application runtime environments

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505211B1 (en) * 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
CN1524217A (zh) * 2000-06-22 2004-08-25 分布式计算服务平台
US7596620B1 (en) * 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件***实现云构件部署和配置的平台***及方法
CN101840346A (zh) * 2009-12-30 2010-09-22 北京世纪互联宽带数据中心有限公司 云主机部署的方法及***
CN101969391A (zh) * 2010-10-27 2011-02-09 北京邮电大学 一种支持融合网络业务的云平台及其工作方法
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用***
CN101978366A (zh) * 2008-03-20 2011-02-16 微软公司 可部署对象分层结构内的应用程序管理

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463768A (en) 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
US5778444A (en) 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6178482B1 (en) 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7266766B1 (en) * 1999-09-30 2007-09-04 International Business Machines Corporation Method for developing a custom tagbean
US6598179B1 (en) 2000-03-31 2003-07-22 International Business Machines Corporation Table-based error log analysis
JP2002207620A (ja) 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
US7984423B2 (en) * 2001-08-14 2011-07-19 National Instruments Corporation Configuration diagram which displays a configuration of a system
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
WO2003083653A2 (en) 2002-03-29 2003-10-09 Research In Motion Limited System and method for object oriented interface checking and method dispatching
US6898697B1 (en) 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7555538B2 (en) * 2002-12-26 2009-06-30 Research In Motion Limited System and method for building and execution of platform-neutral generic services' client applications
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7496648B2 (en) * 2003-10-23 2009-02-24 Microsoft Corporation Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US20050166011A1 (en) 2004-01-23 2005-07-28 Burnett Robert J. System for consolidating disk storage space of grid computers into a single virtual disk drive
WO2005088504A1 (en) 2004-03-17 2005-09-22 Fidelitygenetic Limited Secure transaction of dna data
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
US20050216908A1 (en) 2004-03-25 2005-09-29 Keohane Susann M Assigning computational processes in a computer system to workload management classes
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
WO2006043012A1 (en) * 2004-10-22 2006-04-27 New Technology/Enterprise Limited Data processing system and method
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
GB2419697A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures each having an infrastructure controller
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
US20060161753A1 (en) 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
EP1818844B1 (de) 2006-02-10 2013-03-13 Secunet Security Networks Aktiengesellschaft Verfahren zur Benutzung von Sicherheitstoken
US20070288921A1 (en) 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
US20080086515A1 (en) 2006-10-06 2008-04-10 International Business Machines Corporation Method and System for a Soft Error Collection of Trace Files
US7653833B1 (en) 2006-10-31 2010-01-26 Hewlett-Packard Development Company, L.P. Terminating a non-clustered workload in response to a failure of a system with a clustered workload
US20080205415A1 (en) 2007-02-28 2008-08-28 Morales Henry N Jerez Access, Connectivity and Interoperability for Devices and Services
US20080270704A1 (en) 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US9678803B2 (en) * 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US7836285B2 (en) 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US20090097657A1 (en) 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
JP4480756B2 (ja) 2007-12-05 2010-06-16 富士通株式会社 ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US8156491B2 (en) 2008-02-29 2012-04-10 Red Hat, Inc. Fault tolerant virtual machine
US8261317B2 (en) 2008-03-27 2012-09-04 Juniper Networks, Inc. Moving security for virtual machines
US8418238B2 (en) 2008-03-30 2013-04-09 Symplified, Inc. System, method, and apparatus for managing access to resources across a network
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
US8271974B2 (en) * 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
CN101425010B (zh) * 2008-12-03 2011-01-12 中国人民解放军国防科学技术大学 一种普适计算环境下的部署与配置方法
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8463885B2 (en) 2009-08-31 2013-06-11 Red Hat, Inc. Systems and methods for generating management agent installations
US8693485B2 (en) 2009-10-14 2014-04-08 Dell Products, Lp Virtualization aware network switch
US8537860B2 (en) 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US8346935B2 (en) * 2010-01-15 2013-01-01 Joyent, Inc. Managing hardware resources by sending messages amongst servers in a data center
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
CA2793401C (en) * 2010-03-17 2019-05-07 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
US9547676B2 (en) * 2010-03-30 2017-01-17 Disos Pty Ltd. Cloud computing operating system and method
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8661132B2 (en) * 2010-05-28 2014-02-25 International Business Machines Corporation Enabling service virtualization in a cloud
US8954564B2 (en) * 2010-05-28 2015-02-10 Red Hat, Inc. Cross-cloud vendor mapping service in cloud marketplace
US10235439B2 (en) * 2010-07-09 2019-03-19 State Street Corporation Systems and methods for data warehousing in private cloud environment
US8739157B2 (en) * 2010-08-26 2014-05-27 Adobe Systems Incorporated System and method for managing cloud deployment configuration of an application
US20120102506A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Web service patterns for globally distributed service fabric
US20120103506A1 (en) * 2010-11-02 2012-05-03 Magnum Magnetics Corporation Magnetic Sheet Systems
US8909784B2 (en) 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US20120159517A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Managing a model-based distributed application
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US9619662B1 (en) 2011-01-13 2017-04-11 Google Inc. Virtual network pairs
US20120185688A1 (en) 2011-01-13 2012-07-19 Google Inc. Processor mode locking
US9419921B1 (en) 2011-01-13 2016-08-16 Google Inc. Network address translation for virtual machines
US9258271B1 (en) 2011-01-13 2016-02-09 Google Inc. Network address translation for virtual machines
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US20120204187A1 (en) * 2011-02-08 2012-08-09 International Business Machines Corporation Hybrid Cloud Workload Management
US10678602B2 (en) * 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US9454406B2 (en) * 2011-02-28 2016-09-27 Novell, Inc. Techniques for cloud bursting
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US9176759B1 (en) 2011-03-16 2015-11-03 Google Inc. Monitoring and automatically managing applications
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9069616B2 (en) 2011-09-23 2015-06-30 Google Inc. Bandwidth throttling of virtual disks
US8276140B1 (en) 2011-11-14 2012-09-25 Google Inc. Adjustable virtual network performance
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US9672052B1 (en) 2012-02-16 2017-06-06 Google Inc. Secure inter-process communication
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US8909939B1 (en) 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
US8813240B1 (en) 2012-05-30 2014-08-19 Google Inc. Defensive techniques to increase computer security

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505211B1 (en) * 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
CN1524217A (zh) * 2000-06-22 2004-08-25 分布式计算服务平台
CN101978366A (zh) * 2008-03-20 2011-02-16 微软公司 可部署对象分层结构内的应用程序管理
US7596620B1 (en) * 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
CN101840346A (zh) * 2009-12-30 2010-09-22 北京世纪互联宽带数据中心有限公司 云主机部署的方法及***
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件***实现云构件部署和配置的平台***及方法
CN101969391A (zh) * 2010-10-27 2011-02-09 北京邮电大学 一种支持融合网络业务的云平台及其工作方法
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Automatic software deployment in the azure cloud;Jacek Cala等;《DAIS 10 Proceedings of the 10th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems》;20100607;1-23 *

Also Published As

Publication number Publication date
US9557978B2 (en) 2017-01-31
US11237810B2 (en) 2022-02-01
AU2012229110A1 (en) 2013-10-03
US20160224328A1 (en) 2016-08-04
US8261295B1 (en) 2012-09-04
US20120240135A1 (en) 2012-09-20
CN108614716A (zh) 2018-10-02
US20170102931A1 (en) 2017-04-13
EP2686766B1 (en) 2016-12-14
US9870211B2 (en) 2018-01-16
EP4369197A2 (en) 2024-05-15
WO2012125815A2 (en) 2012-09-20
CN103582867A (zh) 2014-02-12
EP3153964B1 (en) 2024-05-01
US20140123129A1 (en) 2014-05-01
CN103582867B (zh) 2017-03-15
US10241770B2 (en) 2019-03-26
EP4369197A3 (en) 2024-07-03
EP2686766A2 (en) 2014-01-22
WO2012125815A3 (en) 2012-11-29
AU2012229110B2 (en) 2013-10-31
US20220137943A1 (en) 2022-05-05
CA2830237C (en) 2015-05-12
CA2830237A1 (en) 2012-09-20
US20120266159A1 (en) 2012-10-18
EP2686766A4 (en) 2014-11-26
EP3153964A1 (en) 2017-04-12
US20190265957A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
US20220137943A1 (en) Selection of ranked configurations
US10324709B2 (en) Apparatus and method for validating application deployment topology in cloud computing environment
EP2603853A2 (en) Moving enterprise software applications to a cloud domain
US20160117160A1 (en) Preparing installations and updates for software systems
JP2023038909A (ja) コンピュータ実装方法、コンピュータプログラム製品およびシステム(帰属グラフ埋め込みによるモノリスアプリケーションの制約ベースのリファクタリング)
US11106516B2 (en) Selective service-specific controls in a virtualized container environment
US9772833B2 (en) Application instance staging
US9471337B2 (en) Autowiring location agnostic services into application software
US11768679B2 (en) Identifying microservices for a monolith application through static code analysis
DE202016008047U1 (de) Hochrangige Sprache zum Spezifizieren von Konfigurationen cloudbasierter Bereitstellungen

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant