Space Plug-and-Play Architecture (SPA) and SSM Introduction SPA implements a self-configuration Publish/Subscribe methodology Computer-negotiated interfaces permit the elements of a complex system to interoperate without the need of traditional interface control documents SPA processing sequence: 1. Network discovery and configuration 2. Component registration (Publish) 3. Component queries 4. Component subscriptions (Subscribe) Introduction Accelerates the development and integration process by reducing or eliminating error-prone human interpretation Standards based SPA standards submitted to AIAA Provides a contract between component providers that if their component is SPA compliant they can expect full interoperability on a SPA system Software Architecture SPA Applications Non-SPA Applications SPA API SPA Middleware Core Libraries Core Services Subnet Management Platform Abstraction Library Libraries Operating System and System Services Board Support Package Software Architecture SPA Middleware Software required in order to support SPA infrastructure and functionality Open source SPA middleware reference implementation provided by AFRL - SPA Services Manager (SSM) SSM Target Architectures VxWorks 6.x using Real Time Processes (RTPs), Linux 2.6.x, and Windows XP and 7 Design uses a Platform Abstraction Layer (PAL) to ease port to other platforms Software Architecture SPA Middleware Core Services Discovery and addressing service Network topology discovery, component discovery, and component addressing methodology Publication service Component registration, re-registration, deregistration Query service Query methodology in order to identify components that provide required data consumption and/or functionality Subscription service Methodology to subscribe and unsubscribe to required data and/or functionality Software Architecture SPA Middleware Core Services cont. System status monitoring service Methodology to monitor overall SPA system status and provide appropriate response to SPA system anomalies SPA Middleware Core Libraries A Collection of commonly used SPA functions, constants, classes, utilities, etc that provide basic functionality to perform several SPA tasks Dynamically or statically linkable Software Architecture SPA Middleware Subnet Management Subnet management for multiple heterogeneous subnets. For example, SpaceWire (SM-S), USB (SM-U), I2C (SM-1), etc. Provides interoperability between different types of SPA subnets Example SPA System LS SPA PR1 SM-S CAS SM-L SM-U A2 A1 SM-L SPA PR3 A3 A3 SPA PR2 SM-S A4 SM-L SM-S SM-S SM-1 R1 R2 SPA Network SPA Router SPA Processor Resource SPA-S Device SPA Core Component SPA-U Device SPA Application SPA-1 Device R3 Software Architecture OSI Model SPA Model Application Applications & Devices Data, application-to-application communication Transport End-to-end connection and reliability Network SPA Messaging Interface Path determination and logical addressing SPA Subnet Managers Data Link SPA-X Protocols Physical addressing SPA-S, SPA-U, etc Physical I2C, USB, SpaceWire, Sockets Media, signal and binary transmission Software Architecture Platform Abstraction Library Abstracts OS and architecture differences Threading, semaphores, file I/O, timing, XML parsing, etc Code modifications needed to port to a specific OS should only happen inside this platform specific library SPA Application Programming Interface (API) Defines a standard programming interface which allows a software application to interoperate with other software applications or devices Could be used to abstract different PnP middleware implantations SPA Services Manager Computer-negotiated Interfaces Extended Transducer Electronic Data Sheet (xTEDS) Contains a complete interface description of a SPA component Component-specific service request Component-specific service request replies Commands Data messages eXtensible Markup Language (XML) based Schema controlled Common Data Dictionary A universal dictionary of terms, names, definitions, qualifiers, units, scales, formats, interfaces, etc. Available as a standard reference A living document Appliqué Sensor Interface Module (ASIM) Provides SPA interface to a legacy or simple device Pre-programmed to support SPA messaging, xTEDS registration, and Subscription/Publishing. SM-S (SpaceWire) ASIMs are currently available SM_U (USB), SM-1 (I^2C), and SM-C (CAN) ASIMs are currently being developed Validation - Component SPATS • Java GUI and core code • Suite of SpatsTests • Match SpatsTests to UUT Component Type • Each SpatsTest exercises set of protocols • SPATS verifies protocol content, sequence, and messages are correct Components to test as UUT SM-S SM-S ASIM / Component LS SM-U SM-U ASIM / Component SPA Application SM-1 SM-1 ASIM / Component CAS SM-L On System w IP With Hardware Support Use SPA Test Suite (SPATS) to validate SPA core components against Standards documents. SPATS will test each component in isolation (the Unit-Under-Test or UUT), simulating the non-UUT components in a protocol exchange Verifies protocols and message formats are followed Hardware support required for SM-X and SPA Device SPATS testing CubeFlow Tools Creating SPA software can be more complicated than creating traditional software. xTEDS – Not many people are used to handcrafting XML ASIM – ASIM protocol is a different way of thinking about embedded software PnP Flight Software using standard interface and data centric publish/subscribe paradigm CubeFlow tools automate many common SPA software development requirements Open source web based tool suite CubeFlow Tools xTEDS Developer Assists a user in creating and maintaining xTEDS through a UI without requiring full XML knowledge CubeFlow Tools ASIM Wizard Aids creation of ASIM code for supported platforms by generating the code templates that match the selected xTEDS CubeFlow Tools App Wizard Aids creation of SPA application templates that will utilize a given device kind, as specified through the selected xTEDS Common Data Dictionary Tool Common Data Dictionary (CDD) Tool Used to manage and define the Common Data Dictionary CubeFlow Training Courses & Development Kits SDL and COSMIAC have developed a training course including hardware / software to introduce SPA concepts Development kit contains all the items needed to develop xTEDs, ASIMs, and applications, and test their functionality CubeFlow Training Courses & Development Kits As of Dec 2010 there are 343 registered users on the CubeFlow site Over 500 individuals trained from 100+ organizations including: NASA Lockheed Boeing NRO ORS Universities