杨 帆,姚玉南,郑洪江,陈 伟
(1.武汉理工大学,湖北 武汉 430063;2.上海智能网联车载终端工程技术研究中心,上海 200030)
随着信息化技术的飞速发展,人工智能、大数据、物联网等技术逐渐进入了生产和生活中。中国船级社(CCS)在总结了国内外智能船舶使用经验后,提出了智能船舶集成平台的构想。在智能船舶的航行过程中,船端数据和应用相统一的集成平台在建成后,需要与管理智能船舶的监测云平台进行数据的交互[1]。但是现有的服务平台仍然存在着不少问题,其所面向的是复杂的运行环境,超大规模的服务,高度复杂的代码,船岸通信网络的动态变化等,对智能船舶监测云平台的可靠性评估带来了巨大的挑战。
目前研究人员将故障注入[2]、马尔可夫[3]、多阶段多状态[4]等理论引入了对平台的评估中,但是评估的对象具有单一性,基本都是通信云平台,并没有给出完整的理论分析和定量分析,存在着一定的局限性。本文通过对智能船舶监测云平台的功能模块进行分析,将系统分为四个层级和三个状态,利用随机Petri网模型对其进行可靠性评估,结果显示本文构建的模型对于云平台的可靠性评估具有重要意义。
智能船舶监测云平台是智能船舶智能航行的技术保障,船端集成平台对船舶的运行数据进行初步的整合后,通过船岸通信系统,将所有数据发送到智能船舶云平台中,工作人员可以通过该平台对船舶的运行进行监督,当船舶出现故障时,可以直接对该平台数据库存储的数据进行分析,得出初步结论后,结合船端的实际情况,对故障原因进行深度的剖析。智能船舶云平台包括硬件平台、基础软件平台、应用软件平台等,同时平台中对应《智能船舶规范》中的规定,同样集成了智能航行、智能机舱、智能能效管理等子系统,从而形成智能船舶系统。
智能船舶云平台的可靠性需要考虑平台组成中的硬件可靠性和软件可靠性,单单使用一种方法对其可靠性进行评估都是片面的,针对系统的可靠性,人们提出了组合法和状态法[5],组合法对可靠性的分析主要依靠失效数据,在已知系统故障的数据的基础上对可靠性进行评估。状态法主要在分析系统的运行状态后,基于状态之间的转移对可靠性进行建模。
目前,对于网构软件和云平台的评价大多采用状态法[6],利用马尔可夫链直接对系统的状态进行建模分析,但智能船舶云监控平台作为一个复杂系统,拥有着庞大的代码和特殊的功能模块,若直接采用马尔可夫对云平台进行可靠性评估的话会导致状态空间过大,过程繁琐,且容易产生错误,因此本文拟采用随机Petri网结合马尔可夫模型对其进行可靠性评估。
传统的Petri网是一种网状信息流模型,在网状模型中节点主要分为条件和事件2种,在2种节点构成有向二分图的基础上增加表示状态信息的分布,利用事件的变化引发状态变迁,从而体现整个系统的变化过程[7]。近年来,对Petri网进行建模时一般会引入时间等参数,每个变迁都会与一个时间时延变量相联结,这种网络结构就叫做随机Petri网(SPN)[8]。
SPN变迁的时延服从负指数分布,具有无记忆性,若SPN模型的变迁服从指数分布,具有无记忆性,则该模型的状态可达图可同构于一个马尔可夫链,SPN的每个标识对应MC中的一个状态,SPN的可达标识集同构于一个MC的状态空间[9]。计算各状态空间的分布概率即可得到系统的可靠性概率。
目前,智能船舶监测云平台的功能系统主要分为3个:智能航行系统、智能机舱系统、智能能效管理系统。智能船舶监测云平台是一个商业化平台,设立有登录模块,新用户可以通过注册进入系统。进入主界面后,用户可以根据需要选择对应的功能,系统通过搜索与调用对应数据库中数据,对数据进行可视化处理,并提供服务给用户[9]。同时,数据库在合适的时候会通过卫星通信连接船端平台进行智能船舶数据的更新。
由于智能船舶云平台的功能属于线性连接,相应的模块之间属于串联,任何一个构件出现故障都会影响到系统的正常运行,但系统构件过多,直接建模易出现状态爆炸等问题。故建模时对系统进行分层处理,如图1所示,第一层为系统层,这一层为智能船舶监测云平台系统;第二层为子系统层,分为登录系统、智能航行系统、智能机舱系统、智能能效管理系统、船岸连接系统;第三层为模块层,包括登录模块、数据库模块、显示模块等;第四层为基础构件层,这一层的划分与构件的功能相对应,为整个系统的最底层,也是云平台系统最基础的组成部分。
图1 智能船舶监测云平台层级划分
智能船舶监测云平台属于一个动态运行的多态系统,各子系统的状态与系统的状态进行组合,就能形成构件组成系统异常、构件异常系统正常、构件异常系统异常,构件正常系统异常4个状态,但第四种状态存有争议,一般不进行考虑。Petri网是一种常用于复杂多态系统的有效工具,根据系统的功能对其进行构件组成分解后,利用Petri网可以快速实现对构件状态和系统状态的判断,进而对系统可靠性进行评估。而在随机Petri网络中引入瞬时变迁,可以有效降低网络的运行速度,增加求解的精度。
由于软件系统模块内部存在着一定的冗余性,即某一模块出现故障,却不影响其他模块功能的正常使用。智能船舶监测云平台采用的设计架构为微服务架构,各个构件、系统之间相对独立,内聚性强,具有较小的耦合性。而智能航行系统、智能机舱系统、智能能效管理系统三者并无连续性关系,用户可以单独使用其中任一功能而不需要考虑其他功能是否可以正常使用。这3个系统为一个并联系统,如果冗余性大于故障的严重程度,根据软件故障传播定律,故障将会局限在一个模块内,仅仅只会影响到一个子系统的使用,但不影响其他系统的正常运行,因此根据故障的严重程度,可以将智能航行等3个系统的运行状态分为三态,即小微故障、严重故障、系统正常运行,一般情况下系统在正常运行状态,一旦出现故障,系统的状态进行变化,根据故障的严重程度,系统最终所处的状态是小微故障与严重故障中的一个,并不能同时转移到两者中,二者为冲突关系。
对3个系统进行冲突行为建模,由于系统采用微服务架构,各子系统之间的连接关系较为明确,整个系统为一个串并结构,串联系统主要为登录系统、船岸交互系统,这两者为整个系统提供支持,若这2个系统出现故障,将会直接影响到整体系统的运行,故不存在多态,只取故障和正常两态。智能航行等3个系统为并联方式,三者存在着一定的耦合性与独立性,若一个系统出现故障,其余系统正常运行,用户并没有使用这个系统,云平台提供的服务仍然定义为是可靠的,服务的占有率可以根据用户的点击量进行计算,统计一年来的数据,可以算出智能航行系统使用的概率为0.5,智能能效管理使用的概率为0.3,智能机舱系统的使用概率为0.2。占有率与小微故障的乘积即为小微故障这一状态的转移概率。云平台各子系统之间的串并联关系如图2所示。
图2 云平台各子系统之间的串并联关系
根据上述分析,对系统进行分解和分析,利用PIPE4.3.0(Platform Independent Petri Net Editor 4.3.0)软件建立云平台的SPN模型,云平台子系统层级的SPN模型如图3 所示,模型中元素含义如表1所示。
图3 云平台子系统层级的SPN模型
表1 SPN模型中各元素的具体含义
云平台的故障存在着一定的随机性和连续性,故障之间也存在着一定的耦合,为了简化模型,假设其故障的发生是相对独立的。设置各子系统库所的容量函数K=1,即表示库所中的标识只能有1个,P14为子系统的故障数目,根据子系统的数量设置库所容量K=5。图4为SPN模型的状态跃迁图,图4中的有向箭头代表着状态转移的发生,椭圆形为稳定状态,三角形为瞬时状态,软件运行初期其可靠性是时变的,一段时间后进入稳定运行状态,各个可达状态的出现概率趋于常数[5]。由于瞬时状态出现的时间过短,软件失效率远小于执行率,因此我们仅考虑软件运行达到稳定状态后的失效行为。根据状态跃迁图所示,任一子系统的故障,都会引起状态的跃迁,进而影响到系统状态的变化,但对子系统的故障进行维修,系统最终返回到初始状态。
图4 SPN模型的状态跃迁图
在SPN模型中,M0代表着初始状态,SPN 网模型中的每一次变迁的发生和标识的变化,形成一个新的标识 M1。各状态运行可达标识集如表2所示。
表2 各状态运行可达标识集
构件的故障率根据国家关于软件可靠性的标准与软件FMEA分析表,综合计算构件的严酷度等级,将故障程度分为10个级别。为了与故障程度相对应,设置冗余度的等级也为10个级别,冗余度主要根据构件的使用次数、连接的构建数目、程序的复杂度计算得出。冗余度的计算公式如下:
(1)
式中,μ为故障的冗余度级别,即故障的等级如果低于构件的冗余度级别,该故障影响可以被消除,故障被屏蔽;n为该子系统的代码数量;n总为整个系统的代码数量;ki为该子系统被调用的次数;k总为所有子系统的调用次数;li为该子系统连接的子系统数目;lmax为子系统中连接数量最大。
小微故障的跃迁率即为影响被屏蔽的故障发生的概率与子系统使用概率的乘积,计算冗余度之后,对在冗余度等级之下的故障进行统计,可以获得小微故障的分布概率。
软件的维修率为在给定时间内隔离和修复系统中故障的概率。由于设备的复杂性,各构件之间差异较大,所以维修率并非一个定值,根据实际维修情况,维修率的计算公式如下:
(2)
式中,μij(t)为i构件j故障的维修率,t为构件运行的总时间;Ni为系统中i构件运行的总次数;nij为i构件由于j故障的维修次数。
结合云平台的运行数据和开发手册,对故障数据进行统计分析,得到各个子系统故障和维修的概率,λi为系统的变迁概率,即每个变迁对应的故障率与维修率,SPN模型中各库所的变迁概率如表3所示。
表3 SPN模型中各库所的变迁概率
利用PIPE4.3.0软件自带的分析功能对各状态的概率进行求解分析,各子系统可靠度和故障概率如表4所示,各个库所拥有令牌的概率,P0库所代表的意义为系统正常,其概率即系统的可靠性,其值为0.739 37。P14为系统出现故障的数目,若系统出现一个或多个故障,该库所都会出现令牌,该库索的概率即为不可靠度,所以系统的不可靠度为0.260 63,系统的不可靠度与可靠度之和为1。同时计算P1与P2库所,P3、P4、P5这3个库所,其概率之和结果为1,证明该模型正确。
表4为各子系统可靠度和故障概率,根据表4数据,对其分析可知,智能船舶监测云平台的可靠度为0.739 37,属于一个较低的水平,结合各个子系统的可靠度分析,智能航行等3个并联子系统的故障概率较大,可靠度均在0.95之下,串联的子系统可靠度较高,可靠度均在0.95以上,这也与正常的软件可靠性分配模型相似,智能航行和智能机舱的可靠度为系统最低,所以为了提高系统整体的概率,可以提高这2个系统的冗余度或对部分重要构件进行备份,在构件出现故障时,可以利用备份构件提供云服务。
表4 各子系统可靠度和故障概率
智能船舶监测云平台由于其工作环境复杂,代码繁琐,通信不稳定等问题,导致对其进行可靠性分析较为困难。该方法可以很好地权衡软硬件可靠性评估,从状态的变化出发,能够简单快速地计算出模块的可靠性指标,给云平台的维护和使用提供了理论参考。