High Level Architecture (HLA) is a general purpose architecture for distributed computer simulation systems. Rather than a networking protocol (wire standard) like DIS, HLA defines an architecture with a set of API (Application Programmer's Interface) Standards. Simulation applications (known as federates in HLA) communicate by making calls to the HLA APIs. A piece of software known as the RTI (Run-time Infrastructure) implements the HLA API, and is responsible for transporting data from one federate to another. Like DIS, the HLA Standards are owned by IEEE.
RTI is the fundamental component of HLA. It provides a set of software services that are necessary to support federates to coordinate their operations and data exchange during a runtime execution. In other sense, it is the implementation of the HLA interface specification but is not itself part of specification. Modern RTI implementations conform to the IEEE 1516 and/or HLA 1.3 API specifications. These specifications do not include a network protocol for RTI. It is up to the implementors of an RTI to create a specification.
HLAClient plugin currently uses the CERTI, an open-source RTI, distrubuted under the GPL/LGPL licence, that fully supports HLA 1.3, and partly IEEE 1516. The CERTI provides, among others, HLA implementations for C++ and Python.
The CERTI implementation of HLA is based on a process, the RTIG (RTI Gateway), that manages the simulation and transfers messages between federates. An RTIA process is automatically launched close to each federate, and manages the interaction between the federates and the RTIG.
UNIGINE's implementation of HLA is experimental and currently supports its common functionality (version 1.3).
The HLAClient plugin enables to use HLA protocol in a UNIGINE application and offers the following features:
- Communication with other HLA Clients.
- C++ API
The basic workflow is as follows:
- Implement HLA logic for your application.
Prepare your environment.
It is recommended to use a 100 Mb LAN. Otherwise, you may experience network lags .
Run your HLA Client application.
You should launch the HLAClient plugin via the extern_plugin command-line option at the start-up of your application, e.g.:
<your_app_name> -extern_plugin HLAClient