nrao/eso videocon, feb.12, 2004 acs alma common software g.chiozzi and the acs team

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

Upload: bruce-wilkerson

Post on 18-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

NRAO/ESO videocon, Feb.12, 2004

ACSACSALMA Common softwareALMA Common software

G.Chiozzi and the ACS team

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

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

4

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Packages

Applications

CORBA Middleware ACEDevelopment tools

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

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

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.

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 stub

2a – invoke c.observe()

Interface repository

2b.1 - Retrieve interface

2b.2 - Dynamic invocation

8

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Object Explorer

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

10

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Administrator Client

11

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS Command Center

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

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

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()

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

16

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Configuration Database: DO Schemas

17

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Abeans and visual editing

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

19

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS sample Mount Control Panel

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 M iddleware) 0..n0..n

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

22

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Monitor Archiving system

23

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

24

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

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

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.

26

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

ACS installations and projects

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

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!

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

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

31

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Questions (& Answers)

32

ALMA Project

G.ChiozziFeb, 12 2004

ALMA Common Software

Extra slides

• What follow are extra slides, in case of questions

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

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

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 code

returngetObsProject.marshal()