Download:
Mercury 1.1.2a
CVS Tarball
 nav.

  • Main
  • FAQ
  • Download
  • Design Docs
  • SF Project
  • CVS Info
  • Bug Report
  • News
  • Screenshots
  • Links
  • Contact Info
  • Sponsors
  • MGSN
  • Developers
  •   GSML - Ground Station Markup Language

    [Printable Version]


    GSML Overview GSML Overview
    by the Mercury Design Team

    Introduction
    Trends in spacecraft operation are moving towards increased satellite connectivity that will enable 24x7, end-to-end access between users and satellite data [Bhasin01]. Meanwhile, the complexity in ground stations remains high as well as their total cost of ownership [Zillig94][Wertz99]. In order to reduce costs while increasing coverage, ground system designers are seeking ground stations that can support multiple heterogeneous missions, as well as operations teams that can interface to multiple heterogeneous ground stations.

    We have experienced these trends firsthand with recent university satellite launches. Stanford's first CubeSat mission, QuakeSat, which follows the successful Opal and Sapphire, was launched in June of 2003 with five other CubeSats. All six operations teams were plagued by a lack of multi-mission support at non-primary ground stations when trying to increase coverage times during initial contacts and system check-out phases. As we seek to help support these multiple missions and to take advantage of university ground stations around the world, we have found a pressing need for new, enabling technologies.

    The research efforts of the Mercury project are developing technologies to meet this need. We are working on an architecture for flexible application support in ground stations that will allow users to specialize ground station configurations and services without explicit knowledge of these services by the ground station[Cutler03]. We are working on recovery-oriented computing techniques that will enable us to build reliable, highly available ground station networks from stations that are individually unreliable [Patterson02][Cutler01]. Our testbed is a network of university ground stations accessible via the Internet called the Mercury Ground Station Network (MGSN). For the MGSN, we have developed an open-source reference ground station control system, called Mercury, that automates routine ground station services and provides secure Internet access.

    This document provides an overview of our development efforts on a generic ground station command and control language used in Mercury and the MGSN, which we call the Ground Station Markup Language (GSML). First, we describe our method of flexible mission support by ground stations which lays the foundation for our ground station paradigm. We then describe our reference model which captures the basic functions and services of a typical ground station. Next, we describe our XML-based command language for controlling the station at three hierarchical levels: the virtual hardware level, the session level, and the network level. We conclude with a description of our MGSN testbed and its support of university satellite missions.

    Software Defined Ground Stations
    Another trend to take note of in space systems is the replacement of specialized hardware components with software defined components running on general purpose computing platforms. As an example, software defined radios are replacing discrete component systems, thereby enabling extremely flexible radio solutions [Zillig94]. The necessary hardware is shrinking and leads to software defined ground stations. See figure 1 (antenna amplifiers are not shown and more than one CPU may be needed for these functions).

    Figure 1 -- Special purpose hardware reduction

    We combine this with the rise of workstation virtual machine (VM) technology [Cutler03]. Virtual machines enable a host operating system to run multiple guest operating systems on top of it. See figure 2. To the guest OS, it appears that it is running only on a single machine, when in reality multiple guest OS's may be operating on a single host. VM's have been common place in mainframe computing for years are now making their way into workstations.

    Figure 2 -- A virtual machine system.

    The benefits of VM's are numerous. Multiple VM's on single computing platform result in higher, more efficient use of CPU platforms. Upgrades are facilitated as VM's can be copied to new hardware with only momentary disruption of VM operation. VM's appear to the host as a simple file directory, which makes manipulation of the them (copy, backup, moves, restoration, etc.) straight forward. The virtual machine monitor (VMM) also provides a high degree of isolation between guest OS's. Errors or malicious intentions of a single guest OS can be contained and isolated by the VMM.

    Now, consider if we use VM's for the software defined components of a ground station. Users can download their custom virtual machines pre-configured to perform their satellite specific (de)modulation, bit synchronization, forward error correction (FEC), packetization functions, and any other application level functions (such as data archiving and processing). To the ground station, it simply runs a virtual machine without any explicit knowledge of what application level code the user has implemented in the VM. To the user, the station is running customized, application specific functions for their satellite passes. Thus, generic application support can be achieved.

    This virtualization stems from the end-to-end argument, which states that the function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system [Saltzer84]. Therefore, "a lower layer of a system should support the widest possible variety of services and functions, so as to permit applications that cannot be anticipated". Building complexity into a network often optimizes it for that particular application to the detriment of other unforeseen applications [Reed98]. Our ground station work seeks to identify and minimize core ground station services while still allowing application level support at stations.

    The concept of a software defined ground station implemented with virtual machines is at the heart of our ground station work. We feel the combination of a reduction in the complexity of core ground station services with complete user defined application level support will enable drastic improvements in multi mission support.

    Reference Model
    Our ground station reference model is described here in detail.

    GSML
    Given this reference model, we are developing an application program interface (API) for commanding and controlling these captured ground station services. We call it the Ground Station Markup Language (GSML). GSML encapsulates core state information associated with the hardware and services of the reference model and provides primitives for actuating ground station elements (similar to remote procedure calls).

    We have chosen the extensible markup language (XML) as the framework for GSML. XML is a meta-language, a language for describing other languages, which lets you develop custom document markup languages. XML was chosen because it is extensible, transportable, and a wide variety of off the shelf tools are available.

    As the name implies, XML was designed to be extensible. The framework allows easy addition of elements to documents that can contain new state for GS objects or new methods for GS services. This will enable GSML to adapt to future hardware and service additions. XML parsers also enable implementations of GSML to ignore unknown elements thereby allowing applications to handle different GSML versions.

    With GSML we have separated data format from implementation. The protocol is independent of transport. GSML messages are text and easily transportable with standard Internet protocols. As we will describe below, our testbed currently uses TCP, SSL, and HTTPS for transport. Other forms of delivery are also equally implementable, such as FTP, SMTP, HTTP, or SOAP. This will enable ground station control systems that implement GSML to work on a variety of network configurations and architectures.

    A drawback of GSML is its lack of bit efficiency. The messages are verbose and could be expressed in more efficient, optimized formats. This, however, severely restricts its extensibility. We trade off efficiency for this extensibility, counting on Moore's Law to continue providing faster CPUs and networks. Compression of GSML messages can also be used to reduce this bit efficiency.

    GSML specifications are under development:

    0.2.* Extends 0.1 to include session and network level. Formally defined with XML Schema. Used in Mercury versions greater than 1.2.
    0.1.* First attempt at capturing hardware level. Used in Mercury versions 1.1.2 and less.

    Testbed
    The GSML experimental and developmental efforts are carried out on a network of university ground stations. The Mercury Ground Station Network (MGSN) is a loose federation of global university ground stations networked to support university satellite missions. The MGSN is still in its infancy stages and currently contains a small core group of universities in the US, Norway, Denmark, and Germany. We expect to have basic MGSN functionality by early 2004.

    The communication protocol of the MGSN is GSML. Stanford has developed an open-source implementation of the GSML API called Mercury. It is built on the Apache webserver, MySQL database, PHP web scripting, and a suite of custom written Java applications for controlling ground station hardware and automation services. See the architecture descriptions online for more information on Mercury.

    Due to GSML's XML framework, Mercury is able to use a variety of Internet protocols for relaying messages. Externally, GSML messages are transmitted via TCP sockets, or securely through SSL protected TCP sockets. SSL is used for authentication of GS users as well as encryption of transmitted messages. Internally, a TCP-based centralized message server is used for GSML communication between Mercury components. Essentially, it is a chat server that enables all Mercury components to communicate with one another.

    Our Java communication components are autogenerated from the GSML specification file. This makes extensions and modifications of the GSML specification immediately available to the Mercury code base after a re-compilation of the specification. It also helps reduce any coding errors in the core communication components since the number of human written lines of code is reduced.

    Heterogeneous hardware components are controlled with GSML drivers. These drivers translate GSML commands to low level hardware specific command sequences. Given that most hardware is controllable via ethernet or serial port (RS-232, etc) interfaces, our Java-based GSML drivers are adequate for controlling GS systems.

    A useful tool we use in Mercury for parsing GSML messages is XSLT (eXtensible Stylesheet Language Transformations). We use XSLT in Mercury to generate multiple GSML response messages from a received GSML message. For instance, in the Stanford station, we use digital IO hardware to implement the polarity control of our antennas. An XSLT transform document is loaded into the antenna driver that parses a polarity control command and automatically generates the appropriate digital IO command messages. Driver specific XSLT documents are configured through Mercury's web interface and automatically loaded into the drivers at runtime.

    Currently, Mercury supports the hardware and session levels of GSML and is deployed at two Stanford ground stations. Work is underway to deploy it also at stations in Alaska, Iowa, Norway, Germany, and Denmark. We expect to have basic network services running in 2004.

    References
    [Bhasin01] Kul Bhasin and J Hayden, "Space Internet Architectures and Technologies for NASA Enterprises". In Proceedings of the 2001 IEEE Aerospace Conference, Big Sky, Montana, 2001.

    [Cutler01] James W. Cutler and Armando Fox and Kul Bhasin, "Applying the Lessons of Internet Services to Space Systems". In Proceedings of the 2001 IEEE Aerospace Conference, Big Sky, Montana, 2001.

    [Cutler03] James Cutler, "Ground Station Virtualization". In the Proceedings of the The Fifth International Symposium on Reducing the Cost of Spacecraft Ground Systems and Operations (RCSGSO), Pasadena, CA, July, 2003.

    [Patterson02] David Patterson and Aaron Brown and Pete Broadwell and George Candea and Mike Chen and James Cutler and Patricia Enriquez and Armando Fox and Emre Kiciman and Matthew Merzbacher and David Oppenheimer and Naveen Sastry and William Tetzlaff and Noah Treuhaft, " Recovery Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies", Technical Report, UCB/CSD-02-1175, UC Berkeley, 2002.

    [Reed98] D. Reed and J. Saltzer and D. Clark, "Active Networking and End-to-End Arguments", IEEE Network, 12(3):66-71, May/June 1998.

    [Saltzer84] J.H. Saltzer and D.P. Reed and D.D. Clark, "End-to-End Arguments in System Design", ACM Transactions on Computer Systems, Volume 2, Number 4, pages 277-288, November, 1984.

    [Wertz99] James Wertz and Wiley J. Larson, editors, "Space Mission Analysis and Design". Microcosm Press, El Segundo, CA, 3rd edition, 1999.

    [Zillig94] David Zillig and Ted Benjamin, "Advanced Ground Station Architecture". In Proceedings of Space Ops, Greenbelt, MD, November, 1994.