Top Banner
Outline Network/Communication Middleware CA KTL DSS ICE TINE Platforms VxWorks RTEMS Other? Frameworks EPICS ATSTCS TANGO
47

Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Outline

Network/Communication Middleware– CA– KTL– DSS– ICE– TINE

Platforms– VxWorks– RTEMS– Other?

Frameworks– EPICS– ATSTCS– TANGO

Page 2: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS - Data Distribution Service

Data (information) centric approach Publish- Subscribe standard

Data Distribution Service– OMG Standard for Data Centric Publish Subscribe (DCPS)– Architected for data-centric communications in embedded, real-

time systems– Adopted in 2003– Two aspects: API and Wire Protocol

DDS more than a Pub/Sub Middleware DDS is a data broker and a data manager

– The Integration of data distribution, data management, and data location functions

Page 3: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

What is DDS

Networking middleware that simplifies complex network programming. A publish/subscribe model for sending and receiving data, events, and

commands among the nodes. Publishers create "topics" (e.g., temperature, location, pressure) and

publish "samples." DDS handles all the transfer chores: message addressing, marshalling,

delivery, flow control, retries, etc. Any node can be a publisher, subscriber, or both simultaneously. Very simple programming model. Applications that use DDS for their communications are entirely decoupled. DDS automatically handles all aspects of message delivery and allows the

user to specify Quality of Service (QoS) parameters:– Way to configure automatic-discovery mechanisms and specify the behavior

used when sending and receiving messages. – The mechanisms are configured up-front and require no further effort on the

user's part. DDS also automatically handles hot-swapping redundant publishers if the

primary fails.

Page 4: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS Layers

DDS made of two layers– DCPS = Data Centric Publish/Subscribe

Purpose: distribute the data Close to Relational model

– DLRL = Data Local Reconstruction Layer Purpose: provide an object-based model to access data ‘as

if’ it was local

Page 5: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS Information Model

Provides a “Global Data Space” that is accessible to all interested applications.– Data objects addressed by Topic and Key

– Subscriptions are decoupled from Publications

– Contracts established by means of QoS

– Automatic discovery and configuration

Page 6: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS Concepts

Handle, manage and dispatch complex data models. Portability, language and platform transparency Platform independent Data-model Strongly typed interfaces Real-time QoS Management Location Transparency Data Integrity Control and Filtering Domain managements Data History Fault tolerance

Page 7: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DSS Summary

OMG Standard Information/Data centric

– TOPIC based, defined with IDL DDS targets applications that need to distribute

data in a real-time environment DDS is highly configurable by QoS settings DDS provides a shared “global data space”

– Any application can publish data it has– Any application can subscribe to data it needs– Automatic discovery– Facilities for fault tolerance– Heterogeneous systems easily accommodated

Page 8: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS does the addressing, data conversion, sending,

receiving, and retries

Applications justsend or receive data

RTI-DDS: Publish-Subscribe Paradigm(unlike Client-Server)

Performance– High Throughput

– Low Latency

– Deterministic transfer

– High availability of Data

– Reliable Data Transfer over Unreliable Networks

Scalability– Various OS platforms

– Various CPU platforms

– 1 to Many, Many to 1

OMG’s DDS standard– Complements CORBA– Works in a Legacy environment– Data-centric

Data Dictionary Apply Quality Of Service to Data

LynxOS OSLINUX

DDS DDS DDS

Position VelocityVelocity Position

Publisher Subscriber Subscriber

Page 9: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS is a formal industry standard from OMG

Data Distribution Service (DDS)– High performance real-time data distribution

– Object Management Group (OMG)

DDS Standard API– Specifies user-visible API

– Ensures application portability

– Adopted in June 2003, revised June 2005

DDS Standard Wire Protocol– Real-Time Publish-Subscribe (RTPS)

– Ensures application interoperability

– Adopted in June 2006

Real-time Publish-Subscribe

(RTPS) Wire Protocol

DDSMiddleware

Data DistributionService API

Standards-based services for application developers

Standard protocol for interoperability

Page 10: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Real-timeData

Processing

Action

RTI: COTS End-To-End Challenge

Data Distribution Event Processing Data Management

Data Visualization

Integration

Page 11: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Send data every 1 ms

I need data every 1 ms

I need data every 10 ms

Data Path: Discover, Establish, Use…

Data flows are established by the middleware when possible– Setting a contract

Data flows are peer-to-peer– Tunable per data-flow– One-to-many– Many-to-one– Many-to-Many

Data flows reconfigured while changes occur

