本文主要对近期所翻阅的一些论文及资料进行的概要性整理,后续会有更多的关于HLA的研究细节发布,基于博客园的知识共享平台,以期共同进步!

一、引言

仿真的历史由来已久,在系统研制过程中,基于建模及仿真技术能够有效的降低系统研制周期、提高研发效率以及提高系统的可靠性和稳定性。随着系统规模和复杂度的不断提高,如何提高仿真效率是重要的研究课题之一。分布式仿真能够充分利用分布式并行计算的特点,大幅度提高仿真效率。

不同企业、组织,或统一组织内的不同部门由于专业领域的不同,一般是基于自身专业领域开发不同的仿真应用。而这些仿真应用一般处于天然隔离之下。如何提高仿真应用间的重用和互操作是一个值得研究的领域,而标准化正是解决这类问题的典型方式。因此,建立一个通用的建模仿真技术框架以及相应的标准、规范是一个有效途径。

由此诞生的美国国防部的MSMP计划正是这样一个计划。MSMP制定了一系列目标,其中之一就是“为建模和仿真提供共同的技术框架”。由此,美国国防部在发布了针对建模仿真领域的通用技术框架。该框架有CMMS、HLA和一系列数据标准组成。HLA正是在这样的背景下,作为建模仿真的通用技术框架的一部分而出现在大众视野中。

二、HLA基本思想

HLA,英文 High Level Architecture,即高层体系结构,是一个通用的建模仿真的技术框架,其主要关注仿真应用间的互操作性和重用性。

HLA的组成类似于面向对象的思想,即客观世界是由对象以及对象间的交互组成。HLA的总体体系结构如下图所示,HLA将 实现某种特定仿真目的的仿真系统 抽象为联邦,将仿真系统中存在交互关系的仿真应用抽象为 联邦成员(Federate),将系统仿真过程中的实体通过对象进行组织。一个联邦包含多个联邦成员,一个联邦成员包含多个对象。仿真执行的过程正是基于联邦成员间的交互过程。

HLA的逻辑拓扑如下图所示:HLA将仿真过程中的所需的交互信息通过统一的、规范的格式进行表述。仿真过程的执行,正是基于一致的信息表述,联邦成员间的相互交互而完成。联邦成员间的交互不是两两独立进行,而是通过公共的基础服务支持框架RTI(Run Time Infrastructure)实现。仿真系统被抽象为联邦成员的组合和交互。RTI是HLA的核心部分之一,它为仿真执行提供底层的基础服务支撑。类似于局域网内的“HUB”,仿真过程中所有的信息交互必须通过RTI完成。

基于Hub式的架构风格,将仿真应用的实现与基础支撑服务分隔开,仿真人员只关注于特定垂直领域的仿真实现,而不必关系复杂的底层通信服务。同样,基于一致的信息表述和服务接口,使得联邦成员的表述以及成员间的信息交互变得行为更加一致。

三、HLA组成

基于美国国防部建模与仿真办公室DMSO发布的HLA官方文档,HLA主要包括规则、对象模型模板以及接口规范三个部分,如下图所示。

3.1 规则

规则是HLA中联邦设计所需要遵循的基本准则,HLA中包含 10 个规则,分别对联邦和联邦成员设计过程中的遵循准则进行了描述

1. 联邦中有一个联邦对象模型

2. 联邦中,FOM中的所有对象实例属于各个联邦成员,而不应该在RTI中。

3. 联邦执行是,联邦成员间的FOM规定的数据交互必须通过RTI进行。

4. 联邦成员通过HLA提供的标准接口与RTI进行交互。

5. 联邦执行过程中的任一给定时间,一个对象的属性只能为一个成员所拥有。

6. 联邦成员应该有一个符合OMT规范的成员对象模型,即SOM

7. 成员能够对其SOM的属性进行更新/反射,也能对SOM的交互进行发送/接收

8. 成员应该能按照SOM的规定,在联邦执行过程中进行所有权的转移与接收。

9. 成员能按照SOM的规定,改变更新对象属性的条件。

10.成员应该能管理局部时间,从而保证它能协调的与其他成员交换数据。

3.2 对象模型模板OMT

对象模型模板,即 “Object Model Template”,简称OMT是对联邦中的信息进行统一描述的统一格式描述。不论是联邦的FOM还是联邦成员的SOM都要遵循OMT的格式要求对对象信息进行描述。OMT通过对信息描述格式的统一,更加有力的支撑了的成员间的互操作性和重用原则。

3.3 接口规范

接口规范定义了系统仿真过程中需要实现的服务接口的标准形式,为RTI以及联邦成员的RTI模块实现提供指导。HLA文档中的接口规范定义涉及了 6 种类型的服务接口定义,如下图所示:

1. 联邦管理服务:主要包括创建联邦执行以及执行过程中对联邦的动态控制相关的服务。如创建联邦执行、加入联邦执行、请求暂停、请求恢复运行等。

2. 声明管理服务:主要用于成员向RTI生命它提供的信息与能发出的交互,以及希望从其他联邦成员接收的信息和交互。

3. 对象管理服务:主要包括对象的动态管理、成员间对象互操作

