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...

Descripción completa

Detalles Bibliográficos
Autores principales: Lauener, Joel, Sliwinski, Wojciech
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