acs alma common software

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

Upload: cindy

Post on 10-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

ACS ALMA Common software. G.Chiozzi and the ACS team. Contents. ACS Purpose and Scope ACS Packages Main ACS concepts and patterns Overview of some important ACS Services Conclusions Questions & Answers. Purpose and scope of ACS. ACS aims at providing an answer to the following needs: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ACS ALMA Common software

NRAO/ESO videocon, Feb.12, 2004

ACSACSALMA Common softwareALMA Common software

G.Chiozzi and the ACS team

Page 2: ACS ALMA Common software

2

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Contents

• ACS Purpose and Scope• ACS Packages• Main ACS concepts and patterns• Overview of some important ACS Services• Conclusions• Questions & Answers

Page 3: ACS ALMA Common software

3

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

Page 4: ACS ALMA Common software

4

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Packages

Applications

CORBA Middleware ACEDevelopment tools1 - Base tools

Astro libraries(from Commercial/Shared packages)

FITS libraries(from Commercial/Shared packages)

Device Drivers

5 - Integrated APIs and tools

Error System

Logging System

Time System

Data channel

2 - Core components

ACS Component Configuration Database

Command System

Alarm System

SamplingArchiving System

3 - Services ACS Container Serialization Plugs

UIF libraries

Scripting4 - Hi-level APIs and tools

...more to come...

ACS InstallerACS Application Framework

Page 5: ACS ALMA Common software

5

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

CORBA + Container/Component

lifecycleinterface:init()run()restart()

functionalinterface:observe()

container serviceinterface:getComponent(other)Logger getLogger()

container

Com

p

Com

p

CORBAORBs

Services

other ACS

services

Manager deployment

configurations

Page 6: ACS ALMA Common software

6

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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 an implementation, when available.

Page 7: ACS ALMA Common software

7

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Component’s client view

Com

p

IDLfunctionalinterface:observe()

Client(a component)

ACSManager

1 -Ask for reference to component

IDL stub2a – invoke c.observe()

Interface repository

2b.1 - Retrieve interface

2b.2 - Dynamic invocation

Page 8: ACS ALMA Common software

8

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Object Explorer

Page 9: ACS ALMA Common software

9

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

CDB

Manager(domain A)

Cont 1 Cont 2 Cont 3

Manager(domain B)

federation

AdministratorClient

AbeansGUI forControl

DO 1DO 2

DO 3DO 2

DO 4DO 5

Device

Page 10: ACS ALMA Common software

10

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Administrator Client

Page 11: ACS ALMA Common software

11

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Command Center

Page 12: ACS ALMA Common software

12

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

CharacteristicModel Characteristic0..n0..n

CharacteristicComponent

0..n0..n

type

Property0..n0..n

ACS::Component

Page 13: ACS ALMA Common software

13

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Component-Property-Characteristics full model

CharacteristicModel

name()description()version()URI()get_interface()get_characteristic_by_name()find_characteristic()

Characteristic0..n0..n

type

ACS::RW<type>

set_sync()set_async()increment()decrement()

type

ACS::RO<type>

Device(from Examples)

type

MonitorPoint(from Examples)

type

ControlPoint(from Examples)

Control system Devices are (Characteristic) omponents

Thermostat(from Examples)

An example of Device

Examples of user defined classes:

CharacteristicComponent

0..n0..n

type

Property

DO_name()get_sync()get_async()create_monitor()

0..n0..n

ACS::Component

Page 14: ACS ALMA Common software

14

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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)

typeDevIO

RW<type>Impl

type

DevIO

read()write()

typeDevIO

RO<type>Impl

DevIOMem DevIOCan DevIOSocket

CAN

<<bind>>Socket

<<bind>>

pointer

<<bind>>

IDL interfaces

Servant concrete implementation

Physical IO eccess

type

Property

DO_name()get_sync()get_async()create_monitor()

type

ACS::RO<type>

type

ACS::RW<type>

set_sync()set_async()increment()decrement()

Page 15: ACS ALMA Common software

15

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

DAL/CDB Server

Data client

CDB Administration

3 – Database clients

2 – Database Access Layer (DAL)

1 – Database engine

Read-writeadmin. interface

Read-onlyData interface

Page 16: ACS ALMA Common software

16

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Configuration Database: DO Schemas

Page 17: ACS ALMA Common software

17

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Abeans and visual editing

Page 18: ACS ALMA Common software

18

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Configuration

Logging

Exception handling

Abeans

Application

Abeans Model(e.g. BACI)

Antenna• RA • DEC

Power Supply• Current• Readback• Status on(), reset(), …

Abeans Plug(e.g. ACS CORBA)

ABeans widgets

Abeans Engine

ABeans architecture

Page 19: ACS ALMA Common software

19

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS sample Mount Control Panel

Page 20: ACS ALMA Common software

20

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

Data Publisher

Data subscriber

DataChannel

0..n0..n

push data

subscribe

pull datapush data

federateCORBA Notification Service

(from CORBA Middleware) 0..n0..n

Page 21: ACS ALMA Common software

21

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Logging System

Centralized Logging Host

HTTP Server

Relational Database

EventChannels Clientpush

Centralized Logging

XMLParser

DatabaseLogger Client

push

push

Filtering logic

Web Client

XSLTHTTP request/reply

Clientquery

SELECT UPDATE

SELECT

Out of scope of this document

Logs Publisherwrite_recordsImplements Log interface

• To publish any kind of status and diagnostic information for interested clients and archival.

• Based on CORBA Telecom Logging Service.

XML logs follow pre-defined schema

C++ API ACE Logging

Java API -> java.util.logging

ACS Log Service -> IDL

Page 22: ACS ALMA Common software

22

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Monitor Archiving system

Page 23: ACS ALMA Common software

23

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Documentation:http://www.eso.org/projects/alma/develop/acs

Page 24: ACS ALMA Common software

24

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Documentation:http://www.eso.org/projects/alma/develop/acs

Page 25: ACS ALMA Common software

25

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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.

Page 26: ACS ALMA Common software

26

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS installations and projects

Page 27: ACS ALMA Common software

27

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

Page 28: ACS ALMA Common software

28

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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 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!

Page 29: ACS ALMA Common software

29

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ALMA SitesChajnantor

www.alma.nrao.edu/development/computing

http://www.eso.org/projects/alma/develop/acs

http://kgb.ijs.si/KGB/

www.eso.org/projects/alma

Page 30: ACS ALMA Common software

30

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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 ACSA wider user’s base can provide valuable

feedback

Page 31: ACS ALMA Common software

31

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Questions (& Answers)

Page 32: ACS ALMA Common software

32

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Extra slides

• What follow are extra slides, in case of questions

Page 33: ACS ALMA Common software

33

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Entity data: XML value objects

Why Value Objects?• Less remote calls -> Better performance• Run-time independence between subsystems

increases reliability

Subsystem2

Logic

obj.getFoo()

Subsystem1

obj.getFoo()

Transport by value

value objectremote

object

Page 34: ACS ALMA Common software

34

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

containerC

omp

Transparent XML Integration

container

Com

p

XMLC

omp

Flat-XML API seen from outside

Transparent-XML API implemented

by component

Mapping codelayer

XML

Page 35: ACS ALMA Common software

35

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Transparent XML Integration

“IDL-XML”code

generator

XML-Java binding:“ObsProject” ->

alma.data.ObsProject

Transparent-XML IF

...alma.data.ObsProject

getObsProject()

IDL compilertypedef xmlstring

ObsProject; …

ObsProjectgetObsProject()

IDL IF

Flat-XML IF...

getObsProject()

mapping codereturn

getObsProject.marshal()