Auxiliary Telescopes Control Software

Download Report

Transcript Auxiliary Telescopes Control Software

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
CORBA Controls Workshop, Grenoble 9-11 October, 2002
Contents
ALMA Project
•
•
•
•
•
•
•
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
CORBA Controls 2002
ALMA Common Software
2
ALMA Project in Summary
ALMA Project
• 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
CORBA Controls 2002
ALMA Common Software
3
ALMA Common Software
(ACS)
ALMA Project
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
CORBA Controls 2002
ALMA Common Software
4
ACS start-up: Summer 1999
ALMA Project
• 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).
CORBA Controls 2002
ALMA Common Software
5
ACS Architecture
ALMA Project
ACS Installer
Applications
UIF libraries
4 - Hi-level APIs and
tools
3 - Services
2 - Core packages
1 - Base tools
MACI Manager
BACI
CORBA Controls 2002
Activator
Java
Component
Development
tools
Scripting
C++ Application
Framework
Java
Container
Config DB
Serialization
Plugs
Data channel
Java Application
Framework
Archiving
System
FITS libraries
Command
System
Astro libraries Error System
CORBA Middleware
ALMA Common Software
...more to come...
Alarm System
Logging System Time System
ACE
Device Drivers
6
Component-Container Model
ALMA Project
Component 1
CORBA Controls 2002
ALMA Common Software
...
– Lifecycle interface (init,
start, stop, update)
– Service interface (what
component offers)
– Optional: security,
persistency, transactions…
Component 2
Container
Client
• A Component-Container
based architecture
emphasizes Separation of
Concerns.
• Same idea as .NET, EJB,
CCM
• Container manages
components
Component 3
7
ACS Deployment diagram
ALMA Project
Abeans
GUI for
Control
Administrator
Client
federation
Manager
Manager
(domain A)
(domain B)
CORBA
Naming
Service
CDB
Activator 1
DO 1
Activator 2
DO 3
DO 2
Activator 3
DO 4
DO 2
DO 5
Device
CORBA Controls 2002
ALMA Common Software
8
DO-Property-Characteristics
ALMA Project
• DO: base class for any
physical/logical Device
NamedComponent
name()
description()
version()
URI()
get_interface()
get_characteristic_by_name()
find_characteristic()
(e.g. temperature sensor, motor)
0..n
Characteristic
Property
0..n
DO_name()
• Characteristics of Dos and
Properties
0..n
DO
Property
type
ROProperty<type>
0..n
get_sync()
get_async()
create_monitor()
type
RWProperty<type>
set_sync()
set_async()
increment()
decrement()
(Static data in Configuration DB,
e.g. units, ranges, default values)
Examples of user defined classes:
Control system Devices
are Distributed Objects
An example of
Device
CORBA Controls 2002
Characteristic
DO
(e.g. status value, position control/monitor points)
• ABeans
0..n
NamedComponent
• Each DO has Properties
0..n
Device
(from Examples)
type
MonitorPoint
(from Examples)
type
ControlPoint
(from Exampl...
Thermostat
(from Exampl...
ALMA Common Software
9
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 OO
data definition and access.
CORBA Controls 2002
Readonly
Data
interface
CDB
Administrati
Read-write on
admin.
interface
ALMA Common Software
Database
10
Configuration Database:
DO Schemas
ALMA Project
CORBA Controls 2002
ALMA Common Software
11
Abeans visual editing
ALMA Project
CORBA Controls 2002
ALMA Common Software
12
TICS Control Panel
ALMA Project
CORBA Controls 2002
ALMA Common Software
13
OE and Admin Client
ALMA Project
CORBA Controls 2002
ALMA Common Software
14
Supported Platforms
ALMA Project
• Operating system: Linux, SUN OS, (MSWindows)
• Real-time: VME,VxWorks (Phase1), CAN bus
• Languages: C++, JAVA, Python
• CORBA middleware: TAO (& ACE) (C++),
Orbacus (Java), Omniorb (Python), CORBA
services.
CORBA Controls 2002
ALMA Common Software
15
ACS Documentation
ALMA Project
CORBA Controls 2002
ALMA Common Software
16
ACS Installations
ALMA Project
Uni. Bochum
UK ATC
Lofar
MPI Bohn
DRAO
Penticton
ESO
NRAO Tucson
NAOJ
NRAO Socorro,
VLA
IJS/Cosylab
Ljubljana
NRAO Charlotsville
ESO La Silla
AOT Trieste
IRAM Grenoble
IRAM Granada
CORBA Controls 2002
ALMA Common Software
ANKA
17
ACS Status
ALMA Project
•
•
•
•
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
CORBA Controls 2002
ALMA Common Software
18
ALMA Sites
Chajnantor
ALMA Project
www.eso.org/projects/alma
www.alma.nrao.edu/development/computing
www.eso.org/~gchiozzi/AlmaAcs
http://kgb.ijs.si/KGB/
CORBA Controls 2002
ALMA Common Software
19
Conclusion
ALMA Project
• 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 ACS
A wider user’s base can provide valuable
feedback
CORBA Controls 2002
ALMA Common Software
20
Extra slides
ALMA Project
The following pages contain some extra slides
that we do not plan to show at the
conference, but that could be useful.
CORBA Controls 2002
ALMA Common Software
21
Data Channel
ALMA Project
Data
subscriber
subscribe
push data
pull data
CORBA Notification
Service
(from CORBA Middleware)
DataChannel
federate
0..n
push data
0..n
Data Publisher
CORBA Controls 2002
ALMA Common Software
22
DO
ALMA Project
NamedComponent
name()
description()
version()
URI()
get_interface()
get_characteristic_by_name()
find_characteristic()
0..n
Characteristic
DO
0..n
0..n
Property
DO_name()
type
ROProperty<type>
get_sync()
get_async()
create_monitor()
type
RWProperty<type>
set_sync()
set_async()
increment()
decrement()
Examples of user defined classes:
Control system Devices
are Distributed Objects
An example of
Device
CORBA Controls 2002
Device
(from Examples)
type
MonitorPoint
(from Examples)
type
ControlPoint
(from Exampl...
Thermostat
(from Exampl...
ALMA Common Software
23
Logging
ALMA Project
CORBA Controls 2002
ALMA Common Software
24
Management and Access Control
ALMA Project
CORBA Controls 2002
ALMA Common Software
25
Archiving System
ALMA Project
Relational Database
logMonitor
(from Loggi ng System)
store/retreive data
browse logs
archiveManager
browse monitor data
monitorDisplay
through data channel
through data channel
producer of monitor data
producer for logs
(from Loggi ng System)
CORBA Controls 2002
ALMA Common Software
26
How much effort in ACS 1.1?
ALMA Project
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
61730
188820
Directory
ACS
Java
SLOC-by-Language (Sorted)
cpp=61536,sh=129,tcl=28,sed=23,csh=14
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. Wheeler
http://www.dwheeler.com/sloccount/sloccount.html
More than 2000 pages of printable design/reference documentation
CORBA Controls 2002
ALMA Common Software
27