Experience Report: Development of a Distributed Cross-Platform Simulator Thom Brooke Titan...

Post on 29-Mar-2015

218 views 0 download

Tags:

Transcript of Experience Report: Development of a Distributed Cross-Platform Simulator Thom Brooke Titan...

Experience Report:Development of a Distributed

Cross-Platform Simulator

Thom BrookeTitan Corporation

SIGAda 2002December 10, 2002

Overview

The System

Satellite communications

Terminal Control

Simulator design

Tools and environment

Architecture

Application

Observations

Some images © 2002 by Riverdeep, inc., and its licensors. All rights reserved.

Satellite Communications

Used For

Wide Area Network

No terrestrial assets

Terminals

Several types

Access points

Network Topology

TCP/IP backbone

Point-to-Point links

Conference nets

Gateway

Terminal Functions

Access point

Functional Areas

Antenna control

Network control

Resource monitoring

Terminal Control

Laptop

Planning tool

Terminal Control

RS-232 Interface

Commands

Automated

Operator initiated

Terminal

TC

Terminal Protocols

Communications

RS-232Serial

PPP

Alternating bit

Message based

Command

Response(s)

TC Terminal

Setup Net 1Setup CompleteACKNet 1 Active

The Problem

Testing

Training

No

Satellite

Terminal(s)Terminal

TC

Script-Based Tool

Features

Default responses

Dynamic responses

Good for

Exceptional cases

But

No state information

Order dependent

Wrong answer is “right”

Messages

Protocols

Scripts

Simulator: TSim

Needs to model

Satellite

Local terminal

Remote terminal(s)

System state

Interface to TC

IR&D project

Proof of Concept

Further than expected

TC

TSim

Resulting Architecture

TSim(s) partition

Server

Satellite

“Virtual” terminals

TSim(t) partition

Client

Terminal

Multiple clients TC

TSim(t)

TSim(s)

TC

TSim(t)

Chronology

1 TerminalCLI

n Terminals

GUI

Distributed

Development Tools

GNAT

The Ada95 Booch Components

AdaSockets

TASH; Tcl/Tk

RAPID

GLADE (Distributed Systems Annex)

TSim Server

Satellite

Logon

Antennas

Virtual terminals

Notification

UI

SatelliteVT

PayloadMessage

Terminal

TSim Client

Terminal

Logon

Notification

TC Interface

UI

Terminal EIF

PayloadMessage

TCMessage

TCSatellite

Terminal Notification

Monolithic

Access type

Distributed

Remote_Types

Satellite

TerminalTerminal

VT

Satellite

Root_Terminal

Notify()

Root_Payload

Terminal_Ptr

Virtual_Terminal Terminal

Move Revoke

Message Interface

EIF

Part of Terminal

Manages protocols

Specialized links

Report

Terminal

Root_EIF

Send()

Satellite

PPP_EIFSerial_EIF

Assign

Root_Message EIF_Ptr

Cross-Platform

Mix-and-Match (mostly)

Simulator/TC, OS, and platform(s)

TSim(t)

TSim(s)

TSim

Linux Win32

Configurations

TSim

Testing

TSim(t)

TSim(s)

TSim(t)

TSim(s)

Training (Individual)

TSim(t)

TSim(s)

TSim(t)

Training (Group)

Observations

Good support

Tools

Components

Portability: just dumb luck?

Distribution need not be difficult

Nearly identical to non-distributed

Tool Support

AdaSockets

Platform availability

Changes: 1 line (different version)

TASH/RAPID

Good combination

RAD

but not “industrial” strength

The Ada95 Booch Components

Many structures; many “forms”

Better than rolling your own

but the STL is still easier to use

Allocation

Layered instantiation

Iterators

Portable (?)

We experienced OS Portability

ix86 architecture only

GNAT only

We didn't try:

Other HW architecturesSPARC/68k/PPC

Other compilers

Distribution Effort

Converting a monolithic application

Issues:

Categorization pragmas

Unexpected behavior(GNAT specific?)

Questions&

Answers