CN112579987A - 遥感程序在混合云中的迁移部署方法及运行身份验证方法 - Google Patents

遥感程序在混合云中的迁移部署方法及运行身份验证方法 Download PDF

Info

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
Application number
CN202011401143.5A
Other languages
English (en)
Other versions
CN112579987B (zh
Inventor
丁文珂
姜帅民
鲍立杰
沈夏炯
张磊
陈会平
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.)
Henan University
Original Assignee
Henan University
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 Henan University filed Critical Henan University
Priority to CN202011401143.5A priority Critical patent/CN112579987B/zh
Publication of CN112579987A publication Critical patent/CN112579987A/zh
Application granted granted Critical
Publication of CN112579987B publication Critical patent/CN112579987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; 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个测试程序在公有云结点运行完成所需的执行时间并记为
Figure BDA0002816980370000021
然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点运行完成所需的执行时间并记为
Figure BDA0002816980370000031
A3:私有云结点根据得到的执行时间Tpublic和执行时间Tprivate,通过回归方法进行计算,得到公有云与私有云之间的云服务加速比λ;并根据得到的测试程序的返回时间计算公有云和私有云之间的带宽bw。
所述的步骤A1中,核心程序组件只能运行在私有云中,普通程序组件能够在公有云和私有云之间进行迁移。
所述的步骤A2中,将对遥感图像进行傅里叶变换作为测试程序。
回归方法采用Lasso回归算法、向前逐步回归算法或多项式回归算法。
所述的步骤B包括以下具体步骤:
B1:初始化迁移矩阵A0,A1,A2,…,An,假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y,迁移矩阵表示程序组件在公云中的运行时间,迁移矩阵均为上三角矩阵;迁移矩阵A0中的元素为
Figure BDA0002816980370000032
其中,除去对角元素
Figure BDA0002816980370000033
之外,其他元素的权值都为0,
Figure BDA0002816980370000034
表示第i个程序组件在私有云中运行的时间为c0;迁移矩阵A1中的元素为
Figure BDA0002816980370000035
迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间;其中,·除去对角元素
Figure BDA0002816980370000036
之外,其他元素的权值均为0,
Figure BDA0002816980370000037
表示第i个程序组件在公有云中的运行时间为c1;迁移矩阵A2中的元素为
Figure BDA0002816980370000038
迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间;
Figure BDA0002816980370000039
表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2;迁移矩阵An中的元素为
Figure BDA00028169803700000310
表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,
Figure BDA00028169803700000311
表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k;
B2:初始化邻接矩阵B1,B2,…,Bn,邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间;邻接矩阵B1中的元素为
Figure BDA0002816980370000041
邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间;
Figure BDA0002816980370000042
表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件;邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,
Figure BDA0002816980370000043
表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻;邻接矩阵Bn中的元素为
Figure BDA0002816980370000044
表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,
Figure BDA0002816980370000045
表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻;
B3:初始化迁移矩阵和邻接矩阵之后,为私有云中运行时间大于τ的单个程序组件添加旁路;
Figure BDA0002816980370000046
表示在私有云中运行的程序组件,
Figure BDA0002816980370000047
的权值表示在私有云中运行的时间,
Figure BDA0002816980370000048
表示在公有云上运行的程序组件,
Figure BDA0002816980370000049
的权值表示在公有云中运行的时间,如果
Figure BDA00028169803700000410
的权值大于τ,则
Figure BDA00028169803700000411
能够迁移到公有云中运行,
Figure BDA00028169803700000412
迁移后成为
Figure BDA00028169803700000413
Figure BDA00028169803700000414
此时更新迁移矩阵A1中的元素
Figure BDA00028169803700000415
B4:更新邻接矩阵B1
Figure BDA00028169803700000416
表示连接程序组件
Figure BDA00028169803700000417
阳程序组件
Figure BDA00028169803700000418
的边,程序组件
Figure BDA00028169803700000419
运行在私有云中,程序组件
Figure BDA00028169803700000420
运行公有云中,
Figure BDA00028169803700000421
的权值表示程序组件
Figure BDA00028169803700000422
与程序组件
Figure BDA00028169803700000423
之间的通信时间,假设程序组件
Figure BDA00028169803700000424
向程序组件
Figure BDA00028169803700000425
发送的数据量大小为d1,则程序组件
Figure BDA00028169803700000426
的权值为
Figure BDA00028169803700000427
所以更新邻接矩阵B1中的元素
Figure BDA00028169803700000428
Figure BDA0002816980370000051
表示连接程序组件
Figure BDA0002816980370000052
和程序组件
Figure BDA0002816980370000053
的边,程序组件
Figure BDA0002816980370000054
和行在私有云中,
Figure BDA0002816980370000055
的权值表示程序组件
Figure BDA0002816980370000056
与程序组件
Figure BDA0002816980370000057
之间的通信时间;设
Figure BDA0002816980370000058
为第i个程序组件处理数据的变化率,
Figure BDA0002816980370000059
表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则
Figure BDA00028169803700000510
的权值为
Figure BDA00028169803700000511
更新邻接矩阵B1中的元素
Figure BDA00028169803700000512
Figure BDA00028169803700000513
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;
设需要迁移的两个程序组件分别为
Figure BDA00028169803700000514
Figure BDA00028169803700000515
程序组件
Figure BDA00028169803700000516
Figure BDA00028169803700000517
向公有云迁移后分别变为程序组件
Figure BDA00028169803700000518
Figure BDA00028169803700000519
则两个程序组件在公有云上的运行时间之和
Figure BDA00028169803700000520
然后更新迁移矩阵A2中的元素
Figure BDA00028169803700000521
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;
Figure BDA00028169803700000522
表示连接程序组件
Figure BDA00028169803700000523
阳程序组件
Figure BDA00028169803700000524
的边,程序组件
Figure BDA00028169803700000525
运行在私有云中,程序组件
Figure BDA00028169803700000526
运行在公有云中,
Figure BDA00028169803700000527
的权值表示程序组件
Figure BDA00028169803700000528
和程序组件
Figure BDA00028169803700000529
之间的通信时间,程序组件
Figure BDA00028169803700000530
向程序组件
Figure BDA00028169803700000531
发送的数据量大小为d2,则
Figure BDA00028169803700000532
的权值为
Figure BDA00028169803700000533
更新邻接矩阵B2中的元素
Figure BDA00028169803700000534
Figure BDA00028169803700000535
表示连接程序组件
Figure BDA00028169803700000536
和程序组件
Figure BDA00028169803700000537
的边,程序组件
Figure BDA00028169803700000538
运行在私有云中,
Figure BDA00028169803700000539
的权值表示程序组件
Figure BDA00028169803700000540
与程序组件
Figure BDA00028169803700000541
之间的通信时间,设
Figure BDA00028169803700000542
分别为程序组件
Figure BDA00028169803700000543
的数据变化率,则
Figure BDA00028169803700000544
的权值为
Figure BDA00028169803700000545
更新邻接矩阵B2中的元素
Figure BDA00028169803700000546
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且n个程序组件在有向无环图中相邻;
设n个程序组件分别为
Figure BDA00028169803700000547
且n=j-i+1,n个程序组件
Figure BDA0002816980370000061
迁移到公有云后分别成为程序组件
Figure BDA0002816980370000062
则n个程序组件的运行时间之和
Figure BDA0002816980370000063
Figure BDA0002816980370000064
然后更新迁移矩阵An中的元素
Figure BDA0002816980370000065
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;
Figure BDA0002816980370000066
表示连接程序组件
Figure BDA0002816980370000067
和程序组件
Figure BDA0002816980370000068
的边,程序组件
Figure BDA0002816980370000069
运行在私有云中,程序组件
Figure BDA00028169803700000610
运行在公有云中,
Figure BDA00028169803700000611
的权值表示程序组件
Figure BDA00028169803700000612
与程序组件
Figure BDA00028169803700000613
之间的通信时间,程序组件
Figure BDA00028169803700000614
向程序组件
Figure BDA00028169803700000615
发送的数据量大小为dn,则ei的权值为
Figure BDA00028169803700000616
更新迁移矩阵Bn的元素
Figure BDA00028169803700000617
Figure BDA00028169803700000618
表示连接程序组件
Figure BDA00028169803700000619
和程序组件
Figure BDA00028169803700000620
的边,结点
Figure BDA00028169803700000621
运行在私有云中,
Figure BDA00028169803700000622
的权值表示结点
Figure BDA00028169803700000623
与结点
Figure BDA00028169803700000624
之间的通信时间,设
Figure BDA00028169803700000625
分别为程序组件
Figure BDA00028169803700000626
的数据变化率,则
Figure BDA00028169803700000627
的权值为
Figure BDA00028169803700000628
更新Bn中的元素
Figure BDA00028169803700000629
B9:根据有向无环图中的所有旁路,利用动态规划方法寻找最优的迁移策略;设d[i]表示在混合云中从程序组件v1到程序组件vi运行的最短时间,则状态迁移矩阵为:
Figure BDA00028169803700000630
Figure BDA00028169803700000631
其中,
Figure BDA00028169803700000632
Figure BDA00028169803700000633
表示程序组件v1到程序组件vi的最优迁移策略,y表示程序组件v1到程序组件vi中有y个核心程序组件。
一种遥感程序在混合云中的迁移部署后的运行身份验证方法,包括以下步骤:
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个测试程序在公有云结点运行完成所需的执行时间并记为
Figure BDA0002816980370000091
然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点(即本地)运行完成所需的执行时间并记为
Figure BDA0002816980370000092
测试程序由算法研究人员根据算法的特点自行定义,例如遥感算法基本都与遥感图像处理有关,所以可以将对遥感图像进行傅里叶变换作为测试程序。
A3:私有云结点根据得到的执行时间Tpublic和执行时间Tprivate,通过回归方法进行计算,得到公有云与私有云之间的云服务加速比λ;并根据得到的测试程序的返回时间计算公有云和私有云之间的带宽bw。
所述的回归方法根据程序结构的不同采用不同的回归方法,如果程序的运行时间和计算机硬件之间的关系为线性关系,则可采用Lasso回归算法或向前逐步回归算法等。如果程序的运行时间和计算机硬件之间的关系为非线性线性关系则可采用多项式回归算法。
B:根据步骤A中得到的云计算加速比λ、带宽bw和运行时间阈值τ,向有向无环图中添加所有可能的旁路,然后分别计算所有旁路的权值,最后使用动态规划方法确定最优的迁移策略。
向有向无环图中添加所有可能的旁路时,每一条旁路都表示某一个或若干个程序组件迁移的路径。当所有可能的旁路添加完成之后,再使用动态规划方法寻找最优的迁移策略,能够确保遥感程序在混合云中整体运行时间最小。
所述的步骤B包括以下具体步骤:
B1:初始化迁移矩阵A0,A1,A2,…,An(假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y),迁移矩阵表示程序组件在公云中的运行时间,迁移矩阵均为上三角矩阵。迁移矩阵A0中的元素为
Figure BDA0002816980370000101
其中,除去对角元素
Figure BDA0002816980370000102
之外,其他元素的权值都为0,
Figure BDA0002816980370000103
表示第i个程序组件在私有云中运行的时间为c0。迁移矩阵A1中的元素为
Figure BDA0002816980370000104
迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间,所以与迁移矩阵A0一致,除去对角元素
Figure BDA0002816980370000105
之外,其他元素的权值均为0,
Figure BDA0002816980370000106
表示第i个程序组件在公有云中的运行时间为c1。迁移矩阵A2中的元素为
Figure BDA0002816980370000107
迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间,
Figure BDA0002816980370000108
表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2。同理,迁移矩阵An中的元素为
Figure BDA0002816980370000109
表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,
Figure BDA00028169803700001010
表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k。
B2:初始化邻接矩阵B1,B2,…,Bn,(假设共有z个程序组件,并且共有y个核心程序组件,则n=z-y),邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间。因为同一类型云中的带宽非常大,所以忽略在同一类型云中程序组件的通信时间,只考虑公有云与私有云之间的通信时间。邻接矩阵B1中的元素为
Figure BDA00028169803700001011
邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间,
Figure BDA00028169803700001012
表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件。邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,
Figure BDA0002816980370000111
表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻。邻接矩阵Bn中的元素为
Figure BDA0002816980370000112
表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,
Figure BDA0002816980370000113
表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻。
B3:初始化迁移矩阵和邻接矩阵之后,首先为私有云中运行时间大于τ的单个程序组件添加旁路。
Figure BDA0002816980370000114
表示在私有云中运行的程序组件,
Figure BDA0002816980370000115
的权值表示在私有云中运行的时间,
Figure BDA0002816980370000116
表示在公有云上运行的程序组件,
Figure BDA0002816980370000117
的权值表示在公有云中运行的时间,如果
Figure BDA0002816980370000118
的权值大于τ,则
Figure BDA0002816980370000119
可能会迁移到公有云中运行,
Figure BDA00028169803700001110
迁移后成为
Figure BDA00028169803700001111
Figure BDA00028169803700001112
此时更新迁移矩阵A1中的元素
Figure BDA00028169803700001113
B4:因为公有云与私有云之间通信需要时间,所以还需更新邻接矩阵B1。设
Figure BDA00028169803700001114
表示连接程序组件
Figure BDA00028169803700001115
和程序组件
Figure BDA00028169803700001116
的边,程序组件
Figure BDA00028169803700001117
运行在私有云中,程序组件
Figure BDA00028169803700001118
运行公有云中,
Figure BDA00028169803700001119
的权值表示程序组件
Figure BDA00028169803700001120
与程序组件
Figure BDA00028169803700001121
之间的通信时间,假设程序组件
Figure BDA00028169803700001122
向程序组件
Figure BDA00028169803700001123
发送的数据量大小为d1,则程序组件
Figure BDA00028169803700001124
的权值为
Figure BDA00028169803700001125
所以更新邻接矩阵B1中的元素
Figure BDA00028169803700001126
Figure BDA00028169803700001127
表示连接程序组件
Figure BDA00028169803700001128
和程序组件
Figure BDA00028169803700001129
的边,程序组件
Figure BDA00028169803700001130
运行在私有云中,
Figure BDA00028169803700001131
的权值表示程序组件
Figure BDA00028169803700001132
与程序组件
Figure BDA00028169803700001133
之间的通信时间。由于在处理遥感图像数据时,根据每个程序组件功能的不同,某个程序组件可能会将一帧遥感图像拆分为多帧,也可能将多帧遥感图像合并为一帧,所以设
Figure BDA00028169803700001134
为第i个程序组件处理数据的变化率,
Figure BDA00028169803700001135
表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则
Figure BDA00028169803700001136
的权值为
Figure BDA00028169803700001137
所以更新邻接矩阵B1中的元素
Figure BDA00028169803700001138
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;设需要迁移的两个程序组件分别为
Figure BDA0002816980370000121
Figure BDA0002816980370000122
程序组件
Figure BDA0002816980370000123
Figure BDA0002816980370000124
向公有云迁移后分别变为程序组件
Figure BDA0002816980370000125
Figure BDA0002816980370000126
则两个程序组件在公有云上的运行时间之和
Figure BDA0002816980370000127
然后更新迁移矩阵A2中的元素
Figure BDA0002816980370000128
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;设
Figure BDA0002816980370000129
表示连接程序组件
Figure BDA00028169803700001210
和程序组件
Figure BDA00028169803700001211
的边,程序组件
Figure BDA00028169803700001212
运行在私有云中,程序组件
Figure BDA00028169803700001213
运行在公有云中,
Figure BDA00028169803700001214
的权值表示程序组件
Figure BDA00028169803700001215
和程序组件
Figure BDA00028169803700001216
之间的通信时间,程序组件
Figure BDA00028169803700001217
向程序组件
Figure BDA00028169803700001218
发送的数据量大小为d2,则
Figure BDA00028169803700001219
的权值为
Figure BDA00028169803700001220
所以更新邻接矩阵B2中的元素
Figure BDA00028169803700001221
Figure BDA00028169803700001222
表示连接程序组件
Figure BDA00028169803700001223
和程序组件
Figure BDA00028169803700001224
的边,程序组件
Figure BDA00028169803700001225
运行在私有云中,
Figure BDA00028169803700001226
的权值表示程序组件
Figure BDA00028169803700001227
与程序组件
Figure BDA00028169803700001228
之间的通信时间,设
Figure BDA00028169803700001229
分别为程序组件
Figure BDA00028169803700001230
的数据变化率,则
Figure BDA00028169803700001231
的权值为
Figure BDA00028169803700001232
所以更新邻接矩阵B2中的元素
Figure BDA00028169803700001233
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且此n个程序组件在有向无环图中相邻,设此n个程序组件分别为
Figure BDA00028169803700001234
且n=j-i+1,此n个程序组件
Figure BDA00028169803700001235
迁移到公有云后分别成为程序组件
Figure BDA00028169803700001236
则n个程序组件的运行时间之和
Figure BDA00028169803700001237
Figure BDA00028169803700001238
然后更新迁移矩阵An中的元素
Figure BDA00028169803700001239
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;设
Figure BDA00028169803700001240
表示连接程序组件
Figure BDA00028169803700001241
和程序组件
Figure BDA00028169803700001242
的边,程序组件
Figure BDA00028169803700001243
运行在私有云中,程序组件
Figure BDA00028169803700001244
运行在公有云中,
Figure BDA00028169803700001245
的权值表示程序组件
Figure BDA00028169803700001246
与程序组件
Figure BDA00028169803700001247
之间的通信时间,程序组件
Figure BDA00028169803700001248
向程序组件
Figure BDA00028169803700001249
发送的数据量大小为dn,则ei的权值为
Figure BDA00028169803700001250
所以更新迁移矩阵Bn的元素
Figure BDA00028169803700001251
Figure BDA00028169803700001252
表示连接程序组件
Figure BDA00028169803700001253
和程序组件
Figure BDA00028169803700001254
的边,结点
Figure BDA0002816980370000131
运行在私有云中,
Figure BDA0002816980370000132
的权值表示结点
Figure BDA0002816980370000133
与结点
Figure BDA0002816980370000134
之间的通信时间,设
Figure BDA0002816980370000135
分别为程序组件
Figure BDA0002816980370000136
的数据变化率,则
Figure BDA0002816980370000137
的权值为
Figure BDA0002816980370000138
听以更新Bn中的元素
Figure BDA0002816980370000139
B9:根据有向无环图中的所有旁路,利用动态规划方法寻找最优的迁移策略。设d[i]表示在混合云中从程序组件v1到程序组件vi运行的最短时间,则状态迁移矩阵为:
Figure BDA00028169803700001310
Figure BDA00028169803700001311
其中
Figure BDA00028169803700001312
Figure BDA00028169803700001313
表示程序组件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个测试程序在公有云结点运行完成所需的执行时间并记为
Figure FDA0002816980360000021
然后记录x个测试程序从公有云结点返回给私有云结点所需的时间,作为测试程序的返回时间用于计算带宽bw;然后再分别记录x个测试程序在私有云结点运行完成所需的执行时间并记为
Figure FDA0002816980360000022
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中的元素为
Figure FDA0002816980360000031
其中,除去对角元素
Figure FDA0002816980360000032
之外,其他元素的权值都为0,
Figure FDA0002816980360000033
表示第i个程序组件在私有云中运行的时间为c0;迁移矩阵A1中的元素为
Figure FDA0002816980360000034
迁移矩阵A1表示迁移至公有云中的单个程序组件,在公有云中的运行时间;其中,·除去对角元素
Figure FDA0002816980360000035
之外,其他元素的权值均为0,
Figure FDA0002816980360000036
表示第i个程序组件在公有云中的运行时间为c1;迁移矩阵A2中的元素为
Figure FDA0002816980360000037
迁移矩阵A2表示同时迁移至公有云中的两个程序组件,在公有云中的运行时间;
Figure FDA0002816980360000038
表示在有向无环图中相邻的第i个和第j个程序组件在公有云中运行的时间为c2;迁移矩阵An中的元素为
Figure FDA0002816980360000039
表示同时迁移至公有云中的n个程序组件,在公有云中的运行时间,
Figure FDA00028169803600000310
表示在有向无环图中相邻的第i个至第k个程序组件在公有云中的运行时间为cn,其中i<k;
B2:初始化邻接矩阵B1,B2,…,Bn,邻接矩阵表示在公有云中的程序组件与在私有云中的程序组件之间通信所需要的时间;邻接矩阵B1中的元素为
Figure FDA00028169803600000311
邻接矩阵B1表示迁移至公有云中的单个程序组件,在迁移后与私有云中的程序组件之间的通信时间;
Figure FDA00028169803600000312
表示迁移至公有云中的第i个程序组件与私有云中的第q个程序组件之间的通信时间为g1,且第i个和第q个程序组件在有向无环图中是相邻的两个程序组件;邻接矩阵B2表示迁移至公有云中的第i个或第j个程序组件,在迁移后与私有云中的程序组件之间的通信时间,且第i个和第j个程序组件在有向无环图中是相邻的两个程序组件,
Figure FDA00028169803600000313
表示迁移至公有云中的第i个程序组件或第j个程序组件,与私有云中第q个程序组件之间的通信时间为g2,M表示第i个程序组件或第j个程序组件,且此组件与第q个程序组件在有向无环图中相邻;邻接矩阵Bn中的元素为
Figure FDA00028169803600000314
表示迁移至公有云中的n个程序组件,在迁移后与私有云中的程序组件之间的通信时间,
Figure FDA00028169803600000315
表示迁移至公有云中的第i个至第k个程序组件中的任意一个程序组件,与私有云中第q个程序组件之间的通信时间为gn,且此组件与第q个程序组件在有向无环图中相邻;
B3:初始化迁移矩阵和邻接矩阵之后,为私有云中运行时间大于τ的单个程序组件添加旁路;
Figure FDA0002816980360000041
表示在私有云中运行的程序组件,
Figure FDA0002816980360000042
的权值表示在私有云中运行的时间,
Figure FDA0002816980360000043
表示在公有云上运行的程序组件,
Figure FDA0002816980360000044
的权值表示在公有云中运行的时间,如果
Figure FDA0002816980360000045
的权值大于τ,则
Figure FDA0002816980360000046
能够迁移到公有云中运行,
Figure FDA0002816980360000047
迁移后成为
Figure FDA0002816980360000048
此时更新迁移矩阵A1中的元素
Figure FDA0002816980360000049
B4:更新邻接矩阵B1
Figure FDA00028169803600000410
表示连接程序组件
Figure FDA00028169803600000411
和程序组件
Figure FDA00028169803600000412
的边,程序组件
Figure FDA00028169803600000413
运行在私有云中,程序组件
Figure FDA00028169803600000414
运行公有云中,
Figure FDA00028169803600000415
的权值表示程序组件
Figure FDA00028169803600000416
与程序组件
Figure FDA00028169803600000417
之间的通信时间,假设程序组件
Figure FDA00028169803600000418
向程序组件
Figure FDA00028169803600000419
发送的数据量大小为d1,则程序组件
Figure FDA00028169803600000420
的权值为
Figure FDA00028169803600000421
所以更新邻接矩阵B1中的元素
Figure FDA00028169803600000422
Figure FDA00028169803600000423
表示连接程序组件
Figure FDA00028169803600000424
和程序组件
Figure FDA00028169803600000425
的边,程序组件
Figure FDA00028169803600000426
运行在私有云中,
Figure FDA00028169803600000427
的权值表示程序组件
Figure FDA00028169803600000428
与程序组件
Figure FDA00028169803600000429
之间的通信时间;设
Figure FDA00028169803600000430
为第i个程序组件处理数据的变化率,
Figure FDA00028169803600000431
表示当第i个程序组件执行完成时,输入数据和输出数据的比值;则
Figure FDA00028169803600000432
的权值为
Figure FDA00028169803600000433
更新邻接矩阵B1中的元素
Figure FDA00028169803600000434
B5:当私有云中运行时间大于τ的单个程序组件的所有旁路添加完成后,继续为在私有云中运行时间之和大于τ,且在有向无环图中相邻的两个程序组件添加旁路;
设需要迁移的两个程序组件分别为
Figure FDA00028169803600000435
Figure FDA00028169803600000436
程序组件
Figure FDA00028169803600000437
Figure FDA00028169803600000438
向公有云迁移后分别变为程序组件
Figure FDA00028169803600000439
Figure FDA00028169803600000440
则两个程序组件在公有云上的运行时间之和
Figure FDA00028169803600000441
然后更新迁移矩阵A2中的元素
Figure FDA00028169803600000442
B6:在更新迁移矩阵A2后对邻接矩阵B2进行更新;
Figure FDA0002816980360000051
表示连接程序组件
Figure FDA0002816980360000052
和程序组件
Figure FDA0002816980360000053
的边,程序组件
Figure FDA0002816980360000054
运行在私有云中,程序组件
Figure FDA0002816980360000055
运行在公有云中,
Figure FDA0002816980360000056
的权值表示程序组件
Figure FDA0002816980360000057
和程序组件
Figure FDA0002816980360000058
之间的通信时间,程序组件
Figure FDA0002816980360000059
向程序组件
Figure FDA00028169803600000510
发送的数据量大小为d2,则
Figure FDA00028169803600000511
的权值为
Figure FDA00028169803600000512
更新邻接矩阵B2中的元素
Figure FDA00028169803600000513
Figure FDA00028169803600000514
表示连接程序组件
Figure FDA00028169803600000515
和程序组件
Figure FDA00028169803600000516
的边,程序组件
Figure FDA00028169803600000517
运行在私有云中,
Figure FDA00028169803600000518
的权值表示程序组件
Figure FDA00028169803600000519
与程序组件
Figure FDA00028169803600000520
之间的通信时间,设
Figure FDA00028169803600000521
分别为程序组件
Figure FDA00028169803600000522
的数据变化率,则
Figure FDA00028169803600000523
的权值为
Figure FDA00028169803600000524
更新邻接矩阵B2中的元素
Figure FDA00028169803600000525
B7:当私有云中运行时间之和大于τ且在有向无环图中相邻的两个程序组件的所有旁路添加完成后,继续为私有云中运行时间之和大于τ的n个程序组件添加旁路,且n个程序组件在有向无环图中相邻;
设n个程序组件分别为
Figure FDA00028169803600000526
且n=j-i+1,n个程序组件
Figure FDA00028169803600000527
迁移到公有云后分别成为程序组件
Figure FDA00028169803600000556
则n个程序组件的运行时间之和
Figure FDA00028169803600000529
Figure FDA00028169803600000530
然后更新迁移矩阵An中的元素
Figure FDA00028169803600000531
B8:在更新迁移矩阵An后对邻接矩阵Bn进行更新;
Figure FDA00028169803600000532
表示连接程序组件
Figure FDA00028169803600000533
和程序组件
Figure FDA00028169803600000534
的边,程序组件
Figure FDA00028169803600000535
运行在私有云中,程序组件
Figure FDA00028169803600000536
运行在公有云中,
Figure FDA00028169803600000537
的权值表示程序组件
Figure FDA00028169803600000538
与程序组件
Figure FDA00028169803600000539
之间的通信时间,程序组件
Figure FDA00028169803600000540
向程序组件
Figure FDA00028169803600000541
发送的数据量大小为dn,则ei的权值为
Figure FDA00028169803600000542
更新迁移矩阵Bn的元素
Figure FDA00028169803600000543
Figure FDA00028169803600000544
表示连接程序组件
Figure FDA00028169803600000545
和程序组件
Figure FDA00028169803600000546
的边,结点
Figure FDA00028169803600000547
运行在私有云中,
Figure FDA00028169803600000548
的权值表示结点
Figure FDA00028169803600000549
与结点
Figure FDA00028169803600000550
之间的通信时间,设
Figure FDA00028169803600000551
分别为程序组件
Figure FDA00028169803600000552
的数据变化率,则
Figure FDA00028169803600000553
的权值为
Figure FDA00028169803600000554
更新Bn中的元素
Figure FDA00028169803600000555
B9:根据有向无环图中的所有旁路,利用动态规划方法寻找最优的迁移策略;设d[i]表示在混合云中从程序组件v1到程序组件vi运行的最短时间,则状态迁移矩阵为:
Figure FDA0002816980360000061
Figure FDA0002816980360000062
其中,
Figure FDA0002816980360000063
Figure FDA0002816980360000064
表示程序组件v1到程序组件vi的最优迁移策略,y表示程序组件v1到程序组件vi中有y个核心程序组件。
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’为公有云结点发送的授权码的索引。
CN202011401143.5A 2020-12-04 2020-12-04 遥感程序在混合云中的迁移部署方法及运行身份验证方法 Active CN112579987B (zh)

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)

* Cited by examiner, † Cited by third party
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 北京京东尚科信息技术有限公司 从公有云到私有云的迁移方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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