SOA架构下补偿模型驱动的安全苛求软件开发

来源 :科协论坛·下半月 | 被引量 : 0次 | 上传用户:XXLXSJXXLXSJ
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着我国高速铁路的快速发展,传统的计算机联锁软件开发方法在灵活性、可维护性、安全性以及开发效率上都显露出不足。针对安全苛求的特点,提出了一个完整的服务组件开发模型,该模型基于SOA(Service Oriented Architecture)思想,并成功将其应用到计算机联锁软件系统开发中,进行了试验验证。结果表明,该模型不仅能提高软件的安全性,还大大提高了软件开发效率。
  关键词:面向服务架构 服务组件架构 安全苛求软件
  中图分类号:TP311 文献标识码:A 文章编号:1007-3973(2012)001-057-02
  1 引言
  铁路车站信号计算机联锁系统,是铁路信号的基础设备,同时也是铁路运输领域中重要的控制系统,它是以现代计算机技术、控制技术和通信技术为基础来实现对车站信号设备的联锁控制。计算机联锁软件成为了计算机联锁系统的核心,因此必须确保它对联锁逻辑的描述和安全控制的实现准确无误。而随着我国高速铁路的快速发展,对联锁软件在技术和功能上提出了新的要求。传统软件开发方法在灵活性、可维护性、软件安全性以及开发效率上都显露出不足。
  计算机联锁是以计算机为主要技术手段实现车站联锁的实时控制系统。其基本任务是对车站值班员的操作命令及现场各种表示信息通过计算机进行逻辑运算,并辅以各种“故障-安全”措施。联锁系统各主要部分的功能和设置地点的划分层次结构,如图1所示。
  
  联锁层是联锁控制系统的核心,联锁机构除了接收来自人机会话层的操作信息外,还接收I/O接口层的反映信号机、动力转辙机和轨道电路状态的信息,即信号控制命令和道岔控制命令。I/O接口层接收来自联锁层的控制命令,经过信号机控制电路,改变信号显示;接收来自联锁层的道岔控制命令,驱动道岔转换。室外设备是联锁系统的控制对象,它包括信号机、转辙机和轨道电路。
  本文针对安全苛求软件的特点,面向我国高速铁路计算机联锁软件的应用需求,基于目前主流的SOA思想的实现规范,即服务组件体系结构SCA,提出并实现了一个完整的服务组件开发模型,挣脱Web Service框架对SOA思想的束缚,并能根据服务组件模型生成代码框架。
  2 SOA和SCA
  面向服务的体系架构SOA(Service Oriented Architecture)是1996年Gartner公司描述实施企业“V英文”时第一次提出来的。W3C将SOA定义为:“一套可以被调用的组件,用户可以发布并发现其接口。”SOA是一种软件设计开发思想,它超越并包含所有的具体技术和所有的具体架构。服务组件框架SCA(Service Component Architecture)的java标准来自IBM。SCA是一套面向服务的SOA编程模型或者说编程架构,也是一种SOA思想的实现方式。SCA通过模块 (Composite) 将SCA的组件集成在一起的。模型开发应用中,总是期望能提高软件开发效率,增强软件安全性。因此,本文针对联锁软件安全性高的特性,提出一种面向联锁的SOA服务组件开发模型。
  3 联锁逻辑服务组件的开发模型
  联锁软件主要由两大部分构成,一是联锁功能程序,二是联锁数据。联锁功能程序主要是对联锁数据进行逻辑运算以完成联锁功能;联锁数据主要用于反映监控车站各个设备的区动采集对象的特征和状态。联锁软件的核心部分是关于基本进路过程的处理,包括进路选排、进路锁闭、进路信号开放、进路信号保持和进路解锁等过程。由此,基本进路可以看成联锁软件提供的流程服务,对应人机会话层操作员办理进路的业务需求。对于操作人员来说,基本进路处理流程作为一个整体服务被调用。这个流程服务包括以下几个任务:进路选排、进路锁闭、进路信号开放、进路信号保持和进路解锁,每个任务通过调用相应的服务来完成联锁软件的功能。在业务流程进路办理的过程中,进路选排服务、进路锁闭服务调用成功,但是进路信号开放服务因为信号灯故障不能开灯,此时对于联锁系统软件的人机会话层来说,业务流程进路办理调用已经失败。而进路选排服务、进路锁闭服务的调用已经成功完成,相关的驱动采集对象如信号机、道岔和区段等设备状态和特性已经被这些成功调用的服务修改了。这就有可能导致不可控的命令下发到室外设备,导致安全隐患。因此,在进路办理的执行过程中出现了业务流程服务未成功调用,但却对设备对象数据产生影响的场景。
  基于上述问题,本文的服务模块开发模型定义了一种被称为“补偿”的服务机制来完善服务的模型,以解决业务流程服务的执行原子性和数据一致性的问题。例如流程服务逐个调用两个服务,如果只有一个基本服务调用成功,可以通过适当的事情来补偿前一个服务调用成功所产生的影响。每个基本服务都有一个相应的补偿处理服务,用于消除对应基本服务的调用产生的影响。一旦进行补偿,流程服务中已经运行完成的所有服务都会依照特定的逻辑进行补偿。补偿服务机制致力于维护业务流程的执行原子性,即业务流程的执行结果只能是以下两种情形之一:流程服务执行成功或流程服务执行失败但不产生任何影响。当执行特定的流程服务时,相关联的用于补偿调用的就是补偿服务。补偿服务仅在流程服务完成时才能够被调用,当流程执行过程中出现故障时,执行预先关联的补偿服务来补偿业务流程服务的行为。在一个业务流程执行过程中,如果定义了关联的补偿服务,就应该记录业务流程各个服务的执行顺序,注册关联的补偿服务及输入数据到补偿服务处理队列。如果业务流程正常完成,则不需要任何补偿。因此基于以上补偿机制,完善的服务组件补偿模型应该满足这样的条件:对任意一个业务流程服务,每次调用的结构要么是成功执行,要么不产生任何影响。即实现了业务流程的执行原子性。基于以上理论,可以得出SCA构架下补偿服务处理机制的通用模型如图2所示。
  
  如图2所示,基本服务1和基本服务2属于同一个组合服务,且都成功的完成了调用(第1,2步)。而属于流程服务的基本服务3的调用(第3步)也成功完成。若此时基本服务4调用(第4步)失败,被业务流程服务关联的补偿服务捕捉到,触发了补偿服务(第5步)。补偿服务开始执行,通过调用后进先出的补偿服务队列(与业务流程完成的次序相反),依次调用补偿处理服务(第6-10步)来补偿之前操作产生的影响。
  实际的联锁软件应用中,用户的需求经常是比较复杂的。联锁软件服务组件除了调用基本的服务组件之外,也需要调用一些优先级较高的紧急操作服务,而这些服务组件往往是依赖外部设备驱动采集的状态。因此,在服务模型中引入了两个特殊的端点,一个是“导入”(Import),使得模块中的服务组件可以调用模块外部的服务。另一个是“导出”(Export),它使得模块外部的应用可以调用模块中的服务组件。导入和导出的引入增加了服务组件的灵活性,使得此模型的服务调用能够跨越服务模块的限制。
  4 模型在计算机联锁软件中的应用
  为了验证和测试上述模型的有效性,基于以上服务模块模型,在linux平台上开发了一个计算机联锁软件系统。此联锁逻辑补偿模型可以获得计算机联锁软件系统的服务组件补偿模型如图3所示。
  联锁软件实时监测人机交互层操作人员的操作命令,调用相应的业务流程服务执行相应的软件功能。在执行流程服务的同时,联锁软件监测是否有来自外部的高优先级服务调用,以保证紧急情况下联锁软件的安全性需求。在以往的联锁软件进路办理过程中,进路办理的进路选排、进路锁闭、进路信号开放、进路信号关闭和进路解锁等过程在程序执行时,除了对联锁数据进行逻辑运算,还需要检测各个执行过程是否成功完成。这提高了联锁软件业务流程各个服务模块的耦合度。每个服务子模块都应包含补偿处理,以消除业务流程执行过程中当前所有已经成功执行的子模块所产生的影响。因此,此服务模型的业务流程子服务模块的补偿处理只关心当前子模块成功调用产生影响,而不会关联到业务流程执行的上下文环境。因此,本文提出的服务组件开发模型能在相当大的程度上减少软件设计开发的冗余,提高软件开发的效率,同时这也限制了各个子模块的功能边界,减少了因为模块之间高度耦合而带来的安全性问题。
  5 结束语
  本文基于SOA思想,针对安全苛求软件的特点,设计了在SCA标准下一种完整的服务组件开发模型,通过在北京地铁试验线计算机联锁系统的应用验证了该模型的正确性。由此模型驱动生成服务组件代码框架,不仅提高了软件的安全,还大大提高了软件的开发效率。此服务组件模型的业务流程服务依赖补偿服务,这种补偿服务机制虽然能提高软件开发效率,但其与业务流程关联度还比较高,提高了服务模块的耦合程度。因此,将来的方向是改进当前补偿服务的执行机制,降低与具体业务流程之间的耦合程度。
  
  参考文献:
  [1] 卢志杰,覃正.SOA构架与电子商务应用集成[J].计算机应用研究,2004,21(10):232-234.
  [2] 王紫瑶,南俊杰,段紫辉,等.SOA核心技术及应用[M].北京:电子工业出版社,2008.
  [3] 蒋林岑,季一木.基于SCA的电子商务系统架构研究与设计[J].计算机技术与发展,2010,31(7):203-206.
  [4] 钱建平,沈备军,陈德来.模型驱动的服务构件开发工具[J].计算机工程,2009,7(11):42-44.
  [5] 刘伯超,马晓轩,葛声.基于Web 服务的软件服务体系结构研究与实现[J].北京航空航天大学学报,2004,30(3):263-266.
