+ All Categories
Home > Documents > TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the...

TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the...

Date post: 21-Dec-2015
Category:
Upload: roderick-hicks
View: 225 times
Download: 3 times
Share this document with a friend
Popular Tags:
20
TENA Test and Training Enabling Architecture
Transcript
  • Slide 1
  • TENA Test and Training Enabling Architecture
  • Slide 2
  • TENA TENA is used in range environments, often in the L portion of LVC Slightly different emphasis; small devices, real- time-ish, sometimes embedded, high performance in the sense of low overhead required, multiple unusual platforms Government-owned source built for multiple platforms
  • Slide 3
  • Live, Virtual, constructive
  • Slide 4
  • TENA Large-ish user support network https://www.tena-sda.org Available to international militaries with permission (used in Sweden)
  • Slide 5
  • Remote Objects Theres a popular concept in computer science called remote procedure calls or distributed objects. Youve got a piece of code on one host, and you want to call it from another You can create and send a message from the client to the server to make this call happen, but its popular to make it appear as if the object is really on the client. This is done via a proxy object
  • Slide 6
  • Proxy Objects -doSomething(int i) -doSomethingElse(float f); -doSomething(int i) -doSomethingElse(float f); -doSomething(int i) -doSomethingElse(float f); -doSomething(int i) -doSomethingElse(float f); ProxyReal Object The proxy is a stand-in for the real object on another host. Methods are called by a user on the proxy, which does no computation itself. Instead, it passes the request (along with any parameters) to the real object on a server. The server does the computation and passes back the return value
  • Slide 7
  • Proxy and Servant The object on the client side is called the proxy, while the real object on the server side is called the servant This means the proxy and servant need to agree on how messages are passed back and forth, ports for passing messages over sockets, etc. The good news is that this can be automated by appropriate code, so the user doesnt have to write any of it Typically you write a interface file in a special language, then the proxy code and servant interface is generated for you The infrastructure can use a variety of technologies for message passing: multicast, tcp, udp, etc.
  • Slide 8
  • TENA Description Language The TDL/CORBA IDL below is run through a compiler to generate the proxy objects and to create the server-side connectors. (TDL and IDL are very similar)
  • Slide 9
  • TAO CORBA Architecture
  • Slide 10
  • Dangers While this is nice, always remember that the proxy object is not the same thing as the real object. Calls are being made across the network, so theyll be much slower and less reliable than using a real object for(int idx = 0; idx < 1000; idx++ { proxy.doSomething(idx); }
  • Slide 11
  • TENA Remote Objects Remote objects are the approach that TENA takes Clients have proxies that connect to the servant objects running on other hosts, so we may have a radar object instance running on a device on the range being called from a host in the lab, and the radar object being shown in a DIS application via a gateway
  • Slide 12
  • Stateful Distributed Objects TENA adds stateful distributed objects to regular distributed objects With distributed objects you need to call a method to discover state With SDOs the state is pushed to subscribed listeners periodically (often at state change points) So for example a Radar object instance might tell listening objects that it has turned on rather than waiting for other objects to ask its state, or having other objects poll its state
  • Slide 13
  • TENA So a TENA application can consist of Objects that that application publishes (for example, a radar or tank) Objects that that application is listening to (for example, helicopters published by other applications) Your own application logic TENA has gateways to allow operation with other standards, for example DIS or HLA
  • Slide 14
  • TENA TENA uses something called CORBA in the background, specifically the TAO realtime CORBA ORB But all this is hidden from the user, and as a result is never seen directly Multiple language bindings: C++ is primary, C# also, Java in beta
  • Slide 15
  • CORBA CORBA provides the infrastructure for many things: Publishing objects Handling parameter serialization, object serialization, response serialization Object lookup The interface description language (IDL) Generating proxy and servant interfaces You provide the servant logic, CORBA does most of the rest
  • Slide 16
  • Object Serialization What if you pass an object as a parameter to a method on a servant? Eg, Position with attributes of floats (x,y,z). Or what if you want an object returned as a method result? The attributes of the object need to be placed in a format that can be passed in a message to the servant; this is all done automatically, but it needs to be done How to you find published objects?
  • Slide 17
  • TENA
  • Slide 18
  • TENA App
  • Slide 19
  • Cooperating TENA Apps
  • Slide 20
  • Overall TENA uses a hidden implementation of CORBA Adds stateful distributed objects, which pushes state information to subscribed listeners High performance, hides most network details Govt-provided middleware for most architectures (Linux/Windows/IOS/32/64)

Recommended