CN111176835B - 基于分级控制的软件自适应方法 - Google Patents

基于分级控制的软件自适应方法 Download PDF

Info

Publication number
CN111176835B
CN111176835B CN201911252731.4A CN201911252731A CN111176835B CN 111176835 B CN111176835 B CN 111176835B CN 201911252731 A CN201911252731 A CN 201911252731A CN 111176835 B CN111176835 B CN 111176835B
Authority
CN
China
Prior art keywords
component
software
software system
components
simplex
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
Application number
CN201911252731.4A
Other languages
English (en)
Other versions
CN111176835A (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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201911252731.4A priority Critical patent/CN111176835B/zh
Publication of CN111176835A publication Critical patent/CN111176835A/zh
Application granted granted Critical
Publication of CN111176835B publication Critical patent/CN111176835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Control By Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于分级控制的软件自适应方法,包括根据软件工程软件体系结构将软件系统抽象成为构件与构件间的组合关系;根据软件系统抽象得到的构件信息,利用Simplex算法将当前工作环境下软件系统许用资源分配给各个构件,同时设计一级控制器;在构件内部寻找可影响构件行为的可调参数,并利用系统辨识算法对构件进行建模,从而将构件作为目标被控系统,在构件内部设计二级控制器,保证构件的实际资源占用不大于为其分配的许用资源。本发明通过引入控制理论的知识更好的为系统提供了稳定性与抗干扰能力,在复杂多变的计算环境中,可以很好的保证整个软件系统的工作性能。

Description

基于分级控制的软件自适应方法
技术领域
本发明属于软件工程领域,具体为一种基于分级控制的软件自适应方法。
背景技术
随着计算系统日益复杂,给应用程序开发人员带来了极大的负担。而现代系统的动态性使这种情况变得更恶劣,该种系统在软件运行中可能会经历突然和不可预测的变化;例如,应用程序工作负载波动和系统组件故障。软件工程师对于管理这种复杂性并确保应用程序在动态环境中成功运行的压力与日俱增。针对该状况,当前已经有提出使用自主或自适应技术来帮助工程师管理这种负担的方案。自适应系统通过调整系统自己的行为来维持控制目标的稳定,以此来响应不可预测的变化。虽然应用程序的功能方面(即语义正确性)的调整通常需要人为干预,但其非功能方面(例如可靠性,性能,能量消耗和成本)代表了应用自适应技术的重要且具有挑战性的机会。例如,客户需要持续保证商定的性能和质量水平。可以通过将它们映射到特定的配置参数来管理这些非功能性方面。可以测量这些属性并用于触发适应机制,即使面对不可预见的环境波动,也能保证满足要求。
现有的自适应手段主要有两种:一种方法是利用程序设计中的逻辑语言,对于不同的环境状态自适应调整不同的软件行为;另一种方法是将小部分软件代码作为自适应目标,对其设计控制器以达到自适应调节的目的。随着软件自适应要求的提高,这两种方法都很难达到满意的效果。前一种方法本质上采用了模式切换的方式,只能在人为设想到的场景中使用,且控制量离散化,很难保证其控制精度,而且对其模式的设计又会增加软件工程师的工作负担;后一种方法则只适用于小部分代码块中,对于大型的软件系统,由于建模误差等问题,很难应用该思路进行软件自适应逻辑设计,而且仅针对一些单变量进行调节,不符合实际工程开发中多可调参数、多被控对象的实际需求。
发明内容
本发明的目的在于提供一种基于分级控制的软件自适应方法。
实现本发明目的的技术方案为:一种基于分级控制的软件自适应方法,包括以下步骤:
步骤1、根据软件工程软件体系结构将软件系统抽象成为构件与构件间的组合关系;
步骤2、根据软件系统抽象得到的构件信息,利用Simplex算法将当前工作环境下软件系统许用资源分配给各个构件,同时设计一级控制器,保证软件系统实际资源占用不大于许用资源,使得每个构件获得当前时刻分配得到的许用资源;
步骤3、对于一个运行中的构件,根据一级控制器结合Simplex算法为控制目标分配的许用资源,在构件内部寻找可影响构件行为的可调参数,并利用系统辨识算法对构件进行建模,从而将构件作为目标被控系统,引入控制理论,在构件内部设计二级控制器,保证构件的实际资源占用不大于为其分配的许用资源。
优选地,所述构件为软件系统中对于功能逻辑不可再分的软件代码块,构件间不存在软件行为上的互相耦合,且构件间采用异步的工作方式。
优选地,将软件系统抽象成为构件与构件间的组合关系的具体方法为:
通过软件体系结构,抽象出软件系统内部的软件代码块作为构件;
通过以构件为节点,构件间的数据通信为边,构造出构件与构件间的组合关系。
优选地,根据软件系统抽象得到的构件信息,利用Simplex算法将当前工作环境下软件系统许用资源分配给各个构件的具体方法为:
步骤2-1、结合软件系统当前时刻的工作状态,给出每个构件在当前的软件工作状态下的功能价值Ai,并确定每个构件在正常工作下需要的额定消耗Ci,构建单纯形表;
步骤2-2、在单纯形表中引入人工变量N、XN,并将单纯形表重写为:
Figure BDA0002309471760000021
其中,AB为构件功能价值向量,AN为零向量,XB为对构件分配的许用资源系数,XN为引入的m维零向量,C为资源占用矩阵,N为引入的m阶单位子矩阵;
步骤2-3、确定引入人工变量的单纯形表的初始解为:
XB=C-1b
步骤2-4、计算鉴别值向量并确定传入变量,若鉴别值向量存在小于0的元素,则选择鉴别值向量中最小非负元素对应的xm+k作为传入变量,并通过求得下式的最优解得到传出变量:
Figure BDA0002309471760000031
其中,Pm+k是指选中的换入变量xm+k对应的约束矩阵中的第m+k列;
步骤2-4、对当前单纯形矩阵进行初等变换,将传入变量变换为其余行为0,第i行为1的列向量,并交换传入变量和传出变量的位置,返回步骤2-4,直至鉴别值均大于0。
优选地,构建的单纯形表具体为:
Figure BDA0002309471760000032
其中,Ai为第i个构件在当前软件系统工作状态下的功能价值,Cij为第i个构件正常工作时对于计算环境中第j种资源的占用量,bi为当前时刻计算环境种第i种资源的可用量,xi为最终确定的对第i个构件分配的许用资源系数。
优选地,鉴别值表达式为:σN=AN-ABC-1N。
本发明与现有技术相比,其显著优点为:1)本发明更多的结合了控制工程中的控制理论,采用分级控制结合软件工程中的软件体系结构对完整软件系统进行剥离分割,通过层层递进的设计控制单元,能够更好的提高控制精度;2)本发明结合软件体系结构思想,对较大的软件系统进行合理的抽象分解,并通过Simplex算法进行资源分配作为对资源调控的执行手段,有效保障了软件系统在自适应过程中对于重要工作性能的保护;3)本发明通过引入控制理论的知识更好的为系统提供了稳定性与抗干扰能力,在复杂多变的计算环境中,可以很好的保证整个软件系统的工作性能;4)本发明设计简单,方便应用于实际系统之中。
附图说明
图1为基于分级控制的软件自适应方法在巡检机器人后台软件系统中的应用结构图。
图2为本发明的流程图。
图3为实施例中机器人后台软件系统架构图。
图4为实施例中机器人后台软件体系结构图。
图5为实施例中机器人后台软件系统的构件与构件组合表示图。
图6为实施例中构件资源调控图。
图7为实施例中软件系统资源占用与许用资源对比图。
图8为实施例中构件间资源分配数据界面。
图9为实施例中示例构件内部配置参数调整图。
具体实施方式
如图1、2所示,一种基于分级控制的软件自适应方法,包括以下步骤:
步骤1、根据软件工程软件体系结构将软件系统抽象成为构件与构件间的组合关系;所述构件为软件系统中对于功能逻辑不可再分的软件代码块,构件间不存在软件行为上的互相耦合,且构件间采用异步的工作方式,在整体架构中将构件作为一级控制中具有自我调节能力的原子整体,将软件系统抽象成为构件与构件间的组合关系的具体方法为:
对于一个完整的软件系统,通过软件体系结构,抽象出软件系统内部的软件代码块作为构件,即将计算量较大的软件整体或者一个完整的功能模块作为一个软件代码块;通过以构件为节点,构件间的数据通信为边,构造出构件与构件间的组合关系图。
步骤2、根据软件系统抽象得到的构件信息,利用Simplex算法将当前工作环境下软件系统许用资源分配给各个构件,同时设计一级控制器,保证软件系统实际资源占用不大于许用资源,从而使得每个构件获得当前时刻分配得到的许用资源;具体为:
步骤2-1、结合软件系统当前时刻的工作状态,给出每个构件在当前的软件工作状态下的功能价值Ai,并通过离线实验确定每个构件在正常工作下需要的额定消耗Ci,构建单纯形表:
Figure BDA0002309471760000041
其中,Ai为第i个构件在当前软件系统工作状态下的功能价值,Cij为第i个构件正常工作时对于计算环境中第j种资源的占用量,bi为当前时刻计算环境种第i种资源的可用量,xi为最终确定的对第i个构件分配的许用资源系数;
步骤2-2、对于上述单纯形表,引入人工变量N、XN,并将单纯形表重写为:
Figure BDA0002309471760000051
其中AB为构件功能价值向量,AN为零向量,XB为对构件分配的许用资源系数,XN为引入的m维零向量,C为资源占用矩阵,N为引入的m阶单位子矩阵;
步骤2-3、确定引入人工变量的单纯形表的初始解为:
XB=C-1b
步骤2-4、计算鉴别值向量并确定传入变量,若鉴别值向量存在小于0的元素,则选择鉴别值向量中最小非负元素对应的xm+k作为传入变量,并通过求得下式的最优解得到传出变量:
Figure BDA0002309471760000052
其中,Pm+k是指选中的换入变量xm+k对应的约束矩阵中的第m+k列;
其中,鉴别值表达式为:
σN=AN-ABC-1N
步骤2-4、对当前单纯形矩阵进行初等变换,将传入变量变换为其余行为0,第i行为1的列向量,并交换传入变量和传出变量的位置,返回步骤2-4,直至鉴别值均大于0;
步骤2-5、将具有资源分配能力的构件组合作为控制目标,对控制目标设计一级控制器,使得控制目标的实际资源占用不高于当前计算环境下的许用资源占用。
步骤3、对于一个运行中的构件,根据一级控制器结合Simplex算法为控制目标分配的许用资源,在构件内部寻找可影响构件行为的可调参数,并利用系统辨识算法对构件进行建模,从而将构件作为目标被控系统,引入控制理论,在构件内部设计二级控制器,保证构件的实际资源占用不大于为其分配的许用资源,具体为:
步骤3-1、寻找构件的内部软件逻辑中的可调变量,该可调变量为构件的配置参数,并可以通过对配置参数的调整直接影响到构件的软件行为;
步骤3-2、将构件可调参数作为对构件的控制量,将构件作为二级被控对象,将构件资源占用作为被控量,利用在构件工作稳态下对控制量施加阶跃信号获得输入输出记录,并进行系统辨识得到构件的数学模型,并对二级被控对象进行控制器设计作为二级控制,赋予其动态调整能力。
下面结合实施例对本发明作进一步详细的描述。
实施例
对于已有的巡检机器人人机交互后台软件,主要功能是为操作者提供对于巡检机器人的行为控制以及对于巡检工作的数据处理工作,根据设计要求与企业级软件开发规范,该后台软件体量较大,根据软件逻辑可以将该软件架构用图3表示。
对于上述软件,使用本发明一种基于分级控制的软件自适应方法,包括以下步骤:
步骤1、利用软件体系结构思想对该软件系统进行划分剥离,可逐步得到由构件与构件组合描述的软件系统框图,如图4和图5所示为获得的构件与构件间的组合关系。
步骤2、对于分割得到的各个构件,假设各个构件内部可以进行自我调节,使得构件在动态运行时的实际资源占用符合期望资源占用要求。进一步在该基础上,实验求得各个构件正常工作下的资源占用与功能价值,如表1所示:
表1
Figure BDA0002309471760000061
结合上表使用Simplex算法对构件进行资源分配。由于构件间已经具有了资源调度的能力,因此可以将所有构件作为一个被控目标,对该被控目标设计一级控制器,使得整个软件系统在运行中实际资源占用符合当前计算环境的许用资源要求。
步骤3、对于步骤2中的假设:构件内部具有自我调节的能力,为满足该假设,需要在每个构件中构建二级控制器。步骤2中,通过Simplex为每一个构件分配的资源作为二级控制器的控制期望,选取构件中的可调配置参数作为控制量构建二级控制系统。以视频监控构件为例:
其中的可调配置参数选为帧率、码率、分辨率,被控量为CPU占用、内存占用、网络带宽占用,通过设计解耦器:
Figure BDA0002309471760000071
进一步设计独立回路的PID控制器:
控制回路 Kp Ki
分辨率-内存占用 7 0.1
码率-网络带宽占用 400 0.01
帧率-CPU占用 20 0.16
在模拟环境下,系统的构件资源调整如图6,整个系统实际占用资源较许用资源要求如图7。实际系统界面如图8和图9,由图可知,通过多级控制的调控,整个软件系统的资源占用符合许用资源要求。
本发明更多的结合了控制工程中的控制理论,采用分级控制结合软件工程中的软件体系结构对完整软件系统进行剥离分割,通过层层递进的设计控制单元,能够更好的提高控制精度,且充分结合软件体系结构思想,对较大的软件系统进行合理的抽象分解,并通过Simplex算法进行资源分配作为对资源调控的执行手段,有效保障了软件系统在自适应过程中对于重要工作性能的保护,并通过引入控制理论的知识更好的为系统提供了稳定性与抗干扰能力,在复杂多变的计算环境中,可以很好的保证整个软件系统的工作性能,方法整体设计简单,方便应用于实际系统之中。

