HLA Flashcards
(41 cards)
What is HLA?
High Level Architecture (HLA) is a general framework facilitating interoperability and reusability of distributed simulation components.
Where components might run on different computers, in different locations, and be implemented in different programming languages on different operating systems.
- A software architecture not an implementation.
What is a Federate?
An application that supports the HLA and is capable of participating in a simulation
What is Federation?
A declaration between federates describing how and what will be simulated
What is Federation Execution?
A run-time instantiation of a Federation. i.e. actual simulation run.
What is an Observer Pattern?
A messaging framework commonly used for asynchronous communication between services.
What is the Object Model?
Object model defines the interactions in a federation in terms of:
Objects:
the entities with some temporal lifespan
the representation exists only in federates, not in the RTI.
Interactions:
events with zero temporal lifespan
Attributes:
of objects
Parameters:
of interactions
What is Federation Object Model (FOM)?
The Federation Object Model (FOM) exists only one per federation.
It has the complete parameterisation of a Federation Execution where the RTI is the same for all Federation Execution and the FOM contains all information the RTI needs in order to perform a Federation Execution.
FOM specifies objects, interactions etc. that are used in federation.
It is passed as a parameter to the RTI when the federation execution starts, by the first federate to start.
What is the Simulation Object Model (SOM)?
The Simulation Object Model (SOM) exists one per federate.
SOM specifies objects, interactions etc. that a federate publishes and/or subscribes to in a federation.
It is included in the FOM, defined documented by a federate but it is the FOM that is used at runtime, not the SOM.
What is Management Object Model (MOM)?
Management Object Model is mandatory for FOM. It has predefined set of information.
MOM specifies the objects, interactions etc. created by the RTI itself.
It enables federates to access the RTI information during Federation Execution.
How does HLA specifies Management Initialisation Module (MIM)?
Management Initialisation module (MIM) is supplied by the RTI.
The standard MIM can be replaced by a user-supplied
MIM.
MIM contains for example, predefined data types and the MOM.
What is Object Model Templates (OMT)?
It is the format defined(allowed) of the FOM and hence the SOM and MIM(MOM).
What are some IEEE standards?
HLA Rules:
* principles and conventions that must be followed for a proper federation execution
* design principles for the Object Model Template(OMT) and Interface specification
* responsibilities of federate/federation designers
Object Model Template(OMT) Rules:
* Every federation has a Federation Object Model(FOM)
* OMT defines the allowed structure for every FOM
Interface Specification:
* Specifies the interface between federates and the RTI
What are HLA rules for Federation?
Every Federation shall have a FOM
* structured and documented according to the OMT
Representation of objects in the FOM is within the federates
* not in the RTI (apart from the MOM data)
During a federation execution:
* all exchange of data between federates occurs via the RTI
* federates must interact with the RTI according to the HLA interface specification
* an attribute of an object instance must be owned by only one federate at any time
What are HLA rules for Federates?
Each federate must:
* have a SOM, structured and documented according to the OMT
… and be able to:
* update and/or reflect any attributes of objects in their SOM
* send and/or receive SOM interactions, as specified in their SOM
* transfer and/or accept ownership of attributes dynamically during a federation execution, as specified in their SOM
* manage local time in a way that allows them to coordinate data exchange with other members of a federation
What is Run-Time Infrastructure (RTI)?
The RTI service provides the mechanisms required for managing a federation execution.
It does not impose a policy for their use.
It makes no assumptions about the software using that service.
Usually you will access an exisiting RTI and develop your own federate code.
One RTI can run multiple federation execution at the same time.
One federation execution can take place on a single server or multiple servers.
What are RTI ambassador APIs?
HLA standardised APIs:
* the federate talks to the RTI through
the RTIambassador
* if the RTI must talk to your code, it
does so by executing “callbacks” in
your code, executed by the
FederateAmbassador
What are the difference between different vendors and what are common in terms of the API?
different vendors will provide different implementations of the RTI
* HLA does not specify the format of the data interchanges on the network
* different RTIs from different vendors may use completely different formats.
What is standardised?
* the RTIambassador and FederateAmbassador APIs
* the OMT and FOM/SOM specifies the object model; you should be able to carry these between RTIs
What does the RTI manage?
manages:
* the federation execution
* joining, leaving, pausing, resuming of federates; federation management
* simulation time
* synchronisation between federates
* possibly synchronisation of simulation with real time
* data distribution between federates
* efficient data transmission
* declaration
* publish/subscribe model
* objects
* lifecycle and message passing
* ownership
* of objects and their attributes
* support services
* e.g. RTI startup and shutdown
What are the steps that federates go through in execution (federate lifecycle)?
each federate goes through distinct phases of execution:
* joins the federation execution
* registers its FederateAmbassador with the RTI
* preliminaries
* sets time parameters
* register publications and subscriptions
* populating
* registers and initialises data instances
* running
* advances through simulation time
* post-processing
* stops advancing through simulation time
* tidies itself up
* resigns the federation execution
* and shuts down
with multiple federates in one
federation execution we need
some way of coordinating these
phases
What do you use to synchronise the federation execution and how?
To synchronise a federation execution we use a synchronisation point:
* a federate registers a synchronisation point
* the RTI announces a new synchronisation point to all federates; the synchronisation point is now awaiting synchronisation
* as each federate achieves the synchronisation point it informs the RTI
* what this means is up to the federation designer, but it should mean getting to an unambiguous state
* when all federates have achieved the synchronisation point, the RTI announces this to all federates
* the RTI removes the synchronisation point from its registry
State two characteristics of synchronisation point.
There can be multiple synchronisation points registered at any one time
* each is identified by a unique name, established at registration time
They might not apply to all federates in a federation execution
* each synchronisation point has a synchronisation set, established at registration time
* the registration set lists which federates must synchronise for the RTI to conclude that
the synchronisation is complete
What is the role of Manager federate?
*starts the federation execution
*makes sure all the expected federates have joined
*synchronises the federates’ execution phases
*shuts down the federation execution
Explain the declaration management of the RTI in terms of publish/subscription.
a federate
* registers an intent to publish
* some or all attributes of a class
* some or all parameters of an interaction
publish
“I am going to create and
update things of this class”
and subscribes to
* some or all attributes of a class
* some or all parameters of an interaction
subscribe
“I want to be told when
things of this class have
been created/updated and
be sent the changes”
publications/subscriptions can change over time
i.e. during a single federation execution
What are two examples of interactions?
Federate sends an interaction to the RTI
* with data for some or all parameters set
Federate receives an interaction from the RTI
* with the sent parameters’ data