150 likes | 372 Views
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
E N D
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…
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 • Source distribution (For UNIX like OS) • Windows binaries package
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