Configuring Systems From Components:
The EMS Approach
Jerzy M. NogiecFermilab
ACAT03
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 2
OutlineOutline
EMS Goal .………………………………
EMS Framework ……………………….
Application Development with EMS….
EMS Special Features ………………..
Wrap-Up ……………..………….………
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 3
GoalGoal
The goal of the EMS project is to design, implement, and deploy a system that is extensible and flexible, and therefore suitable for R&D environments. It should satisfy ever changing requirements, support agile development of applications, and promote reuse.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 4
EMSEMS EMS is a component*-based framework** for building test
and data analysis systems. EMS is developed in Java to guarantee portability and
facilitate the use of object-oriented development technologies.
*Framework – the skeleton of an application that can be customized and reused**Component – an independently released software module suitable for composition (together with other components) into multiple applications
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 5
ArchitectureArchitecture
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 6
Component InterfacesComponent Interfaces
• properties• state• error status
data data
control
exception debug
Components have properties and state. Typical components input, process, and output data. Their behavior depends on their state and property values. Components can be forced to perform certain actions by sending control events to them. Components also output debug and exception information.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 7
Component ConnectivityComponent Connectivity
splitter
merger
filter
There are several categories of data processing components:
Data sinks Data sources Data filters/processors Data splitters Data mergers
source
sink
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 8
Application DevelopmentApplication
Development
Application
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 9
ComponentsComponents Core components
Application monitoring Scripting Event processing
Data Presentation Graphing components Display components
Control & Input Data Processing Data Input/Output
File I/O Database access URL access
DAQ
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 10
GUI ComponentsGUI Components
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 11
Component User Documentation
Component User Documentation
EMS Help Viewer assists users in selecting and configuring components.
EMS Help Composer assists developers in producing the user-focused documentation
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 12
Connecting ComponentsConnecting
Components EMS provides for
independent “wiring” of components for property, data, exception, control, and debug events.
EMS supports unicast, multicast, and broadcast patterns.
Source routing (dynamic, run-time) & routing tables (static, configuration-time).
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 13
EMS XML DialectEMS XML Dialect<configuration version="0.1" title="Display Test XML">
<!-- Component definitions --> <component id="Producer” class="ems.core.components.SimpleDataGenerator"> <property name="title" value="Data Generator Component"/> </component> <component id="Chart" class="ems.measurement.chart.ChartDataDisplay"> <property name="XPosition" value="0"/> <property name="YPosition" value="200"/> <property name="title" value="Plot Display"/> </component>
<!-- Routing information --> <route type="Data" origin="Producer" destination="Chart" />
<!-- Control signals --> <control signal="init" destination="!"/> <control signal="start" destination="!"/>
</configuration>
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 14
TailoringTailoring
Tailoring – run-time modification of behavior of components.
Tailoring could be used to refine configurations at run-time.
The PropertySheet component allows for tailoring and controlling other components.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 15
ScriptingScriptingScripting allows for
automation of processing and for quick construction of new tests or data processing logic.
The script interpreter is responsible for interpreting Python scripts.
The script control panel allows for selecting, running, and monitoring a script.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 16
Monitoring ApplicationMonitoring Application
The communication on the bus can be selectively monitored using the event monitor component.
Memory usage can be monitored using the memory monitor component.
Timing of components can be monitored.
Debugging and/or exception information can be routed to a separate display or I/O component.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 17
EMS FeaturesEMS FeaturesComponent technology to allow for reuseArchitecture that supports extensibilityConfigurable applicationsTailoring of applications at run-timeScripting to rapidly develop or modify applicationsIntegrated application monitoring, debugging, and exception handlingHighly-configurable componentsUniversal components that accept various collections of data items
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 18
WrapUpWrapUp
EMS is a flexible Java-based framework.EMS allows for high level of reuse.EMS features allow for agile development of new
applications and easy adaptation of existing applications to changing requirements.
Configuring Systems From ComponentsACAT03, J.Nogiec, Fermilab 19
ResourcesResources EMS web site http://sdsg.fnal.gov/emsweb
EMS on-line documentationhttp://wwwtsmtf.fnal.gov/ems_javadoc2.X