Page 12: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTI Data Distribution Service (DDS) – application middleware

Between your application code and OS/Transport Programming Language and Platform Independent

Network

DDSMiddleware

OperatingSystem &Transport

ApplicationComponent Code

DDSMiddleware

OperatingSystem &Transport

ApplicationComponent Code

DDSMiddleware

OperatingSystem &Transport

ApplicationComponent Code

Page 13: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Application links in middleware…

Transport

DDS Infrastructure

User Application Code

Per Topic Quality of Service

Configuration

Topic Based Anonymous

Communications

Publish / Subscribe Interface

Dynamic Network Architecture

Network

RTI DDS

Library

Page 14: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Design Requirements

One size does not fit all– Content based filtering

– Time base filtering

– Smart History of data

– Reliable and Not-so reliable data

– Continuous and Not-so continuous data

– Alarm and Events (async data)

– Command and Responses

– High Availability / Failover Situations

– Multicast, Unicast

– Persistent Data through failures

– Auto Discovery of Network Elements

– Black Box – recording (and replay)

Page 15: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTI provides a migration path from legacy middleware infrastructure, e.g. CORBA

IDL File

RTI DDS IDLCompiler

CORBA IDLCompiler

RTI DDSplugin/support

code

CORBA Types

CORBAStubs andSkeletons

generates

generates

uses

uses

RTI DDS uses the CORBA types generated by theCORBA IDL compiler

Page 16: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

Drag and Drop UI Development

Page 17: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

DDS (RTI) Pricing

3-user Named User Development Package = $X– 3-user development license

– 2-day on-site quickstart training

– 6 run-time licenses

– 1 year maintenance and support

Page 18: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ICE – Internet Communication Engine

An object-oriented middleware platform suitable for use in heterogeneous environments.

A full set of features that support development of realistic distributed applications for a wide variety of domains.

Avoid unnecessary complexity, making the platform easy to learn and to use.

An implementation that is efficient in network bandwidth, memory use, and CPU overhead.

An implementation that has built-in security, making it suitable for use over insecure public networks

Page 19: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ICE - Architectural benefits

Object-oriented semantics– All operation invocations use late binding, so the implementation of an operation is chosen depending on the actual run-time (not

static) type of an object. Support for synchronous and asynchronous messaging

– Ice provides both synchronous and asynchronous operation invocation and dispatch, as well as publish–subscribe messaging via IceStorm.

Support for multiple interfaces– With facets, objects can provide multiple, unrelated interfaces while retaining a single object identity across these interfaces.

Machine and Operating system independence– Clients and servers are shielded form idiosyncrasies of the underlying machine architecture, APIS are portable.

Language independence– Client and server can be developed independently and in different programming languages (currently C++, Java, C#, and, for

the client side, PHP). Implementation independence

– Clients are unaware of how servers implement their objects. Threading support

– The Ice run time is fully threaded and APIs are thread-safe. No effort (beyond synchronizing access to shared data) is required on part of the application developer to develop threaded, high-performance clients and servers.

Transport independence– Ice currently offers both TCP/IP and UDP as transport protocols.

Location and server transparency– The Ice run time takes care of locating objects and managing the underlying transport mechanism, such as opening and closing

connections. Security

– Communications between client and server can be fully secured with strong encryption over SSL, so applications can use unsecured public networks to communicate securely.

Built-in persistence– With Freeze, creating persistent object implementations becomes trivial. Ice comes with built-in support for Berkeley DB [18],

which is a high-performance database. Source code availability

Page 20: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ICE CORBA comparison

Faster Multiple interfaces per object via facets Clients can create proxies on the fly  Asynchronous Method Dispatch (AMD)

– The CORBA APIs do not provide any mechanism to suspend processing of an operation in the server, freeing the thread of control, and resuming processing of the operation later.

Security Protocol Features

– Ice offers bidirectional support, which is a fundamental requirement for allowing callbacks through firewalls.

– Ice allows you to use UDP (both unicast and multicast) as well as TCP, so event distribution on reliable (local) networks can be made extremely efficient and light-weight.

– Another important feature of the Ice protocol is that all messages and data are fully encapsulated on the wire.

Language Mappings– Easier language bindings– CORBA does not specify a language mapping for C#, Ruby, or PHP.

Page 21: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ICE Infrastructure

Slice The Specification Language for Ice. (IDL) Slice Compilers : highly efficient protocol (including protocol compression and support for both

TCP and UDP), provides a flexible thread pool for multi-threaded servers, and offers additional functionality that supports extreme scalability with potentially millions of Ice objects.