Claims (5)

1.一种基于分级控制的软件自适应方法,其特征在于,包括以下步骤:
步骤1、根据软件工程软件体系结构将软件系统抽象成为构件与构件间的组合关系;
步骤2、根据软件系统抽象得到的构件信息,利用Simplex算法将当前工作环境下软件系统许用资源分配给各个构件,同时设计一级控制器,保证软件系统实际资源占用不大于许用资源,使得每个构件获得当前时刻分配得到的许用资源,具体方法为:
步骤2-1、结合软件系统当前时刻的工作状态,给出每个构件在当前的软件工作状态下的功能价值Ai,并确定每个构件在正常工作下需要的额定消耗Ci,构建单纯形表;
步骤2-2、在单纯形表中引入人工变量N、XN,并将单纯形表重写为:
Figure QLYQS_1
其中,AB为构件功能价值向量,AN为零向量,XB为对构件分配的许用资源系数,XN为引入的m维零向量,C为资源占用矩阵,N为引入的m阶单位子矩阵;
步骤2-3、确定引入人工变量的单纯形表的初始解为:
XB=C-1b
步骤2-4、计算鉴别值向量并确定传入变量,若鉴别值向量存在小于0的元素,则选择鉴别值向量中最小非负元素对应的xm+k作为传入变量,并通过求得下式的最优解得到传出变量:
Figure QLYQS_2
其中,Pm+k是指选中的传入变量xm+k对应的约束矩阵中的第m+k列;
步骤2-5、对当前单纯形矩阵进行初等变换,将传入变量变换为第q行为1,除去第q行的其余行为0的列向量,并交换传入变量和传出变量的位置,返回步骤2-4,直至鉴别值均大于0;
步骤3、对于一个运行中的构件,根据一级控制器结合Simplex算法为控制目标分配的许用资源,在构件内部寻找可影响构件行为的可调参数,并利用系统辨识算法对构件进行建模,从而将构件作为目标被控系统,引入控制理论,在构件内部设计二级控制器,保证构件的实际资源占用不大于为其分配的许用资源。
2.根据权利要求1所述的基于分级控制的软件自适应方法,其特征在于,所述构件为软件系统中对于功能逻辑不可再分的软件代码块,构件间不存在软件行为上的互相耦合,且构件间采用异步的工作方式。
3.根据权利要求1或2所述的基于分级控制的软件自适应方法,其特征在于,将软件系统抽象成为构件与构件间的组合关系的具体方法为:
通过软件体系结构,抽象出软件系统内部的软件代码块作为构件;
通过以构件为节点,构件间的数据通信为边,构造出构件与构件间的组合关系。
4.根据权利要求1所述的基于分级控制的软件自适应方法,其特征在于,构建的单纯形表具体为:
Figure QLYQS_3
其中,Ai为第i个构件在当前软件系统工作状态下的功能价值,Cij为第i个构件正常工作时对于计算环境中第j种资源的占用量,bf为当前时刻计算环境种第f种资源的可用量,xg为最终确定的对第g个构件分配的许用资源系数。
5.根据权利要求4所述的基于分级控制的软件自适应方法,其特征在于,鉴别值表达式为:
σN=AN-ABC-1N。
CN201911252731.4A 2019-12-09 2019-12-09 基于分级控制的软件自适应方法 Active CN111176835B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911252731.4A CN111176835B (zh) 2019-12-09 2019-12-09 基于分级控制的软件自适应方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911252731.4A CN111176835B (zh) 2019-12-09 2019-12-09 基于分级控制的软件自适应方法

