View
46
Download
0
Category
Tags:
Preview:
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
Citation preview
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
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
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
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
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).
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
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
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
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:
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
11
ALMA Project
CORBA Controls 2002 ALMA Common Software
Configuration Database: DO Schemas
12
ALMA Project
CORBA Controls 2002 ALMA Common Software
Abeans visual editing
13
ALMA Project
CORBA Controls 2002 ALMA Common Software
TICS Control Panel
14
ALMA Project
CORBA Controls 2002 ALMA Common Software
OE and Admin Client
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.
16
ALMA Project
CORBA Controls 2002 ALMA Common Software
ACS Documentation
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
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
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
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
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.
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
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:
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
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
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
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
Recommended