现在的位置: 首页 > 综合 > 正文

分布式仿真协议HLA概述

2012年11月25日 ⁄ 综合 ⁄ 共 6396字 ⁄ 字号 评论关闭
Dis/hla
Distributed interactive simulation system/High level architrcture

一、 研究的内容
二、 如何实现
三、 别人的做法

1、 技术概述
HLA 是1995年美国国防部(DOD)发布的建模与仿真大纲(DOD M&S Master Plan) 中第一个目标开发建模和仿真通用技术框架中的首要内容,其主要目的是促进仿真应用的互操作性和仿真资源的可重用性。1996年10月美国防部正式规定HLA为国防部范围内仿真项目的标准技术框架,开始推行HLA,并以之作为替代原有的 DIS、ALSP等标准。同时提交IEEE,作为IEEE1516发布。
从90年代以来,随着计算机技术尤其是面向对象技术与分布计算技术的的发展与成熟,产生了基于客户/服务器模式的分布对象计算(DOC),并且出现了支持分布对象计算的具有代表性的分布系统开发技术--公共对象请求代理结构CORBA. CORBA技术的出现,为高级体系结构HLA的建立提供了很好的技术基础。

   原有的Dis采用的是一种低层次的随机的体系结构,而HLA则为构造多种类型的、聚合集仿真应用系统提供了更好的集成手段。HLA主要由三部分组成:
  - 规则(Rules):
  保证联邦中仿真应用间按正确的方式进行交互,描述各联邦成员的责任及它们与RTI的关系,共十条。
  共10条,前5条涉及联邦,后5条涉及联邦成员
    1 联邦中必须有一个FOM,以OMT中的格式定义FOM
    2 所有在FOM中的对象都必须在联邦成员中描述而非RTI中
    3 在联邦运行中,联邦成员间的FOM数据交换必须通过RTI
     4 在联邦运行中,联邦成员与RTI的交互必须按照HLA的接口规范进行
     5 在联邦运行中,一个对象实例的属性在某个时刻只能为一个联邦成员所拥有
    6 联邦成员中必须有一个SOM,以OMT定义的格式描述
     7 联邦成员必须能更新(UPDATE)或反映(REFLECT)在SOM中定义的任何属性,发送或接受SOM对
      象的交互信息
    8 联邦成员运行中能按SOM定义的方式转移或接受属性的所有权
    9 在运行中能按照SOM中定义的方式更改提供对象属性更新的条件
    10 联邦成员能够以允许的方式管理其局部时钟
  - 接口规范说明(Interface Specification):
   定义联邦成员与联邦中其他成员进行信息交互的方式,即RTI的服务,共有六种管理服务。
    1 联邦管理服务:包括联邦的创建与注销、联邦成员的加入与退出、联邦状态的存储与恢复、设置同步点等。
    2 声明管理服务:包括发布、预定对象属性。发布、预定交互类信息以及其他支持服务。
    3 对象管理服务:包括注册或注销对象实例、属性的更新、被更新、交互的发送及接受以及一些支持服务。
    4 所有权管理服务:包括联邦成员间对象属性所有权的转移和相应的支持服务。
    5 时间管理服务:包括协调联邦成员间局部时钟推进管理的各种服务。
    6 数据分发管理服务:包括各个联邦成员根据各自的“兴趣”来确定信息的发送和接受等的有关支持服务。
  - 对象模型模板(OMT:Object Model Template):
   定义HLA对象模型信息的通用方法,提供一种标准格式HLA对象模型信息,以促进互操作性和资源的 可重用性。
   OMT定义了描述HLA对象模型信息的通用方法,它提供一种标准的记录对象模型信息格式。目的是促进互操作性和可重用性。在OMT中定义了联邦对象模型FOM和仿真对象模型SOM。FOM以一种通用、标准的格式描述联邦成员间的数据交换。SOM是单个仿真应用能提供给联邦的固有的能力描述。
  HLA对象模型组成:
    对象模型标识表:
    对象类结构表:
    交互类结构表:
    属性表:
    参数表:
    路径空间表:
    FOM/SOM术语字典:

