Interoperable Remote Component (IRC)

Architecture


Introduction:

The Interoperable Remote Component (IRC) architecture is a flexible, platform-independent application framework that is well suited for the distributed control and monitoring of remote devices and sensors. The architecture's strength is in its capability to configure itself for a specific application based on eXtensible Markup Language (XML) descriptions to provide an architecture that can be customized for user-specific applications and interfaces.

IRC was originally designed to control remote instruments and thus was initially named Instrument Remote Control (IRC). However, as IRC developed into a mature product, it facilitated component interoperability for all types of software systems, thus a recent name change has been instituted where IRC now stands for Interoperable Remote Component Architecture.

Contents:

Application Screen Shots and Demos:

The IRC framework supports specifying the layout and content of the Graphical User Interface (GUI) using XML. A GUI generating engine parses the XML representation at runtime and instantiates the necessary classes to render the GUI. The GUI description can be loaded dynamically from a file packaged with the code, from a remote server, or from a remote device that has published a specialized GUI. We have also extended the description syntax to support the frameworks library of visualization components. A visualization can be described in XML and constructed using one or more light-weight renderers that are combined or overlaid to create a complete custom visualization. An example of some of the possibilities is shown in the screen shot at right. Click on the image for a larger view.

Selecting a "Demo" link below will launch the IRC WebStart application configured for the given demo (a network connection is needed). Selecting the "Screen" link will display a screen shot from the demo or application.

SHARC II/CSO Application

SHARC II (Submillimetre High Angular Resolution (bolometer) Camera) is a facility 350 µm and 450 µm camera for the Caltech Submillimeter Observatory (CSO). SHARC II has been used to address a variety of topics ranging from imaging of debris disks around nearby stars to the measurement of luminosities of dusty galaxies at redshifts of z=4 and beyond. IRC has been used to control the SHARC II instrument since 2003 for over 30,000 observations. For this application it was decided to create a fairly simple observation command panel (Screen) for guest observers. Another command panel, not shown in the screen shots, is available to CSO staff and researchers that enables a finer level of control of the instrument and telescope. Also available is a variety of visualizations (Screen) for assessing the quality of the data and for situational awareness of instrument state, telescope performance, and local weather conditions.

Adaptive Sensor Fleet Application

The Adaptive Sensor Fleet (ASF), an application built using the IRC framework, was recognized by R&D Magazine as one of the top 100 most innovative and technologically significant new products of 2007. ASF is a supervisory control system that is designed to use a collection of heterogeneous robotic platforms to optimally perform observations of dynamic environments driven by high-level goals. The ASF provides for observations through high-level goals, supervisory fleet management of robotic platforms (coordination), analysis of environmental science data to use in the decision making process (collaboration), optimal path planning and replanning, identification of science phenomena, and adaptation to dynamic or unknown environments. (Screen 1) (Screen 2)

HAWC/SOFIA Application

High-resolution Airborne Wideband Camera (HAWC) will be a facility camera for SOFIA which will cover the 40-300 µm spectral range with three bands centered at 60, 110, and 200 µm at an image scale of two pixels per airy disk, its detector will be a 12x32 array of micromachined silicon "pop-up" bolometers, operated at a temperature of 0.3 K. HAWC's goal is to provide a sensitive, versatile, and reliable capability for SOFIA's user community during its first operational years. HAWC is one of the First Light Instruments for SOFIA.

IRC software has been used in instrument lab testing since 2003 and will soon be used in flight. IRC satisfies the project requirements to receive, archive, and display all data from all subsystems, to run under UNIX, Linux, MacOS, and Windows, and provide the capability to build an intuitive and easy to use interface to the instrument. (Screen 1) (Screen 2)

ILIADS Application

Integrated Lunar Information Architecture for Decision Support (ILIADS) is utilizing IRC as the application framework to provide a systematic, integrated view of the lunar environment for scientists, engineers, mission planners, and exploration decision makers. ILIADS will provide precise analytical and visualization tools to support Exploration lunar mission formulation studies, as well as lunar mission operations. (Screen)

Scalable Vector Graphic Demo

This example demonstrates a simple data driven graphic that has user clickable areas. The graphic elements can have scripts associated with them to respond to user actions. Clicking on the optics path simply toggles the optics graphic, however this could do some arbitrary actions such as sending a command. The LHe4 area when clicked on will open another graphic. (SVG Demo) (Screen)

The GUI description for this demo references a Scalable Vector Graphic (SVG) based visualization. SVG is a W3C standard format for describing a resolution independent graphic. Many drawing and CAD applications support exporting a drawing to SVG. The IRC framework can read and display these files directly and incorporate them with other graphical components. This capability makes it very easy to create custom displays specific to a domain or application.

Plot Demo

Provides a simple instance of the IRC framework with a visualization plotting two channels overlaid on one chart. Each channel has independent vertical Y axis scales, one scale is linear and the other is a log scale. The X axis is shared. This is an example of using IRCs library of flexible lightweight components together to create a functional visualization. (Plot Demo) (Screen)

FFT Algorithm Demo

Provides a simple instance of the IRC framework with a visualization plotting the output of a FFT algorithm. One channel is a 100Hz sin wave and the other is a random noise signal.(FFT Demo) (Screen)

3D Plot Demo

Provides a simple instance of the IRC framework with a 3D strip chart visualization plotting the output of a Signal Generator algorithm. The user can change perspective and zoom level for the 3D plot using the mouse buttons and wheel. (3D Plot Demo) (Screen)

Signal Generator client/server Demo

Provides a Signal Generator that allows clients to attach to it. Clients can command the Signal Generator to change the characteristics of the generated signal and receive the signal data. This configuration uses "localhost" so you will need to launch both the server and client on the same computer. This demonstrates the capability of IRC to publish data from one instance to another. This can be done transparently to the components using the data on either IRC peer. (Server Demo) (Client Demo) (Client Screen)

Google Earth Example

Provides an IRC example serving dynamic kml files to Google Earth. This example will launch Google Earth and provide location and path information for a simulated autonomous boat. Google Earth needs to be installed on the host computer. (KML Demo)

In the Press:

The early publicity and attention given IRC by the community as invited speakers at XML and astronomical conferences, books, periodicals, and television has greatly influenced architectures that followed and broadened the scope of what XML can be used for.

Bibliography:

Selected publications:

Documentation:

The source code for the IRC framework has been extensively commented following NASA and industry style guides and best practices. The IRC framework API specification is generated from the code comments using a Javadoc tool to create both on-line or hardcopy descriptions. Click this IRC API link to go to an index of the generated html.

Source Code:

The source code is released under the terms and conditions of the NASA Open Source Agreement (NOSA) and is available from the GSFC Innovative Partnerships Program Office web page.


Responsible NASA Official: Troy J. Ames