In my bachelor thesis I handled with HLA and OpenRTI. Therefore I wrote a small implementation for the HLA to communicate with the OpenSource implementation of the RTI (OpenRTI).
What is HLA?
The High Level Architecture (HLA) is an architecture for modeling and simulation. Using HLA, computer simulations can interact (that is, to communicate data, and to synchronize actions) with other computer simulations regardless of the computing platforms. The interaction between simulations is managed by a Run-Time Infrastructure (RTI). HLA is an interoperability standard for distributed simulation used to support analysis, engineering and training in a number of different domains such as: - Defense - Air Traffic Management - Health Care
It is defined under IEEE Standard 1516:
- IEEE 1516–2010 – Standard for Modeling and Simulation High Level Architecture – Framework and Rules
- IEEE 1516.1–2010 – Standard for Modeling and Simulation High Level Architecture – Federate Interface Specification
- IEEE 1516.2-2010 – Standard for Modeling and Simulation High Level Architecture – Object Model Template (OMT) Specification
- IEEE 1516.3-2003 – Recommended Practice for High Level Architecture Federation Development and Execution Process (FEDEP)
- IEEE 1516.4-2007 – Recommended Practice for Verification, Validation, and Accreditation of a Federation an Overlay to the High Level Architecture Federation Development and Execution Process
A high-level architecture consists of the following components:
- Interface specification: defines how HLA compliant simulators interact with the Run-Time Infrastructure (RTI). The RTI provides a programming library and an application programming interface (API) compliant to the interface specification.
- Object Model Template: specifies what information is communicated between simulations, and how it is documented.
- Rules: simulations must obey in order to be compliant to the standard.
- Federate: an HLA compliant simulation entity.
- Federation: multiple simulation entities connected via the RTI using a common OMT.
- Object: a collection of related data sent between simulations.
- Attribute: data field of an object.
- Interaction: event sent between simulation entities.
- Parameter: data field of an interaction.
The interface specification is object oriented, with specifications for bot C++ and Java programming languages.
It is divided into service groups:
- Federation management
- Declaration management
- Object management
- Ownership management
- Time management
- Data distribution management
- Support services
Object Model Template
The object model template (OMT) provides a common framework for the communication between HLA simulations. It consists of the following documents:
- Federation object model (FOM): whole federation
- Simulation object model (SOM): single federate
The HLA rules describe the responsibilities of federations and the federates to join.
The 10 rules are divided in two parts. The first 5 rules (1-5) are for the Federation. The last 5 rules (6-10) are for the Federates.
- Federations shall have an HLA federation object model (FOM), documented in accordance with the HLA object model template (OMT).
- In a federation, all representation of objects in the FOM shall be in the federates, not in the run-time infrastructure (RTI).
- During a federation execution, all exchange of FOM data among federates shall occur via the RTI.
- During a federation execution, federates shall interact with the run-time infrastructure (RTI) in accordance with the HLA interface specification.
- During a federation execution, an attribute of an instance of an object shall be owned by only one federate at any given time.
- Federates shall have an HLA simulation object model (SOM), documented in accordance with the HLA object model template (OMT).
- Federates shall be able to update and/or reflect any attributes of objects in their SOM and send and/or receive SOM object interactions externally, as specified in their SOM.
- Federates shall be able to transfer and/or accept ownership of an attribute dynamically during a federation execution, as specified in their SOM.
- Federates shall be able to vary the conditions under which they provide updates of attributes of objects, as specified in their SOM.
- Federates shall be able to manage local time in a way that will allow them to coordinate data exchange with other members of a federation.
OpenRTI is a OpenSource implementation of the run-time infrastructure (RTI).It is available at gitorious. This implementation provides following three versions of RTI:
- RTI13: provides HLA-version 1.3
- 1516: first HLA-standard 1516
- 1516e: HLA-standard 1516-2010
It is pretty cool to know about an OpenSource implementation of this middleware. It is the first which worked for me. All the other implementations are really expensive and for me not really working. Who want to spend thousands of dollars just for his bachelor thesis.
In my thesis I used 1516. I tested how OpenRTI is working and created a small example implementation. This implementation is available at GitHub. It also contains a short documentation of the source code and of course a short installation description.