Experience Report Development of a Distributed CrossPlatform Simulator
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) partition TSim(t) TC TC Client Terminal Multiple clients
Chronology Distributed GUI n Terminals 1 Terminal CLI
Development Tools GNAT The Ada 95 Booch Components Ada. Sockets 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
Terminal Notification Monolithic Satellite Access type Distributed Terminal_Ptr Remote_Types Root_Payload Satellite Notify() VT Move Terminal Root_Terminal Revoke Terminal Virtual_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) Win 32
Configurations TSim Testing TSim(s) TSim(t) Training (Individual) 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 Ada. Sockets Platform availability Changes: 1 line (different version) TASH/RAPID Good combination RAD but not “industrial” strength
The Ada 95 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 ix 86 architecture only GNAT only We didn't try: Other HW architectures SPARC/68 k/PPC Other compilers
Distribution Effort Converting a monolithic application Issues: Categorization pragmas Unexpected behavior (GNAT specific? )
Questions & Answers
- Slides: 25