tango v8 - cernaccelconf.web.cern.ch/accelconf/icalepcs2013/talks/tucocb10_talk.pdf · icalepcs...

17

Upload: dinhdat

Post on 30-Jan-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged
Page 2: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 2

TANGO V8 ANOTHER TURBO CHARGED

MAJOR RELEASE • What is Tango • Event System • Java Device Servers • Tango Mobile • Embedding Tango • Tango V9

Page 3: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

What is Tango

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 3

Page 4: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

What is Tango

• A software bus for distributed objects

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 4

Java, C++,Python Linux, Windows

Dev Dev Dev Dev Dev Dev

Archiving Service

TANGO Software Bus

OPC

Dev

GUI ATK

(Java)

GUI Taurus

(Python)

Scan Service

Linux, Windows

GUI Qtango (C++)

Java, C++,Python

Page 5: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

What is Tango

• Graphical interface and state machine design

• Code generation: C++, Java and Python

• Editing and code re-generation

• Fast development cycle

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 5

Page 6: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

What is Tango

• GUI frameworks for C++, Python and Java • Synoptic editor

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 6

Page 7: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

What is Tango

• Administration and survey system • Graphical system configuration

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 7

Page 8: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Event System

• Was based on CORBA notification service • External notification daemon running on each host • Two network hops

• Today based on ØMQ: C++ ØMQ library and jzmq • Integrated in the device server process • Based on the publisher-subscriber pattern of ØMQ • Event multicasting is possible

• Needs to be configured • Complex network set-up: multi casting addresses • Pragmatic General Multicast (PGM) protocol of the ØMQ library

• Major effort for compatibility • Servers and clients can handle both event systems

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 8

Page 9: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Event System Performance

Data Size Event Rate Latency 1 double = 64 bits 100 KHz 250 us 1 KByte 85 KHz 300 us 1 MByte 1 KHz 2 ms

• Improvement • A factor 30 for events transferring only a few bytes

• ZMQ event grouping into network packages

• A factor of 10 for events transferring > 100 Kbytes

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 9

Intel Xeon 2Ghz

Page 10: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Java Device Servers

• Java device server API was re-written by Soleil • Includes now all features of the C++ API • Validated equivalence of the Java API with the C++ API

• The C++ tests suite was executed on a Java test server

• Annotations are a key driver when it comes to create a Tango device

• Code is clearly focused and simplified • No knowledge of inherited methods needed

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 10

Page 11: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Java Device Servers

• The ‘@Device’ annotation defines the class ‘TestDevice’ as a Tango class

• The ‘@Attribute’ annotation defines the class field ‘myAttribute’ as a Tango Attribute

@Device public class TestDevice {

@Attribute public double myAttribute; public double getMyAttribute () { return myAttribute; } public void setMyAttribute (double SetValue) { myAttribute = SetValue; }

}

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 11

Page 12: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Tango Mobile

• Three different solutions available: 1. The Tango Java client API was ported to Android for local

applications 2. Applications for iOS and Android using the Cordova

(PhoneGap) framework Allows the writing of java script applications which connect to

Tango device servers via proxy servlets on a TomCat server

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 12

Page 13: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Tango Mobile

• Three different solutions available: 3. A browser based web solution, which uses the web interface of

the Taurus GUI framework

Allows writing java script applications which communicate via web sockets with a Tornado web server

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 13

Page 14: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Embedding Tango

Rasberry Pi Very low cost

Beagle Bone Used for projects at ELETTRA and the ESRF

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 14

Low cost fully fledged ARM based computers running Linux

Page 15: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Tango Version 9

• Data Pipes: • A third communication type between clients and servers on top of

commands and attributes • Data blobs can be transferred

• A variable set of data composed out of basic data types like a C-structure

• The composition might change with every data transfer • Self-describing data

• The usage will be the transfer of synchronized sets of data • For example scan results

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 15

Page 16: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

Tango Version 9

• Forwarded (Relay) Attributes: • The same attribute, or data value, might be used by several

Tango classes • In a second class we want to instantiate automatically an attribute

with the same interface • Forwarding of all read and write requests to the source attribute • No manual coding will be required

• The code generator Pogo can produce the necessary code

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 16

Page 17: TANGO V8 - CERNaccelconf.web.cern.ch/AccelConf/ICALEPCS2013/talks/tucocb10_talk.pdf · icalepcs 2013 : tango v8 - another turbo charged major release 2 tango v8 another turbo charged

ICALEPCS 2013 : TANGO V8 - ANOTHER TURBO CHARGED MAJOR RELEASE 17

http://www.tango-controls.org