4. 所有权管理服务:主要用于管理对象的所有权在成员间的接收和转移。

5. 时间管理服务:主要用于仿真过程中的时间管理。

6. 数据分发管理服务:主要包括针对联邦成员间进行数据分发的路径空间进行管理的服务接口

总结

HLA是建模仿真领域的通用技术框架,借鉴面向对象思想,其将仿真系统抽象为联邦、联邦成员、对象。仿真的执行过程抽象为联邦成员间基于RTI的交互过程。

HLA文档包含规则、接口规范和OMT三部分,接口规范对HLA基础服务进行了定义,OMT对HLA的对象及交互进行的表述格式进行了统一,规则对联邦及联邦成员的构建所遵循的规则进行的约束。

RTI是HLA的核心,其对HLA的接口规范进行标准实现,为建模仿真提供基础的服务支撑。

【HLA】初识HLA/RTI的更多相关文章

  1. MAC上安装 HLA(High Level Assembly)

    1.安装HLA 最新版的hla汇编器可在这里下载,支持MacOs,Linux,Windows平台 2.安装步骤 将下载好的hla程序包放在Mac根目录下 最重要的一步是设置好环境变量,打开Mac根目录 ...

  2. windows下hla编译环境配置(转)_1

    原文地址:http://blog.chinaunix.net/uid-20548989-id-1667169.html HLA简介         HLA,英文"High Level Ass ...

  3. windows下hla编译环境配置(转)

    原文地址:http://blog.chinaunix.net/uid-20548989-id-1667169.html HLA简介         HLA,英文"High Level Ass ...

  4. GATK-BWA-MEM handle GRCh38 alternate contig mappings

    1. For the Impatient # Download bwakit (or from <http://sourceforge.net/projects/bio-bwa/files/bw ...

  5. HLA中常用的基本术语

    (1)联邦(Federation):用于实现某一特定仿真目的的分布仿真系统. (2)联邦成员(Federate):参与联邦的所有应用都称为联邦成员,简称成员. (3)对象(Object):构成成员的基 ...

  6. HLA高级汇编语言基础

    HLA高级汇编语言环境的搭建与设置 我的操作系统:WINDOWS7 需要下载的东西:MASM32:http://www.masm32.com/masmdl.htm  HLA:http://webste ...

  7. 【Nature 子刊】I型HLA基因中和癌症相关的体细胞突变--转载

    肿瘤的发生与免疫系统的功能密切相关.在免疫系统中,MHC(主要组织相容性复体,majorhistocompatibilitycomplex)是所有生物相容复合体抗原的一种统称.HLA(humanleu ...

  8. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  9. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

随机推荐

  1. pureMVC简单示例及其原理讲解三(View层)

    本篇说的是View层,即视图层,在本示例中包括两个部分:MXML文件,即可视控件:Mediator. 可视控件 可视控件由UserForm.mxml(图1)和UserList.mxml(图2)两个文件 ...

  2. 基于Xcode8插件开发~一键检测处理头文件引用

    Xcode8开放了新的一个Extension:Xcode Source Editor Extension,目的是让开发者可以正规的自主为IDE编写插件,虽然说系统现提供的功能还比较拮据,但是不妨碍我们 ...

  3. 程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。刚进CSDN的博客看到这么句话

    程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上. 而自己呢?是个程序员呢还是个业余玩家!

  4. JS - What does `void 0` mean?

    语法 void expression // or void(expression) MDN的描述 能向期望一个表达式的值是 undefined 的地方插入会产生副作用的表达式.也就是为了避免产生某种副 ...

  5. Win8下,以管理员身份启动VS项目

    之前一直是先以管理员身份启动VS,然后再打开项目的,比较麻烦,找了好久,总算有一个处理方案了 在Windows7下 通常使用修改属性的方式:在任意快捷方式上右击,选择属性,选择高级,选择以管理员身份启 ...

  6. python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0 解决方案

    环境:mac+python 2.7 场景描述:在使用python修改excel内容修改表格内容为中文保存时报以下错误 此时已经设置了utf-8了 但保存时仍然报错错 此时将python中的中文使用un ...

  7. Baidu图表插件--Eharts使用(柱状图)

    官网链接:http://echarts.baidu.com/index.html 官网的demo,api都很详细:我就分享下我的学习步骤 首先定义一个显示图标的区域: <div id=" ...

  8. LINQ查询表达式和LAMBDA点标记方法基础

    在上一篇文章中,我们介绍了LINQ的一些基本用法,这一篇我们来看下另一种更简洁更优雅的表达式,Lambda表达式,也可以叫做点标记方法. 相信大家在实际工作中都用到过这两种方式,下面我们还是用实例来看 ...

  9. Angular2的模块架构浅谈

    引言angular2相比1引入了更完善的模块系统,回忆ng1的应用中通常在页面的html标签或body标签中添加ng-app节点,值为应用的模块名,整个应用都将围绕这个模块来展开,到了ng2,模块概念 ...

  10. Frogs

    Problem Description There are m stones lying on a circle, and n frogs are jumping over them.The ston ...