ACS CORBA-based Common Software for ALMA and other projects

27
CORBA Controls Workshop, Grenoble 9-11 October, 2002 ACS ACS CORBA-based CORBA-based Common Software Common Software for for ALMA and other ALMA and other projects projects G.Chiozzi *, B.Gustafsson*, B.Jeram*, P.Sivera* M.Plesko**, M.Sekoranja**, G.Tkacik**, K.Zagar**, D.Fugate*** *ESO, ** CosyLab, *** NRAO

description

ACS CORBA-based Common Software for ALMA and other projects. G.Chiozzi *, B.Gustafsson*, B.Jeram*, P.Sivera* M.Plesko**, M.Sekoranja**, G.Tkacik**, K.Zagar**, D.Fugate*** *ESO, ** CosyLab, *** NRAO. Contents. What is ALMA? Why a common software? What are the key ideas in ACS? - PowerPoint PPT Presentation

Transcript of ACS CORBA-based Common Software for ALMA and other projects

Page 1: ACS CORBA-based  Common Software  for  ALMA and other projects

CORBA Controls Workshop, Grenoble 9-11 October, 2002

ACSACS CORBA-based CORBA-based

Common Software Common Software for for

ALMA and other projectsALMA and other projects

G.Chiozzi*, B.Gustafsson*, B.Jeram*, P.Sivera* M.Plesko**, M.Sekoranja**, G.Tkacik**, K.Zagar**, D.Fugate***

*ESO, ** CosyLab, *** NRAO

Page 2: ACS CORBA-based  Common Software  for  ALMA and other projects

2

ALMA Project

CORBA Controls 2002 ALMA Common Software

Contents

• What is ALMA?

• Why a common software?

• What are the key ideas in ACS?

• What is the Architecture of ACS

• How are we going to go on?

• Who is using ACS?

• How can you get more information

Page 3: ACS CORBA-based  Common Software  for  ALMA and other projects

3

ALMA Project

CORBA Controls 2002 ALMA Common Software

ALMA Project in Summary

• Joint project between astronomical organisations in Europe and North America (and Japan)

• 64 12-m antennas (25 microns, 0.6”)• Array configurations:150m-10 Km• Near S.Pedro de Atacama, Chile at 5000m• Imaging capability over 10-0.35mm range• 10 receiver bands• very high resolution correlator

Page 4: ACS CORBA-based  Common Software  for  ALMA and other projects

4

ALMA Project

CORBA Controls 2002 ALMA Common Software

ALMA Common Software (ACS)

ALMA project is highly distributed: many sites and many “development cultures”

• 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– standardisation offering environment with design patterns and

their implementation (rather than pure rules).– common configuration control/installation procedures

It worked on a comparable size project: the VLT

Page 5: ACS CORBA-based  Common Software  for  ALMA and other projects

5

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS start-up: Summer 1999

• Preliminary discussions on ACS objectives and structure:– experience from VLT and other projects– New technology: CORBA, Java, XML

• Decided to start from existing product, to make use of CORBA experience.

• Collaboration with JSI-Ljubljana to further develop existing system built for High Energy Physics (ICALEPCS ‘99, Trieste).

Page 6: ACS CORBA-based  Common Software  for  ALMA and other projects

6

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS Architecture

Applications

CORBA Middleware ACEDevelopment tools1 - Base tools

Device Drivers

Error System Logging SystemAstro librariesBACI Time SystemData channel2 - Core packages

Java Component

Config DB

C++ Application Framework

FITS librariesUIF libraries Scripting4 - Hi-level APIs and

tools

...more to come...Java Application Framework

ACS Installer

Command System

Alarm SystemArchiving System

MACI Manager 3 - Services

Java Container

Serialization Plugs

Activator

Page 7: ACS CORBA-based  Common Software  for  ALMA and other projects

7

ALMA Project

CORBA Controls 2002 ALMA Common Software

Component-Container Model

• A Component-Container based architecture emphasizes Separation of Concerns.

• Same idea as .NET, EJB, CCM

• Container manages components– Lifecycle interface (init,

start, stop, update)– Service interface (what

component offers)– Optional: security,

persistency, transactions…

Clien