Publications (2)

Publication Number Publication Date
CN111176835A CN111176835A (zh) 2020-05-19
CN111176835B true CN111176835B (zh) 2023-06-16

Family

ID=70651943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911252731.4A Active CN111176835B (zh) 2019-12-09 2019-12-09 基于分级控制的软件自适应方法

Country Status (1)

Country Link
CN (1) CN111176835B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448022B1 (en) * 2004-02-10 2008-11-04 Prasad Ram Dynamic software composition in a component-based software system
CN102004671A (zh) * 2010-11-15 2011-04-06 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
CN103676797A (zh) * 2012-09-07 2014-03-26 南京理工大学 模块化分动式多足机器人运动控制器及其控制方法
CN106598590A (zh) * 2016-12-12 2017-04-26 华东师范大学 一种软件体系结构建模与仿真方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448022B1 (en) * 2004-02-10 2008-11-04 Prasad Ram Dynamic software composition in a component-based software system
CN102004671A (zh) * 2010-11-15 2011-04-06 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
CN103676797A (zh) * 2012-09-07 2014-03-26 南京理工大学 模块化分动式多足机器人运动控制器及其控制方法
CN106598590A (zh) * 2016-12-12 2017-04-26 华东师范大学 一种软件体系结构建模与仿真方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Engineering Self-Adaptive Software Systems:From Requirements to Model Predictive Control;KONSTANTINOS ANGELOPOULOS 等;《ACM》;20180430;全文 *
一种基于UML建模的实时测控系统设计;石朝阳;《微计算机信息》;20080101(第01期);全文 *
软件高层抽象设计构造的需求及发展;胡华等;《计算机科学》;19991231(第02期);全文 *

