JACoW logo

Journals of Accelerator Conferences Website (JACoW)

JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.


BiBTeX citation export for MO4BCO02: Lessons from Using Python GraphQL Libraries to Develop an EPICS PV Server for Web UIs

@inproceedings{auger-williams:icalepcs2023-mo4bco02,
  author       = {R.J. Auger-Williams and A.L. Alexander and T.M. Cobb and M.J. Gaughran and A.J. Rose and A.W.R. Wells and A.A. Wilson},
% author       = {R.J. Auger-Williams and A.L. Alexander and T.M. Cobb and M.J. Gaughran and A.J. Rose and A.W.R. Wells and others},
% author       = {R.J. Auger-Williams and others},
  title        = {{Lessons from Using Python GraphQL Libraries to Develop an EPICS PV Server for Web UIs}},
% booktitle    = {Proc. ICALEPCS'23},
  booktitle    = {Proc. 19th Int. Conf. Accel. Large Exp. Phys. Control Syst. (ICALEPCS'23)},
  eventdate    = {2023-10-09/2023-10-13},
  pages        = {191--195},
  paper        = {MO4BCO02},
  language     = {english},
  keywords     = {EPICS, controls, status, ECR, factory},
  venue        = {Cape Town, South Africa},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {19},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {02},
  year         = {2024},
  issn         = {2226-0358},
  isbn         = {978-3-95450-238-7},
  doi          = {10.18429/JACoW-ICALEPCS2023-MO4BCO02},
  url          = {https://jacow.org/icalepcs2023/papers/mo4bco02.pdf},
  abstract     = {{Diamond Light Source is currently developing a web-based EPICS control system User Interface (UI). This will replace the use of EDM and the Eclipse-based CS-Studio at Diamond, and it will integrate with future Acquisition and Analysis software. For interoperability, it will use the Phoebus BOB file format. The architecture consists of a back-end application using EPICS Python libraries to obtain PV data and the query language GraphQL to serve these data to a React-based front end. A prototype was made in 2021, and we are now doing further development from the prototype to meet the first use cases. Our current work focuses on the back-end application, Coniql, and for the query interface we have selected the Strawberry GraphQL implementation from the many GraphQL libraries available. We discuss the reasons for this decision, highlight the issues that arose with GraphQL, and outline our solutions. We also demonstrate how well these libraries perform within the context of the EPICS web UI requirements using a set of performance metrics. Finally, we provide a summary of our development plans. }},
}