IceUtil A collection of utility functions, such as Unicode handling and thread programming. (C++ only.)

IceBox An application server specifically for Ice applications. IceBox can easily run and administer Ice services that are dynamically loaded as a DLL, shared library, or Java class.

IceGrid A sophisticated server activation and deployment tool for advanced grid computing. Freeze provides automatic persistence for Ice servants. With just a few lines of code, an

application can incorporate a highly-scalable evictor that efficiently manages persistent objects. FreezeScript It is common for persistent data types to change, especially in large software

projects. In order to minimize the impact of these changes, FreezeScript provides inspection and migration tools for Freeze databases. The tools support an XML-based scripting capability that is both powerful and easy to use.

IceSSL A dynamic SSL transport plug-in for the Ice core. Glacier One of the most difficult challenges for object middleware systems is security and

firewalls. Glacier, the firewall solution for Ice, greatly simplifies the deployment of secure applications. Glacier authenticates and filters client requests and allows callbacks to the client in a secure fashion.

IceStorm A messaging service with support for federation. In contrast to most other messaging or event services, IceStorm supports typed events, meaning that broadcasting a message over a federation is as easy as invoking a method on an interface.

IcePatch A patching service for software distributions. Keeping software up-to-date is often a tedious task. IcePatch automates updating of individual files as well as complete directory hierarchies. Only files that have changed are downloaded to the client machine, using efficient compression algorithms.

Page 22: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ICE Performance (vs. TAO)

Page 23: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TINE Protocol

The TINE protocol allows data transfer according to one of four different paradigms:

“client-server” (i.e. synchronous transaction) and “publisher-subscriber” (i.e. asynchronous event notification).

– Both of these mechanisms inherently imply uni-cast (peer-to-peer) data transfer.

“producer-consumer” mode of transfer, where control system data deemed of interest to most control system elements (e.g. beam energy) are multi-casted from a single source, regardless of the number of interested consumers.

“producer-subscriber” mode, whereby subscribers inform a server of their wishes, and the server (producer) multi-casts the results to his multicast group. Any number of clients can then make the identical request with no extra load on either the server or the network.

Page 24: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

EPICS and TINE

Epics2tine translator can either run practically embedded on any EPICS ioc, or run in parallel on a softioc.

Essentially, it bypasses the channel access protocol completely and runs EPICS over the TINE protocol.

Page 25: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTEMS (Real-Time Executive for Multiprocessor Systems)

Free deterministic real-time operating system targeted towards deeply embedded systems

Cross development toolset is based upon the free GNU tools

Supports EPICS Possible VxWorks alternative?

– It has been shown that RTEMS provides a real time behavior that is comparable to VxWorks

Page 27: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTEMS – Standards Compliance

POSIX 1003.1b API including threads VMEbus Industry Trade Association RTEID/ORKID

based Classic API (similar to pSOS+) TCP/IP including BSD Sockets uITRON 3.0 API GNU Toolset Supports Multiple Language Standards ISO/ANSI C ISO/ANSI C++ including Standard Template Library Ada with GNAT/RTEMS

Page 28: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTEMS Kernel Features

Multitasking capabilities Homogeneous and heterogeneous multiprocessor

systems Event-driven, priority-based pre-emptive scheduling Optional rate-monotonic scheduling Inter task communication and synchronization Priority inheritance Responsive interrupt management Dynamic memory allocation High level of user configurability Portable to many target environments

Page 29: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

RTEMS - Networking

High performance port of FreeBSD TCP/IP stack UDP, TCP ICMP, DHCP, RARP, BOOTP, PPPD Client Services Domain Name Service (DNS) client Trivial FTP (TFTP) client Network Filesystem System (NFS) client Servers FTP server (FTPD) Web Server (HTTPD) Telnet Server (Telnetd) Sun Remote Procedure Call (RPC) Sun eXternal Data Representation (XDR) CORBA

Page 30: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS

Advanced Technology Solar Telescope (ATST) Common Services

Common framework for all observatory software– ALMA ACS is excellent example (but too BIG)– ATSTCS draws from general ACS model

Much more than just a set of libraries Separates technical and functional architectures Provides bulk of technical architecture through

Container/Component model Allows application developers to focus on functionality Provides consistency of use System becomes easier to maintain and manage

Page 31: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Architecture

Page 32: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Benefits

Avoids need to write communication infrastructure in-house– Less effort– Less in-house expertise required– Access to outside expertise– Benefit from wide-spread use

Often provides rich set of features

