ACS CORBAbased Common Software for ALMA and other
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, ** Cosy. Lab, *** 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: 150 m-10 Km • Near S. Pedro de Atacama, Chile at 5000 m • Imaging capability over 10 -0. 35 mm range • 10 receiver bands • very high resolution correlator CORBA Controls 2002 ALMA Common Software 3
ALMA Project ALMA Common Software (ACS) 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 CORBA Controls 2002 ALMA Common Software 8
DO-Property-Characteristics ALMA Project • DO: base class for any physical/logical Device Named. Component name() description() version() URI() get_interface() get_characteristic_by_name() find_characteristic() 0. . n Characteristic (e. g. temperature sensor, motor) • Each DO has Properties DO (e. g. status value, position control/monitor points) 0. . n • Characteristics of Dos and Properties type ROProperty<type> get_sync() get_async() create_monitor() Examples of user defined classes: Control system Devices are Distributed Objects An example of Device CORBA Controls 2002 type RWProperty<type> set_sync() set_async() increment() decrement() (Static data in Configuration DB, e. g. units, ranges, default values) • ABeans Property DO_name() Device (from Examples) type Monitor. Point (from Examples) type Control. Point (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, Vx. Works (Phase 1), 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 Granada CORBA Controls 2002 IRAM Grenoble 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/Alma. Acs 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 CORBA Controls 2002 ALMA Common Software 22
DO ALMA Project Named. Component name() description() version() URI() get_interface() get_characteristic_by_name() find_characteristic() 0. . n Characteristic DO 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 Monitor. Point (from Examples) type Control. Point (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 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. html More than 2000 pages of printable design/reference documentation CORBA Controls 2002 ALMA Common Software 27
- Slides: 27