The paper presents a prototype of the NSLS-II high level application environment including key middle layer servers, such as Machine, Online Model and Virtual Accelerator. The proposed environment is developed and evaluated on top of EPICS-DDS, an open source implementation of the DDS standard interface based on the EPICS Channel Access protocol.
A typical accelerator control system employs a three-tier distributed environment encompassing low-layer distributed front-end computers controlling physical devices, a set of middle layer servers maintaining common data structures and algorithms, and an open collection of high level thick and thin client applications. Despite the common infrastructure, requirements of each layer are different. As a result, in modern accelerator facilities, the middle layer servers also work as gateways connecting at least two communication protocols and interfaces. This paper presents a new homogeneous infrastructure for the NSLS-II high-level accelerator environment based on the Experimental Physics and Industrial Control System (EPICS ) and the data-centric publish-subscribe model of the OMG Data Distribution Service (DDS ). In this approach (see Figure 1), different layers and components communicate via the common EPICS protocol, and the high-level interface between servers and applications is implemented as the EPICS-DDS extension .
Figure 1: High-Level Application Environment based on the EPICS-DDS extension.
EPICS is an open source framework and a rich collection of tools developed collaboratively and used worldwide for building distributed real-time control systems in large-scale scientific projects: accelerators, detector systems, telescopes and others. Its base infrastructure consists of two layers: distributed Input/Output Controllers (IOC) and Operator Interface (OPI) applications. IOC provides uniform interfaces to heterogeneous physical devices. The heart of IOC is a memory resident database with a collection of records. Each record instance, called process variable (PV), has a record name, a value, and a type-specific set of associated fields, such as operating range, alarm limits, scanning rate, and so forth. Client applications can access IOC records via the Channel Access (CA) interface. The CA communication interface is based on the TCP protocol and is highly optimized for dealing with hundreds of thousands of process variables. A limitation of the present version of EPICS is that process variables cannot be structures and are limited to primitive data types and arrays of scalars. This constraint seriously mismatches with requirements of high-level object-oriented applications. This necessitates the integration of additional middleware such as CDEV, CORBA, JMS, or DDS. DDS is a next generation of middleware industrial standards, bringing a data-centric publish-subscribe (DCPS) architecture to distributed control systems. The overall conceptual model is shown in Figure 2 and encapsulates the following major concepts:
Figure 2: Data-Centric Publish-Subscribe Model .
According to the uniform scenario of the three-tier accelerator application environment, the different middle layer servers provide the states (the most current values) of the associated data structures shared by other servers and high-level client-subscribers. The majority of accelerator use cases require three data types: collection of the accelerator element parameters, design linear and non-linear optics functions, and turn-by-turn data measured or calculated in beam position monitors.
The description of the accelerator structure and accelerator devices is a key part of any accelerator algorithm. Designing the generic accelerator description is a serious challenge even in the context of off-line object-oriented programs. The UML model of the Accelerator Description eXchange Format (ADXF 2.0 ) represents one of the recent approaches addressing different types of accelerator computational tasks (see Figure 3).
Figure 3: ADXF 2.0 model of the Machine Server
In the off-line environment, this object-oriented model has been mapped and deployed in several representations including the XML Schema and the IRMIS relational database. Adherence of the DDS specification to the relational model allows reuse of the same mapping procedure. Particularly, the prototype uses the following three topics with the associated data structures:
This paper presents a prototype high-level accelerator application environment based on EPICS-DDS, a new middleware extension of EPICS, approaching the Data Distributed Service (DDS) interface based on the EPICS protocol. The integration of these two technologies addresses five major tasks. First, DDS brings an industrial standard interface to the accelerator online environment allowing a variety of high-level applications and toolkits to be decoupled from the underlying low-level control systems, such as EPICS, TINE, TANGO, and others. Second, the DDS topic-oriented approach elevates the EPICS Channel Access protocol to high-level applications, replacing their RPC-like communication interfaces. Third, DDS creates a basis of Service-Oriented Architecture (SOA) promoting decoupling of the service interfaces from their project-oriented implementations. In the context of high-level application environment, it provides flexibility in selecting and connecting the most appropriate modelling algorithms and programs. Fourth, the DDS specification introduces some guidance for extending the EPICS infrastructure with the relevant set of qualities of service. Finally, the DDS technology extends the EPICS run-time environment with the relational model, facilitating the design of consistent run-time interfaces to complex hierarchical structures according to well-established software engineering techniques, such as object-relational mapping. Moreover, adherence to the relational approach creates a platform for integration of full-scale Data Stream Management Systems (DSMS) for data stream processing and archiving. The positive experience gained from this project encourages us to further explore and extend the EPICS-DDS middleware in the development of the full-scale high-level accelerator application environment.