Title: Spacecraft Markup Language
1Spacecraft Markup Language
A Presentation to OMG 12/12/2000 www.interfacecont
rol.com/sml
2Problem Definition
- Space Program
- The Tower of Babel
- Contractors talking different languages
- Database Chaos Confusion
- Little Communication Interchange
- Nightmares
- Configuration Management
- Documentation
3FUSE Issues
- Database Management Across heterogeneous
platforms (Unix,NT) - ASIST RDL from GSFC
- http//rs733.gsfc.nasa.gov/ASIST/ASIST-home.html
- Extended RDL to RDL
- Developed parser and other tools
- Management in an object oriented database O2
- A lot of custom work
- An ASCII version is still a preferred method of
data exchange
4RDL for FUSE Commanding
- DATABASE FUSE
- CLASS IDS
- CMDS SWB, DESC"SWB"
- UB USER_DATA DEFAULT 0
- UB OPCODE DEFAULT 0
- END ! CMDS SWB
- END
- CLASS SWB
- CMD IDS_CMDS APID 112
- END
- CLASS IDS_CMDS
- CMD BC_MGR ,FCTN 35, DESC "IDS IDB BUS
CONTROLLER MANAGER TASK" - END
- CLASS BC_MGR
- CMDS IDS_IDBCTRL, DESC "START/STOP IDB OR
SET RETRY PARAMETERS" - USER_DATA 0
- OPCODE 17
- BITFIELD PARAMETERS
- UI OP DEFAULT 0, MASK X0003,
5FUSION or Convergence
- Industry Standards
- XML, XSLT
- NASA Database Description Language
- RDL
- Object-Oriented Database
- O2, O2C
SML
6SML Goal
- To Provide the Space Community With a Common
Definition of Spacecraft and Other Data Objects. - A Space Ontology based on XML
- To provide a user-extensible framework that
allows extensive flexibility while preserving
cross-vendor compatibility within open XML
standard.
7XML Benefits
- Standard ASCII Format for
- Data Description Definition
- Data Presentation
- Data Query
- Human Readable (friendly)
- Web/Computer Friendly
- Lots of freely available tools
8What Does XML Give Us?
- It is at least as readable as HTML
- Allows you to invent your own tags
- A lot of the programming is already done
- 3rd party parsers Apache Xerces , IBM,
Microsoft - 3rd party viewers - IE, Netscape
- It is directly reusable, Allows multiple views of
the same data - Tags dont have anything to do with how the data
is displayed
9Is It Hype?
- XML finally offers the ability to create a
globally accepted and cross-platform way of
managing and communicating data and information. - Intelligent Information Representation and
Transfer - Data Named Tags Type Information any other
definable attributes
10Schema Vs. DTDs
- Document Type Definition (DTD)
- lt!DOCTYPE Book  Â
- lt!ELEMENT Book (Title, Chapter)gt  Â
- lt!ATTLIST Book Author CDATA REQUIREDgt  Â
- lt!ELEMENT Title (PCDATA)gt  Â
- lt!ELEMENT Chapter (PCDATA)gt  Â
- lt!ATTLISTÂ Chapter id ID REQUIREDgt gt
- Why
- To check if the data conforms to its definition
- DTD Grammar for Data Validation during Parsing
11Schemas
- DTDs are not expressed in XML and cannot take
advantage of existing tools. - DTD limitation
- Which Schema?
- SOX
- Microsoft XML-Schema
- XML-Data
- W3C Schema
- http//www.w3.org/
- XML Schema has recently (2000-10-24) been
advanced to Candidate Recommendation status
12Issues with Schemas
- Moving Standards
- Explicit
- Could be a good or bad thing
- Verbosity
- Not user friendly
- Multiple Inheritance
13SML
- Advantages
- Data Definitions based on legacy (RDL)
- User extensible Schema Definition
- Implicit Schema
- Compact representation
- KISS principle
- Object-Orientation
- Derivation of new data structures based on
previously defined ones - Object Oriented Commanding System
- Blends the notion of classes and objects
(simpler) - Mix data schema information
- A Schema can always be translated into another
schema by applying the proper stylesheet
14SML So Far
- 10/26/99 First draft of Specification
- 11/99 Presented to
- GSFC NASA Code 580
- CCSDS Panel 2 Standards working group
- APL
- Ball Aerospace
- Used by Aerojet on SBIRS-High
- GE-Harris Harmon Railway Technology
- Version 1.6 released 9/20/2000
15SML Command Example
- ltCMDS NAMECCSDS DESCCCSDS ROOT Command gt
- ltUI NAMEAPID/gt
- ltUB NAMEFCTN/gt
- lt/CMDSgt
- Â
- ltCCSDS NAMEIDS DESCIDS Commands gt
- ltAPIDgt 10 lt/APIDgt
- ltFCTNgt 2 lt/FCTNgt
- ltUB NAMEOPCODE DESCAdditional opcode
parameter /gt - lt/CCSDSgt
- Â
- ltIDS NAMEDEV1 DESCDEV1 IDS Commands gt
- ltOPCODEgt 23 lt/OPCODEgt
- lt/IDSgt
- Â
-
CCSDS IDS DEV1
16Protocol Definition
- Commanding implies a command protocol that has to
be defined - Protocol is usually layered
- Header
- Trailer
- Protocols can be nested
17Protocol Example
- ltCMDS NAME"CCSDS" DESC"CCSDS Root Command"gt
- ltHEADER MAXSIZE"240" DESC"CCSDS Header"gt
- ltRECORD NAME"HDR1"gt
- ltBITFIELD NAME"PKT"gt
- ltUI NAME"Version" MASK"0xE000" DEFAULT"0"
MODE"STATIC"/gt - ltUI NAME"Type" MASK"0x1000" DEFAULT"1"
MODE"STATIC"/gt - ltUI NAME"SecHdrFlag" MASK"0x800"
DEFAULT"1" MODE"STATIC"/gt - ltUI NAME"APID" MASK"0x7F"/gt
- lt/BITFIELDgt
-
- lt/RECORDgt
- ltRECORD NAME"HDR2"gt
- ltUB NAME"SEDS_RESERVED" DEFAULT"0"
MODE"STATIC"/gt - ltUB NAME"FCTN" DEFAULT"0"/gt
- lt/RECORDgt
- lt/HEADERgt
- ltTRAILERgt
- ltUB NAME"Checksum"gt
- ltMETHOD NAME"CCSDS_TRAILER"/gt
18SML Language Overview
- Tags
- Attributes
- Comments
- Namespaces
19SML File Structure
- lt?xml version"1.0" standalone"no"?gt
- ltDATABASE gt
- ltSECTION gt
- ltSPACEOBJECTS gt
- ltSPACEOBJECTS /gt
- lt/SECTIONgt
- lt/DATABASEgt
- Convenience containers tags to define has-a
relationships. It does not imply an inheritance
or is-a relationship. - Note a ltSCHEMAgt tag has also been added for
convenience
20SPACE OBJECTS
- COMMANDS
- TELEMETRY PACKETS
- DATABASE RECORDS
- MESSAGES
Objects can be derived from other objects Objects
have fields that can be optional or required
21Primitive Fields
Fields have various attributes implicit data
types
22Field Attributes
- Attributes
- Name (required)
- DESC
- MODE
- MASK
- MIN
- MAX
- BIGENDIAN
- UNITS
- VISIBLE
- RHIGH
- YHIGH
- YLOW
- RLOW
- DEFAULT
- AS
- DRANGE
- METHOD
23Grouping Constructs
- RECORD
- UNION
- BITFIELD
- ARRAY
24Other Space Objects
25Packets
- ltPACKET NAMEHDR
- DESCThis is the header information gt
- ltUB NAMEfield1/gt
- ltUI NAMEfield2/gt
- lt/PACKETgt
Telemetry Packets for instance
26Messages
- Support Concept of Software Bus
- Notification Messages
- Request/Replies Messages
ltMESSAGE NAMEmyMsg ltREQUESTgt ltSTRING
NAMEfilenamegt lt/REQUESTgt ltREPLYgt ltUB
NAMEstatus /gt ltSTRING NAMEerrstr /gt
lt/REPLYgt lt/MESSAGEgt
ltMESSAGE NAMEmyMsg gt ltNOTIFYgt ltSTRING
namefilename /gt lt/NOTIFYgt lt/MESSAGEgt
27SML Tools
- DBComp
- SML Builder
- SML Viewer
- SMLGENT
- JCMDGEN
28Putting it together
29SMLViewer
30Web Command to Spacecraft.
- The user sends a command from the SMLViewer.
The GUI tool generates an SML message, and sends
it to the Gateway (WEB Server). - JCMDGEN parses and validates the SML message,
then encodes the contents of the message to be
transferred to the spacecraft. - The Spacecraft receives the encoded message, and
passes to the destination process. - Onboard process operates on the message.
31Send a Command From Your Cell Phone
32Directions
- W3C Schema/XSLT Impact
- Namespaces
- Include,
- SML GUI Builder
- Drag Drop
- SML to W3C Schema Conversion Tool
- Automatic Message Validation
- Some SOAP Convergence
- SOAP Bridge