2、 HLA的框架和规则

(1) 联邦应该有一个联邦对象模型FOM,该FOM应与HLA的OMT相容。FOM是说明HLA联邦数据交换的手段,它记录了联邦成员对于在联邦运行期间需相互交换的数据的内容、格式及数据交换的条件所达成的协议。
  (2) 在一个联邦中,FOM中的所有对象应属于各个成员而不应在RTI中。HLA中,将凡是与仿真有关的对象实体的表达放在联邦成员中而不是放在RTI中, 但是RTI可以拥有管理对象模型(MOM)中对象实例。
  (3) 在执行联邦时,各成员中间所有FOM规定的数据交换必须通过RTI进行。HLA中, FOM中描述的对象或交互类的数据,都是联邦成员之间可能需交换的数据,而成员之间要想实现交换数据,只有借助于RTI提供的服务。
  (4) 在联邦执行中,成员应按HLA接口规范与RTI交互,即访问RTI应遵循接口规范。
  (5) 在联邦执行中,在任一给定时间,一个对象属性只能为一个成员所拥有。HLA中,不同成员可以拥有同一个对象实例的不同属性。为了保证整个联邦中数据的一致性,在任意给定时间最多只能让一个联邦成员拥有(从而有权改变其值)任意给定的对象实例的属性。
  (6) 联邦成员应有一个符合OMT规范的成员对象模型(SOM)。联邦成员通常由实现仿真功能的仿真系统组成,SOM描述了它们为实现自己的仿真功能,需向外获取(定购)及本身能向外提供(公布)的信息。
  (7) 成员应能更新和(或)使用其SOM中记录的对象的属性,能接收与发送SOM中记录的交互。联邦成员在联邦运行中向其它成员公布自己所负责建模的对象的属性的数值,及借助于RTI提供的服务接收自己想要的来自其它成员的属性数据是各个联邦成员的责任。
  (8) 成员应按SOM中的规定,在联邦执行中动态地转移与接收属性的所有权。对HLA联邦来说,实际仿真剧情的实现,常常要在具体的联邦成员之间进行对象属性所有权动态转换,RTI通过"所有权管理"提供相应的服务,而具体的实现是联邦成员之间的责任与合作。
  (9) 成员应按SOM中的规定,更新对象属性的条件(如改变阀值)。HLA让拥有某些对象属性所有权的成员有权产生这些属性的不断变化的值(往往通过模型的解算得到),并由它负责通过RTI将不断公布这些属性值,从而使定购这些属性的其它成员能得到这些属性的值。
  (10) 成员应能管理局部时间,从而保证它能协调地与联邦中的其它成员交换数据。HLA通过时间管理服务给联邦成员提供了灵活的仿真时间推进的方法,从而使HLA可以适用于连续、离散或混和类型的仿真。但它需要联邦成员自己管理自己的逻辑仿真时间(本地时间)。

3、联邦成员访问RTI的接口规范
运行时间支撑系统RTI软件主要包含三个组件: RtiExec、 FedExec和 LibRTI,它们可以运行在单独的一台工作站或任意复杂的网络上。LibRTI是一个C++库,为成员开发者提供了HLA接口规范定义的一系列服务。成员通过LibRTI调用HLA的服务同RtiExec、FedExec以及其它成员进行通信。HLA接口规范定义了libRTI向成员提供的服务以及成员向联邦承担的责任,如表所示:

六大管理服务(101个服务)  名称  服务数目  功能
 联邦管理  20  提供创建、删除、加入、退出和控制联邦运行及保存状态等功能
 声明管理  12  用于公布、订购属性/交互,支持仿真交互控制的功能
 对象管理  17  包括对象提供方的实例注册和更新,对象用户方的实例发现和反射,同时包括收发交互信息的方法、基于用户要求控制实例更新和其他各方面的支持功能
 所有权管理  16  提供属性所有权和对象所有权的迁移和接收的服务
 时间管理  23  提供HLA时间管理策略和时间推进机制
 数据分发管理  13  通过对路径空间和区域的管理,提供数据分发的服务,使成员能有效地接收和发送数据
