Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
High Level Architecture
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Data Distribution Management Services (DDM)=== The purpose of DDM, described in chapter 9 of the HLA Interface Specification,<ref name="IFSPEC" /> is to increase scalability of federations by performing additional filtering of subscribed data beyond class and attribute subscriptions.<ref>{{cite journal |last1=Möller |first1=Björn |last2=Fredrik |first2=Antelius |last3=Martin |first3=Johansson |last4=Mikael |first4=Karlsson |title=Building Scalable Distributed Simulations: Design Patterns for HLA DDM |journal=Proceedings of 2016 Fall Simulation Interoperability Workshop |date=September 2016 |url=https://www.sisostds.org/DigitalLibrary.aspx?Command=Core_Download&EntryId=44863 |access-date=13 November 2019}}</ref> Filtering can be based on continuous values (like latitude and longitude) or discrete values (like car brand). Key concepts of DDM are: '''Dimension''': a named interval (0..n) used for filtering, with values starting with 0 and ending with an upper bound n. Data in the simulation domain is mapped to one or more dimensions. For example, dimensions for geographical filtering could be LatitudeDimension and LongitudeDimension. A dimension for filtering based on car brand could be CarBrandDimension. '''Normalization function''': a function that maps input values to integer values to be used in a dimension. An example is that a normalization function for the LatitudeDimension could map a latitude value ranging from -90.0 to +90.0 to an integer in the range 0..179. A normalization function for the CarBrandDimension could map a set of car brands Kia, Ford, BMW and Peugeot to an integer in the range 0..3. '''Range''': an interval on a dimension, specified by a lower bound (inclusive) and an upper bound (exclusive). '''Region''': a set of ranges, each one relating to a particular dimension. In the above example, a region could consist of the range (3..5) for LatitudeDimension (55..65) for LongitudeDimension and (0..1) for the CarBrandDimension. At runtime Region Realizations (objects) are instantiated to represent regions. The ranges of a region can be modified over time. '''Region overlap''': two regions overlap if, for all dimensions that they have in common, their ranges overlap. At runtime, a federate can provide Regions when subscribing to object class attributes and interactions. Regions are also used when sending attribute updates and interactions. When DDM is used, attribute updates and interactions will only be delivered if there is a region overlap. Key services for Regions are: * CreateRegion that is used to create a region with a specified set of Dimensions. * DeleteRegion that is used to delete a region. * CommitRegionModifications that is used to change the ranges of a dimension for a Region. Key services for exchanging attribute updates with DDM are: * RegisterObjectInstanceWithRegions that is used to register an object instance with regions associated with its attributes. * AssociateRegionsForUpdates that is used to associate regions with attributes of an object instance. * SubscribeObjectClassAttributesWithRegions that is used to subscribing to attributes of objects where the regions used for subscription overlaps with the regions of the attributes. Key services for exchanging interactions with DDM are: * SubscribeInteractionClassWithRegions that is used to subscribe to interactions where the regions used for subscription overlaps with the regions of the interactions. * SendInteractionsWithRegions that is used to send interactions with associated regions.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)