Towards a Common Object Model and API for Accelerator Controls

F. Di Maio (CERN) and A. Goetz (ESRF)


An Object-Oriented Application Programming Interface (OO API) can provide the applications with an abstract model of the components of an accelerator. One question is how to encapsulate into one single abstract model different control systems. The abstract model of an OO API can be described in a formal way via object models in order to clarify the semantic issues, describe the important concepts (beam, attributes...), and decompose the objects up to the granularity where the model of some objects can be shared between labs. From the object-model can be derived the C++ API (as well as C API). This paper presents a common object model which is derived from both the current CERN-PS model and the current ESRF model. We describe the technical difficulties we encountered in migrating existing control systems into a shared but usable model. We also aim to reduce the model's diversity by taking into account the CEBAF's "cdev" developments. A high-level description of the model will be presented with examples of the derived API and of its usage from the console applications.