其他  其他支持服务  29  是对于实现六大基本服务的支持,可完成联邦执行过程中关于名称及其对应handle之间的相互转换,并可设置一些开关量

RTI按HLA的接口规范标准进行开发,提供了一系列用于仿真互连的服务,是HLA仿真系统进行分层管理控制、实现分布仿真可扩充性的支撑基础,也是进行HLA其它关键技术研究的立足点。作为HLA进行分布仿真的支撑系统,RTI是实现HLA的核心,对运行过程中动态信息的管理和集成提供有效的支持。
根据调用关系,RTI软件被分为两部分。一部分被包装成RTIAmb类,定义和实现联邦成员所需的与RTI通讯的接口,由联邦成员主动调用;另一部分被包装成FedAmb类,定义和实现RTI所需的与联邦成员通讯的接口,由RTI回调使用,根据具体的联邦仿真应用开发,完成相应功能。
在RTI的六种管理服务(见表)中,数据分发管理和时间管理实现的难度最大,最为复杂,对整个系统的影响也最大。
为了减少网络开销, HLA规范中描述了数据过滤的机制。具体来讲有两种:即基于类的数据过滤和基于值的数据过滤。在HLA的框架下,支持数据过滤的基本概念是路径空间(RS),它是一个多维的坐标系统。路径空间实现的基本原理是首先将路径空间分区,分区以后就可以通过计算获得对象及交互类对应的区域所在的区。目前路径空间的实现方法主要有网格法、保护区法、基于接收方的过滤机制RBF等。
时间管理服务的目的是保证RTI能在适当的时间以适当的方式和顺序将来自成员的事件转发给相应的成员。时间管理控制各盟员在仿真时间轴上的推进,时间推进必须和对象管理相协调。从支持互操作性的角度出发,RTI的时间管理(TM)应被设计为综合集成框架,可以支持联盟内多个盟员之间不同的时间机制。一般说来,时间管理功能的实现还必须和对象管理OM及数据分发管理DDM相协调,以便使得发送给盟员的数据的逻辑正确(如呈现某种时间序)。作为支持互操作的综合集成框架,时间管理在以下两方面还有待研究:满足仿真应用的实时性要求;维护由可互操作的仿真实体组成的分布式系统的时空一致性(包括高精度时钟同步)。

4、 HLA联邦开发运行过程(FEDEP)模型
为了指导HLA联邦模型的开发,促进HLA的应用,美国国防建模仿真办公室提出了HLA联邦模型的开发和执行的标准过程:FEDEP(Federation Development and Execution Process ),使联邦模型的开发过程实现标准化。这个HLA联邦模型的开发和执行过程如图所示:

开发HLA模型的标准过程

每一阶段的工作内容为:
1 定义联邦目标:联邦的发起人与开发者就本联邦应达到的目标取得共识,完成“想定”并形成文档。
2 开发联邦概念模型:开发联邦有关的“真实世界”的仿真模型,以“仿真对象”和“交互”描述功能。
3 设计和开发联邦:完成所有的开发工作的确认,完成联邦对象模型(FOM)表。
4 集成和测试联邦:完成联邦的所有开发工作,并进行测试。
5 执行联邦并分析结果:执行联邦,分析仿真结果,并反馈给发起人。

5、 研究的问题
HLA联邦开发运行过程(FEDEP)中个模块的具体实现
RTI软件结构与实现技术
DDM(data distribution management )算法的研究
RTI中网络通信的研究
RTI的性能测试与评估
一致性技术的研究
RTI互操作性的研究
DIS/HLA转换升级问题
dis/hla数据分发机制研究
记录与回放问题研究
HLA与网格计算的结合
HLA与MAS(multiple agent system)的结合

