当前位置:首页 期刊杂志

软件故障树分析在铁路自动售票系统服务中的应用

时间:2024-07-28

潘浪涛, 王 成, 李 超

(中国铁道科学研究院电子计算技术研究所,北京100081)

随着我国铁路建设的发展,铁路自动售票系统得到了更加广泛地应用,促进了客运服务和生产。然而在其运营过程中也会陆续出现故障,这其中既有系统级的,也有接口级、设备级、部件级的,而有些系统级的问题一旦发生就会造成整个车站乃至整条线路自动售票系统的瘫痪,严重影响铁路的售票作业和良好形象。通过分析导致铁路自动售票系统应用服务失效(顶事件)的根本原因(底事件或底事件组合),建立铁路自动售票系统应用服务的故障树模型,并结合定性定量分析方法找出铁路自动售票系统应用服务在实际应用中最容易出现故障的关键模块加以改进和优化,使整个系统的稳定性得到提高。

1 软件故障树分析法

软件故障树分析法是从硬件故障树分析发展而来,其基本方法是根据软件系统的逻辑结构,对关键故障事件(即顶事件)做出因果关系分析,找出可能导致顶事件发生的所有原因,然后把“与门”、“或门”等逻辑门连接起来,再找出导致这些原因的更基本的原因,这样逐层向下分析,一直可以分析到最基本的原因(即底事件),并据此采取相应的纠正措施,以达到提高系统可靠性的目的。软件故障树可以将软件系统和控制系统很好的联系起来,从整个系统的角度来考虑故障问题,与单一的从硬件或者软件角度分析相比,其提高系统可靠性方面有着很大的优势。软件故障树分析法的具体分析步骤可见文献[1~4] 。

2 系统应用服务故障树的建立

铁路自动售票系统是近年来自主开发的一种新型的自动化、自助化、智能化的售票方式,是对传统窗口售票方式的有益补充,一定程度上缓解了铁路客运一票难求的局面。其采用3层分布式应用体系,如下图1。其各部分软件均采用服务机制,采用TCP/IP协议进行数据的传递与交换,通讯端口可以根据不同的系统进行相应的调整。

图1 铁路自动售票系统结构图

铁路自动售票系统软件主要由机内软件、自动售票服务器软件、管理软件、监控软件、机内维护软件组成,接口层为客票发售与预订系统(TRS)接口。机内软件和旅客交互完成购票操作,通过铁路自动售票应用服务器和TRS完成数据交互,并向机内维护终端软件和监控服务器提供自动售票机(TVM)各种状态数据。铁路自动售票应用服务器为机内软件提供接口服务和数据库管理,实现对下辖TVM的管理功能,并向监控服务器提供基础数据,完成主要的应用逻辑处理,系统运行维护等复杂交易处理工作,形成了典型的“瘦客户-胖服务”的3层系统架构体系。通过前后台软件的有机结合,保证了铁路自动售票系统的数据一致性,事务完整性和系统运行的安全可靠性。

2.1 系统定义和模块定义

铁路自动售票系统应用服务主要由以下5部分组成。

(1)核心调度模块为服务程序的核心功能模块,负责读取配置文件、监听通信端口、创建守护进程、创建长连接、初始化共享内存和读取终端信息,根据命令请求类型选择对应的模块进行处理。

(2)终端业务处理模块包括客票业务模块、现金业务模块、终端管理业务模块和服务器管理模块,客票业务模块为系统的核心业务模块,负责与旅客购票相关的全部客票业务处理;现金业务模块负责自动售票系统内现金业务和钱箱业务的处理;系统管理模块负责处理系统内的各种数据,包括设备定义、系统基础参数、人员信息等;服务器管理模块负责对应用服务程序本身进行管理,如查看事务处理情况、常连接使用情况等信息。

(3)网络通讯模块负责与铁路自动售票机、TRS、本地数据库进行网络通信和数据交换。

(4)资源管理模块负责smart进程socket连接、数据库连接以及共享内存的管理,包括资源的建立、修复与释放。

(5)日志模块负责记录smart进程的通信日志、错误日志以及调试日志。

2.2 业务流程描述

铁路自动售票应用服务软件采用监听服务机制接收各终端的命令请求,并采用多线程方式对各类命令请求进行并行处理。服务程序与各设备之间采用SOCKET通信,其中与自动售票机、管理终端、监控终端以短连接的方式进行通信,减小系统资源的使用;与TRS应用服务器以及本地数据库之间采用常连接方式通信,以缩短通信时间,提高系统效率。铁路自动售票应用服务软件在监听到终端连接请求后,将请求交由内核调度程序进行处理,内核调度程序启动线程,并根据请求的不同类型,分别交由不同的模块进行处理,并将处理结果存入数据库,最后将处理结果通过网络连接返回给请求方。铁路自动售票系统应用服务的主函数流程图如图2。

