Johnson Space Center's (JSC's) growing operations community requires new ways to distribute and process mission information. The Mission Control Center uses flight-control application programs based on an information-sharing protocol (ISP) to process and distribute real-time mission telemetry, trajectory, and computation data. ISP application programs provide multiple users synchronous, rapid access to mission data and programs. The ISPresso ISP software package is designed in Java, which is rapidly becoming the language of choice because of its ability to work on almost any platform. ISPresso plays a substantial role in the remote-access platforms now being implemented for space-shuttle and space-station operations and is used for Hubble Space Telescope operations. The portability of ISPresso enables deployment of mission-data-processing application programs to desktop computers and makes it possible to package application software for convenient access through web browsers. Such accessibility will prove useful in many additional process-control settings, from powerplants to all types of manufacturing.
Current ISP client software libraries are written in the C computing language for UNIX; consequently, all telemetry application programs must also run on UNIX platforms. The advantage afforded by Java is that, once written, a Java application program can run anywhere a compliant Java virtual machine (VM) is available. Because ISPresso is written in Java, it can run on any platform that includes a Java VM.
ISPresso is a product of a complete redesign and rewrite of ISP client software libraries to take advantage of the easy-to-use, synchronous (threaded), Internet-friendly nature of Java for creating ISP client programs. The ISPresso library consists of seven Java software packages. The essential functional elements of ISPresso are shown in the figure. The Read Thread, Message Factory, and Write Thread constitute the primary interface to the ISP server. They provide generic input/output and event-based message-passing and specific message-passing. The Connection and Dispatch Thread functions are performed by the ISP client interface software package, with ISP updates encapsulated into the Value, Message, and Status classes. The Connection function includes mode control over the other functional elements, as indicated by the dashed lines. Solid lines denote data flow within ISPresso. The Dispatch Thread delivers updates asynchronously to the client application program via the Observer interfaces in the ISP client interface software package.
The portability of Java gives ISPresso several advantages over the C/UNIX version of ISP:
- Unlike C/UNIX ISP application programs, ISPresso can run from desktop computers.
- A Java-only platform that is configured entirely from servers and therefore costs almost nothing to maintain.
- Although C/UNIX ISP application programs can usually be transferred from one system to another with minimal rework, certain transfers do necessitate spending significant time and effort to restore compatibility. Developers of ISPresso code need to produce and maintain only one set of code for all platforms, inasmuch as any computing system with the Java VM accepts the code readily.
- Java is becoming a language of choice for the software industry; the number of Java software products will soon surpass that of software products in the C++ language and will likely eclipse that of programs in the C language. Java VMs are distributed widely via Java-enabled web browsers. Universities are adopting Java as their standard "teaching language" for computer-science courses. The number of software tools available, the variety of types of products, and the number of qualified programmers will make it easier and more economical to equip and staff development teams for Java-based software products than for C/UNIX software products.
This work was done by James C. Thompson and Steven P. Weismuller of United Space Alliance for Johnson Space Center.