Supports actions required to run in a distributed environment

Lots to choose from (both commercial and community)

Page 33: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Containers and Components

ComponentsComponents

Container

Lifecycle control Service access

interfaces

Custom interface

User code

Page 34: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Interfaces

Narrow functional interfaces– IComponent has just two commands: get, set– IController has six commands: get, set, submit, pause, resume, and cancel

Controller implements “command/action/response” model– Actions execute asynchronously from command submission (no blocking)– Supports multiple simultaneous actions– Supports scheduled actions

These classes implement technical interfaces, subclasses add functionality. e.g. doSubmit, doAction

IRemote ILifeCycle

IController

Container Component Controller

IFunctional

IContainer IComponent

Functional InterfacesFunctional Interfaces

Page 35: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Container Services

Page 36: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - How well is it working

Approach seems successful (early alpha-release supported both CORBA and ICE)– Choice of service tool has no impact on component

development – can select between CORBA/ICE at runtime– Already helped in unexpected ways (licensing conflicts)

ICE/CORBA service tools easy to write:– Both similar architectures– Both align well with access helper models

Less aligned services likely to be harder– Changes are well isolated at service tool layer, however

3rd party implementation of TCS simulation Developer code “simpler”

Page 37: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS - Event Performance

Three dual-core machines (source, target, and event server), GbE network, CentOS4

Two versions of ICE: 2.1 and 3.2 (CORBA OmniNotify/TAO much slower)

1,000,000 events, ~120 bytes each All Java (JDK 1.6) code (C++ and Python currently much slower) Two service tools tested (unbatched and batched), now combined

into a single tool (per-event stream batching), both fully stable

Page 38: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

ATSTCS – Log Service Performance

All dual-core machines (source, logdb server), CentOS4, GbE

PostgreSQL version 8.2.4, JDK 1.6 500,000 messages, two sizes of payload end-to-end performance (client to database) Buffered and unbuffered service tools tested

– Multi-buffering to handle message spikes

Page 39: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO – What is TANGO

A software bus for distribued services 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

CORBATANGO

Control System

DevDev Dev Dev Dev Dev

ArchivingService

TANGO Software Bus

OPC

Dev

TANGO ATKJava

QtangoC++

ScanService

Linux, Windows, Solaris Labview RT

Page 40: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO – What is TANGO

• Dedicated to the implementation of distributed systems,heterogeneous and oriented control/command

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

Page 41: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO – What is TANGO

More than only a software bus– Database for persistency

– Code generator to implement networked devices

– Central services (Archive, snapshots, logging, alarms, scans, security, …)

– Application Toolkits (Java, C++ and Python)

– Commercial bindings (Labview, Matlab, IgorPro)

– Control system administration (Starter, Astor)

– Hundreds of available classes

– Web interfaces (PHP, Java)

Page 42: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO and CORBA

Tango encapsulates the CORBA communication protocol– Allows the use of other communication 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

Page 43: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

The TANGO Device

The fundamental brick of Tango is the device! Everything which needs to be controlled is a

“device” from a very simple equipment to a very sophisticated one

Every device has a three field name “domain/family/member”– sr/v-ip/c18-1, sr/v-ip/c18-2

– sr/d-ct/1

– id10/motor/10

Page 44: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

The TANGO Device

TANGO software bus

Device class

HW

network

Motor:Commands: On(), Off(), …

Attributes: Speed, Position

State: On, Off, Alarm, Fault

Polling, round robin buffer, threading, event triggering, …

Interface

Hardware control code

Code generator

To be writtenby the programmer

Page 45: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO Device Server

A Tango device server is the process where the Tango class(es) are running.

Tango device class A

Devicesr/v-ip/1

Devicesr/v-ip/2

Tango device class B

Deviceid4/mot/1

Deviceid4/mot/3

Deviceid4/mot/2

A Tango device server

“ps” command shows one device server

Page 46: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO Device Server

Tango uses a database to configure a device server process

Device number and names for a Tango class are defined within the database not in the code.

Which Tango class(es) are part of a device server process is defined in the database but also in the code

Page 47: Outline Network/Communication Middleware – CA – KTL – DSS – ICE – TINE Platforms – VxWorks – RTEMS – Other? Frameworks – EPICS – ATSTCS – TANGO.

TANGO Support

APIs/Programming Languages– C++ (performances)

– Java (portability)

– Python (scripts)

– Others (Matlab, Igor Pro, LabView)

platforms– Linux

– Windows NT/2000/XP

– Sun-Solaris

– FPGA