190 likes | 315 Views
ACAT03. Configuring Systems From Components: The EMS Approach. Jerzy M. Nogiec Fermilab. Outline. EMS Goal .……………………………… EMS Framework ………………………. Application Development with EMS…. EMS Special Features ……………….. Wrap-Up ……………..………….………. Goal.
E N D
ACAT03 Configuring Systems From Components:The EMS Approach Jerzy M. Nogiec Fermilab
Outline EMS Goal .……………………………… EMS Framework ………………………. Application Development with EMS…. EMS Special Features ……………….. Wrap-Up ……………..………….……… Configuring Systems From Components
Goal 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 Components
EMS • 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 Components
Architecture Configuring Systems From Components
Component 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 Configuring Systems From Components
filter splitter source merger sink Component Connectivity • There are several categories of data processing components: • Data sinks • Data sources • Data filters/processors • Data splitters • Data mergers Configuring Systems From Components
Application Development Application Configuring Systems From Components
Components • 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 Components
GUI Components Configuring Systems From Components
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 Components
Connecting 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 Components
EMS 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 Components
Tailoring • 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 Components
Scripting • 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. Configuring Systems From Components
Monitoring 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 Components
EMS 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 Configuring Systems From Components
WrapUp • 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 Components
Resources EMS web site http://sdsg.fnal.gov/emsweb EMS on-line documentation http://wwwtsmtf.fnal.gov/ems_javadoc2.X Configuring Systems From Components