Tango in a Nutshell 31/12/2018
Tango in a Nutshell What is Tango? Who dances the Tango? How to dance the Tango? 31/12/2018
What is Tango? A toolbox to implement control systems using CORBA as the transport layer A specialization of CORBA adapted to Control Hides the complexity of Corba to the programmer Adds specific control system features CORBA TANGO Control System 31/12/2018
CORBA Common Object Request Broker Architecture CORBA defines the ORB: a way to call an object “method” wherever the object is In the same process In another process In a process running somewhere on the network CORBA also defines services available for all objects (naming, notification, event) 31/12/2018
CORBA CORBA allows mixing languages: a client is not necessarily written in the same language as the server CORBA uses an Interface Definition Language (IDL) CORBA defines bindings between IDL and the computing languages (C++, Java, Python, Ada, ….) 31/12/2018
Tango and CORBA Tango encapsulates the CORBA communication protocol Allows the use of other communiction protocols Tango uses a narrow CORBA interface All objects on the network have the same interface Allows the use of generic applications Avoids recompilation when new objects are added 31/12/2018
What is Tango? A software bus for distributed objects Java, C++,Python Linux, Windows, Solaris Scan Service TANGO ATK Java Qtango C++ Archiving Service TANGO Software Bus Dev Dev Dev Dev Dev Dev Dev OPC Linux, Windows, Solaris Labview RT 31/12/2018
What is Tango? Provides an unified interface to devices (objects) on the network hiding how they are connected to a computer (serial line, USB, sockets, …) Hides the network Location transparency Genericity APIs for C++, Python and Java For the server and the client side 31/12/2018
What is Tango? More than only a software bus Database for persistancy Code generator to implement networked devices Central services (Archive, snapshots, logging, alarms, scans, security, …) Application Toolkits (Java, C++ and Python) Comercial bindings (Labview, Matlab, IgorPro) Control system administration (Starter, Astor) Hundrets of available classes Web interfaces (PHP, Java) 31/12/2018
Who dances the Tango? 2007 2002 2004 2000 ALBA 31/12/2018 2005
Who dances the Tango? Tango@Elettra Used for accelerator control Development of The Python interface (Release 2.x) An alarm service Canone: A WEB interface using PHP E-Giga: A WEB interface above the Tango archiving service QTango: C++ application toolkit using Qt 31/12/2018
Who dances the Tango? Tango @ Soleil Used for accelerator and experiment control Development of Logging service Archiving service (Tango HDB) using ORACLE or MySQL Snapshot service also using ORACLE or MySQL Comercial bindings (Labview, Matlab, …) WEB protocol for the java application toolkit (ATK) 31/12/2018
Who dances the Tango? Tango @ Alba Tango@DESY Used for accelerator and experiment control Development of Python device servers (PyTango release 3.x) Sardana: Control software for experiments Python application toolkit using Qt Tango@DESY Used for experiment control at the new PETRAIII synchrotron 31/12/2018
Who dances the Tango? Tango @ ESRF Used for accelerator and experiment control Development of The Tango core libraries (C++ and Java) Pogo : Code generator Jive : Configuration tool Astor / Starter : administration service Java application toolkit 31/12/2018
How to dance the Tango? Lets dance together: Two collaboration meetings per year A mailing list (tango@esrf.fr) One Tango coordinator per site WEB site to download code, get documentation, search the mailing list history, read collaboration meeting minutes, … http://www.tango-controls.org Collaborative development using SourceForge 31/12/2018
How to dance the Tango? You can download Tango from http://www.tango-controls.org/download As a source package for UNIX like OS As a Windows binary distribution For Unix (and co), do not forget to first download, compile and install omniORB omniNotify For Windows all libraries and binaries for omniORB and omniNotify are included in the distribution. 31/12/2018
How to dance the Tango? A list of all Tango classes is available with their documentation under http://www.tango-controls.org/device-servers Common interest class sources are stored on a CVS server hosted by SourceForge Project name = tango-ds http://sourceforge.net/projects/tango-ds/ Local class sources are stored in a local CVS repository at each institute 31/12/2018