CN110489129B - 区块链混合云中的公有云产品包生成方法及服务器 - Google Patents
区块链混合云中的公有云产品包生成方法及服务器 Download PDFInfo
- Publication number
- CN110489129B CN110489129B CN201910795634.3A CN201910795634A CN110489129B CN 110489129 B CN110489129 B CN 110489129B CN 201910795634 A CN201910795634 A CN 201910795634A CN 110489129 B CN110489129 B CN 110489129B
- Authority
- CN
- China
- Prior art keywords
- public cloud
- code
- package
- interface
- blockchain
- 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
Links
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/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种区块链混合云中的公有云产品包生成方法及服务器,将区块链网络部署在私有云上,而服务平台可以部署在多种公有云上,在打通私有云和公有云之间的网路基础上,面对不同的公有云服务提供商,输出对应平台的区块链服务平台产品,同时针对不同公有云服务提供商,通过自动检测,自动打包程序输出不同的产品,可减少开发过程中代码的修改率,减少产品对于部署平台的依赖。
Description
技术领域
本发明涉及区块链技术领域,更具体的,涉及一种区块链混合云中的公有云产品包生成方法及服务器。
背景技术
私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了灵活部署,省钱,安全的目的。
发明内容
有鉴于此,本申请提供一种区块链混合云中的公有云产品包生成方法,所述区块链网络部署在私有云上,所述公有云产品包生成方法包括:
获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
根据区块链接口以及所述映射关系生成代理接口;
根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本并且可执行的公有云产品包。
在某些实施例中,所述获取区块链业务逻辑代码、公有云名称标签、公有云版本以及区块链接口与公有云接口的映射关系,包括:
从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;
从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本以及区块链接口与公有云接口的映射关系。
在某些实施例中,所述公有云产品包生成方法还包括:
对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
在某些实施例中,所述公有云产品包生成方法还包括:
通过正则表达式判断第一打包文件和第二打包文件中的所述区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则;
所述对所述第一打包文件和所述第二打包文件进行拆包处理,包括:
对符合预设规则的信息进行拆包处理。
在某些实施例中,所述根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本并且可执行的公有云产品包,包括:
根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;
将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;
根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;
根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;
根据所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包生成所述公有云产品包。
在某些实施例中,所述根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本并且可执行的公有云产品包,还包括:
根据区块链底层代码标注和公有云接口信息生成公有云代理接口层,进而屏蔽公有云容器、容器内核版本以及操作系统内核版本和依赖库的不同带来的差异。
在某些实施例中,所述根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包,包括:
使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
在某些实施例中,所述根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包,包括:
通过go build命令编译公有云平台信息、程序源码和程序依赖库生成可执行文件;
将所述可执行文件压缩为公有云产品包底层代码压缩包。
本申请还提供一种区块链混合云中的代码打包服务器,包括:
获取模块,获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
代理接口生成模块,根据区块链接口以及所述映射关系生成代理接口;
编译模块,根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本的可执行的公有云产品包。
在某些实施例中,所述获取模块包括:
第一获取单元,从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;
第二获取单元,从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
拆包单元,对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本以及区块链接口与公有云接口的映射关系。
在某些实施例中,所述代码打包服务器还包括:
合法性筛选模块,对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
在某些实施例中,所述代码打包服务器还包括:
判断模块,通过正则表达式判断第一打包文件和第二打包文件中的所述区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则;
所述拆包单元对符合预设规则的信息进行拆包处理。
在某些实施例中,所述编译模块,包括:
程序依赖库选择单元,根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;
底层程序源码整合单元,将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;
公有云产品包底层代码压缩包形成单元,根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;
公有云产品包业务逻辑压缩包生成单元,根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;
公有云产品包生成单元,将所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包打包压缩生成所述公有云产品包。
在某些实施例中,所述编译模块,还包括:
公有云代理接口层生成单元,根据区块链底层代码标注和公有云接口信息生成公有云代理接口层,进而屏蔽公有云容器、容器内核版本以及操作系统内核版本和依赖库的不同带来的差异。
在某些实施例中,所述公有云产品包业务逻辑压缩包生成单元使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
在某些实施例中,所述公有云产品包底层代码压缩包形成单元,包括:
可执行文件生成单元,通过go build命令编译公有云平台信息、程序源码和依赖库生成可执行文件;
可执行文件压缩单元,将所述可执行文件压缩为公有云产品包底层代码压缩包。
本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的方法的步骤。
本发明具有如下有益效果:
本发明提供的一种区块链混合云中的公有云产品包生成方法及服务器,将区块链网络部署在私有云上,而服务平台可以部署在多种公有云上,在打通私有云和公有云之间的网路基础上,面对不同的公有云服务提供商,输出对应平台的区块链服务平台产品,同时针对不同公有云服务提供商,通过自动检测,自动打包程序输出不同的产品,可减少开发过程中代码的修改率,减少产品对于部署平台的依赖。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出现有技术中混合云部署的结构示意图。
图2示出本申请实施例中区块链服务平台混合云打包系统结构示意图。
图3示出本申请区块链平台混合云部署方法的工作流程图。
图4示出本申请实时例中一种区块链混合云中的公有云产品包生成方法流程示意图。
图5示出本申请实时例中一种代码打包服务器的结构示意图。
图6示出适于用来实现本申请实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了一种混合云部署系统,其具体包括私有云和公有云,私有云中部署有某企业的内部网络,公有云上部署有一个服务商提供的产品,该方案只能够将特定的私有云与共有云对接,当需要不同云服务商的产品时,需要另外开发一套私有云与对应的公有云的对接软件。
本申请为避免不同的公有云平台接口不一样给开发者造成影响,特提出一种减少代码改动,自动适配不同公有云平台的产品打包方法,通过公有云适配产品打包系统,对应用部署的公有云平台进行打包,其核心思想是在打通私有云和公有云之间的网路基础上,面对不同的公有云服务提供商,输出对应平台的区块链服务平台产品。
图2为区块链服务平台混合云打包系统结构示意图,其中区块链服务平台混合云打包系统包含业务功能代码管理服务器、公有云信息据库服务器、代码打包服务器和产品输出管理服务器,其中业务功能代码管理服务器负责存储平台的业务逻辑代码,公有云接口数据库群负责存储公有云的信息,代码打包服务器负责区块链服务平台产品输出功能,产品输出管理服务器负责维护区块链服务平台打包信息,表1示出了各服务器的功能表。
表1代码管理系统服务器功能表
服务器名称 | 服务器功能 |
业务功能代码管理服务器 | 存储平台的业务逻辑代码 |
公有云信息库服务器 | 存储公有云的信息 |
代码打包服务器 | 输出区块链服务平台产品 |
产品输出管理服务器 | 维护区块链服务平台打包信息 |
产品输出管理服务器可以维护输出公有云产品的功能,实时输入所需要打包的区块链代码库,输出物面向的公有云平台版本号,并将输入的信息转发给代码打包服务器。
业务功能代码管理服务器是保存区块链开发人员根据业务需求开发的代码管理服务器。业务功能代码管理服务器可提供开发人员代码下载,代码提交,代码回退等代码维护功能,对特定时间点的业务逻辑代码版本提供标签功能,以便于查找和获取代码版本。同时,业务功能代码管理服务器提供获取业务代码服务。代码打包服务器通过区块链平台业务逻辑代码标签,访问授权的非对称加密密钥对业务功能代码管理服务器请求,获取相应的区块链业务逻辑代码。
公有云信息库服务器是保存公有云信息的服务器。公有云信息库服务器提供自动公有云信息维护和手动公有云信息维护功能,并提供可根据公有云id和公有云版本号获取对应公有云平台信息和公有云接口与区块链平台接口映射关系的服务。代码打包服务器通过公有云id,公有云版本号,访问授权的非对称加密密钥对公有云信息库服务器请求,获取相应的公有云信息和公有云接口与区块链平台接口映射关系。
代码打包服务器实时获取产品输出管理服务器输出信息,包括并不限于打包的区块链代码库,输出物面向的公有云平台版本,对获取到的输出信息进行识别操作,并将识别结果联合业务功能代码管理服务器,公有云接口数据库服务器进行版本打包操作。代码打包服务器根据预设的数据格式与业务功能代码管理服务器,公有云接口数据库服务器进行交互,确保双方数据的可靠性及交互的有效性。
代码打包服务器与产品输出管理服务器进行联动,接收来自产品输出管理服务器的消息。代码打包服务器识别需要获取打包内容,根据识别结果获取到公有云信息和业务代码,然后进行版本打包。
代码打包服务器的公有云支持范围为公有云接口数据库服务器存储的记录的范围。公有云接口数据库服务器会有自动和手动更新公有云信息的功能,确保从代码打包服务器的区块链平台产品能够适应主要的公有云服务提供商。
图4示出了代码打包服务器执行的一种区块链混合云中的公有云产品包生成方法,如图4所示,具体包括:
S1:获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
S2:根据区块链接口以及所述映射关系生成代理接口;
S3:根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本并且可执行的公有云产品包。
可以理解,步骤S1中,区块链业务逻辑代码由业务功能代码管理服务器提供,公有云名称标签和公有云版本号由公有云信息库服务器提供,区块链接口与公有云接口的映射关系由公有云信息库服务器提供。
本申请中提供的区块链混合云中的公有云产品包生成方法,将区块链网络部署在私有云上,而服务平台可以部署在多种公有云上,在打通私有云和公有云之间的网路基础上,面对不同的公有云服务提供商,输出对应平台的区块链服务平台产品,同时针对不同公有云服务提供商,通过自动检测,自动打包程序输出不同的产品,可减少开发过程中代码的修改率,减少产品对于部署平台的依赖。
在一些实施例中,步骤S1具体包括:
S11:从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;
S12:从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
S13:对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本以及区块链接口与公有云接口的映射关系。
在一些实施例中,可以先将接收到的打包数据格式标准化,便于后续代码打包服务器识别,具体格式见表2;区块链平台业务逻辑标签字段写入区块链平台业务逻辑代码的标签信息,便于后续获取区块链平台业务逻辑代码;部署的公有云平台id字段为公有云平台在公有云接口数据库服务器的唯一id;部署的公有云平台版本字段为部署在公有云平台的版本;请求时间为产品输出管理服务器发出打包信息的请求时间。
在某些实施例中,可以生成打包信息编号,根据目前接收的打包信息生成编号,处理实时的打包信息消息队列,按照编号进行打包信息识别,并根据先进先出机制保证打包信息的有序性。
表2消息接收处理格式
在某些实施例中,上述方法还包括:
对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
例如,可以采用技术手段从传入信息本身进行合法性筛选,对非法打包信息进行拦截,从而提升系统打包效率。若判别待检测打包信息存在问题,则根据网络链接将检查问题情况返回至产品输出管理服务器进行处理;若判别待打包信息不存在问题,则进行代码授权与获取。
在一些实施例中,上述方法还包括:
通过正则表达式判断第一打包文件和第二打包文件中的所述区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则。
该实施例中,步骤S13包括:对符合预设规则的信息进行拆包处理。
通过负责通过正则表达式判断打包信息字段的合法性,即判断区块链平台业务逻辑标签部分、部署的公有云平台id部分、部署的公有云平台版本部分是否符合代码标签和云平台的命名规则,若打包信息非法,则将该打包信息直接丢弃,根据网络链接将检查问题情况返回至产品输出管理服务器;以减少不合法打包信息占用代码打包服务器资源,提高打包效率;若打包信息合法则存储。
在一些实施例中,步骤S3具体包括:
S31:根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;
S32:将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;
S33:根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;
S34:根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;
S35:根据所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包生成所述公有云产品包。
其中,步骤S33具体包括:
通过go build命令编译公有云平台信息、程序源码和程序依赖库生成可执行文件;
将所述可执行文件压缩为公有云产品包底层代码压缩包。
步骤S34具体包括:使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
在一些实施例中,上述数据存储是利用关系型数据库,采用c3p0连接池方式连接,通过使用hibernate框架对打包信息进行存储。除了记录打包信息的内容,一并记录打包信息记录生成时间和预留打包成功时间;若存储操作不成功,记录本次打包信息记录失败,根据网络链接将打包失败情况反馈至产品输出管理服务器;若记录成功则记录本次打包信息记录入库成功。
在一些实施例中,通过区块链平台业务逻辑标签,访问授权的非对称加密密钥对业务功能代码管理服务器获取相应的业务逻辑代码。若获取业务逻辑代码不成功通过,则记录失败结果。若获取业务逻辑代码成功,则调用新增一个打包信息包并将获取到的业务逻辑代码缓存至打包信息包中。
在一些实施例中,可通过部署的公有云平台id,部署的公有云平台版本号,访问授权的非对称加密密钥对公有云接口数据库服务器获取相应的公有云接口信息及公有云接口与区块链平台接口映射关系。若获取公有云版本信息和映射关系不成功,则记录失败结果。若获取公有云版本信息和映射关系成功,则打包相同的打包信息包并将获取到的公有云版本信息和映射关系成功缓存至打包信息包中。打包信息报组装完成后,进行代码打包并输出产品。
在某些实施例中,将打包信息包拆包,并将拆包后的业务逻辑代码进行扫描,标注出需要编译时需要使用映射关系的接口,如表3所示出的打包处理格式。
表3打包处理格式
在一些实施例中,表4示出公有云接口与区块链平台接口映射关系,对标注过的接口,根据公有云接口与区块链平台接口映射关系,用代码自动生成出接口代理层,进而屏蔽公有云容器、容器内核版本以及操作系统内核版本和依赖库的不同带来的差异。该实施例中,上述步骤S3还包括:根据区块链底层代码标注和公有云接口信息生成公有云代理接口层。
表4公有云接口与区块链平台接口映射关系
将生成好的接口代理层代码和业务逻辑代码一起编译为可执行文件,并根据拆包后的公有云平台信息,打包为该平台部署使用的产品包。
公有云信息库服务器负责与代码打包服务器的数据对接,代码打包服务器的公有云信息和公有云接口与区块链平台接口映射关系查询请求需接入公有云接口数据库服务器。以及将接收到的请求数据格式标准化,便于后续公有云接口数据库服务器识别,具体格式见表5;公有云平台id字段为公有云平台在公有云接口数据库服务器的唯一id;公有云平台版本字段为部署在公有云平台的版本;请求服务器的令牌是由内容发布给代码打包服务器的服务器证书,用与向产品输出管理服务器请求时使用;请求服务器的公钥用于解密请求服务器的令牌;发送时间为产品输出管理服务器发出查询公有云信息的请求时间。
在一些实施例中,可生成请求消息信息编号,根据目前接收的请求消息生成编号,处理实时的请求消息放入消息队列,按照编号进行打包信息识别,并根据先进先出机制保证请求信息的有序性。
表5查询公有云信息请求处理格式
可以对传入公有云接口数据库服务器进行初步识别,主要是采用技术手段从传入信息本身进行合法性筛选,对非法打包信息进行拦截,从而提升系统查询效率。若判别待检测请求信息存在问题,则根据网络链接将检查问题情况返回至代码打包服务器进行处理;若判别待请求信息不存在问题,则进行公有云信息查询。
在一些实施例中,数据存储可以采用原子操作模式对数据持久化操作。例如用k-v模式存储,以文本方式实现数据持久化。
在一些实施例中,通过手动更新导入需要的公有云信息及公有云版本号。通过大数据方法分析,得出互联网上主流的公有云平台。采用爬虫方式将主流的公有云平台信息抓取回来,并能定时检查主流平台是否有更新版本,及时抓取公有云平台最新版本的信息,并持久化。
下面示出了混合云打包系统工作流程。
以打包输出公有云A区块链服务平台为例,图3为区块链平台混合云部署方法的工作流程图:
步骤601接收产品输出管理服务器发送的打包信息,并进行标准化处理,生成代码打包服务器的标准化数据格式;
步骤602生成打包编号并根据打包编号将打包信息进行排列,采用先进先出机制提供待识别打包信息;
步骤603采用正则表达式按字段判断打包信息的合法性,即判断打包信息的区块链平台业务逻辑标签、部署的公有云平台id和部署的公有云平台版本是否符合内部的的合法性规则;
区块链平台业务逻辑标签部分可采用如下正则表达式:
”[0-9]{8}”;
部署的公有云平台id部分可采用如下正则表达式:
"F-[A-Z]{3,}_1.[0-9]{2}.[0-9]{2}.[0-9]+_[0-9]{8}";
部署的公有云平台版本部分可采用如下正则表达式:
"[0-9]{1,}.[0-9]{2}.[0-9]{2}.[0-9]{10}";
步骤604利用关系型数据库,采用c3p0连接池方式连接,通过使用hibernate对打包信息进行存储。除了记录打包信息的内容,一并记录打包信息记录生成时间和预留打包成功时间。
步骤605将识别成功的信息拆包,为获取取业务逻辑代码和获取公有云平台信息提供数据支持;
步骤606根据拆包信息,向公有云信息库服务器获取公有云信息和公有云接口与区块链平台接口映射关系;
步骤607根据拆包信息,向业务功能代码管理服务器获取区块链服务平台业务逻辑代码;
步骤608根据公有云接口与区块链平台接口映射关系映射业务逻辑层接口与公有云A的接口,编译映射后的全量代码,根据公有云A的可部署文件格式,生成产品包,采用先进先出机制输出打包结果。
混合云打包系统判别流程
当使用者通过产品输出管理服务器发出打包请求时,代码打包服务器与产品输出管理服务器进行数据交互,代码打包服务器将对打包信息判别并将判别结果实时反馈给产品输出管理服务器的使用者,当使用者点击访问发送合法打包请求时,代码打包服务器可对使用者发出的请求自动打包,将区块链服务平台代码自适应公有云平台,最终输出对应平台的产品包。
基于上述实施例,可以知晓,本申请具有部署能力提高——针对不同公有云服务提供商,通过自动检测,自动打包程序输出不同的产品,可减少开发过程中代码的修改率,减少产品对于部署平台的依赖。对于存量的公有云平台,通过数据库保存的公有云资料,快速自动输出对应区块链服务平台产品。对于新增的公有云平台,通过公有云爬虫工具或者手工导入资料,也可以在导入资料后迅速输出对应的区块链服务平台产品。整个产品输出过程快速,无需改代码,使区块链服务平台混合云部署能力大大提高。同时增强了平台对互联网风险防护能力——利用部署在不同公有云上的架构,实现了区块链服务平台多活的灾备部署。当其中一个公有云平台上的服务停止了,其他公有云平台可通过访问私有云的备份数据继续提供区块链服务。当停止服务的公有云恢复后,私有云将期间发生的变化同步至公有云上。用户在当中是无感的,因此增强平台对互联网风险防护能力。
图5示出了在虚拟装置层面,本申请提供的一种区块链混合云中的代码打包服务器,包括:获取模块1,获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;代理接口生成模块2,根据区块链接口以及所述映射关系生成代理接口;编译模块3,根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本的可执行的公有云产品包。
在某些实施例中,所述获取模块包括:第一获取单元,从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;第二获取单元,从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;拆包单元,对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本以及区块链接口与公有云接口的映射关系。
在某些实施例中,所述代码打包服务器还包括:合法性筛选模块,对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
在某些实施例中,所述代码打包服务器还包括:判断模块,通过正则表达式判断第一打包文件和第二打包文件中的所述区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则;所述拆包单元对符合预设规则的信息进行拆包处理。
在某些实施例中,所述编译模块,包括:程序依赖库选择单元,根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;底层程序源码整合单元,将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;公有云产品包底层代码压缩包形成单元,根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;公有云产品包业务逻辑压缩包生成单元,根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;公有云产品包生成单元,将所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包打包压缩生成所述公有云产品包。
在某些实施例中,所述编译模块,还包括:公有云代理接口层生成单元,根据区块链底层代码标注和公有云接口信息生成公有云代理接口层。
在某些实施例中,所述公有云产品包业务逻辑压缩包生成单元使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
在某些实施例中,所述公有云产品包底层代码压缩包形成单元,包括:可执行文件生成单元,通过go build命令编译公有云平台信息、程序源码和依赖库生成可执行文件;可执行文件压缩单元,将所述可执行文件压缩为公有云产品包底层代码压缩包。
可以理解,本发明提供的一种区块链混合云中代码打包服务器,将区块链网络部署在私有云上,而服务平台可以部署在多种公有云上,在打通私有云和公有云之间的网路基础上,面对不同的公有云服务提供商,输出对应平台的区块链服务平台产品,同时针对不同公有云服务提供商,通过自动检测,自动打包程序输出不同的产品,可减少开发过程中代码的修改率,减少产品对于部署平台的依赖。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图6,其示出了适于用来实现本申请实施例的计算机设备的结构示意图。
如图6所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (16)
1.一种区块链混合云中的公有云产品包生成方法,其特征在于,区块链网络部署在私有云上,所述公有云产品包生成方法包括:
获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
根据区块链接口以及所述映射关系生成代理接口;
根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本号并且可执行的公有云产品包;
所述根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本号并且可执行的公有云产品包,包括:
根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;
将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;
根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;
根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;
根据所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包生成所述公有云产品包。
2.根据权利要求1所述的公有云产品包生成方法,其特征在于,所述获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系,包括:
从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;
从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系。
3.根据权利要求2所述的公有云产品包生成方法,其特征在于,所述公有云产品包生成方法还包括:
对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
4.根据权利要求2所述的公有云产品包生成方法,其特征在于,所述公有云产品包生成方法还包括:
通过正则表达式判断第一打包文件和第二打包文件中的区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则;
所述对所述第一打包文件和所述第二打包文件进行拆包处理,包括:
对符合预设规则的信息进行拆包处理。
5.根据权利要求1所述的公有云产品包生成方法,其特征在于,所述根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本号并且可执行的公有云产品包,还包括:
根据区块链底层代码标注和公有云接口信息生成公有云代理接口层。
6.根据权利要求1所述的公有云产品包生成方法,其特征在于,所述根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包,包括:
使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
7.根据权利要求6所述的公有云产品包生成方法,其特征在于,所述根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包,包括:
通过go build命令编译公有云平台信息、底层程序源码和程序依赖库生成可执行文件;
将所述可执行文件压缩为公有云产品包底层代码压缩包。
8.一种区块链混合云中的代码打包服务器,其特征在于,包括:
获取模块,获取区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
代理接口生成模块,根据区块链接口以及所述映射关系生成代理接口;
编译模块,根据所述代理接口与所述区块链业务逻辑代码,生成对应所述公有云的名称标签和版本号的可执行的公有云产品包;
所述编译模块,包括:
程序依赖库选择单元,根据选择的公有云平台信息,选择对应平台的容器版本的程序依赖库;
底层程序源码整合单元,将所述代理接口的代码与区块链底层代码整合为部署公有云平台的底层程序源码;
公有云产品包底层代码压缩包形成单元,根据公有云平台信息、底层程序源码和程序依赖库形成公有云产品包底层代码压缩包;
公有云产品包业务逻辑压缩包生成单元,根据所述底层程序源码和所述区块链业务逻辑代码,生成所述公有云产品包业务逻辑压缩包;
公有云产品包生成单元,将所述公有云产品包底层代码压缩包和所述公有云产品包业务逻辑压缩包打包压缩生成所述公有云产品包。
9.根据权利要求8所述的代码打包服务器,其特征在于,所述获取模块包括:
第一获取单元,从产品输出管理服务器获取第一打包文件,所述第一打包文件包括所述区块链业务逻辑代码;
第二获取单元,从公有云信息库服务器获取第二打包文件,所述第二打包文件包括公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系;
拆包单元,对所述第一打包文件和所述第二打包文件进行拆包处理,得到所述区块链业务逻辑代码、公有云名称标签、公有云版本号以及区块链接口与公有云接口的映射关系。
10.根据权利要求9所述的代码打包服务器,其特征在于,所述代码打包服务器还包括:
合法性筛选模块,对所述第一打包文件和所述第二打包文件进行合法性筛选,对判定为非法的信息进行拦截。
11.根据权利要求9所述的代码打包服务器,其特征在于,所述代码打包服务器还包括:
判断模块,通过正则表达式判断第一打包文件和第二打包文件中的区块链代码库、公有云名称标签、公有云版本号以及所述映射关系是否符合预设规则;
所述拆包单元对符合预设规则的信息进行拆包处理。
12.根据权利要求8所述的代码打包服务器,其特征在于,所述编译模块,还包括:
公有云代理接口层生成单元,根据区块链底层代码标注和公有云接口信息生成公有云代理接口层。
13.根据权利要求8所述的代码打包服务器,其特征在于,所述公有云产品包业务逻辑压缩包生成单元使用jit编译器编译底层程序源码生成中间代码,并结合选择的公有云平台提供的web服务中间件,生成对应的公有云产品包业务逻辑压缩包。
14.根据权利要求13所述的代码打包服务器,其特征在于,所述公有云产品包底层代码压缩包形成单元,包括:
可执行文件生成单元,通过go build命令编译公有云平台信息、底层程序源码和依赖库生成可执行文件;
可执行文件压缩单元,将所述可执行文件压缩为公有云产品包底层代码压缩包。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795634.3A CN110489129B (zh) | 2019-08-27 | 2019-08-27 | 区块链混合云中的公有云产品包生成方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795634.3A CN110489129B (zh) | 2019-08-27 | 2019-08-27 | 区块链混合云中的公有云产品包生成方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489129A CN110489129A (zh) | 2019-11-22 |
CN110489129B true CN110489129B (zh) | 2023-09-05 |
Family
ID=68554515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910795634.3A Active CN110489129B (zh) | 2019-08-27 | 2019-08-27 | 区块链混合云中的公有云产品包生成方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489129B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405047A (zh) * | 2015-12-30 | 2016-03-16 | 广东科海信息科技股份有限公司 | 一种基于社区o2o的数据分析系统及其实现方法 |
CN109189334A (zh) * | 2018-08-16 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 一种区块链网络服务平台及其扩容方法、存储介质 |
CN109614806A (zh) * | 2018-12-03 | 2019-04-12 | 北京工业大学 | 基于区块链的日志管理系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348808B2 (en) * | 2015-10-30 | 2019-07-09 | International Business Machines Corporation | Hybrid cloud applications |
US10491477B2 (en) * | 2015-12-18 | 2019-11-26 | Privops Llc | Hybrid cloud integration fabric and ontology for integration of data, applications, and information technology infrastructure |
US10528551B2 (en) * | 2017-09-29 | 2020-01-07 | Oracle International Corporation | System and method for providing a representational state transfer proxy service for a blockchain cloud service |
-
2019
- 2019-08-27 CN CN201910795634.3A patent/CN110489129B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405047A (zh) * | 2015-12-30 | 2016-03-16 | 广东科海信息科技股份有限公司 | 一种基于社区o2o的数据分析系统及其实现方法 |
CN109189334A (zh) * | 2018-08-16 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 一种区块链网络服务平台及其扩容方法、存储介质 |
CN109614806A (zh) * | 2018-12-03 | 2019-04-12 | 北京工业大学 | 基于区块链的日志管理系统 |
Non-Patent Citations (1)
Title |
---|
龚威.云平台 管理资源 把控安全.《中国公共安全》.2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110489129A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8347108B2 (en) | System and method for automated safe reprogramming of software radios | |
CN110502222B (zh) | 外发依赖内部基础库的aar方法、装置、介质和设备 | |
US7350184B2 (en) | System and method for enterprise application interactions | |
US7769821B2 (en) | Systems and methods for enhanced meassage support using a generic client proxy | |
US20030216927A1 (en) | System and method for automated safe reprogramming of software radios | |
US9152796B2 (en) | Dynamic analysis interpreter modification for application dataflow | |
US9417938B2 (en) | Remote procedure call chains | |
JP2000029707A (ja) | 高速なロ―カルcorbaオブジェクトレファレンスのための方法及び装置 | |
CN104461491A (zh) | 一种Hybrid组件的运行方法和系统 | |
US11676158B2 (en) | Automatic remediation of non-compliance events | |
US20130041870A1 (en) | Synchronization of dissimilar databases | |
CN109784039B (zh) | 移动终端安全运行空间的构建方法、电子设备、存储介质 | |
CN106980501A (zh) | 一种软件包管理方法、装置和系统 | |
US10929389B2 (en) | Data provenance using distributed ledgers | |
CN111611206A (zh) | 一种基于平台级企业消息总线的消息处理方法和装置 | |
US11716354B2 (en) | Determination of compliance with security technical implementation guide standards | |
CN110781441A (zh) | 基于微服务化架构的新零售业务中台 | |
US20070220511A1 (en) | Ensuring a stable application debugging environment via a unique hashcode identifier | |
US7822729B2 (en) | Swapping multiple object aliases in a database system | |
KR102443171B1 (ko) | 이기종 컴퓨팅 환경에서 데이터 타입 변환을 지원하기 위한 시스템 및 방법 | |
US6898599B2 (en) | Method and system for automated web reports | |
CN110489129B (zh) | 区块链混合云中的公有云产品包生成方法及服务器 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN112416395A (zh) | 一种热修复更新方法和装置 | |
US7571236B2 (en) | System and method for managing connections |
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 |