状态分布对象模型研究与改进

2014-03-25 03:07张涛马冲李蜀瑜成静娄阳
西北工业大学学报 2014年1期
关键词:中间件队列分布式

张涛, 马冲, 李蜀瑜, 成静, 娄阳

(1.西北工业大学 软件与微电子学院, 陕西 西安 710072; 2.陕西师范大学 计算机学院, 陕西 西安 710062)

虚拟试验验证支撑框架能够根据任务需求,快速集成分布在各个靶场、设施中的试验、仿真和高性能计算能力,构成一个试验和训练的“逻辑靶场”。同时,提高消息和任务的处理能力,实现快速安装、初始化、测试和执行能力[1]。美国军方正在研发的试验训练使能体系结构(test and training enabling architecture,TENA),该框架以状态分布对象SDO(stateful-distribute-object)为核心对象模型,支持综合状态发布/订阅和远程方法调用的分布式通信机制[2-3]。研究和改进其状态分布对象通信机制和实现方法,对于提高虚拟实验验证框架通信效率、保障其可靠性和实时性,具有重要研究意义。

1 虚拟试验验证支撑框架

虚拟试验验证支撑框架提供了快速构建"逻辑靶场"所需的技术规范、支撑环境和基础服务等。如图1所示,具体包括:试验构建、试验应用、试验管理、分析工具、核心服务和基础支撑。

图1 虚拟试验支撑框架结构示意图

试验构建主要由分布式对象定义语言、分布式对象自动生成工具和试验应用自动生成工具构成。分布对象定义语言支持快速定义分布式对象;分布式对象自动生成工具根据定义模型自动生成分布式对象;试验应用自动生成工具根据用户想定自动生成试验应用。

试验应用主要由多个应用进程构成,应用进程使用了多个分布式对象,并通过分布式对象实现数据交互。试验管理和分析工具则主要用于对试验的实时观测和试验后的数据分析评估。

核心服务主要包括:时间服务、命名服务和执行管理等。时间服务用于虚拟试验中的时间推进;命名服务用于分布式环境下分布式对象查询定位;执行管理是对整个虚拟试验交互资源的集中式管理。

虚拟试验运行支撑中间件是虚拟试验支撑框架的核心部分,是系统组件化和集成的基础,对试验与训练界的互操作、重用和可组合性提供关键支撑。

2 状态分布对象模型

2.1 分布对象元模型

在虚拟试验验证支撑框架中,其分布式对象元模型如图2所示。其核心元素包括:状态分布对象(SDO)、消息(message)和本地状态对象(local Class)。其他辅助数据类型,如基本数据类型(fundamental type)、枚举(enumeration)、容器(vector)、异常(exception)、SDO指针(SDO pointer)和操作(operation)等。

图2 分布式对象元模型

2.2 状态分布对象运行机制

状态分布对象是包含状态和方法的分布式对象,其支持面向状态的发布/订阅和远程方法调用,适用于分布式实时通信与交互。同时,SDO具有聚合和继承等面向对象特性。聚合可组合多个简单SDO构造复杂SDO,继承则代表SDO可以沿用和扩展其父模型的特性。

SDO逻辑结构包括公共状态和对象接口两部分。其中,发布者将公共状态数据发布给所有该SDO的订阅者。对象接口部分则提供位置透明的远程访问方法。在实现结构上,其核心模块是伺服(Servant)和代理(Proxy)。其中,SDO代理是SDO实体的接口,用于接收中间件推送来的状态信息和调用远程方法。SDO伺服则实现将中间件底层消息传输机制与SDO中状态和远程方法相互结合,伺服除了提供SDO的远程方法服务外,还是其状态发布的接口。

通常,一个SDO存在于单一应用中,称该应用为"SDO服务者",SDO实例自身称为伺服。而可能多个订购该SDO对象的靶场应用中均存在其代理,每个代理都有一个SDO公共状态的本地实例,用于缓存其状态数据。SDO的公共状态可以发布给其所有代理,订购者则可以直接调用该SDO方法。其具体运行机制如图3所示。

图3 SDO运行机制示意图

3 状态分布对象交互机制

3.1 SDO状态发布/订阅机制

SDO基于发布/订阅机制实现分布式数据通信,该机制能够通过中间件实现发送者与多个订阅者之间的松散通信。发送者向中间件注册所发布的SDO对象,订阅者则根据兴趣向中间件注册所需的SDO对象,发送者和订阅者无须相互感知。具体发布/订阅流程如图4所示。

