ICALEPCS’2005 - Geneva
ACS in ALMA 1
ACS in ALMA
Allen Farris
National Radio Astronomy Observatory
Lead, ALMA Control System
ICALEPCS’2005 - Geneva
ACS in ALMA 2
The ALMA Project(Atacama Large Millimeter Array)
• 64 x 12m antennas , 30-950 GHz• Array configurations:150 m-14 Km• Near S. Pedro de Atacama, Chile at 5000 m• EU and North America as equal partners• Japan will add Compact Array:
12 x 7m + 4 x 12m antennas and extra correlator, receivers
• 2 prototype antennas (in Socorro, NM)• Construction phase 2003-2011• Early Science foreseen for 2009
ICALEPCS’2005 - Geneva
ACS in ALMA 3
ALMA
ICALEPCS’2005 - Geneva
ACS in ALMA 4
ALMA Computer Network
• In addition to non-real-time computers, ALMA will have over 82 computers that operate in real-time that may be separated by distances of 14 Km.
• ALMA makes heavy use of CORBA for distributed processing.
• Many parts of the system are in Java, but critical real-time code is in C++. Python is also used as a high-level scripting language.
ICALEPCS’2005 - Geneva
ACS in ALMA 5
Physical Architecture
weather station
ARTMArray Real Time Machine
Maser
GPS
AM
B (
CA
N)
Correlator ControlComputer (CCC)
Correlator
64 antennas
N stations
Gb Ethernet (on fiber)
Operator Console
Disk array
Archive Processor
Array Control Computer
Quick-LookSubsystem
CalibrationSubsystem
SchedulingSubsystem
AOS (5000m)
OSF (2800m)
Raw
cor
rela
tor
data
(4M
b/s
(av)
, 40M
b/s
(pea
k)
Gb
Eth
erne
t (on
fibe
r)
Gb
Eth
erne
t (on
fibe
r)
LO Generation
High-speed switched network
100 Mbps Shared Ethernet
Antenna Control UnitACU
Antenna Based Systems
Bridge
Front-endElectronics
Nutator
ABMAntenna Bus Master
AM
B (
CA
N)
Antenna
Gb Ethernet (on fiber)
Gb
Eth
erne
t (on
fibe
r)
Dedicated fiber optic cable
MultipleAMB buses
ControlSubsystem
1 pulse/s
Correlator DataProcessor (CDP)
CA
NFPDP
Digitizers
Back-endElectronics
Switch
Switch
2 Mb/s (av), 20M
b/s (peak)
ExecutiveSubsystem
ICALEPCS’2005 - Geneva
ACS in ALMA 6
Software Context
ObservationPreparation
Scheduling
Data ReductionPipeline
Archive
Executive
ALMA Common Software
PrincipalInvestigator
1. Create observing project
2. Store observingproject
3. Get projectdefinition
4. Dispatch scheduling block id
6. Start data reduction
8. Notify PI
7.1. Get raw data & meta-data
7.2. Store science results
9. Get projectdata
ArchiveResearcher
TelescopeOperator
f. Get science data
d. Notifyof
SpecialCondition
e. StartStop
Configure
c. Alter Schedule / Override action
Control System
Correlator
Calibration Pipeline
Quick Look Pipeline
5. Execute scheduling block
5.2 Setup correlator
5.3. Storeraw data
5.4. Storemeta-data
5.6. Store calibration results
5.7. Store quick-look results
Primary functional paths Additional functions ALMA software subsystem external agent
Real-time
a. Monitorpoints
b. Monitorpoints
5.5b. Access raw data & meta-data
h. Store admin data
g. breakpointresponse
5.5a. Access raw data & meta-data
5.1. Get SB
ICALEPCS’2005 - Geneva
ACS in ALMA 7
Major Features of ACS
• Component/Container model
• Properties of Components
• Notification Channels
• Alarms
ICALEPCS’2005 - Geneva
ACS in ALMA 8
Component/Container Model
• Important conceptually and architecturally: This is the major feature that allows us to manage and access objects via CORBA.
• All major software modules (a collection of classes) are components that run under the control of a container.
• The ACS Manager controls the deployment of containers throughout the network.
ICALEPCS’2005 - Geneva
ACS in ALMA 9
Containers
• Containers are language specific: either C++, Java or Python.
• Containers manage the lifecycle of components. When a client requests the services of a component the container loads it (if it isn’t already loaded) and gives the client access to it.
• Containers provide services to components, such as logging, error handling, and access to other components.
ICALEPCS’2005 - Geneva
ACS in ALMA 10
Components
• A component is a CORBA object with an IDL interface that is available to clients.
• Crafting a component is fairly easy: An “ordinary” class (in Java for example) is required to:– Implement certain ACS lifecycle methods required
of all components and,– Implement the public IDL methods that it makes
available to external clients.
ICALEPCS’2005 - Geneva
ACS in ALMA 11
Use of Components and Containers in Control
• The Control system uses all three types of containers: Java, C++, and Python.
• Every antenna in ALMA has its own computer and its own container on that computer.
• Each hardware device on the antenna is represented as a component in that antenna’s container.
• In addition, the antenna itself is a component that is commanded and controlled by the Master Component that controls the entire ALMA array.
ICALEPCS’2005 - Geneva
ACS in ALMA 12
Properties of Components
• Components may define properties.• These may be hardware device monitor points such as
the value of a voltage, temperature, frequency setting, or a state variable (busy, idle, error, etc.).
• ACS provides facilities for monitoring properties based on time intervals or other logical criteria (such as when value changes by a certain amount).
• Values of properties are gathered and stored permanently in the archive. This is a very important part of the Control system.
ICALEPCS’2005 - Geneva
ACS in ALMA 13
Notification Channels
• Notification channels provide asynchronous communication across the ALMA network.
• Based on the publish/subscribe model: any subsystem may create a notification channel and publish events (defined using IDL structs) and any interested client may subscribe.
• Control uses two notification channels: an “external” one for communication with other subsystems and an “internal” one that is used to command antennas and other real-time components.
ICALEPCS’2005 - Geneva
ACS in ALMA 14
Alarms
• ACS will release a new version of alarms in its 5.0 version.
• Control will make heavy use of alarms. This is very important for managing error situations.
• Example: If the temperature in an antenna back-end rises beyond some limit, the back-end devices will be shut down and the power supply turned off.
ICALEPCS’2005 - Geneva
ACS in ALMA 15
Why have ACS?
• ACS stands for ALMA Common Software. It functions as a kind of architectural cement that unifies the system into a coherent structure.
• ACS is very important as an insulating layer between our software and CORBA.– We want our software to be as independent of CORBA as
is reasonable.
– We want to depend on CORBA concepts and be relatively independent of specific CORBA implementations.