Skip to content

SCOS Architecture

Anthony Romaniello edited this page Mar 27, 2024 · 1 revision

🚧 Under Construction 🚧

This Wiki is currently being developed.

Please refer to the README for information about SCOS Sensor in the meantime.


When deploying equipment remotely, the robustness and security of software is a prime concern. SCOS Sensor sits on top of a popular open-source framework, which provides out-of-the-box protection against cross site scripting (XSS), cross site request forgery (CSRF), SQL injection, and clickjacking attacks, and also enforces SSL/HTTPS (traffic encryption), host header validation, and user session security.

SCOS Sensor uses an open source software stack that should be comfortable for developers familiar with Python.

  • Persistent metadata is stored on disk in a relational database, and measurement data is stored in files on disk.
  • A scheduler thread running in a Gunicorn worker process periodically reads the schedule from the database and performs the associated actions.
  • A website and JSON RESTful API using Django REST framework is served over HTTPS via NGINX, a high-performance web server. These provide easy administration over the sensor.

SCOS Sensor Architecture Diagram

A functioning sensor utilizes software from at least three different GitHub repositories. As shown below, the scos-sensor repository integrates everything together as a functioning SCOS Sensor and provides the code for the user interface, scheduling, and the storage and retrieval of schedules and acquisitions. The scos-actions repository provides the core actions API, defines the signal analyzer interface that provides an abstraction for all signal analyzers, and provides basic actions. Finally, using a real signal analyzer within scos-sensor requires a third scos-<signal analyzer> repository that provides the signal analyzer specific implementation of the signal analyzer interface where <signal analyzer> is replaced with the name of the signal analyzer, e.g. a USRP scos-sensor utilizes the scos-usrp repository. The signal analyzer specific implementation of the signal analyzer interface may expose additional properties of the signal analyzer to support signal analyzer specific capabilities and the repository may also provide additional signal analyzer specific actions.

SCOS Sensor Modules