A Module View Of Taranta Suite

Introduction

‘Taranta Suite’ is the name given to a collection of software that will be used to design and build simple engineering web-based user interfaces for the SKA. These will allow the state of the software and hardware devices that make up the telescope to be viewed and let the user send them commands.

The purpose of this document is to show how the key elements of the Taranta Suite are mapped to modules and subsystems. The module architecture view shows the structure of the modules and submodules and how system responsibilities are partitioned across them.

In this view, we show dependency relationships and ‘uses’ relationships between packages. In the below diagram, we can see Taranta package is dependent on react, redux-saga and jsonwebtoken libraries. Similarly, other components (Taranta dashboard, Taranta auth and tangogql) and their dependency relationships on other packages have been shown in the diagrams respectively.

Taranta Suite - Front End Module View Diagram

_images/taranta_suite_module_view_front_end.png

Taranta Suite - TangoGQL Module View Diagram

_images/taranta_suite_module_view_back_end.png

Taranta Suite Package Table

Name

Description

Taranta

Taranta is a React client that permits to explore Tango devices and to create custom dashboards, using a collection of widgets.

Taranta auth

Taranta uses taranta-auth to manage users. taranta-auth access mongo DB to retrieve user information.

Taranta dashboards

A ‘dashboard’ is a user interface giving access to devices in the TANGO control system. A user can create multiple dashboards for different purposes and is able to name and share them with other users of the system. The dashboards created by the user into the system, are stored in a MongoDB database through Taranta dashboard application.

shared

Shared contains the components of the Taranta application that are used by both dashboard and jive.

react framework

A React-based web app supplying pages for creation and editing of dashboard UIs that display/interact with devices in an attached TANGO control system.

jsonwebtoken

This is a library that implements the ‘JSON Web Token’ standard for signing and securely transmitting information between parties as a JSON object. It is used for reading and updating the user token passed between the different applications of the Taranta suite.

redux

Redux provides a shared state model used by the components of the Taranta application.

redux-saga

Redux-sagas provide an asynchronous mechanism for updating shared state provided by redux.

mongoose

Library used for communicating with the MongoDB to query the database and to store and retrieve the dashboards for a given user.

passport

A third party authentication framework used to allow the Taranta auth component to be easily hooked into a range of existing authentication models and tools. At the moment it is only really used for MaxIVs authentication via their LDAP server.

express

Express is the lightweight javascript based framework. We use to serve Taranta dashboards and taranta-auth web services.

tangogql

This is a TANGO client connected to a particular TANGO control system. The component services https GraphQL queries to the attached TANGO system, finding and returning the values of the requested attributes etc.

static

Static is the javascript, HTML and CSS that provides the GraphQL interface provided by TangoGQL.

aiohttp

HTTP server for Python, used to run the server and provide endpoints.

graphene

A GraphQL implementation in python used to create GraphQL servers.

Graphene maps the GraphQL schema to a number of ‘endpoints’. Each endpoint contains the Python code to fulfil a particular type of GraphQL request. The data structures returned map to the structures within the schema. It gives direct access to write GraphQL queries through the TangoGQL application.

pytango

It is used for querying the Tango database at TANGO_HOST.