Release Notes¶
Summary¶
This release includes the following artefacts:
RTC Toolkit (
rtctk) - v0.1.0-alpha
And depends on the following:
ELT Development Environment (
ELT DevEnv) - v3.1.5 or v2.2.5Middleware Abstraction Layer (
CII MAL) - v1.2.0 or v1.1.0Application Framework (
rad) - v2.1.0Test Framework (
etr) - v3.0.0-alphaRoadrunner (
numappandipcq) - v0.1.0-alpha
What is the purpose of this release?¶
The purpose of the RTC Toolkit alpha release is to provide a very early preview to users to
get a feeling how the RTC Toolkit, its modules and APIs will look like
get familiar with core concepts, technologies and workflows
give them preliminary tools to carry out early prototyping activities
facilitate an early feedback from developers to correct issues and modify the design as early as possible.
What is the scope of this version?¶
To provide an early preview of the toolkit functionality this release only covers a fraction of the full RTC Toolkit functionality.
Artefacts already delivered previously are depicted with a green frame, artefacts delivered with this alpha release are depicted with an orange frame. Since they do not yet cover the complete, final functionality, they will not be displayed as “green” at the moment.
The most important features of this release are:
Component Framework¶
RTC Component
Logging
Runtime Repository
Service Discovery
Reusable Components¶
RTC Supervisor
Telemetry Republisher
Telemetry Subscriber
Data Task libraries
Examples and Tutorials¶
Creating a bare RTC Component
Customising individual components
Creating a minimalistic SRTC system
Creating a distributed minimalistic SRTC system
Other Features¶
CUDA support in waf
Manual script-based deployment
Use of
roadrunnerlibrariesSupporting Tools (for testing and troubleshooting)
Unit and Integration testing (using gtest and etr)
Documentation¶
User’s manual (using sphinx)
API documentation (using doxygen)
Limitations and Constraints¶
This alpha version is merely a show and tell with very limited functionality to demonstrate basic behaviour. The main focus was put on the development of basic building blocks and components that allow to showcase how a simple Telemetry Data Path can concretely be implemented.
No backward compatibility will be guaranteed for this alpha release, so braking changes will happen
Because at the moment of the release not all of the underlying SW infrastructure is available e.g. deployment, and Core Integration Infrastructure (CII) is not fully functional yet, many of the services (e.g. deployment, configuration, logging, error handling, ..) had to be faked. This will be corrected in future versions as the underlying infrastructure and CII matures. Currently only CII MAL is used from CII.
Since the alpha release is only intended to demonstrate very basic behaviour, it wont be optimised for performance
For the same reason integration into a larger system is also not possible yet
Disclaimer
As it is handled of alpha pre-release ESO does not warrant that the provided functions of the RTC toolkit will meet all requirements or that the operation of the components and libraries will be flawless.
ESO does not ensure that solutions included in pre-release version of RTC Toolkit are not subject to changes in future releases. The future upgrade to newer versions of ICS Framework, Core Integration Infrastructure (CII) and adaptation to CCS development standards may introduce significant modifications to the actual interfaces and services.
While every precaution has been taken in the development of the RTC Toolkit software and in the preparation of the documentation, ESO assumes no responsibility for errors or omissions, or for damage resulting from the use of the software or of the information contained in the documentation.
Note
The RTC Toolkit is distributed outside ESO for the development of applications related to the ELT Project and ruled by the “General Conditions of ESO Contracts”. Any other use is not permitted without prior authorization from ESO.
The rights of third party products, whose software is for convenience included in the development environment, are ruled by their copyright notice included in their software.
Dependencies¶
Development Environment ELT DevEnv¶
The E-ELT Linux Development Environment (DevEnv) comprises a collection of hardware, software procedures and tools for the developing, testing and debugging of software components for the ELT. It has to support large-scale and long-term maintenance of software.
Further information regarding the ELT Development Environment can be found here:
Deployment¶
The ELT standard tools for deployment (which is the action of activating or deactivating software
processes on remote server hardware) will be based on Nomand and Consul. Once these tools
are readily integrated into the ELT software ecosystem the RTC Toolkit will make use of them.
Until then, the RTC Toolkit uses shell scripts to facilitate deployment in a very simple
way. These scripts prepare the environment and bring up the respective applications with the
required command line arguments.
Similarly a fake service discovery mechanism was introduced to provide rudimentary support for name service (see Service Discovery).
Core Integration Infrastructure CII¶
The RTC Toolkit makes use of the CII MAL (Middleware Abstraction Layer) for non-time-critical inter component messaging. The two main mechanisms used are request/reply and publish/subscribe.
In the future other CII products will be used as well.
RTI Connext DDS dds¶
RTI Connext DDS is a commercial implementation of OMG’s Data Distribution Service (DDS) a middleware framework standard for data exchanges using a publish–subscribe pattern. It is used in the RTC Toolkit for reliable multicast telemetry data transfer, in particular between Telemetry Republisher and Telemetry Subscriber components.
Rapid Application Development rad¶
The rad application framework is an ESO software product that enables the development of
event-driven applications for the ELT. It is based on call-backs or state machines.
At present, the RTC Toolkit mainly uses rad to realise its state machines and internal
event handling. More details rad can be found in its user manual.
Extensible Test Runner etr¶
The RTC Toolkit makes use of the extensible test runner etr for integration testing.
The following features are available:
Run Robot Framework tests with the robot plugin.
Request test resources with the resources plugin.
Modify template files with Jinja2 template engine and the jinja2 plugin.
Deploy software with Nomad with the nomad plugin (experimental support).
For details see the etr User Manual.
Roadrunner¶
Roadrunner is a project containing independent and reusable C++ libraries for high performance applications. RTC Tk uses the shared memory library ipcq and NUMA++ which is a library to help simplify application of NUMA policies. It is essentially a set of APIs to interact with libnuma and certain pthread APIs to control memory policy, CPU affinity and scheduler. For details see the documentation provided for each roadrunner component.
