1 / 35

ACS ALMA Common software

This video provides an overview of the purpose, scope, and services of ACS Common Software for ALMA. It covers ACS packages, main concepts and patterns, important services, and more.

phillipg
Télécharger la présentation

ACS ALMA Common software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ACSALMA Common software G.Chiozzi and the ACS team NRAO/ESO videocon, Feb.12, 2004

  2. Contents • ACS Purpose and Scope • ACS Packages • Main ACS concepts and patterns • Overview of some important ACS Services • Conclusions • Questions & Answers ALMA Common Software

  3. Purpose and scope of ACS 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 • common development environment and tools ALMA Common Software

  4. 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

  5. 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

  6. Component/Container: buy vs. build • Same idea as .NET, EJB, CCM • .NET binds to Microsoft platform • EJB binds to Java programming language • CCM is still immature and there are no reliable free implementations • Off-the-shelf Component Container implementations are complex and require a wholesale commitment from developers to use the languages and tools supplied. • Focus for these Component/Container implementations are big enterprise business systems • We aim at staying as much a possible compatible with CMM concepts to allow adopting animplementation, when available. ALMA Common Software

  7. ACS Manager 1 -Ask for reference to component Comp 2a – invoke c.observe() IDL stub 2b.2 - Dynamic invocation 2b.1 - Retrieve interface Interface repository Component’s client view IDLfunctional interface: observe() Client (a component) ALMA Common Software

  8. Object Explorer ALMA Common Software

  9. 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

  10. Administrator Client ALMA Common Software

  11. ACS Command Center ALMA Common Software

  12. 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

  13. Component-Property-Characteristics full model ALMA Common Software

  14. Property Servant implementation The DevIO bridge pattern decouples Properties from HW. DevIO implementations available: • Memory location (ACS defaults implementation) • CAN bus access (ALMA) • Socket generic interface (APEX) • RS232 (OAN) • PC Joystick (HPT) • Webcam (HPT) • CCD cameras (FBIG, Finger Lake) (HPT) • Heidenan Encoder board IK220 (HPT) • Motor Control Board (HPT) • CCS Real time database (VLT) ALMA Common Software

  15. 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

  16. Configuration Database: DO Schemas ALMA Common Software

  17. Abeans and visual editing ALMA Common Software

  18. ABeans widgets Configuration Logging Exception handling Abeans Application • Power Supply • Current • Readback • Status • on(), reset(), … • Antenna • RA • DEC … Abeans Model (e.g. BACI) Abeans Engine Abeans Plug (e.g. ACS CORBA) ABeans architecture ALMA Common Software

  19. ACS sample Mount Control Panel ALMA Common Software

  20. 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

  21. 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

  22. Monitor Archiving system ALMA Common Software

  23. ACS Documentation:http://www.eso.org/projects/alma/develop/acs ALMA Common Software

  24. ACS Documentation:http://www.eso.org/projects/alma/develop/acs ALMA Common Software

  25. Supported Platforms • Operating system: Linux, SUN OS, (MS-Windows) • Real-time: VME,VxWorks, RTAI, CAN bus • Languages: C++, JAVA, Python • CORBA middleware: TAO (& ACE) (C++), JacORB (Java), Omniorb (Python), CORBA services. ALMA Common Software

  26. ACS installations and projects ALMA Common Software

  27. 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 3.0 (the 6th release) • Content of each release discussed with user’s community ALMA Common Software

  28. ACS 3.1 and after • Objective until ACS 2.1: • support Control SW Development (TICS) • Objective for ACS 3.0: • Support Pipeline, OT and high level softwarerequirements • ACS 3.1 and after: • Bulk data transfer, HTTP and email protocols, Alarm System and other planned packages • Optimization, scalability, performances, security • New trends: IDL generic simulator, code generation from UML • Backward compatibility! ALMA Common Software

  29. 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

  30. 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

  31. Questions (& Answers) ALMA Common Software

  32. Extra slides • What follow are extra slides, in case of questions ALMA Common Software

  33. obj.getFoo() Logic Subsystem2 Entity data: XML value objects Why Value Objects? • Less remote calls -> Better performance • Run-time independence between subsystems increases reliability Transport by value remote object value object obj.getFoo() Subsystem1 ALMA Common Software

  34. Comp Comp container XML XML container Transparent XML Integration Flat-XML API seen from outside Mapping code layer Comp Transparent-XML API implemented by component ALMA Common Software

  35. Transparent XML Integration Flat-XML IF ... getObsProject() IDL IF IDL compiler typedef xmlstring ObsProject; … ObsProject getObsProject() mapping code return getObsProject.marshal() “IDL-XML” code generator Transparent-XML IF ... alma.data.ObsProject getObsProject() XML-Java binding: “ObsProject” -> alma.data.ObsProject ALMA Common Software

More Related