.. raw:: html A Component and Connector 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 present a ‘component and connector’ view of the Taranta Suite, showing its various parts and how they interact with each other and the outside world to deliver the required performance. The intended audience is anyone unfamiliar with the system who would like a rough but accurate outline of its shape and how it works. In particular, it may be useful to engineers joining the SKA software effort. Taranta Suite Component and Connection Diagram ---------------------------------------------- .. figure:: _static/img/taranta_suite_candc.png Taranta Suite Component Table ----------------------------- .. raw:: html
| Component .. raw:: html | .. raw:: htmlMultiplicity .. raw:: html | .. raw:: htmlDescription .. raw:: html | .. raw:: html
| traefik .. raw:: html | .. raw:: html1 .. raw:: html | .. raw:: htmlVariously described as an ‘ingress controller’, ‘reverse proxy’ or ‘router’. By parsing the structure of the address, it routes https traffic from the internet to the appropriate client in the Taranta Suite. .. raw:: html | .. raw:: html
| Taranta .. raw:: html | .. raw:: html1 .. raw:: html | .. raw:: html
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.
.. raw:: html
Pages are implemented in javascript and typescript. .. raw:: html |
.. raw:: html
| dashboards .. raw:: html | .. raw:: html0 to many. .. raw:: html | .. raw:: html
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.
.. raw:: html
‘dashboards’ is the component serving the database repository for dashboards that have been created. .. raw:: html |
.. raw:: html
| auth .. raw:: html | .. raw:: html1 .. raw:: html | .. raw:: htmlAuthentication server for validating users. Once authenticated a user token is shared with the other Taranta components, allowing them access. In particular, a token is shared with ‘mongodb’, allowing dashboards created by the user to be stored there. .. raw:: html | .. raw:: html
| mongodb .. raw:: html | .. raw:: html1 .. raw:: html | .. raw:: htmlThe database used by the ‘dashboards’ component to store the collection of dashboards associated with a particular user. Each dashboard is stored as a JSON document. .. raw:: html | .. raw:: html
| tangogql .. raw:: html | .. raw:: html1 to many, each attached to a different TANGO control system. .. raw:: html | .. raw:: html
This is a TANGO client connected to a particular TANGO control system,
specified by the TANGO_HOST:port passed to it at startup.
.. raw:: html
The component services https GraphQL queries to the attached TANGO system, finding and returning the values of the requested attributes etc. .. raw:: html In principle, multiple ‘tangogql’ servers could be present, addressed through ‘traefik’ by the TANGO system name - ‘testdb’ in the example diagram. .. raw:: html |
.. raw:: html
| TANGO control system .. raw:: html | .. raw:: html1 per TANGO system. .. raw:: html | .. raw:: html
This is the public point of contact between the outside world and a
TANGO system.
.. raw:: html
This name may be an alias for the term ‘database server’, which is given in general TANGO docs to a component that seems to perform the same service. .. raw:: html The TANGO control system and associated database are used by devices and clients to connect to the TANGO software bus for that system. Thereafter communication between TANGO components is direct, over the ‘software bus’. .. raw:: html |
.. raw:: html
| TANGO database .. raw:: html | .. raw:: html1 per TANGO system. .. raw:: html | .. raw:: html
The database used by the TANGO c.s. to store configuration information
for devices and clients. This is used to set up the network initially
and to connect components.
.. raw:: html
tangogql queries the database to gather information about the system. .. raw:: html |
.. raw:: html
| TANGO software bus .. raw:: html | .. raw:: html1 per TANGO system. .. raw:: html | .. raw:: htmlThe virtual ‘bus’ used for communication between devices and clients belonging to a TANGO system. .. raw:: html | .. raw:: html
| Tango devices .. raw:: html | .. raw:: html1 to many. .. raw:: html | .. raw:: htmlTango is the underlying control network for the SKA telescope, The critical hardware and software components of the telescope will be represented at some level by tango ‘devices’. .. raw:: html | .. raw:: html
| Connection .. raw:: html | .. raw:: htmlComponent 1 .. raw:: html | .. raw:: htmlComponent 2 .. raw:: html | .. raw:: htmlDescription .. raw:: html | .. raw:: html
| https .. raw:: html | .. raw:: html
Web browser
.. raw:: html
or .. raw:: html traefik .. raw:: html |
.. raw:: html
traefik
.. raw:: html
Taranta .. raw:: html auth .. raw:: html dashboards .. raw:: html tangogql .. raw:: html |
.. raw:: html
HyperText Transfer Protocol Secure. Communication between browsers and web app components. Different flavours of message are detected by ‘traefik’ and routed to the appropriate web app. .. raw:: html | .. raw:: html
| dashboards .. raw:: html | .. raw:: htmldashboards .. raw:: html | .. raw:: htmlmongodb .. raw:: html | .. raw:: htmlSQL descriptions of dashboards. .. raw:: html | .. raw:: html
| user token .. raw:: html | .. raw:: htmlauth .. raw:: html | .. raw:: htmlmongodb .. raw:: html | .. raw:: htmlUser token from ‘auth’ component, authorising them to store data in mongodb. .. raw:: html | .. raw:: html
| TANGO config .. raw:: html | .. raw:: htmlTANGO control system .. raw:: html | .. raw:: html
TANGO device
.. raw:: html
or .. raw:: html TANGO client (tangogql) .. raw:: html |
.. raw:: html
Configuration messages between TANGO control system, clients and devices. .. raw:: html | .. raw:: html
| TANGO data .. raw:: html | .. raw:: htmlTANGO device .. raw:: html | .. raw:: htmlTANGO client (tangogql) .. raw:: html | .. raw:: htmlDirect communication between components on the TANGO software bus. This takes the form of setting and querying attributes of the device or issuing commands. Devices can also issue Events (for instance when an attribute value changes). Tango devices can subscribe to the types of events they are interested in and will receive published events when they occur. .. raw:: html | .. raw:: html
| TANGO database .. raw:: html | .. raw:: htmlTANGO control system .. raw:: html | .. raw:: htmldatabase .. raw:: html | .. raw:: htmlData on the configuration of a TANGO system. .. raw:: html | .. raw:: html