| |
Scenario analysis
Marco Cattaneo
Scenario
URD Appl-3:
An algorithm is used both offline and as a monitoring process online. In the online environment it should send an alarm to the DCS, whereas offline it suffices to write a warning in a log file.
Coverage
This scenario covers the following components: AppManager, Algorithm, JobOptionsSvc, MessageSvc. It covers the following interfaces: IQueryOptions, ISetProperty, IMessage, IMsgLogger.
Assumptions
In order to test the default options mechanism, we assume that the default destination for error messages is the standard error stream.
In this scenario we are not interested in the details of Algorithm creation. We assume these are covered in another scenario. We are not interested in the mechanism by which the algorithm decides that an alarm should be raised.
General Method.
- The AppManager creates the JobOptionsSvc
- The AppManager creates the MessageSvc
- The AppManager sets the default properties of the MessageSvc
- Problem: the mechanism for setting default properties is envisaged only for algorithms via the AlgFactory (which, BTW, is not in our list of components)
- MessageSvc calls the setMyProperties method of the IQueryOptions interface of JobOptionsSvc
- JobOptionsSvc looks for any specific options for MessageSvc provided by the user. If it finds any, it sets them by calling the IsetProperty interface of MessageSvc
- The AppManager creates the AlgFactory
- The AlgFactory creates the Algorithm
- The Algorithm detects an alarm condition. It reports it via the IMessage interface of MessageSvc
- MessageSvc dispatches the message to the appropriate output destination according to the Job Options - if the output destination is anything other than standard output or standard error, it does this via the IMsgLogger interface
- The IMsgLogger interface will not be implemented in the first release - thus it would not be possible to report to the DCS in the first release
- Specific Method
In the online case, the user provides a job option for the MessageSvc specifying that alarms must go to the DCS.
In the offline case, no job options are necessary, the default destination is correct if the user directs the standard error stream to the job's logfile.
|