The entire FLAMES® product line is completely independent of software that simulates the behavior of humans and real-world systems due to its framework architecture. Such software resides in components that are stored in component plug-ins and dynamically loaded by FLAMES Runtime Suite applications.
Each FLAMES-compatible component is implemented as an individual software class that inherits one of the primary classes defined by the FLAMES framework. The final step in developing a component is to place it in a component plug-in. This step is performed using standard, third-party software development tools. On computers running the Windows operating system, a component plug-in is a standard dynamic-link library file (a file with an extension of .dll). On computers running the Linux operating system, a component plug-in is a standard shared object file (a file with an extension of .so). What makes these files a FLAMES-compatible component plug-in are the special entry points that are included in the file when the file is created.
When a FLAMES application starts, one of the things it does is search your computer’s hard disk for FLAMES-compatible component plug-ins. It performs this search in each of the directories specified in the FLAMES_COMPONENTS environment variable. In each of these directories, the application looks for files with the proper file extension, and each of these files is examined to determine if it is FLAMES-compatible. Each compatible file is then dynamically loaded by the application.
This is when the magic begins. Each component within the plug-in is initialized, and FLAMES automatically integrates the component into the application. Once integrated, FLAMES can create instances of the component as required for any scenario that is loaded. In addition, FLAMES can perform numerous operations involving the component, such as saving and retrieving the component’s parameter data in the FLAMES Scenario Database, displaying the component’s graphical user interface in FORGE™ to allow users to edit the component’s parameter data, checking the component’s parameter data for errors, invoking the appropriate methods of the component during scenario execution, allowing the component to be accessed and controlled from FLAMES client applications, and saving the component’s parameter data in FLAMES checkpoint files.
All configurations of FLAMES are bundled with multiple component plug-ins that contain many ready-to-use components. With the FLAMES Development Suite, you can modify the bundled components and develop new components. With the proper component plug-ins, the Runtime Suite can be used to satisfy almost any simulation requirement.