An extensible Java™ software framework supports the construction and operation of graphical user interfaces (GUIs) for distributed computing systems typified by ground control systems that send commands to, and receive telemetric data from, spacecraft.
Heretofore, such GUIs have been custom built for each new system at considerable expense. In contrast, the present framework affords generic capabilities that can be shared by different distributed systems. Dynamic class loading, reflection, and other run-time capabilities of the Java language and JavaBeans component architecture enable the creation of a GUI for each new distributed computing system with a minimum of custom effort. By use of this framework, GUI components in control panels and menus can send commands to a particular distributed system with a minimum of system-specific code. The framework receives, decodes, processes, and displays telemetry data; custom telemetry data handling can be added for a particular system. The framework supports saving and later restoration of users' configurations of control panels and telemetry displays with a minimum of effort in writing system-specific code. GUIs constructed within this framework can be deployed in any operating system with a Java runtime environment, without recompilation or code changes.
This program was written by Glenn Eychaner and Albert Niessner of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free on-line at www.techbriefs.com/tsp under the Software category. This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (818) 393-2827. Refer to NPO-40464.
This Brief includes a Technical Support Package (TSP).

Support for User Interfaces for Distributed Systems
(reference NPO-40464) is currently available for download from the TSP library.
Don't have an account?
Overview
The document outlines a framework developed by NASA's Jet Propulsion Laboratory for creating user interfaces to control distributed systems, particularly in the context of spacecraft ground systems. It emphasizes the challenges associated with developing graphical user interfaces (GUIs) for such systems, which are often complex and custom-built, leading to high development and maintenance costs.
The framework leverages the capabilities of the Java language and JavaBeans™ component architecture to facilitate rapid development, deployment, and maintenance of GUIs. It allows for dynamic class loading and reflection, enabling the creation of system-specific user interfaces with minimal custom code. This adaptability is crucial for controlling various distributed systems, as it imposes minimal requirements while providing flexibility for extensions.
Central to the framework is the concept of exposing a system's command interface as a set of objects. This allows the framework to utilize existing Java functionalities for dynamically creating and manipulating these objects. In CORBA-based systems, for instance, the framework interacts with distributed objects through interfaces defined in a language-neutral Interface Definition Language (IDL), enabling seamless communication.
The document details the structure of the framework, including the Commander class, which manages connections to command objects, and the ControlSet class, which encapsulates the user interface components such as control panels and menus. These components facilitate user interactions by sending commands to the distributed system and displaying telemetry data.
Additionally, the framework supports custom telemetry data handling, allowing developers to implement specific data types and factories for unpacking data from packets. This flexibility is essential for adapting the framework to various telemetry formats and requirements.
The conclusion highlights the framework's ability to reduce the complexity of system-specific code while maintaining a robust shared framework. It underscores the powerful capabilities of Java in creating a generic, adaptable system that can be easily modified to work with diverse distributed systems.
Overall, the document presents a comprehensive approach to developing user interfaces for distributed systems, showcasing the potential of Java technology in enhancing the efficiency and effectiveness of aerospace-related applications.

