HLA RTI(Run-time Infrastructure)

article/2025/9/22 11:31:46

RTI(Run-time Infrastructure)

概述

主要作用

  1. 具体实现了HLA接口规范。为了实现联邦内部各个联邦成员之间进行高效的信息交换,HLA接口规范用文字定义了各种标准服务和接口,而RTI则用程序设计语言将这些标准的服务和接口转成了标准的RTI API函数,使基于HLA的仿真开发成为可能。
  2. 它为仿真应用提供了仿真运行管理功能,比如仿真过程的开始、暂停、恢复、时间同步、仿真时钟推进等。
  3. 提供了底层通信传输服务,屏蔽了网络通信程序实现的复杂性,开发人员可以很容易地实现数据的发送和接收,从而降低了分布交互仿真程序设计的复杂程度。而且这种传输机制允许各个联邦成员进行不同级别的数据过滤,可以极大地减少网络数据流量,提高仿真系统的运行速度。
  4. 它是仿真功能与仿真运行管理、底层通信传输三者分离的基础,它使仿真系统具有较好的扩充性,便于实现仿真系统中各个组成部分的“即插即用”,因此各个组成部分的编程实现可以相对独立地进行,很适合于团队开发。

RTI的体系结构模型

  1. 集中式:只有一个全功能的中心节点
  2. 分布式:不存在中心节点,每个仿真节点上都有自己的局部RTI,如果本地RTI不能完成联邦成员的响应请求,则会向外部的RTI服务进程协同完成
  3. 层次式:集中式和分布式结合

通信方式

按照寻址方式划分,可以分成:点对点、组播、广播

按传输质量和效率,可以分成:Reliable(TCP)、Best effort(UDP)

配置文件

  1. 联邦执行数据文件(Federation Execution Data,FED文件)
  2. RTI初始化文件(RTI Initialization Data,RID文件)

FED文件中包含了来源于FOM中的信息,包括联邦中各个联邦成员的对象类、交互类、对象类属性、交互类参数和路径空间等数据结构信息。在使用“Create Federation Execution”服务时,需要指定FED文件所在的路径和文件名。当调用该服务后,FED文件中的信息被读取、解析,并存储在一个内部数据库中、

RID文件包含了控制RTI运行的配置参数,因此可以通过配置RID文件,使RTI满足特定的仿真应用。RTI使用环境变量RTI_RID_FILE来确定RID文件所在路径名称。

RTI 1.3-NG组成

请添加图片描述

RtiExec是一个全局进程。主要功能是管理联邦的创建、结束以及管理多个不同的联邦。每个联邦成员通过与RtiExec的通信进行初始化,加入到相应的联邦中,并确保每一个FedExec进程拥有一个唯一的联邦名称。Rtiexec实际是一个运行程序,在运行联邦执行之前,首先必须运行它。

FedExec管理联邦成员的加入和退出。为联邦成员之间进行数据通信和协调运行提供支持。FedExec进程由第一个成功调用“Create Federation Execution”服务的联邦成员创建,每一个加入联邦的联邦成员将被分配一个唯一的句柄。FedExec也是一个运行程序。在第一个联邦成员成功加入联邦后,自动启动。

LibRTI是一个接口函数库,它为开发者提供HLA接口规范中所描述的服务,该类库包括两个主要类:RTIambassador(RTI大使)和FederateAmbassdor(联邦成员大使)RTIambassador类捆绑并实现了由RTI提供的所有服务;FederateAmbassador是一个抽象类,它定义了HLA接口规范中所有的回调函数,联邦成员通过这些回调函数从RTI中接收数据(包括其他成员传来的数据和RTI自身的状态数据)。

RTI 1.3-NG还包括两个执行文件Launch和RtiConsole。当Rtiexec和Fedex不在同一台机器上运行时,为了使RTI能正常运行,要求launch在创建Fedex进程的计算机上运行。

RtiConsole为用户提供了一个检查联邦和联邦成员的状态的应用程序,用户可以通过它来了解正在运行的RTI仿真系统的状态。其具有以下功能:

  1. 列出当前所有正在运行的联邦执行的名称
  2. 检查当前所有正在运行的联邦执行的状态
  3. 从Rtiexec进程中注销一个联邦执行
  4. 列出所有已加入联邦执行的所有联邦成员
  5. 检查所有已加入联邦执行的所有联邦成员的状态
  6. 强制从联邦执行中“剔除”某个联邦成员

联邦执行数据文件(FED)

