PowerPoint Show

Download Report

Transcript PowerPoint Show

Experience Report:
Development of a Distributed
Cross-Platform Simulator
Thom Brooke
Titan Corporation
SIGAda 2002
December 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
Terminal
Automated
Operator initiated
TC
Terminal Protocols
Communications
RS-232
Serial
PPP
Alternating bit
Message based
Command
Response(s)
TC
Terminal
Setup Net 1
ACK
Setup Complete
Net 1 Active
The Problem
Testing
Training
No
Satellite
Terminal(s)
Terminal
TC
Script-Based Tool
Features
Scripts
Default responses
Dynamic responses
Good for
Protocols
Exceptional cases
But
No state information
Messages
Order dependent
Wrong answer is “right”
Simulator: TSim
Needs to model
Satellite
Local terminal
TSim
Remote terminal(s)
System state
Interface to TC
IR&D project
Proof of Concept
Further than expected
TC
Resulting Architecture
TSim(s) partition
Server
TSim(s)
Satellite
“Virtual” terminals
TSim(t)
TSim(t)
TC
TC
TSim(t) partition
Client
Terminal
Multiple clients
Chronology
Distributed
GUI
n Terminals
1 Terminal
CLI
Development Tools
GNAT
The Ada95 Booch Components
AdaSockets
TASH; Tcl/Tk
RAPID
GLADE (Distributed Systems Annex)
TSim Server
Satellite
UI
Logon
Antennas
VT
Satellite
Virtual terminals
Notification
Payload
Message
Terminal
TSim Client
Terminal
UI
Logon
Notification
Satellite
Terminal
EIF
TC Interface
Payload
Message
TC
Message
TC
Terminal Notification
Monolithic
Satellite
Access type
Distributed
Terminal_Ptr
Remote_Types
Root_Payload
Satellite
Notify()
VT
Move
Terminal
Root_Terminal
Revoke
Terminal
Virtual_Terminal
Terminal
Message Interface
EIF
Satellite
Terminal
Part of Terminal
Manages protocols
Specialized links
Root_Message
EIF_Ptr
Root_EIF
Send()
Assign
Report
Serial_EIF
PPP_EIF
Cross-Platform
Mix-and-Match (mostly)
Simulator/TC, OS, and platform(s)
TSim
Linux
TSim(s)
TSim(t)
Win32
Configurations
TSim
Testing
TSim(s)
TSim(s)
TSim(s)
TSim(t)
TSim(t)
Training (Individual)
TSim(t)
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 architectures
SPARC/68k/PPC
Other compilers
Distribution Effort
Converting a monolithic application
Issues:
Categorization pragmas
Unexpected behavior
(GNAT specific?)
Questions
&
Answers