sois at design net approaching reusability in flight software

26
SOIS at Design Net Approaching Reusability in Flight Software

Upload: isaac-pierce

Post on 02-Jan-2016

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SOIS at Design Net Approaching Reusability in Flight Software

SOIS at Design Net

Approaching Reusability in Flight Software

Page 2: SOIS at Design Net Approaching Reusability in Flight Software

Content

• The SOIS Implementation for NRL• Supporting Reusability in SOIS• Acknowledgements

Page 3: SOIS at Design Net Approaching Reusability in Flight Software

SOIS Implementation for NRLFlight Software Standards Testbed

• Platform• TAS• FAS• Issues Discovered in Implementation

Page 4: SOIS at Design Net Approaching Reusability in Flight Software

SOIS Implementation PlatformFunction Technology

Transfer and Subnetwork Layers, approximately

Satellite Data Model

Flight Network Hardware Spacewire

Simulation of Flight and Operations Spacecraft Dynamic Tool

Flight Operating System uClinux

Flight Processor Microblaze in Xilinx FPGA

Programming Language C++

Preliminary Development Environment Windows, POSIX

Page 5: SOIS at Design Net Approaching Reusability in Flight Software

Time Access Service

We implemented the following capabilities.• Wall Clock• Alarm Clock• Metronome

Page 6: SOIS at Design Net Approaching Reusability in Flight Software

File Access Service

We implemented the following capabilities.• Open File• Close File• Read From File• Write To FileWe expect to implement others as needed.

Page 7: SOIS at Design Net Approaching Reusability in Flight Software

Issues Discovered in Implementation

These issues may have already been discussed and resolved in this community; if so, we can move through these slides quickly.

• Blocking• Management of lifetime of indication objects• Management of lifetime of data buffers

Page 8: SOIS at Design Net Approaching Reusability in Flight Software

Blocking

• We assumed that the standard SOIS FAS interface should block.

• We added a non-blocking alternative to the standard SOIS FAS interface.

Page 9: SOIS at Design Net Approaching Reusability in Flight Software

Lifetime of FAS Indication Objects

• The indication objects returned by FAS might have one of the following lifetimes:– Owned by FAS, and overwritten sometime– Created by FAS, and deleted by application– Created by application and deleted by application

• We implemented the third option above by adding a parameter to every FAS method, in which the application provides an indication object.

Page 10: SOIS at Design Net Approaching Reusability in Flight Software

Lifetime of Data Buffers

• The data buffers returned by the standard interface might have one of the following lifetimes:– Owned by FAS, and overwritten sometime– Created by FAS, and deleted by application– Created by application and deleted by application– Imbedded in indication object

• We added a method for applications to specify a read-buffer, implementing the third lifetime above.

• If an application does not supply a read-buffer, the second lifetime above applies.

Page 11: SOIS at Design Net Approaching Reusability in Flight Software

What is Reusability?

• When a reusable component joins an assembly, it is able to exchange services with the other components in the assembly.

• Modification of a reusable component is unnecessary when adding it to an assembly.

Page 12: SOIS at Design Net Approaching Reusability in Flight Software

Benefits of Reusability

• Reduce time to launch.• Reduce cost to launch.• Improve reliability in routine missions.• This is a principle to guide the implementation

of plug-and-play discovery in SOIS.

Page 13: SOIS at Design Net Approaching Reusability in Flight Software

Obstacles to Reusability• Differences in content of similar data messages among different devices and

diachronically– such as the number and locations of thermistors reporting housekeeping data in a device

• Reorganization of device boundaries– such as the development of star trackers that produce angular rates, while some star trackers only provide

direction• Differences in implementation of protocols

– such as a device that receives a mode byte that includes “on” and “off” states, compared to a device that responds to an “on” command and an “off” command.

• Difficulty of adapting to differing qualities of service– Timing of delivery of data– Accuracy and precision of measurements

• Implementation of system-level concepts– Mission operations– Restrictions on spacecraft attitude (keep-out zones)

• Inadequate coordination among designers– This issue appears as a longing for logical design and concise documentation; each designer seems to have a

different language.– We agree with the SOIS principle, that a standard interface will provide a common language for coordination

of designers.• Add to this list any of the reasons why we must call on the services of engineers to

rework components before they can interoperate.

Page 14: SOIS at Design Net Approaching Reusability in Flight Software

Strategy to Implement Reusability• Abstraction: Design both devices and software applications as peer

endpoints of data transfer in a self-assembling distributable processing network*.

• Metadata: Associated with each endpoint are metadata that describe the semantics of the data that the endpoint can publish, and of the data that the endpoint can usefully consume.

• Quality of Service: Endpoints establish mutual sessions for the exchange of data in a spacecraft, using mutually compatible protocols. Consumers of data choose providers based on quality of service.

• Standard Semantics: Definitions of data semantics and protocols reside in a public repository, where they may be used by developers of new endpoints that can communicate with any old endpoints.

* See next slide for a definition of this expression.

Page 15: SOIS at Design Net Approaching Reusability in Flight Software

