根据HLA接口规范,RTI提供六大类服务:联盟管理、声明管理、对象管理、时间管理、所有权管理、数据分发管理。
1.联盟管理
提供管理联盟的服务,包括:
(1)创建一个新的联盟。
(2)销毁一个联盟。
(3)盟员申请加入某个联盟。
(4)盟员退出联盟。
2.声明管理
声明盟员可以发送和接收的数据,这些服务为盟员提供进行数据交换的方法HLA的数据交互采用“发布购”机制,这种机制提供了基于类型的信息过滤,尤其是在具有多种对象类和交互类的盟员中,它可以降低仿真应用程序之间传输的数据量。
需实现的服务包括:
(1)通知RTI某类或其某些属性可以发布,包含联盟可以注册种类的实例和盟员拥有相对应的类的实例所发布的属性。
(2)通知RTI联盟不再注册这种类的实例,则RT不再更新这种类的实例的任何属性。
(3)发布交互类。
(4)取消发布交互类。
(5)订购对象类的属性。
(6)取消对该对象类的订购。
3.对象管理
为对象类和交互类实例提供实际的数据交换服务,包括对象生产者的对象实例注册和实例更新以及对象消费者的对象实例发现和反映。其中还包含发送和接收交互的相关方法,并可以为每个属性和交互提供尽力( best effort)和可靠( reliable)两种传输服务。
需实现的服务包括:
(1)注册对象实例。
(2)发现对象实例,一个对象实例在已由另一个盟员注册或进行了 Local Delete Object Instance操作后就可以进行发现操作。
(3)盟员给所发布的属性提供更新。
(4)给盟员更新特定实例属性的值。
(5)发送交互。
(6)接受交互。
(7)从联盟中去除该对象实例。
(8)通知各盟员该对象实例已被去除,不再保留相关的对象属性更新。
(9)请求属性更新,RTI接到此请求后通知相应盟员进行 Provide Attribute Value Update服务。
(10)得到本盟员的当前属性值,盟员对此请求进行响应,以 Update Attribute Values服务来向联盟提供请求的对象实例属性值。
4.所有权管理
提供服务使得对象/属性的所有权能够在盟员之间共享以及传递。对于某个对像来说,任意时刻只有一个盟员拥有这个对象的某个属性,即具有更新此属性的权利。它可以将这一权利传递给其他盟员,使得由其他盟员更新此属性。如果一个盟员实例化了一个对象,就自动拥有删除此对象的权利,除非它将这一权利传递给其他盟员。
需实现的服务包括:
(1)盟员放弃对对象属性的所有权。
(2)询问对象属性的所有者。
(3)提供对象属性的所有权信息。
(4)查询对象实例的特定属性是否由本地盟员所有。
5.时间管理
提供支持仿真时间一致性的服务。时间管理为联盟演练提供了乐观或保守时间推进机制和时间戳或接收序的消息处理顺序,保证联盟范围内事件发生顺序的一致性。
6.数据分发管理
提供数据传输的分发机制,它与对象管理一起对联盟中盟员接收数据的范围进行限制,减少盟员的数据处理量和网络的负担。
HLA只定义了RTI的服务功能,并没有定义或推荐一种具体的实现方法。因此,国内外很多机构和单位都在研究和实现RTI,较流行的有DMSO-RI和pRTI等。
内容来源:赵沁平《DVENET分布式虚拟现实应用系统运行平台与开发工具》