250 likes | 268 Views
Dive into the world of ALMA Common Software (ACS) through this training course session held in Tokyo in July 2005. Explore the need for common application frameworks, software testing, and maintenance techniques provided by ACS. Learn about the ACS startup in 1999 and the development plans leading up to version 5.0. Discover the supported platforms, applications, and tools that make ACS a vital component of the ALMA project. Gain insight into ACS components, configurations, databases, and command centers for effective software development. Uncover the key features and characteristics of ACS packages and architecture to enhance your understanding of this essential software system.
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