Slides 1516 M1 P2

W
Shared by: HC120729224942
Categories
Tags
-
Stats
views:
0
posted:
7/29/2012
language:
pages:
17
Document Sample
scope of work template
							High Level Architecture
      Module 1
    Basic Concepts


                               Roy Crosbie
                               John Zenor


               California State University, Chico
   High Level Architecture
                        Module 1
                      Basic Concepts

                  Lesson 2
               Basic Structure
             of HLA Simulations
California State University, Chico     7/29/2012   2
Logical View of an HLA Federation
                           RTI Components At-a-Glance



               RtiExec          FedExec       Federate(s)        Federate(s)

                                                 libRTI             libRTI




                               Inter-Process Communications



                          RTI Provided               Federate Provided




  California State University, Chico                                     7/29/2012   3
        FedExec - The Federation
              Executive

     • One running process per executing federation
           – Created by first federate to successfully join federation
     • Manages multiple federates joining and leaving the
       federation execution
           – Assigns unique handles to each federate
     • Facilitates data exchange between federates
     • Console interface for manual operations


California State University, Chico                       7/29/2012       4
   RtiExec - The RTI Executive


    • Manages the creation and destruction of multiple
      federation executions (with different names)
          – Ensures that each FedExec has a unique name
    • Global process executes on one platform
    • Listens to a well known port
    • Console interface for manual operations



California State University, Chico                  7/29/2012   5
           libRTI - The RTI Library


• Makes HLA service methods available to federates
    – Methods communicate with RtiExec, FedExec, and other federates
      through them
• Written in C++ with interfaces in C++, Java, CORBA IDL,
  Ada




  California State University, Chico                7/29/2012      6
          What’s in a Federate?
The Federate’s Code provides The Federate’s code must implement the abstract
internal functionality.      RTI_FederateAmbassador class


  White Federate

   Federate Code

                                          Federate Ambassador

   LRC
                                            RTIambassador



The Local RTI Components (LRC)                         The LRC include the methods for the
provide external functionality as                      RTI_RTIambassador class
specified by the IFSpec.

     California State University, Chico     (Figure from the Hands-on Practicum)   7/29/2012   7
RTI and Federate Ambassadors
                        RTI and Federate “Ambassadors”

                            FederateAmbassador              "Various RTI Objects"




                                                                        RTIambassador




                          "Ambassador Implementation"




                       Federate Code                    "Various Federate Objects"




California State University, Chico       (Figure from the Hands-on Practicum)           7/29/2012   8
                                        The Big Picture
                                                                                                                                 Federation 2
Federation 1
                                FedExec1                                               FedExec2
                                                         RtiExec
                                                                                                                     Purple Federate
                                                                                                                        Internal Functions
       White Federate                                                                                                    External Functions
          Internal Functions

           External Functions




                          Green Federate                                                Orange Federate
                                Internal Functions
                                                                                               Internal Functions
                                 External Functions
                                                                                                External Functions




                                                                      Blue Federate
                                                                         Internal Functions

                                                                          External Functions




       California State University, Chico             (Figure from the Hands-on Practicum)                  7/29/2012                         9
                                    The Process
                                               The user starts
                                                  the RTI                RtiExec
                  1


                        The user starts his
                            Federate        WhiteFederate               The Federate creates
2                                              Fed. Code
                                                                           the Federation            FedExec
                                               LRC


                  When a federation is run, the RTIExec is started first.
      Then a federate, acting as a manager, creates a federation execution by
      invoking the RTI method “createFederationExecution” on its RTI Ambassador.
     The RTIAmbassador then reserves a name with RTIExec, and spawns a
     FedExec process, and that FedExec registers its communication address
     with RTIExec. The federation execution is underway.
Once a federation execution exists, other         Purple Federate
                                                                                                Other Federates
                                                  Fed. Code                                         join the
federates can join it. That RTIAmbassador                                                         Federation
consults RTIExec to get the address of FedExec, LRC
                                                                                                       Green Federate
and invokes joinFederationExecution on FedExec.                                                        Fed. Code

Additional federates can join via the same process.                                         3          LRC

          California State University, Chico      (Figure from the Hands-on Practicum)   7/29/2012                 10
     Content of an IF Specification

•   Interface name and brief description of service
•   Supplied arguments
•   Returned arguments
•   Pre-conditions
•   Post-conditions
•   Exceptions
•   Related services




    California State University, Chico           7/29/2012   11
   Sample RTI Service Request

        try
        {
          rtiAmb.timeAdvanceRequest(requestTime);
        }
        catch (RTI::Exception& e)
        {
          cerr << "FED_HW: ERROR:" << &e << endl;
        }




California State University, Chico            7/29/2012   12
    Possible Exceptions Thrown
        • The federation time is invalid.
        • Federation time already passed.
        • The TimeAdvanceRequest is already
          pending.
        • The federate is not a federation execution
          member.
        • Save in progress.
        • Restore in progress.
        • RTI internal error.

California State University, Chico       7/29/2012     13
                              Using “Tick”
• Tick used to wait for service completion
    – Allows RTI a chance to execute and respond to request
    – Waits for not more than 1.0 sec’s, nor less than .01 sec’s
• timeAdvGrant is a global variable, initialized to false, set
  true in callback routine TimeAdvanceGrant†

          timeAdvGrant = RTI::RTI_FALSE;

          while (!timeAdvGrant)
          {
                rtiAmb.tick(0.01, 1.0);
          }
  California State University, Chico                     7/29/2012   14
HelloWorld Code Responsibilities

• 1. Create and destroy the federation.
• 2. Join and Resign from the federation.
• 3. Declare data to be published and subscribed
  to by the federation.
• 4. Send/Receive data to/from other federates.




  California State University, Chico   7/29/2012   15
                 Obtaining the RTI




1- See a complete list of the                                     3- Once activated,
software and documents                                            download the RTI
available for download
                                  2- You must register to
                                  be able to download the
                                  RTI
                www.hla.dmso.mil (“Software Distribution Center” bullet)
  California State University, Chico (Figure from the Hands-on Practicum) 7/29/2012   16
                        The RTI Distribution
            bin                                   FoodFight           bin       Platform-specific




                                                 FoodFight++          bin       Platform-specific           config
       RTIExec, FedExec            Examples
      for each supported          Header files                                                               doc

            platform                Libraries
                                            Benchmarks                                                       bin      Platform-specific
                                 Executables
                                                                                                             inc
                                   (For each
RTI         lang     C++       demolanguage)
                                           TestFederate               bin       Platform-specific            src



      Examples                              TestFederateNT            bin       Platform-specific            doc
  (and their sub-dir)
                                                                                                            include
                              RTI.rid file
                                           Jager
                           example.FED files                                                                 bin      Platform-specific

                                                                                                             obj

                                                 MyFedTime            bin       Platform-specific             src

            config                                                                                           sys

                                                    hello             bin       Platform-specific

            California State University, Chico      (Figure from the Hands-on Practicum)        7/29/2012               17

						
Related docs
Other docs by HC120729224942
USA Electoral College
Views: 2  |  Downloads: 0
1237230285SBTMTLFT7 21 08minutes
Views: 0  |  Downloads: 0
State it explicitly if you can
Views: 1  |  Downloads: 0
- updated September 8 , 2004
Views: 0  |  Downloads: 0
B156080
Views: 0  |  Downloads: 0
2012 fall g1 deer app
Views: 0  |  Downloads: 0
School Site Council Role and Responsibilities
Views: 0  |  Downloads: 0