An Introduction to FOM Modules Bjrn Mller Pitch
An Introduction to FOM Modules Björn Möller Pitch Technologies
What Are FOM Modules? The same FOM as before but divided into modules n Support for decoupling the development process for different concerns n ¨ Example: RPR platform concerns, sensor concerns, federation management concerns n A way to separate standard FOM concepts from local or temporary adaptations
The HLAbase FOM Module n Contains ¨ Root classes for Objects and Interactions ¨ Predefined data types (like HLAinteger 32 BE) ¨ Predefined transportation types, dimensions, etc ¨ MOM ¨ More (Identification, etc) n Automatically loaded by the RTI when Create Federation Execution is called ¨ Guarantees that these concepts are correctly defined HLAbase Object & Interaction Roots, Predefined Data Types, etc
User Defined FOM Modules n n n A user defined module can add more classes, interactions, data types, switches, synchronization points, etc Attributes and parameters can only be added to new object classes and interactions The first user defined FOM module is known as the primary FOM module (more about this later) My Object Classes, Interactions, etc HLAbase Object & Interaction Roots, Predefined Data Types, etc
Circular Dependencies Not Allowed n Allowed: HLAbase: Object. Root - A: Vehicle – B: Aircraft n Disallowed: A: Vehicle – B: Aircraft – A: Freight. Air. Craft The ”colon” notation is used here only for clarification
Inheritance As Usual n In the FOM HLAbase: Object. Root(HLAbase: Privilege. To. Delete. Object) – A: Vehicle (A: Speed, A: Color) – B: Aircraft (B: Altitude) n Available attributes for B: Aircraft Object. Root: Privilege. To. Delete. Object ¨ A: Speed ¨ A: Color ¨ B: Altitude ¨ The ”colon” notation is used here only for clarification
Some XML Code (Draft) <? xml version="1. 0" encoding="UTF-8"? >. . . <objects> <object. Class> <name>object. Root</name> <object. Class> <name>Base. Entity</name> <object. Class> <name>My. Extension. To. RPR</name> <attribute> <name>Extra. Spatial</name> <data. Type>Spatial. Struct</data. Type> </attribute> </object. Class> </object. Model> Extension XML Namespaces may or may not be used depending on complexity.
Impact on OMT Tools Human Italian Life. Form HLAObject. Root Lamborghini Car Ferrari n n An OMT tool now needs to handle (load, save, visualize, etc) FOMs by module Example: To be useful an OMT editing tool will need to distinguish between: A) Is the user adding more items to the currently loaded FOM module, or ¨ B) Is the user adding items to a new FOM module that builds upon some currently loaded FOM module ¨ n This is a practical requirement, not a direct requirement by the HLA standard
Detailed Semantics for FOM Modules HLAbase Primary FOM Module Additional FOM Module Identification Yes Yes Items starting with HLA Yes Not allowed Objects and Attributes Yes, subclassing Interactions and Parameters Yes, subclassing Data types Yes, adds User Supplied Tags Yes, adds Transportation Types Yes, adds Dimensions Yes, adds Time representations Yes (not used) Yes, decides Yes, not used Synch Points Yes (not used) Yes, adds Switches Yes (not used) Yes, decides Yes, not used Notes Yes (not used) Yes, adds
How to Use FOM Modules Local RPR Extension Real Time Reference Platform (Standard) FOM My Federation Management Data Logger Control HLAbase Object & Interaction Roots, Predefined Data Types, etc n A Module can add new object and interaction classes,
How NOT to Use FOM Modules My Idea About Aircrafts Your Idea About Aircrafts His Idea About Aircrafts HLAbase Object & Interaction Roots, Predefined Data Types, etc n Federates still need to agree on how to model the same concept.
Interface Specification n Create. Federation. Execution(Name, FDDlist) ¨ ¨ n Join. Federation. Execution(Fed. Ex, Type, Name, FDD list) ¨ n Causes these FOM modules to be loaded unless they already are Destroy. Federation. Execution() ¨ n Takes FDD file list HLAbase is provided by the RTI Unloads all FOM modules Get. Some. Handle Can get a handle for any loaded FOM concept It is recommended to load all FOM modules that your federate refers to. Otherwise a Get. Handle may fail. ¨ Handles will never become unavailable since a FOM is never unloaded ¨ ¨
About FOM Module Loading n HLAbase is loaded implicitly by the RTI This functionality is required in the RTI and no extra user action is required ¨ The HLAbase file is part of the HLA standard ¨ It is useful to have this file available when developing new FOM modules ¨ n One or more FOM modules shall be loaded when the federation execution is created FOM modules shall always loaded in the specified order to guarentee that dependencies can be resolved ¨ The first module to be (explicitly) loaded is known as the primary FOM module. It provides global settings. ¨ It is a recommended practice to keep track of which your primary FOM module is, for example by providing it first in Create Federation Execution ¨ n n n Additional modules may be loaded later by each joiing federate Duplicate load of the same module is allowed and void Modules are never unloaded within a federation execution
Backwards Compatibility If you have exactly one FOM module and load it during create then conceptual backwards compatibility is achieved. n This is useful for example for older federations n ¨ n Some calls will still need to be modified. Newer federates can still add new FOM modules later.
Life Span of FOM Modules n Once loaded a FOM module will remain available until the federation execution is destroyed Create Federation Execution time My Flight. Sim Local RPR Extension My Federation Management FOM RPR FOM My Fed Mgmt My Federation Management FOM Standard RPR Viewer RPR FOM HLAbase
Required MOM Extensions The FDD Attribute on ”Federation” will become a list of FDDs n New MOM Interaction per federation HLAreport. FOMmodule. Loaded n ¨ Provides the name of the loaded module ¨ Will only be sent on load, i. e. the first time a federate joins with that module
Impact on RTIs n Main impact is for the ”Join” with additional FOM modules ¨ Likely to require substantial processing on CRCs and every LRC ¨ This may happen during the main execution ¨ Synchronized startup can be used to avoid this ¨ Late joiners means problems anyway. . . n Load of several FOM modules may be difficult to do in parallell ¨ But n n will be quick if the module is already loaded Use a few, large FOMs, not many small ones Loading FOM modules requires consistency checking
- Slides: 17