The RTI services are defined in the HLA Interface Specification. They are grouped into seven service groups. In addition to these services, the Management Object Model (MOM) provides services that makes it possible to inspect and adjust the state of the federation programmatically. Most RTIs consist of a Central RTI Component (CRC), which is an executable and Local RTI Components (LRCs), which are libraries that are used by the federates. Services are provided through a
C++ or
Java API and also using Web services. In the C++ and Java APIs, services are invoked using calls to an instance of the RTI Ambassador class. The RTI delivers information to a federate using callbacks, which are delivered using calls to an instance of the Federate Ambassador class. In the Web Services API, defined using
WSDL, calls are made, and callbacks are fetched, by the federate using Web Services requests and responses. The service group descriptions below focus on key services. Exceptions and advisories are not included.
Federation Management Services The purpose of Federation Management services, described in chapter 4 of the HLA Interface Specification, Filtering can be based on continuous values (like latitude and longitude) or discrete values (like car brand). Key concepts of DDM are:
Dimension: a named interval (0..n) used for filtering, with values starting with 0 and ending with an upper bound n. Data in the simulation domain is mapped to one or more dimensions. For example, dimensions for geographical filtering could be LatitudeDimension and LongitudeDimension. A dimension for filtering based on car brand could be CarBrandDimension.
Normalization function: a function that maps input values to integer values to be used in a dimension. An example is that a normalization function for the LatitudeDimension could map a latitude value ranging from -90.0 to +90.0 to an integer in the range 0..179. A normalization function for the CarBrandDimension could map a set of car brands Kia, Ford, BMW and Peugeot to an integer in the range 0..3.
Range: an interval on a dimension, specified by a lower bound (inclusive) and an upper bound (exclusive).
Region: a set of ranges, each one relating to a particular dimension. In the above example, a region could consist of the range (3..5) for LatitudeDimension (55..65) for LongitudeDimension and (0..1) for the CarBrandDimension. At runtime Region Realizations (objects) are instantiated to represent regions. The ranges of a region can be modified over time.
Region overlap: two regions overlap if, for all dimensions that they have in common, their ranges overlap. At runtime, a federate can provide Regions when subscribing to object class attributes and interactions. Regions are also used when sending attribute updates and interactions. When DDM is used, attribute updates and interactions will only be delivered if there is a region overlap. Key services for Regions are: • CreateRegion that is used to create a region with a specified set of Dimensions. • DeleteRegion that is used to delete a region. • CommitRegionModifications that is used to change the ranges of a dimension for a Region. Key services for exchanging attribute updates with DDM are: • RegisterObjectInstanceWithRegions that is used to register an object instance with regions associated with its attributes. • AssociateRegionsForUpdates that is used to associate regions with attributes of an object instance. • SubscribeObjectClassAttributesWithRegions that is used to subscribing to attributes of objects where the regions used for subscription overlaps with the regions of the attributes. Key services for exchanging interactions with DDM are: • SubscribeInteractionClassWithRegions that is used to subscribe to interactions where the regions used for subscription overlaps with the regions of the interactions. • SendInteractionsWithRegions that is used to send interactions with associated regions.
Support services The HLA Support Services, described in chapter 10 of the HLA Interface Specification, provide a number of supporting services. These include: • Getting Handles (references) to be used in the above service calls. • Setting various runtime switches, in particular for advisories (notifications). • Controlling the delivery of callbacks.
Management Object Model The purpose of the Management Object Model, described in chapter 11 of the HLA Interface Specification, is to provide services for managing a federation. This is performed using the MOM object and interaction classes. MOM objects are defined in a special FOM module called the MIM, that is automatically loaded by the RTI. Key MOM features include: • List and inspect properties of federates. • Inspect properties of the federation. • Get the content of the current FOM and FOM modules. • Inspect the state of Time management. • Inspect and modify publications and subscriptions of federates. • Inspect certain performance figures. • Inspect which federate that calls which HLA services. • Inspect status of synchronization points. ==Object model template (OMT)==