Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
ACS CORBA-based Common Software for ALMA and other projects G.Chiozzi*, B.Gustafsson*, B.Jeram*, P.Sivera* M.Plesko**, M.Sekoranja**, G.Tkacik**, K.Zagar**, D.Fugate*** *ESO, ** CosyLab, *** NRAO CORBA Controls Workshop, Grenoble 9-11 October, 2002 Contents ALMA Project • • • • • • • What is ALMA? Why a common software? What are the key ideas in ACS? What is the Architecture of ACS How are we going to go on? Who is using ACS? How can you get more information CORBA Controls 2002 ALMA Common Software 2 ALMA Project in Summary ALMA Project • Joint project between astronomical organisations in Europe and North America (and Japan) • 64 12-m antennas (25 microns, 0.6”) • Array configurations:150m-10 Km • Near S.Pedro de Atacama, Chile at 5000m • Imaging capability over 10-0.35mm range • 10 receiver bands • very high resolution correlator CORBA Controls 2002 ALMA Common Software 3 ALMA Common Software (ACS) ALMA Project ALMA project is highly distributed: many sites and many “development cultures” • ACS aims at providing an answer to the following needs: – common application framework and programming model, not just libraries – well tested software that avoids duplication – make upgrades and maintenance reasonable – incremental development via Releases – standardisation offering environment with design patterns and their implementation (rather than pure rules). – common configuration control/installation procedures It worked on a comparable size project: the VLT CORBA Controls 2002 ALMA Common Software 4 ACS start-up: Summer 1999 ALMA Project • Preliminary discussions on ACS objectives and structure: – experience from VLT and other projects – New technology: CORBA, Java, XML • Decided to start from existing product, to make use of CORBA experience. • Collaboration with JSI-Ljubljana to further develop existing system built for High Energy Physics (ICALEPCS ‘99, Trieste). CORBA Controls 2002 ALMA Common Software 5 ACS Architecture ALMA Project ACS Installer Applications UIF libraries 4 - Hi-level APIs and tools 3 - Services 2 - Core packages 1 - Base tools MACI Manager BACI CORBA Controls 2002 Activator Java Component Development tools Scripting C++ Application Framework Java Container Config DB Serialization Plugs Data channel Java Application Framework Archiving System FITS libraries Command System Astro libraries Error System CORBA Middleware ALMA Common Software ...more to come... Alarm System Logging System Time System ACE Device Drivers 6 Component-Container Model ALMA Project Component 1 CORBA Controls 2002 ALMA Common Software ... – Lifecycle interface (init, start, stop, update) – Service interface (what component offers) – Optional: security, persistency, transactions… Component 2 Container Client • A Component-Container based architecture emphasizes Separation of Concerns. • Same idea as .NET, EJB, CCM • Container manages components Component 3 7 ACS Deployment diagram ALMA Project Abeans GUI for Control Administrator Client federation Manager Manager (domain A) (domain B) CORBA Naming Service CDB Activator 1 DO 1 Activator 2 DO 3 DO 2 Activator 3 DO 4 DO 2 DO 5 Device CORBA Controls 2002 ALMA Common Software 8 DO-Property-Characteristics ALMA Project • DO: base class for any physical/logical Device NamedComponent name() description() version() URI() get_interface() get_characteristic_by_name() find_characteristic() (e.g. temperature sensor, motor) 0..n Characteristic Property 0..n DO_name() • Characteristics of Dos and Properties 0..n DO Property type ROProperty<type> 0..n get_sync() get_async() create_monitor() type RWProperty<type> set_sync() set_async() increment() decrement() (Static data in Configuration DB, e.g. units, ranges, default values) Examples of user defined classes: Control system Devices are Distributed Objects An example of Device CORBA Controls 2002 Characteristic DO (e.g. status value, position control/monitor points) • ABeans 0..n NamedComponent • Each DO has Properties 0..n Device (from Examples) type MonitorPoint (from Examples) type ControlPoint (from Exampl... Thermostat (from Exampl... ALMA Common Software 9 Configuration Database ALMA Project • Defining accessing and maintaining the configuration of a system • Three-tier database-access architecture: 3 – Database clients Data client 2 – Database Access Layer (DAL) – Database engine – Database Access Layer (DAL). – Database clients DAL/CDB Server 1 – Database engine • CORBA access interface • XML/Schemas for OO data definition and access. CORBA Controls 2002 Readonly Data interface CDB Administrati Read-write on admin. interface ALMA Common Software Database 10 Configuration Database: DO Schemas ALMA Project CORBA Controls 2002 ALMA Common Software 11 Abeans visual editing ALMA Project CORBA Controls 2002 ALMA Common Software 12 TICS Control Panel ALMA Project CORBA Controls 2002 ALMA Common Software 13 OE and Admin Client ALMA Project CORBA Controls 2002 ALMA Common Software 14 Supported Platforms ALMA Project • Operating system: Linux, SUN OS, (MSWindows) • Real-time: VME,VxWorks (Phase1), CAN bus • Languages: C++, JAVA, Python • CORBA middleware: TAO (& ACE) (C++), Orbacus (Java), Omniorb (Python), CORBA services. CORBA Controls 2002 ALMA Common Software 15 ACS Documentation ALMA Project CORBA Controls 2002 ALMA Common Software 16 ACS Installations ALMA Project Uni. Bochum UK ATC Lofar MPI Bohn DRAO Penticton ESO NRAO Tucson NAOJ NRAO Socorro, VLA IJS/Cosylab Ljubljana NRAO Charlotsville ESO La Silla AOT Trieste IRAM Grenoble IRAM Granada CORBA Controls 2002 ALMA Common Software ANKA 17 ACS Status ALMA Project • • • • Oct. 2000: ACS v.0.0 (Prototype) Dec. 2000: KP test Sep. 2001: ACS Architecture Document Sep.2001: ACS 1.0 • Apr. 2002: ACS 1.1 (support for TICS) In use in Test Interferometer Software (TICS) prototype • Nov. 2002: ACS 2.0 We plan an incremental release every 6 months CORBA Controls 2002 ALMA Common Software 18 ALMA Sites Chajnantor ALMA Project www.eso.org/projects/alma www.alma.nrao.edu/development/computing www.eso.org/~gchiozzi/AlmaAcs http://kgb.ijs.si/KGB/ CORBA Controls 2002 ALMA Common Software 19 Conclusion ALMA Project • Developed based on the experience of both astronomical and accelerator control projects • Can easily run on many platforms • Open source (GPL licence) • Free development tools and ORBs We think that many other projects can use ACS A wider user’s base can provide valuable feedback CORBA Controls 2002 ALMA Common Software 20 Extra slides ALMA Project The following pages contain some extra slides that we do not plan to show at the conference, but that could be useful. CORBA Controls 2002 ALMA Common Software 21 Data Channel ALMA Project Data subscriber subscribe push data pull data CORBA Notification Service (from CORBA Middleware) DataChannel federate 0..n push data 0..n Data Publisher CORBA Controls 2002 ALMA Common Software 22 DO ALMA Project NamedComponent name() description() version() URI() get_interface() get_characteristic_by_name() find_characteristic() 0..n Characteristic DO 0..n 0..n Property DO_name() type ROProperty<type> get_sync() get_async() create_monitor() type RWProperty<type> set_sync() set_async() increment() decrement() Examples of user defined classes: Control system Devices are Distributed Objects An example of Device CORBA Controls 2002 Device (from Examples) type MonitorPoint (from Examples) type ControlPoint (from Exampl... Thermostat (from Exampl... ALMA Common Software 23 Logging ALMA Project CORBA Controls 2002 ALMA Common Software 24 Management and Access Control ALMA Project CORBA Controls 2002 ALMA Common Software 25 Archiving System ALMA Project Relational Database logMonitor (from Loggi ng System) store/retreive data browse logs archiveManager browse monitor data monitorDisplay through data channel through data channel producer of monitor data producer for logs (from Loggi ng System) CORBA Controls 2002 ALMA Common Software 26 How much effort in ACS 1.1? ALMA Project Source lines of code (for comments add about 10%) for: – ACS cmm Modules (code developed for ACS) – Java Abeans (mostly code inherited from ANKA) • • • • • SLOC 61730 188820 Directory ACS Java SLOC-by-Language (Sorted) cpp=61536,sh=129,tcl=28,sed=23,csh=14 java=188820 Total Physical Source Lines of Code = 252019 Estimated Development Effort in Person-Years = 66.46 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) Total Estimated Cost to Develop = $ 8977317 (average salary = $56286/year, overhead = 2.4). Data generated using 'SLOCCount' by David A. Wheeler http://www.dwheeler.com/sloccount/sloccount.html More than 2000 pages of printable design/reference documentation CORBA Controls 2002 ALMA Common Software 27