图2 铁路自动售票系统应用服务主函数流程图

2.3 SC故障树建立

(1)选取铁路自动售票系统应用服务SC(特指自动售票系统服务器端应用程序,Station Controller,SC)失效作为SC故障树的顶事件。根据近两年自动售票系统的实际运行情况来看,SC失效主要包括smart进程失效和系统超时无响应。

(2)根据铁路自动售票系统应用服务的层次机构及其内部逻辑关系,导致SC失效的主要原因可分为核心控制模块失效、网络通信模块失效、终端业务管理模块失效等,再将这几个模块失效作为子故障树的顶事件,分析其导致各子故障树顶事件发生的原因,得出SC故障树的底事件。最后将其进行综合,得出铁路自动售票系统应用服务故障树,如图3。

图3 铁路自动售票系统应用服务故障树

2.4 分析和结论

利用下行法(即Fuseell Vesely 算法)进行分析,即从顶事件开始,将逐层向下搜索的过程横向列表,当遇到“与门”时就将其输入事件取代输出事件排列在表格同一行的下一列内;当遇到“或门”时就将其输入事件在下一列纵向依次展开,直到故障树的最底层。此时,表格中最后一列的各行都是故障树的割集,然后再利用事件间的逻辑运算规则进行运算并简化,最终可以得到自动售票系统应用服务故障树的全部最小割集,如表1所示。设顶事件(SC失效)为T,SC故障树的最小割集为:{X1},{X2},{X3},{X4},{X5},{X6},{X7},{X8},{X9},{X10}、{X11}、{X12}、{X13}。其中T1:核心控制模块失效,T2:终端业务管理模块失效T3:网络通信模块失效;X1:操作系统性能降低,X2:核心控制模块启动失败,X3:监听端口失败,X4:向其它模块分发任务失败,X5:资源管理模块失效,X6:日志模块失效,X7:客票业务模块失效,X8:现金业务模块失效,X9:终端管理业务模块失效,X10:数据库管理模块失效,X11:与终端通信失败,X12:与TRS通信失败,X13:与数据库通信失败。

结合定性分析可知,铁路自动售票系统应用服务故障树的所有最小割集均为一阶最小割集,因此仅从定性分析角度来看,它们对于顶事件来说都非常重要,而且具有相同的重要度。

通过对铁路自动售票系统应用服务的实际使用情况分析,发现TRS 通信模块和数据库通信模块所采用的长连接在处理多客户端、大数据量的连接请求时失败的概率较高。尝试将其改为短连接,并在实际应用环境中进行测试。通过分析统计数据,发现改变后因为连接请求失败而导致SC失效状况得到有效的改善,与未作改变之前相比,整个系统发生故障次数也明显减少,稳定性得到进一步提升。

表1 下行法过程

3 结束语

本文利用软件故障树分析方法对铁路自动售票系统应用服务进行了详细分析,建立了铁路自动售票系统应用服务失效的故障树模型,并结合实际运行过程中出现的问题对SC故障树进行了定性和定量分析,确定了SC故障树的关键模块,然后采用针对性的措施对铁路自动售票系统应用服务进行了改进,降低了其故障发生的概率,延长了平均无故障运行时间,提高了整个系统的稳定性。

[1] 史定华,王瑞松,故障分析技术方法理论[M] . 北京:北京师范大学出版社,1993.

[2] 陆锦军,王执铨. 基于故障树的校园网通信系统的可靠性分析[J] . 计算机应用与软件,2006,(11):14-15.

[3] 孙志安,裴晓黎,宋昕,等. 软件可靠性工程[M] . 北京航空航天大学出版社,2009.

[4] 权巍,王俊杰,等. 软件故障树分析及其在生化分析仪中的应用[J] . 微电子学与计算机,2009,26(1):173-176.

[5] 唐堃,王明哲,彭怀军,等. 铁路自动售票系统的研究与实现[J] . 铁路计算机应用,2003,12(12):28-31.

[6] 张彦,史天运,李士达,李超. AFC技术及铁路自动售检票系统研究[J] . 中国铁路,2009,18(3):50-55.

[7] 中国铁道科学研究院. 铁路旅客自动售票系统研究报告,DZYF字第021号[R] . 2006.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!