CN104885058A - 在虚拟组件生成器环境中进行通用产品连线的系统和方法 - Google Patents
在虚拟组件生成器环境中进行通用产品连线的系统和方法 Download PDFInfo
- Publication number
- CN104885058A CN104885058A CN201480003523.XA CN201480003523A CN104885058A CN 104885058 A CN104885058 A CN 104885058A CN 201480003523 A CN201480003523 A CN 201480003523A CN 104885058 A CN104885058 A CN 104885058A
- Authority
- CN
- China
- Prior art keywords
- virtual component
- script
- assembly
- virtual
- utensil
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
这里描述一种用于在云环境中进行通用产品连线的系统和方法。根据一个实施例,虚拟组件生成器能够被用于虚拟化参考环境中的安装部件,然后将这些部件部署到另一目的地环境中。用户能够将软件部件的配置和二进制文件捕捉到软件器具产物中,软件器具产物能够被分组并且它们的关系被定义为软件组件产物。根据一个实施例,通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。所述为了由脚本进行编辑和配置而暴露的属性能够在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
Description
版权声明
本专利文档的公开的一部分包含受到版权保护的材料。当本专利文档或专利公开出现在专利商标局的专利文件或记录中时,版权所有者不反对由任何人对本专利文档或专利公开进行的拓制,但在其它方面完全保留所有版权权利。
优先权要求
本申请要求于2013年3月15日提交的申请号为61/798720的标题为“SYSTEMS AND METHODS FOR GENERIC PRODUCTWIRING AND OTHER VIRTUAL ASSEMBLY BUILDERFEATURES”的美国临时申请的优先权的利益,该申请通过引用包含于此。
技术领域
本发明的实施例一般地涉及用于云计算环境的系统和方法,并且具体地讲,涉及用于在虚拟组件生成器环境中进行通用产品连线(generic product wiring)的系统和方法。
背景技术
一般而言,虚拟化是从在计算机硬件资源(诸如,它的处理器、内存、存储器和网络接口)上运行的操作系统和软件应用抽象计算机硬件资源的处理。计算机能够包括实现多个操作系统的安装的虚拟化部件(诸如,管理程序),所述多个操作系统中的每一个能够同时地和独立地在它们自己的安全环境内运行。虚拟化能够使整个处理环境的部署更快、更容易并且更加高效。
例如,云环境使得以前可能由组织自己的信息技术部门提供的责任能够被作为服务层提供,以供位于该组织内部(即,私有)或外部(即,公共)的消费者使用。云环境能够使用虚拟化特征快速地并且容易地修改应该如何配置、提供和控制特定服务。这些是能够在其中使用本发明的实施例的环境的类型的一些例子。
发明内容
这里描述一种用于在云环境中进行通用产品连线的系统和方法。根据一个实施例,虚拟组件生成器能够被用于虚拟化参考环境中的安装部件,然后将这些部件部署到另一目的地环境中。用户能够将软件部件的配置和二进制文件(binary)捕捉到软件器具(appliance)产物(artifact)中,软件器具产物能够被分组并且它们的关系被定义为软件组件产物。根据一个实施例,通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化(rehydration)期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。所述为了由脚本进行编辑和配置而暴露的属性能够在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
附图说明
图1表示根据一个实施例的虚拟组件生成器环境。
图2进一步表示根据一个实施例的虚拟组件生成器环境。
图3表示根据一个实施例的能够使用虚拟组件生成器的示例性云计算环境。
图4表示根据一个实施例的在云计算环境中的虚拟组件生成器的使用。
图5表示根据一个实施例的在云计算环境中的虚拟组件生成器的示例性使用。
图6表示根据一个实施例的支持通用产品连线的通用产品内省器插件的使用。
图7进一步表示根据一个实施例的具有虚拟组件生成器的通用产品内省器插件的使用。
图8进一步表示根据一个实施例的具有虚拟组件生成器的通用产品内省器插件的使用。
图9是根据一个实施例的用于在虚拟组件生成器环境中进行通用产品连线的处理的流程图。
具体实施方式
如上所述,虚拟化是从在计算机硬件资源(诸如,它的处理器、内存、存储器和网络接口)上运行的操作系统和软件应用抽象计算机硬件资源的处理。例如,计算机能够包括实现多个操作系统的安装的虚拟化部件(诸如,管理程序),所述多个操作系统中的每一个能够同时地和独立地在它们自己的安全环境内运行。
根据一个实施例,虚拟组件生成器能够被用于虚拟化参考环境中的安装部件,然后将这些部件部署到另一目的地环境中。用户能够将软件部件的配置和二进制文件捕捉到软件器具产物中,软件器具产物能够被分组并且它们的关系被定义为软件组件产物。
根据一个实施例,通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本执行编辑和配置而暴露的一个或多个元数据属性。所述为了由脚本执行编辑和配置而暴露的属性能够在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
虚拟组件生成器(VAB)
图1表示根据一个实施例的虚拟组件生成器环境100。如图1中所示,虚拟组件生成器(VAB)128(例如,Oracle虚拟组件生成器,OVAB)能够被用于对参考环境120进行内省,参考环境120包括一个或多个安装的软件部件(诸如,中间件122、虚拟机124和/或数据库部件126)。虚拟组件生成器能够随后准备用于部署到目的地环境中的一个或多个组件130,所述一个或多个组件130中的每一个包括器具132和关联的元数据134,目的地环境具有根据一个或多个配置140、150的虚拟机或服务器143、144、149、153、154、159的一个或多个虚拟化资源池141、151。
根据一个实施例,虚拟器具(通常在这里被称为器具)代表软件部件及其本地执行环境。例如,器具能够包括应用配置、二进制文件和操作系统。
根据一个实施例,虚拟组件(通常在这里被称为组件)是被配置为在部署到硬件资源池时一起工作的一批相互关联的器具。组件还可提供增加它们在生产环境中的有用性的能力,诸如对元数据形式的客观化配置的支持;定义器具的启动次序以反映相互依赖性的装置;和/或对参考外部系统(诸如,数据库、服务器或安全提供商)的支持。
根据一个实施例,虚拟组件生成器能够包括视觉或命令行配置环境、或者使用户能够构造包括复杂应用结构的组件的其它工具或接口。例如,能够提供允许用户浏览和重新使用已有器具和组件的目录、或者使用拖放或可编辑属性修改器具之间的连接的接口。
根据一个实施例,组件创建和部署是多步骤处理。在内省阶段,用户能够捕捉用于个体或多个分布软件部件的配置元数据。目标部件可在本地或远程地位于系统上,该系统可以是物理的或虚拟的。
在配置阶段,用户能够使用一个或多个接口例如通过下述步骤来配置组件:拖放在可导航目录中维护的器具;建立器具之间的关系;和/或创建从器具到外部资源(诸如,数据库、服务器或安全提供商)的连接。
在准备阶段,用户能够创建可引导的虚拟机盘镜像,该虚拟机盘镜像包括定制的操作系统(OS)分布和允许软件部件的部署时定制的可配置元数据。
在部署阶段,用户能够发现虚拟化环境中可用的目标;创建定制的部署配置;实施器具盘镜像;将组件部署到目标上;根据需要缩放器具实例;并且自动地将部署的实例连线到已有组件。
例如,根据一个实施例,虚拟组件生成器能够被如上所述用于从源环境捕捉一组Oracle融合中间件(FMW)和Oracle数据库软件部件的已有条件,将部件表示为组件,并且使得它们能够被部署到目的地环境中。
图2进一步表示根据一个实施例的虚拟组件生成器环境。如图2中所示,根据实施例,虚拟组件生成器环境能够包括被容纳在应用服务器160处的VAB部署器162,VAB部署器162提供对具有资源池的一个或多个虚拟化系统164、VAB仓库168和实现持久状态170的存储部件(例如,Oracle Coherence)166的访问。能够由一个或多个VAB接口180(例如,VAB创作器部件182、命令行接口184或Web服务186或其它接口)提供对VAB部署器及其操作的访问。
根据一个实施例,VAB接口允许用户执行组件创建的内省阶段、配置阶段和准备阶段;并且还提供对上传、登记和管理组件档案和实例的支持。例如,VAB部署器维护由该接口创建的组件档案的仓库,并且提供用于向虚拟化系统(例如,Oracle VM,OVM)登记组件并且安排由该档案定义的软件部件的部署的操作。
最小器具通常包括描述原始软件部件的条件的元数据、以及允许在部署时重新创建它的配置的一组部件专用文件。在组件正在准备部署的同时,能够利用元数据存储另外的配置信息。根据一个实施例,元数据包括对部件的逻辑输入和输出(统称为端点)中的每一个的描述。例如,HTTP服务器的HTTP输入和mod_wl_ohs输出分别是输入和输出端点的例子。端点能够包括诸如协议、端口和URL的信息。虚拟组件生成器捕捉关于每个端点的足够信息,以允许在捕捉部件之后并且在部署部件之前更新连接。这帮助确保器具能够在目的地环境内被正确地连接。
根据一个实施例,内省处理产生指定一个或多个文件系统分级体系的文件集定义,所述一个或多个文件系统分级体系需要被捕捉以再现目的地环境中的部件安装。虚拟组件生成器还可捕捉由元数据描述的实际安装的拷贝,在这里被称为文件集。根据一个实施例,虚拟组件生成器创建部件的XML描述,该XML描述提供在内省时的部件的配置的快照。
根据一个实施例,内省能够是基于插件的,包括使用用于每个支持的部件类型的插件。在多数情况下,对部件进行内省的结果是器具;然而,在一些情况下,诸如当虚拟组件生成器被用于对应用服务器域进行内省时,关联的内省器插件能够产生组件,该组件例如具有代表域的管理服务器的器具和代表受域管理的服务器的其它器具。
根据一个实施例,能够使用“GenericProd”器具类型构造通用器具,这允许用户创建和部署应用产品作为器具,对于该器具,虚拟组件生成器可能不具有内置支持。这种器具通常不使用产品专用逻辑来捕捉配置或产品位置;而是创建相对简单的器具,并且添加构成该产品的一组用户提供的属性、路径和脚本。能够随后在部署时执行在创建时传递的所述一组脚本以执行任何需要的操作。
根据一个实施例,能够在持久存储器(诸如,盘)中、在称为目录的区域中表示组件和器具。组件和器具产物以及元数据能够被存储在该目录的根目录的子文件夹内的嵌套目录中。
根据一个实施例,组件模板是能够被用于创建和启动新虚拟机实例的一组虚拟盘镜像。能够为组件中的每个器具创建包括客户操作系统和器具文件集和元数据的模板,然后通过向虚拟化环境登记所述模板来使所述模板对虚拟化环境可用,此时,能够基于所述模板创建虚拟机实例。
根据一个实施例,当定义组件时,可能需要参考位于该组件外部的服务器或资源。例如,组织的环境可包括由许多不相关的虚拟部署共享的外部资源(诸如,数据库、服务器或安全提供商)。根据一个实施例,能够在模板中定义外部部件以代表存在于环境中但将不会被部署为器具的资源。将这些表示为外部资源确保在部署时正确地配置组件内的参考器具。
根据一个实施例,部署计划能够被用于指定将要被用于在组件档案中声明的每个逻辑网络的虚拟化环境中的网络。用户能够创建定制默认组件和器具属性并且提供部署专用信息(诸如,网络配置)的部署计划。例如,根据一个实施例,VAB部署器能够创建一个或多个管理程序虚拟网络(Vnet),并且将所述一个或多个管理程序虚拟网络连接到与它交互的虚拟机。
不同虚拟化系统以不同方式组织它们的资源,并且需要用于参考和访问这些资源的不同信息。根据一个实施例,为了提供跨越不同系统的公同用户体验,目标能够被用于参考虚拟化系统中的资源或资源池。为每个目标提供的配置信息对包含该目标的虚拟化系统来说是特定的。组件实例是特定目标虚拟环境的组件档案的可部署实例;而器具实例是在目标虚拟环境中运行或创建的器具的实例。
组件实例能够与生命周期关联。例如,用户能够通过选择组件、部署计划和组件需要被部署到的目标来创建组件实例。组件实例的部署将会随后经历各种阶段,例如实施、部署和失败,在每个阶段期间,能够使操作的子集可用。例如,当部署组件实例时,用户能够启动和停止器具实例,或者增加或减少与部署的组件实例关联的器具实例的数量。
具有云环境的虚拟组件生成器
根据各种实施例,虚拟组件生成器能够用于云计算环境,例如使用硬件和软件以便实现用于开发和部署软件应用的基于云的平台的环境。
图3表示根据一个实施例的能够使用虚拟组件生成器的示例性云计算环境。如图3中所示,云计算环境(在一些实施例中,在这里被称为云环境或云)200能够包括一个或多个基础设施即服务(IaaS)层210、平台即服务(PaaS)层260和/或软件即服务(SaaS)层270的组合,这些层能够根据正在使用的特定云计算模型由相对于组织而言私有或公开的消费者使用。
根据一个实施例,云环境能够被实现为系统,该系统包括计算机硬件,诸如一个或多个传统通用或专用数字计算机、计算装置、机器、微处理器、存储器和/或计算机可读存储介质。例如,根据一个实施例,IaaS层能够包括可经IaaS API 215访问的共享数据库硬件(例如,Exadata机器)212和/或共享应用服务器硬件(例如,Exalogic机器)214。PaaS层能够包括一个或多个PaaS服务,诸如数据库服务262、应用服务264和/或WebCenter服务266;而SaaS层能够包括各种SaaS服务,诸如企业应用(例如,Oracle FMW SaaS)272和/或ISV或定制应用276。云环境还能够包括共享实现和管理基础设施220,共享实现和管理基础设施220提供支持各种服务层的工具,例如一个或多个身份管理222、数据集成224、复制(例如,OracleGoldenGate)226、虚拟组件生成器228、系统供应230、租户管理232、企业管理器234、病毒扫描242、安全文件传送244、HTTP路由246、白名单248、通知250、安全备份252、集成网关254、使用和计费256或其它部件。
图4表示根据一个实施例的云计算环境中的虚拟组件生成器的使用。如图4中所示,根据一个实施例,虚拟组件生成器部件300维护组件档案的仓库324。根据使用OVAB的一个实施例,组件档案可以是Oracle虚拟组件(OVA)格式档案。
如上所述,根据一个实施例,能够使用VAB创作器326、命令行接口330或其它配置产品(诸如,OVAB Studio)创建组件。VAB部署器部件304能够例如由Web服务308或其它VAB接口307访问,并且实现用于将组件上传344到仓库并且向云部件登记组件的操作。
根据一个实施例,VAB部署器能够被部署在应用服务器或管理服务器内,或者部署在一批受管服务器内。多实例实施例能够将由例如Coherence 340提供的共享数据库、盘或存储器功能用于部署器的运行时和配置状态的存储。
根据一个实施例,VAB部署器能够包括:虚拟组件管理器305,用于实现对仓库的访问;和登记管理器306,提供对资源池服务(RPS)310的访问,RPS 310支持使用一个或多个资源池服务插件312,例如Oracle VM 3(OVM3)316、IaaS 314和/或EC2 313插件。根据一个实施例,插件能够支持VM消息API(VMAPI)320和模板322的使用,VMAPI 320和模板322实现向资源池332或虚拟机(VM)登记组件346及其随后的生命周期管理350。
一些虚拟化系统允许标签与产物(诸如,模板或VM实例)关联,该标签能够随后被查询以便例如找到与特定部署关联的产物。
作为虚拟组件生成器的生命周期的一部分,组件能够被例如使用UploadAssemblyArchive操作上传到VAB部署器的仓库。能够随后例如使用RegisterAssemblyArchive操作向一个或多个目标登记组件。登记能够包括:向虚拟组件生成器环境内的资源池登记该组件的模板。在已向目标登记组件之后,能够例如使用CreateAssemblyInstance操作针对该登记创建一个或多个部署。一旦已创建部署,能够创建和启动该组件的初始实例。在正在执行这一点的同时,VAB部署器能够使用嵌入在这些实例的初始化脚本中的再水化逻辑对组件进行再水化,包括配置该组件的各个方面(诸如,它的操作系统、网络或盘卷)。
根据一个实施例,VAB部署器能够配置用于在环境内使用的虚拟机应用栈。例如,能够提供用于配置将要在应用启动时创建的服务实例之间的连接的信息。一旦组件已被部署,另外的生命周期操作能够被应用于运行中的系统,诸如进行调整以增加或减少组件内的特定器具的运行实例的数量。
图5表示根据一个实施例的云计算环境中的虚拟组件生成器环境的示例性使用。例如,云环境(诸如,Oracle Public Cloud(OPC))能够包括Java云服务基础设施,Java云服务基础设施允许一套软件应用、中间件和数据库供给物被以自助方式传送给顾客。
如图5中所示,根据一个实施例,系统供应云服务430能够针对将要被创建的租户环境444从顾客接收订单,租户环境444包括组件实例450和/或服务实例460。该系统能够初始地创建447多个匿名组件(例如,454、456、458)和服务实例(例如,464、466、468)。每个组件和/或服务实例能够随后被配置为满足订单要求。例如,特定组件472和/或特定服务实例474能够被配置为一起工作。在Java云服务的上下文中,所获得的平台实例能够包含提供WebLogic或其它应用服务器服务所需的资源和关系476,以及例如实例数据库、管理服务器和一个或多个应用服务器。
通用产品连线
如上所述,使用虚拟组件生成器,用户能够将软件部件的配置和二进制文件捕捉到软件器具产物中,软件器具产物能够被分组并且它们的关系被定义为软件组件产物。
根据一个实施例,通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。
如前所述,能够使用“GenericProd”器具类型构造通用器具,这允许用户创建和部署应用产品作为器具,对于该器具,虚拟组件生成器可能不具有内置支持。然而,以前,这种通用器具不能包含器具输入,并且不能被用于自动地配置为该器具建立的连接。
根据一个实施例,通用产品内省器插件能够实现器具上的输入和输出的配置。与器具的输入和输出关联的元数据能够被暴露于用户提供的再水化脚本,以使得能够根据由用户在组件编辑期间提供的细节和器具最终被部署到的目的地环境来配置下层的捕捉产品的网络连接。
根据一个实施例,第一主机能够使用通用产品内省器插件准备将要被部署到目的地环境的软件产品,包括在内省期间使元数据与第一主机的输入和输出套接字关联。另外的主机能够随后在它们自己的部件和软件产品的部署期间消费或以其它方式接收与第一主机的输入和输出套接字关联的元数据,并且配置它们自己的部件和软件产品以适当地与在第一主机处的软件产品的输入和输出通信。
图6表示根据一个实施例的具有虚拟组件生成器的通用产品内省器插件的使用。
如图6中所示,虚拟组件生成器设置有通用产品内省器插件500,通用产品内省器插件500与组件生成器一起工作以提供参考环境的内省504。根据一个实施例,虚拟组件生成器能够被用于建立通用产品器具502,通用产品器具502包括操作系统510、器具二进制文件512、器具配置514、应用库516、重配置脚本518和后期联编属性522以及输入530和输出540中的一个或多个。
根据一个实施例,器具的输入和输出能够分别与输入元数据532和输出元数据542关联。
在内省期间,通用产品内省器插件能够被提供再水化参数506,再水化参数506使该插件将它的元数据信息发布551给再水化脚本552,再水化脚本552包括输入元数据和输出元数据。
再水化脚本(包括它的输入元数据和/或输出元数据)能够随后可选地由用户配置或编辑,以在部署到目的地环境时配置下层的捕捉的产品的网络连接。
器具输入
根据一个实施例,器具输入代表部件打开套接字、等待建立连接并且处理进入请求的主机和端口的配置。能够与器具输入关联的元数据的类型的例子包括:
·部件将会建立套接字的端口。
·部件将会建立套接字的主机,其将在部署时确定。
·部件将会在套接字上处理的协议。
·具有描述应该如何配置和/或连接端点的细节的一组可配置属性。
·具有描述应该如何配置和/或连接端点的细节的一组静态属性。
·在捕捉时由部件使用的原始主机和端口。
在再水化期间,通用产品内省器插件和其它内省器插件能够检查它们的器具输入的元数据,并且使用器具输入信息修改它们自己的该器具将会为了处理进入请求而打开的套接字的配置。
将会连接到这些套接字的其它部件也能够在再水化期间检查元数据,以便合适地修改它们的客户侧连接配置。
根据一个实施例,器具输入能够被提供为*.input文件,*.input文件包括表示为具有<key>=<value>的形式的一行一个的键/值对的属性。键不被保证是有效shell变量名,因此,端点文件不能被溯源以创建shell变量。能够在*.input文件中包含的属性的类型的例子包括:
·端口:需要
·协议:需要,逗号分隔的列表,没有空白
·主机:在内部获得,在再水化时可用
·userprop.<property-name>:可选,总是类型=″STRING″
·sysprop.<property-name>:可选,总是类型=″STRING″
·original-port:可选
·original-host:可选
根据一个实施例,需要在内省时提供的文件中指定表示为“需要”的属性。主机属性不应由用户指定,而是在再水化期间被自动地获得。再水化脚本能够使用主机属性的值在配置器具输入(ApplianceInput)时设置收听地址,并且在配置器具输出(ApplianceOutput)时设置连接地址。
器具输出
根据一个实施例,器具输出代表部件与其建立连接并且向其发送请求的主机和端口的配置。能够与器具输出关联的元数据的类型的例子包括:
·部件将会在该连接上使用的协议。
·具有描述部件将会如何建立连接的细节的一组可配置属性。
·具有描述部件将会如何建立连接的细节的一组静态属性。
·在这个输出将会连接到的任何兼容输入上需要的一组属性。
·在捕捉时由部件使用的原始主机和端口。
根据一个实施例,器具输出能够类似地被提供为*.output文件,并且类似地包括表示为具有<key>=<value>的形式的一行一个的键/值对的属性。再一次,键不被保证是有效shell变量名,因此,端点文件不能被溯源以创建shell变量。能够在*.output文件中包含的属性的类型的例子包括:
·协议:需要
·connected-input:在内部获得,在再水化时可用
·userprop.<property-name>:可选,总是类型=″STRING″
·sysprop.<property-name>:可选,总是类型=″STRING″
·original-port:可选
·original-host:可选
·conn-userprop.<property-name>:可选,用于指定关于连接的输入的要求
·conn-sysprop.<property-name>:可选,用于指定关于连接的输入的要求
根据一个实施例,需要在内省时提供的文件中指定表示为“需要”的属性。connected-input属性不应由用户指定,而是在再水化期间被自动地获得。
再水化脚本能够使用connected-input属性的值获得*.input文件的名称(例如,通过将“.input”附加于该名称)。能够以<assembly-path>:<input-name>的形式指示由connected-input属性指示的文件名,其中<assembly-path>的每个成分由“.”(英文句号)分离,利用assembly-path作为文件名的前缀以避免输入名称冲突。
例如,对于具有输入“otherInput”并且连接到目标通用产品器具上的称为“output1”的输出的在路径“mySite/otherAppliance”处的器具,连接的输出文件“output1.output”将会包含属性connected-input=mySite.otherAppliance:otherInput;而代表“otherInput”的*.input文件将会与所有其它*.input和*.output文件一起位于路径$AB_ENDPOINT_DIR/mySite.otherAppliance:otherInput.input。
在组件编辑期间,能够配置器具输出和器具输入之间的连接,以使得器具输出的所有者能够发现它应该连接到的器具输入的元数据。
图7进一步表示根据一个实施例的具有虚拟组件生成器的通用产品内省器插件的使用。
如图7中所示,在再水化554期间,为了创建目的地部件546,再水化脚本能够可选地由用户配置或编辑553,包括它的输入元数据556和/或输出元数据558。
根据一个实施例,内省器插件能够检查它们自己的器具输出和这些输出连接到的器具输入的元数据。再水化脚本(包括它的元数据)能够被用于配置端点559,并且最终针对目的地部件修改该部件将会为了发送和接收请求而打开的它的套接字的配置,以使得与其关联的其它部件和产品能够被自动地连线到部署到该目的地环境的产品。
例如,根据一个实施例,第一主机A能够使用通用产品内省器插件准备将要被部署到目的地环境的软件产品,包括在内省期间使元数据与主机A的输入和输出套接字关联。另外的主机B和C能够随后在它们自己的部件和软件产品的部署期间消费或以其它方式接收与主机A的输入和输出套接字关联的元数据,并且配置它们自己的部件和软件产品以正确地与在主机A处的软件产品的输入和输出通信。
例如,如图7中所示,在再水化时,器具能够定义具有输入端点572和输出端点582的目的地部件,输入端点572和输出端点582的套接字574、584被分别根据提供的输入元数据和输出元数据以及再水化脚本配置。另外的主机能够使用与套接字关联的输入元数据发现如何正确地连接到这些套接字。例如,另外的主机能够使用与在第一主机处的收听套接字关联的输入元数据发现如何正确地连接到该收听套接字。
图8进一步表示根据一个实施例的具有虚拟组件生成器的通用产品内省器插件的使用。
如图8中所示,在再水化554期间,通用产品器具能够被用于创建目的地部件,该目的地部件包括操作系统561、部件二进制文件562、部件配置563、部件库564、后期联编或重配置属性565以及器具输入和输出,器具输入和输出的套接字被如上所述根据再水化脚本配置。
器具输入/输出的创建
根据各种实施例,不同方案能够被用于创建器具输入和输出端点。例如,能够在内省期间创建端点,或者能够作为跟在内省之后的额外的步骤创建端点。根据一个实施例,在内省期间创建端点并且将端点通过脱水参数提供给通用产品内省器插件,脱水参数包括指向例如包含数据的文件的指针,该数据定义所获得的通用产品器具上的多个输入和多个输出。
使器具输入/输出暴露于脚本
根据一个实施例,通用产品内省器插件向再水化脚本发布在内省时原始提供的器具用户属性。根据一个实施例,能够通过将属性写入文件然后当随后执行脚本时将环境变量$AB_USERPROPS_FILE设置到该文件的路径来实现这一点。
除了通用产品器具将会被连接到的其它器具的输入之外,类似方案能够被用于向脚本发布与器具的输入和输出关联的元数据。
通用产品内省器插件参数
根据一个实施例,通用产品内省器插件识别ENDPOINTDIR参数,该参数指向包含描述将要被添加到器具作为内省的一部分的器具输入(ApplianceInput)和器具输出(ApplianceOutput)的一个或多个文件的目录并且被传递给所有再水化脚本作为$AB_ENDPOINT_DIR环境变量。
根据一个实施例,每个端点存在一个文件,包括:对于ApplianceInput,存在<input-name>.input文件;并且对于ApplianceOutput,存在<output-name>.output文件。在通用产品器具的再水化期间,针对器具的所有器具输入和器具输出创建一个或多个端点文件。还针对通用产品器具将会被连接到的其它器具的器具输入创建端点文件。
根据一个替代实施例,例如通过使用在键中包括端点名的命名策略,端点元数据能够被存储在单个文件中。
根据一个替代实施例,替代于需要用户在内省之前创建描述端点的文件,能够提供用于在随后的组件编辑期间添加端点的接口。
脱水和再水化接口
根据一个实施例,图形(GUI)和命令行(CLI)脱水接口能够被配置为通过识别ENDPOINTDIR参数并且相应地行动来支持通用产品内省器插件对器具输入和输出的识别。对于再水化接口,再水化脚本能够被传递用于定位重新创建的*.input/*.output端点文件的$AB_ENDPOINT_DIR环境变量。
图9是根据一个实施例的用于使用具有虚拟组件生成器的通用产品内省器插件的处理的流程图。
如图9中所示,在步骤592,描述输入和输出的信息以及任何对应元数据通过脱水参数而被提供给通用产品(例如,GenericProd)内省器插件,脱水参数包括指向一组数据的指针(例如,包含该数据的文件的路径)。
在步骤594,通用产品内省器插件向再水化脚本发布在内省时提供的任何器具用户属性、以及与通用产品器具的输入和输出关联的元数据。
在步骤596,通用产品内省器插件向再水化脚本发布通用产品输出将要被连接到的其它器具的输入的元数据。
在步骤598,在目的地部件的再水化期间,该系统运行再水化脚本以及与器具输入关联的元数据,以确定目的地部件将会建立套接字的端口和主机、该部件将会在该套接字上处理的协议、以及描述应该如何配置和/或连接端点的一组可配置或静态属性;和与器具输出关联的元数据。
根据一个实施例,再水化脚本(包括它的输入元数据和/或输出元数据)能够可选地由用户配置或编辑,以在部署到目的地环境时配置下层捕捉产品的网络连接。该系统能够随后使用这种信息以确定该部件将会在该连接上使用的协议和描述该部件将会如何建立连接的一组可配置或静态属性,以使得与其关联的其它部件和产品能够被自动地连线到部署到目的地环境的该产品。
可使用一个或多个传统通用或专用数字计算机、计算装置、机器或微处理器(包括根据本公开的教导编程的一个或多个处理器、存储器和/或计算机可读存储介质)方便地实现本发明。对于软件领域的技术人员而言将会清楚的是,能够由熟练程序员基于本公开的教导容易地准备合适的软件编码。
在一些实施例中,本发明包括一种计算机程序产品,该计算机程序产品是非暂态存储介质或计算机可读介质(多个介质),所述介质存储有指令,该指令能够被用于对计算机进行编程以执行本发明的任何处理。该存储介质能够包括但不限于任何类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存装置、磁卡或光学卡、纳米系统(包括分子存储器IC))或适合存储指令和/或数据的任何类型的介质或装置。
已为了说明和描述的目的提供本发明的前面的描述。它不应该是穷尽的或者将本发明限制于公开的精确形式。许多修改和变化将会对于本领域技术人员而言是清楚的。选择并且描述实施例以便最好地解释本发明的原理及其实际应用,由此使其他本领域技术人员能够理解具有适合设想的特定用途的各种修改和各种实施例的本发明。本发明的范围要由下面的权利要求及其等同物定义。
Claims (12)
1.一种用于在云环境中利用虚拟组件生成器进行通用产品连线的系统,所述系统包括:
一个或多个计算机,包括在所述一个或多个计算机上执行的云环境;
虚拟组件生成器部件,维护虚拟组件档案的仓库,其中每个虚拟组件能够包括能够被用于对组件的实例进行实例化的一个或多个虚拟机模板和元数据;和
通用产品内省器插件,允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。
2.如权利要求1所述的系统,其中所述为了由脚本进行编辑和配置而暴露的属性在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
3.如权利要求2所述的系统,其中所述实例的所述一个或多个输入和输出包括一个或多个套接字,并且其中所述脚本在该组件的实例的实例化期间被用于确定所述一个或多个套接字的主机、端口和其它信息。
4.如权利要求3所述的系统,其中所述脚本能够在再水化之前在不修改虚拟组件的情况下被编辑,以修改所述一个或多个套接字的主机、端口和其它信息。
5.一种用于在云环境中利用虚拟组件生成器进行通用产品连线的方法,所述方法包括:
在一个或多个计算机处提供虚拟组件生成器部件,所述一个或多个计算机包括在所述一个或多个计算机上执行的云环境,所述虚拟组件生成器部件维护虚拟组件档案的仓库,其中每个虚拟组件能够包括能够被用于对组件的实例进行实例化的一个或多个虚拟机模板和元数据;以及
提供通用产品内省器插件,该通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。
6.如权利要求5所述的方法,其中所述为了由脚本进行编辑和配置而暴露的属性在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
7.如权利要求6所述的方法,其中所述实例的所述一个或多个输入和输出包括一个或多个套接字,并且其中所述脚本在该组件的实例的实例化期间被用于确定所述一个或多个套接字的主机、端口和其它信息。
8.如权利要求7所述的方法,其中所述脚本能够在再水化之前在不修改虚拟组件的情况下被编辑,以修改所述一个或多个套接字的主机、端口和其它信息。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在它上面的指令,当由一个或多个计算机读取和执行所述指令时,所述指令使所述一个或多个计算机执行以下步骤:
在一个或多个计算机处提供虚拟组件生成器部件,所述一个或多个计算机包括在所述一个或多个计算机上执行的云环境,所述虚拟组件生成器部件维护虚拟组件档案的仓库,其中每个虚拟组件能够包括能够被用于对组件的实例进行实例化的一个或多个虚拟机模板和元数据;以及
提供通用产品内省器插件,该通用产品内省器插件允许用户在虚拟组件的创建期间在内省时指定将要在随后的虚拟组件的再水化期间为了由脚本进行编辑和配置而暴露的一个或多个元数据属性。
10.如权利要求9所述的非暂态计算机可读存储介质,其中所述为了由脚本进行编辑和配置而暴露的属性在该组件的实例的实例化期间被用于定义该实例的一个或多个输入和输出。
11.如权利要求10所述的非暂态计算机可读存储介质,其中所述实例的所述一个或多个输入和输出包括一个或多个套接字,并且其中所述脚本在该组件的实例的实例化期间被用于确定所述一个或多个套接字的主机、端口和其它信息。
12.如权利要求11所述的非暂态计算机可读存储介质,其中所述脚本能够在再水化之前在不修改虚拟组件的情况下被编辑,以修改所述一个或多个套接字的主机、端口和其它信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361798720P | 2013-03-15 | 2013-03-15 | |
US61/798,720 | 2013-03-15 | ||
PCT/US2014/029441 WO2014144854A1 (en) | 2013-03-15 | 2014-03-14 | System and method for generic product wiring in a virtual assembly builder environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104885058A true CN104885058A (zh) | 2015-09-02 |
CN104885058B CN104885058B (zh) | 2018-06-26 |
Family
ID=50478979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480003523.XA Active CN104885058B (zh) | 2013-03-15 | 2014-03-14 | 在虚拟组件生成器环境中进行通用产品连线的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9690607B2 (zh) |
EP (1) | EP2972856B1 (zh) |
JP (2) | JP6550372B2 (zh) |
CN (1) | CN104885058B (zh) |
WO (1) | WO2014144854A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10225164B2 (en) * | 2012-09-07 | 2019-03-05 | Oracle International Corporation | System and method for providing a cloud computing environment |
US9569139B1 (en) * | 2013-09-26 | 2017-02-14 | EMC IP Holding Company LLC | Methods and apparatus for shared service provisioning |
US11455181B1 (en) * | 2014-09-19 | 2022-09-27 | Amazon Technologies, Inc. | Cross-network connector appliances |
CN108460276B (zh) * | 2016-12-09 | 2022-01-25 | 北京奇虎科技有限公司 | 一种安卓安装包的动态链接库so文件的处理方法和装置 |
US10915312B2 (en) * | 2019-07-02 | 2021-02-09 | Vmware, Inc. | Lifecycle management of virtual compute templates |
US20220308929A1 (en) * | 2021-03-24 | 2022-09-29 | International Business Machines Corporation | System and method for provisioning cloud computing resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470621A (zh) * | 2007-12-28 | 2009-07-01 | 埃森哲环球服务有限公司 | 虚拟机配置系统 |
US20090288084A1 (en) * | 2008-05-02 | 2009-11-19 | Skytap | Multitenant hosted virtual machine infrastructure |
US20110289479A1 (en) * | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Methods and systems for providing a user interface in a multi-tenant database environment |
CN102571906A (zh) * | 2010-10-20 | 2012-07-11 | 微软公司 | 打补丁期间机器的高可用性 |
CN102725733A (zh) * | 2009-12-31 | 2012-10-10 | 国际商业机器公司 | 在平台之间移植虚拟机映像 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002351911A1 (en) * | 2001-11-07 | 2003-05-19 | Harald Kuck | Providing isolation through process attachable virtual machines |
US7136868B2 (en) * | 2003-06-06 | 2006-11-14 | Microsoft Corporation | Database object script generation method and system |
US8464214B2 (en) * | 2005-09-15 | 2013-06-11 | Ca, Inc. | Apparatus, method and system for building software by composition |
US8291374B2 (en) | 2007-11-05 | 2012-10-16 | Cullum Owen H G | System and method for generating modified source code based on change-models |
US8776038B2 (en) * | 2008-08-07 | 2014-07-08 | Code Systems Corporation | Method and system for configuration of virtualized software applications |
US8635607B2 (en) * | 2011-08-30 | 2014-01-21 | Microsoft Corporation | Cloud-based build service |
US8434080B2 (en) | 2011-12-22 | 2013-04-30 | Software Ag Usa, Inc. | Distributed cloud application deployment systems and/or associated methods |
US9071587B2 (en) * | 2012-08-27 | 2015-06-30 | International Business Machines Corporation | Optimizing deployment of virtual machines by pre-generating a virtual machine's first-boot metadata by cloud controller |
US9170834B2 (en) * | 2012-10-31 | 2015-10-27 | Google Inc. | Metadata-based virtual machine configuration |
-
2014
- 2014-03-14 JP JP2016503096A patent/JP6550372B2/ja active Active
- 2014-03-14 US US14/213,370 patent/US9690607B2/en active Active
- 2014-03-14 WO PCT/US2014/029441 patent/WO2014144854A1/en active Application Filing
- 2014-03-14 EP EP14717048.4A patent/EP2972856B1/en active Active
- 2014-03-14 CN CN201480003523.XA patent/CN104885058B/zh active Active
-
2019
- 2019-02-26 JP JP2019032495A patent/JP2019109922A/ja not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470621A (zh) * | 2007-12-28 | 2009-07-01 | 埃森哲环球服务有限公司 | 虚拟机配置系统 |
US20090288084A1 (en) * | 2008-05-02 | 2009-11-19 | Skytap | Multitenant hosted virtual machine infrastructure |
CN102725733A (zh) * | 2009-12-31 | 2012-10-10 | 国际商业机器公司 | 在平台之间移植虚拟机映像 |
US20110289479A1 (en) * | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Methods and systems for providing a user interface in a multi-tenant database environment |
CN102571906A (zh) * | 2010-10-20 | 2012-07-11 | 微软公司 | 打补丁期间机器的高可用性 |
Also Published As
Publication number | Publication date |
---|---|
JP2019109922A (ja) | 2019-07-04 |
JP2016516248A (ja) | 2016-06-02 |
EP2972856B1 (en) | 2017-05-10 |
CN104885058B (zh) | 2018-06-26 |
WO2014144854A1 (en) | 2014-09-18 |
EP2972856A1 (en) | 2016-01-20 |
US20140282545A1 (en) | 2014-09-18 |
JP6550372B2 (ja) | 2019-07-24 |
US9690607B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10708135B1 (en) | Unified and automated installation, deployment, configuration, and management of software-defined storage assets | |
US9690566B2 (en) | System and method for virtual assembly patching in a cloud environment | |
CN104885058A (zh) | 在虚拟组件生成器环境中进行通用产品连线的系统和方法 | |
US9513938B2 (en) | Virtual appliance integration with cloud management software | |
US9280335B2 (en) | Semantically rich composable software image bundles | |
US10440138B2 (en) | Provisioning IaaS services | |
US9612803B2 (en) | System and method for use of a virtual assembly builder | |
CN102449599B (zh) | 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 | |
CN1959631B (zh) | 一种基于itron的应用软件自主装配系统及方法 | |
CN104142847B (zh) | 云计算环境下的无状态化虚拟机及其应用 | |
CA2998617A1 (en) | Visual content development | |
KR20160110460A (ko) | 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법 | |
US10061602B2 (en) | System and method for providing a virtual assembly builder for use with a cloud computing environment | |
US10951469B2 (en) | Consumption-based elastic deployment and reconfiguration of hyper-converged software-defined storage | |
Sampaio et al. | Uni4cloud: an approach based on open standards for deployment and management of multi-cloud applications | |
US20170048331A1 (en) | Platform runtime abstraction | |
US20160062754A1 (en) | Coordinating Application Deployment with a Platform Tier | |
KR20170023112A (ko) | 멀티테난트 어플리케이션 서버 환경에서의 포터블 파티션들을 위한 시스템 및 방법 | |
Quintero et al. | IBM software defined environment | |
CN114675934A (zh) | 联盟链中部署链码的方法和系统 | |
KR102252050B1 (ko) | 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 | |
CN114661421A (zh) | 联盟链中部署链码的方法和系统 | |
CN108304184A (zh) | 编译方法及装置 | |
KR20040079337A (ko) | 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리 | |
WO2024011627A1 (zh) | 大数据集群部署方法以及基于大数据集群的数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |