Speaker
Description
CAMEO[1] is a general-purpose middleware providing services to manage distributed heterogeneous applications. It has been developed in the Instrument Control Service at the ILL to solve many common issues e.g. how to have a C++ control server, many Java GUI clients displaying plots calculated by a Python library, or how to integrate a proprietary software running on a dedicated Windows OS, or how to restart safely the entire control system of an instrument from a single entry point without synchronization issues?
CAMEO provides services in two main topics. First, it provides a way to orchestrate the remote applications which can be started, stopped, monitored, synchronized. Second, high-level communication patterns are provided i.e. Request/Respond, Publish/Subscribe. A third simple Function pattern specific to CAMEO is also provided. The CAMEO interface is simple and hides the complexity of the network programming layer making a powerful easy-to-use tool for non-experts.
Moreover CAMEO is very versatile as it was designed to adapt to many environments. For instance, a black box program can be controlled by CAMEO and interact with other CAMEO applications. It is also possible to orchestrate the applications with CAMEO and make them communicate with other protocols like HTTP, AMQP, etc.
All that makes CAMEO very interesting for a control system environment where heterogeneous applications running in different languages on different platforms have to be integrated.
CAMEO is now a mature middleware and in this article we present an overview of the functionalities including the proxy router to secure communications between two networks and with a focus on the ILL environment.
[1] https://code.ill.fr/cameo/cameo
Abstract publication | I agree that the abstract will be published on the web site |
---|