Title: Configuring Systems From Components: The EMS Approach
1Configuring Systems From ComponentsThe EMS
Approach
ACAT03
2Outline
EMS Goal . EMS Framework
. Application Development with EMS. EMS
Special Features .. Wrap-Up ...
3Goal
The goal of the EMS project is to design,
implement, and deploy a system that is extensible
and flexible, and therefore suitable for RD
environments. It should satisfy ever changing
requirements, support agile development of
applications, and promote reuse.
4EMS
- 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
5Architecture
6Component Interfaces
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.
control
- properties
- state
- error status
data
data
exception
debug
7Component Connectivity
- There are several categories of data processing
components - Data sinks
- Data sources
- Data filters/processors
- Data splitters
- Data mergers
8Application Development
Application
9Components
- 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
10GUI Components
11Component User Documentation
- EMS Help Viewer assists users in selecting and
configuring components. - EMS Help Composer assists developers in
producing the user-focused documentation
12Connecting 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).
13EMS XML Dialect
ltconfiguration version"0.1" title"Display Test
XML"gt lt!-- Component definitions --gt
ltcomponent id"Producer class"ems.core.componen
ts.SimpleDataGenerator"gt ltproperty
name"title" value"Data Generator Component"/gt
lt/componentgt ltcomponent id"Chart"
class"ems.measurement.chart.ChartDataDisplay"gt
ltproperty name"XPosition"
value"0"/gt ltproperty
name"YPosition" value"200"/gt
ltproperty name"title" value"Plot Display"/gt
lt/componentgt lt!-- Routing information
--gt ltroute type"Data"
origin"Producer" destination"Chart" /gt
lt!-- Control signals --gt ltcontrol
signal"init" destination"!"/gt ltcontrol
signal"start" destination"!"/gt lt/configurationgt
14Tailoring
- 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.
15Scripting
- Scripting 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.
16Monitoring 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.
17EMS Features
- Component technology to allow for reuse
- Architecture that supports extensibility
- Configurable applications
- Tailoring of applications at run-time
- Scripting to rapidly develop or modify
applications - Integrated application monitoring, debugging, and
exception handling - Highly-configurable components
- Universal components that accept various
collections of data items
18WrapUp
- 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.
19Resources
- EMS web site
- http//sdsg.fnal.gov/emsweb
EMS on-line documentation http//wwwtsmtf.fnal
.gov/ems_javadoc2.X