Скачать презентацию ACS ALMA Common software G Chiozzi and the Скачать презентацию ACS ALMA Common software G Chiozzi and the

9af69bfd21483c7d81cab59415628094.ppt

  • Количество слайдов: 35

ACS ALMA Common software G. Chiozzi and the ACS team NRAO/ESO videocon, Feb. 12, 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 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 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 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 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 –. 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 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 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 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 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 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. 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 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. 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 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 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 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 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 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 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 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 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 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 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, 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 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 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: – 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. 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 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 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 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 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 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 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