TANGO (TAco Next Generation Objects) est un système de contrôle orienté objet, libre et ouvert, qui offre des outils pour le contrôle de tout type de matériel et de logiciel, constituant un système SCADA. Il est principalement utilisé pour le contrôle des accélérateurs de particules synchrotron, mais aussi pour d’autres expériences scientifiques et, en général, il peut être utilisé dans n’importe quel type de programme et/ou de machine en cours de développement actif par le consortium, composé de plusieurs instituts de recherche.
Il s’agit d’un système de contrôle distribué. Il fonctionne aussi bien sur une seule machine que sur des centaines de machines connectées. Tango utilise deux protocoles de communication : omniorb en tant qu’implémentation de CORBA comme protocole de réseau et Zeromq. La communication de base suit le modèle client-serveur. La communication entre les clients et les serveurs peut être synchrone, asynchrone ou événementielle. CORBA est utilisé pour la communication synchrone et asynchrone, tandis que Zeromq est utilisé pour la communication événementielle (depuis la version 8 du TANGO).
Il est basé sur le concept de l’orientation objet et de l’orientation service. Les modèles d’objets prennent en charge les méthodes, les attributs et les propriétés. Dans TANGO, tous les objets sont représentés par des dispositifs.
Serveurs de périphériques
Utilisés comme intergiciels pour fournir un accès à distance aux machines. La réponse de ces machines peut aller de simples bits d’entrée/sortie numériques à des systèmes de détection sophistiqués ou à des systèmes de contrôle complets. L’accès aux machines est programmé par le biais d’un processus appelé serveur de périphériques. Ce serveur de périphériques met en œuvre des classes de périphériques qui, à leur tour, mettent en œuvre l’accès réel à la machine. Au moment de l’exécution, le serveur de périphériques génère les périphériques qui sont la représentation logique des instances matérielles. Le client importe les dispositifs, via une base de données, et leur envoie des requêtes à l’aide du protocole TANGO. Ces dispositifs peuvent stocker en permanence les valeurs de configuration dans une base de données MySQL.
Licence
Il est distribué sous deux licences. Les bibliothèques sont sous licence GNU Lesser General Public License ou LGPL. Les outils et les serveurs de périphériques (sauf mention contraire) sont sous licence GNU General Public License ou GPL.
Open Source
Il s’agit d’un projet open source. Tout le monde peut télécharger et utiliser TANGO. Le code source est stocké dans deux dépôts subversion sur SourceForge.
Des modifications locales ou des corrections de bogues peuvent être apportées aux fichiers source, mais la soumission de modifications au dépôt nécessite une autorisation.
Projets utilisant TANGO
Une courte liste de projets utilisant Tango (en plus de ceux qui font partie du consortium) :
Consortium
Le consortium est le groupe d’institutions qui participent activement au développement de TANGO. Pour en faire partie, une institution doit signer le protocole d’accord (lien brisé disponible dans l’Internet Archive ; voir l’historique, la première et la dernière version) et soumettre activement des contributions au développement. Le consortium est actuellement composé des institutions suivantes :
L’objectif du consortium est d’assurer le développement de TANGO.
Références
Pour plus d’informations, il est fait référence aux publications suivantes :