CN107066314A - 基于开源框架的软件重构方法 - Google Patents
基于开源框架的软件重构方法 Download PDFInfo
- Publication number
- CN107066314A CN107066314A CN201710374875.1A CN201710374875A CN107066314A CN 107066314 A CN107066314 A CN 107066314A CN 201710374875 A CN201710374875 A CN 201710374875A CN 107066314 A CN107066314 A CN 107066314A
- Authority
- CN
- China
- Prior art keywords
- component
- resource
- service
- clouds
- traffic
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于开源框架的软件重构方法,该方法包括:在完成云端应用的开发并部署运行后,通过负载测试确定其每个组件的最大并发用户数和最大资源消耗量,通过不同负载下的性能测试来测量每个组件在稳定负载区间内的各种服务质量指标取值和在云环境的VM上的资源消耗量,并确定每个组件及其实例的不同负载下的动态服务质量和资源消耗量;在应用运行阶段,使用监控工具来获取每个组件实例在每种负载模式下的实际服务质量指标取值和资源消耗量,并通过监控数据来调整每个组件的动态服务质量和云资源消耗量。本发明提出了一种基于开源框架的软件重构方法,实现了跨多个云数据中心间的应用优化部署,并且提高了云端应用的动态服务质量,降低了虚拟机的资源消耗量。
Description
技术领域
本发明涉及云计算,特别涉及一种基于开源框架的软件重构方法。
背景技术
云计算把IT资源、数据、应用以服务的形式通过网络提供给用户,以其部署时间短、风险低、使用方便和可定制等优势在各行业得到了广泛的普及与应用,推动了IT产业的升级和电子商务经济的发展。如何快速地创建面向大规模租户的云端应用,实现租户复杂多元的个性化需求是亟待解决的问题。现有的方法大多数集中在云端应用模型的架构方面,对于跨多个云数据中心间的优化部署以及云端应用模型在粒度划分方面尚无有效先例。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于开源框架的软件重构方法,包括:
在完成云端应用的开发并部署运行后,通过负载测试确定其每个组件的最大并发用户数和最大资源消耗量,
通过不同负载下的性能测试来测量每个组件在稳定负载区间内的各种服务质量指标取值和在云环境的VM上的资源消耗量,并确定每个组件及其实例的不同负载下的动态服务质量和资源消耗量;
在应用运行阶段,使用监控工具来获取每个组件实例在每种负载模式下的实际服务质量指标取值和资源消耗量,并通过监控数据来调整每个组件的动态服务质量和云资源消耗量。
优选地,针对特定云端应用,采用邻接矩阵来表示其组件关系图,并根据组件的部署方案,得到划分后的组件关系图的邻接矩阵,表示在VM网络图中各个组件所需的VM之间的通信量。
优选地,在组件优化部署时,引入二维数组来表示云端应用组件关系图的邻接矩阵,对依据部署方案得到的组件关系图的邻接矩阵进行求和,计算出VM网络的通信量;
优选地,将组件优化部署方法的问题模型表示为:
Min Cost(vm)=P(vmij)
Min Rt(Lvm)=rt(vmij,vmst)
Rres(c)<Rres(vmij);
其中P(vmij)为虚拟机vmij的价格,Rres(vmij)为虚拟机vmij的资源提供量,C为组件集合,Lvm为虚拟机之间的通信链路集合,rt(vmij,vmst)为vmij到vmst的通信量;
上述问题模型表示任意VM中所部署的组件的CPU、内存、存储的资源消耗总量不超过该VM的资源提供能力;在满足Cost(vm)最低的前提下,选择通信量Rt(Lvm)最低的组件部署方案。
本发明相比现有技术,具有以下优点:
本发明提出了一种基于开源框架的软件重构方法,实现了跨多个云数据中心间的应用优化部署,并且提高了云端应用的动态服务质量,降低了虚拟机的资源消耗量。
附图说明
图1是根据本发明实施例的基于开源框架的软件重构方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种基于开源框架的软件重构方法。图1是根据本发明实施例的基于开源框架的软件重构方法流程图。
本发明基于改进的云端应用架构。整体架构包括表现模块、控制模块、应用模块、VM模块、物理模块。表现模块作为云端应用的系统门户为租户提供注册、租用服务,租户通过表现模块发送服务请求。控制模块根据租户的定制需求将租户分配到云端应用中相对应的组件上,租户通过访问特定个或多个组件来实现自身的需求。同时,控制模块对组成云端应用的各个组件进行资源消耗和服务质量指标的监控。根据监控日志,对云端应用的组件数量进行调整。应用模块由一组组件及组件间连接关系组成一个组件化的云端应用,为租户提供服务。组件库提供组成云端应用的组件。VM模块封装了组件独立运行的环境。部署在不同VM中的组件通过VM间的网络进行数据的通信。数据服务器是一类特殊的VM,云端应用的各个组件都操作同一个数据库,该数据库部署在数据服务器上。物理模块的基础设施用于提供VM,VM的来源包括云端应用提供商自身的基础设施,和提供VM租用服务的基础设施提供商。
在该架构下,云端应用提供商首先选择VM来部署云端应用的各个组件;随后当有租户访问时,控制模块用于分配租户访问相应组件,实现租户的需求;云端应用提供商通过监控的情况调整云端应用中组件的数量,即选择VM为负载最高的组件部署多个实例,之后通过控制模块把访问该组件的租户分配到各个相同的实例上,以此提高整个云端应用的性能。
对于以组件化形式组织的云端应用,采用本发明提出的云端应用模型进行描述,其建模方法如下所示。
步骤1:对由多个组件组成的云端应用,依据该云端应用向租户提供的所有可定制功能及功能间的关系,建立该云端应用的功能模型;
步骤2:将功能模型中功能与实现该功能的组件进行映射,确立该云端应用的组件模型,根据确定的功能模型和组件模型,在未有租户进行定制时,建立初始态的云端应用模型;
步骤3:当租户对云端应用进行定制后,根据租户的定制需求,确定每个租户的特征模型,根据租户特征模型中各个特征的含义,对初始态的云端应用模型进行调整,即确定组件模型中各个组件需要部署的实例数量;
步骤4:根据现有租户的特征模型和调整后的组件模型,建立运行态的云端应用模型。
在应用开发阶段,完成云端应用的开发并部署运行后,首先通过负载测试确定其每个组件的最大并发用户数和最大资源消耗量,然后通过不同负载下的性能测试来测量每个组件在稳定负载区间内的各种服务质量指标取值和在云环境的VM上的资源消耗量,并通过对测试数据的分析,确定每个组件及其实例的在不同负载下的动态服务质量和在云设施上的资源消耗量。在应用运行阶段,通过监控工具来获取每个组件实例在每种负载模式下的实际服务质量指标取值和资源消耗量,并通过对监控数据的分析来调整每个组件的动态服务质量和云资源消耗量。
针对特定云端应用,采用邻接矩阵来表示其组件关系图,并根据组件的部署方案,得到划分后的组件关系图的邻接矩阵,此矩阵即表示在VM网络图中各个组件所需的VM之间的通信量。本发明在组件优化部署方法时,引入二维数组来表示云端应用组件关系图的邻接矩阵,对依据部署方案得到的组件关系图的邻接矩阵进行求和,计算出VM网络的通信量。即将组件优化部署方法的问题模型表示为:
其中P(vmij)为虚拟机vmij的价格,Rres(vmij)为虚拟机vmij的资源提供量,C为组件集合,Lvm为虚拟机之间的通信链路集合,rt(vmij,vmst)为vmij到vmst的通信量。上述问题模型表示任意VM中所部署的组件的CPU、内存、存储的资源消耗总量不超过该VM的资源提供能力;在满足Cost(vm)最低的前提下,选择通信量Rt(Lvm)最低的组件部署方案。
以下采用智能搜索算法对组件优化部署方法进行实现。采用整数方式进行编码,即染色体的每个基因表示一个组件实例,染色体的长度为组件集合C的规模大小,每个基因的取值表示该基因代表的组件实例所部署在的VM实例的编号。然后进行初始化:
步骤1:针对组件关系图,根据其组件集合的大小确定染色体的长度;
步骤2:对染色体的每个基因,在满足组件部署问题的资源约束条件下,随机一个VM实例的编号作为该基因的取值,并记录该编号的VM实例所属的VM类型;
步骤3:随机产生染色体的校验序列,即染色体上基因校验的顺序;
步骤4:按校验的顺序判断染色体上的基因所代表的组件实例能否部署在该基因取值所代表的VM实例上。满足组件部署资源约束条件,执行步骤7,否则执行步骤5;
步骤5:在所有基因对应的全部VM实例编号中,为该基因随机一个新的取值,如果该基因代表的组件实例能部署在新的取值所代表的VM实例上,执行步骤7,否则执行步骤6;
步骤6:为该基因分配一个未使用的VM实例,在已使用的全部VM实例编号之外,给该基因一个新的取值,并记录该取值所代表VM实例的类型。
步骤7:判断染色体校验是否结束,如果未结束,回到步骤4,否则,校验结束,计算该随机方案下所使用VM实例的总成本和VM实例间的通信量并记录。
对染色体中的基因进行遗传操作。包括染色体选择、基因重组、染色体变异、染色体修复,其具体步骤如下:
从当前种群中任选两条染色体作为父染色体;
对这两个父染色体,随机产生两个数字i和j作为重组的起始位置和重组部分的长度。
交换两个父染色体重组部分对应位置的基因取值,产生两个新的子染色体。
在产生的当前子染色体中,随机选择变异的基因,删除该基因的取值。在所有基因对应的全部VM实例编号中,为该基因搜索一个新的取值;如果搜索不到这样的VM编号,为该基因分配一个未使用的VM实例,在已使用的全部VM实例编号之外,给该基因一个新的取值,并记录该取值所代表的VM实例的VM类型。
对产生的所有子染色体上的每个基因所代表的组件实例ci,获取该基因的取值即VM编号j,检验VMj的资源提供量是否满足部署在该VM上的所有组件资源消耗总量,如果不满足条件,将组件实例ci从VMj中取出,即代表组件实例ci的基因取值变为空,并从VMj减掉组件实例ci的资源消耗量;
对染色体上取值为空的每个基因所代表的组件实例ci,若存在某个组件实例ck,与ci为相同类型组件并且ck所在的VM实例上还能部署ci,则将ci部署到该VM实例上。否则把ci部署到能够满足其部署约束条件的VM实例上。
输入组件关系图G=(C,E),VM类型集合,每个组件的资源消耗量,每种类型VM的资源提供量。通过以下过程得到组件部署方案,VM的最低总成本Cost(vm),组件部署方案在最低总成本下的最低通信量Rt(Lvm):
步骤1:设定方法的参数,包括种群大小,遗传操作进化代数,选择操作概率,变异操作概率;
步骤2:通过解的初始化,对种群中的每个染色体完成初始化和校验,并计算每条染色体所代表部署方案的总成本、通信量及成本适应度;
步骤3:将当前种群按照成本适应度排序,从中选择成本适应度函数值最低的染色体放入新种群里;
步骤4:通过遗传操作,对当前种群中的染色体进行选择、重组、变异、修复操作,计算产生的新染色体所代表部署方案的总成本、通信量及成本适应度,并将其放入新种群中;
步骤5:选择成本适应度最好的染色体作为近似最优解,根据该染色体计算得到所使用的VM实例的编号和每种类型VM实例的数量。若存在多个成本适应度最好的染色体,则选择通信量最低的染色体作为最优解;
步骤6:根据选出的染色体最优解确定了所用VM实例的编号和所使用的VM实例的类型和每种类型的数量。随机选取染色体最优解的i个基因,在满足组件部署问题的资源约束条件下,对选取的每个基因,在已用的全部VM实例编号中搜索一个新值,即将选取的每个基因对应的组件实例从其已部署到的VM实例中取出,在已用的全部VM实例中选择另外一个可以部署该组件实例的VM实例进行部署,并记录调整后的染色体的通信量。
综上所述,本发明提出了一种基于开源框架的软件重构方法,实现了跨多个云数据中心间的应用优化部署,并且提高了云端应用的动态服务质量,降低了虚拟机的资源消耗量。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (4)
1.一种基于开源框架的软件重构方法,其特征在于,包括:
在完成云端应用的开发并部署运行后,通过负载测试确定其每个组件的最大并发用户数和最大资源消耗量,
通过不同负载下的性能测试来测量每个组件在稳定负载区间内的各种服务质量指标取值和在云环境的VM上的资源消耗量,并确定每个组件及其实例的不同负载下的动态服务质量和资源消耗量;
在应用运行阶段,使用监控工具来获取每个组件实例在每种负载模式下的实际服务质量指标取值和资源消耗量,并通过监控数据来调整每个组件的动态服务质量和云资源消耗量。
2.根据权利要求1所述的方法,其特征在于,针对特定云端应用,采用邻接矩阵来表示其组件关系图,并根据组件的部署方案,得到划分后的组件关系图的邻接矩阵,表示在VM网络图中各个组件所需的VM之间的通信量。
3.根据权利要求1所述的方法,其特征在于,在组件优化部署时,引入二维数组来表示云端应用组件关系图的邻接矩阵,对依据部署方案得到的组件关系图的邻接矩阵进行求和,计算出VM网络的通信量。
4.根据权利要求3所述的方法,其特征在于,进一步包括:将组件优化部署方法的问题模型表示为:
其中P(vmij)为虚拟机vmij的价格,Rres(vmij)为虚拟机vmij的资源提供量,C为组件集合,Lvm为虚拟机之间的通信链路集合,rt(vmij,vmst)为vmij到vmst的通信量;
上述问题模型表示任意VM中所部署的组件的CPU、内存、存储的资源消耗总量不超过该VM的资源提供能力;在满足Cost(vm)最低的前提下,选择通信量Rt(Lvm)最低的组件部署方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710374875.1A CN107066314A (zh) | 2017-05-24 | 2017-05-24 | 基于开源框架的软件重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710374875.1A CN107066314A (zh) | 2017-05-24 | 2017-05-24 | 基于开源框架的软件重构方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107066314A true CN107066314A (zh) | 2017-08-18 |
Family
ID=59611106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710374875.1A Pending CN107066314A (zh) | 2017-05-24 | 2017-05-24 | 基于开源框架的软件重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066314A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971478A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 云平台服务性能的压测方法、装置及计算设备 |
CN112346849A (zh) * | 2019-08-09 | 2021-02-09 | 北京国双科技有限公司 | 一种配置cpu的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853554A (zh) * | 2014-02-20 | 2014-06-11 | 上海大唐移动通信设备有限公司 | 一种软件重构位置确定方法及装置 |
CN105573741A (zh) * | 2015-09-25 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 界面可重构的虚拟应用系统和方法 |
-
2017
- 2017-05-24 CN CN201710374875.1A patent/CN107066314A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853554A (zh) * | 2014-02-20 | 2014-06-11 | 上海大唐移动通信设备有限公司 | 一种软件重构位置确定方法及装置 |
CN105573741A (zh) * | 2015-09-25 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 界面可重构的虚拟应用系统和方法 |
Non-Patent Citations (1)
Title |
---|
商晓: "可定制SaaS应用建模及其优化放置研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971478A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 云平台服务性能的压测方法、装置及计算设备 |
CN110971478B (zh) * | 2018-09-30 | 2022-04-26 | 北京奇虎科技有限公司 | 云平台服务性能的压测方法、装置及计算设备 |
CN112346849A (zh) * | 2019-08-09 | 2021-02-09 | 北京国双科技有限公司 | 一种配置cpu的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167366A1 (en) | Data processing method and device | |
Leivadeas et al. | Efficient resource mapping framework over networked clouds via iterated local search-based request partitioning | |
Makasarwala et al. | Using genetic algorithm for load balancing in cloud computing | |
Frey et al. | Search-based genetic optimization for deployment and reconfiguration of software in the cloud | |
Swarup et al. | Unit commitment solution methodology using genetic algorithm | |
da Silva et al. | Transmission expansion planning optimization by adaptive multi-operator evolutionary algorithms | |
CN104023342B (zh) | 用于确定蜂窝电信网络的规模的系统和方法 | |
US6345240B1 (en) | Device and method for parallel simulation task generation and distribution | |
Aghaei et al. | Redundancy allocation problem for k-out-of-n systems with a choice of redundancy strategies | |
CN110109753A (zh) | 基于多维度约束遗传算法的资源调度方法及系统 | |
Huo et al. | Multi-objective service composition model based on cost-effective optimization | |
CN101946258A (zh) | 基于计算机的业务过程在专用硬件上的基于模型的部署 | |
Mohammadhosseini et al. | An efficient energy-aware method for virtual machine placement in cloud data centers using the cultural algorithm | |
CN110225039A (zh) | 权限模型获取、鉴权方法、网关、服务器以及存储介质 | |
Cheng et al. | Optimal placement of distributed generation units in distribution systems via an enhanced multi-objective particle swarm optimization algorithm | |
CN109447264A (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN113315672B (zh) | 流量分配方法及装置、电子设备及计算机可读存储介质 | |
CN107066314A (zh) | 基于开源框架的软件重构方法 | |
Su et al. | The optimizing resource allocation and task scheduling based on cloud computing and Ant Colony Optimization Algorithm | |
CN111008873A (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
CN117314605B (zh) | 一种互联网金融业务流程管理方法及系统 | |
CN105426247B (zh) | 一种hla联邦成员规划调度方法 | |
CN107171845A (zh) | 基于模块化的信息处理方法 | |
CN104778088A (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与系统 | |
Contini et al. | Simulating smart campus applications in edge and fog computing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170818 |