170 likes | 248 Views
Middle-tier servers for CMW. Bartek Paszkowski AB-CO-FC. Outline. Overview Requirements Implementation Current status. Outline. Overview Requirements Implementation Current status. Overview. Project goal
E N D
Middle-tier servers for CMW Bartek Paszkowski AB-CO-FC
Outline • Overview • Requirements • Implementation • Current status
Outline • Overview • Requirements • Implementation • Current status
Overview • Project goal • Provide a solution based on CMW for Controls standard services (Alarms, Logging) that will decrease the load on Front End computers • Make a re-usable framework for CMW middle-tier servers to reduce their implementation cost • Target applications • Integration of PS equipment surveillance into GTPM • Integration of PS alarms monitoring into Laser • Data concentrator for Windows passerelle • Logging?
Architecture GTPM Logging Service LHC Alarm Service RDA HTTP JMS MTS (middle tier server) Data distribution Data treatment Data collection RDA LynxOS Front End LynxOS Front End LynxOS Front End
Outline • Overview • Requirements • Implementation • Current status
Requirements • “on change” subscription (GTPM, passerelle) or “on change” push (LHC Alarms Service) for virtual device/virtual property that minimize Front End load • Requirements of both LHC Alarms Service and Logging service need to be analyzed to provide additional functionality of Data Distribution layer (like polling mechanism) • Users should easily define virtual devices • Functionality adjustable through configuration files • Frequent use of creational patterns
Outline • Overview • Requirements • Implementation • Current status
Implementation • Data collection • Acquires data for given client (IOListener) from given I/O point (device/property/cycle selector) • Data acquired “on change” • Device represented by a device handle • Clients for one I/O point stored in one I/O subscription object • Device handles are retrieved from a device handle pool
Implementation • Data treatment • Calculates and stores value of a virtual property • Introduces virtual devices and virtual properties • Virtual device • is a set of virtual properties that can be monitored, • is created by virtual device builder that uses virtual device meta data • Standard way of creating virtual device meta data is by reading XML configuration file (standard virtual device builder). However other builders may be provided: • for GTPM virtual devices creation is based on database description (working set) • Virtual devices are retrieved from virtual device pool
Implementation • Data treatment • Virtual property • subscribes/unsubscribes for I/O points • stores data of base device/base property pairs for a subscribed cycle selector (I/O points) and provides business logic to calculate its value • Virtual property propagates calculated value for a subscribed cycle selector if at least one I/O point changed its value (however Data Distribution layer can poll this value)
Implementation • Virtual devices XML configuration file example <vdevices> <vdevice name='TST.ALARMDEV'> <vproperties> <vproperty name='ALARMCNT' class="core.properties.CounterVirtualProperty"> <base> <baseDevices> <device name='TST.DEV1' /> <device name='TST.DEV2' /> <device name='TST.DEV3' /> </baseDevices> <baseProperties> <property name='ALARM1' /> </baseProperties> </base> </vproperty> </vproperties> </vdevice> </vdevices>
Implementation • Data distribution • Distributes data to end clients (GTPM, LHC Alarms Service,Logging Service) • Introduces MTS service along with subclasses (adapters) in order to interface with end clients • subscription for virtual device/virtual property for a given cycle selector is done either dynamically (GTPM, passerelle) or statically (based on XML configuration file) for LHC Alarms Service and Logging Service
GTPM example • Virtual device based on meta data retrieved from database (working set) • Virtual devices created statically (at start up time) • Each virtual device has only one virtual property – alarm counter, that counts non zeros alarms’ values
GTPM RDA Monitor LIN:GTPM-BEAMST.ALARMCOUNT data Value of virtual property that counts number of alarms is calculated RDA LynxOS Front End GTPM example MTS GTPMService LIN:GTPM-BEAMST LI.STP01 LI.STP01
Outline • Overview • Requirements • Implementation • Current status
Current status • Tests for GTPM this week • Additional design work to be done for LHC Alarms Service and Logging Service • Exceptions definition and handling…