Phoebus Tools and Services
Kunal Shroff, Tanvi Ashwarya, Tynan Ford, Kay-Uwe Kasemir, Ralph Lange, Weiss, Georg · HAL (Le Centre pour la Communication Scientifique Directe) · 2023
The Phoebus toolkit consists of a variety of control system applications providing user interfaces to control systems and middle-layer services. Phoebus is the latest incarnation of Control System Studio (CS-Studio), which has been redesigned replacing the underlying Eclipse RCP framework with standard Java alternatives like SPI, preferences, etc. Additionally the GUI toolkit was switched from SWT to JavaFX. This new architecture has not only simplified the development process while preserving the extensible and pluggable aspects of RCP, but also improved the performance and reliability of the entire toolkit. The Phoebus technology stack includes a set of middle-layer services that provide functionality like archiving, creating and restoring system snapshots, consolidating and organizing alarms, user logging, name lookup, etc. Designed around modern and widely used web and storage technologies like Spring Boot, Elastic, MongoDB, Kafka, the Phoebus middle-layer services are thin, scalable, and can be easily incorporated in CI/CD pipelines. The clients in Phoebus leverage the toolkit’s integration features, including common interfaces and utility services like adapter and selection, to provide users with a seamless experience when interacting with multiple services and control systems. This presentation aims to provide an overview of the Phoebus technology stack, highlighting the benefits of integrated tools in Phoebus and the microservices architecture of Phoebus middle-layer services.