Download presentation
Presentation is loading. Please wait.
1
ACS Course Component Activation
H. Sommer A number of papers on the ALMA project and on ACS have been presented in August at the SPIE Conference in Kona, Hawaii: the ALMA Project has been introduced in the paper ACS in paper (G.Chiozzi et al.) the overall ALMA software Architecture in (J.Schwarz, G.Raffi). theALMA Test Interferometer Control Software in paper (R.G..Marson, B.Glendenning). In this presentation we are going to describe the ALMA Common Software (ACS) that is under development as a set of common software component to be used for the development of any ALMA subsystem. This work is responsibility of an international team mainly based at ESO and in tight collaboration with the JSI in Ljubljana. A part from the authors of the paper, we want to thank here the essential contributions to ACS from other members of the ALMA SW community. ESO - Garching 23 June – 02 July, 2003
2
Component Initialization
lifecycle method initialize() may request component references C1 C3 Container1 C2 Container2 C4 vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator activate(“C1”) get(“C2”) activate(“C2”) Manager Garching, 23 June – 02 July 2003 ALMA Common Software course
3
Component Initialization
Lifecycle IF methods initialize() and execute() are the earliest chances for a component to obtain references to other components Circular activation attempt will result in deadlock or failure Otherwise no known issues (since ACS 2.1 with JacORB) Special component state during initialization: component reference can’t be retrieved, and thus no functional methods can be called before a component has returned from initialize() and execute() vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
4
Component Initialization Reading the Log output
Jul 1, :07:50 AM alma.acs.container.AcsContainer activate_COB INFO: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< INFO: activate_COB: handle= name=IDENTIFIER_ARCHIVE class=alma.archive.helpers.IdentifierHelper type=IDL:alma/xmlstore/Identifier:1.0 […other messages...] Jul 1, :07:51 AM alma.acs.container.AcsContainer activate_COB INFO: component IDENTIFIER_ARCHIVE activated and initialized. INFO: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
5
Component Initialization Reading the Log output (cont’d)
If during component activation another component must be activated by the same Java container (e.g. because this is requested in initialize()), we’ll see nested <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< …comp1 activation until initialize <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< …complete comp2 activation >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> …comp1 activation after initialize >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> lines in the log output which leverage quick orientation vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
6
ALMA Common Software course
Example 1 1) OBSPREP/ProjectRepository alma.ProjectRepositoryIF.LightweightProjectRepositoryImpl.LightweightProjectRepositoryImpl#initialize() 2a) ARCHIVE/Archive alma.archive.components.OperationalImpl#initialize() 2b) ARCHIVE/Archive alma.archive.components.AdministrativeImpl#initialize() 3) ARCHIVE/Database alma.archive.database.xindice.XindiceDatabaseImpl vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
7
ALMA Common Software course
Example 2 1) ACS/…/jcontexmpl alma.demo.XmlComponentImpl.XmlComponentImpl#sayHello() 1) ACS/…/jcontexmpl alma.demo.HelloLampImpl.HelloLampImpl#initialize() 3) acsexmpl LAMP COB vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
8
ALMA Common Software course
After initialization Once a component has been activated, getting references to other components is even less critical. From any functional method, a call to ContainerServices#getComponent(other) will retrieve the reference from the manager. Even circular dependencies are no longer an issue. vollautomatische Ablaufsteuerung Ueberwachung durch Admin/Operator Garching, 23 June – 02 July 2003 ALMA Common Software course
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.