CERTI架构剖析
来源:互联网 发布:ubuntu16.04 网络设置 编辑:程序博客网 时间:2024/06/03 17:41
待整理...
CERTI采用层次式结构模型
联邦管理
即管理联邦执行
第一个加入仿真的联邦成员可以删除联邦执行
联邦执行退出顺序:联邦成员,局部RTI上联邦执行与局部RTI,中心RTI上联邦执行
RTI根据FED文件生成全联邦都一至的各类数据列表:
联邦执行列表 记录联邦执行的ID值和联邦执行名
联邦成员列表 记录参与联邦执行的每个联邦成员的数据,包括联邦成员所属的联邦执行,联邦成员名及ID
RTI Server 记录了各局部RTI服务器的ID标识符、名字
联邦成员拥有:对象类结构表和交互类结构表
时间管理
1.时间分类:
物理时间(Simulation Time) 指的是客观世界(或真实世界)中的自然时间
仿真时间(Logical Time) 仿真世界中的"物理时间",也叫逻辑时间
墙上时钟时间(Wall Clock Time) 仿真过程中的参考时间,通常来自一个硬件时钟
2.时间管理策略:
在HLA中联邦成员的逻辑时间管理策略分为两种,即时间控制(Time Regulating)和时间受限(Time Constrained)。它描述了联邦成员的逻辑时间推行与其他联邦成员逻辑时间推进的关系。
时间控制:指联邦成员会影响其他联邦成员的时间推进。
时间受限:指联邦成员自身时间推进受其他联邦成员的影响。
所以联邦成员时间管理有四种状态:
1.即时间控制,又时间受限。
2.既不时间控制,又不时间受限。 联邦成员内部时间推进不使用RTI提供的服务
3.仅时间受限,如观测器和联邦运行管理工具。
4.仅时间控制。
消息传递机制
消息传递包括两方面内容:消息传输方式和消息传输顺序。
消息传输方式分为两种:可靠(Reliable)和快速(Best effort)。
消息传输顺序分四种:
1.接受顺序
2.优先顺序
3.因果顺序
4.时间戳顺序。
这四种传递服务功能一次增强,代价也随之增大。CERTI实现了接受顺序和时间戳顺序。
时间戳顺序保证传递到成员的所有消息都是按时间戳顺序到达。实现方式是RTI将接受的消息存于队列中,知道确信没有时间戳更小的消息到达,才将这些消息转发给成员。
时间推进机制
HLA的时间推进机制分为2大类:
1.保守时间推进
2.乐观时间推进
CERTI中使用的是保守时间推进机制。
保守时间推进机制的基本思想是假设物理系统满足可是现实性(Realizability)和可预测性(Predictability)。
1.可实现性。 保证系统发出的t时刻的消息仅仅依赖于t时刻以前接受到的消息和状态。
2.可预测性。 保证系统能够在t时刻预测出t+x时刻的消息(x>0)。
保守时间推进机制的2个关键变量:
1.时间前瞻量(Lookahead)。 代表一段时间间隔L,主控联邦成员只能发送(当前时间t+L)时刻之后的时间戳消息。因此RTI在长度为L的时间窗内可以并发处理该联邦成员消息的发送和接受。
2.时间戳下限值LBTS。
表示该联邦成员的最大安全时间推进值,将来不会再接收到时间戳小于LBTS的TSO消息。
联邦的LBTS定义为所有联邦成员LBTS的最小值,是指在联邦最小的局部时钟(值联邦成员的仿真时间)和联邦之间建立的一个时间窗,所有联邦成员在该时间窗内的是时间都可以并发的执行。
时间管理服务
分为主控(Regulation)和受控(Contrained)
推进方式:
步长推进方式(保守同步机制) LRC向成员传递所有RO队列中缓存的消息,同时从TSO队列中弹出从当前时刻到请求推进时刻之间的所有消息。
基于事件的推进方式(保守同步机制)
乐观推进方式(乐观同步方式)
声明和对象管理
声明管理(DM,Declaration Management)
订阅和发布
对象管理(Object Management):
注册 注册一个已发布的类的实例
发现 发现已订阅的类的实例
更新 更新类实例的属性
反射 所订阅的类的实例的属性更新
实例的移走和删除
声明和对象管理的功能需求
接口:
1.公布/取消公布接口
2.订阅/取消订阅接口
匹配和过滤策略
信息交互通过OM进行,OM相关的结构包括:
1.Object类
01.发现对象列表
02.实例所属对象类列表
2.ObjectClass类
01.实例对象的句柄集
2.Federation类
01.更新对象列表
声明和对象管理的实现
流程
1.由FED得出RootObject结构
2.联邦成员调用声明管理服务函数
数据分发管理(DDM,Data Distribution Management)
1.simple
2.Static Space Partitioned
3.Static Grid Paritioned
DDM的实现
四、关键技术
4.1底层通信
4.1.1指标:
1.网络延迟
2.数据吞吐量
3.丢包率
4.帧漂移
5.传输分辨率
4.1.2各个模块功能划分
RTIG
GRIA
参与6大管理服务
LRC
以链接库形式嵌入到联邦成员中,通过接口申请RTI服务并响应回调
4.1.3模块间通信
6大服务间网络事件
1.LRC与RTIG通过UDP通信
与RTIG通信的进程,在RTI代理创建时初始化
2.LRC与RTIA通过TCP通信
与RTIA通信的进程,在加入联邦时初始化
同步数据和异步数据
4.1.4消息处理单元
RTI把所有信息都封装成了消息
通过NetworkMessage类生成
4.2回调机制
用户通过RTI代理(RTIAmbassador)向RTI提出申请,RTI则通过联邦成员代理(FederateAmbassador)向用户提供回调服务。
回调的基本特征:
注册
申请
触发
tick()函数
注释:
RTIG是主服务器,提供全局服务
RTIA是子服务器
LRC是RTIA的本地代理
待续...
- CERTI架构剖析
- CERTI 实例billard剖析
- 编译CERTI
- SecondLife 架构剖析
- SecondLife 架构剖析
- SecondLife 架构剖析
- SQLSERVER内核架构剖析
- SQLSERVER内核架构剖析
- SQLSERVER内核架构剖析
- 实战剖析三层架构
- 实时 Linux 架构剖析
- SQLServer内核架构剖析
- SQLSERVER内核架构剖析
- 实战剖析三层架构
- 实战剖析三层架构
- Heritrix架构剖析
- SQL 架构剖析
- 实战剖析三层架构
- 第七周项目四,五合集----复数模版类以及拓展模版中使用友元函数
- WebRTC实现很难?让我们看看Mozilla是如何做的
- 黑马程序员-----JAVA基础知识
- 酵母端粒位置信息
- 项目一(静态成员应用)
- CERTI架构剖析
- Android开发之旅:HelloWorld项目的目录结构
- mdev实现U盘和SD卡的自动挂载
- Linux可执行文件执行时找不到共享库
- 比如“1,2,3....10”,1到10这10个数,显示他的所有可能组合情况(排列顺序无所谓)
- vim命令(详细)
- linux下python学习笔记(六)
- 内核部件之同步机制之原子操作
- Asterisk SIP连通测试(X-Lite eyebeam)