孙日明,胡先浪
(江苏自动化研究所,江苏 连云港 222061)
随着人工智能、云计算和边缘计算的发展,网络的智能化水平越来越高。涌现了车联网、自组织传感器网络等一系列智能网络系统[1],在国民经济、国防安全等领域发挥了重要作用。然而这些系统往往具有大量的节点且节点均具有较高的智能化水平,如何实现智能网络系统的自我管理(是指能够根据环境的变化自动地调整,以满足各种需求)已成为一项巨大的挑战[2]。
为了以合理的成本应对分布式系统的管理复杂性,IBM 在2001 年提出了自主计算能力[3]。其目的是能够感知和自我管理,并以最少的人为干预来处理复杂性和不确定性,被广泛应用于航天控制、智能交通等领域。目前,自主计算也已被认为是智能网络管理的一种有效技术途径,是智能网络系统的一种基础能力。虽然自主计算体系结构和设计方法领域已经取得了一些显著的成果,但自主计算的评价仍处于早期阶段。对自我管理评价的研究有助于发现智能网络系统的缺陷,为进一步的设计提供有效的参考。
到目前为止,一些学者已经为自主计算系统提出了一些评估指标、模型和简单的工具,但这些研究仍然集中在某些特定属性和基于规则的阶段,缺乏系统的评估模型和复杂的测量工具。本文首先简单地总结了未解决的问题和挑战,然后提出了一种基于PEPA的自主计算能力分析模型。在此基础上,本文将模型转换为ODEs(Ordinary Differential Equations),用自主指标的度量来分析自我管理的能力,并给出了结论。
自主计算通常由其主要属性定义,包括自配置、自愈、自优化和自我保护等。自主计算系统的目的是通过其管理员对给定的高层目标进行自我管理,隐藏系统的复杂性。目前,自主计算评价的研究还处于早期阶段,存在一些不足。
(1)目前,关于自主计算能力的评价研究大多集中在建立度量集。McCann 等人[4]提出了一套包括10 个度量标准的自主计算度量标准;Kaddoum 等人[5]对自主计算的self-* 属性进行评价,但是复杂性较高。Janeska 等人[6]从包括需求在内的多个侧面构建了一个自主管理系统评估度量体系。但是,所有这些度量或度量集都不能评估自主计算的所有特征,其中大多数缺乏定量方法,不能满足细粒度评估的要求。
(2)自主计算目前只有3种评价模型。其中两个是IBM 提出的,分别是自主成熟度模型和自主适应模型。在前者中,自主计算系统分为5 个层次:基础性、管理、预测性、适应性和自主性。这种分类的粒度太粗糙,无法进行严格的评价。在后者中,自主化的能力是通过功能、控制范围和服务流程等方面来衡量的,但由于其粗糙粒度,只能得到定性的结果。第3种评价模型主要采用了AHP(Analysis Hierarchy Process)方法,文献[7]中基于AHP对自主计算能力进行分析,而Khorsand 等人[8]提出一种基于FAHP(Fuzzy AHP)的方法用于分析云环境下自主提供服务的能力,其中度量的权重系数具有很大的主观性,难以客观量化。
(3)现有的自主计算评估工具是IBM 自动化评估工具,它通过用户提交的表格来测量被测试的系统。这个工具的粒度太粗糙,无法在大规模的智能网络系统中使用。并且其他的所有方法都缺乏自动评价工具,效率较低。
(4)此外,另一些学者也结合具体业务系统对自主计算的评价进行了专门研究。Sanchez 等人[9]结合工业4.0网络系统的自主化管理,研究了工业过程(包括数据、人员、事物和服务)实现self-*的评价准则,但是与工业过程紧密耦合,迁移性不强。文献[10]重点分析了现存大型分布式系统的自主计算能力,并对如何选择配置参数等方面进行了分析。Jaleel 等人[11]分别针对云环境和普通计算环境提出了一系列的指标(例如数据通道需求、对现有业务的扰动)来评价系统的自主管理能力和self-*能力。Singh 等人[12]也针对云计算系统下计算资源的自主管理能力进行了评价,但是这种评价主要针对QoS(Quality of Service)应用范围还有一定局限性。
从以上讨论可以看出,ACS的评价需要进一步的研究,才能得到一种细粒度的定量方法。因此,本文将建立一个ACS 评价模型,以支持定量分析和评估。
PEPA 是一种经典的进程代数,具语义验证和定量分析能力,适用于大规模分布系统的建模和分析。PEPA的语法如下:
其中,λ 是动作a的变迁速率,其他操作还包括选择+、合作、隐藏/以及常量定义A。详情可参考文献[13]。传统上,PEPA 通常被映射到一个底层的马尔可夫链来分析性能。然而,当存在大的状态空间时,通常会遇到状态空间爆炸。可以采用连续状态空间近似方法将马尔可夫链生成ODEs[10]来解决这个问题。
设N(Cij,t)=vij(t)表示在时刻t 时第i 个子向量的第j 个入口。用Exit(Cij)表示从N(Cij,t)发出动作的集合,Exit(Cij)表示进入N(Cij,t)动作的集合。PEPA 模型可转化为:
其中,转移概率ρα(Cij,P(t))代表在系统P(t)中当动作α发生时,Cij组件减少的概率;ρβ(Cik,P(t))代表在系统P(t)中当动作β发生时,Cik组件减少的概率。
组件的稳态似然概率等于马尔可夫链计算的稳态概率,其行向量表示为π={π1,π2,…}[14]。
在本质含义上,自主计算是以最小或无人干扰的自我管理方式为用户服务,换言之,自主计算与服务过程密切相关。因此,ACS 可以从服务的角度进行研究,状态代表了自我管理过程中的不同阶段。根据自主计算的特点和服务过程,ACS的状态集表示为S={G,V,A,SC,SH,SO,SP,F,L},各状态如下:
(1)G(General State):系统处于正常服务状态;
(2)V(Vulnerability State):该系统容易受到可疑服务要求或恶意攻击;
(3)A(Adaptation State):检测该系统以确定是否采取自我管理行动;
(4)SC(Self-Configuration State):开展自我配置活动;
(5)SH(Self-Healing State):实施自愈活动;
(6)SO(Self-Optimization State):开展自我优化活动;
(7)SP(Self-Protection):开展自保护活动;
(8)F(Failure State):不能自主管理该系统,进入失效状态;
(9)L(Learning State):通过自我学习,升级应对故障。
这些状态之间的关系如图1 所示。在一开始,系统停留在G 状态。在遭受一些可疑服务需求或恶意攻击时,以一定的概率转向V 状态。然后,系统将确定它是否可以使用当前的自我管理措施进行处理。如果答案是肯定的,则系统进入自适应状态(Adaptation State),并开始实现self-* 活动;否则系统进入F 状态。虽然采取的self-* 措施是有效的,但该系统仍需要回到G 状态,否则它再次达到适应状态。在适应状态下,如果所有的self-* 措施都不能实现自我管理,系统也会转到F 状态。由于未能自行管理系统,采用自主学习的过程重新生成自主系统的知识库,然后系统回到G 状态。
图1 自主系统的状态转移图
根据图1 所示,从服务的角度出发,采用PEPA 对自主计算系统建模。所有的服务请求都可以看作是一系列的进程,具体描述如下:
相应地,自主计算系统建模如图2 所示,其中所有动作的延迟时间都遵循负指数分布。所有的动作速率都可以用Huang的方法得到[15]。
图2 基于PEPA的自主计算系统模型
综上,通过服务交互,自主计算系统模型可以描述为:
在本节中,将PEPA 模型转换为ODEs 进行求解,以避免状态爆炸。
首先需要为系统创建一个基于时间的系统方程,然后才能使用ODEs 生成方法。令:
其中,N(C,t)表示时间t中组件C的个数。可以定义一个基于时间的系统:
利用连续状态空间近似方法,可以将评价模型的状态映射为一系列局部派生,具体如下:
模型中各组件的关系如图3 所示。
图3 模型的活动图
根据式(2)生成ODEs。
其中,xij表示Cij的数量,即对于第i种组件的第j 个派生的数量。而I21是一个特定的符号函数:
自主计算的显著特点是自我管理,但现有的多属性评价方法和注入实验都没有涵盖影响自我管理的所有因素。本文依据自主计算的核心思想来表征自我管理的状态,而不是使用指标集来评估行为,即在自我管理条件下不受人为干扰地完成任务的概率。并将此概率表示为自主指数,它是一个实数,属于(0,1]。
考虑到模型的隐含随机过程是{M(T),t>0},M(T)中的每个状态都有一个形式为Client′▷◁General′,其中Client′和General′分别是Client 和General 状态的派生。本文将模型的状态空间分为两组:自主集合S1和非自主集合S2,S2中每一种状态都有一种形式的Client′▷◁Fail。同样地,稳态{π1,π2,…,πn}由两部分组成:ΠA和ΠF。其中ΠF是与S2相对应的稳态概率子向量。
定义(自主指数):给定π={π1,π2,…,πn}是系统的稳态概率向量,ΠF是对应于S2的稳态概率子向量,自主指标可定义为ΓA∈(0,1]:
根据上一节提出的自主指数,将以量化的方式对自我管理能力进行评估。模型的参数可以根据实际自我管理系统的历史日志得到。假设图2中模型的各个参数如表1 所示。
表1 PEPA 模型的参数值
其次,可以将ODEs的方法与传统的DTMC(Distributed Time Markov Chain)进行比较。其中两种方法的计算时间如表2 所示。其中,“-”表示在内存为4 GB的PC中,计算资源不足。由于ODEs 方法变量是连续的,因此没有状态空间。
从表2 可以看出,DTMC 方法的计算时间大于ODEs。此外,由于状态空间爆炸,DTMC 方法需要更多的计算资源,甚至需要计算机的内存。根据式(9),可以得到当N=10 时自主指数ΓA=0.942。
表2 测试系统的计算时间
接下来以上述案例为实例,分析这些参数对自主指数的影响。通过分析,可以发现提高自我管理能力的关键因素,为自主计算的进一步研究提供参考。为了简化解决的过程,使用了PEPA Eclipse 插件[14]工具。
当可疑的服务需求或恶意攻击发生时,系统可能会选择适应,否则,它将无法在未被发现的情况下管理自己。在图4中,给出了检测概率对自主指数的影响,X 轴是参数β,表示自主计算系统检测漏洞状态的可能性;Y轴是自主指数。从图4中可以看出,自主指数随着检测可能性的增加而增加。当β 接近1.0 时,自主指数有加速增长的趋势。因此,提高检测成功率对提高自主系统的能力具有重要意义。
图4 适应可能性对自主指数的影响
自主计算的特点通常被称为self-*,包括自我配置、自我优化、自我愈合和自我保护,这对于实现自我管理至关重要。在图5中,所有的self-* 特征对自主指数的影响均在同一图中给出。从这个角度看,自主指数随着self-*的增加而增加。值得注意的一点是,如果单个self-* 接近0,自主指数将保持在一个较低的水平,但不会下降到0。这种假设与现实相匹配,例如,一个只能自我配置和自我优化的系统尽管自主管理水平不高,但也是一个自主系统,具有自主能力。
图5 self-* 率对自主指数的影响
有时,自主系统由于知识库的不完备性可能无法自我管理,这对于自主管理能力的影响是致命的。在图6中,随着失效率f的增长,自主指数也随之下降。此外,当失败率接近1.0 时,自主指数达到0.1 以下的值。可以发现,由于故障率的影响是非常严重的,因此应该尽力减少这种可能性。
图6 失效率对自主指数的影响
根据自主计算的核心思想,本文提出了一种基于PEPA的自主计算能力评估模型,可以用于评估智能网络系统的自主计算能力。与现有的ACS 评价方法或模型相比,该模型可以通过总结系统自我管理状态的似然稳态概率来进行定量分析。根据Huang 方法的结果[15],避免了用户设置一系列的系数,所有的系数都可以通过测量动作平均延迟时间来计算。实验结果表明,提高自主检测成功率和self-* 率对增强自主能力具有重要意义。