250 likes | 267 Views
ALMA Common Software Training- Course Session 1a - What is ACS. G.Chiozzi , H.Sommer, B.Jeram, D.Fugate, B.Gustafsson, J.Ibsen, P.Sivera, M.Zamparelli …. Contents. Why and what is a common software? ACS Packages and Architecture Overview How can you get more information.
E N D
ALMA Common Software Training-CourseSession 1a - What is ACS G.Chiozzi, H.Sommer, B.Jeram, D.Fugate, B.Gustafsson, J.Ibsen, P.Sivera, M.Zamparelli ….. NAOJ – Tokyo 04-08 July, 2005
Contents • Why and what is a common software? • ACS Packages and Architecture Overview • How can you get more information ALMA Common Software course
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 • incrementaldevelopment via Releases • standardisation offering environment with design patterns and their implementation (rather than pure rules). • common configuration control/installation procedures ALMA Common Software course
ACS start-up: Summer 1999 • 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). ALMA Common Software course
ACS Development Plan • ACS long term development is specified in the ACS SW Development Plan:http://www.eso.org/~almamgr/AlmaAcs/Plan/ACSDevelopmentPlan_2.0.pdf • 6-months cycle. Driven by ALMA Subsystem’s requirements • ALMA using ACS 4.1 (the 9th release) • Content of each release discussed with user’s community ALMA Common Software course
ACS 5.0 and after • Objective until ACS 2.1: • support Control SW Development (TICS) • Objective for ACS 3.x: • Support Pipeline, OT and high level softwarerequirements • ACS 4.x and after: • Bulk data transfer • IDL generic simulator • RTAI support • Cleanup and refactoring • Code generation from UML (Data Model) • ACS 5.0 • Alarm System and other planned packages • RPM packaging • Optimization, scalability, performances, security • “Operation” support at the ATF ALMA Common Software course
ACS installations and projects ALMA Common Software course
Supported Platforms • Operating system: Linux (MS-Windows) • Real-time: VME,VxWorks (Phase1), RTAI, CAN bus • Languages: C++, JAVA, Python • CORBA middleware: TAO (& ACE) (C++), JacORB (Java), Omniorb (Python), CORBA services. ALMA Common Software course
Applications UIF Scripting ACS Application 4 - Hi-level ACS Installer ...more to Framework libraries APIs and tools come... 5 - Integrated APIs and tools ACS Container Serializati Archiving Command Alarm Sampling 3 - Services FITS libraries on Plugs System System System (from Commercial/Shared packages) Astro libraries 2 - Core ACS Component Configuration Data Error Logging Time (from Commercial/Shared packages) components Database channel System System System Device Drivers Developm CORBA Middleware ACE 1 - Base tools ent tools ACS Packages ALMA Common Software course
Comp container Comp Manager deployment configurations other ACS services CORBA ORBs Services CORBA + Container/Component container service interface: getComponent(other) Logger getLogger() functional interface: observe() lifecycle interface: init() run() restart() ALMA Common Software course
Object Explorer ALMA Common Software course
Abeans Administrator GUI for Client Control federation Manager Manager (domain A) (domain B) CDB Cont 1 Cont 2 Cont 3 DO 1 DO 3 DO 4 DO 2 DO 2 DO 5 Device Component’s Administrator View • An administrator defines deployment by customizing the Configuration Database for the Manager • Manager is responsible for managing and checking the lifecycle of Components • Containers are directly responsible for the Components that are assigned to them ALMA Common Software course
ACS Command Center ALMA Common Software course
Component-Property-Characteristics • (Characteristic) Component: base class for any physical/logical Device(e.g. temperature sensor, motor) • Each Component has Properties (e.g. status value, position - control/monitor points) • Characteristics of Components and Properties(Static data in Configuration DB, e.g. units, ranges, default values) • ABeans ALMA Common Software course
Configuration Database • Defining accessing and maintaining the configuration of a system • Three-tier database-access architecture: • Database engine • Database Access Layer (DAL). • Database clients • CORBA access interface • XML/Schemas for object data definition and access. 3 – Database clients Data client CDB Administration Read-only Data interface Read-writeadmin. interface 2 – Database Access Layer (DAL) DAL/CDB Server 1 – Database engine Database ALMA Common Software course
Configuration Database: DO Schemas ALMA Common Software course
Abeans and visual editing ALMA Common Software course
ACS sample Mount Control Panel ALMA Common Software course
Data Channel • Implementation of Observer Design Pattern • Asynchronously pass information between data suppliers and data consumers in a many-to-many relationship • Based on CORBA Notification Channel • An ACS API provides simplified client and server API ALMA Common Software course
Centralized Logging Host Web Client XSLT HTTP request/reply HTTP Server SELECT Relational Database SELECT UPDATE Database query Client Logger Client push Event XML push Client Channels Parser push Filtering logic Centralized Logging write_records Logs Publisher Implements Log interface Out of scope of this document Logging System • To publish any kind of status and diagnostic information for interested clients and archival. • Based on CORBA Telecom Logging Service. C++ API ACE Logging Java API -> java.util.logging ACS Log Service -> IDL XML logs follow pre-defined schema ALMA Common Software course
Monitor Archiving system ALMA Common Software course
ACS Documentation:http://www.eso.org/projects/alma/develop/acs ALMA Common Software course
Conclusion • Developed based on the experience of both astronomical and accelerator control projects • Can easily run on many platforms • Open source (LGPL license) • Free development tools and ORBs We think that many other projects can use ACS A wider user’s base can provide valuable feedback ALMA Common Software course
ALMA SitesChajnantor www.eso.org/projects/alma www.alma.nrao.edu/development/computing http://www.eso.org/projects/alma/develop/acs http://kgb.ijs.si/KGB/ ALMA Common Software course
Questions (& Answers) ALMA Common Software course