What is Eclipse?
• Official Definition:
– Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software.
• Eclipse Evolution
– Version 1.0: Open Source Java IDE – Version 2.0: Universal Tooling Platform – Version 3.0: Platform for Rich Client Application
Eclipse as an IDE
• Language supported: – Java, C/C++, C#, FORTRAN, Ruby, Python, Ada, AspectJ……you name it!! • Agile Method – Incremental build, Refactoring • Test Driven Development – JUnit Test, Automated Testing Framework • Model Driven Software Development – Open Architectureware • Team Concurrent Development support – CVS, Subversion • Plus More – ANT support, Interactive Debugger, Visual Editor…
Simple RCP
Plug-in Architecture
Extensions Plug-ins
Application Plug-in Loader
Extensible Application
Eclipse
What is Tango ?
• It is a distributed object oriented control system • It uses CORBA for network communication
– omniORB in C++ and JacORB in Java
• It supports two languages (C++ and Java) and 3 OS (Linux, Solaris and Windows) • It is an LGPL licensed software available from ESRF web site as
What is Tango ?
• Every controlled equipment is a device belonging to a class and supporting commands (action) and attributes (data) • Tango classes are merged within process called “device server” • Each device server process has a polling mechanism with data cache to speed-up response time in case of a slow device.
What is Tango ?
• Tango has an API supporting three kinds of communication between client and server
– Synchronously – Asynchronously – Using event
Introduction to Tango polling
• Every Tango device server process has a polling thread • Its rule is to
– Poll attribute and/or command (without input parameters) – Store result in a data cache (called polling buffer) managed as a circular buffer – Detect events and throw them to the CORBA notification service
Introduction to Tango polling
• Every Tango device server process has a polling thread • Its rule is to
– Poll attribute and/or command (without input parameters) – Store result in a data cache (called polling buffer) managed as a circular buffer – Detect events and throw them to the CORBA notification service
Introduction to Tango polling
• Each device has its own polling buffer • Polling buffer depth is tunable
– By device (default is 10) – By command/attribute for finer tuning
• Client get their data from
– The real device – The last record in the polling buffer – The polling buffer and in case of error from the real device – The choice is done by a Tango API client call
• Model-Driven Development of Distributed Systems - Volter • ITER