ACS
ALMA Common software
G.Chiozzi and the ACS team
NRAO/ESO videocon, Feb.12, 2004
Contents
ALMA Project
•
•
•
•
•
•
ACS Purpose and Scope
ACS Packages
Main ACS concepts and patterns
Overview of some important ACS Services
Conclusions
Questions & Answers
G.Chiozzi
Feb, 12 2004
ALMA Common Software
2
Purpose and scope of ACS
ALMA Project
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
G.Chiozzi
Feb, 12 2004
ALMA Common Software
3
ACS Packages
ALMA Project
Applications
4 - Hi-level
APIs and tools
3 - Services
2 - Core
components
UIF
libraries
ACS Container
ACS Component
Scripting
ACS Application
Framework
Serializati Archiving
on Plugs
System
Configuration
Database
ACS Installer
Command
System
Data
channel
Error
System
...more to
come...
Alarm
System
Sampling
Logging
System
5 - Integrated
APIs and tools
FITS libraries
(from Commercial/Shared packages)
Time
System
Astro libraries
(from Commercial/Shared packages)
Device Drivers
1 - Base tools
G.Chiozzi
Feb, 12 2004
Developm
ent tools
CORBA Middleware
ACE
ALMA Common Software
4
CORBA +
Container/Component
ALMA Project
container service
interface:
functional
interface:
lifecycle
interface:
init()
run()
restart()
G.Chiozzi
Feb, 12 2004
Comp
observe()
Comp
getComponent(other)
Logger getLogger()
container
CORBA
Manager
ORBs
Services
deployment
configurations
ALMA Common Software
other
ACS
services
5
Component/Container: buy vs.
build
ALMA Project
• 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.
G.Chiozzi
Feb, 12 2004
ALMA Common Software
6
Component’s client view
ALMA Project
IDL
functional
interface:
ACS
Manager
1 -Ask for reference
to component
observe()
2a – invoke c.observe()
Client
(a component)
2b.2 - Dynamic invocation
Comp
IDL stub
2b.1 - Retrieve interface
Interface repository
G.Chiozzi
Feb, 12 2004
ALMA Common Software
7
Object Explorer
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
8
Component’s Administrator
View
ALMA Project
• 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
Abeans
GUI for
Control
Administrator
Client
federation
Manager
Manager
(domain A)
(domain B)
CDB
Cont 1
DO 1
DO 2
Cont 2
DO 3
DO 2
Cont 3
DO 4
DO 5
Device
G.Chiozzi
Feb, 12 2004
ALMA Common Software
9
Administrator Client
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
10
ACS Command Center
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
11
Component-PropertyCharacteristics
ALMA Project
• (Characteristic) Component:
base class for any
physical/logical Device
(e.g. temperature sensor, motor)
ACS::Component
CharacteristicModel
0..n Characteristic
• Each Component has
Properties (e.g. status value,
position - control/monitor points)
• Characteristics of Components
and Properties
type
CharacteristicComponent
0..n
Property
0..n
(Static data in Configuration DB,
e.g. units, ranges, default values)
• ABeans
G.Chiozzi
Feb, 12 2004
ALMA Common Software
12
Component-Property-Characteristics
full model
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
13
Property Servant implementation
ALMA Project
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)
G.Chiozzi
Feb, 12 2004
ALMA Common Software
14
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 object
data definition and access.
G.Chiozzi
Feb, 12 2004
Readonly
Data
interface
CDB
Administrati
Read-write on
admin.
interface
ALMA Common Software
Database
15
Configuration Database:
DO Schemas
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
16
Abeans and visual editing
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
17
ABeans architecture
ALMA Project
ABeans widgets
Abeans Application
Power Supply
• Current
• Readback
• Status
on(), reset(), …
Configuration
Antenna
• RA
• DEC
Logging
Exception handling
Abeans Model
(e.g. BACI)
…
Abeans Engine
Abeans Plug
(e.g. ACS CORBA)
G.Chiozzi
Feb, 12 2004
ALMA Common Software
18
ACS sample Mount Control Panel
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
19
Data Channel
ALMA Project
• 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
subscriber
subscribe
push data
pull data
CORBA Notification
Service
(from CORBA Middleware)
DataChannel
federate
0..n
push data
0..n
Data Publisher
G.Chiozzi
Feb, 12 2004
ALMA Common Software
20
Logging System
ALMA Project
Centralized Logging Host
HTTP request/reply
HTTP Server
• To publish any kind of status
and diagnostic information for
interested clients and archival.
• Based on CORBA Telecom
Logging Service.
Web Client
XSLT
SELECT
Relational Database
SELECT
UPDATE
Database
Logger Client
query
Client
push
Client
C++ API  ACE Logging
push
XML
Parser
Event
Channels
Java API -> java.util.logging
push
ACS Log Service -> IDL
Filtering logic
Centralized Logging
Implements Log interface
write_records
Out of scope of this document
G.Chiozzi
Feb, 12 2004
Logs Publisher
XML logs follow
pre-defined schema
ALMA Common Software
21
Monitor Archiving system
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
22
ACS Documentation:
http://www.eso.org/projects/alma/develop/acs
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
23
ACS Documentation:
http://www.eso.org/projects/alma/develop/acs
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
24
Supported Platforms
ALMA Project
• Operating system: Linux, SUN OS, (MSWindows)
• Real-time: VME,VxWorks, RTAI, CAN bus
• Languages: C++, JAVA, Python
• CORBA middleware: TAO (& ACE) (C++),
JacORB (Java), Omniorb (Python), CORBA
services.
G.Chiozzi
Feb, 12 2004
ALMA Common Software
25
ACS installations and projects
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
26
ACS Development Plan
ALMA Project
• 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
G.Chiozzi
Feb, 12 2004
ALMA Common Software
27
ACS 3.1 and after
ALMA Project
• 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!
G.Chiozzi
Feb, 12 2004
ALMA Common Software
28
ALMA Sites
Chajnantor
ALMA Project
www.eso.org/projects/alma
www.alma.nrao.edu/development/computing
http://www.eso.org/projects/alma/develop/acs
http://kgb.ijs.si/KGB/
G.Chiozzi
Feb, 12 2004
ALMA Common Software
29
Conclusion
ALMA Project
• 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 ACS
A wider user’s base can provide valuable
feedback
G.Chiozzi
Feb, 12 2004
ALMA Common Software
30
Questions (& Answers)
ALMA Project
G.Chiozzi
Feb, 12 2004
ALMA Common Software
31
Extra slides
ALMA Project
• What follow are extra slides, in case of
questions
G.Chiozzi
Feb, 12 2004
ALMA Common Software
32
Entity data: XML value
objects
ALMA Project
Why Value Objects?
• Less remote calls -> Better performance
• Run-time independence between subsystems
increases reliability
value
object
Transport
by value
remote
object
obj.getFoo()
Logic
Subsystem1
G.Chiozzi
Feb, 12 2004
Subsystem2
ALMA Common Software
33
Transparent XML Integration
ALMA Project
Flat-XML API
seen from outside
XML
XML
G.Chiozzi
Feb, 12 2004
container
ALMA Common Software
Comp
Comp
Transparent-XML
API implemented
by component
Comp
Mapping code
layer
container
34
Transparent XML Integration
ALMA Project
IDL IF
typedef xmlstring
ObsProject;
…
ObsProject
getObsProject()
Flat-XML IF
IDL
compiler
mapping code
“IDL-XML”
code
generator
XML-Java binding:
“ObsProject” ->
alma.data.ObsProject
G.Chiozzi
Feb, 12 2004
...
getObsProject()
return
getObsProject.marshal()
Transparent-XML IF
...
alma.data.ObsProject
getObsProject()
ALMA Common Software
35
Descargar

Auxiliary Telescopes Control Software