Self-Assembling Distributable Network

• The term “self-assembling” refers to the formation of a system through autonomous session building among endpoints. The principle that guides the assembly is the data that ultimately will flow between endpoints.

• The term “distributable” refers to an architecture in which a collection of endpoints adapts dynamically to distribute work across the suite of processors available on a spacecraft, including the processors that represent hardware devices.

• Build on the present SOIS architecture, which abstracts the complexities of data transfer mechanisms.

• Use virtualized devices to make both devices and software applications peer endpoints of data transfer.

Page 16: SOIS at Design Net Approaching Reusability in Flight Software

Metadata

• Discovery: A consuming endpoint identifies endpoints that publish the data variables that it uses on board a particular spacecraft.

• Selection: A consuming endpoint chooses one or more publishers.

• Message Building: The publisher endpoints define messages to package variables with similar schedules.

• Session Protocols: The session protocols coordinate delivery of variables.

Page 17: SOIS at Design Net Approaching Reusability in Flight Software

Session Building: Flight Segment• During flight, endpoints communicate through a data virtualization

wrapper. Inside the wrapper, the endpoint logic reads and writes variables from and to local memory, receiving notification events when variables change value. The wrapper satisfies the endpoint’s need to receive data and its responsibility to publish data, as described in its metadata.

• The data virtualization wrappers of consuming endpoints retrieve from a “dance card” file their matching publisher endpoints. The consuming endpoint wrappers may form a session with the publisher endpoint wrappers of their choice, using mutually supported protocols.

• A network application answers the question of quality of service that is available between two endpoints, so consuming endpoint wrappers may select a publisher according to quality of service.

• The “dance card” file may be extended during flight, if reconfiguration of the spacecraft is needed on the launch pad or in flight. (software upload, docking, or spacewalk upgrade)

Page 18: SOIS at Design Net Approaching Reusability in Flight Software

Session Building: Ground Segment• A ground-resident database stores a collection of

metadata describing spacecraft endpoints and their semantics.

• On the ground before a mission, a design tool plans the connection of mission devices (payload and other special sensors) to a spacecraft bus. The design tool assures that for each item of data used by a consumer endpoint on a spacecraft there is a producer endpoint for that data.

• The design tool generates a file of pairs of potential producer and consumer endpoints, to be loaded into the spacecraft along with flight software. Call this the “dance card” file.

Page 19: SOIS at Design Net Approaching Reusability in Flight Software

Session Building Diagram

EndpointData

Suppliers

EndpointData

Suppliers

EndpointDataSheet

EndpointDataSheet

GroundRepository

of Endpoints

FlightEndpoints

EndpointDesigner

EndpointDataSheet

FlightPreprocessor

EndpointData

Suppliers

Endpoint(payload)

Endpoint(subsystem)

Flight

GroundSe

ssion

Page 20: SOIS at Design Net Approaching Reusability in Flight Software

How Endpoints Find Data

20

Consumer/PublisherMatchingAlgorithm

SOISApplication

SupportLayer

Repository

EndpointInterfaceDesigner

Forms inEndpoint

DataSheet

EndpointData

Suppliers

EndpointAlgorithm

EndpointAlgorithmDesigner

Consumer/PublisherMatchingAlgorithm

Form Kind,Form Name

Form Name,Variable

Form

Form, Variable

Publisher,Message,Variable

Publisher,Message,Variable

Variable

Treatmentof VariableVariable

Command &Data Acquisition

Service

Contentof Variable

Flight

Ground

Page 21: SOIS at Design Net Approaching Reusability in Flight Software

Acknowledgements

• Much of the technology in this presentation is based on prior work of the PnPSat development team, under the direction of Don Fronterhouse, toward the development of reusable subsystems and components for PnPSat.

• The SOIS application programming interface is based on the recent standards documents.

Page 22: SOIS at Design Net Approaching Reusability in Flight Software

TANGENTIAL TOPICS

Page 23: SOIS at Design Net Approaching Reusability in Flight Software

Class Structure

Diagnosable

Executable

Endpoint

SOIS TAS SOIS FAS

litexml

Payload Agent

Metadata classes

Page 24: SOIS at Design Net Approaching Reusability in Flight Software

Data Virtualization Wrapper

• Execution Pattern• Event Handlers• Interpretation of Endpoint Metadata• Access to Application Support Layer

Page 25: SOIS at Design Net Approaching Reusability in Flight Software

Execution Pattern

Variables in Memory

Event-Driven Behaviors

Before Cycles

After Cycles

Analysis

Publication

Page 26: SOIS at Design Net Approaching Reusability in Flight Software

Asynchronous SOIS• Situation: SOIS FAS operations fit

into sequential program logic.• Challenge: Events in distributed

processing may occur in a variety of sequences.

• Adaptation: Separate the events from the program sequence. Represent program sequence declaratively in a state machine. Implement sequential logic by reading state machine.

Start Operation 1

Start Operation 2

Operation 1

Operation 2

Store results.

Operation 1 Done

What is next?