The High Level Architecture (HLA) is a standard for distributed simulation, used when building a simulation for a larger purpose by combining (federating) several simulations. The standard was developed in the 1990s under the leadership of the US Department of Defense and was later transitioned to become an open international IEEE standard. It is a recommended standard within NATO through STANAG 4603. Today the HLA is used in a number of domains including defense and security and civilian applications.
 The purpose of HLA is to enable interoperability and reuse. Key properties of HLA are:
 HLA forms the basis for developing standardized and extendable FOMs in different communities, for example in aerospace and defense.
 The architecture specifies the following components.
 Together the above components form a Federation.
 The HLA standard consists of three parts:
 HLA was initiated in the early 1990s when Dr. Anita K. Jones, the Director of Defense Research and Engineering within the US Department of Defense, gave the Defense Modeling and Simulation Office (DMSO) the task of “assuring interoperability and reusability of defense models and simulations”. In 1995 DMSO formulated a vision for modeling and simulation and established a modeling and simulation masterplan, which included the High Level Architecture.
 Two protocols for M&S interoperability already existed: Distributed Interactive Simulation (DIS), focusing on real-time platform level simulation with a fixed object model, and Aggregate Level Simulation Protocol (ALSP) focusing on simulation of aggregate with time management, ownership management and flexible object models, called confederation models. The purpose of HLA was to provide one unified standard that would meet the simulation interoperability requirements of all US DoD components.
 The development of HLA was based on four prototypical federations: the Platform Prototype Federation, the Joint Training Protofederation, the Analysis Protofederation and the Engineering Prototype Federation. The HLA specification was prototyped and refined, until HLA 1.3 was finally released. To facilitate usage outside of the defense community, HLA was then transitioned into an IEEE standard, maintained by Simulation Interoperability Standards Organization (SISO). To facilitate the migration for DIS users, a Federation Object Model corresponding to the fixed object model of DIS was also developed as the Real-time Platform Reference FOM (RPR FOM).
 The following HLA versions exist:
 HLA 1.3 was published in March 1998 by DMSO. It consists of:  
 The US DoD also published interpretations for HLA 1.3:
 HLA IEEE 1516-2000 was published in 2000 by IEEE. It consists of:
 Major improvements in IEEE 1516-2000 included an XML-based FOM with detailed data type specifications, as well as an improved DDM design.
 The IEEE 1516-2000 standard was also complemented by a recommended development process as well as a recommended VV&A process:
 It was soon found that the 1516-2000 standard had APIs that were slightly different for each RTI implementation. SISO produced a standard with alternate, dynamic link compatible (DLC) C++ and Java APIs:
 The DLC APIs were later merged into the main standard.
 The IEEE 1516-2010 standard was published in August 2010 by IEEE and is commonly known as HLA Evolved. It consists of:
 Major improvements in IEEE 1516-2010 include Modular FOMs, incorporation of the DLC APIs in C++ and Java, a Web Services API and Fault Tolerance.
 Machine-readable parts of this version of HLA, such as XML Schemas, C++, Java and WSDL APIs as well as FOM/SOM samples can be downloaded from the IEEE 1516 download area of the IEEE web site. The full standards texts are available at no cost to SISO members or can be purchased from the IEEE shop.
 The development of a new version of HLA started in January 2016 by SISO and is currently ongoing.
 The HLA standard consists of three parts:
 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.
 The purpose of Federation Management services, described in chapter 4 of the HLA Interface Specification, is to manage Federation Executions as well as federation-wide operations such as Synchronization Points and Save/Restore.
 One set of Federation Management services manages the connection to the RTI, the federation execution and the set of joined federates. Key services are:
 Another set of services relates to synchronization points. These are federation-wide events where all, or selected federates are required to complete an operation, such as initializing a scenario, before the execution can continue. Key services are:
 Yet another set of service relates to saving and restoring a federation execution. A save operation requires both the RTI and each federate to perform a save of their internal state. A restore operation requires both the RTI and each federate to perform a restore of their internal state. Key services are:
 Save:
 Restore:
 The purpose of Declaration Management services, described in chapter 5 of the HLA Interface Specification, is to enable federates to declare what information they wish to publish (send) and subscribe to (receive) based on object and interaction classes in the FOM. The RTI uses this information to route updates and interactions to subscribing federates. For an object class, publishing and subscribing are performed for a specific set of attributes. For interaction classes, the entire interaction, including all parameters, is published and subscribed. Key services are:
 The purpose of Object Management services, described in chapter 6 of the HLA Interface Specification, is to enable federates to share information about object instances and to exchange interactions.
 Object instance names can be reserved or be automatically generated. Federates can register object instances of specified object classes, that are then discovered by subscribing federates. Attributes of these object instances can be updated. These updates will be reflected to subscribing federates. Interactions can be sent. These interactions will be delivered to subscribing federates. Key services are:
 Objects:
 Attributes:
 Interactions:
 The purpose of Ownership Management services, described in chapter 7 of the HLA Interface Specification, is to dynamically manage what federate that simulates what aspect of an object instance. In HLA, only one federate is allowed to update a given attribute of a given object instance. That federate is considered the owner of the attribute. A federate that registers a new object instance will automatically be the owner of all attributes it publishes. In some cases, attributes of an object instance may become unowned, i.e. not owned by any federate.
 Ownership management provides services for transferring ownership of one or several attributes at runtime, which can include a federate Divesting the attribute and another federate Acquiring the attribute. There are two main patterns: “pull” that are initiated by the acquiring federate and “push” that are initiated by the divesting federate.
 Key services for initiating “pull” ownership are:
 Key services for initiating “push” ownership are:
 All object instances have a predefined attribute called HLAPrivilegeToDeleteObject. Only the owner of this attribute for an object instance is allowed to delete the object instance. Ownership of this attribute can be transferred at runtime using the above operations.
 The information exchange in an HLA federation takes place in real-time with immediate (Receive Order, RO) delivery of messages, unless HLA Time Management has been enabled. The purpose of HLA Time Management, described in chapter 8 of the HLA Interface Specification, is to guarantee causality and a correct and consistent exchange of time stamped messages (updates and interactions) in Time Stamp Order (TSO), no matter if the federation executes in real-time, faster-than-real-time, slower-than-real-time or as-fast-as-possible.
 Some important concepts in HLA Time Management are:
 Logical time: A time axis in HLA, starting at zero. Logical time is used for Time Management timestamps and operations. The logical time axis can be mapped to the scenario time of the federation. An example of such a mapping is to let zero represent the scenario time 8:00 of the 1-Jan-1066 and let an increment by one represent one second of the scenario.
 Lookahead: A time interval specifying the lowest time in the future for which a federate will produce messages. For a federate with a fixed time step, this is usually the length of the time step.
 Granted: A federate is granted (allowed to advance) to a particular logical time by the RTI, when all time-stamped messages up to that time have been delivered. The federate can then safely start calculating messages with a timestamp in the future. This timestamp may not be earlier than the granted time plus the federates lookahead.
 Advancing: When a federate has finished producing data for the granted time plus the lookahead, it may request to be advanced to a later time, which also means that it promises not to produce any more messages with a time stamp less than the requested time plus the lookahead. The federate is now in the advancing state.
 Time Regulating: A federate that sends time stamped events is considered Time Regulating since the time advance by other federates may be regulated by this.
 Time Constrained: A federate that receives time managed events is considered Time Constrained since the reception of time stamped messages, constrains its time advance.
 The main principles of HLA Time Management are that:
 Example of Lookahead, granted and advancing:
 If at least one federate in the federation performs pacing, i.e.  correlates their time advance requests with a real time clock, the federation may run in real time or scaled real time. Without pacing, the federation will run as fast as possible (e.g., federations that do not require human interaction at runtime nor interfaces with systems that depend upon a real-time clock can run as fast as computing resources will allow).
 Key services include:
 For event driven simulation it is also possible for a federate to request to be advanced to the next event using the following service:
 Another important concept is Greatest Available Logical Time (GALT). The greatest time that each federate can be granted to, depends on the time that other federates have been granted to as well as their lookahead. The GALT for a federate specifies how far a federate can be granted, without having to wait for other federates to be granted. This is particularly interesting for a federate that joins late into a time managed federation.
 Key services for GALT are:
 More advanced services include:
 The purpose of DDM, described in chapter 9 of the HLA Interface Specification, is to increase scalability of federations by performing additional filtering of subscribed data beyond class and attribute subscriptions. 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:
 Key services for exchanging attribute updates with DDM are:
 Key services for exchanging interactions with DDM are:
 The HLA Support Services, described in chapter 10 of the HLA Interface Specification, provide a number of supporting services. These include:
 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:
 The OMT is a template used for describing Federation Object Models (FOMs) and Simulation Object Models (SOMs). FOMs and SOMs can be represented in a tabular format or using XML. The latter format is used when a FOM is loaded into the RTI.
 In earlier versions of HLA, FOMs were monolithic, but the current version of the standard supports modular FOMs, i.e. several modules, covering different aspects of the information exchange, can be provided to the RTI.
 A number of predefined classes, datatypes, dimensions and transportation types are provided in the standard. These are provided in the HLAstandardMIM.xml FOM module. Predefined concepts are prefixed with HLA, for example HLAobjectRoot and HLAunicodeString.
 There are three different XML Schemas for the OMT:
 The purpose of the identification table is to provide meta-data about the model, to facilitate reuse of the FOM/SOM or federates. 
 The following fields are specified:
 The purpose of the object class structure table is to specify the class hierarchy (subclass/superclass) of the object classes that are used to instantiate objects in an HLA federation. Object class attributes are inherited from superclasses to subclasses based on this hierarchy. The root of the object class tree is known as HLAobjectRoot. An example of a fully qualified name of an object class is HLAobjectRoot.Car.ElectricCar
 The following fields are specified for an object class in the hierarchy:
 The purpose of the attribute table is to specify the attributes that are available for a given object class. Since attributes are inherited, an object class will have the union of all attributes that are locally defined on the object class or specified on any direct or indirect superclass. 
 The following fields are specified for an attribute
 The purpose of the interaction class structure table is to specify the class hierarchy (subclass/superclass) of the interaction classes that are used to exchange interactions in an HLA federation. Interaction class parameters are inherited from superclasses to subclasses based on this hierarchy. The root of the interaction class tree is known as HLAinteractionRoot. An example of a fully qualified name of an interaction class is HLAinteractionRoot.CarCommand.Start.
 The following fields are specified for an interaction class in the hierarchy:
 The purpose of the parameter table is to specify the parameters that are available for a given interaction class. Since parameters are inherited, an interaction class will have the union of all parameters that are locally defined on the interaction class or specified on any direct or indirect superclass.
 The purpose of the dimensions table is to specify the DDM dimensions, used for attributes and interaction classes.
 The purpose of the time representation table is to specify the datatypes used by the Time Management services.
 A user-supplied tag can be supplied when calling certain HLA services. The purpose of the user-supplied tag table is to specify the datatypes of these tags.
 The purpose of the synchronization table is to specify the synchronisation points used in a federation.
 The purpose of the transportation type table is to specify the available transportation types. There are two predefined transportation types: HLAreliable and HLAbestEffort.
 The purpose of the update rate table is to specify the available maximum update rates.
 The runtime behaviour of the RTI can be controlled using a number of predefined switches. The purpose of the switches table is to provide initial values for these switches. Some of the switches can also be updated at runtime.
 The purpose of the datatype tables is to provide specifications of the datatypes used for attributes, parameters, dimensions, time representation, user supplied tag and synchronization points. There are six categories of datatypes, with a separate tabular format for each of them.
 The purpose of the basic data representation table is to provide binary representations for use in other tables. A number of predefined basic datatypes are provided in the HLA standard: HLAinteger16BE, HLAinteger32BE, HLAinteger64BE, HLAfloat32BE, HLAfloat64BE, HLAoctetPairBE, HLAinteger16LE, HLAinteger32LE, HLAinteger64LE, HLAfloat32LE, HLAfloat64LE, HLAoctetPairLE and HLAoctet. The set of basic datatypes is usually not extended with user defined basic datatypes.
 The purpose of the simple datatypes table is to describe simple scalar data items. A number of predefined simple datatypes are provided in the HLA standard: HLAASCIIchar, HLAunicodeChar, HLAbyte, HLAinteger64time and HLAfloat64time. It is common to include user defined simple datatypes in a FOM.
 The purpose of the enumerated datatypes table is to describe data elements that can take on a finite discrete set of values. One predefined enumerated datatype is provided in the standard: HLAboolean. It is common to include user defined enumerated datatypes in a FOM.
 The purpose of the enumerated datatypes table is to describe arrays of data elements (simple, enumerated, arrays, fixed records or variant records). A number of predefined simple datatypes are provided in the HLA standard: HLAASCIIstring, HLAunicodeString, HLAopaqueData and HLAtoken. It is common to include user defined array datatypes in a FOM.
 The purpose of the fixed record datatypes table is to describe records with a fixed set of data elements (simple, enumerated, arrays, fixed records or variant records).
 The purpose of the variant record datatypes table is to describe records that may contain different, predefined sets of data elements. The different sets are called Alternatives. Which alternative that applies for a given variant record is indicated by a data element called the Discriminant.
 The purpose of the notes table is to provide annotations and additional descriptions of items in other tables.
 The HLA rules describe the responsibilities of federations and the federates that join.
 The IEEE 1516 standard has been revised under the SISO HLA-Evolved Product Development Group and was approved 25-Mar-2010 by the IEEE Standards Activities Board. The revised IEEE 1516–2010 standard includes current DoD standard interpretations and the EDLC API, an extended version of the SISO DLC API. Other major improvements include:
 In order to ensure the proper interaction between simulations, a way of testing federate conformance is defined. This involves ensuring that every class and interaction listed in the SOM for a particular federate is used according to the usage described, "PublishSubscribe", "Publish", "Subscribe" or "None".
 HLA (in both the current IEEE 1516 version and its ancestor "1.3" version) is the subject of the NATO standardization agreement (STANAG 4603) for modeling and simulation: Modeling And Simulation Architecture Standards For Technical Interoperability: High Level Architecture (HLA).
 The Base Object Model (BOM), SISO-STD-003-2006 is a related standard by SISO to provide better reuse and composability for HLA simulations. It provides a way to specify conceptual models and how to map them to an HLA FOM.
 In regards to the Distributed Modeling and Simulation (DM&S) industry the most often used alternative to the HLA, for real-time simulation of military platforms, is Distributed Interactive Simulation (DIS), IEEE 1278.1-2012, a simulation protocol. Most HLA RTI vendors also feature DIS in their products.  As for middleware applications that most closely match HLA features, such as
the publish and subscribe feature (P&S) see Data Distribution Service (DDS) which shares many of the same characteristics but having an open on-the-wire protocol for system interoperability.
 HLA is a Message-oriented middleware that defines as a set of services, provided by a C++ or Java API. There is no standardized on-the-wire protocol. Participants in a federation must use RTI libraries from the same provider and usually also of the same version, which in some cases is perceived as a drawback. Most current tools also provide interconnectivity through sockets.