其他文献
生命的轮回真是奇怪.自以为懂了,又发现没有懂.走在人生的通衢上,我的眼睛就觑着世故的河,脚尖要飞离尘世的地,但都力不从心.我不是安泰,不能汲取大地的力量,因而常感到疲惫
【摘要】《语文课程标准》指出:“提倡多角度,有创意的阅读。要利用阅读期待、阅读反思和批判等环节,拓展思维空间,提高阅读质量。”“阅读期待”是一种迫切求知的心理状态,是通过悬念的制造,情境的创设,激起学生体验的欲望和探究的欲望。本文谈一下如何在阅读教学中运用“阅读期待”来提高语文课堂教学的有效性。  【关键词】阅读教学 语文课堂 有效性  一、创设情境,唤起学生的阅读期待  著名教育家叶圣陶曾打了个
妈妈,这是初夏的黄昏,晚霞是那样的迷人,你站在我回家的小路的尽头,耐心地等我。每天你的身影会洗尽我满身的疲倦,让我觉得这一天终于结束,又似乎刚刚开始。妈妈,因为有你,我生活得激
期刊
小时候,爷爷时常念叨:在贫困的岁月里,最快乐的事就是添一碗白米饭,浇一匙猪油,一匙酱油,全家人围坐在炕头,分享这一碗奢侈的美味,细细品味,每一粒饭都充满了幸福的香气。幸福的香气是
统一建模语言UML是一种面向对象的标准建模语言,现在无论在欧洲,还是美国,或者世界上的一些其他地区,UML都已经成为了工业界开发的首选方法。介绍了UML的概况和特点,并以一个
在异乡求学的日子里,回家是一种感受.rn熙熙攘攘的人海,鳞次栉比的楼群,无意间听到一句乡音,或是偶然瞥见自己熟悉的民族服装,我都会停下匆忙的脚步,在灯火阑珊处,蓦然回首.
计算机及网络应用的普及,使得各种信息传递与使用方式发生了巨大变化,新型数字化信息载体对档案传统载体材料造成了前所未有的冲击,这些新型档案载体在形成、传递、存储、使
2007年第22届全国青少年科技创新大赛主题已确定为“节约、创新、发展”,本刊在今年暑期合刊上开始展开的“校园节能使者”大征募,其活动宗旨之一就是围绕这一大赛主题。让我
“中国能效标识”的中文名称是“CHINA ENERGY LABEL”的英文名称,实施能效标识的产品都应该标注中英文两种标识名称。作为能效标识的信息标签,它涉及的内容包括生产者名称、
黄龙风景名胜区位于四川省阿坝藏族羌族自治州松潘县境内。海拔在3000米以上,是中国最高的风景名胜区之一。主要景观集中于长约3.6公里的黄龙沟,沟内遍布碳酸钙华沉积,并呈梯田状排列,仿佛是一条金色巨龙,并伴有雪山、瀑布、原始森林、峡谷等景观。黄龙风景名胜区于1992年12月被列入《世界遗产名录》,它既以独特的岩溶景观著称于世,也以丰富的,动植物资源享誉人间,享有“世界奇观”、“人间瑶池”的关誉。