Outline Fundamental concepts » Name space » Description expressions Parallel and Distributed » Interest expressions Simulation Static Data Distribution: HLA Declaration Management » Class-based filtering PDES: Distributed Virtual Environments Static Data Distribution 2 Maria Hybinette, UGA Maria Hybinette, UGA Background Communication Primitives Basic question: When a simulator generates Unicast information (e.g., state updates) that may be of » One sender, message received by one destination interest to other simulators, who should receive the Broadcast message? » One sender, message received by all destinations Example: moving vehicles in a virtual environment Multicast » Moving vehicle sends � update � messages indicating new » One sender, message received by multiple (but not position necessarily all) destinations » Each vehicle that can � see � the moving vehicle should » Operations (analagous to newsgroups) receive a message – Join group » How does the sender/RTI know which other federates should – Leave group receive the message? – Send message to group – Data distribution is essentially a message routing problem » Can be implemented by unicast, or network multicast » Best effort vs. reliable multicast 3 4 Maria Hybinette, UGA Maria Hybinette, UGA Data Distribution in SIMNET and DIS Data Distribution Question: Who receives each message that is sent? Goal: route data produced by one simulator to those simulators that are interested in receiving it (and Approach: ideally, not to simulators that are not interested in » Broadcast each message, receiver responsible for filtering receiving it) (deleting) unneeded messages Problem: This implies there is » O(N 2 ) messages with N federates; can use large amount of communication bandwidth Some way for a simulator to specify what data it is Time spent receiving and filtering unwanted message interested in receiving (interest expressions) becomes a bottleneck Some way to describe the data that is produced (description expressions) A common language (vocabulary) to specify description and interest expressions (name space) 5 6 Maria Hybinette, UGA Maria Hybinette, UGA
Example Analogy: Internet Newsgroups Description expression interest expressions ! I � m interested in " I � m interested in " » Name of newsgroup to which the message is posted the position of aircraft " the position of tanks " » Class announcements posted to � uga.csci.class.csci8220 � Interest expression description ! Federate 1 " Federate 2 " Federate 3 " expression ! » Set of newsgroups a user is subscribed to position update " » Subscribe to � uga.csci.class.csci8220 � and for a tank object " � uga.csci.class.csci8220 � Name space Run Time Infrastructure (RTI) " » Set of all newsgroup names Name space : position, tank, aircraft " 7 8 Maria Hybinette, UGA Maria Hybinette, UGA Name Space Interest & Description Expressions � Vocabulary � used to create Interest expression: subset of name space » Data description expressions » Interested in all aircraft » Interest expressions – (aircraft, (X, Y)) for any X and any Y A name space is a set of tuples (V 1 , V 2 , … V N ) where V i is a basic » Interested in tanks that are � close by � type or another tuple – (tank, (X, Y)) where 10 < X < 20, and 130 < Y < 150 » Example: (class, location) Description expression: subset of the name space – Class: enumerated type <tank, aircraft, ship> – Location: tuple (int: X-coordinate, int: Y-coordinate), where 0 < X < 1000 and » (tank, (15, 135)) 0 < Y < 1000 » (aircraft, (36, 99)) » Values in name space: (tank,(30,200)); (aircraft,(10,20)) » Values of the tuple space may correspond to Data routing – State variables of simulation (e.g., values of object attributes), or » A simulator receives a message if the message � s description – New construct defined just for the purposes of routing data (HLA: routing expression overlaps with the simulator � s interest space regions; newsgroup name) expressions May include static properties of objects (e.g., class names, attribute names) or dynamic properties (attribute values) 9 10 Maria Hybinette, UGA Maria Hybinette, UGA Data Distribution Concepts Static vs. Dynamic Data Distribution Static Data Distribution Name space " » Name space only includes static properties that do not change (all possible tuple values) " during the execution » Example: Declaration Management in the HLA – Class-based data distribution – Filter based on data types – � Give me updates to the position attribute of all objects of class tank � » Cannot filter based on dynamically computed quantities – Cannot say: � Give me updates to tank objects that are close to me � Dynamic Data Distribution » Name space includes dynamic quantities that may change during the execution » Value-based data distribution – � Give me updates to tank objects that are close to me � Interest expressions, Simulator 1 " » Example: Data Distribution Management in the HLA The message is routed to " Simulator 2, but not to " – Routing spaces Interest expressions, Simulator 2 " Simulator 1. " – Subscribe to position attribute of tank objects that are in my sector of Description expression for a message " the battlefield 11 12 Maria Hybinette, UGA Maria Hybinette, UGA
RTI Software Outline RTI Interface to the application (federate) Fundamental concepts » Name space » Name space Federate " » Interest expressions » Description expressions Interest " Description " » Description expressions » Interest expressions Expressions " Expressions " Network primitives Static Data Distribution: HLA Declaration Management RTI " » Unicast » Class-based filtering Network " » Multicase Primitives " » Broadcast Network " RTI design issues » What should the federate interface look like? » How is the interface mapped to the underlying communication mechanisms 13 14 Maria Hybinette, UGA Maria Hybinette, UGA Class-Based Data Distribution Class Hierarchy Example Vehicle ! Inherited attribute " Declaration Management services in the HLA • position " Federation Object Model (FOM) defines an object Aircraft ! class hierarchy describing all data exchanged among Tank ! • position " federates • position " • altitude " • turret " » Object classes » Attributes B-17 Bomber ! Spitfire ! Description expressions and interest expressions • position " • position " specify points in the object class hierarchy • altitude " • altitude " • bombs " • bullets " Each class inherits attributes from parent class Name space: <class, attribute> <Vehicle,position>, <Aircraft,position>, <Aircraft,altitude>, <Tank,position>, <Tank,turret>, <B-17,position>, <B-17,altitude>, <B17,bombs>, <Spitfire,position>, <Spitfire,altitude>, <Spitfire, bullets> 15 16 Maria Hybinette, UGA Maria Hybinette, UGA Description Expressions Interest Expressions Vehicle ! Vehicle ! • position " • position " Aircraft ! Tank ! Aircraft ! Tank ! • position " • position " • position " • position " • altitude " • turret " • altitude " • turret " B-17 Bomber ! Spitfire ! B-17 Bomber ! Spitfire ! • position " • position " • position " • position " • altitude " • altitude " • altitude " • altitude " • bombs " • bullets " • bombs " • bullets " Subscribe Object Class Attributes [class, attribute(s)] Interest expression: Subtree rooted at subscription point Update Attribute Values service sends a message » Subscribe (Aircraft, altitude): receive updates to altitude attribute of Description expression: an attribute of an object instance Aircraft, B-17, Spitfire objects » Single <class attribute> point in the name space » <Aircraft,altitude>, <B-17 Bomber, altitude>, <Spitfire, altitude> » Examples: <Spitfire, position> or <Aircraft, altitude> » In all cases, message appears as an update to an aircraft object 17 18 Maria Hybinette, UGA Maria Hybinette, UGA
Recommend
More recommend