Cargando…
How to design & implement a modern communication middleware based on ZeroMQ
In 2011, CERN's Controls Middleware (CMW) team started a new project aiming to design and implement a new generation equipment access framework using modern, open-source products. After reviewing several communication libraries [1], ZeroMQ [2] was chosen as the transport layer for the new commu...
Autores principales: | , |
---|---|
Lenguaje: | eng |
Publicado: |
2018
|
Materias: | |
Acceso en línea: | https://dx.doi.org/10.18429/JACoW-ICALEPCS2017-MOBPL05 http://cds.cern.ch/record/2305650 |
_version_ | 1780957554618138624 |
---|---|
author | Lauener, Joel Sliwinski, Wojciech |
author_facet | Lauener, Joel Sliwinski, Wojciech |
author_sort | Lauener, Joel |
collection | CERN |
description | In 2011, CERN's Controls Middleware (CMW) team started a new project aiming to design and implement a new generation equipment access framework using modern, open-source products. After reviewing several communication libraries [1], ZeroMQ [2] was chosen as the transport layer for the new communication framework. The main design principles were: scalability, flexibility, easy to use and maintain. Several core ZeroMQ patterns were employed in order to provide reliable, asynchronous communication and dispatching of messages. The new product was implemented in Java and C++ for client and server side. It is the core middleware framework to control all CERN accelerators and the future GSI FAIR [3] complex. This paper presents the overall framework architecture; choices and lessons learnt while designing a scalable solution; challenges faced when designing a common API for two languages (Java and C++) and operational experience from using the new solution at CERN for 3 years. The lessons learnt and observations made can be applied to any modern software library responsible for fast, reliable, scalable communication and processing of many concurrent requests. |
id | oai-inspirehep.net-1656106 |
institution | Organización Europea para la Investigación Nuclear |
language | eng |
publishDate | 2018 |
record_format | invenio |
spelling | oai-inspirehep.net-16561062019-09-30T06:29:59Zdoi:10.18429/JACoW-ICALEPCS2017-MOBPL05http://cds.cern.ch/record/2305650engLauener, JoelSliwinski, WojciechHow to design & implement a modern communication middleware based on ZeroMQAccelerators and Storage RingsIn 2011, CERN's Controls Middleware (CMW) team started a new project aiming to design and implement a new generation equipment access framework using modern, open-source products. After reviewing several communication libraries [1], ZeroMQ [2] was chosen as the transport layer for the new communication framework. The main design principles were: scalability, flexibility, easy to use and maintain. Several core ZeroMQ patterns were employed in order to provide reliable, asynchronous communication and dispatching of messages. The new product was implemented in Java and C++ for client and server side. It is the core middleware framework to control all CERN accelerators and the future GSI FAIR [3] complex. This paper presents the overall framework architecture; choices and lessons learnt while designing a scalable solution; challenges faced when designing a common API for two languages (Java and C++) and operational experience from using the new solution at CERN for 3 years. The lessons learnt and observations made can be applied to any modern software library responsible for fast, reliable, scalable communication and processing of many concurrent requests.oai:inspirehep.net:16561062018 |
spellingShingle | Accelerators and Storage Rings Lauener, Joel Sliwinski, Wojciech How to design & implement a modern communication middleware based on ZeroMQ |
title | How to design & implement a modern communication middleware based on ZeroMQ |
title_full | How to design & implement a modern communication middleware based on ZeroMQ |
title_fullStr | How to design & implement a modern communication middleware based on ZeroMQ |
title_full_unstemmed | How to design & implement a modern communication middleware based on ZeroMQ |
title_short | How to design & implement a modern communication middleware based on ZeroMQ |
title_sort | how to design & implement a modern communication middleware based on zeromq |
topic | Accelerators and Storage Rings |
url | https://dx.doi.org/10.18429/JACoW-ICALEPCS2017-MOBPL05 http://cds.cern.ch/record/2305650 |
work_keys_str_mv | AT lauenerjoel howtodesignimplementamoderncommunicationmiddlewarebasedonzeromq AT sliwinskiwojciech howtodesignimplementamoderncommunicationmiddlewarebasedonzeromq |