TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the L portion of LVC Slightly different emphasis; small.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Method Invocation
CORBA - Common Object Request Broker Architecture.
Windows Communication Foundation and Web Services.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Sockets  Defined as an “endpoint for communication.”  Concatenation of IP address + port.  Used for server-client communication.  Server waits for.
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Integration case study Week 8 – Lecture 1. Enrolment request (Workstation) Application server Database server Database New University Student Record System.
Communication in Distributed Systems –Part 2
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
Common Object Request Broker Architecture CORBA. RMI is a simplified version of CORBA that does fairly well CORBA is all-singing and all-dancing Multiple.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Abhishek Bachchan Vishal Patangia
Remote Objects. The Situation Is there a better (in terms of programmer time) way to do network communications? What is it we’re trying to accomplish?
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Distributed Computing A Programmer’s Perspective.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Test Enabled and Training Architecture (TENA) Don McGregor Research Associate MOVES Institute
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
.NET Mobile Application Development XML Web Services.
Remote Method Invocation A Client Server Approach.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Java Distributed Computing
Windows Communication Foundation and Web Services
Distributed Computing
Java Distributed Computing
MCA – 405 Elective –I (A) Java Programming & Technology
Remote Method Invocation
Distribution and components
Ch > 28.4.
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 40 Remote Method Invocation
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 46 Remote Method Invocation
Remote Procedure Call Hank Levy 1.
Chapter 46 Remote Method Invocation
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

TENA Test and Training Enabling Architecture

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

Live, Virtual, constructive

TENA Large-ish user support network Available to international militaries with permission (used in Sweden)

Remote Objects There’s a popular concept in computer science called “remote procedure calls” or “distributed objects.” You’ve 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 it’s popular to make it appear as if the object is “really” on the client. This is done via a proxy object

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

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 doesn’t 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.

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)

TAO CORBA Architecture

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 they’ll be much slower and less reliable than using a “real” object for(int idx = 0; idx < 1000; idx++ { proxy.doSomething(idx); }

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

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

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

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

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

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?

TENA

TENA App

Cooperating TENA Apps

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 Gov’t-provided middleware for most architectures (Linux/Windows/IOS/32/64)