Also Published As

Publication number Publication date
CN111176835A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN109947567B (zh) 一种多智能体强化学习调度方法、系统及电子设备
Moriyama et al. Reinforcement learning testbed for power-consumption optimization
CN109447276B (zh) 一种机器学习系统、设备及应用方法
CN103490956A (zh) 基于业务量预测的自适应节能控制方法及设备、系统
CN108287763A (zh) 参数交换方法、工作节点以及参数服务器系统
CN113285457A (zh) 非理想通信下区域电力系统的分布式经济调度方法及系统
CN110504716A (zh) 光伏逆变器无功模式优化选择方法、终端设备及存储介质
Zhang et al. Deep reinforcement learning towards real-world dynamic thermal management of data centers
CN117873690B (zh) 运算器芯片功耗管理方法、计算子系统以及智能计算平台
CN111221311A (zh) 基于参数变分法的复杂网络分布式脉冲同步方法及系统
Xue et al. Robust distributed control design for interconnected systems under topology uncertainty
CN117972367A (zh) 一种数据存储预测方法、数据存储子系统及智能计算平台
Sessego et al. HYPENS: A Matlab tool for timed discrete, continuous and hybrid Petri nets
Yao et al. Event-triggered finite-time adaptive fuzzy tracking control for stochastic nontriangular structure nonlinear systems
CN111176835B (zh) 基于分级控制的软件自适应方法
Mukaidani Decentralized stochastic guaranteed cost control for uncertain nonlinear large-scale interconnected systems under gain perturbations
Ulus On discrete time infinite horizon optimal growth problem
Spudić et al. Fast coordinated model predictive control of large-scale distributed systems with single coupling constraint
CN111103797B (zh) 基于多变量控制的软件行为调节方法
CN115940202A (zh) 基于人工智能的多逆变器功率分配控制方法、装置及设备
Li et al. Results on incremental stability for a class of hybrid systems
KR20220117432A (ko) 전력 계통 클러스터링 방법 및 장치
CN111679908B (zh) 结合协同控制的机器人软件模块间资源调度方法
Cantoni et al. Scalable iterations for solving constrained LQ control problems with cascade dynamics
Kalabić et al. Decentralized constraint enforcement using reference governors

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