FED文件是FOM开发的结果,是所有联邦成员间为交互目的而达成的协议。它记录了在联邦运行期间所有参与联邦交互的对象类、交互类及其属性、参数和相关的路径空间信息,另外FED文件中还记录了HLA预定义的MOM和其他一些联邦执行细节数据。

仿真运行期间,RTI将根据FED文件提供的联邦执行的细节数据创建相应的联邦直接,并在整个联邦执行生命周期内以FED文件为蓝本,协调联邦成员间的监护。

FED文件的结构

FED文件以“Fed”开始。根据功能和作用,FED文件一般可分为五节,每一节用括号作为起止标记

  1. Fedversion:RTI的版本号
  2. Federation:联邦的名称
  3. Objects:联邦中所有对象和管理对象模型中的对象类的声明
  4. spaces:给定的联邦将使用的所有路径空间
  5. interactions:联邦中所有的交互类以及管理对象模型中的交互类的声明

双分号;;右边的内容是注释

语法

Federation

(Federation )

Fedversion

(Fedversion v1.3)

spaces

(

​ (space

​ (dimension )

​ (dimension )

​ …

​ )

​ (space

​ (dimension )

​ (dimension )

​ …

​ )

)

Objects

(objects

​ (class objectRoot

​ (attribute privilegeToDelete reliable timestamp A)

​ (class RTIprivate)

​ (class Manager

​ …

​ )

​ (class

​ (attribute

​ (attribute

​ …

​ )

​ (class

​ (attribute

​ (attribute

​ …

​ )

​ …

​ )

)

Object Root是联邦中所有对象的基类,只有一个属性“PriviledgeToDelete”

RTIPrivate是FED文件固有的,不能被修改

Manager包括对管理对象模型中所有的对象类定义

用户定义的对象类都继承于基类“objectRoot”,而且放在基类的属性“PriviledgeToDelete”和管理对象模型所有对象类的后面。

interactions

(interactions

​ (class interactionRoot

​ (class RTIprivate best_effort receive)

​ (class Manager best_effort receive)

​ …

​ )

​ (class

​ (parameter )

​ (parameter )

​ …

​ )

​ (class

​ (parameter )

​ (parameter )

​ …

​ )

​ …

)

interactionRoot为所有交互类的基类

manager为MOM中的所有交互类

自定义交互类都必须继承于基类,通常放在MOM中的交互类后面

RTI初始化文件(RID)

用来设置RTI运行的初始化参数。

按照RTI内部组件的粒度分成三类,分别是:

  1. ProcessSection:设置RTI进程启动时的有关参数
  2. FederationSection:设置联邦有关参数
  3. FederateSection:设置联邦成员有关参数

(RTI

​ (ProcessSection

​ …

​ )

​ (FederationSection

​ …

​ (FederateSection

​ …

​ )

​ )

)

通过设置RID文件中的有关参数,可以再一个RTI运行环境中支持多个联邦的运行。其方法是在RID文件的FederationSection或FederateSection中增加与联邦名称或联邦成员名称一致的字段。

具体参数含义不再详述


http://chatgpt.dhexx.cn/article/99EOYNH4.shtml

相关文章

DDS之DCPS Infrastructure模块

DCPS Infrastructure Infrastructure ModuleEntityEntity IdentifierQoS policyListenerStatusStatusConditionEnabling Entities QosPolicyStatusStatus 定义StatusMask 定义Listener callback定义Listener callback的实现 Condition and WaitSet Infrastructure Module 从Inf…

Oracle 19.3 Grid Infrastructure 软件安装详细教程

更多文章,欢迎关注作者公众号,欢迎一起交流。 1 安装环境 CentOS 7.9Oracle Database 19.3 - Enterprise Edition 2 安装配置 2.1 内存要求 1)数据库安装:至少1GB,推荐2G以上; 2)Grid安装&…

Oracle 19c Grid Infrastructure安装

概述 本文描述在单个主机上(不是RAC)GI 19c的安装。 Oracle数据库软件19c已安装,但未创建任何数据库。参见这篇文章。 主机为Oracle Linux 7,主机上已安装先决条件包(oracle-database-preinstall-19c),数据库软件用户…

infra-structure Ad Hoc

“infrastructure”模式: 所谓infrastructure是在一种整合有线与无线局域网架构的应用模式,与ad- hoc不同的是配备无线网卡的设备必须通过ap来进行无线通讯,设置后,无线网络设备就必须有AP(Access Pointer)…

DDD(八)【基础设施层】

最近被DDD吸引了阿,在这里感谢一下小佟,呵呵,领域驱动设计是个不错的东西,帮助我们把问题清晰化,这候对于复杂业务逻辑是很重要的,今天这一讲主要说一下D&…

DB2初步使用

DB2初步使用 1.安装完成后开始菜单栏里会有一个 DB2 Command Window - Administrator 打开这个命令窗口 2.db2  db2,启动 3.list databse directory 会列出所有数据库 create databse XXX  创建新的数据库XXX  drop database XXX  删除已有数据库XXX 4.conn…

db2 时间戳相减返回天数

db2时间戳类型时间相减返回天数,先用timestampdiff函数让时间戳相减得到秒,然后利用cast()函数转换成天数。timestampdiff()函数中的时间一定是时间戳timestamp类型。 select cast(timestampdiff(2,(CURRENT_TIMESTAMP - 2021-08-10 11:00:00)) as doub…

Linux 命令行进入DB2

1. docker ps 2.docker exec -it 813cb755c14c /bin/bash 3.su - db2inst1 进入DB2账户下 4.db2 list db directory 列出目前所有数据库 5. db2 直接进入db2数据库命令行模式 6.db2 connect to testdb(testdb数据库名称) 如果需要对某一个数据库操作…

DB2安装到卸载一套龙服务

DB2安装到卸载一套龙服务 1.DB2数据库下载 下载地址: 点击这里下载 点击链接保存,或者复制本段内容,打开「阿里云盘」APP 下载下来是 3 号 双击3解压 会有一个弹框,为四号 ,点击Browse 这里选择解压地址,我是解压…

db2获取日志路径

db2 get db cfg for bpfdb3 | grep log

db2的启动命令

想重启db2库,直接使用db2stop命令,执行报错 这样停不掉,因为有连接在上面 查看连接 db2 list applications show detail 发现有很多连接,连接在bpfdb5这个库上面 杀掉所有的连接 db2 force application all 再次检查连接 发现没…

db2top操作手册

本手册译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-0812wang/ 目录 1.db2top命令语法... 4 2.db2top运行模式... 5 2.1 交互模式... 5 2.2 批量模式... 6 3.db2top监控模式... 8 3.1 数据库监控 (d). 8 3.2 表空间监控 (t). 9 3.3 动态SQL监…

DB2基础语法与简单使用

1、启动 [rootMyClone hadoop]# su db2inst1[db2inst1MyClone hadoop]$ db2start2、创建数据库 [db2inst1MyClone hadoop]$ db2 create database hiber;3、 列出数据库 [db2inst1MyClone hadoop]$ db2 list db directory4、连接数据库 [db2inst1MyClone hadoop]$ db2 conne…

awk的使用

awk的使用 一、awk的作用 1.用来从文本中截取字符串 2.用来匹配过滤文本,起到grep的作用 二、awk里面的分隔符 1、输入分隔符: -F -FS":" FS(input field separater)2、输出分隔符: 定义OFS“#” OFS&a…

AWK基础教程

前言 之前针对WorkerHub小程序做的数据分析文章 互联网卷王花落谁家? 收到了一些小伙伴的回复,点名要学习数据分析,其实我也是一知半解,想着来写几篇文章简单聊下我分析的过程。 首先是数据清洗和统计了,这块我并没有…

详解AWK的用法

Awk工具介绍 AwK是一种处理文本文件的语言,是一个强大的文本分析工具。 它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作。数据可以来自标准输入也可以是管道或文件 20世纪70年代诞生于贝尔实验室&#…

Shell脚本文本三剑客之AWK

目录 一、AWK工具介绍 1.1AWK命令的基本格式 1.2AWK工作原理 1.3常见的内建变量(可直接用) 二、实例 2.1打印文本内容 案例1:打印磁盘已经使用情况 案例2:打印字符串 案例3:打印字符串确定文件有多少行 2.2根据$n提取字…

AWK常用技巧

1.1 介绍 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。 它允许您创建简短的程序&#xff…

AWK用法全解

一、awk介绍 awk是Linux自带的一个逐行扫描的文本处理工具,支持正则表达式、循环控制、条件判断、格式化输出。AWK自身带有一些变量,可以在书写脚本时调用。 二、基本语法格式 2.1、在shell中使用awk awk [option] 代码块 文件名 option的选项及含义…

awk文本工具

awk 一、什么是awk?二、awk的工作原理三、命令格式四、管道符号调用四、getline 一、什么是awk? awk命令是一种编程语言,用于在linux/unix下对文本和数据进行处理。 而且它支持用户自定义函数和动态正则表达式等先进功能,是linux…