Future Developments
The following projects are considered as follow-ups to the AOCS Framework
Project:
The first project started in February under phase II of the present contract
with ESA. It is described under the Real
Time Java Project web site. The second project was briefly started but then
suspended due to lack of funding. The other projects only exist as proposals.
Back to Top, Back
to Aocs Framework Project Home
Java Implementation
The version under development of the AOCS Framework is written in C++.
Java
is in many respects a better language for the this type of application
because it is simpler and safer, it includes a tasking model, and it offers
built-in support for components. Unfortunately, in its standard version,
Java is at present unsuitable for use in real-time applications. Additionally,
the interpreted nature of the language causes long execution times which
might be incompatible with the CPU-constrained environment of an on-board
processor.
Both these concerns are being addressed. On the one side, real-time
extensions of Java are currently under development that guarantee predictable
execution times and a stricter threading model. While on the other side,
pre-compilation techniques and processors implementing the Java Virtual
Machine promise to bring the performance of Java code in line with that
of languages like C or C++.
The objective of this follow-up project is to port the existing version
of the AOCS Framework to Java and then test it on a real-time Java platform.
One option under consideration at present is the use of the aJile
board that offers a hardware implementation of the JVM which includes one
of the most recent version of the experimental real-time API's of Java.
An alternative implementation option is the Jbed
system of Esmertec.
This activity is being pursed as part of the Real
Time Java Project.
Back to Top, Back
to Aocs Framework Project Home
Delegate Object Mechanism
Mainstream component middleware (CORBA or DCOM) is difficult or impossible to
use in distributed real-time applications because it does not guarantee timing
predictability. This project aims to develop a concept to allow framework
components to interact as if they resided within the same address space even
when they are located in different processes or in different CPUs while at the
same time preserving the timing predictability that is essential to real-time
applications. The objective is develop a middleware infrastructure that is
specifically optimized for the AOCS Framework.
This activity was briefly started in a dedicated
project but was then suspended.
Back to Top, Back
to Aocs Framework Project Home
Integration with Simulation
Environment
An AOCS application must undergo extensive testing before being deployed.
Realistic testing can only be done by running the AOCS software in a representative
hardware environment that reproduces the characteristics of the target
AOCS processor. This type of testing with hardware in the loop is however
very expensive and can only be done towards the end of the development
cycle of the software. In the early stages of the development process,
functional testing can be sufficient and would be best done in the same
all-software environment in which the AOCS application is being developed.
This project aims at complementing the AOCS framework with a simulation
framework that is designed to make it easy to perform functional tests
on an AOCS application by simulating the AOCS and its external environment
in open- and closed-loop. The testing framework will include hooks where
users can specify the models for the external environment and the type
of data monitoring and data logging that they wish to perform on the AOCS
under test. More information on the requirements of simulation framework
are given in a dedicated page.
Back to Top, Back
to Aocs Framework Project Home
Proba Flight Experiment
A framework is a tool to generate applications within a certain domain.
The AOCS prototype framework developed in phase I implemented the main
functionalities of an AOCS framework and was tested by using it to generate
a prototype AOCS. The prototype AOCS is a simplified AOCS.
This project aims at extending the prototype framework to become a full
AOCS framework and at using it to generate an AOCS software to be flight-tested
on Proba. Proba is a microsatellite
being developed by ESA as a technology demonstration mission. It is expected
to be launched in the second half of 2001.
Back to Top, Back
to Aocs Framework Project Home
CORBA Implementation
The version under development of the AOCS Framework is designed as a set
of components where the term component is used to designate a binary unit
of reuse implementing one or more interfaces. The framework prototype however
is not built upon a component infrastructure.
The objective of this follow-up project is to implement the AOCS framework
on the TAO system. TAO
is a real-time CORBA implementation.
See this example
for an illustration of the benefits of implementing the AOCS framework
on top of a component standard.
Back to Top, Back
to Aocs Framework Project Home
Real-Time IDL
Once the AOCS Framework is built upon a component infrastructure (such
as CORBA), the interfaces of the AOCS components will have to be specified
in a language like IDL. Existing versions of IDL, however, are inadequate
for real-time and mission-critical systems because in such systems interface
information should include timing and criticality data (at the very least).
Thus, a declaration of a method interface should include a specification
on the execution time of this method and when two components are plugged
together, a check should be performed that they are compatible not only
in terms of their signature but also in terms of their timing requirements
For instance, suppose component A needs a service from component B.
The interface of component A must specify what is the maximum time that
A is prepared to wait for its request to be serviced and the interface
of component B must specify what is the maximum time for the servicing
of the request. Plugging together of the two components should only be
allowed when the two timing specifications are compatible.
Because of the criticality of real-time systems, the interface of their
components should also specify some kind of access control. For instance,
a component should be able to specify that some of its methods are only
accessible from components of a certain type. Once again, plugging together
of components should only be allowed when the access control restrictions
are met.
The objective of this follow-up project is to develop a version of IDL
suitable for specification of interface of real-time components and to
test its implementation on a port of the AOCS Framework to an component
infrastructure.
Back to Top, Back
to Aocs Framework Project Home
Application to Other Systems
The AOCS Framework is being aimed at the Attitude
and Orbit Control Subsystem of satellites. However, many of the constructs
it proposes are of wider applicability. The framework, for instance, covers
functionalities like:
-
telemetry handling,
-
telecommand handling,
-
failure detection,
-
failure recovery,
-
sequential data processing,
-
reconfiguration management
Such functionalities are found in many (if not all) spacecraft subsystems.
Indeed, fucntionally similar concepts are found in most embedded control
systems.
The objective of this follow-up project is to exploit the structure
of the AOCS framework - which is built as a collection of lower-level entities
(the so-called framelets)
- to port it to other spacecraft subsystems or to other kinds of embedded
control systems.
Back to Top, Back
to Aocs Framework Project Home
Last updated on Feb. 5-th 2002 by Alessandro
Pasetti