An Introduction to FOM Modules

Slides:



Advertisements
Similar presentations
1 jNIK IT tool for electronic audit papers 17th meeting of the INTOSAI Working Group on IT Audit (WGITA) SAI POLAND (the Supreme Chamber of Control)
Advertisements

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12A Separate Compilation and Namespaces For classes this time.
C++ fundamentals.
1 EECS 231 ADVANCED PROGRAMMING. 2 Staff Instructor Vana Doufexi Ford Building, 2133 Sheridan, #2-229 Teaching Assistant.
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
ABSTRACT Zirous Inc. is a growing company and they need a new way to track who their employees working on various different projects. To solve the issue.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 12 1 Microsoft Office Access 2003 Tutorial 12 – Managing and Securing a Database.
CSE 303 – Software Design and Architecture
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
ClearCase Concepts and Terminology
From FOMs to BOMs and Back Again Paul Gustavson Tram Chase Larry Root SimVentions, Incorporated Bowman Drive, Suite 502 Fredericksburg, VA
Chapter 9 Separate Compilation and Namespaces. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Slide 2 Overview Separate Compilation (9.1)
Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12 Separate Compilation and Namespaces.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Separate Compilation and Namespaces.
Chapter Eleven Windows XP Professional Application Support.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
HLA OMT Fundamentals Alessandro Specchia Carnegie Mellon University.
2013 Spring Simulation Interoperability Workshop 13S-SIW-004 Extended FOM Module Merging Capabilities Bjo ̈ rn Mo ̈ ller Andy Bowers Mikael Karlsson Björn.
1 Chapter 8 Scope, Lifetime, and More on Functions CS185/09 - Introduction to Programming Caldwell College.
Generating XML Data from a Database Eugenia Fernandez IUPUI.
©MAK Technologies, Inc. The Dynamic-Link-Compatible C++ RTI API for IEEE 1516 Len Granowetter MÄK Technologies x121.
National Security Analysis Department HLA-E PDG Conform # 1 What is Conformance? u Specification of what it means when a piece of software claims to have.
Product Training Program
Towards Dynamic Federations
Inheritance Modern object-oriented (OO) programming languages provide 3 capabilities: encapsulation inheritance polymorphism which can improve the design,
Databases: What they are and how they work
HTML5 Basics.
IBM Rational Rhapsody Advanced Systems Training v7.5
GAP Group Inc 2017 WinGAP Conference
Chapter 1: Introduction
Software testing
Separate Compilation and Namespaces
BOMs – Base Object Models
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
CS-3013 Operating Systems C-term 2008
CSE 784 Software Studio Syracuse University
Mobile Application Development BSCS-7 Lecture # 13
Introduction to Events
Lesson 1: Introduction to Trifacta Wrangler
Simplifying XEvents Management with dbatools
Module 0: Introduction Chapter 2: Getting Started
To Get Started Paper sheet
Programming with ANSI C ++
Separate Compilation and Namespaces
James Blankenship March , 2018
Machine Independent Features
CS320n –Visual Programming
Updating GML datasets S-100 WG TSM September 2017
What’s changed in the Shibboleth 1.2 Origin
This presentation document has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational.
Chapter 20 Object-Oriented Analysis and Design
Introduction to Classes and Objects
Microsoft Office Access 2003
Mastering Autodesk Revit MEP 2016 CHAPTER 3: Worksets and Worksharing
Lecture Set 11 Creating and Using Classes
Linking & Loading CS-502 Operating Systems
CS 350 – Software Design Principles and Strategies – Chapter 14
Computer Science Projects Database Theory / Prototypes
Objects First with Java A Practical Introduction using BlueJ
Introduction to Object-Oriented Programming in Alice
Developing a Model-View-Controller Component for Joomla
On the notion of Variability in Software Product Lines
Objects First with Java A Practical Introduction using BlueJ
Chapter 17 - Component-based software engineering
High Level Architecture Module 2 Advanced Topics
Object-Oriented PHP (1)
The SMART Way to Migrate Replicated Stateful Services
Arrays.
YANG Instance Data for Documenting Server Capabilities
Transactions, Properties of Transactions
Presentation transcript:

An Introduction to FOM Modules Björn Möller Pitch Technologies

What Are FOM Modules? The same FOM as before but divided into modules Support for decoupling the development process for different concerns Example: RPR platform concerns, sensor concerns, federation management concerns A way to separate standard FOM concepts from local or temporary adaptations

Object & Interaction Roots, Predefined Data Types, etc The HLAbase FOM Module Contains Root classes for Objects and Interactions Predefined data types (like HLAinteger32BE) Predefined transportation types, dimensions, etc MOM More (Identification, etc) 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 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 Allowed: HLAbase:ObjectRoot - A:Vehicle – B:Aircraft Disallowed: A:Vehicle – B:Aircraft – A:FreightAirCraft The ”colon” notation is used here only for clarification

Inheritance As Usual In the FOM HLAbase:ObjectRoot(HLAbase:PrivilegeToDeleteObject) – A:Vehicle (A:Speed, A:Color) – B:Aircraft (B:Altitude) Available attributes for B:Aircraft ObjectRoot: PrivilegeToDeleteObject A:Speed A:Color B:Altitude The ”colon” notation is used here only for clarification

Some XML Code (Draft) Extension <?xml version="1.0" encoding="UTF-8"?> ... <objects> <objectClass> <name>objectRoot</name> <name>BaseEntity</name> <name>MyExtensionToRPR</name> <attribute> <name>ExtraSpatial</name> <dataType>SpatialStruct</dataType> </attribute> </objectClass> </objects> </objectModel> Extension XML Namespaces may or may not be used depending on complexity.

Impact on OMT Tools Human Italian LifeForm HLAObjectRoot Lamborghini Car Ferrari 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 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 Items starting with HLA Not allowed Objects and Attributes Yes, subclassing Interactions and Parameters Data types Yes, adds User Supplied Tags Transportation Types Dimensions Time representations Yes (not used) Yes, decides Yes, not used Synch Points Switches Notes

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 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 Federates still need to agree on how to model the same concept.

Interface Specification CreateFederationExecution(Name, FDDlist) Takes FDD file list HLAbase is provided by the RTI JoinFederationExecution(FedEx, Type, Name, FDD list) Causes these FOM modules to be loaded unless they already are DestroyFederationExecution() Unloads all FOM modules GetSomeHandle Can get a handle for any loaded FOM concept It is recommended to load all FOM modules that your federate refers to. Otherwise a GetHandle may fail. Handles will never become unavailable since a FOM is never unloaded

About FOM Module Loading 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 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 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. This is useful for example for older federations Some calls will still need to be modified. Newer federates can still add new FOM modules later.

Life Span of FOM Modules Once loaded a FOM module will remain available until the federation execution is destroyed time My FlightSim Create Federation Execution 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 New MOM Interaction per federation HLAreportFOMmoduleLoaded 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 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... Load of several FOM modules may be difficult to do in parallell But will be quick if the module is already loaded Use a few, large FOMs, not many small ones Loading FOM modules requires consistency checking