CN112579987A - 遥感程序在混合云中的迁移部署方法及运行身份验证方法 - Google Patents
遥感程序在混合云中的迁移部署方法及运行身份验证方法 Download PDFInfo
- Publication number
- CN112579987A CN112579987A CN202011401143.5A CN202011401143A CN112579987A CN 112579987 A CN112579987 A CN 112579987A CN 202011401143 A CN202011401143 A CN 202011401143A CN 112579987 A CN112579987 A CN 112579987A
- Authority
- CN
- China
- Prior art keywords
- program
- cloud
- program components
- public cloud
- private cloud
- 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
- 238000013508 migration Methods 0.000 title claims abstract description 93
- 230000005012 migration Effects 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 title claims abstract description 18
- 230000001133 acceleration Effects 0.000 claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims description 93
- 238000004891 communication Methods 0.000 claims description 49
- 238000013475 authorization Methods 0.000 claims description 28
- 238000012360 testing method Methods 0.000 claims description 15
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Technology Law (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种遥感程序在混合云中的迁移部署方法及运行身份验证方法,依次包括以下步骤:A:将遥感程序分割成多个程序组件,并将多个程序组件抽象为有向无环图;然后使用回归方法计算公有云与私有云之间的云服务加速比,同时计算私有云与公有云之间的带宽并确定运行时间阈值;B:向有向无环图中添加所有可能的旁路,使用动态规划方法确定最优的迁移策略;C:根据最优的迁移策略,私有云向公有云发送需要迁移的程序组件。本发明既能够保证程序运行效率,又能够有效保护程序不受非法窃取。
Description
技术领域
本发明涉及云计算平台领域,尤其涉及一种遥感程序在混合云中的迁移部署方法及运行身份验证方法。
背景技术
目前,传统的遥感数据处理方式已经无法满足遥感数据实时处理的需求。而遥感云计算平台可以为用户提供方便快捷的遥感数据实时处理方案。但是若以公有云为基础部署遥感云计算平台,虽然会极大地提高遥感程序的运行效率,却无法有效地保护遥感研究人员的自主知识产权。而以私有云为基础部署遥感云计算平台,虽然可以有效的保护遥感研究人员的自主知识产权,但是会造成前期投入成本和使用期间维护成本增加,更重要的是私有云的算力远远低于公有的云算力。
而基于混合云构建的遥感云计算平台,理论上,在拥有公共云极高算力的同时还可有效的保障遥感研究人员的自主知识产权。但是因为软件逆向工程的发展,传统的软件保护技术(软件加壳、软件水印、代码混淆等)逐渐失效,因此无法对混合云中运行的遥感程序进行有效的保护。
发明内容
本发明的目的是提供一种遥感程序在混合云中的迁移部署方法及运行身份验证方法,既能够保证程序运行效率,又能够有效保护程序不受非法窃取。
本发明采用下述技术方案:
一种遥感程序在混合云中的迁移部署方法,依次包括以下步骤:
A:将遥感程序分割成多个程序组件,并将多个程序组件抽象为有向无环图;在有向无环图中,将程序组件作为图的顶点,程序组件的运行时间作为顶点的权值,程序组件之间的交互关系作为图中的边,程序组件之间的通信时间作为边的权值,程序组件从私有云迁移到公有云的操作作为向有向无环图添加旁路的操作;然后使用回归方法计算公有云与私有云之间的云服务加速比λ,同时计算私有云与公有云之间的带宽bw并确定运行时间阈值τ;
B:根据步骤A中得到的云计算加速比λ、带宽bw和运行时间阈值τ,向有向无环图中添加所有可能的旁路,然后分别计算所有旁路的权值,最后使用动态规划方法确定最优的迁移策略;
C:根据步骤B中所确定的最优的迁移策略,私有云向公有云发送需要迁移的程序组件。
所述的步骤A包括以下步骤:
A1:根据遥感程序的运行流程图和功能,将完整的遥感程序分割成多个程序组件,即有向无环图;有向无环图G=(V,W,E)是由两个顶点集V和W,以及一个边集E组成;其中,顶点集V中的顶点表示将遥感程序分割后得到的所有的程序组件,包含普通程序组件和核心程序组件;设顶点集V中共有z个顶点,对应着遥感程序分割后得到的全部z个程序组件,顶点权值为v1,v2,v3,…,vz,分别表示每个程序组件在私有云中的运行时间;顶点集W通过迁移操作从顶点集V中生成,顶点集W中的顶点表示运行在公有云中的程序组件,即普通程序组件,顶点权值为w1,w2,w3,…,wl,分别表示每个程序组件在公有云中的运行时间;边集E代表程序组件之间的交互关系,设边集E中共有m条边,边的权值为e1,e2,e3,…,em,分别表示在有向无环图中相邻程序组件之间的通信时间;云计算加速比λ表示运行同一个程序组件时,在公有云中与在私有云中的运行时间的比值;带宽bw表示公有云与私有云之间的带宽;运行时间阈值τ表示程序组件在私有云中运行时间的阈值;
A2:由算法研究人员定义运行时间阈值τ,然后由私有云结点向公有云结点发送x个测试程序,分别记录x个测试程序在公有云结点运行完成所需的执行时间并记为然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点运行完成所需的执行时间并记为
A3:私有云结点根据得到的执行时间Tpublic和执行时间Tprivate,通过回归方法进行计算,得到公有云与私有云之间的云服务加速比λ;并根据得到的测试程序的返回时间计算公有云和私有云之间的带宽bw。
所述的步骤A1中,核心程序组件只能运行在私有云中,普通程序组件能够在公有云和私有云之间进行迁移。
所述的步骤A2中,将对遥感图像进行傅里叶变换作为测试程序。
回归方法采用Lasso回归算法、向前逐步回归算法或多项式回归算法。
所述的步骤B包括以下具体步骤:
B1:初始化迁移矩阵A0,A1,A2,…,An,假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y,迁移矩阵表示程序组件在公云中的运行时间,迁移矩阵均为上三角矩阵;迁移矩阵A0中的元素为其中,除去对角元素之外,其他元素的权值都为0,表示第i个程序组件在私有云中运行的时间为c0;迁移矩阵A1中的元素为迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间;其中,·除去对角元素之外,其他元素的权值均为0,表示第i个程序组件在公有云中的运行时间为c1;迁移矩阵A2中的元素为迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间;表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2;迁移矩阵An中的元素为表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k;
B2:初始化邻接矩阵B1,B2,…,Bn,邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间;邻接矩阵B1中的元素为邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间;表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件;邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻;邻接矩阵Bn中的元素为表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻;
B3:初始化迁移矩阵和邻接矩阵之后,为私有云中运行时间大于τ的单个程序组件添加旁路;
表示在私有云中运行的程序组件,的权值表示在私有云中运行的时间,表示在公有云上运行的程序组件,的权值表示在公有云中运行的时间,如果的权值大于τ,则能够迁移到公有云中运行,迁移后成为 此时更新迁移矩阵A1中的元素
B4:更新邻接矩阵B1;
设表示连接程序组件阳程序组件的边,程序组件运行在私有云中,程序组件运行公有云中,的权值表示程序组件与程序组件之间的通信时间,假设程序组件向程序组件发送的数据量大小为d1,则程序组件的权值为所以更新邻接矩阵B1中的元素
设表示连接程序组件和程序组件的边,程序组件和行在私有云中,的权值表示程序组件与程序组件之间的通信时间;设为第i个程序组件处理数据的变化率,表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则的权值为更新邻接矩阵B1中的元素
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;
设表示连接程序组件阳程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件和程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为d2,则的权值为更新邻接矩阵B2中的元素
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且n个程序组件在有向无环图中相邻;
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;
设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件与程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为dn,则ei的权值为更新迁移矩阵Bn的元素
一种遥感程序在混合云中的迁移部署后的运行身份验证方法,包括以下步骤:
D1:私有云收到用户发送的请求运行遥感程序的消息后,向公有云广播运行程序组件的请求ξ,m=(SID,AIDi);其中,m为私有云结点发送的消息,ξ为私有云结点发送的消息的签名,SID为私有云ID,AIDi为第i个遥感程序组件ID;
D2:当公有云空闲结点收到私有云发送的请求后,通过私有云所发送的请求中的ξ验证是否为私有云发送的信息,验证成功后,公有云空闲结点向私有云发送请求ξ’,m’=(SID′,AID’i,I’);私有云根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息,验证成功后进入授权阶段;
其中,m’为公有云结点发送的消息,ξ’为公有云结点发送的消息的签名,SID’为待验证的私有云ID,AIDi’为待验证的第i个遥感程序组件ID,I’表示公有云结点的信息,包括公有云结点的IP地址、CPU频率和硬盘剩余空间信息;
D3:私有云向智能合约发送消息ξ,m=(SID,AIDi,ACj,PKp,j),智能合约收到消息并验证成功后,将此消息存储到智能合约中,等待公有云验证,其中,ACj为私有云结点发送的授权码,PKp为公有云结点的公钥,j为私有云结点发送的授权码的索引,ACj=H(Bi,I’),H()为哈希函数,Bi为第i个遥感程序组件的二进制文件;
D4:公有云向的智能合约发送授权请求ξ’,m’=(SID′,AID’i,AC’j,PK’p,j’),智能合约收到请求后,根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息;验证成功后,智能合约比较ACj与AC’j是否相等,如果相等则证明公有云的授权码正确,然后向公有云返回成功的消息并允许程序组件在公有云中运行,如果不等则向公有云返回失败的消息并拒绝程序组件在公有云中运行;然后智能合约将j的值加1;
其中,AG′j为公有云结点向智能合约发送的授权码,PK’p为公有云结点的公钥,j’为公有云结点发送的授权码的索引。
本发明合理的将遥感程序分割成普通程序组件和核心程序组件,并限制核心程序组件只能运行在私有云中,普通程序组件可以在公有云和私有云之间进行迁移;并充分考虑云服务加速比λ、私有云与公有云之间的带宽bw及运行时间阈值τ,使用动态规划方法确定最优的迁移策略。本发明既能够保证遥感程序在混合云中的运行效率,又能够有效保护遥感程序在混合云中不受非法窃取。
附图说明
图1为本发明的流程示意图。
具体实施方式
以下结合附图和实施例对本发明作以详细的描述:
如图1所示,本发明所述的遥感程序在混合云中的迁移部署方法,包括以下步骤:
A:将遥感程序分割成多个程序组件,并将多个程序组件抽象为有向无环图;在有向无环图中,将程序组件作为图的顶点,程序组件的运行时间作为顶点的权值,程序组件之间的交互关系作为图中的边,程序组件之间的通信时间作为边的权值,程序组件从私有云迁移到公有云的操作作为向有向无环图添加旁路的操作;然后使用回归方法计算公有云与私有云之间的云服务加速比λ,同时计算私有云与公有云之间的带宽bw并确定运行时间阈值τ。
所述的步骤A包含以下具体步骤:
A1:根据遥感程序的运行流程图和功能等,将某个完整的遥感程序分割成多个程序组件,即抽象为有向无环图。有向无环图中,普通程序组件可以在公有云和私有云之间进行迁移;为保证遥感程序的核心逻辑不被攻击人员破解,核心程序组件只能运行在私有云中。普通程序组件与核心程序组件的判别由算法研究人员自行判断并进行标注。
有向无环图G=(V,W,E)是由两个顶点集V和W,以及一个边集E组成。其中,顶点集V中的顶点表示将遥感程序分割后得到的所有的程序组件,包含普通程序组件和核心程序组件。设顶点集V中共有z个顶点,对应着遥感程序分割后得到的全部z个程序组件,顶点权值为v1,v2,v3,…,vz,分别表示每个程序组件在私有云中的运行时间;顶点集W通过迁移操作(步骤B)从顶点集V中生成,顶点集W中的顶点表示运行在公有云中的程序组件,即普通程序组件,顶点权值为w1,w2,w3,…,wl,分别表示每个程序组件在公有云中的运行时间;边集E代表程序组件之间的交互关系,设边集E中共有m条边,边的权值为e1,e2,e3,…,em,分别表示在有向无环图中相邻程序组件之间的通信时间,若相邻组件运行在相同类型的云中(即同在公有云或同在私有云中),则通信时间忽略不计。云计算加速比λ表示运行同一个程序组件时,在公有云中与在私有云中的运行时间的比值;带宽bw表示公有云与私有云之间的带宽;运行时间阈值τ表示程序组件在私有云中运行时间的阈值,只有当程序组件在私有云中的运行时间大于运行时间阈值τ时,此程序组件才能迁移到公有云中运行。
A2:由算法研究人员定义运行时间阈值τ,然后由私有云结点向公有云结点发送x个测试程序,分别记录x个测试程序在公有云结点运行完成所需的执行时间并记为然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点(即本地)运行完成所需的执行时间并记为
测试程序由算法研究人员根据算法的特点自行定义,例如遥感算法基本都与遥感图像处理有关,所以可以将对遥感图像进行傅里叶变换作为测试程序。
A3:私有云结点根据得到的执行时间Tpublic和执行时间Tprivate,通过回归方法进行计算,得到公有云与私有云之间的云服务加速比λ;并根据得到的测试程序的返回时间计算公有云和私有云之间的带宽bw。
所述的回归方法根据程序结构的不同采用不同的回归方法,如果程序的运行时间和计算机硬件之间的关系为线性关系,则可采用Lasso回归算法或向前逐步回归算法等。如果程序的运行时间和计算机硬件之间的关系为非线性线性关系则可采用多项式回归算法。
B:根据步骤A中得到的云计算加速比λ、带宽bw和运行时间阈值τ,向有向无环图中添加所有可能的旁路,然后分别计算所有旁路的权值,最后使用动态规划方法确定最优的迁移策略。
向有向无环图中添加所有可能的旁路时,每一条旁路都表示某一个或若干个程序组件迁移的路径。当所有可能的旁路添加完成之后,再使用动态规划方法寻找最优的迁移策略,能够确保遥感程序在混合云中整体运行时间最小。
所述的步骤B包括以下具体步骤:
B1:初始化迁移矩阵A0,A1,A2,…,An(假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y),迁移矩阵表示程序组件在公云中的运行时间,迁移矩阵均为上三角矩阵。迁移矩阵A0中的元素为其中,除去对角元素之外,其他元素的权值都为0,表示第i个程序组件在私有云中运行的时间为c0。迁移矩阵A1中的元素为迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间,所以与迁移矩阵A0一致,除去对角元素之外,其他元素的权值均为0,表示第i个程序组件在公有云中的运行时间为c1。迁移矩阵A2中的元素为迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间,表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2。同理,迁移矩阵An中的元素为表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k。
B2:初始化邻接矩阵B1,B2,…,Bn,(假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y),邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间。因为同一类型云中的带宽非常大,所以忽略在同一类型云中程序组件的通信时间,只考虑公有云与私有云之间的通信时间。邻接矩阵B1中的元素为邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间,表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件。邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻。邻接矩阵Bn中的元素为表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻。
B3:初始化迁移矩阵和邻接矩阵之后,首先为私有云中运行时间大于τ的单个程序组件添加旁路。表示在私有云中运行的程序组件,的权值表示在私有云中运行的时间,表示在公有云上运行的程序组件,的权值表示在公有云中运行的时间,如果的权值大于τ,则可能会迁移到公有云中运行,迁移后成为 此时更新迁移矩阵A1中的元素
B4:因为公有云与私有云之间通信需要时间,所以还需更新邻接矩阵B1。设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行公有云中,的权值表示程序组件与程序组件之间的通信时间,假设程序组件向程序组件发送的数据量大小为d1,则程序组件的权值为所以更新邻接矩阵B1中的元素设表示连接程序组件和程序组件的边,程序组件运行在私有云中,的权值表示程序组件与程序组件之间的通信时间。由于在处理遥感图像数据时,根据每个程序组件功能的不同,某个程序组件可能会将一帧遥感图像拆分为多帧,也可能将多帧遥感图像合并为一帧,所以设为第i个程序组件处理数据的变化率,表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则的权值为所以更新邻接矩阵B1中的元素
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;设需要迁移的两个程序组件分别为和程序组件和向公有云迁移后分别变为程序组件和则两个程序组件在公有云上的运行时间之和然后更新迁移矩阵A2中的元素
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件和程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为d2,则的权值为所以更新邻接矩阵B2中的元素设表示连接程序组件和程序组件的边,程序组件运行在私有云中,的权值表示程序组件与程序组件之间的通信时间,设分别为程序组件的数据变化率,则的权值为所以更新邻接矩阵B2中的元素
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且此n个程序组件在有向无环图中相邻,设此n个程序组件分别为且n=j-i+1,此n个程序组件迁移到公有云后分别成为程序组件则n个程序组件的运行时间之和 然后更新迁移矩阵An中的元素
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件与程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为dn,则ei的权值为所以更新迁移矩阵Bn的元素设表示连接程序组件和程序组件的边,结点运行在私有云中,的权值表示结点与结点之间的通信时间,设分别为程序组件的数据变化率,则的权值为听以更新Bn中的元素
B9:根据有向无环图中的所有旁路,利用动态规划方法寻找最优的迁移策略。设d[i]表示在混合云中从程序组件v1到程序组件vi运行的最短时间,则状态迁移矩阵为: 其中 表示程序组件v1到程序组件vi的最优迁移策略,y表示程序组件v1到程序组件vi中有y个核心程序组件。
C:根据步骤B中所确定的最优的迁移策略,私有云向公有云发送需要迁移的程序组件。
当按照上述方法,将遥感程序在混合云中的迁移部署后,为了避免攻击者通过软件逆向分析窃取遥感程序,本发明还利用区块链技术实现用户身份的多重验证,限定用户在公有云中运行程序组件前必须向区块链中的智能合约申请授权,只有获得智能合约的授权后,用户才能在公有云中运行程序组件。
用户身份的多重验证方法包括以下具体步骤:
D1:私有云收到用户发送的请求运行遥感程序的消息后,向公有云广播运行程序组件的请求ξ,m=(SID,AIDi);其中,m为私有云结点发送的消息,ξ为私有云结点发送的消息的签名,SID为私有云ID,AIDi为第i个遥感程序组件ID。
D2:当公有云空闲结点收到私有云发送的请求后,通过私有云所发送的请求中的ξ验证是否为私有云发送的信息,避免有攻击者伪装为私有云进行攻击,验证成功后,公有云空闲结点向私有云发送请求ξ’,m’=(SID’,AID’i,I’);私有云根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息,验证成功后进入授权阶段。
其中,m’为公有云结点发送的消息,ξ’为公有云结点发送的消息的签名,SID’为待验证的私有云ID,AID’i为待验证的第i个遥感程序组件ID,I’表示公有云结点的信息,包括公有云结点的IP地址、CPU频率和硬盘剩余空间等。
D3:私有云向智能合约发送消息ξ,m=(SID,AIDi,ACj,PKp,j),智能合约收到消息并验证成功后,将此消息存储到智能合约中,等待公有云验证,其中,ACj为私有云结点发送的授权码,PKp为公有云结点的公钥,j为私有云结点发送的授权码的索引,ACj=H(Bi,I’),H()为哈希函数,Bi为第i个遥感程序组件的二进制文件;
D4:公有云向的智能合约发送授权请求ξ’,m’=(SID′,AID’i,AC’j,PK’p,j’),智能合约收到请求后,根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息;验证成功后,智能合约比较ACj与AC’j是否相等,如果相等则证明公有云的授权码正确,然后向公有云返回成功的消息并允许程序组件在公有云中运行,如果不等则向公有云返回失败的消息并拒绝程序组件在公有云中运行;然后智能合约将j的值加1。
其中,AC’j为公有云结点向智能合约发送的授权码,PK’p为公有云结点的公钥,j’为公有云结点发送的授权码的索引。
Claims (7)
1.一种遥感程序在混合云中的迁移部署方法,其特征在于,依次包括以下步骤:
A:将遥感程序分割成多个程序组件,并将多个程序组件抽象为有向无环图;有向无环图中,将程序组件作为图的顶点,程序组件的运行时间作为顶点的权值,程序组件之间的交互关系作为图中的边,程序组件之间的通信时间作为边的权值,程序组件从私有云迁移到公有云的操作作为向有向无环图添加旁路的操作;然后使用回归方法计算公有云与私有云之间的云服务加速比λ,同时计算私有云与公有云之间的带宽bw并确定运行时间阈值τ;
B:根据步骤A中得到的云计算加速比λ、带宽bw和运行时间阈值τ,向有向无环图中添加所有可能的旁路,然后分别计算所有旁路的权值,最后使用动态规划方法确定最优的迁移策略;
C:根据步骤B中所确定的最优的迁移策略,私有云向公有云发送需要迁移的程序组件。
2.根据权利要求1所述的遥感程序在混合云中的迁移部署方法,其特征在于,所述的步骤A包括以下步骤:
A1:根据遥感程序的运行流程图和功能,将完整的遥感程序分割成多个程序组件,即有向无环图;有向无环图G=(V,W,E)由两个顶点集V和W,以及一个边集E组成;其中,顶点集V中的顶点表示将遥感程序分割后得到的所有的程序组件,包含普通程序组件和核心程序组件;设顶点集V中共有z个顶点,对应着遥感程序分割后得到的全部z个程序组件,顶点权值为v1,v2,v3,…,vz,分别表示每个程序组件在私有云中的运行时间;顶点集W通过迁移操作从顶点集V中生成,顶点集W中的顶点表示运行在公有云中的程序组件,即普通程序组件,顶点权值为w1,w2,w3,…,wl,分别表示每个程序组件在公有云中的运行时间;边集E代表程序组件之间的交互关系,设边集E中共有m条边,边的权值为e1,e2,e3,…,em,分别表示在有向无环图中相邻程序组件之间的通信时间;云计算加速比λ表示运行同一个程序组件时,在公有云中与在私有云中的运行时间的比值;带宽bw表示公有云与私有云之间的带宽;运行时间阈值τ表示程序组件在私有云中运行时间的阈值;
A2:由算法研究人员定义运行时间阈值τ,然后由私有云结点向公有云结点发送x个测试程序,分别记录x个测试程序在公有云结点运行完成所需的执行时间并记为然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点运行完成所需的执行时间并记为
A3:私有云结点根据得到的执行时间Tpublic和执行时间Tprivate,通过回归方法进行计算,得到公有云与私有云之间的云服务加速比λ;并根据得到的测试程序的返回时间计算公有云和私有云之间的带宽bw。
3.根据权利要求2所述的遥感程序在混合云中的迁移部署方法,其特征在于:所述的步骤A1中,核心程序组件只能运行在私有云中,普通程序组件能够在公有云和私有云之间进行迁移。
4.根据权利要求2所述的遥感程序在混合云中的迁移部署方法,其特征在于:所述的步骤A2中,将对遥感图像进行傅里叶变换作为测试程序。
5.根据权利要求2所述的遥感程序在混合云中的迁移部署方法,其特征在于:所述的回归方法采用Lasso回归算法、向前逐步回归算法或多项式回归算法。
6.根据权利要求1所述的遥感程序在混合云中的迁移部署方法,其特征在于,所述的步骤B包括以下具体步骤:
B1:初始化迁移矩阵A0,A1,A2,…,An,假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y,迁移矩阵表示程序组件在公云中的运行时间,迁移矩阵均为上三角矩阵;迁移矩阵A0中的元素为其中,除去对角元素之外,其他元素的权值都为0,表示第i个程序组件在私有云中运行的时间为c0;迁移矩阵A1中的元素为迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间;其中,·除去对角元素之外,其他元素的权值均为0,表示第i个程序组件在公有云中的运行时间为c1;迁移矩阵A2中的元素为迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间;表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2;迁移矩阵An中的元素为表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k;
B2:初始化邻接矩阵B1,B2,…,Bn,邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间;邻接矩阵B1中的元素为邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间;表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件;邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻;邻接矩阵Bn中的元素为表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻;
B3:初始化迁移矩阵和邻接矩阵之后,为私有云中运行时间大于τ的单个程序组件添加旁路;
表示在私有云中运行的程序组件,的权值表示在私有云中运行的时间,表示在公有云上运行的程序组件,的权值表示在公有云中运行的时间,如果的权值大于τ,则能够迁移到公有云中运行,迁移后成为此时更新迁移矩阵A1中的元素
B4:更新邻接矩阵B1;
设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行公有云中,的权值表示程序组件与程序组件之间的通信时间,假设程序组件向程序组件发送的数据量大小为d1,则程序组件的权值为所以更新邻接矩阵B1中的元素
设表示连接程序组件和程序组件的边,程序组件运行在私有云中,的权值表示程序组件与程序组件之间的通信时间;设为第i个程序组件处理数据的变化率,表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则的权值为更新邻接矩阵B1中的元素
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;
设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件和程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为d2,则的权值为更新邻接矩阵B2中的元素
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且n个程序组件在有向无环图中相邻;
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;
设表示连接程序组件和程序组件的边,程序组件运行在私有云中,程序组件运行在公有云中,的权值表示程序组件与程序组件之间的通信时间,程序组件向程序组件发送的数据量大小为dn,则ei的权值为更新迁移矩阵Bn的元素
7.一种遥感程序在混合云中的迁移部署后的运行身份验证方法,其特征在于:包括以下步骤:
D1:私有云收到用户发送的请求运行遥感程序的消息后,向公有云广播运行程序组件的请求ξ,m=(SID,AIDi);其中,m为私有云结点发送的消息,ξ为私有云结点发送的消息的签名,SID为私有云ID,AIDi为第i个遥感程序组件ID;
D2:当公有云空闲结点收到私有云发送的请求后,通过私有云所发送的请求中的ξ验证是否为私有云发送的信息,验证成功后,公有云空闲结点向私有云发送请求ξ’,m’=(SID′,AID’i,I’);私有云根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息,验证成功后进入授权阶段;
其中,m’为公有云结点发送的消息,ξ’为公有云结点发送的消息的签名,SID’为待验证的私有云ID,AID’i为待验证的第i个遥感程序组件ID,I’表示公有云结点的信息,包括公有云结点的IP地址、CPU频率和硬盘剩余空间信息;
D3:私有云向智能合约发送消息ξ,m=(SID,AIDi,ACj,PKp,j),智能合约收到消息并验证成功后,将此消息存储到智能合约中,等待公有云验证,其中,ACj为私有云结点发送的授权码,PKp为公有云结点的公钥,j为私有云结点发送的授权码的索引,ACj=H(Bi,I’),H()为哈希函数,Bi为第i个遥感程序组件的二进制文件;
D4:公有云向的智能合约发送授权请求ξ’,m’=(SID′,AID’i,AC’j,PK’p,j’),智能合约收到请求后,根据公有云所发送的请求中的ξ’验证是否为公有云结点发送的信息;验证成功后,智能合约比较AGj与AG’j是否相等,如果相等则证明公有云的授权码正确,然后向公有云返回成功的消息并允许程序组件在公有云中运行,如果不等则向公有云返回失败的消息并拒绝程序组件在公有云中运行;然后智能合约将j的值加1;
其中,AG’j为公有云结点向智能合约发送的授权码,PK’p为公有云结点的公钥,j’为公有云结点发送的授权码的索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011401143.5A CN112579987B (zh) | 2020-12-04 | 2020-12-04 | 遥感程序在混合云中的迁移部署方法及运行身份验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011401143.5A CN112579987B (zh) | 2020-12-04 | 2020-12-04 | 遥感程序在混合云中的迁移部署方法及运行身份验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579987A true CN112579987A (zh) | 2021-03-30 |
CN112579987B CN112579987B (zh) | 2022-09-13 |
Family
ID=75127005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011401143.5A Active CN112579987B (zh) | 2020-12-04 | 2020-12-04 | 遥感程序在混合云中的迁移部署方法及运行身份验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579987B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414767A (zh) * | 2013-07-30 | 2013-11-27 | 华南师范大学 | 将应用软件部署在云计算平台上的方法和装置 |
US20140201365A1 (en) * | 2013-01-15 | 2014-07-17 | International Business Machines Corporation | Implementing a private network isolated from a user network for virtual machine deployment and migration and for monitoring and managing the cloud environment |
CN104735163A (zh) * | 2015-04-10 | 2015-06-24 | 重庆邮电大学 | 一种用于混合云存储环境下多用户数据完整性验证方法 |
CN107360235A (zh) * | 2017-07-17 | 2017-11-17 | 广东工业大学 | 一种基于可靠性分级的任务迁移方法 |
CN108647771A (zh) * | 2018-05-07 | 2018-10-12 | 福建师范大学 | 一种混合云环境下科学工作流数据的布局方法 |
CN108989098A (zh) * | 2018-08-24 | 2018-12-11 | 福建师范大学 | 一种混合云环境面向时延优化的科学工作流数据布局方法 |
CN111782353A (zh) * | 2020-01-10 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 从公有云到私有云的迁移方法和装置 |
-
2020
- 2020-12-04 CN CN202011401143.5A patent/CN112579987B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201365A1 (en) * | 2013-01-15 | 2014-07-17 | International Business Machines Corporation | Implementing a private network isolated from a user network for virtual machine deployment and migration and for monitoring and managing the cloud environment |
CN103414767A (zh) * | 2013-07-30 | 2013-11-27 | 华南师范大学 | 将应用软件部署在云计算平台上的方法和装置 |
CN104735163A (zh) * | 2015-04-10 | 2015-06-24 | 重庆邮电大学 | 一种用于混合云存储环境下多用户数据完整性验证方法 |
CN107360235A (zh) * | 2017-07-17 | 2017-11-17 | 广东工业大学 | 一种基于可靠性分级的任务迁移方法 |
CN108647771A (zh) * | 2018-05-07 | 2018-10-12 | 福建师范大学 | 一种混合云环境下科学工作流数据的布局方法 |
CN108989098A (zh) * | 2018-08-24 | 2018-12-11 | 福建师范大学 | 一种混合云环境面向时延优化的科学工作流数据布局方法 |
CN111782353A (zh) * | 2020-01-10 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 从公有云到私有云的迁移方法和装置 |
Non-Patent Citations (2)
Title |
---|
DAVID S. LINTHICUM: "Cloud-Native Applications and Cloud Migration: The Good, the Bad, and the Points Between", 《IEEE CLOUD COMPUTING》 * |
张靓 等: "云平台应用系统迁移方法的研究", 《计算机科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112579987B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
JP5758995B2 (ja) | 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体 | |
JP5816198B2 (ja) | 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法 | |
Wang et al. | Mtmr: Ensuring mapreduce computation integrity with merkle tree-based verifications | |
CN110505228B (zh) | 基于边缘云架构的大数据处理方法、系统、介质及装置 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN103699606A (zh) | 一种基于顶点切割与社区聚集的大规模图划分方法 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
CN113242230B (zh) | 一种基于智能合约的多级认证与访问控制系统及方法 | |
US10379894B1 (en) | Lineage-based trust for virtual machine images | |
CN109951547A (zh) | 事务请求并行处理方法、装置、设备和介质 | |
CN110597841B (zh) | 一种基于区块链网络的应用评论信息处理方法及装置 | |
CN110636113A (zh) | 区块链的拜占庭容错共识方法、系统、设备和存储介质 | |
US20190370077A1 (en) | Optimizing a workflow of a storlet architecture | |
US20200341674A1 (en) | Method, device and computer program product for restoring data | |
CN114363036A (zh) | 一种网络攻击路径获取方法、装置及电子设备 | |
US20220067570A1 (en) | Training machine learning models with training data | |
CN106406980A (zh) | 一种虚拟机的部署方法和装置 | |
CN114218595A (zh) | 一种云计算平台中文件保护方法及系统 | |
CN112579987B (zh) | 遥感程序在混合云中的迁移部署方法及运行身份验证方法 | |
Moreaux et al. | Blockchain assisted near-duplicated content detection | |
WO2019070227A1 (en) | DEVICE AUTHENTICATION | |
CN112214769A (zh) | 基于SGX架构的Windows系统的主动度量系统 | |
CN117119456B (zh) | 5g mec多容器远程证明方法、系统、装置及介质 | |
CN1297918C (zh) | 虚拟光盘库系统及虚拟光盘数据流网络传输方法 |
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 |