图4 SDO发布/订阅流程图

发布者首先通过会话创建SDO的servant,并通过会话发布其公共状态数据。中间件则负责将更新的状态数据序列化后推送给事件通道。订阅者则通过会话向中间件表达订阅兴趣。中间件为订阅者创建一个代理对象,该对象包含一个回调对象缓冲队列。在SDO对象创建、状态更新和销毁时,中间件将为订阅者创建相应的回调对象,并通知订阅者。一个基于SDO的状态发布/订购系统可以抽象表示为一个五元组:

S=其中,

Pub=pub1,pub2,…,pubn表示n个发布者;

S表示各个发布者上的SDO伺服集合;

Sub=sub1,sub2,…,subn表示n个订购者;

P表示各个订购者上的SDO代理集合;

Se为会话(session)集合,会话包括了发布/订购的各个操作原语,例如publish原语用于表示SDO状态的发布,subscribe原语用于表示订购SDO状态。

3.2 SDO消息传输策略

SDO的状态发布/订阅是基于CORBA的实时事件服务实现,即其状态数据通过实时事件通道从发布者端传输到订阅者端,缓存于订阅端的缓冲队列中。单实时事件通道多缓冲队列模式是最简单机制。所有SDO伺服通过同一实时事件通道更新SDO状态,根据兴趣匹配规则,将SDO状态数据发送到相应订阅者的缓冲队列。该方法实现简单,但单个实时事件通道可能成为系统性能瓶颈,难以满足大规模虚拟仿真试验实时性要求。多实时事件通道多缓冲队列模式则是目前广泛使用的传输机制。系统提供多个实时事件通道,同时提供多个状态缓冲队列。多实时事件通道具有良好的性能,但需要提供完善的通道分配管理、负载均衡和调度策略,这将增加实时事件通道维护复杂性和系统开销。

本文提出一种新的多实时事件通道单兴趣通道多缓冲队列的SDO传输策略。如图5所示,每个订阅者创建一个实时事件通道,并将其订阅兴趣发送到系统单一的兴趣通道。SDO伺服从兴趣通道接收到自身订阅兴趣后,解析订阅者的实时事件通道,将更新后SDO状态数据发送至该实时事件通道。由于多个实时事件通道分别隶属于不同的订阅者,既可充分利用多实时事件通道的传输效率,又有效规避了对其管理、调度和订阅匹配开销问题,保障了大数据量传输时的服务质量。

图5 SDO消息传输策略示意图

4 结 论

本文通过研究基于分布式对象的新一代虚拟试验验证支撑框架,设计了其分布对象元模型,并重点研究了状态分布对象运行机制。特别是设计了其状态分布对象的状态数据发布/订阅机制,提出一种新的多实时事件通道单兴趣通道多缓冲队列的SDO传输策略。基于该状态对象模型,设计开发了虚拟试验验证支撑框架原型,并开展初期应用验证研究,取得了良好效果。下一步,将开展该状态分布对象模型的QOS保障技术研究,以保证系统的实时性、时序性和可靠性。

参考文献:

[1] Craig Marsden, Michael Aldinger, Benjamin Leppard. Toward Interoperability between Test and Training Enabling Architecture (TENA) and Distributed Interactive Simulation (DIS) Training Architectures[C]∥Proceedings of the Interservice/Industry Trainging Simulation & Education Conference (I/ITSEC), 2009

[2] Noseworthy J R. Supporting the Decentralized Development of Large-Scale Distributed Real-time LVC Simulation Systems with TENA (The Test and Training Enabling Architecture)[C]∥Proceedings of the 14th IEEE International Symposium on Distributed Simulation and Real Time Applications (DS-RT 2010), 2010

[3] 徐忠富,王国玉,张玉竹. 原瑞政.TENA的现状和展望[J]. 系统仿真学报, 2008, 20(23): 6325-6329

Xu Zhongfu, Wang Guoyu, Zhang Yuzhu, Yuan Ruizheng. Progresses and Prospects of TENA[J]. Journal of System Simulation, 2008, 20(23): 6325-6329 (in Chinese)

猜你喜欢
中间件队列分布式
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
RFID中间件技术及其应用研究
分布式光伏热钱汹涌
基于Android 平台的OSGi 架构中间件的研究与应用
丰田加速驶入自动驾驶队列
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究
中间件在高速公路领域的应用