学校代码 分 类 号 密 级 学 号
10699 TP391.9
题目 大规模虚拟试验系统中异构
网络互连技术研究
作者
葛春平
学科、专业 指 导 教 师 申请学位日期
软件工程 杜承烈 李先国
西 北 工 业 大 学
硕 士 学 位 论 文
(专业学位研究生)
题目:大规模虚拟试验系统中异构网络互连技术研究
作 者: 葛春平 学科专业: 软件工程 指导教师: 杜承烈 李先国
2009 年 6 月
西北工业大学工程硕士论文 摘要
摘 要
虚拟试验作为一类新型的试验方法,在国防工业中取得了长足的发展。随着虚拟试验技术的发展和系统规模的增大,出现了大规模虚拟试验系统。本文结合某国防基础科研项目对大规模虚拟试验系统中的异构网络互连技术进行了研究。主要工作如下:
1. 基于虚拟共享内存机制的分层试验环境。研究了基于虚拟共享内存机制的中间件,提出了应用虚拟共享内存作为主要机制的分层试验环境搭建;设计和实现了大规模虚拟试验中两种通信中间件REVSM和VMICVSM,讨论了两种中间件的功能及其通信机制;设计了连通REVSM和VMICVSM的网关机制,从而搭建了分层虚拟试验环境。
2. 大规模虚拟试验分层时间推进机制。为了解决不同时间推进粒度的子系统互联时的时间一致性问题,提出了一类分层时间推进机制,探讨了不同粒度子系统之间的时间耦合问题,提供了相应的解决方案。针对具体的分层虚拟试验环境,设计了相应的时间推进机制。
3. 大规模虚拟试验支撑平台性能测试分析。针对具体的分层虚拟试验环境,结合已有仿真运行支撑软件性能测试的方法,提出了大规模虚拟试验运行支撑软件的性能测试方案。对REVSM、VMICVSM及两者互连三种情况下试验系统属性更新延迟、吞吐量和时间推进性能进行了测试。通过对测试结果的比较和分析,证实了试验中间件设计的合理性和分层试验平台的可用性。
关键词:大规模虚拟试验;虚拟共享内存;中间件;网关;时间推进
- I -
西北工业大学工程硕士论文 ABSTRACT
ABSTRACT
With the rapid development of information and network technology, synthesizing several kinds of networks and supporting platforms become a trend to build virtual testing system. The key to construct this kind of large scale virtual testing system successfully lies in whether the supporting infrastructure can deliver data to participants in a timely manner.
This paper devoted to the issue of unification and interconnection of virtual testing system. Based on the study of putting up various types of network environment and network layer interconnection program of large-scale virtual testing system, study the following.
1. Hierarchical testing environment based on virtual shared memory mechanism. The middleware based on virtual shared memory mechanism is studied. Hierarchical testing environment applied virtual shared memory as main mechanism is presented. The large-scale virtual testing system which contains REVSM and VMICVSM is realized. These two kinds of middleware’s function and communication mechanism are discussed. Gateway mechanism which connects REVSM and VMICVSM is designed for putting up hierarchical testing environment.
2. Large-scale virtual testing hierarchical time advance mechanism. To address the time consistency problem of subsystems which have different time advance particle size at times of Interconnection, a class of hierarchical time advance mechanism is proposed. Moreover, the time coupling issue of different particle size subsystems is discussed, the paper also provides corresponding solutions. Corresponding mechanism is designed for specific hierarchical virtual time advance testing environment.
3. The performance test analysis of Large-scale virtual testing supporting platform. To aim at specific hierarchical virtual testing environment and with simulation run time supporting software’s performance testing methods, Large-scale virtual testing supporting software’s performance testing scheme is proposed. The testing system update delay of properties, throughput and time advance under three test cases which are REVSM, VMICVSM and interconnection between the two are tested. Through the comparison of test results and analysis, the reasonableness of middleware design and the availability of hierarchical testing platform are confirmed.
Keywords: large scale virtual testing system; virtual shared memory;middleware;gateway;time advance
- II -
西北工业大学硕士学位论文 目录
目 录
摘 要 ................................................................................................................................. I ABSTRACT ..................................................................................................................... II 第一章 绪论 .................................................................................................................... 1 §1.1 背景 ...................................................................................................................... 1 §1.2 研究现状分析 ...................................................................................................... 2 §1.3 论文的组织结构 .................................................................................................. 4 第二章 大规模虚拟试验的基础网络设施 .................................................................... 6 §2.1 大规模虚拟试验局域网技术 .............................................................................. 6 2.1.1 实时以太网技术 ............................................................................................. 6 2.1.2 基于RTP的虚拟试验局域网 ........................................................................ 7 §2.2 复杂虚拟试验中的实时网络技术 ...................................................................... 7 2.2.1 反射内存网[17,20] ........................................................... 错误!未定义书签。 2.2.2 广播内存网[18,19] ........................................................... 错误!未定义书签。 2.2.3 有半实物接入的虚拟试验网络 ................................... 错误!未定义书签。 §2.3虚拟试验中实时网络互连技术 .......................................................................... 11 §2.4 小结 .................................................................................................................... 12 第三章 基于虚拟共享内存机制的分层试验环境 ...................................................... 13 §3.1 虚拟试验支撑中间件思想 ................................................................................ 13 3.1.1 中间件的概念和总体结构 ........................................................................... 13 3.1.2 中间件的选择和应用 ................................................................................... 14 3.1.3 试验支撑中间件的提出 ............................................................................... 14 §3.2 基于虚拟共享内存的中间件设计 .................................................................... 15 3.2.1 虚拟共享内存模式 ....................................................................................... 15 3.2.2 虚拟共享内存实现架构 ............................................................................... 17 3.2.3 分层虚拟共享内存中间件设计 ................................................................... 18 §3.3 REVSM中间件的设计与实现 .......................................................................... 20 3.3.1 通信机制 ....................................................................................................... 20 3.3.2 详细设计 ....................................................................................................... 21 §3.4 VMICVSM中间件的设计与实现 ..................................................................... 26 3.4.1 通信机制 ....................................................................................................... 26 3.4.2 详细设计 ....................................................................................................... 28 §3.5 网关的设计与实现 ............................................................................................ 32 3.5.1 原形架构 ....................................................................................................... 32 3.5.2 网关设计 ....................................................................................................... 33 3.5.3 网关程序 ....................................................................................................... 33 §3.6 小结 .................................................................................................................... 37 第四章 大规模虚拟试验分层时间推进机制 .............................................................. 38
- III -
西北工业大学硕士学位论文 目录
§4.1 分布式系统中常见的时间推进机制 ................................................................ 38 §4.2 分层时间推进机制 ............................................................................................ 39 4.2.1 集中式时间管理 ........................................................................................... 39 4.2.2 基于时钟周期的时间推进 ........................................................................... 40 4.2.3 基于反馈的时间推进 ................................................................................... 40 4.2.4 不同粒度子系统时间耦合问题 ................................................................... 40 §4.3 时间推进机制实现 ............................................................................................ 41 4.3.1 时间推进方式 ............................................................................................... 42 4.3.2 VMICVSM网关时间推进流程 .................................................................... 43 §4.4 小结 .................................................................................................................... 44 第五章 大规模虚拟试验支撑平台性能测试分析 ...................................................... 45 §5.1 测试指标 ............................................................................................................ 45 §5.2 测试环境 ............................................................................................................ 45 §5.3 属性更新延迟测试 ............................................................................................ 46 5.3.1 测试方法 ....................................................................................................... 46 5.3.2 测试结果分析 ............................................................................................... 47 §5.4 吞吐量测试 ........................................................................................................ 47 5.4.1 测试方法 ....................................................................................................... 47 5.4.2 测试结果分析 ............................................................................................... 47 §5.5 时间推进请求响应 ............................................................................................ 48 5.5.1 测试方法 ....................................................................................................... 48 5.5.2 测试结果分析 ............................................................................................... 48 §5.6 小结 .................................................................................................................... 49 第六章 结束语 .............................................................................................................. 51 参考文献 ........................................................................................................................ 53 致 谢 .............................................................................................................................. 55
- IV -
西北工业大学工程硕士论文 第一章 绪论
第一章 绪论
§1.1 背景
由于政治、经济等因素,在国防工业领域中,发展虚拟试验的理论与技术变得越来越重要。虚拟试验是在计算机仿真环境下进行的,将武器装备数字化、模型化后,在数字化产品上所开展的试验工作[1]。它为武器装备的性能测试、试验、战术指标考核、综合性能评估和开发提供了一种新的途径,是国防科技工业领域中的一项关键技术及军工产品的一项重要试验手段。目前,国外尤其是美国在航空、航天、航海、陆军、核工业等研究中大量应用了虚拟试验技术,并取得了显著的成绩;我国对于该领域的研究起步较晚,“十一、五”期间,国防工业不同领域的许多院、所也都将研制支持其相关产品试验的虚拟试验系统。因此,研究虚拟试验系统及其软件的构建技术对于我国有着重要的意义。
从广义上讲,任何不使用或部分使用实际硬件来构造试验环境,完成实际物理试验的方法和技术都可以称为虚拟试验。虚拟试验可以定义为在虚拟环境中进行的试验。而虚拟试验环境是基于软件工程研制的仿真试验系统,它允许设计者将虚拟原型安装在其上进行试验,借助交互式技术和试验分析技术,使设计者在设计阶段就能对产品的运行性能进行评价或体验。也可以说虚拟试验就是在计算机系统中采用软件代替部分硬件或全部硬件来建设各种虚拟的试验环境,使试验者可以如同在真实的环境中一样完成各项预定的试验项目,使所取得的试验效果接近或等于在真实环境中所取得的效果。
虚拟试验是建模与仿真的高级阶段,与建模和仿真的研究目标相似,它们在概念、设计、试验等多个阶段存在交叉,具有很多共性。建模与仿真技术是虚拟试验的关键技术和有效手段,虚拟试验不等于建模与仿真;虚拟试验在建模手段、表现方法、组织形式和流程上都与建模与仿真不同。前者强调的是“虚实结合”,偏重于应用系统的构建,后者偏重于模型的构建方法和驱动方法上,是一种手段,可以应用在除了虚拟试验之外的多个领域。两者既不能相互包含,也不处在同一层次。建模与仿真技术可以作为虚拟试验的有效手段之一,虽然不能直接应用在虚拟试验领域,但是可以为之提供借鉴和参考。与传统试验相比较,它具有以下优点:
1 可以大幅度减少样机制造试验次数,缩短新产品试验周期,同时,降低实际试验的费用。
- 1 -
西北工业大学工程硕士论文 第一章 绪论
2 虚拟试验技术代替实际试验,实现了试验不受场地、时间和次数的,可对试验过程进行回放、再现和重复。
3 对于大型武器系统的虚拟试验,还可以有效的对其型号等敏感信息进行保密。
发达国家的实践表明,虚拟试验技术适应于包括航空、航天、兵器、船舶、核等在内的国防工业各领域,是军工产品试验和测试技术发展的必然趋势[2]。如美国空军的阿诺德工程发展中心(AEDC) 、美国空军飞行试验中心(AFFTC) 、美国海军空战中心以及美国两大航空产品主承包商波音公司和洛·马公司等都采用了虚拟试验的方法,来支持F15、F16、联合直接攻击弹药( JDAM)、F/A18、F22、F35 (JSF)等各种航空武器装备的研制和改进工作[2]。
国内在虚拟试验领域的研究尚处于理论探索和初步实践阶段,主要的研究方向集中在:虚拟试验体系框架和平台研究,分布式仿真系统研究,虚拟现实技术研究,实时仿真技术研究,半实物仿真技术研究等方面。不同领域系统的研制通常都是由该领域专家组织展开的,而由于缺少更有效、更先进的计算机技术的支持,使得他们需要花费精力来解决系统构建、模型开发、资源管理、数据通信、公共服务等问题;实际上,不同系统的虚拟试验,特别是在军工领域方面的虚拟试验在这些方面的需求是相似的,可以重用已有的研究成果[3]。
§1.2 研究现状分析
基于虚拟试验样机的试验验证技术在军事上的应用研究起于1983年美国陆军与美国国防部高级项目研究计划局(DARPA)共同制定的一项合作计划,即SIMNET研究计划[4]。该系统的目标是开发一个供军事训练用的、低成本的分布式虚拟试验验证环境,它的发展为虚拟试验验证技术的发展奠定了基础[5,6]。
经过数十年的发展,国外在虚拟试验验证支撑平台、验证模型体系、导弹总体性能验证方法等方面,取得了一系列的理论和实践成果,并形成了若干典型的应用系统。例如:
(1) TENA(Test&Training Enabling Architecture)
TENA是美国国防部正在通过基础计划2010工程开放的“试验与训练使能体系结构”,其设计的目的是促进试验与训练其设计的主要目的是促进试验与训练的互操作、重用和可组合,可以根据具体的任务需要将分布在各靶场、设施中的试验、训练、仿真、高性能计算能力集成起来,构成一个试验与训练的“逻辑靶场”。文献[6][7]对TENA进行了较详细的研究。为了辅助导弹武器系统设计,美国开发了大量的半实物仿真试验室、数字仿真试验室。但是,如何有效的把这些虚拟资
- 2 -
西北工业大学工程硕士论文 第一章 绪论
源和各种飞行试验靶场结合到一起,进行导弹武器系统总体性能验证成为迫切需要解决的问题。TENA正是美国开发的一个基于虚拟试验样机的、支持武器系统虚拟试验验证的基础框架。TENA设计了一个无缝的框架,整合飞行试验靶场和其它各种虚拟资源,包括训练靶场、半实物仿真实验室、数字化仿真结点等。通过TENA,可以把各种支持导弹武器系统虚拟试验验证的虚拟资源连接在一起,通过底层的通讯机制互相通信,完成对导弹武器系统总体性能参数和关键技术方案的虚拟试验验证。TENA的最终目标是建立通用的试验和训练靶场结构CTTRA(Common Test&Training Range Architecture)。
TENA中间件是TENA的核心。它采用基于UML的模型驱动自动生成复杂CORBA应用的代码,这从很大程度上降低了软件代码人工生成和测试的工作量。中间件将分布共享内存的程序化抽象,匿名订阅发行以及分布式模型驱动的面向对象编程整合成一个直觉中间件系统。
TENA是美国未来10年重点发展的虚拟试验验证技术之一。目前,美国已经将TENA应用到了多个导弹型号的研制过程中,利用TENA开发的完整的虚拟靶场试验平台,在白沙等重要靶场的导弹试验过程中发挥了重要作用,为提高导弹试验的成功率做出了突出贡献。
(2)美国陆军开发的虚拟试验场VPG[8,9](Virtual Proving Ground)。
冷战结束后,世界军事大国普遍削减国防预算。与此同时,一些新型兵器的性能复杂,造价高昂,致使武器试验的费用暴涨。为此,美国陆军试验鉴定司令部在上世纪90年代率先开发了一种以计算机为基础的虚拟试验场(VPG)技术[10],并不断开发其在武器试验方面的功能,扩大其应用范围。其中包括虚拟试验场环境的开发;被试系统的真实战场模拟;数据的采集、处理和分析;自动试验的计划、管理和实施。文献[11]和文献[12]对美国陆军开发的VPG进行了描述
VPG是美国陆军开发的一套支持武器系统全生命周期的虚拟试验验证平台。它的目标是整合建模、仿真和Internet技术,利用先进的虚拟试验样机理念,支持基于武器系统全生命周期的采办。通过VPG,利用现有的建模仿真资源和虚拟试验样机技术,进行新型武器系统虚拟试验验证,服务于武器系统的设计过程,提高对武器系统总体性能进行验证的能力,并大大减少了各种实物试验的次数,提高了美国陆军进行武器系统系统设计的能力,减少了试验成本和时间,并降低了研制新型武器系统的风险。
此外,虚拟试验发展较为先进的美国,在这方面投入的研究经费仍以每年10%的速度增长,可见虚拟试验已经成为计算机技术发展的一个重要领域。
国内在虚拟试验领域的研究起步较晚,目前该领域主要的研究方向集中在虚拟试验体系框架和平台研究、分布式仿真系统研究,虚拟现实技术研究、实
- 3 -
西北工业大学工程硕士论文 第一章 绪论
时仿真技术研究和半实物仿真技术研究等方面。例如虚拟试验领域中的实时仿真技术研究。
实时仿真技术是实物在回路的试验验证过程中常用的技术手段之一,国内对于实时仿真技术的研究主要集中在反射内存网、实时仿真操作系统、实时仿真编程语言等方面。
反射内存网是一种基于高速网络和共享存储器技术的实时网络[13],与传统的联网技术相比,具有严格的传输确定性和可预测性,比传统的网络技术,如以太网、FDDI等有很多技术优势。例如,西北工业大学进行了反射内存网的研究,通过反射内存网实现半实物仿真和数学仿真部分数据的存储和传输。
从上面的现状分析可以看出,目前在国内虚拟试验技术尚未在复杂产品研制领域得到广泛应用,主要研究集中在虚拟试验技术的部分领域内,各个领域的研究是的,缺乏专业之间的联系和沟通,还没有全面完整的对虚拟试验技术进行研究的先例。在虚拟试验技术的发展方面明显落后于欧美等国。
§1.3 论文的组织结构
全文共分六章,内容安排如下:
第一章 绪论。介绍大规模虚拟试验的研究进展、本文的研究工作和解决的问题。
第二章 大规模虚拟试验的基础网络设施。从网络层面入手,研究大规模虚拟试验的支撑平台。其中,针对一般试验需求研究了基于RTP的虚拟试验局域网;针对半实物接入的需求,研究了基于反射内存网的半实物接入网络;探讨了网络层面的异构网络互连技术,指出需要在更高层次完成其互连。为后续讨论两种网络环境的互连机制铺平道路。
第三章 基于虚拟共享内存机制的分层试验环境。引入中间件作为基于网络基础设施搭建大规模虚拟试验支撑环境的思路,首先研究了中间件技术的概念;研究了基于虚拟共享内存机制的中间件,提出了应用VSM作为主要机制的分层试验环境搭建;设计和实现了大规模虚拟试验中两种组成网络的通信中间件REVSM中间件和VMICVSM中间件,并讨论了这两种中间件的功能及其通信机制;针对不同网络互连,需要在中间件层提供网关支持这一需求,设计由网关来连通REVSM和VMICVSM,使整个中间件系统成为一个紧耦合的试验支撑平台。
第四章 大规模虚拟试验分层时间推进机制。为了解决不同时间推进粒度的子系统互联时的时间一致性问题,提出了一类分层时间推进机制,探讨了不同粒度子系统之间的时间耦合问题,提供了相应的解决方案。针对第三章设计的基于VSM
- 4 -
西北工业大学工程硕士论文 第一章 绪论
机制的试验平台,设计了相应的时间推进机制。
第五章 大规模虚拟试验支撑平台性能测试分析。在全面分析大规模虚拟试验实时运行支撑软件特性的基础上,同时结合不同仿真运行支撑软件性能测试的方法,提出了大规模虚拟试验实时运行支撑软件的性能测试方案,然后对属性更新延迟、吞吐量和时间推进性能进行了测试。通过对测试结果的比较和分析,证实了试验中间件设计的合理性和分层试验平台的可用性。
第六章 结束语。总结全文,提出今后研究的方向。
- 5 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
第二章 大规模虚拟试验的基础网络设施
综合运用多种操作系统与网络是当今以及今后大规模虚拟试验系统实现的趋势。各网络技术之间数据传输延迟的不同都是搭建大规模仿真系统需要综合考虑的因素。对虚拟试验支撑平台关键组成部分——网络,充分考虑其实时性和可靠性的设计,从而提高整个系统的性能。本文拟研究的网络有实时以太网、反射内存网、广播内存网等。
§2.1 大规模虚拟试验局域网技术
2.1.1 RTP技术
TCP/IP是目前广泛使用的一种高级网络通信协议,它既适用于局域网也适用于互联网,同时还具备良好的平台支持性。TCP/IP提供TCP和UDP两个主要的传输协议,可以直接运用传输层进行应用程序通信。TCP是一个面向连接的、基于流的、可靠的传输协议,具备如下特征:无错传输;确认传输;以发送数据的顺序进行传输;传输数据不重复;而UDP是一个无连接的、面向数据包的、不可靠的传输协议,不具备上述特征。TCP和UDP均支持点对点通信模式,UDP也支持多播通信模式,相对于UDP,为了确保传输的可靠性,TCP的传输性能低于UDP,尤其是当应用程序希望将数据包传输到多个其他应用程序时尤其如此[14]。
RTP(Real-time Transport Protocol)协议是一种在网络中进行实时数据传输的协议,它提供端对端网络传输功能,适合通过组播和点播传送实时数据,如视频、音频和仿真数据[15]。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP(Real-time Transport Control Protocol)。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个的网络层来实现,而是作为应用程序代码的一部分。实时传输控制协议RTCP和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和
- 6 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
2.1.2 基于RTP的虚拟试验局域网
虚拟试验系统中网络传输的应用数据一般大致可以分为状态信息和控制信息两大类[16]。状态信息主要用于更新各试验对象的状态(如位置),控制信息主要用于控制试验系统行为(如启动、停止等)。状态信息传输一般非常频繁,并且可能是同时向多个节点传输,同时为了使对象状态切换的平滑,也需要较好的实时性。但如果其中不包含影响分布式试验性能的关键信息,如果丢失的数据包中的状态信息可由下一个到达的数据包更新,则可以允许个别丢包的情况发生,即传输的可靠性要求不是十分苛刻。相对于状态信息,控制信息传输一般频率较低,数据量也不大,但其传输的可靠性要求极高,不允许数据包的丢失,否则有可能导致试验系统的行为控制出现错误,严重影响试验的精度。同时,其实时性要求较状态信息低,只要不出现明显的延迟即可,而且其一般都是点对点的传输。
由于TCP具有无错、确认和按顺序传输等属性,TCP可以检测到在分布式试验运行过程中可能发生的瞬时网络问题所造成的数据包丢失,并在其应用层软件不做任何干预的条件下,要求重新传输数据包。因此,可以采用使用TCP协议传输数据的RTCP协议来对可靠性要求极高的控制信息进行可靠传输。由于UDP较TCP具有良好的传输性能和资源占用率,尤其是在进行一对多通信时,UDP多播传输协议是网络拥塞最小化的方法,具备明显的性能优势。由于UDP协议传输本身的不可靠性和无法提供服务质量,因此不直接采用UDP协议进行数据传输,而是采用使用UDP协议传输数据的RTP协议对状态信息进行实时传输。
§2.2 基于VMIC的大规模虚拟试验实时网络技术
半实物试验对于实时性的要求使得实时网技术成为虚拟试验网络架构的基础。作为一项已经发展了十几年的技术,反射内存网技术已经基本成熟,尤其在国外,反射内存网产品已经被广泛地应用到实时领域。VMIC公司是通用电气(GE)公司麾下的企业,VMIC的反射内存产品是其高速网络产品线的一种,它具有如下特点:网络上的每个节点有一个所有数据的本地拷贝;写入的数据被存储到本地RAM,并且播送到其他节点上;当访问本地节点时,完成读数据的过程;实时的、确定的数据传输,减少软件开发时间和费用;低数据传输延迟、实时通讯;易于使用,节点间的距离长(节点间最大距离可达10KM)。
- 7 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
表2-1 VMIC与常规网络技术的比较
VMIC反射内存网络不提供数据过滤功能;中断功能一般用于数据同步,系统需要一个中断用于接受节点读取到的数据,这增加了软件开销。
我们用3块VMIPCI-5587的反射内存板、1块VMIVME-5593自动光纤旁路板和1个Hub机箱建成一个星型的反射内存网,在上面进行反射内存网实时通信技术的应用研究。VMIPCI-5587是VMC公司的反射内存网的主流产品,提供ST的光纤接口,光纤传输带宽为1.2Gbaud,实际网络数据传输率为29.5MBps,最高支持256个节点,每节点间距离最长支持1000英尺(304.8米),板上存储器大小最高可达MB。VMIVME-5593是标准的6U VME总线板,可实现自动旁路。1块VMIVME-5593在反射内存网中最多支持4个节点。Hub机箱是VME总线,1个Hub机箱中背板可以插入多块VMIVME-5593,所有这些板卡通过\"Hub\"自动连成一个完整的整体。 1 SCI反射内存
SCI(Scalable Coherent Interconnection)是近几年推出的一种高带宽低延迟的互连产品,其已实现的667MB/s 的带宽(设计带宽30Gbits/s)与当前的PCI-X (bit,66MHz,528MB/s)和100MHz 存储器总线带宽(bit,800MB/s)在同一量级, 而且SCI 具有低的通信延迟,因此使用SCI 产品互连多台计算机构成一协同工作的高效网络, 其互连板的板上已不需要任何缓冲存储器。
SCI 反射内存网是一种利用系统存储器中的局部存储区为多节点共享内存,利用SCI 通信机制进行节点间数据传输而实现的高速实时互连网络。它支持星形,环形,二维网格及立方拓朴结构,系统规模理论上可无限扩展,目前的三维立方网已能支持256 个节点的互连。SCI 反射内存通信是基于目录的缓存一致的点对点通信。这种通信方式可以降低处理器间的通信延迟。它之所以能做到这一点,是因为取消了软件协议层规范转换所需的执行时间。其最大传输数据块大小的策略(128B)保证了节点间传输延迟的确定性。由于板上没有较贵的双端口存
- 8 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
储器(DRAM 也牺牲了系统实时性), 其系统成本又相对较低。所以SCI 反射内存产品具有高带宽、低延迟和低成本等优势。
SCI 反射内存是一共享存储区,各节点均在本地存储器中建立一与其它节点相同大小和内容的公共存储区, 共享区的数据一致性由一同步机制实现(异步轮询或时间片中断)。任何时间可以对共享区进行读操作,但相同时刻只能允许一个节点对共享区进行写操作,对一节点共享区地址的写引致对所有节点共享区相同地址的写(广播) 。通常写共享区请求具有最高优先级。像广播内存网一样,所有节点在大致相同时间收到数据。一致性同步机制隐藏了访问远端数据的延迟,使得远程通信好象是简单地在本地处理器上的调用和存储一样,且没有传统环形反射内存网的数据不一致的问题。
SCI 反射内存支持节点间的DMA 操作。SCI 反射内存实时网络是目前市场上性能最高的广播式实时网络产品,它既可用于实时控制,也可用作大量数据传输,还可用于大规模机群的基础建设。
SCI 反射内存实时网络支持各种总线和多种操作系统,并已在多种应用中发挥效益, 如各类实物和半实物仿真系统、容错和冗余系统、自动测试系统、工业自动化、高性能机群以及高速数采系统。 2 反射内存网的连接方式
反射内存网是高速的,基于共享内存的光纤连接的环形网络,它能够在异构的总线结构和操作系统之间以确定的速率实时传输数据。
在实时网络应用中,传统的以太网和以太网卡不能满足实时性能的苛刻要求,于是出现了基于虚拟共享内存的实时光纤网。其中VMIC公司的反射内存实时网络Rtnet(ReflectiveMemory)是目前比较成熟的产品之一。反射内存网就是一种快速的实时网络,它可以用来连接各种计算机。反射内存网除了具有严格的传输确定性和可预测性外,还具有高速、主机负载轻、软硬件平台适应性强、可靠的传输纠错能力、支持中断信号传输等特点。反射内存网主要是由反射内存板通过传输介质,每台计算机插一块反射内存板,反射内存网中的每个节点的反射内存板的存储器中都有反射内存网上其它节点的共享数据拷贝。反射内存板可以插在多种总线的主板上,如VME、PCI、CompactPCI等[17,20]。
每个反射内存板都占有一段内存地址,现在流行的板卡内存一般为M或者128M,网上任何计算机向本地反射内存板写数据时,该数据和相应的内存地址被扩散到网上所有其他反射内存板并存储在相同的位置。于是计算机将数据写入其本地反射内存板后在极短的时间内此数据扩散到所有的板卡上,网上所有计算机都可以访问到这个新数据。
- 9 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
反射内存板使用简单的读写方式,对于CPU来说就相当于标准的RAM,而且反射内存网传输是纯硬件操作,不需考虑网络的通信协议,几乎不需要软件操作,因此它与以太网相比具有更低的数据传输延迟、更快的传输速度以及更可靠的准确性,可以满足实时系统快速反应周期的要求。而采用以太网就很难保证这种要求。当一个网络系统对低延迟、实时性要求高时,反射内存网是一个理想的解决方案。
反射内存网的物理拓扑结构主要有两种:一种为环型结构(图2-1);另一种为星型结构(图2-2)。但无论采用哪种拓扑结构对于用户来说效果是一样的,用户不必关心使用哪种连接方式直接对实时网卡进行操作就可以了,因为这些拓扑结构对于用户来说都是透明的。环型结构的优点为不需要光纤Hub、节省设备、光纤使用量少;缺点是每个节点有时延,延迟的时间与网络中节点的数量成正比,网络中有一个节点故障或掉电将影响整个网络。星型结构的优点是需要一个专门的Hub、消除单点失效、实现故障隔离,另外延时较小;缺点是Hub发生故障时将导致整个网络瘫痪。如果采用环型连接,网上所有反射内存板将通过光纤串联起来。如果采用星型连接,网上所有反射内存板将连接到Hub上的自动光纤旁路板(Automatic Node Fiber-Optic Bypass Board),这种星型连接只是物理上的星型连接,从逻辑上看还是环型连接。
反射内存卡光纤连接反射内存卡反射内存卡反射内存卡
图2-1 VMIC反射内存网的环形拓扑结构
- 10 -
西北工业大学工程硕士论文
光纤 第二章 大规模虚拟试验的基础网络设施
光纤
反射内存卡光纤反射内存卡反射内存卡
图2-2 VMIC反射内存网星形拓扑结构
总之,反射内存实时网络为虚拟试验系统提供了更多的CPU资源,使得实时任务能够得到及时处理,高速度,极低且确定的延迟为实时数据传输提供了有力的保证。
§2.3 虚拟试验中实时网络互连技术
本项目拟采用的网络间存在如下差异:从物理连接角度来看,实时以太网采用以太网卡,使用普通网线连接;反射内存网和广播内存网使用特定的实时网卡,使用光纤连接。从性能角度来看,按照如下的顺序实时性和传输效率递增:以太网、实时以太网、广播内存网、反射内存网。从通信协议角度来看,实时以太网使用RTP协议,广播内存网使用广播内存协议,反射内存网采用反射内存协议。从拓扑结构来看,除广播内存网只有星形连接外,其余网络都可以采用星形、总线连接等方式连接。
经典的网络级同构方案为采用统一的协议(TCP/IP)实现。例如对于Ethernet 与Token Ring这样低层网络技术异构的网络,TCP/ IP协议抽象和屏蔽了网络硬件细节,向上提供统一、通用的通信系统。这些网络操作系统固有的网络通信协议虽然各不相同,有IPX/ SPX、NetBEUI等,但当今各主流操作系统都在其新的版本里加入了对TCP/ IP协议的支持。因此,基于不同系统的通信程序,都使用TCP/ IP协议。
但是,本项目中用到的网络间不存在通用的协议,只能通过其他方式实现。从拓扑结构方面考虑,需要引入网关节点解决异构网络间的连接问题;从协议数
- 11 -
西北工业大学工程硕士论文
第二章 大规模虚拟试验的基础网络设施
据格式异构方面考虑,网关需要进行数据协议的转化。可见,需要在网络封装的层次上完成不同实时网络的互连。
§2.4 小结
本章从网络层面入手,研究大规模虚拟试验的支撑平台。其中,针对一般试验需求研究了基于RTP的虚拟试验局域网;针对半实物接入的需求,研究了基于反射内存网的半实物接入网络;探讨了网络层面的异构网络互连技术,指出需要在更高层次完成其互连。为后续讨论两种网络环境的互连机制铺平道路。
- 12 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
第三章 基于虚拟共享内存机制的分层试验环境
将各种实时网络技术引入大规模虚拟试验系统后,需要屏蔽网络的差异,为试验提供统一的支撑环境。这就需要基于统一的中间件接口方式和实现机制,并针对不同网络的特点予以实现;针对不同网络互连,需要在中间件层提供网关支持。
§3.1 虚拟试验支撑中间件思想
3.1.1 中间件的概念和总体结构
中间件[21]是处于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同应用,能够达到资源共享、功能共享的目的。目前,它并没有很严格的定义,但是普遍接受IDC给出的中间件定义为:中间件是一种的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件的网络结构示意图如图3-1所示:
???1???2...???m?????????/????????????n???1???2...
图3-1:中间件的网络结构示意图
如上图所示,中间件具有以下的工作机制:客户端上的应用程序需要从网络中的某个地方获取一定的数据或服务,这些数据或服务可能处于一个运行在不同操作系统和特定查询语言数据库的服务器中,客户/服务器应用程序中负责寻找数据时只需访问一个中间件系统,由中间件完成从网络中找到数据源或服务,进而传输客户请求、重组答复信息,最后将结果返回给客户应用程序的任务。
- 13 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
3.1.2 中间件的选择和应用
中间件种类很多,根据中间件在系统所起的作用和采用的技术不同,可分为数据库中间件、远程过程调用中间件、面向消息中间件、对象请求代理中间件和事务处理中间件等多种类型。同时也产生了许多技术成熟、功能强大的中间件,其中OSF DCE是优秀的中间件,但他们并不适合作虚拟试验系统的中间件,主要原因在于:一方面DCE不支持异步通信,因而不适用于虚拟试验系统这种基于事件驱动、对实时性有较高要求、需要支持同步和异步通信模型的分布式系统;另一方面DCE是面向通用事务应用的中间件,它们所提供的分布中间件服务相对于虚拟试验系统而言过于庞大。
在大规模虚拟试验环境下,中间件的选择必须具有针对性,应该满足以下几个要求:
分布式要求:中间件的主要功能是实现异构系统的连接和分布式应用。 在虚拟试验环境下,中间件的选择必须能够提供分布式服务。
跨平台要求:由于虚拟试验系统通常是由不同功能的子系统构成,必然存在不同的运行平台环境,要把所有的平台都统一起来是一项浩大的工程,并且会造成资源浪费,因此,实现跨平台的中间件也是必须的。
扩展性要求:当虚拟试验系统的复杂程度提高时,原有的功能设计就会起到阻碍作用。采用中间件正是为了使其于系统的各个部分。当存在扩展需求时,只需要对起关键作用的中间件进行扩展,而不需要对系统的各个组成部分进行大量改动。
协议要求:虚拟试验环境下的中间件一般需要支持标准协议(如TCP/IP协议),这样才可以进行服务的多重实现,而且多个实现之间可以进行互操作。
3.1.3 试验支撑中间件的提出
通过试验系统软件基础平台在数据通信和任务调度方面的要求以及现有的中间件技术,我们设计和实现了一个试验支撑中间件。通过支撑中间件为整个验系统提供了一个可靠通用的实时数据传输平台。
在虚拟试验系统中,试验支撑环境担负网络数据实时传输和对通信任务的调度管理。主要提供以下两种服务:
1 为系统提供一个透明统一的实时数据传输服务。
虚拟试验系统本身是一个实时分布试验的管理系统,它主要是对试验过程进行实时数据传输和网络监控管理,因而系统对实时性有一定要求。该系统在提供数据传输服务时,需要呈现给用户的是一个单一的计算机系统。当应用程序与网
- 14 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
络中的其它应用程序进行数据通信时,就好像在本机上通信一样。试验支撑中间件可以提供给系统一个透明统一的实时数据传输平台。
2 为系统提供时间驱动和事件驱动相结合的分布通信任务调度机制。 在虚拟试验系统中,多个通信任务并发执行,通信任务的调度策略直接关系到系统能否在指定的时间内响应各种事件并完成相应的任务处理,对系统的性能有着极大的影响。虚拟试验系统通过试验支撑中间件实现基于时间驱动和事件驱动相结合的分布通信任务调度服务。
§3.2 基于虚拟共享内存的中间件设计
3.2.1 虚拟共享内存模式
虚拟试验系统不得不在多个处理节点之间共享数据,这是分布的本质。在某些情况下,对共享数据的访问可能持续很长时间,数据量也非常大。这种情况下,采用消息发送的方法显然不是信息共享的有效方法。多个计算机可能需要更新这些“全局”数据,例如:在数据库享,或者只让他们读取数据,或者作为可执行代码的实例运行在多个处理器上或者配置表上。共享内存模式为这种模型提供了一种高效的方法。共享数据模式处理这些问题,是使用一个共享内存设备来存储需要共享的数据。这个共享的内存可是物理的硬件实现(如多端口RAM芯片)的或者软件实现的虚拟共享内存(Virtual Shared Memory)。图3-2显示了这个模式的结构。它有两种使用模式:单一全局数据和共享消息队列。一个具体的实例可以是其中的一种或者两种混用。图中的物理设备采用三维方框,软件类则采用标准的矩形框表示。该模式图没有明显显示出的数据通信、试验管理的接口设计与实现。
这种设计方法需要共享内存的支持,不管这个共享内存是虚拟的还是物理的:反射内存和广播内存实时网络技术在本质上就是通过硬件完成的实时共享内存技术,而且这这种硬件实现的共享内存,不仅可以为软件设计省略共享内存的访问同步控制,而且还提供很多支持实时共享内存模式结构的服务,如中断功能,同时基于这些特点在构造仿真系统中可以采用一种基于黑板式的软件结构。因此框架的体系结构采用基于共享内存的实时系统设计模式。共享内存模式的结构示意图如图3-2。
数据客户(data client):Data Client的实例存在于单个处理器上,可以访问Global Data。一般情况是至少有两个以上的不同处理器的数据客户访问同一个Global Data。此外,Data Client可以是一个来自Receiver的Message接受者。
- 15 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
数据源(data source):Data Source存在于单个处理器上,向Shared Memory中的消息队列插入Message。
*DataClient*1GlobalDatareadwrite*1HardwareSemaphore111111Messagequeueinsertremove1MessageProcessor1DataSource**Sender*1*Receiver1通信介质* Shared Memory
图3-2 共享内存模式示意图
接收者(receiver):在大多数的情况下,一个Processor只有一个Receiver。Receiver的任务是:检查在相应的Message Queue中是否有正在等待处理的Message。
全局数据(global data):Global Data对象至少被两个,可能更多个Data Client共享。这些Data Client运行在不同的处理器上。Global Data与Hardware Semphore关联,以确保数据的完整性。
硬件信号灯(hardware semphore):它是硬件支持的信号灯。可以在一个内存周期内被加锁或解锁。
消息(message):Message对象封装了一个UML逻辑消息,该消息被发送到一个Receiver。这个消息可以是一个执行服务的请求,也可以是一个信息请求。
消息队列(message queue):Message Queue管理一组Message对象。 处理器(processor):Processor是物理CPU可以执行的代码。在该模式中至少有两个Processor。在Processor节点中出现的对象,运行在该Processor的本地内存中。
发送者(sender):每个Processor通常只有一个Sender对象。Sender向Message
- 16 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
Queue中插入消息。
共享内存(shared memory):这是一个物理的RAM设备,被多个处理器共享。
3.2.2 虚拟共享内存实现架构
现有流行的实时网络产品其工作原理大同小异,都是在物理上实现内存的共享,不管是环形结构,还是星形结构,因此抽取这几种实时网络共性,就可以根据这些共同的特征来设计出一种通用的软件体系结构,用来支持实时分布仿真。这些共性包括:
硬件实现内存共享:这几种实时网络产品都实现了物理共享内存。传统网
络结构需要很大的CPU开销来处理协议堆栈。广播内存网完全去除这种开销。在实时应用中,这种低开销特别重要,它可使CPU带宽用于其它的高优先级任务,而不是消耗在网络上。
实时性:实时网络物理共享内存都有非常低的写延时,一般为几百纳秒的
读时延和几微秒的写时延的数量级。这使实时网络适合于有确定性数据传送要求的实时系统。与以太网相比,以太网适合于最通用的网络系统,它很难对写时延做出预测,当发生网络冲突时,重发报文的写时延会急剧增加。在局域网的传输中,数据到达目的地的时间可能会慢到几秒的程度。 广播:数据向所有的节点同时扩散,这对于多CPU同步操作方面的应用
是非常重要的特性。一个节点往实时内存中的写入,所有节点将在几十纳秒到几微秒的时差内收到,这些时差与光缆长度差有关。传统以太网和反射式内存环形网不能同时传送数据。
中断功能:可以很方便地通过将数据写入实时内存来引发其它节点的中
断。因为写中断与写数据一起传送,它们同样具有低时延和同步传送到其它所有节点的特性。每一个接收节点都可以在任一实时内存地址上将中断设置为允许或不允许,允许设计人员选择要接收的中断。传统以太网不提供这一层次的中断控制。例如在VMIC的产品中提供了四种中断可供使用,这极大的方便和丰富了程序的设计。
由于共享内存的重要特点――确定性,共享内存分配必须统一管理,以避免数据访问冲突或者数据完整性的破坏。应用程序使用一般的驱动程序访问数据时都要明确指定共享内存的地址偏移量,当内存分配有调整时,应用程序也要作相应改变。如果把对共享内存的地址依偏移量的管理封装在“驱动程序”中,对地址实行自动分配管理,就可以避免上述的数据访问冲突和应用程序的改动。为了避免对共享内存地址的直接操作,可以对全系统的数据进行编号,按编号分配地址、
- 17 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
访问数据,从而控制的数据访问的权限,并可对数据的同步实现有效的监控。系统设计员可事先给出全系统在网上实时传输数据的统一定义,其中包括数据结构、数据同步控制等。
基于这种共享内存的实时网络在各计算机系统之间形成相同的物理和逻辑内存映射,并可传输中断,这就在系统总体逻辑结构上构成一种以共享数据为中心的软件体系结构,各计算机系统上运行的相关任务(或线程)可在这块共享内存上在仿真管理的驱动下实时地协同工作。
在时间推演的仿真系统中,仿真命令和时间同步节拍起着系统控制的作用,通过共享内存的一部分区域来发布这些控制,仿真任务的实时数据可以通过其它区域传输。因而我们把共享内存划分为同步字区、控制和状态字区和数据区。在这样的结构系统中,按功能可把参加仿真运行的任务分为主仿真控制、时间同步、与实体通信、仿真数据录取、以及显示等任务。
主仿真控制任务发送系统运行状态命令,如开始、结束等,其它任务响应这一命令来设定自己的工作状态,如时间同步收到开始命令后,按一定的周期发布仿真节拍,其它仿真任务响应此节拍,进行仿真推演运算或仿真控制,运算结果通过共享内存的数据区交换。
时间同步服务控制服务实时监控和数据服务数据存储服务根据状态进行同步服务根据控制字和同步字提供数据读写等服务根据同步存储数据区更新的数据同步字区控制字/状态字区数据区共享内存
图3-3 基于共享内存的软件结构
3.2.3 分层虚拟共享内存中间件设计
构建通用的虚拟试验通信平台需要屏蔽不同网络协议差异,并对用户提供统一接口。这里采用的核心技术为虚拟共享内存(Virtual Shared Memory 缩写:VSM)机制。VSM建立在实时网络基础上的,没有物理上的共享内存存在,对于每个节
- 18 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
点,都在应用层开辟出一块大小相同的内存,将其锁定使其页面常驻内存,作为虚拟共享内存中间件的物理载体[25]。网络上每个节点内存为“虚拟共享内存”,它含有网络中所有用户可共享的数据和信息,也就是说网络上每个节点可以使用一个全局内存,这个内存的内容为网络上所有相关节点内容拷贝的组合,并且内存中的内容可由当前节点计算值不断地刷新,或者由网络中其它节点不断地刷新。所有的虚拟共享内存的数据的相对地址对网络中所有节点是相同的,每个共享内存的尺寸是由各客户节点机向服务器注册时,由服务器动态分配的。其结构示意图如图3-4所示:
网络节点仿真模块仿真模块仿真模块共享内存共享内存共享内存网 络 连 接
图3-4 虚拟共享内存结构示意图
这样,在虚拟试验系统中,试验任务的实时数据透明交互就可以由虚拟共享内存中间件来实现。当然,不同的通信层次虽然对外提供的接口类似,但是内部的实现机制是不同的。基于实时以太网的虚拟共享内存中间件(Real-time Ethernet Virtual Shared Memory)简称REVSM,基于反射内存网的虚拟共享内存中间件简称VMICVSM。
REVSM和VMICVSM总体分为五大部分:服务器端中间件、客户端中间件、系统监控软件、数据显示软件和数据存储软件,这五部分软件的关系如图3-5所示。
实实实实实实实实实实实实实实实实实实实 实 实 实 实 实实实实实实实实实实实实实实实 实 实 实- 19 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
图3-5 REVSM和VMICVSM系统软件结构图
各部分功能如下:
服务端中间件:在系统中,服务器担负系统的调度管理工作,同时负责维护VSM的刷新、同步等。
客户端中间件:客户机完成对测试数据的生产或消费的工作。
系统监控软件:监听方只从VSM中取数据消费,并不向VSM提供数据,监听方用于可视化的节点。
数据显示软件:提供网络数据实时曲线显示功能。 数据存储软件:提供网络数据聚合和实时存储功能。
当然如果要实现两中间件的互连,需要引入网关节点解决。在网关节点上,定义公共的数据格式,从两个不同的网络来的数据包都被转换为公共的数据格式,在网关节点的控制下,完成数据交换。
§3.3 REVSM中间件的设计与实现
由于虚拟试验系统的分布式特点,我们采用基于虚拟共享内存的中间件。分布式的虚拟试验过程必须通过网络进行分布节点间的数据交换。而“专业”人员在虚拟试验程序的设计过程中,希望能像使用本地数据一样方便地使用分布节点间的数据。这就要求“专业”人员在构架分布试验平台时,透明地实现分布节点间的数据交互。
3.3.1 通信机制
REVSM为中间件结构,以RTP 网络协议进行数据交换。系统采用客户/服务器架构,将网络中的通信节点分为客户机和服务器,服务器负责通信任务调度和网络监控管理。要求客户之间的通信必须经过服务器。首先由某个客户将消息发送给服务器,服务器再将消息转发给其他客户。客户/服务器模式与对等模式相比,实现简单,可以对试验任务进行分布测量、集中显示、统一指挥。
大规模虚拟试验系统中传输的应用数据一般可以分为控制信息和状态信息两大类。控制信息主要用于控制试验系统行为,数据量不大,但传输的可靠性要求极高,不允许数据包的丢失,否则有可能导致系统的行为控制出现错误。TCP本身具有无错、确认和按顺序传输等属性,但是普通TCP不能满足进行实时信息传输的要求,因此,在虚拟试验系统中控制信息传输采用RTP协议,关于RTP的研究在第二章里作了详细阐述与验证,这里不再作讨论。
- 20 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
虚拟试验系统中状态信息主要用于更新各试验对象的状态,状态信息传输一般非常频繁,并且可能是同时向多个节点传输,同时使对象状态切换的平滑。如果其中不包含影响试验性能的关键信息,丢失的数据包中的状态信息可由下一个到达的数据包更新,即传输的可靠性要求不是十分苛刻。由于UDP 较TCP 具有良好的传输性能和资源占用率,尤其是在进行一对多通信时,UDP 多播传输协议是网络拥塞最小化的方法,具备明显的性能优势。
REVSM的实时通信协议结合了TCP和UDP网络协议的优点,采用了点播和广播相结合的混合通信方式,实现了点对点和点对多点的实时数据传输。服务器根据系统要求,定时把仿真计算客户机上需要交换的数据组合以UDP方式广播给系统中的每个客户机;客户机向服务器上传新数据时,采用了基于TCP的点对点通信。由于UDP提供的是无连接的通信服务,数据传输效率较高;而TCP则提供面向全连接的、可靠的通信服务。通过结合TCP和UDP的技术优点,实时通信协议既实现了数据的实时通信,又提高了通信的可靠性[26]。
在REVSM中,服务器和客户机在试验开始前要进行节点注册,通过注册后的服务器和客户机组成一个局域网,只有局域网中的网络节点能够接收到服务器发送的广播信息。
3.3.2 详细设计
在大规模虚拟试验系统中,试验任务间的实时数据透明交换由虚拟共享内存通信中间件来实现,根据网络组成和系统性能要求的不同,其实现方式包括以太网络下TCP和UDP的Socket、精简网络协议等。
在系统中,服务器注册之后,客户机注册(包括注册数据,包括数据名,数据类型,空间大小,注册节点,包括节点名称,节点ID,节点步长,节点的工作方式,服务器ID),服务器根据这些信息在服务器上创建VSM表,表中包括三类信息,系统信息、节点信息和数据信息(对于每个节点,数据区的大小和地址是固定的,数据区的大小为每个节点2000字节,节点下的数据是根据注册的先后来区分先后的,可以理解按照节点来读取和写入数据)。服务器用广播的方式把VSM表发送到各个注册节点(以后的数据的更新,VSM表只发送数据区中的内容),试验开始以后各节点把上传的数据写入本机的VSM表中,客户端上传更新数据给服务器,服务器更据系统内最小的步长来定时把更新的数据区内的数据广播给各个注册节点,以保持各个节点共享内存的一致。
上述中的系统信息描述、节点信息描述和数据信息描述三部分的结构体设计如下:
- 21 -
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
(1) 系统信息描述
typedef struct {
BOOL IsCreate; //系统是否建立 UINT NodeNum; //节点数量 USHORT Sys_Stat; //系统状态 USHORT SysCommand; //系统命令 USHORT QueryMsg; BYTE NodeType[MAX_NODE_NUM]; BYTE NodeState[MAX_NODE_NUM]; long SysClock; //系统时钟 double ServerSimuStep; //系统仿真步长 int VSMSize; //VSM区大小 }System_Description_Block_Type;
系统信息是由仿真节点向管理节点注册时生成的,在注册结束后就开始仿真运行,此时除非仿真暂停重新注册节点,否则不允许对系统信息进行写操作。
(2) 节点信息描述:
typedef struct {
BOOL IsRegistered; //节点是否已经注册
unsigned char NodeName[ MAX_NODENAME_LENGTH ]; //节点名字 BOOL IsNeedBuffer; //是否需要缓冲区 BOOL IsNeedSync; //是否需要同步 double SyncSimuStep; //同步仿真步长 UINT Addr; //节点数据起始地址 UINT Size; //节点数据长度
USHORT Data_Num; //节点包含的数据个数
Data_Description_Block_Type Data_Description_Table[ MAX_NODE_DATA_NUM ]; //节点数据描述表
unsigned int ID; //节点ID unsigned int WorkingModel; //工作模式 }Node_Description_Block_Type;
系统中的每个节点都有一个唯一的ID作为它们区别其他的标志同时也提供NodeNmae便于系统维护人员的管理。
(3) 数据信息描述:
typedef struct {
unsigned char DataName[MAX_DATANAME_LENGTH]; DataType; //数据类型 USHORT DataNum; //数据数目 UINT DataAddr; //距首地址的偏移量
- 22 -
//数据名字
西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境
}Data_Description_Block_Type;
在系统中,系统描述信息、节点描述信息以及数据描述信息在系统注册时就定义好,在以后的每次VSM更新中,这些描述信息都不作改变只是更新具体的数据信息部分。
RTVSM通信中间件的设计有四个类,它们分别是,虚拟共享内存基类(Virtual_Shared_Memory)、服务器虚拟共享内存类(VSM _Server)、客户机虚拟共享内存类(VSM _Client)、微秒计时器类(celapsed)。它们之间的关系设计如图3-6 所示:
客户端与客户端通过服务器存在间接的关联,一个客户端可以观察其他若干客户端的数据 0 VSM_Client 0 1 celapsed 客户端VSM 类 微妙计时器 < 1. 虚拟共享内存基类主要是实现虚拟共享内存的一些基本方法,包括内存读写、获得系统信息和节点信息等方法。 系统中的共享内存中用于实时数据通信区(VSM_Handle指向数据通信区首地址)的尺寸是由各客户节点机向服务器注册时,由服务器动态的分配内存。具体地讲就是根据所有客户节点机上已经注册的数据元素数目,以及每个数据元素实际所需要内存大小来确定的。累加所有客户节点机和服务器节点机注册的数据元素实际所需要内存大小,就得到了数据通信区的大小(VSM_Size),动态分配大小为VSM_Size的数据通信区,由VSM_Handle指向数据通信区首地址。除了为每个节点分出的各个数据区外,还开出一块系统管理区进行任务调度和VSM的管理。数据管理区(Node_Description_Table[MAX_NODE_NUM],Node_Nu等),Node_Descrip-tion_Table[0]规定用于服务器自己的数据元素的描述,其它从第1至Node_Num-1用于客户机的数据元素描述,且其与客户机注册顺序完全对应。例如 - 23 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 对于第i个注册客户机的第j个数据元素的描述表 Node_Description_Table[i].Data_Description_Table[j],可获得这个数据元素在虚拟共享内存中的地址(Node_Description_Table[i].Data_Description_Table[j].Addr+ VSM_Handle)和长度等信息,至此可以完成对这个数据元素的任何操作。 2. 服务器端虚拟共享内存类主要完成服务器端的VSM操作和管理工作。工作实现流程如图3-7所示: 开始试验,接收消息(RecvTCPSocket),定时广播刷新VSM表 将系统信息和VSM表广播给客户节点(SendUDPSocket) N 是否有客户节点注册 Y 注册本地节点(Register_Node) 初始化节点 所有节点注册完毕 Y 创建VSM表(VSM_Create) 将该节点的信息及数据写入系统VSM表中 结 束 图3-7 服务器端实现流程图 首先对本节点进行初始化,点登录的界面,在REVSM中注册自己的节点,为本节点分配共享内存区域;启动客户节点注册程序,客户节点在注册过程中报告节点名、申请的状态和参数列表等参数;待所有客户节点注册完毕后,服务器建立整个共享内存VSM信息表,并分配内存给VSM。;进行整个系统的资源配置,将配置信息和VSM表广播给系统内的客户端节点;按系统最小步长定时向客户端节点广播数据,刷新VSM表,维持各节点的VSM内容一致。 - 24 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 3. 客户机虚拟共享内存类,负责客户机的虚拟共享内存管理和实时通信以及任务调度。客户端的实现流程如图3-8 所示: 结 束 Y 发送消息(SendTCPSocket) 有数据产生 相应处理,刷新VSM (VSM_Up_Data) Y 创建节点VSM 初始化节点 向服务器注册本地节点(Register_Node) 等待服务器端注册结束信号g_eventEndRegister N 信号到 等待命令 接收消息(RecvUDPSocket) N 图3-8 客户端的实现流程 客户端的工作机制如下: 在服务器启动注册服务后,客户节点进行注册,报告客户名、申请状态和 参数列表等信息; 接收服务器的试验定义数据,并根据试验信息建立对其他节点参数的调用 过程,分配内存给VSM; - 25 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 进入等待服务器指令循环过程,工作过程实际上是查询消息指令; 当接收到服务器新的任务消息是,完成该任务; 对于有数据产生的客户端,将本节点的刷新参数上传服务器; 接收服务器端的广播刷新本机VSM; 注册成功后,客户端程序处于待命状态,等待用户启动客户试验任务。当服务器执行了试验命令之后,就可以启动客户端试验任务。在执行任务的过程中用户可以人工查询到4种系统信息,分别是系统时钟(调用虚拟实验系统用户接口例程extern \"C\" __declspec(dllimport) float VSM_Get_SystemClock() 来实现)、广播时间(调用分布系统用户接口例程extern \"C\" __declspec(dllimport) DWORD VSM_Get_BroadTime() 来实现)、数据下传时间(调用分布系统用户接口例程来extern \"C\" __declspec(dllimport) DWORD VSM_Get_BackTime(unsigned int NodeID) 实现)、和出错记录(调用分布系统用户接口例程extern \"C\" __declspec(dllimport) int VSM_Get_ErrorCount(unsigned int NodeID) 来实现)。 在系统整个通信过程中,服务器和客户端是不断进行交互的,服务器与客户端节点的套接字交互示意流程如图3-9所示: Closesocket() Closesocket() RecvUDPSocket () SendUDPSockeSendTCPSocket() RecvTCPSocket () Bind() 客户端应用程序 Socket() 服务器端应用程序 Socket() 图3-9 数据报套接字交互流程 §3.4 VMICVSM中间件的设计与实现 3.4.1 通信机制 在前面章节中我们已经简单研究过反射内存网的结构与通信方式了,它是由分 - 26 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 别插在每个节点上的VMIC接口板和连接接口板的光纤组成的,在每块板卡上都有一块专门的存储器作为自己的局部内存,并且它们通过局部内存映射将网卡上的局部内存映射到主机内存,用户读写网卡上的数据就如同读写主机内存上的数据一样快速、方便。另外,每块VMIC反射内存卡又通过网络内存映射,将分布在节点卡上的局部内存,映射到一个虚拟的全局内存,即每个节点在写入本地节点卡的数据时,接口板将修改的数据通过光纤自动实时的写到其它节点的对应存储器中,这样,用户对本地节点内存的读写相当于对全局内存进行读写,而这个全局内存是所有分布节点都可共享的,从而实现了分布节点间的实时数据通信。通过这种方式,所有的节点能透明地并确定地传送中断、消息或者数据块到其它的节点。反射内存网络中一个反射内存更新数据,发送中断给下一个板卡,其本地内存将在400ns之内被更新 [27]。 由于实时网可以动态高速映射数据到高速的网卡上,所以减少了用户在网络节点互操作中的逻辑控制。采用反射内存通信方式的好处是: 数据传输速度快,读/写操作延时为纳秒级,能够大大减低总的网络延时,减小 仿真周期,满足系统的实时性要求; 节点之间的通信对软件是透明的,不需采用消息传递方式进行通信,只需在 本机系统中对共享存储器进行直接读写操作就可实现多机之间的通讯,大大简化了应用软件结构的复杂度,减少了用户的编程负担; 能准确地算出节点之间通信的最大延迟时间。 VMICVSM是一种基于高速网络的共享存储器技术的实时网络,与传统的联网技术相比,它除了具有严格的传输确定性和可预测性外,还具有速度高、通信协议简单、宿主机负载轻、软硬件平台适应性强、支持中断信号的传输等特点。 VMICVSM一般采用环形网络结构,每个节点通过管理节点先进性注册,管理节点根据注册的节点信息,为每个节点在VMIC共享内存中开辟一个区域,各个节点把自己更新的数据放到自己的VSM区域中,由VMIC实时网卡来实现各节点间的虚拟共享内存。VMICVSM中的各个节点都有自己的ID号,且不会改变,节点之间进行信息交互,通过管理节点获得目的节点的ID或者目的节点在VMIC共享内存中的地址,依靠ID和地址,在VMIC共享内存中读取目的节点的数据,就可以进行相互的通信。 为了实现读写操作,作为管理节点的VMIC产生一个中断包,包括一个选通脉冲、发送节点的ID、目的节点的ID、中断类型信息和32位用户自定义的数据。当接收节点检测到数据包中的目的节点ID和选通脉冲符合自己时,就将发送节点的ID和数据存贮起,接收节点将会对管理节点发出中断,并做出相应反应。 - 27 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 3.4.2 详细设计 在VMICVSM中每个节点的共享内存的尺寸是由各客户节点机向服务器注册时,由服务器分配的静态分配。具体地讲就是根据所有客户节点机上已经注册的模块数目,以及每个模块实际所需要内存大小来确定的。每个模块所需求的共享内存区用来存放该模块中的状态、输入、输出等变量参数。VMIC共享内存中间件的功能包括: 1) 提供注册、申请、操纵与释放虚拟共享内存的接口和实现数据注册,实现 虚拟试验系统的透明网络通信服务; 2) 提供基于共享内存机制的虚拟试验应用程序运行的调度管理策略和监控, 实现分布试验系统的调度管理服务; 3) 提供基于共享内存机制的数据管理与处理的基本接口和管理,实现虚拟试 验系统的数据服务。 应用VMICVSM中间件构架同样也具有一般虚拟共享内存中间件的一切优点,也同时满足了系统对开放性、实时性、灵活性、可扩充性和易操作性的要求。 大规模虚拟试验系统网络通信与管理软件包中的共享内存中间件软件库运行在每个节点上,运行在管理节点机上的VMICVSM中间件,是完成通信服务和调度管理功能的软件模块,称作系统调度器。运行在运行节点机上的VMICVSM中间件,完成通信服务和调度管理功能的软件模块,称作节点调度器。 VMICVSM中的这些节点根据功能同REVSM一样可分为服务器(管理节点Server)、客户(Client)和监听(Spy)三类节点。其中监听方只从VMICVSM中取数据消费,并不向VMICVSM提供数据。服务器不知道它的存在,同步消息对它也不起作用。它可以在任何时候进行节点注册,不影响系统信息。监听方一般用于可视化的节点,在这里我们不做详述。 在VMICVSM中定义了5个重要的结构体,分别是: Struct Data_Description_Block_Type // 描述数据; Struct Node_Description_Block_Type //服务器接收节点注册后,用于存储 节点详细信息; Struct Node_Running_Block_Type //用于记录节点运行状态,作为节点的一 个数据存储在VSM数据区中; Struct System_Running_Block_Type //用于记录系统的运行状态,作为服务 器的一个数据存储在VSM数据区中; Struct User_Message_Type //传递给用户注册函数的参数类型; 类的设计上共写了三个类,共享内存控制基类(Virtual_Shared_Memory),服务 - 28 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 器共享内存操作类(VSM_Server),客户端共享内存操作类(VSM_Client)。 1. 共享内存基类(Virtual_Shared_Memory) 主要是实现虚拟共享内存的一些基本方法,包括内存读写、获得系统信息和节点信息等方法,并派生出服务器共享内存操作类(VSM_Server)和客户端共享内存操作类(VSM_Client)。类图如下: 图3-10 虚拟共享内存基类图 2. 服务器共享内存操作类(VSM_Server) 在系统中实现系统的调度管理工作,VMICVSM的划分、同步等。 服务器的工作机制为:首先服务器先对本节点初始化,在VMICVSM中注册自己的节点,为本节点分配共享内存区域;服务器在VMICVSM中注册好自己的节点后,启动客户登陆服务程序,等待其他客户节点的注册;客户节点注册时,通过调用VMIC的API,给服务器发送一个中断,服务器接收到中断后,给客户节点返回一个中断,告诉客户节点可以注册,并发回一个ID,客户节点根据这个ID,在对应的VMICVSM相应的区域中,写入自己的数据,注册完毕;当所有客户登录完成后,服务器建立整个共享内存VSM信息表,除仿真时间、步长、消息等系统参数外,同时建立包括全部客户信息的参数表,并将系统信息下达到各客户机;在一个仿真时刻,服务器发送消息与时钟,等待同步客户完成当前帧的仿真计算后返回新的参数;所有客户返回后,服务器构造新的信息,进入下一时刻。 - 29 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 在系统中,服务器担负系统的调度管理工作,同时负责维护VSM的刷新、同步等。服务器端的实现流程如图3-11所示: 下一步处理 注册结束 是 监听到注册信号,控制这个节点进行数据注册。 否 开始 启动并初始化管理程序 管理节点注册数据 启动监听线程,等待各个节点注册图3-11 服务器端实现流程 3. 客户机共享内存操作类(VSM_Client) 实现客户机的虚拟共享内存管理和实时通信。 客户机的工作机制为:在服务器启动登录服务后,客户机进行登录,向服务器端报告客户名、申请的状态和参数列表等参数;接收服务器的试验定义数据,并根据试验信息建立对其它节点参数的调用过程,包括对VSM的指针引用;进入等待服务器指令循环过程,工作过程实际上是查询VSM中的时戳和消息;当接收到服务器新的消息或时钟,完成一步试验计算;对数据产生方的客户,将本节点的数据写入VMICVSM;对数据消费方的客户,只需完成本节点工作,无需上传参数。客户机完成对测试数据的生产或消费的工作。实现流程如图3-12所示: - 30 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 是 下一步处理 数据注册完否 注册本节点数据信息 监听管理节点,可以注册数据 是 注册本节点信息 否 启动并初始化客户端程序 开始 否 图3-12 客户端节点实现流程 服务器端和客户端节点在交互过程中使用中断机制实现同步,其处理流程如图3-13所示: 服务器端 客户端 初始化,注册服务器节点 初始化,填好本地数据 启动监听线程 准备注册 接收到中断 发送中断 处理中断 - 31 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 图3-13 服务器与客户端节点的同步流程 §3.5 网关的设计与实现 在分布式协同虚拟试验系统中,必须有一个能够支撑各种应用系统集成的基础体系结构和支撑环境,以实现各种模型的互联互通,形成综合的虚拟试验系统。大规模虚拟试验系统实时性要求的多样性决定了支撑环境的异构性,在使用异构网络搭建复杂分布虚拟试验系统时,连接方案为REVSM与VMICVSM的跨协议互连。网关的设计是为了解决网络的扩展性,解决异构网络环境的同构问题并实现透明的连通,同时网关还应对实时网络内的信息进行监控[28]。 REVSMVMICVSM 实实 图3-14 大规模虚拟试验分层试验环境结构图 3.5.1 原形架构 图4-1给出了REVSM与VMICVSM的跨协议互连拓扑结构,其中最重要的是网关的实现。该系统中,各个节点需要跨网络进行通信的数据在网关汇总,通过网关把数据格式转换后进行数据交换;各网络中节点之间的通信同样经过网关,对网间实体通信而言属于细粒度通信。网关整体结构如图3-15所示: REVSM 同步机制VMICVSMREVSMVMICVSM 中间件共享内存中间件 - 32 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 图3-15 网关整体结构示意图 3.5.2 网关设计 在大规模虚拟试验系统中,要实现REVSM与VMICVSM两个系统之间透明的数据通信,形成一个紧耦合的实时系统,关键就在于网关的设计与实现。在该系统中不管是REVSM还是VMICVSM,都是采用以共享内存为核心的通信机制,所以网关的设计也要遵循VSM的共享内存机制来实现连通异构网络的功能。 网关程序主要由两部分组成,一是节点管理程序负责观察监控各个节点状态和数据,可以和节点进行数据通信,二是网络各节点与节点管理程序之间交互的设计。 节点管理程序(Server端)负责开辟一块共享内存,共享内存分为两个区域,一个区域为VMICVSM节点数据信息,另一个区域为REVSM节点数据信息。同时节点管理程序还要创建线程,至少两个线程,一个线程将REVSM的数据信息写入共享内存的VMICVSM节点数据信息区域,以供Client端调用写入VMICVSM管理节点的VSM,及时更新VMICVSM中的共享内存;另一个线程将VMICVSM的节点数据信息写入共享内存的REVSM 节点数据信息区域,以供Client端调用更新REVSM服务器端的VSM,REVSM服务器依照自己的通信机制将更新的VSM及时广播给其他客户端节点用以更新REVSM中各节点的共享内存。总的来说网关的作用就是维护整个实时系统中各个节点上的VSM内容一致,实现整个网络的内存共享。 3.5.3 网关程序 本部分共设计了六个类:SERVER端控制类(Server_Manage),Client端控制类(Client_Manage),SERVER端线程类(Server_Thread),Client端子进程类(Client_Child_Process),SERVER端共享内存类(Server_Memory), Client端共享内存类(Client_Memory)。这六个类之间的关系如图3-16 所示。 - 33 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 Client端控制类 Client_Manage Server_Manage SERVER端控制类 Client端子进程类 Client_Child_Process Server_Thread SERVER端线程类 Client端共享内存类 Client_Memory 图3-16 网关类关系设计图 SERVER端首先要启动监听客户端程序(Listen),它同时侦听多个与它相连的Socket;根据监听情况生成新的线程(CreatNewThread);在服务器端生成共享内存(GetMemory)。SERVER端共享内存类(Server_Memory) 负责SERVER端共享内存的管理和实时通信以及任务调度,对共享内存的读操作(Read_Memory)是把读的内容转给Server端的另一接口,以供节点调用.;对共享内存的写操作(Write_Memory)是把从节点网络来的数据通过Server的另一端直接拿过来,放到共享内存规定区域。SERVER端的工作流程如图3-17所示: - 34 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 开始 启动并初试化进程 监听客户端进程 返回 是否有进程操作 有 启动并初试化线程 否 线程执行开始 开辟共享内存 传递共享内存地址 等待操作命令 关闭 写 结束 读 图3-17 Server端工作流程 Client端需要主动发起连接的请求,启动并初始化应用程序创建进程(CreatNewProcess);当Client端得到外部节点命令(GetOrder)后创建新进程(CreatAProcess);Client端共享内存类(Client_Memory) 负责Client端对共享内存的操作,对共享内存的读操作(Read_Memory)是把读的内容转给Server端的接口,以供Server端线程调用.;对共享内存的写操作(Write_Memory)是把从Server端来的数据写入节点共享内存的规定区域.。 - 35 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 开始 等待管理程序启动 通知Server端 进程开启 否 等待共享内存句柄 是否收到 是 得到共享内存地址 等待操作命令 关闭 读 结束 写 图3-18 Client端工作流程 Server端和Client端的交互同步过程如图3-19所示: Clint端 创建进程 Server端 改变信号量 检测信号量改获得共享内存首地址 发送共享内存首地址 创建线程、 开辟共享内存 读、写共享内存 读、写共享内存 通过信号量同步读、写操作 结束进程 通知服务器端进程结束 释放共享内存 图3-19 服务器客户端同步过程图 - 36 - 西北工业大学工程硕士论文 第三章 基于虚拟共享内存机制的分层试验环境 Server端与Client端程序的交互在同步上要求十分严格,要保证虚拟试验运行环境的实时性和准确性,这是实现实时网关的重要部分。 §3.6 小结 本章引入中间件作为基于网络基础设施搭建大规模虚拟试验支撑环境的思路,首先研究了中间件技术的概念;研究了基于虚拟共享内存机制的中间件,提出了应用VSM作为主要机制的分层试验环境搭建;设计和实现了大规模虚拟试验中两种组成网络的通信中间件REVSM中间件和VMICVSM中间件,并讨论了这两种中间件的功能及其通信机制;针对不同网络互连,需要在中间件层提供网关支持这一需求,设计由网关来连通REVSM和VMICVSM,使整个中间件系统成为一个紧耦合的试验支撑平台。 - 37 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 第四章 大规模虚拟试验分层时间推进机制 在虚拟试验中有时需要有实物模型参与试验的情况,实物模型对系统的实时性要求较高。另外,有一些计算模型对系统的实时性要求也比较高,还有一些模型之间交互比较频繁,传输的数据量较大,然而普通的非实时网络已经不能满足上述情况的实时性要求。于是,可以将这些要求实时性较高的模型放入实时网络中互联起来,而将那些对实时性要求较低的模型放入非实时网络中,两种网络再通过网关连接起来相互通信。这就引出了这样一类问题:如何解决不同时间推进粒度的子系统互联时的时间一致性问题。解决这类问题的关键在于设计一套正确的分层时间推进机制来实现不同粒度子系统之间的时间耦合。本章针对此类问题展开研究,提出了一类分层时间推进机制,并通过实际系统予以了实现与验证。 §4.1 分布式系统中常见的时间推进机制 分布式系统中常见的时间推进机制主要有保守的时间推进机制和乐观的时间推进机制[22]。 保守的时间推进机制是以并行离散事件仿真PDES的保守算法为基础,其基本思想是假设模型满足可实现性和可预测性,可实现性保证系统发出的t时刻消息仅依赖于t时刻以前接收到的消息和状态,可预测性保证系统能够在t时刻预测出t+ε时刻的消息(ε>0),并且在遵守本地因果约束条件的前提下,可以实现对系统的正确仿真。 乐观时间推进机制是以PDES的乐观算法为基础,与保守机制相反,乐观的时间推进不严格遵守本地因果条件,当因果错误发生时,利用回滚机制,对系统状态进行恢复。 保守的时间推进机制,能确保事件的处理顺序不偏离物理系统中事件的发生顺序。而乐观的时间推进机制则允许事件的偏离,但它必须能检测出已偏离的事件,然后利用回滚机制回滚。在乐观的时间推进机制下,回滚操作都是由用户来完成的,因而增加了用户建模负担和复杂性。本文后续的章节主要运用的是保守的时间推进机制。 - 38 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 §4.2 分层时间推进机制 无论是保守的时间推进机制,还是乐观的时间推进机制,都只能保证模型按照各自的时间推进策略推进,而在不同粒度模型的时间协调上存在着问题。比如将非实时子系统与实时子系统互联时,由于非实时子系统中模型的时间推进粒度较粗,而实时子系统中模型的时间推进粒度较细,从而造成了整个系统时间推进步调不一致的问题。因此当多种不同时间推进粒度的子系统互联时,可以采用分层的时间推进机制。 本文设计的分层时间推进机制主要采用了集中式的时间管理,基于保守的时间推进机制提供了基于时钟周期的和基于反馈的两种时间推进方式,并对不同粒度子系统时间耦合的问题进行讨论。 4.2.1 集中式时间管理 当虚拟试验系统有实物模型参与的情况下,实际上将采用物理时钟作为整个系统的时钟。针对多种不同时间推进粒度的子系统互联的情况,采用集中式的时间管理方式,即有一个专门的处理器产生的全局物理时钟,定时向各个子系统时间服务器发送一些同步消息,以保证各个子系统的时间一致[23]。由于网络中的时间同步存在一定的延迟,这里本文采用主从式同步的方法以减少这种延迟,如图4-1所示。主从式同步指有主时间服务器启动时间数据包的发送,从时间服务器接收到同步时间数据包后,立即返回该数据包,主时间服务器根据发送和接受的时间间隔确定从时间服务器的时间初始偏差,从而进行时间对齐[24],计算公式如(4-1)所示。 Tsm0fmMT(t2)fsMT(tr)(fmMT(t2)fmMT(t1))/2 (4-1) t1 M t2 S tr 图4-1主从式同步 - 39 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 4.2.2 基于时钟周期的时间推进 在有实物模型参与的虚拟试验系统中,由于实物模型一般为连续系统模型,连续系统模型的时钟推进采用的是等周期(步长)的推进方式。由这种模型组成的子系统时间推进的时钟周期是所有模型的时钟周期的最大公约数,由子系统的时间服务器按照这个时钟周期广播时钟消息,当相应的模型到达自己的时钟周期时,则进行推进。 4.2.3 基于反馈的时间推进 在实际的虚拟试验系统中并不是所有模型都是连续系统模型,即以等周期(步长)的时间推进方式,有些模型是采用的是变步长的时间推进方式。在基于保守的时间推进机制下,当每个步长结束时模型会返回下一次需要推进的时刻。由子系统的时间服务器将子系统内各个模型返回的时间按照从小到大顺序排列放在一个队列中,当全局时钟和队列中第一个元素相等时,就向外广播时钟消息。当相应的模型发现到达自己的推进时刻时,则进行推进。基于反馈的时间推进更具有通用性,因为当模型返回的交互时刻是以等步长递进时,即为等时钟周期的时间推进,但是基于反馈的时间推进需要模型能够计算出下一个的推进时刻,并将其返回。 4.2.4 不同粒度子系统时间耦合问题 在分层的时间推进机制下,各个子系统可以按照其各自时间粒度进行推进。当不同的子系统之间模型需要交互数据时,可能出现时间不同步的问题。尤其是实时子系统中的模型,会出现超实时或欠实时的情况,这样系统间的数据交互就不能正确地进行。针对这类问题,下面分三种情况进行了讨论并提供了相应的解决方案。假设子系统A中模型的步长为m,子系统B中模型的步长为n,m = k×n,k>1,即系统A的模型粒度较粗,而B的模型粒度较细。某一时刻,子系统A中模型推进到了时刻ta,子系统B中模型推进到了时刻tb。 (1)当ta = tb时,即子系统A的时间与子系统B的时间同步且一致。这种情况下,子系统A中的模型与子系统B中模型可以顺利地完成交互。 (2)当ta > tb时,即子系统A的时间大于子系统B的时间。由于子系统B中的模型不能立即提供子系统A中的模型所需要的数据,为了保证系统的正常运行,这就需要子系统B中的模型采用适当的预估算法提供子系统A中的模型所需要的数据。同时,由于子系统A中模型推进超前于子系统B中的模型,子系统A中的 - 40 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 模型继续推进后的,以往状态或数据可能会被覆盖,子系统B中的模型推进时可能得到的不是A中模型正确的状态或数据,此时系统仍不能正确的进行。解决这类问题的办法可以采用数据缓冲技术,使系统将以往的数据缓冲在相应内存或文件中。 (3)当ta < tb时,即子系统A的时间小于子系统B的时间。这种情况与第二种情况相反,解决办法是使子系统A中的模型预估,缓存子系统B中的模型状态和数据。 如果系统在接下来的多个交互时刻始终不能达到时间上的耦合,在这种情况下,可以采用调整子系统A或子系统B中的模型步长办法,使m = k’×n,k’≠ k,使子系统A的时间和子系统B时间能够耦合。 §4.3 时间推进机制实现 实实REVSMVMICVSM 实实 图4-2 分层互连试验系统拓扑图 由于整个试验系统都是基于VSM机制的,虽然搭建在不同的网络之上,从物理上来讲是分层的,但我们可以采用统一的时间推进机制来实现,即REVSM和VMICVSM节点都通过主控产生的时钟控制,遵循统一的推进方式。不同的是VMICVSM的时间推进需要经过网关的协调。详述如下: - 41 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 4.3.1 时间推进方式 主控 时钟 计算节点 (3)、(6) (1)、(4) 试验模型 A 试验模型B 时间管理 (2)、(5) 图4-3时间推进处理流程 (1)当一个试验开始时主控时间管理进程启动定时器开始计时,并通知各计算节点时间管理进程0时刻开始。 (2)计算节点时间管理进程将0时刻时钟发送给本节点上每个实时模型,实时模型收到0时刻消息后从0时刻开始推进。 (3)推进完成后模型返回下一次交互时刻,并将其发送给主控节点和本节点的时间管理进程。 (4)主控节点的时间管理进程中将各实时模型返回的时间放入一个按从小到大的顺序排列的队列中,当时钟推进到与队列中第一个元素相等时,则向各计算节点时间管理进程发送时钟广播。 (5)各计算节点时间管理进程判断是否到达本节点某个模型的交互时刻,如果到达模型交互时刻后,则通知相应的模型进行时间推进。 (6)模型完成时间推进后,继续返回下一次的交互时刻。重复步骤(4)直到试验结束。 该虚拟试验系统为达到提高资源利用率的目的,需要能够支持同时进行多个虚拟试验,每个计算机节点上也要能够同时运行多个模型。由于每个虚拟试验各自的时间,因此系统需要为每个虚拟试验维护各自的时钟。 - 42 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 4.3.2 VMICVSM网关时间推进流程 VMICVSM需要引入网关完成时间推进,网关处理流程如图4-3所示。 实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实VMIC实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实VMIC实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实实 图4-4 VMICVSM网关处理时间推进流程 - 43 - 西北工业大学工程硕士论文 第四章 大规模虚拟试验分层时间推进机制 §4.4 小结 本章为了解决不同时间推进粒度的子系统互联时的时间一致性问题,提出了一类分层时间推进机制,探讨了不同粒度子系统之间的时间耦合问题,提供了相应的解决方案。针对第三章设计的基于VSM机制的试验平台,设计了相应的时间推进机制。 - 44 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 第五章 大规模虚拟试验支撑平台性能测试分析 在前面几章研究中,已经给出了RTEVSM中间件、VMICVSM中间件、异构网络的网关及时间推进模块的具体设计与实现。为了验证这些方案的合理性与整个系统的可用性,我们做了大量的测试工作。 §5.1 测试指标 性能测试是指在一定的测试环境条件下,在基本的网络测试的基础上,对于各种性能指标以及各种条件的重复测试。通过仔细研究,具体来说,大规模虚拟试验实时运行支撑软件性能指标主要包括以下几个方面: 1) 属性更新延迟测试 属性更新的延迟是实时仿真所关心的关键因素,因为实时仿真的有效性依赖于数据的及时性,它是大规模虚拟试验实时运行支撑软件最关键的服务,它的所有其它的服务都是为了保证大规模虚拟试验实时运行支撑软件能在适当的时间以适当的方式和顺序将来自联邦成员的属性更新消息转发给相应感兴趣的联邦成员。因此,属性更新延迟是大规模虚拟试验实时运行支撑软件最关键的指标之一。 2) 吞吐量测试 吞吐量是反映系统在单位时间内能够处理的最大容量的数据包的一个重要指标。 3) 时间推进请求响应测试 时间推进请求响应测试主要是完成在联邦成员连续请求时间推进的情况下,大规模虚拟试验实时运行支撑软件对其请求的响应时间。 由于大规模虚拟试验实时运行支撑软件包含了REVSM和VMICVSM。因此我们将对大规模虚拟试验实时运行支撑软件在两种不同网络环境下、不同网络环境间的性能进行测试。 §5.2 测试环境 测试环境如表5-1所列。 - 45 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 表5-1 测试环境配置 项目 硬件平台 操作系统 以太网的网络协议 VMIC反射内存网的网络协议 开发环境 测试的软件 VMIC版本 配置 Intel(R) Core(TM)2 Duo CPU E8200、 2G 内存、100M 网卡 Windows XP TTP协议 反射内存协议 Visual C++ 6.0 大规模虚拟试验实时运行支撑软件 VMIC 5565 §5.3 属性更新延迟测试 5.3.1 测试方法 我们设计运行导弹和坦克两个联邦成员对系统进行测试。分以下几种情况进行测试:两个邦元运行在REVSM平台上;两个邦元运行在VMICVSM平台上;两个邦元分别运行在两平台上。 REVSM中间件测试中,服务器向客户机广播数据包,客户机在收到数据包后,更新本机VSM数据区,判断是否是自己步长的整数倍,如果是,客户机将向服务器端发送更新后的数据区,服务器收到客户机的数据信息进行处理,这个过程是一个周期。这个周期由四部分组成:服务器广播延迟、客户机处理时间、RT-TCP返回传输延迟和服务器本机处理时间。为了方便测试,将客户机和服务器设为相同周期,这样客户机每一次都回应服务器。通过windows提供的高精度定时器,计算往返传输时间。服务器向客户机广播10000次,取中间的1000次,对其延迟进行统计,计算出其i中单个数据包的最大、最小时间和平均响应时间。另外,对不同的数据包进行测试,测出数据包的大小对试验步长的影响,这里以32B、B、128B、256B、400B、512B为例进行测试。 VMICVSM平台测试中,运行在反射内存网环境中的导弹联邦成员在T1时刻通过RFM2gWrite函数发出属性更新,将属性更新值写入反射内存板卡中,坦克联邦成员通过调用RFM2gRead函数,将反射内存板卡中的属性更新值读出,并在T2时刻读取完毕!则(T2-T1)即是大规模虚拟试验实时运行支撑软件在此网络下的属性延迟值。在实际测试中可通过多次循环以上过程,取平均值即为属性延迟值。 两个邦元分别运行在两平台上时测试方法类似。 - 46 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 5.3.2 测试结果分析 根据属性更新延迟的测试方法,我们对该大规模虚拟试验实时运行支撑软件在三种不同情况进行了测试。得出测试结果如表5-2所示: 表5-2 各情况属性更新延迟测试结果(单位:ms) 属性数据量 REVSM VMICVSM 网间 字节 0.431 0.292 0.888 128字节 0.595 0.336 1.032 256字节 0.612 0.378 1.236 400字节 512字节 0.691 0.398 1.336 0.781 0.435 1.452 由属性延迟的测试结果可以看出:REVSM属性延迟在0.43ms ~ 0.79ms之间;VMICVSM的属性延迟在0.29ms ~ 0.44ms之间;而网间通信的属性延迟在0.ms ~ 1.45ms之间。各种情况下,属性更新延迟都随属性数据量的增加而递增。交互类属性大小相等的情况下,REVSM下属性延迟几乎是VMICVSM的一倍。一般情况下,REVSM 适合做一般虚拟试验的支撑平台;VMICVSM可以用来做计算量大、对实时性要求更高或实物半实物介入的试验;网间属性更新延迟在一个可以接受的范围内因此可以完成两平台的互连,搭建完成分成试验环境。 §5.4 吞吐量测试 5.4.1 测试方法 采用5.3.1所列的测试方法,以吞吐量为目标进行测试。通过设置属性大小来对大规模虚拟试验各运行支撑软件的吞吐量进行多次测试。每次在更新属性吞吐量和读取属性吞吐量之中选择最小的一个作为本次的属性吞吐量。 5.4.2 测试结果分析 根据属性吞吐量的测试方法,我们对该大规模虚拟试验实时运行支撑软件在两种不同网络环境下的运行情况进行了测试,计算属性吞吐量的函数调用的次数为1000次。得出测试结果如表5-3所示: 表5-3 各情况属性吞吐量测试结果(单位:个/s) 属性数据量 REVSM VMICVSM 网间 字节 4633 6829 2687 128字节 3356 5947 2345 256字节 3265 5286 2046 400字节 20 5021 1983 512字节 2559 4699 1652 由属性吞吐量的测试结果可以看出:三种测试情况下,其属性吞吐量都随着 - 47 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 属性数据量的增加而不断降低。一般情况下虚拟试验系统的试验步长通常为2-5ms,上述吞吐量结果可以满足不同类型虚拟试验的要求。 §5.5 时间推进请求响应 5.5.1 测试方法 在5.3.1所述的三种情况下,设参加试验的联邦成员总数为n,按1,2,…,n 对这n个联邦成员进行编号;每个联邦成员i公布一个不同的类C(i),类大小为M字节,则n个联邦成员将公布n个不同的类(C(1),C(2),…,C(n));我们以联邦成员n等于8 为例,一共有8个公布类,编号为1-4的联邦成员公布自己的类,共4个类;编号为5-8的联邦成员每个联邦成员都要订购C(1)、C(2)、C(3)、C(4)共 4个类。让公布自己类的联邦成员与订购所公布类的联邦成员运行一次仿真任务,测试每个联邦成员在不同负载及不同邦员数下的时间推进请求响应时间(统计次数为1000次,取均值求得时间推进请求响应时间),如此循环多次。 首先对REVSM时间推进性能测试。我们让公布自己类的联邦成员和订购所公布类的联邦成员都在REVSM环境的计算机节点中运行。再结合上述方法进行测试。 其次对VMICVSM时间推进性能测试。我们让公布自己类的联邦成员和订购所公布类的联邦成员都在VMICVSM环境的计算机节点中运行。再结合上述方法进行测试。 最后对两平台互连情况下的时间推进性能进行测试。我们让公布自己类的联邦成员在REVSM环境的计算机节点中运行;让订购所公布类的联邦成员在VMICVSM的计算机节点中运行。再结合上述方法进行测试。 5.5.2 测试结果分析 按照上述测试方法得出不同情况下的时间推进性能如表5-4、表5-5、表5-6所示: - 48 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 表5-4 REVSM的时间推进请求响应测试结果(单位:ms) 邦员数 字节 128字节 256字节 512字节 768字节 2个邦员 2.34 2.56 2. 2.77 2.83 4个邦员 3.17 3.36 3.68 3.97 4.22 8个邦员 3.66 3.92 4.68 7.68 9.77 表5-5 VMICVSM的时间推进请求响应测试结果(单位:ms) 邦员数 字节 128字节 256字节 512字节 768字节 2个邦员 1.57 1.74 1.96 2.34 3.47 4个邦员 2.07 2.36 2.90 3.77 4.01 8个邦员 2.86 3.12 4.35 8.72 9.69 表5-6 两平台互连情况的时间推进请求响应测试结果(单位:ms) 邦员数 字节 128字节 256字节 512字节 768字节 2个邦员 3.24 3.29 3.32 3.34 3.52 4个邦员 4.31 4.33 4.56 5.27 5.37 8个邦员 5.01 5.30 6.35 9.97 10.12 由时间推进请求响应测试结果可以看出:三种情况下,联邦成员时间推进请求的响应时间随着联邦成员数的增加有上升的趋势;同时在相同邦员个数情况下随着邦员负载的加大,联邦成员推进请求的响应时间也渐渐加大。VMICVSM下的时间推进比REVSM下或两平台互连情况的时间推进要快。 在虚拟试验系统中,时间推进步长还与高频率感知度的数据交互有关。数据量小,但是交互频率非常高,例如导弹拦截试验中,实时网内的导弹距离雷达距离越近,两者交互的频度越高,时间推进步长就要设置小一些;一般仿真中交互数据量比较小,交互频度相对不高,时间推进步长相应长一些;在视景仿真中,数据传输量大,但是交互频度低,时间推进步长就可设置长一些。因此,在虚拟试验中,可以根据需求设置不同的时间推进步长,以完成不同的数据交互任务。 §5.6 小结 本章在全面分析大规模虚拟试验实时运行支撑软件特性的基础上,同时结合 - 49 - 西北工业大学硕士学位论文 第五章 大规模虚拟试验异构网间实体迁移策略 不同仿真运行支撑软件性能测试的方法,提出了大规模虚拟试验实时运行支撑软件的性能测试方案,然后对属性更新延迟、吞吐量和时间推进性能进行了测试。通过对测试结果的比较和分析,证实了试验中间件设计的合理性和分层试验平台的可用性。 - 50 - 西北工业大学工程硕士论文 第六章 结束语 第六章 结束语 随着当前信息与网络技术的快速发展,综合运用多种网络、支撑平台是当今以及今后大规模虚拟试验系统实现的趋势。而成功构建这类大规模虚拟试验系统的关键在于其运行支撑环境能否满足不同交互实时性的要求。本文致力于解决虚拟试验系统平台统一化、互连化的问题。 首先,本文从网络层面入手,研究大规模虚拟试验的支撑平台。其中,针对一般试验需求研究了基于RTP的虚拟试验局域网;针对半实物接入的需求,研究了基于反射内存网的半实物接入网络;探讨了网络层面的异构网络互连技术,指出需要在更高层次完成其互连。 其次,本文引入中间件作为基于网络基础设施搭建大规模虚拟试验支撑环境的思路,首先研究了中间件技术的概念;研究了基于虚拟共享内存机制的中间件,提出了应用VSM作为主要机制的分层试验环境搭建;设计和实现了大规模虚拟试验中两种组成网络的通信中间件REVSM中间件和VMICVSM中间件,并讨论了这两种中间件的功能及其通信机制;针对不同网络互连,需要在中间件层提供网关支持这一需求,设计由网关来连通REVSM和VMICVSM,使整个中间件系统成为一个紧耦合的试验支撑平台。 再次,本文为了解决不同时间推进粒度的子系统互联时的时间一致性问题,提出了一类分层时间推进机制,探讨了不同粒度子系统之间的时间耦合问题,提供了相应的解决方案。针对第三章设计的基于VSM机制的试验平台,设计了相应的时间推进机制。 最后,本文在全面分析大规模虚拟试验实时运行支撑软件特性的基础上,同时结合不同仿真运行支撑软件性能测试的方法,提出了大规模虚拟试验实时运行支撑软件的性能测试方案,然后对属性更新延迟、吞吐量和时间推进性能进行了测试。通过对测试结果的比较和分析,证实了试验中间件设计的合理性和分层试验平台的可用性。 本文的研究内容仍有很多问题值得深入探讨,后续研究首先应该从以下几个方面继续进行: 1. REVSM的通信机制扩充。本文设计的REVSM仅使用了TCP和UDP中的广播机制,如何引入组播机制从而提高系统实时性能和适用性。实时性的提高不言而喻,而适用性是指对系统规模扩大的支持。 2. 两中间件互连机制的可裁剪性研究。当前的网关模式是建立在REVSM与 - 51 - 西北工业大学硕士学位论文 第六章 结束语 VMICVSM完全信息共享的基础上的,因而把所有信息在网关进行了交换。当系统规模扩大时,这种完全的共享显然是不可能实现的。因此需要对共享信息进行裁剪,即对有交互关系的试验实体间的信息才在网关进行共享。 3. 让该试验支撑平台具有良好的可移植性也是我们以后工作的一个方向,随着网络结构的不断发展,让设计具有良好的移植性可以减少很多的工作量,提高效率。 - 52 - 西北工业大学硕士学位论文 参考文献 参考文献 [1] Claxton J D, Cavoli C, Johnson C. Test and evaluation management guide (Fifth edition)[M]. Defense Acquisition University Press, 2005. [2] 张宝珍, 等. 国外国防工业先进试验与测试技术及其在新型武器装备中的应用研究[R]. 国防科技情报研究报告, HY2006-006. [3] 张宝珍, 等. 国外军工综合试验验证技术及策略研究[R]. 国防科技情报研究报告, HY2007-007M. [4] D. C. Miller and J. A. Thorpe, \"SIMNET: The Advent of Simulator Networking,\" Proc. IEEE, vol. 83(8), Aug. 1995, pp.1114-23. [5] Visual system interoperability between CCTT and SIMNET《AZ: The IMAGE Society Inc》 Panzitta M J 1994 / / P 272-281. [6] D. Enke, H. C. Lee, A. M. Ozbayoglu, A. Thammano, and C. H. Dagli, “An Application to Speaker Identification Using SimNet”, Intelligence Engineering Systems Through Artificial Neural Networks, vol. 5, ASME Press (ANNIE’95), New York,1995. [7] 冯润明,王国玉,黄柯棣.试验与训练使能体系结构(TENA)研究[J]. 系统仿真学报, 2004.10; 162-166. [8] The TENA Architecture Reference Document, http:// ww.tena-sda.org/ documents /tena2002.pdf, The Foundation Initiative 2010 Program Office, 2002. [9] http://ati.nstl.gov.cn/car/tech/141248.asp. [10] http://www.arcdr.org.cn/article-2.asp. [11] Chang-Ro Lee etc. Validation of a FEA Tire Model for Vehicle Dynamic Analysis and Full Vehicle Real Time Proving Ground Simulations, SAE, 1997. [12] 孙福治. 美国陆军虚拟试验场研究近况[J]. 国防科技技术基础, 2002 (10). [13] 顾颖彦. 反射内存网实时通信技术的研究[J]. 计算机工程, 2002年07期. [14] Heather Osterloh. TCP/IP Primer Plus[A]. Sams, 2001, 144-170. [15] IETF. RFC 18, RTP: A Transport Protocol for Real-Time Applications[S]. [16] Jim Ledin. Simulation Engineering: Build Better Embedded Systems Faster[A]. Published by CMP Books, 2001, 103-105. [17] 高立娥, 等. 一种基于反射内存实时网络的半实物仿真系统[J]. 计算机仿真, 2004, 22(3): 29-32. [18] 刘志国, 王仕成, 金光军. 基于实时网络的激光制导武器半实物仿真系统设计[J]. 计算机仿真, 2003, (5): 20—21. - 53 - 西北工业大学硕士学位论文 参考文献 [19] Broadcast memory usermanual[Z]. SBS Technologies Inc. 1998. [20] 李海,等. 基于 HLA 和反射内存网的半实物卫星对抗仿真系统[J]. 系统仿真学报, 2006, 18(6): 1520-1523. [21] 彭舰, 俞岭, 董鹏, 刘锦德. 开放系统中实时中间件关键技术研究[J]. 计算机科学, 2003,10. [22] 欧阳伶俐等. HLA时间管理与PDES仿真算法研究[J]. 系统仿真学报, 2000, 12(3): 237-240. [23] 翟永翠, 程健庆等. HLA中时间管理及对实时仿真改善方法的研究[J]. 计算机仿真, 2003, 20(8): 144-147. [24] 廖英, 梁加红, 姚新宇等. 实时仿真理论与支撑技术[M]. 长沙:国防科技大学出版社, 2002: 257-258. [25] 陆艳红, 分布式协同综合虚拟试验与测试系统的通信与调度技术研究, 硕士论文, 西北工业大学, 2002. [26] D. Enke, H. C. Lee, A. M. Ozbayoglu, A. Thammano, and C. H. Dagli, “An Application to Speaker Identification Using SimNet”, Intelligence Engineering Systems Through Artificial Neural Networks, vol. 5, ASME Press (ANNIE’95), New York, 1995. [27] 伍智峰, 唐硕等. 基于共享内存机制的分布式飞行仿真研究[J]. 计算机仿真. 2002.6(19). [28] 崔伟, InteaGRID环境下通信机制的演技与实现[D], 中国科学院计算机研究生院硕士论文. - - 西北工业大学工程硕士论文 致谢 致 谢 - 55 - 西北工业大学业 学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属于西北工业大学。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为西北工业大学。 保密论文待解密后适用本声明。 学位论文作者签名: 指导教师签名: 年 月 日 年 月 日 ——————————————————————————————————————— 西北工业大学 学位论文原创性声明 秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果,不包含本人或其他已申请学位或其他用途使用过的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式表明。 本人学位论文与资料若有不实,愿意承担一切相关的法律责任。 学位论文作者签名: 年 月 日 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务