Experiences in Adopting Real-Time Java for Flight-Like Software [chapter]

Edward G. Benowitz, Albert F. Niessner
<span title="">2003</span> <i title="Springer Berlin Heidelberg"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/2w3awgokqne6te4nvlofavy5a4" style="color: black;">Lecture Notes in Computer Science</a> </i> &nbsp;
Ahtruct-This work involves developing representative mission-critical spacecraft software using the Real-Time Specification for Java(RTSJ) [l]. Utilizing a real mission design, this work leverages the original flight code from NASA's Deep Space l(DSl), which flew in 1998. However, instead of performing a lineby-line port, the code is re-architected in pure Javam, using best practices in Object-Oriented(00) design. We have successfully demonstrated a portion of the spacecraft attitude control
more &raquo; ... fault protection, running on a standard Java platform, and are currently in the process of taking advantage of the features provided by the RTSJ. In particular, we are focusing on interaction with RTSJ's scheduling and memory area frameworks. Our goal is to run on flight-like hardware, in closed-loop with the original spacecraft dynamics simulation. In re-designing the software from the original C code, we have adopted 00 techniques for flight software development. Specifically, we have taken advantage of design patterns[71, and have seen a strong mapping from certain patterns to the flight software. To ensure the correctness of measurement units, numerical computations are performed via an abstraction layer that checks measurement units at compile-time. Our approach places an emphasis on pluggable technology. Interfaces, in conjunction with a facade pattern, expose only the behavior of a subsystem, rather than exposing its implementation details. Since the RTSJ reference implementation does not currently support debugging, we chose to apply pluggable technology to the scheduler and memory allocation interfaces. Thus, realtime client code can be run on a standard Java virtual machine, allowing the code to be debugged in a graphical development environment on a desktop PC at the cost of decreased real-time performance. Once non-real-time issues have been debugged, the real-time aspects can be debugged in isolation on an RTSJcompliant virtual machine.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/978-3-540-39962-9_54">doi:10.1007/978-3-540-39962-9_54</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/24qoazdwx5cybpqu6fkfvwekmu">fatcat:24qoazdwx5cybpqu6fkfvwekmu</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170922091529/https://trs.jpl.nasa.gov/bitstream/handle/2014/7695/03-1885.pdf?sequence=1" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/12/0d/120d10099200b735803e51477a9eaa16a3285eb5.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/978-3-540-39962-9_54"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> springer.com </button> </a>