TANGO (TAco Next Generation Objects)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:36, 20 апреля 2017.
TANGO
Logo tangocontrols.png
Разработчики: TANGO Consortium
Выпущена: 19 апреля 2001
Операционная система: Кросс-платформенное
Лицензия: GNU LGPL
GNU GPL
Веб-сайт tango-controls.org

TANGO (от англ. TAco Next Generation Objects) - свободная объектно-ориентированная система, основанная на CORBA, предназначенная для управления ускорителями, экспериментальными установками а также различным оборудованием и программным обеспечением. Система TANGO активно разрабатывается сообществом (в основном) операторов синхротронов[1].

Введение

TANGO — распределенная система управления. Она может работать как на одной, так и на сотнях машин. TANGO использует omniorb реализацию CORBA в качестве сетевого протокола. Основной моделью взаимодействия является модель клиент-сервер. Взаимодействие между клиентами и серверами может быть синхронным, асинхронным, либо событийно-ориентированным.

TANGO основана на принципах объектной и сервисной ориентированности. Объектная модель TANGO поддерживает методы, атрибуты и свойства. В TANGO все объекты являются представлениями устройств.

В состав TANGO входят база данных, в которой хранятся все зарегистрированные в системе устройства, среда быстрой разработки приложений, а также большое число вспомогательных инструментов[2].

Философия TANGO

Считалось, что CORBA как основа для системы управления - недостаточное программное обеспечение, так как она - это, прежде всего, способ определения объектов и доступа к ним, т. е. в частности, она не решает конкретно задачу системы управления. Потому было решено создать TANGO, хотя и основанное на CORBA, но все же значительно отличающееся. В целом, философия TANGO представляет собой:

  1. Один тип сетевого объекта - все объекты управления относятся к типу Устройства (Device type). Это означает необходимость только одного файла IDL и типа объектов для поддержки. Все объекты управления будут наследованы от типа Device. Это гарантирует, что все объекты будут поддерживать один и тот же базовый интерфейс и функциональность. Поддержка нескольких версий объекта Device будет добавлена ​​путем создания новых версий устройства, например, Device 2.
  2. Сокрытие деталей разработки CORBA от программистов - системным программистам нужно знать только об их конкретной части системы, а не о деталях сетевого программирования. Это достигается путем предоставления программистам шаблона Device для реализации новых классов управления. Клиенты получают доступ к сетевым объектам через API, который обертывает специальные функции CORBA, необходимые для создания и поддержания соединения с сервером.
  3. Поддержка парадигм связи системы управления - это означает обеспечение синхронной, асинхронной и основанной на событиях коммуникации.
  4. Простота и универсальность - предпочтение было отдано простоте и общности, чтобы сохранить TANGO применимым к широкому спектру проблем и масштабируемости. Специфика реализуется на уровне Device путем получения нового объекта управления и его реализации на сервере устройств, например, ccd-камера или устройство для вставки.
  5. Использование только свободно доступного программного обеспечения - для работы с внешними группами были исключены дорогостоящие коммерческие ORB и базы данных.

Основные компоненты TANGO

JIVE

Ядро TANGO

Средства разработки и развертывания приложений

JIVE

JIVE (англ. JIVE — независимое Java приложение созданное для просмотра и редактирования базы данных TANGO. JIVE написан на Swing и для его запуска требуется виртуальная машина Java версии выше 1.4.0.

POGO — генератор кода для серверов устройств TANGO

POGO

Средства запуска и управления системой TANGO

Astor/Starter Astor- это программный менеджер для системы TANGO. Astor может:

  • Управлять хостами;
  • Запускать/Останавливать сервера устройств;
  • Посылать простые команды серверу устройства.

Архивирование

Система TANGO также содержит встроенную систему архивировоания, использующую либо MySQL либо Oracle. Система архивирования позволяет сохранять необходимые вам данные, поступающие от устройств.

Сервера устройств

TANGO в первую очередь используется, чтобы предоставить доступ к оборудованию по локальной сети. При этом диапазон оборудования может меняться от простейших регистров ввода вывода, пересылающих отдельные байты, до сложнейших детекторных систем, или даже целых систем управления заводом. Доступ к оборудованию программируется в процессах, называемых Сервер устройства (англ. Device Server). Сервер устройства реализует классы, обеспечивающие доступ к оборудованию. В процессе работы сервер устройства создает экземпляры устройств, отображающие логические сущности компонент оборудования. Клиент взаимодействует с устройствами, используя TANGO протокол.

Лицензия

TANGO распространяется под двумя лицензиями. Библиотеки лицензируются в соответствии с GNU Lesser General Public License (LGPL). Средства разработки и сервера устройств лицензируются по лицензии GNU General Public License (GPL).

Кроссплатформенность

TANGO поддерживает 4 платформы на данный момент: Linux, Windows NT, Solaris и HP-UX. Все функции TANGO поддерживаются на этих платформах. Это означает, что серверы устройств, база данных и клиенты могут работать на всех платформах. Frontend запускают на Linux (на VME или ПК) или Windows (на ПК). Сами клиенты работают на ПК, на рабочих станциях или серверах. [3].

В таблице представлены показатели производительности TANGO, измеренные на Windows/NT на Pentium III @ 450 МГц, Linux на Pentium 200 МГц, HP-UX на HP9000/735, Solaris на UltraSparc 1, сеть была Ethernet 10baseT. Обратите внимание, что приведенные здесь времена передачи представляют собой минимальные накладные расходы для запуска действия, время для выполнения действия на сервере не учтено.

От кого - кому Платформа Объем передачи Время
client - device Win/NT 8 байт 0,9 мс
client - device Linux 8 байт 1,7 мс
client - device HP-UX 8 байт 3,0 мс
client - device Solaris 8 байт 3,7 мс
client - device Linux 1 Мбайт 1,5 с
build connection Linux 1 устройство 10,0 мс

Консорциум

Консорциум — это группа институтов, активно разрабатывающих TANGO. Чтобы присоединиться к консорциуму институт должен подписать Меморандум и активно принимать участие в разработке TANGO. В настоящее время консорциум состоит из следующих институтов:

  1. ESRF — Европейский центр синхротронного излучения, Гренобль, Франция
  2. SOLEIL — Синхротрон Soleil, Париж, Франция
  3. ELETTRA — Синхротрон Elettra, Триест, Италия
  4. ALBA — Синхротрон Alba, Барселона, Испания
  5. DESY — Синхротрон Petra III, Гамбург, Германия

Примеры TANGO устройств

Примеры серверов устройств TANGO варьируются от простых цифровых I/O устройств, устройств последовательных линий, шаговых двигателей, до ccd-камеры и plc-подсистем. Первыми серверами устройств TANGO были контроллер шагового двигателя Oregon для VME и ПК/104 в Linux, сервер последовательных устройств для ПК/104 или ПК под управлением Linux и сервер устройств OPC5 для обмена данными с ПЛК от Windows.

Примечания

  1. TANGO [Электронный ресурс] : Материал из Википедии — свободной энциклопедии: — Режим доступа: https://ru.wikipedia.org/wiki/TANGO
  2. TANGO source code release version 8.1.2 - README (06/2013) [Электронный ресурс] : Материал из http://ftp.esrf.fr/: — Режим доступа: http://ftp.esrf.fr/pub/cs/tango/README.8.1.2.txt
  3. TANGO - an object oriented control system based on CORBA [Электронный ресурс]: Материал с сайта разработчика: — Режим доступа: http://www.tango-controls.org/media/filer_public/06/8e/068ea5a4-bc16-49a6-a202-a451ad45eca3/tango_an_object_oriented_control_system_based_on_corba.pdf