'''High-Level Architecture''' ('''HLA''') is a general purpose architecture for distributed computer simulation systems.
Rather than have the entire simulation within a single executable, the simulation is split into different
''Federates '', which interact with each other by a ''Run-Time Infrastructure'' (''RTI''), with federates typically running in their own threads/processes and each federate process having access to the full virtual process address space instead of having to share it with other subsystems.
There are three big advantages to this over a monolithic simulation (e.g. FlightGear V3.6):
# It provides a robust environment to make the simulator multi-threaded, taking advantage of computers with multiple cores, or indeed running different parts of the simulation on different computers (including even different platforms and operating systems).
# It allows us to split out parts of the simulator such as the [[FDM]], [[Nasal]]<ref>http://forum.flightgear.org/viewtopic.php?p=265721#p265721</ref> and Renderer from each other and less time-critical sub-systems such as [[Advanced weather|weather]] so that we can get consistent (and perhaps higher) frame-rates (i.e. reduced [[How the Nasal GC works|Nasal GC]] impact on frame rate).# It provides a very good framework to allow anyone to create components that interact with FlightGear using programming languages other than C/C++ (think Ada, Java, Python etc), which may be running in their own threads, and reside in separate binaries<ref>http://sourceforge.net/p/flightgear/mailman/message/34196458/</ref>, which will be also easier to debug/troubleshoot (think regression testing).
Stuart has started work on re-architecting parts of FlightGear to use HLA , though this is expected to be a multi-year project. Anyone interested in the current status of development should subscribe to the Flightgear -devel mailing list.
For additional information, please see:
* [[FlightGear HLA support (High Level Architecture)]]
* [[FlightGear CIGI Support (Common Image Generator Interface)]].
== External links ==