Upload
cindy
View
48
Download
0
Tags:
Embed Size (px)
DESCRIPTION
ACS ALMA Common software. G.Chiozzi and the ACS team. Contents. ACS Purpose and Scope ACS Packages Main ACS concepts and patterns Overview of some important ACS Services Conclusions Questions & Answers. Purpose and scope of ACS. ACS aims at providing an answer to the following needs: - PowerPoint PPT Presentation
Citation preview
NRAO/ESO videocon, Feb.12, 2004
ACSACSALMA Common softwareALMA Common software
G.Chiozzi and the ACS team
2
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Contents
• ACS Purpose and Scope• ACS Packages• Main ACS concepts and patterns• Overview of some important ACS Services• Conclusions• Questions & Answers
3
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Purpose and scope of ACS
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
4
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS Packages
Applications
CORBA Middleware ACEDevelopment tools1 - Base tools
Astro libraries(from Commercial/Shared packages)
FITS libraries(from Commercial/Shared packages)
Device Drivers
5 - Integrated APIs and tools
Error System
Logging System
Time System
Data channel
2 - Core components
ACS Component Configuration Database
Command System
Alarm System
SamplingArchiving System
3 - Services ACS Container Serialization Plugs
UIF libraries
Scripting4 - Hi-level APIs and tools
...more to come...
ACS InstallerACS Application Framework
5
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
CORBA + Container/Component
lifecycleinterface:init()run()restart()
functionalinterface:observe()
container serviceinterface:getComponent(other)Logger getLogger()
container
Com
p
Com
p
CORBAORBs
Services
other ACS
services
Manager deployment
configurations
6
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Component/Container: buy vs. build
• 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.
7
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Component’s client view
Com
p
IDLfunctionalinterface:observe()
Client(a component)
ACSManager
1 -Ask for reference to component
IDL stub2a – invoke c.observe()
Interface repository
2b.1 - Retrieve interface
2b.2 - Dynamic invocation
8
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Object Explorer
9
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Component’s Administrator View
• 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
CDB
Manager(domain A)
Cont 1 Cont 2 Cont 3
Manager(domain B)
federation
AdministratorClient
AbeansGUI forControl
DO 1DO 2
DO 3DO 2
DO 4DO 5
Device
10
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Administrator Client
11
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS Command Center
12
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Component-Property-Characteristics
• (Characteristic) Component: base class for any physical/logical Device(e.g. temperature sensor, motor)
• Each Component has Properties (e.g. status value, position - control/monitor points)
• Characteristics of Components and Properties(Static data in Configuration DB, e.g. units, ranges, default values)
• ABeans
CharacteristicModel Characteristic0..n0..n
CharacteristicComponent
0..n0..n
type
Property0..n0..n
ACS::Component
13
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Component-Property-Characteristics full model
CharacteristicModel
name()description()version()URI()get_interface()get_characteristic_by_name()find_characteristic()
Characteristic0..n0..n
type
ACS::RW<type>
set_sync()set_async()increment()decrement()
type
ACS::RO<type>
Device(from Examples)
type
MonitorPoint(from Examples)
type
ControlPoint(from Examples)
Control system Devices are (Characteristic) omponents
Thermostat(from Examples)
An example of Device
Examples of user defined classes:
CharacteristicComponent
0..n0..n
type
Property
DO_name()get_sync()get_async()create_monitor()
0..n0..n
ACS::Component
14
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Property Servant implementation
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)
typeDevIO
RW<type>Impl
type
DevIO
read()write()
typeDevIO
RO<type>Impl
DevIOMem DevIOCan DevIOSocket
CAN
<<bind>>Socket
<<bind>>
pointer
<<bind>>
IDL interfaces
Servant concrete implementation
Physical IO eccess
type
Property
DO_name()get_sync()get_async()create_monitor()
type
ACS::RO<type>
type
ACS::RW<type>
set_sync()set_async()increment()decrement()
15
ALMA Project
G.ChiozziFeb, 12 2004
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 object
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
16
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Configuration Database: DO Schemas
17
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Abeans and visual editing
18
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Configuration
Logging
Exception handling
…
Abeans
Application
Abeans Model(e.g. BACI)
Antenna• RA • DEC
Power Supply• Current• Readback• Status on(), reset(), …
Abeans Plug(e.g. ACS CORBA)
ABeans widgets
Abeans Engine
ABeans architecture
19
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS sample Mount Control Panel
20
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Data Channel
• 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 Publisher
Data subscriber
DataChannel
0..n0..n
push data
subscribe
pull datapush data
federateCORBA Notification Service
(from CORBA Middleware) 0..n0..n
21
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Logging System
Centralized Logging Host
HTTP Server
Relational Database
EventChannels Clientpush
Centralized Logging
XMLParser
DatabaseLogger Client
push
push
Filtering logic
Web Client
XSLTHTTP request/reply
Clientquery
SELECT UPDATE
SELECT
Out of scope of this document
Logs Publisherwrite_recordsImplements Log interface
• To publish any kind of status and diagnostic information for interested clients and archival.
• Based on CORBA Telecom Logging Service.
XML logs follow pre-defined schema
C++ API ACE Logging
Java API -> java.util.logging
ACS Log Service -> IDL
22
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Monitor Archiving system
23
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS Documentation:http://www.eso.org/projects/alma/develop/acs
24
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS Documentation:http://www.eso.org/projects/alma/develop/acs
25
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Supported Platforms
• Operating system: Linux, SUN OS, (MS-Windows)
• Real-time: VME,VxWorks, RTAI, CAN bus• Languages: C++, JAVA, Python• CORBA middleware: TAO (& ACE) (C++),
JacORB (Java), Omniorb (Python), CORBA services.
26
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS installations and projects
27
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS Development Plan
• 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
28
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ACS 3.1 and after
• 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!
29
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
ALMA SitesChajnantor
www.alma.nrao.edu/development/computing
http://www.eso.org/projects/alma/develop/acs
http://kgb.ijs.si/KGB/
www.eso.org/projects/alma
30
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Conclusion
• 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 ACSA wider user’s base can provide valuable
feedback
31
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Questions (& Answers)
32
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Extra slides
• What follow are extra slides, in case of questions
33
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Entity data: XML value objects
Why Value Objects?• Less remote calls -> Better performance• Run-time independence between subsystems
increases reliability
Subsystem2
Logic
obj.getFoo()
Subsystem1
obj.getFoo()
Transport by value
value objectremote
object
34
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
containerC
omp
Transparent XML Integration
container
Com
p
XMLC
omp
Flat-XML API seen from outside
Transparent-XML API implemented
by component
Mapping codelayer
XML
35
ALMA Project
G.ChiozziFeb, 12 2004
ALMA Common Software
Transparent XML Integration
“IDL-XML”code
generator
XML-Java binding:“ObsProject” ->
alma.data.ObsProject
Transparent-XML IF
...alma.data.ObsProject
getObsProject()
IDL compilertypedef xmlstring
ObsProject; …
ObsProjectgetObsProject()
IDL IF
Flat-XML IF...
getObsProject()
mapping codereturn
getObsProject.marshal()