t

...

Co

ntain

er

Component 1

Component 2

Component 3

Page 8: ACS CORBA-based  Common Software  for  ALMA and other projects

8

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS Deployment diagram

CDB

Manager(domain A)

CORBANamingService

Activator 1 Activator 2 Activator 3

Manager(domain B)

federation

AdministratorClient

AbeansGUI forControl

DO 1

DO 2DO 3

DO 2

DO 4

DO 5

Device

Page 9: ACS CORBA-based  Common Software  for  ALMA and other projects

9

ALMA Project

CORBA Controls 2002 ALMA Common Software

DO-Property-Characteristics

• DO: base class for any physical/logical Device(e.g. temperature sensor, motor)

• Each DO has Properties(e.g. status value, position - control/monitor points)

• Characteristics of Dos and Properties(Static data in Configuration DB, e.g. units, ranges, default values)

• ABeans

PropertyDO0..n0..n

0..n0..n

NamedComponent Characteristic0..n0..n

Property

DO_name()

DO

0..n0..n0..n0..n

NamedComponent

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

Characteristic0..n0..n

typeRWProperty<type>

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

typeROProperty<type>

get_sync()get_async()create_monitor()

Device(from Examples)

type

MonitorPoint(from Examples)

type

ControlPoint(from Exampl...

Control system Devices are Distributed Objects

Thermostat(from Exampl...

An example of Device

Examples of user defined classes:

Page 10: ACS CORBA-based  Common Software  for  ALMA and other projects

10

ALMA Project

CORBA Controls 2002 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 OO

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 11: ACS CORBA-based  Common Software  for  ALMA and other projects

11

ALMA Project

CORBA Controls 2002 ALMA Common Software

Configuration Database: DO Schemas

Page 12: ACS CORBA-based  Common Software  for  ALMA and other projects

12

ALMA Project

CORBA Controls 2002 ALMA Common Software

Abeans visual editing

Page 13: ACS CORBA-based  Common Software  for  ALMA and other projects

13

ALMA Project

CORBA Controls 2002 ALMA Common Software

TICS Control Panel

Page 14: ACS CORBA-based  Common Software  for  ALMA and other projects

14

ALMA Project

CORBA Controls 2002 ALMA Common Software

OE and Admin Client

Page 15: ACS CORBA-based  Common Software  for  ALMA and other projects

15

ALMA Project

CORBA Controls 2002 ALMA Common Software

Supported Platforms

• Operating system: Linux, SUN OS, (MS-Windows)

• Real-time: VME,VxWorks (Phase1), CAN bus

• Languages: C++, JAVA, Python

• CORBA middleware: TAO (& ACE) (C++), Orbacus (Java), Omniorb (Python), CORBA services.

Page 16: ACS CORBA-based  Common Software  for  ALMA and other projects

16

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS Documentation

Page 17: ACS CORBA-based  Common Software  for  ALMA and other projects

17

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS Installations

IRAM Granada

LofarUK ATC

DRAO Penticton

NRAO Socorro, VLA

NRAO Tucson

NRAO Charlotsville

ESO La Silla

IRAM Grenoble

ESO

NAOJ

IJS/Cosylab Ljubljana

AOT Trieste

MPI Bohn

ANKA

Uni. Bochum

Page 18: ACS CORBA-based  Common Software  for  ALMA and other projects

18

ALMA Project

CORBA Controls 2002 ALMA Common Software

ACS Status

• Oct. 2000: ACS v.0.0 (Prototype)• Dec. 2000: KP test• Sep. 2001: ACS Architecture Document• Sep.2001: ACS 1.0

• Apr. 2002: ACS 1.1 (support for TICS) In use in Test Interferometer Software (TICS) prototype

• Nov. 2002: ACS 2.0

We plan an incremental release every 6 months

Page 19: ACS CORBA-based  Common Software  for  ALMA and other projects

19

ALMA Project

CORBA Controls 2002 ALMA Common Software

ALMA SitesChajnantor

www.alma.nrao.edu/development/computing

www.eso.org/~gchiozzi/AlmaAcs

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

www.eso.org/projects/alma

Page 20: ACS CORBA-based  Common Software  for  ALMA and other projects

20

ALMA Project

CORBA Controls 2002 ALMA Common Software

Conclusion

• Developed based on the experience of both astronomical and accelerator control projects

• Can easily run on many platforms• Open source (GPL licence)• Free development tools and ORBs

We think that many other projects can use ACSA wider user’s base can provide valuable

feedback

Page 21: ACS CORBA-based  Common Software  for  ALMA and other projects

21

ALMA Project

CORBA Controls 2002 ALMA Common Software

Extra slides

The following pages contain some extra slides that we do not plan to show at the

conference, but that could be useful.

Page 22: ACS CORBA-based  Common Software  for  ALMA and other projects

22

ALMA Project

CORBA Controls 2002 ALMA Common Software

Data Channel

Data Publisher

Data subscriber

DataChannel

0..n0..n

push data

subscribe

pull datapush data

federateCORBA Notification Service

(from CORBA M iddleware) 0..n0..n

Page 23: ACS CORBA-based  Common Software  for  ALMA and other projects

23

ALMA Project

CORBA Controls 2002 ALMA Common Software

DO

Property

DO_name()

DO

0..n0..n0..n0..n

NamedComponent

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

Characteristic0..n0..n

typeRWProperty<type>

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

typeROProperty<type>

get_sync()get_async()create_monitor()

Device(from Examples)

type

MonitorPoint(from Examples)

type

ControlPoint(from Exampl...

Control system Devices are Distributed Objects

Thermostat(from Exampl...

An example of Device

Examples of user defined classes:

Page 24: ACS CORBA-based  Common Software  for  ALMA and other projects

24

ALMA Project

CORBA Controls 2002 ALMA Common Software

Logging

logs are sent to the central server when a low frequency tim eout expires or the buffer is full.Messages are filtered to com press identical m essages generated in a tim e period

Subject

Attach()Detach()Notify()

(f rom Data channel)

producer for logs

logMangerProxi

tim erbuffer

ACS_LOG()

0..n0..n

calls ACS_LOG() to send log

client for logs

Observer

Update()

(f rom Data channel)

Data Channel

0..n0..n

send logs to central ser...

sub scrib es to logs

un-sub scrib e to logs

send logs

Page 25: ACS CORBA-based  Common Software  for  ALMA and other projects

25

ALMA Project

CORBA Controls 2002 ALMA Common Software

Management and Access Control

NON-ACS Client(from Applications)

CORBA NamingServ ice(from CORBA Middleware)

resolve()

Object Explorer

Administrator

Administrator Client

Manager

get_COB()release_COB()shutdown()

bind(DO)

explore naming tree

ACS Client applicat ion(from Applications)

get_COB

release_COB

Activ ator

activ ate_DO()deactiv ate_DO()disconnect()shutdown()

1..n

1

1..n

1

DO(from Distributed Object)

use services

access propert.. .

COB

disable

construct

1+object

1

Page 26: ACS CORBA-based  Common Software  for  ALMA and other projects

26

ALMA Project

CORBA Controls 2002 ALMA Common Software

Archiving System

producer of monitor data producer for logs(from Logging System)

Relational Database

logMonitor(from Logging System)

monitorDisplay

archiveManager

through data channel

through data channel

store/retreive data

browse logs

browse monitor data

Page 27: ACS CORBA-based  Common Software  for  ALMA and other projects

27

ALMA Project

CORBA Controls 2002 ALMA Common Software

How much effort in ACS 1.1?

Source lines of code (for comments add about 10%) for:– ACS cmm Modules (code developed for ACS)– Java Abeans (mostly code inherited from ANKA)

SLOC Directory SLOC-by-Language (Sorted)• 61730 ACS cpp=61536,sh=129,tcl=28,sed=23,csh=14• 188820 Java java=188820

• Total Physical Source Lines of Code = 252019• Estimated Development Effort in Person-Years = 66.46

(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))• Total Estimated Cost to Develop = $ 8977317

(average salary = $56286/year, overhead = 2.4).

Data generated using 'SLOCCount' by David A. Wheelerhttp://www.dwheeler.com/sloccount/sloccount.html

More than 2000 pages of printable design/reference documentation