org.eso.ias.asce

Members list

Type members

Classlikes

The events to switch the state of the ASCE

The events to switch the state of the ASCE

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Broken
class Close
class Initialized
class Normal
class Shutdown
class Slow
Show all
object AsceStates extends Enumeration

The state of the ASCE

The state of the ASCE

Attributes

Supertypes
class Enumeration
trait Serializable
class Object
trait Matchable
class Any
Self type
AsceStates.type
case class Broken() extends ASCEStateEvent

The user provided TF is broken i.e it typically threw an exception.

The user provided TF is broken i.e it typically threw an exception.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class Close() extends ASCEStateEvent

The TF has been shutdown and the ASCE is now closed

The TF has been shutdown and the ASCE is now closed

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
class CompEleThreadFactory(val runningID: String) extends ThreadFactory

The thread factory for the threads spawn by the [[ComputingElement]] instrumented with its runningID.

The thread factory for the threads spawn by the [[ComputingElement]] instrumented with its runningID.

Attributes

Supertypes
trait ThreadFactory
class Object
trait Matchable
class Any
abstract class ComputingElement[T](val asceIdentifier: Identifier, var _output: InOut[T], initialInputs: Set[InOut[_]], val tfSetting: TransferFunctionSetting, validityThresholdSecs: Int, val props: Properties)

The Integrated Alarm System Computing Element (ASCE) is the basic unit of the IAS.

The Integrated Alarm System Computing Element (ASCE) is the basic unit of the IAS.

The ASCE is composed of an output, generated by the user provided script applied to the inputs (i.e. monitor points and/or other alarms): the ComputingElement changes its output when the input changes (for example the value of a monitor point changes).

The output of a ASCE is normally an alarm generated by digesting the values of the inputs of the component itself. But sometimes, the output is a value of a given type (for example an integer) to implement what we name synthetic parameters.

The inputs of the ASCE comes either from the BSDB (i.e. monitored systems or other DASUs) or from other ASCEs running in the same DASU. The initial set of inputs must contain all the possible inputs accepted by a ASCE. Such inputs will likely have a empty value at the beginning but they are needed for updating when the new input arrives. Note that inputs not provided in the constructor are rejected as unknown so it is mandatory to pass in the constructor all the possible inputs.

The user provides a JVM class in one of the supported languages to digest the inputs and produce the output. The transfer function of the object is invoked when the state of the inputs change. Which programming language the user wrote the object with is stored in the configuration database; programmatically it is visible in the TransferFunctionSetting object. Depending on the programming language, there might be some preparatory step before running the TF.

The class is abstract because the implementation of the transfer function depends on the programming language and must be mixed when instantiating the object.

The ASCE is a state machine (@see ComputingElementState) whose state changes during the life time of the ASCE for example after initialization or shutdown but also if the TF executor reports errors or is too slow.

Objects of this class are mutable.

The id of the ASCE does not change over time unless the ASCE is relocated. In such case a new ASCE must be built to correctly initialize the classes implementing the transfer function. For the same reason, if the transfer function, implemented by the user changes, then a new ASCE must be built.

The update of the output is triggered by the DASU: when it sends the inputs, the ASCE runs the TF and produces the new output.

The ASCE monitors when the execution time of the TF is too slow for a given amount of time. The slowness and the duration are specified in the TransferFunctionSetting class. The ASCE logs a messasge if the execution of the TF is slower than the max allowed time; if the slowness persists over the duration then the TF is marked as broken and will not be executed anymore.

Value parameters

_output:

The output generated by this Component after applying the script to the inputs It is not necessarily an alarm.

asceIdentifier:

The identifier of this Component

initialInputs:

The initial set of all the possible inputs.

props:

the java properties to pass to this component and the TF

tfSetting:

The definition of the implementation of the transfer function that manipulates the inputs to produce the new output

validityThresholdSecs

the threshold (seconds), including toelerance, to set the validity of the output taking into account when the timestamps of the inputs and the constraint possibly set in the TF

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait JavaTransfer[T]
trait ScalaTransfer[T]

The ComputingElement object to build a ComputingElement from the AsceDao red from the CDB

The ComputingElement object to build a ComputingElement from the AsceDao red from the CDB

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class ComputingElementState(val actualState: State)

The ASCE state

The ASCE state

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

The implementation of the ASCE state machine transitions

The implementation of the ASCE state machine transitions

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
abstract class FiniteStateMachineState[T <: Enumeration](val state: T)

The state machine for the ASCE

The state machine for the ASCE

The ASCE transitions through 6 different states during its life time

Attributes

Supertypes
class Object
trait Matchable
class Any
case class Initialized() extends ASCEStateEvent

The ASCE has been initialized: the TF class has been loaded and intialized and the ASCE is ready to produce the output

The ASCE has been initialized: the TF class has been loaded and intialized and the ASCE is ready to produce the output

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class InputsInitialized() extends ASCEStateEvent

All the possible inputs of the ASCE have been initialized: the TF can run and the ASCE can produce the putput

All the possible inputs of the ASCE have been initialized: the TF can run and the ASCE can produce the putput

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
class InvalidAsceStateTransitionException(actualState: State, transition: ASCEStateEvent) extends Exception

The exception thrown when the actual state does not accept a transition

The exception thrown when the actual state does not accept a transition

Attributes

Supertypes
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
case class Normal() extends ASCEStateEvent

The user provided TF is back to normal

The user provided TF is back to normal

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class Shutdown() extends ASCEStateEvent

The ASCE has been shutdown This state shuts down the TF

The ASCE has been shutdown This state shuts down the TF

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class Slow() extends ASCEStateEvent

The user provided TF is too slow

The user provided TF is too slow

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all