9af69bfd21483c7d81cab59415628094.ppt
- Количество слайдов: 35
ACS ALMA Common software G. Chiozzi and the ACS team NRAO/ESO videocon, Feb. 12, 2004
Contents ALMA Project • • • ACS Purpose and Scope ACS Packages Main ACS concepts and patterns Overview of some important ACS Services Conclusions Questions & Answers G. Chiozzi Feb, 12 2004 ALMA Common Software 2
Purpose and scope of ACS ALMA Project 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 G. Chiozzi Feb, 12 2004 ALMA Common Software 3
ACS Packages ALMA Project Applications 4 - Hi-level APIs and tools 3 - Services 2 - Core components UIF libraries ACS Container ACS Component Scripting ACS Application Framework Serializati Archiving on Plugs System Configuration Database ACS Installer Command System Data channel . . . more to come. . . Alarm System Error System Sampling Logging System 5 - Integrated APIs and tools FITS libraries (from Commercial/Shared packages) Time System Astro libraries (from Commercial/Shared packages) Device Drivers 1 - Base tools G. Chiozzi Feb, 12 2004 Developm ent tools CORBA Middleware ACE ALMA Common Software 4
CORBA + Container/Component container service interface: functional interface: get. Component(other) Logger get. Logger() lifecycle interface: init() run() restart() CORBA ORBs Services 19. November 2002 Comp observe() Comp ALMA Project container Manager deployment configurations other ACS services 5
Component/Container: buy vs. build ALMA Project • 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 an implementation, when available. G. Chiozzi Feb, 12 2004 ALMA Common Software 6
Component’s client view ALMA Project IDL functional interface: ACS Manager 1 -Ask for reference to component observe() 2 a – invoke c. observe() 2 b. 2 - Dynamic invocation Comp Client (a component) IDL stub 2 b. 1 - Retrieve interface Interface repository G. Chiozzi Feb, 12 2004 ALMA Common Software 7
Object Explorer ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 8
ALMA Project 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 Abeans GUI for Control Administrator Client federation Manager (domain A) (domain B) CDB Cont 1 DO 2 Cont 2 DO 3 DO 2 Cont 3 DO 4 DO 5 Device G. Chiozzi Feb, 12 2004 ALMA Common Software 9
Administrator Client ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 10
ACS Command Center ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 11
ALMA Project 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 G. Chiozzi Feb, 12 2004 ALMA Common Software 12
Component-Property-Characteristics full model ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 13
Property Servant implementation ALMA Project The Dev. IO bridge pattern decouples Properties from HW. Dev. IO implementations available: • • • Memory location (ACS defaults implementation) CAN bus access (ALMA) Socket generic interface (APEX) RS 232 (OAN) PC Joystick (HPT) Webcam (HPT) CCD cameras (FBIG, Finger Lake) (HPT) Heidenan Encoder board IK 220 (HPT) Motor Control Board (HPT) CCS Real time database (VLT) G. Chiozzi Feb, 12 2004 ALMA Common Software 14
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 object data definition and access. G. Chiozzi Feb, 12 2004 Readonly Data interface CDB Administrati Read-write on admin. interface ALMA Common Software Database 15
Configuration Database: DO Schemas ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 16
Abeans and visual editing ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 17
ABeans architecture ALMA Project ABeans widgets Abeans Application Power Supply • Current • Readback • Status on(), reset(), … Configuration Antenna • RA • DEC Logging Exception handling Abeans Model (e. g. BACI) … Abeans Engine Abeans Plug (e. g. ACS CORBA) G. Chiozzi Feb, 12 2004 ALMA Common Software 18
ACS sample Mount Control Panel ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 19
Data Channel ALMA Project • 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 G. Chiozzi Feb, 12 2004 ALMA Common Software 20
Logging System ALMA Project Centralized Logging Host HTTP request/reply HTTP Server • To publish any kind of status and diagnostic information for interested clients and archival. • Based on CORBA Telecom Logging Service. Web Client XSLT SELECT Relational Database SELECT UPDATE Database Logger Client query push C++ API ACE Logging Client push XML Parser Event Channels Java API -> java. util. logging push ACS Log Service -> IDL Filtering logic Centralized Logging Implements Log interface write_records Out of scope of this document G. Chiozzi Feb, 12 2004 Logs Publisher XML logs follow pre-defined schema ALMA Common Software 21
Monitor Archiving system ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 22
ACS Documentation: http: //www. eso. org/projects/alma/develop/acs ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 23
ACS Documentation: http: //www. eso. org/projects/alma/develop/acs ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 24
Supported Platforms ALMA Project • Operating system: Linux, SUN OS, (MSWindows) • Real-time: VME, Vx. Works, RTAI, CAN bus • Languages: C++, JAVA, Python • CORBA middleware: TAO (& ACE) (C++), Jac. ORB (Java), Omniorb (Python), CORBA services. G. Chiozzi Feb, 12 2004 ALMA Common Software 25
ACS installations and projects ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 26
ACS Development Plan ALMA Project • ACS long term development is specified in the ACS SW Development Plan: http: //www. eso. org/~almamgr/Alma. Acs/Plan/ACSDevelopment. Plan_2. 0. pdf • 6 -months cycle. Driven by ALMA Subsystem’s requirements • ALMA using ACS 3. 0 (the 6 th release) • Content of each release discussed with user’s community G. Chiozzi Feb, 12 2004 ALMA Common Software 27
ACS 3. 1 and after ALMA Project • Objective until ACS 2. 1: – support Control SW Development (TICS) • Objective for ACS 3. 0: – Support Pipeline, OT and high level software requirements • 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! G. Chiozzi Feb, 12 2004 ALMA Common Software 28
ALMA Sites ALMA Project Chajnantor www. eso. org/projects/alma www. alma. nrao. edu/development/computing http: //www. eso. org/projects/alma/develop/acs http: //kgb. ijs. si/KGB/ G. Chiozzi Feb, 12 2004 ALMA Common Software 29
Conclusion ALMA Project • 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 G. Chiozzi Feb, 12 2004 ALMA Common Software 30
Questions (& Answers) ALMA Project G. Chiozzi Feb, 12 2004 ALMA Common Software 31
Extra slides ALMA Project • What follow are extra slides, in case of questions G. Chiozzi Feb, 12 2004 ALMA Common Software 32
Entity data: XML value objects ALMA Project Why Value Objects? • Less remote calls -> Better performance • Run-time independence between subsystems increases reliability value object Transport by value remote object obj. get. Foo() obj. ge t. Foo( Subsystem 1 19. November 2002 ) Logic Subsystem 2 33
Transparent XML Integration ALMA Project Flat-XML API seen from outside XML 19. November 2002 container Comp Transparent-XML API implemented by component Comp Mapping code layer container 34
Transparent XML Integration ALMA Project IDL IF typedef xmlstring Obs. Project; … Obs. Project get. Obs. Project() Flat-XML IF IDL compiler mapping code “IDL-XML” code generator XML-Java binding: “Obs. Project” -> alma. data. Obs. Project 19. November 2002 . . . get. Obs. Project() return get. Obs. Project. marshal() Transparent-XML IF. . . alma. data. Obs. Project get. Obs. Project() 35


