分布式集群处理环境平台软件技术研究
2015-01-12姜晓辉郭久武崔赛楠
姜晓辉,郭久武,王 博,刘 承,崔赛楠
(1.北京特种机电技术研究所测评中心,北京100012;2.中国兵器工业计算机应用技术研究所车电系统研发部,北京100089)
0 引 言
目前航电、车电、船电计算处理环境均向集群处理机方向发展,呈现信息集中处理、设备分布控制,软件采用构件集成等特点,软件发展表现为以数据为中心的系统互连互通,洛克希德马丁等几家国际军工公司制定了软件数据中心服务规范标准——数据分发服务[1-3]。该标准只定义了系统数据的存在形式和通信架构,对应用软件集成规范和形态并没有明确规定。笔者针对嵌入式设备资源受限、软件集成困难、通信环境复杂等问题,提出了嵌入式软件构件形态、构件化软件体系结构,改进了在分布式集群处理机环境下设备之间通信数据的处理方式[4],并在嵌入式实时操作系统中得到实施验证。
1 嵌入式软件构件形态
嵌入式软件构件是具有独立业务功能、可独立部署,通过标准化的接口与其他软件构件进行信息交互的软件实体[5-7]。构件所完成的独立业务功能由构件设计者按各自的需要设计。
为在资源受限的嵌入式环境下,实现构件的资源管控与构件的信息交互,笔者对软件构件的形态进行了规范,设计了软件构件基类,为构件提供了标准化的构件集成接口。包括:构件的初始化、启动、停止和卸载接口;提供统一的信息订阅、发布接口;提供构件配置接口,便于构件的开发人员进行定时器处理、创建任务等。
嵌入式软件构件形态如图1所示。要将各软件构件装配在一起,形成一个完整的应用系统,每个软件构件还需要一个描述性的文件。构件描述文件描述了软件构件的装配信息,包括构件名称、标识符、版本、启动入口函数、属性和优先级等信息。通过读取构件描述文件,实现构件的运行时集成。
通过基类规范了嵌入式软件构件的标准接口,在软件构件集成时能有效对软件构件进行管控,提高系统的可靠性与稳定性。
图1 嵌入式软件构件形态Fig.1 Embedded software component formation
2 分布式集群处理机通信处理
电子信息系统内部处理机环境十分复杂[8,9],包括通用的处理单元和各种专用处理单元,如数字信号图像处理板、专用的数据交换板、数据采集设备、配电管理设备等;此外,通用的计算处理机设备的结构形式也不同,几个处理单元之间紧密耦合在一起,组成集成处理机,集成处理机之间可通过数据交换单元连接在一起,组成松散的集群处理机;通用处理单元和专用处理单元之间通过不同的总线连接在一起,如专用的DSP(Digital Signal Processor)处理板与通用处理单元可通过机内总线(如:PCI(Peripheral Component Interconnect)、PCI-e、RapidIO、FC(Fiber Channel))进行数据通信,不同集成处理机的通用处理单元之间可通过外部网络总线进行数据通信,通用处理单元可通过外部网络总线(如:CAN(Controller Area Network)、FlexRay)与远端专用设备进行数据通信[10,11]。分布式集群处理环境如图2所示。
图2 分布式集群处理机环境Fig.2 Distributed cluster processor environment
主要包括分布式集群处理机各通用处理单元之间的通用网络通信处理和通用处理单元与远端专用设备信息交互的专用网络通信处理。
通用网络通信处理负责将每个通用处理单元部署运行的软件构件所发布的信息通过交换网络发布到其他通用处理单元,实现各通用处理单元间信息的共享。
对于构件之间产生的周期发布信息,信息服务按照发布周期向其他通用处理单元进行组播;对于触发信息,当信息更新时向其他通用处理单元进行组播。分布式集群处理机环境下信息共享工作流程如图3所示。
图3 分布式集群处理机环境下通用信息共享工作流程Fig.3 General information sharing's working principle in distributed cluster-processor environment
对分布式集群处理机环境中设备按照软件平台网络地址模型进行地址编号,并分配独立的通信网络地址,在系统中唯一存在。通过软件平台提供的分布式信息共享分发,实现软件构件在不同的通用处理单元的信息交互,使有信息交互的软件构件部署运行在不同的通用处理单元也能正常交互信息,实现了软件构件与自身部署运行位置无关,分布式集群处理机环境信息共享流程如图4所示。通用处理单元间信息交互网络数据交换指令格式如图5所示。
图4 分布式集群处理机环境信息共享流程Fig.4 Information sharing process indistributed cluster-processor environment
图5 交换指令数据格式Fig.5 Exchange instruction data format
指令的字段具体含义如表1所示。
表1 网络数据交换指令说明Tab.1 Instruction of network data exchange
为提高网络通信效率,对通用处理单元进行了信息域的划分,并通过组播的方式一次性向分布式集群处理机环境下域内的通用处理单元发布信息,组播及点对点信息通信均采用交换指令,节点接收到信息指令后,按指令解析处理,并更新到全局信息空间。
专用设备可通过标准的uPNP协议接入通用计算处理设备中[12,13],但实际工程应用中存在大量的行业专用设备,没有实现uPNP协议。专用网络通信处理就是为专用设备定制的信息服务,为接入这些专用设备,可为不同的专用设备定制对应的专用信息服务,通过适配方式将专用设备数据转换为通用的信息数据,适配转换示意图如图6所示。
图6 专用设备信息适配Fig.6 Specialized equipment information adapted
3 嵌入式构件化软件平台
3.1 平台体系结构
分布式集群处理机环境涉及硬件平台、总线类型繁多,为方便上层应用软件开发,在分布式集群处理机环境下采用平台化的软件架构,以构件化的形式集成应用功能。软件平台具备清晰的层次关系和接口关系,实现应用与服务的分离,降低软件之间的耦合程度,提高软件的可靠性与可重用性。分布式集群处理机软件体系结构如图7所示。
软件平台可方便地对各功能系统软件构件快速集成,各构件间无耦合与依赖关系,能采用“构件组装”的方式,按不同功能需求组合出不同的应用软件;提供软件构件信息交互环境,软件构件开发只需专注于自身的信息与逻辑处理,与通信链路无关,与软件构件部署运行位置无关;能有效监控和管理软件构件对系统资源的使用情况,提高软件稳定性与可靠性。
图7 分布式集群处理机软件总体结构Fig.7 Overall structure of software of distributed cluster processor
3.2 软件构件动态集成
各软件构件通过系统配置蓝图文件进行组装,平台软件负责加载运行该文件所配置的软件构件。软件构件的动态集成如图8所示。
3.3 软件构件信息服务
软件构件间通信以信息为数据交换基础。采用全局信息空间的概念,所有对该空间中的信息感兴趣的软件构件都可方便地订阅或发布相应的信息[14,15]。使软件构件开发人员能致力于构件内部功能的实现,无需关注底层通信的复杂性,而使构件间信息交互与底层通信链路及构件所运行位置无关。构件信息交互如图9所示。
图8 软件构件动态集成示意图Fig.8 Dynamic integration software component diagram
图9 构件信息交互Fig.9 Component information interaction
通过软件平台提供的软件构件订阅/发布信息接口,实现软件构件间的松耦合关系,软件构件均可独立部署在软件平台上,与其他软件构件无依赖关系。平台软件可保证多构件能并发实时处理数据,可提供5 ms的最小订阅信息周期。
3.3.1 软件构件运行管理
为实现软件构件的调度与构件运行时的资源管控,要求所有的软件构件必须提供初始化、启动、停止与卸载接口,软件构件集成环境通过读取相应的配置文件动态加载软件构件后,依次调用加载的软件构件的初始化与启动接口,完成软件构件的启动。
构件描述文件中还描述有构件使用的内存情况、信号量使用情况等资源描述信息。软件构件集成环境加载软件构件时,同时记录每个构件的资源使用情况,并在运行过程中,通过操作系统提供的接口监控系统中每个任务使用的资源情况。将不同任务的资源使用情况汇总形成各个软件构件的资源使用情况汇总,当构件资源超过描述文件中规定值时,软件构件集成环境调用构件的停止接口,停止构件的运行,并释放相应的资源,再调用卸载接口,完成构件的卸载。
3.4 软件构件冗余备份
3.4.1 单元级冗余备份
集群处理机软件通过一套配置文件,实现了系统中软件构件动态部署与系统的冗余备份设计。集群处理机各通用处理单元均存放系统所有软件构件的库文件与相关描述文件,同时各通用处理单元各自有一个节点蓝图配置文件,用来描述通用处理单元所部署软件构件组成关系以及通用处理单元间的冗余备份关系。
分布式集群处理机环境下各通用处理单元之间通过交换网络以定期广播的方式进行心跳检测,一段时间为未接收到目标节点的心跳信息即认为目标节点失效,启动冗余备份策略。单元级冗余备份策略如图10所示。
图10 单元级冗余备份Fig.10 Unit-level redundant backup
通用处理单元2按照预先配置好的冗余备份策略对通用处理单元1进行监测,通过任务网络以1 s为周期向通用处理单元1发送心跳信息,询问通用处理单元1系统运行状态,通用处理单元1应立即将心跳信息反馈给通用处理单元2,如通用处理单元2在3 s内未接收到通用处理单元1反馈的状态信息,则认为通用处理单元1工作不正常,通用处理单元2按照配置蓝图加载并运行通用处理单元1所加载运行的功能构件,代替通用处理单元1实现系统功能,完成系统的冗余重构过程。
3.4.2 构件级冗余备份
构件级冗余备份是更细粒度的冗余备份,是在监控节点在线的情况下,进一步判断监控节点内构件的运行状态。当监控的构件为异常状态时,加载并运行该构件,代替监控节点的异常构件完成构件的业务功能。构件级冗余备份策略如图11所示。
图11 构件级冗余备份Fig.11 Component-level redundant backup
4 结语
通过规范软件构件形态和开发规范能很好地解决联合开发嵌入式软件的集成问题,通过信息分享机制满足了分布式处理机之间的信息共享问题。目前已经应用于嵌入式实时操作系统(VxWorks)中,验证了笔者提出的嵌入式软件构件形态、分布式集成处理机通信处理、嵌入式构件化软件平台,并应用于实际的车辆综合电子系统分布式集群处理环境中。整个系统包括6个通用计算处理设备和47个专用处理设备,共集成32个软件构件,经验证,系统运行良好。
由于目前所采用的嵌入式实时操作系统只提供了平板内存管理机制,每个软件构件都能访问全部地址空间,在该系统实现的软件构件模型是不安全的。随着嵌入式实时操作系统的技术发展,提供了实时进程(Real Time Process)的应用编程接口,能对每个进程访问的地址空间进行有效的隔离保护。作者将在现有研究成果的基础上,结合嵌入式实时操作系统实时进程的新特性逐步完善软件构件集成安全可靠性方面的工作。
[1]谷青范,康介详,冯国良,等.动态自适应DDS实时中间件的研究与实现[J].计算机科学,2012,39(7):36-38.GU Qingfan,KANG Jiexiang,FENG Guoliang,et al.Reasearch on Implementation of Dynamic Adaptive Real-Time Middleware Based on DDS [J].Computer Science,2012,39(7):36-38.
[2]孙文俊,冯燕,张宏宇.基于DDS的实时信息交换平台研究[J].指挥信息系统与技术,2011,2(1):49-53.SUN Wenjun,FENG Yan,ZHANG Hongyu.Research on Real-Time Data Exchange Platform Based on DDS [J].Command Information System and Technology,2011,2(1):49-53.
[3]卢传富,钱兴华.实时数据发布服务的研究[J].舰船电子工程,2006,26(1):32-38.LU Chuanfu,QIAN Xinghua.Research of Real-Time Data Delivery Service[J].Ship Electronic Engineering,2006,26(1):32-38.
[4]ANDREW S TANENBAUM,MAARTEN VAN STEEN.分布式系统原理与泛型[M].2版.北京:清华大学出版社,2008.ANDREW S TANENBAUM,MAARTEN VAN STEEN.Distributed Systems Principles and Paradigms[M].2 ed.Beijing:Tsinghua University Press,2008.
[5]曹敬瑜,柴玮岩,王博,等.嵌入式分布计算环境下的高效软件构件化框架研究[J].兵工学报,2013,35(4):451-458.CAO Jingyu,CHAI Weiyan,WANG Bo,et al.Reasearch on Efficient Software Component Framework for Embedded Distributed Computing Environment[J].Acta Armamentaril,2013,35(4):451-458.
[6]丁博,王怀民,史殿习,等.一种支持软件可信演化的构件模型[J].软件学报,2011,22(1):322-332.DING Bo,WANG Huaimin,SHI Dianxi,et al.Component Model Supporting Trustworthiness-Oriented Software Evolution[J].Journal of Software,2011,22(1):322-332.
[7]王琦,曾广平,杨倾生.基于构件的服务模板研究[J].计算机工程与设计,2013,34(7):44-50.WANG Qi,ZENG Guangping,YANG Qingsheng.Study on Service Template Based on Component[J].Computer Engineering and Design,2013,34(7):44-50.
[8]胡黄水,秦贵和.基于实际无线环境的无线传感器网络拓扑控制算法[J].吉林大学学报:工学版,2012,37(4):958-962.HU Huangshui,QIN Guihe.Real Wireless Environment Based to Pology Control Algorithm for Wireless Sensor Networks[J].Journal of Jilin University:Engineering and Technology Edition,2012,37(4):958-962.
[9]陈思国,姜旭,王健,等.车载自组网与通用移动通信系统混杂网络技术[J].吉林大学学报:工学版,2013,38(3):706-710.CHEN Siguo,JIANG Xu,WANG Jian,et al.Mashup of Vehicular Ad-Hoc Network and Universal Mobile Telecommunications System [J].Journal of Jilin University:Engineering and Technology Edition,2013,38(3):706-710.
[10]XU Bing,QIN Guihe.Control of MOST Network Equipment Based on Speech Interface [J].Computer Engineering and Design,2009,29(2):268-271.
[11]苏伟,杨斌.数据分发服务在分布式嵌入式系统中的研究与设计[J].成都信息工程学院学报,2011,26(1):72-76.SU Wei,YANG Bin.The Study and Design of Data Distribution Service in Distributed and Embedded Systems[J].Journal of Chengdu University of Information Technology,2011,26(1):72-76.
[12]王传胜,李乔儒.基于JMS的消息服务的研究与开发[J].计算机工程与设计,2005,26(12):35-41.WANG Chuansheng,LI Qiaoru.Research and Application of Message Service Based on JMS [J].Computer Engineering and Design,2005,26(12):35-41.
[13]QIN Guihe,LI Baoling,SONG Yiqing,et al.Design of In-Vehicle MOST Network Audio Node [J].Computer Engineering and Applications,2007,26(2):94-96.
[14]冯庆,桑楠,熊光泽.嵌入式应用中运行支撑框架的构件化技术研究[J].计算机科学,2005,32(3):152-155.FENG Qing,SANG Nan,XIONG Guangze.Research on Component-Based Runtime-Supporting Framework of Embedded Systems[J].Computer Science,2005,32(3):152-155.
[15]李玲,付园,麻晓珍,等.云存储系统中数据冗余策略优化问题[J].吉林大学学报:信息科学版,2013,31(1):1-7.LI Ling,FU Yuan,MA Xiaozhen,et al.Research of Data Redundancy Policy Optimization Problem in Cloud Storage System[J].Journal of Jilin University:Information Science Edition,2013,31(1):1-7.