A MESSAGING-BASED DATA ACCESS LAYER FOR CLIENT APPLICATIONS*

2013 
The Fermilab Accelerator Control System [1] has recently integrated use of a publish/subscribe infrastructure as a means of communication between Java client applications and data acquisition middleware. This supersedes a previous implementation based on Java Remote Method Invocation (RMI). The RMI implementation had issues with network firewalls, misbehaving client applications affecting the middleware, portability to other platforms, and lack of authentication. The new system uses the RabbitMQ implementation of the AMQP messaging protocol and broker architecture. This decouples the client and middleware, is more portable to other languages, and has proven to be much more reliable. A Java client library provides for single synchronous operations as well as periodic data subscriptions. This new system is now used by the synoptic display manager application as well as a number of new custom applications. FERMILAB CONTROL SYSTEM The Fermilab accelerator control system, generally referred to as ACNET, is a unified system controlling all accelerators in the complex. This includes the primary accelerator chain delivering beam to physics experiments, and well as test facilities for future accelerators based on superconducting RF cavities. It is a three tiered system with front-end, central service, and application layers. Front-end computers directly communicate with hardware over a wide variety of field buses. Console applications provide the human interface to the system. Central service computers provide general services such as a database, alarms, application management, and front-end support. Communication between the front-end and central layers is carried out using a connectionless protocol also named ACNET over UDP. Data from front-ends is then delivered by the central layer to applications by either a shared memory protocol for C-language applications that run within a console, or the Java Remote Method Invocation (RMI) protocol for Java language applications.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    1
    References
    0
    Citations
    NaN
    KQI
    []