CN111190602A - 一种面向异构云资源的转换方法 - Google Patents
一种面向异构云资源的转换方法 Download PDFInfo
- Publication number
- CN111190602A CN111190602A CN201911396680.2A CN201911396680A CN111190602A CN 111190602 A CN111190602 A CN 111190602A CN 201911396680 A CN201911396680 A CN 201911396680A CN 111190602 A CN111190602 A CN 111190602A
- Authority
- CN
- China
- Prior art keywords
- attribute
- cloud resource
- state
- entity
- attributes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000013461 design Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000003032 molecular docking Methods 0.000 abstract description 2
- 238000007499 fusion processing Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向异构云资源的转换方法,包括构建对象模型和状态属性字典;分析云资源对象状态属性,根据分析的结果手动更新状态属性字典项;将云资源对象属性转换到对象模型的属性,使最后输出的对象模型中的状态属性与云资源对象状态属性一致,包括:对一致性属性进行融合处理、对独有属性进行保留处理、对独有属性进行保留处理、对状态属性结合状态属性字典进行匹配处理来得到对象模型,从而消除不同云资源对象的差异。本发明能够解决在云管理平台开发过程中遇到的多云对接时对象不一致导致的代码重复编写,不利于产品维护和二次开发的问题。
Description
技术领域
本发明涉及云计算领域,特别是涉及一种面向异构云资源的转换方法。
背景技术
多云管理平台随着市场上各种云厂商越来越多,需要管理的范围也越来越大。扩展被平台管理的云厂商时,因为没有一个统一的对象模型,所以就需要使用每个云厂商提供的对象模型编写对应的代码,管理多个云厂商就要写多种重复代码,导致开发效率底下、代码冗余、结构复杂、难维护等问题。
Jclouds是一个开源工具,它可帮开发者在云平台中重用Java开发代码。Jclouds支持多种云环境,调用云资源对外开放的API(Application Programming Interface,应用程序接口)即可操作它所管理的云资源。Jclouds封装了多个云环境的特性,为云管理产品和开发提供了便利性,不需要直接关注云环境,即可开发云平台。
但是Jclouds存在以下两点不足:一是云环境扩展困难。因为Jclouds的属性封装特性导致平台需要对接其他云环境时,需要jclouds首先支持,不利于扩展;二是Jclouds只是做了一个SDK的整合,使用单通道的方式提供多云服务。如果管理新的云环境的时候必须判断Jclouds是否封装了该环境,没有封装则无法提供该云环境的服务。而且Jclouds只是提供了一个SDK的封装,减少了多SDK的切换调用,无法减少实质性的业务代码。
发明内容
有鉴于此,本发明提出一种面向异构云资源的转换方法,用于解决在云管理平台开发过程中遇到的多云对接时对象不一致导致的代码重复编写,开发效率底下,代码冗余、结构复杂、难维护等问题。
为解决上述技术问题,本发明采用的一个技术方案是:提出一种面向异构云资源的转换方法,包括:
构建对象模型和状态属性字典;
所述对象模型包含多个源属性,所述源属性从实体态上分为三类:语法实体、存储实体和语义实体,所述源属性从设计态上分为四类:一致性属性、非一致性属性、独有属性和状态属性;所述语法实体、存储实体和语义实体用于表示所述对象模型;
所述状态属性字典记录了云管理平台中所有云资源对象的全部标识状态的属性集合;
分析云资源对象状态属性,根据分析的结果手动更新状态属性字典项;
将云资源对象属性转换到对象模型的属性,使最后输出的对象模型中的状态属性与云资源对象状态属性一致。
进一步的,所述一致性属性为不同云资源对象的属性的语法实体、存储实体和语义实体全部一致的属性;所述非一致性属性为不同云资源对象属性的语法实体、存储实体和语义实体中至少有一个是一致的属性;所述独有属性为不同云资源对象属性的实体态完全不一致时,部分云资源对象的属性;所述状态属性为云资源对象的标识状态的属性。
进一步的,所述云资源对象属性转换到对象模型的属性,包括:
对云资源对象的源属性分别做以下处理:
对云资源对象的一致性属性进行融合处理;
对非一致性属性进行转译处理;
对独有属性进行保留处理;
对状态属性结合状态属性字典进行匹配处理。
进一步的,所述对一致性属性进行融合处理,包括:当通过软件开发工具包(SDK,Software Development Kit)获取的云资源对象属性中存在和对象模型中的属性一致的,将SDK获取的云资源对象中对应属性的存储实体的值取出,放到对象模型的一致性属性对应的存储实体中。
进一步的,所述对非一致性属性进行转译处理,包括:遇到非一致性属性时,根据语义实体进行分析,根据所述非一致性属性的语义来分析所述非一致性属性代表的实质性意义,然后匹配存储到对象模型中描述对应语义的属性中。
进一步的,所述对独有属性进行保留处理,包括:在业务中如果需要所述独有属性的属性值,提取变量然后通过匹配键Key的方式来获得对应的值Value。
进一步的,所述对状态属性结合状态属性字典进行匹配处理,包括:从云资源对象中获取云资源对象属性的值,在所述状态属性字典里进行遍历查找,如果所述状态属性字典存在,则将该值存放到“Status”对应的值中,如果不存在,将该值替换成“未知”,然后再存放到“Status”对应的值中;所述“Status”为定义的语法实体,用来存放状态值。
本发明的有益效果在于:提出了一种面向异构云资源的转换方法,有效的提高了工程师的工作效率,从原来的为每个云厂商开发一套代码,变成为多个云厂商开发一套共用代码,提高了产品迭代速度,降低了软件开发的人工成本和时间成本,为产品快速占领市场提供了很大的技术力量,同时减少了人力成本增加了企业的盈利。
附图说明
图1是本发明一种面向异构云资源的转换方法的对象模型的结构示意图;
图2是本发明一种面向异构云资源的转换方法的一实施例的结构图;
图3是本发明一种面向异构云资源的转换方法的另一实施例的用例图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1、2所示出的一种面向异构云资源的转换方法的一种具体实施方式如下:
对象模型包含很多源属性,源属性从实体态上一般分为三类:语法实体、存储实体和语义实体;
源属性从设计态上一般分为四类:一致性属性、非一致性属性、独有属性和状态属性。
其中语义实体为描述性实体,不存在对象模型中,但是会以文本方式存在,作为对象分析的重要参考。
其中,所述一致性属性为不同云资源对象的属性的语法实体、存储实体和语义实体全部一致的属性;所述非一致性属性为不同云资源对象属性的语法实体、存储实体和语义实体中至少有一个是一致的属性;所述独有属性为不同云资源对象属性的实体态完全不一致时,部分云资源对象的属性;所述状态属性为云资源对象的标识状态的属性。
状态属性字典,是记录了云管理平台中所有云资源的全部标识状态的特殊属性集合。通过分析云资源状态属性来更新状态属性字典项,保证最后输出的对象模型中的状态属性与云资源状态属性的一致性。
为了保证云资源对象属性的完整性和准确性,本发明设定了从云资源对象转换到对象模型的属性转换方法,即对云资源对象的源属性分别做如下处理,以Cloudstack对象和Openstack对象转换为对象模型为例,并参考图2:
对一致性属性进行融合处理:当通过SDK获取的云资源对象属性中,有和对象模型中的属性一致的,我们只需要将SDK获取的云资源对象中对应属性的存储实体的值取出,放到对象模型的一致性属性对应的存储实体中。
例如,对象模型定义的语法实体为InstanceId、存储实体为String类型、语义实体“实例ID”。针对这样的属性,只需将Cloudstack对象和Openstack对象中的存储实体取出,放到对象模型对应属性的存储实体中即可。
对非一致性属性进行转译处理:遇到非一致性属性时,需要根据语义实体进行分析,根据这个属性的语义来分析这个属性代表的实质性意义,然后匹配存储到对象模型中描述该语义的属性中。
如图2所示,一种情况是非一致性属性的语法实体不一致,例如Cloudstack对象的非一致性属性CreatedTime的语义实体描述的是创建时间(TZ),与对象模型中的不一致,将它转存到对象模型非一致性属性的CreationTime中,Cloudstack对象的非一致性属性CreatedTime的存储实体值则直接放到对象模型中的对应属性中即可。而Openstack对象的非一致性属性CreationTime的语义实体描述的是创建时间(TZ),与对象模型中的一致,直接云资源对象中对应属性的存储实体的值取出,放到对象模型的一致性属性对应的存储实体中;还有一个情况就是语义实体描述方式不同,但是表述一样意思的也会进行同样的转译处理。例如语义实体可能是“序列号”,也可能是“唯一标识符”,两者都是描述唯一标识,可将它转存到对象模型非一致性属性中描述唯一标识UUID中。
对独有属性进行保留处理:独有属性会以键值对(Key-Value)的形式存储在对象模型中的一个变量属性中。在业务中如果需要这个属性值,只需提取变量然后通过匹配Key的方式来获得对应的Value。云资源可以没有独有属性。
参考图2,Openstack对象中的独有属性是以键值对的形式存储的,进行转换时,通过提取Key:HostName,然后通过匹配Key的方式来获得对应的Value:iZ94t3s0j***,从而使得Openstack对象转换之后的对象模型中也有独有属性HostName。由图2可知,Cloudstack对象没有独有属性,转换之后的对象模型也没有独有属性。
对状态属性结合状态属性字典进行匹配处理:状态属性是一种比较常见且特殊的属性,作为一个展示云资源对象状态的表示性属性,它是单向变更的,只需从SDK中获取该对象当前的状态然后更新本地库中的状态即可。本发明定义了“Status”这个语法实体来专门存放状态值。状态属性作为一个全局统一的展示属性,使用字典的方式将其值制作成枚举类,当从一个SDK中获取对象属性的值时,需要在状态属性字典里进行遍历查找,如果查找成功则将这个值存放到“Status”对应的值中,如果查找失败则将“未知”存放到“Status”对应的值中。
参考图2,云资源对象中的状态属性转化需要结合态属性字典进行匹配处理,本实施例使用的态属性字典如下:
键 | 值 | 字段语义 |
PENDING | String | 表示创建中 |
LAUNCH FAILED | String | 表示创建失败 |
RUNNING | String | 表示运行中 |
StopPED | String | 表示关机 |
STARTING | String | 表示开机中 |
StopPING | String | 表示关机中 |
REBOOTING | String | 表示重启中 |
SHUTDOWN | String | 表示停止待销毁 |
TERMINATING | String | 表示销毁中 |
实施例二
图3所示出的是一种面向异构云资源的转换方法的另一种具体实施方式,步骤如下:
一个云资源对象,转换成一个对象模型的流程如下:
S301,通过SDK获得云资源对象的源属性;
所述云资源对象的源属性可分为一致性属性、非一致性属性、独有属性、状态属性。
S302,对云资源对象的源属性进行属性转化;
S3021,对一致性属性进行融合处理;
S3022,对非一致性属性进行转译处理;
S3023,对独有属性进行保留处理;
S3024,对状态属性结合状态属性字典进行匹配处理;
S303,统一输出对象模型到业务层。
在实际业务场景中,本发明会对平台可管理的各类的云资源设立对应的对象模型,并在产品的开发过程中不断的完善其结构和使用方式,平台可管理的对象模型会成为产品的心脏。当有新的云厂商添加进来的时候,只需要将对应的SDK放入到库中,然后编写相关的转化规则,将云资源对象的原属性和对象模型中的目标属性对应起来,使用设置或者自定义的转化方法即可,平台会通过扫描的方式识别规则判断其云厂商类型,在实际的业务处理中按照规则进行对象转化。如果需要删除一个云厂商,只需将其配置规则从文件中删除即可,不需要做其他操作。
使用这种方式可以大大减少代码的编写,开发人员只需要分析对应云厂商的产品属性和使用方式,编写规则文件即可。
以上所述仅为本发明的实施例、并非因此限制本发明的专利范围、凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换、或直接或间接运用在其他相关的技术领域、均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种面向异构云资源的转换方法,其特征在于,
构建对象模型和状态属性字典;
所述对象模型包含多个源属性,所述源属性从实体态上分为三类:语法实体、存储实体和语义实体,所述源属性从设计态上分为四类:一致性属性、非一致性属性、独有属性和状态属性;所述语法实体、存储实体和语义实体用于表示所述对象模型;
所述状态属性字典记录了云管理平台中所有云资源对象的全部标识状态的属性集合;
分析云资源对象状态属性,根据分析的结果更新状态属性字典项;
将云资源对象属性转换到对象模型的属性,使最后输出的对象模型中的状态属性与云资源对象状态属性一致。
2.如权利要求1所述的一种面向异构云资源的转换方法,其特征在于,所述一致性属性为不同云资源对象的属性的语法实体、存储实体和语义实体全部一致的属性;所述非一致性属性为不同云资源对象属性的语法实体、存储实体和语义实体中至少有一个是一致的属性;所述独有属性为不同云资源对象属性的实体态完全不一致,部分云资源对象才有的属性;所述状态属性为云资源对象的标识状态的属性。
3.如权利要求2所述的一种面向异构云资源的转换方法,其特征在于,所述云资源对象属性转换到对象模型的属性,包括:
对云资源对象的源属性分别做以下处理:
对云资源对象的一致性属性进行融合处理;
对非一致性属性进行转译处理;
对独有属性进行保留处理;
对状态属性结合状态属性字典进行匹配处理。
4.如权利要求3所述的一种面向异构云资源的转换方法,其特征在于,所述对一致性属性进行融合处理,包括:当通过软件开发工具包(SDK,Software Development Kit)获取的云资源对象属性中存在和对象模型中的属性一致的,将SDK获取的云资源对象中对应属性的存储实体的值取出,放到对象模型的一致性属性对应的存储实体中。
5.如权利要求3所述的一种面向异构云资源的转换方法,其特征在于,所述对非一致性属性进行转译处理,包括:遇到非一致性属性时,根据语义实体进行分析,根据所述非一致性属性的语义来分析所述非一致性属性代表的实质性意义,然后匹配存储到对象模型中描述对应语义的属性中。
6.如权利要求3所述的一种面向异构云资源的转换方法,其特征在于,所述对独有属性进行保留处理,包括:在业务中如果需要所述独有属性的属性值,提取变量然后通过匹配键Key的方式来获得对应的值Value。
7.如权利要求3所述的一种面向异构云资源的转换方法,其特征在于,所述对状态属性结合状态属性字典进行匹配处理,包括:从云资源对象中获取云资源对象属性的值,在所述状态属性字典里进行遍历查找,如果所述状态属性字典项存在,则将该值存放到“Status”对应的值中,如果不存在,将该值替换成“未知”,然后再存放到“Status”对应的值中;所述“Status”为定义的语法实体,用来存放状态值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396680.2A CN111190602A (zh) | 2019-12-30 | 2019-12-30 | 一种面向异构云资源的转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396680.2A CN111190602A (zh) | 2019-12-30 | 2019-12-30 | 一种面向异构云资源的转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111190602A true CN111190602A (zh) | 2020-05-22 |
Family
ID=70707774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911396680.2A Pending CN111190602A (zh) | 2019-12-30 | 2019-12-30 | 一种面向异构云资源的转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190602A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760184A (zh) * | 2012-06-12 | 2012-10-31 | 中国电力科学研究院 | 一种异构电力应用系统的信息交互方法 |
CN103092670A (zh) * | 2011-11-02 | 2013-05-08 | 佳都新太科技股份有限公司 | 一种云计算环境下跨平台的虚拟计算资源管理方法 |
CN105808753A (zh) * | 2016-03-14 | 2016-07-27 | 北京师范大学 | 一种区域性数字资源系统 |
CN105939375A (zh) * | 2016-04-13 | 2016-09-14 | 福州大学 | 基于模型的PaaS混合云构造方法 |
CN106708993A (zh) * | 2016-12-16 | 2017-05-24 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架实现方法 |
CN107357933A (zh) * | 2017-08-04 | 2017-11-17 | 刘应波 | 一种用于多源异构科技信息资源的标签描述方法和装置 |
WO2018086580A1 (zh) * | 2016-11-14 | 2018-05-17 | 北京大学(天津滨海)新一代信息技术研究院 | 一种可扩展的异构云平台适配方法及其系统 |
CN110489395A (zh) * | 2019-07-27 | 2019-11-22 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 自动获取多源异构数据知识的方法 |
-
2019
- 2019-12-30 CN CN201911396680.2A patent/CN111190602A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092670A (zh) * | 2011-11-02 | 2013-05-08 | 佳都新太科技股份有限公司 | 一种云计算环境下跨平台的虚拟计算资源管理方法 |
CN102760184A (zh) * | 2012-06-12 | 2012-10-31 | 中国电力科学研究院 | 一种异构电力应用系统的信息交互方法 |
CN105808753A (zh) * | 2016-03-14 | 2016-07-27 | 北京师范大学 | 一种区域性数字资源系统 |
CN105939375A (zh) * | 2016-04-13 | 2016-09-14 | 福州大学 | 基于模型的PaaS混合云构造方法 |
WO2018086580A1 (zh) * | 2016-11-14 | 2018-05-17 | 北京大学(天津滨海)新一代信息技术研究院 | 一种可扩展的异构云平台适配方法及其系统 |
CN106708993A (zh) * | 2016-12-16 | 2017-05-24 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架实现方法 |
CN107357933A (zh) * | 2017-08-04 | 2017-11-17 | 刘应波 | 一种用于多源异构科技信息资源的标签描述方法和装置 |
CN110489395A (zh) * | 2019-07-27 | 2019-11-22 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 自动获取多源异构数据知识的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US7490098B2 (en) | Apparatus, system, and method for processing hierarchical data in disparate data repositories | |
US8255883B2 (en) | Translating late bound LINQ expressions into database queries | |
CN111399853A (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
US20120317543A1 (en) | Computer aided visualization of a business object model lifecycle | |
US20170220613A1 (en) | Systems and methods for database orientation transformation | |
CN111897570A (zh) | 一种基于Maven插件的多依赖项文件提取方法及装置 | |
US11301221B2 (en) | Rapid code compiling system | |
US9892029B2 (en) | Apparatus and method for expanding the scope of systems management applications by runtime independence | |
US20140310688A1 (en) | Using stack data and source code to rank program changes | |
US20070220478A1 (en) | Connecting alternative development environment to interpretive runtime engine | |
CN115794254A (zh) | 基于云计算的组件研发管理平台和方法 | |
CN114968192A (zh) | 一种项目创建方法、装置、计算机设备及存储介质 | |
CN117632372A (zh) | 一种基于Helm实现的持续部署管理方法 | |
CN111352631A (zh) | 一种接口兼容性检测方法及装置 | |
Zotov | Software platform for next-generation intelligent computer systems | |
CN115794858A (zh) | 查询语句处理方法、装置、设备及存储介质 | |
CN111190602A (zh) | 一种面向异构云资源的转换方法 | |
US20220374398A1 (en) | Object Creation from Schema for Event Streaming Platform | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
US20240103853A1 (en) | Code maintenance system | |
KR101506656B1 (ko) | 애플리케이션 품질 관리를 위한 시스템 및 그 방법 | |
WO2008130769A2 (en) | Runtime translation from late-bound to early-bound expression |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200522 |
|
RJ01 | Rejection of invention patent application after publication |