6、 实现的方案
1 利用文档规范及现有资源自主实现RTI的各个接口,搭建自己的开发平台。
HLA 接口规范虽然定义了RTI 应该实现哪些功能提供哪些服务,但是HLA 标准并没有规定这些功能和服务的具体实现方式,因此RTI 软件的开发者可以自由选择不同的实现方式(包括不同的网络拓扑结构、进程模型、时间管理算法、数据分发算法等)来实现他们的RTI 软件。由于目前并没有开源的产品,所以为了更好地实现个性化功能,可以采取这种方式,但开发周期长,难度很大。
2 使用现有的开发平台
目前有很多研究团体和个人致力于开发RTI软件,现有较为典型的RTI软件包括DMSO RTI,pitch公司pRTI1.3、pRTI1516,MAK RTI套装产品,LabWorks套装产品,国内的有北京航空航天大学的DVE_RTI,浙江大学的CADRTI等等,这些平台各具特色,使开发周期缩短,难度降低,但由于各开发平台通用性不强,性能参差不齐,在实际应用中也存在很多问题。
我个人认为应该立足于现有能提供二次开发功能的平台,结合实际项目进行开发研究,在这方面清华大学的基于网格技术的分布仿真支撑平台(GRASP)是一个很好的例子。而要求快速开发则采用MAK RTI或pRTI与LabWorks的结合都是不错的方案。其中MAK包含了:
MAK VR-Forces v3.7灵活的使电脑产生效力的工具包
MAK VR-Link v3.9.1 HLA 和 DIS的网路工具包用於模拟和虚拟现实的应用程式
MAK Stealth v5.2a提供输出3D观察HLA或 DIS(GeographicInformation Systems) 视窗
MAK PVD v2.7提供即时2D模拟观察
MAK Data Logger v3.9a易用的模拟记录和回放系统
MAK RTI v2.2高性能的即时讯息RTI
MAK Gateway v4.1.1连结 DIS 至 HLA的网关
它们提供了一个完整的可视化的解决方案

而LabWowks 和pRTI是服务于FEDEP的最先进的仿真平台软件,利用LabWowks 、pRTI和特定的实体建模工具软件,能实现FEDEP的工作。LabWorks有四个基本模块:
1 OMDT PRO :实现HLA对象模型(SOM -仿真对象模型、FOM -联邦对象模型)的自动化设计。
2 FedProxy:生成可直接运行的HLA联邦成员,测试HLA联邦成员。
3 OMni:实现HLA联邦成员和RTI的集成。
4 FedDirector:实现HLA联邦由产生到退出的全生命周期的运行管理。

    具体的开发方案为:
1. 利用OMDT PRO 实现HLA对象模型(SOM -- 联邦成员模型、FOM -- 联邦对象模型)的设计,并利用OMDT PRO自动产生代码的功能,生成SOM、FOM的C++/JAVA模型代码,生成联邦运行的FED文件。
2. 利用FedProxy将OMDT PRO生成的FOM、SOM变成可直接运行的HLA联邦和联邦成员,测试HLA联邦成员的接口和互操作的正确性。
3. 经过FedProxy的测试证明测试HLA联邦成员的接口和互操作的正确性后,就可以在OMDT PRO自动产生的代码基础上实现联邦成员模型SOM的实体动力学模型开发。开发SOM的实体动力学模型有多种方式:利用动力学建模工具MATLAB/MATIXX实现或自行编写模型的C++/JAVA代码。将开发成功的SOM实体模型编译、连接成执行程序即可运行于HLA的RTI环境中。
4. 为了监视和管理联邦的运行,利用FedDirector可以实现对HLA联邦成员的运行状态和联邦的运行流量进行监视。
5. 联邦成员的移植:将来自不同联邦的联邦成员集成为新的联邦,实现新的应用,这在HLA应用中是非常常见的情况,也是HLA原始思想的要求。要实现方便快捷实现联邦成员的移植,利用Omni可以实现。Omni利用映射的思想,使联邦成员的移植问题变得简易快捷,经过Omni封装的SOM拥有即插即用的功能。
其应用系统的总体结构如下图

7、思考
现有大规模仿真系统(HLA)存在资源利用率不高、仿真规模有限等与设计构想方面的差距。更好的算法以及网格技术(OGSA),智能代理技术等新技术的引入将会极大促进HLA的发展,但同时也会带来更大的技术挑战。如何将这些技术更好的融合在一起,使其发挥更大的效率,这是需要我们进一步思考的问题。

抱歉!评论已关闭.