FLAMES Scenario Database
A large amount of data can be required to define just one scenario, and most users will eventually define several, perhaps hundreds, of different scenarios. FLAMES® includes a powerful scenario database management system that was designed specifically for managing large amounts of scenario data in a multi-user environment. The FLAMES Scenario Database also supports sharing scenario data between multiple scenarios, sharing scenario data between multiple users with different levels of access privileges, and automatic forward and backward compatibility.
Flexible Dataset Storage
Most simulations store scenario data in simple data files resident on a hard disk. Scenario data is stored in a fixed number of data files that each store different types of data. For example, a scenario might include one file for terrain data, one file for order of battle information, one file for object parameter data, etc.
Few simulations provide support for using multiple files to store data of a given type. Consequently, if you want to change just one parameter value in a file without losing the original value, you must make a new copy of the entire file. If one user makes a copy of a given file to change one parameter and another user makes a copy of the same file to change a different parameter, a configuration management problem arises. Multiply this by several users each creating multiple versions of several different files, and you can quickly have a serious configuration management problem. The problem is complicated even more by the fact that you must manually manage the location of the files and tell the simulation exactly where each file is located. As the number of scenarios and scenario data files increases, managing the data can become a nightmare.
Unlike other simulations, FLAMES stores all scenario data in the powerful FLAMES Scenario Database. There is no need to keep track of and tell FLAMES the directory and file name of individual data files. All FLAMES scenario data is stored within the Scenario Database in “datasets”, each of which has a name and owner that is maintained by the Scenario Database, not the computer operating system.
All data of a given type can be stored in a single FLAMES dataset. However, you can also direct FLAMES to store data of a given type in multiple datasets. Hence, if you want to add a new object to your scenario, you can place the new object in a new dataset and leave the original dataset unaltered. Or, if you want to change the value of a parameter for just one object, you can copy just that one object to a new dataset and leave the original dataset unaltered. Then, you can load the new dataset (with your modified version of the object) “on top of” the original dataset. Your new version of the object will automatically be used in the scenario rather than the original version of the object in the original dataset. Taking advantage of these capabilities of the FLAMES Scenario Database can dramatically reduce the number of unnecessary copies of the same data in the database and thereby greatly simplify scenario configuration management.
While some simulations provide graphical tools for editing some of the scenario data, nearly all simulations have some scenario or simulation configuration files that must be edited by hand using a text editor. Editing such files is usually very tedious and prone to error. You must learn about and be careful to maintain the precise format of the file. If you do not follow the file format specifications, you risk rendering the scenario or even the entire simulation unusable.
Unlike other simulations, FLAMES does not require you to edit any scenario or configuration files by hand. FLAMES includes powerful and friendly graphical applications for creating and editing all scenario data. Nearly all such data can be edited from a single scenario creation application called FORGE™.
If you have custom scenario data that is available in computer readable form, you can use the programming interface to the FLAMES Scenario Database that is included in the FLAMES Development Suite to create custom data importers.
All full-featured database management systems define and manage database user accounts that are separate from the underlying computer operating system user accounts. Among other things, these user accounts are used to establish (1) the owner of each element of data in the database and (2) the amount of access that should be granted to user accounts that do not own a particular element of data.
Like other database management systems, the FLAMES Scenario Database employs user accounts that are separate from the underlying operating system user accounts. Each dataset in the Scenario Database is owned by a specific user account. The owner of the dataset can specify the amount of access that is granted to other user accounts or user groups. There are four separate levels of access privilege:
- Use (read) the objects in a dataset
- Create new objects in a dataset
- Update existing objects in a dataset
- Delete objects from a dataset
In a typical FLAMES installation, at least one user account will be created as the owner of datasets that store standard, configuration controlled scenario data. Other FLAMES users will be granted “Use” privileges to these datasets, which means they can use the data, but they can not modify or delete it. All users can define scenarios that all use the same set of standard datasets. Users can also create their own datasets that store data that is specific to their scenarios.
Forward and Backward Compatibility
One of the steps in developing a custom component for FLAMES is writing the software to store the parameters of the component in the Scenario Database. Because of the high-level, intelligent programming interface of the Scenario Database, database read and write operations usually require only two or three lines of code. You simply identify the parameters that you want stored in the database, and FLAMES does most of the work to read and write the parameter values automatically.
When FLAMES stores data in the Scenario Database, it also stores meta-data about each parameter. This meta-data is used to automatically adjust to changes that might be made to a component. For example, suppose you develop a custom component that has 10 parameters, and you create several scenarios that use your new component. As a result, there could be several datasets in the Scenario Database that contain parameter values for your new component. Then, suppose you create a new version of your component that has 12 parameters. In most simulations, this would cause a problem, because the new version of your class would no longer be compatible with all of the datasets that contain only 10 parameters. With FLAMES, this is not a problem. Using the meta-data stored in each dataset, FLAMES is able to automatically adjust to changes in your component parameters. If an older dataset is missing parameter values that are defined for a new version of a component, FLAMES will automatically supply default values for the parameters. Or, if a dataset contains parameter values that are no longer used by a component, FLAMES will automatically ignore the values. The ability of FLAMES to automatically adjust to changes in the definition of component allows most datasets to be forward and backward compatible with different versions of your components. FLAMES also allows you to no longer concern yourself with the format of scenario data files and version compatibility issues.