Catalog of Science Use Case Design Patterns
As explained in Introduction to Design Patterns, there can be different categories, or classes, of design patterns, depending on context. A classification of patterns helps to identify groups of patterns that address similar problems in different ways or that describe solutions at different levels of granularity or from different points of view. A classification scheme codifies these relationships between patterns and enables designers to better understand individual pattern capabilities and relationships. It also further helps to understand how patterns rely on each other and can be composed to form a complete solution.
There are currently two classes of science use case design patterns (Fig. 6): (1) Strategic Patterns that define high-level solution methods using experiment control architecture features at a very coarse granularity, and (2) Architectural Patterns that define more specific solution methods using hardware and software architecture features at a finer granularity. While the Architectural Patterns do inherit the features of certain parent Strategic Patterns, they also address additional problems that are not exposed at the high abstraction level of the strategic patterns.
Fig. 6 Classification of the science use case design patterns
Strategic Patterns currently focus on the differences in experiment control features, such as steering of an ongoing experiment using live experimental data vs. design of the next experiment(s) using past experimental data. The key differences in features between the 4 Strategic Patterns are (1) no feedback, (2) feedback for the same experiment, (3) feedback for the next experiment, and (4) workflow of multiple experiments.
The primary feature currently explored by the Architectural Patterns is the distinction between local and remote components used by a corresponding strategic pattern, where local means that there is not a potentially significant communication delay to a component and remote means that there is a potentially significant communication delay. Other architectural features may be explored in the future with different patterns.
For example, the Experiment Steering strategic pattern is used in every experiment, where live feedback of experiment data is being used to autonomously change parameters during the experiment. Known uses range from a simple PID controller to complex probabilistic approaches or domain science informed AI in the feedback loop. The Distributed Experiment Steering architectural pattern inherits all the properties of the Experiment Steering strategic pattern, but has the architectural property of potentially significant communication delay between the experiment and a remote analysis. This severely restricts real-time feedback solutions. In contrast, the Local Experiment Steering pattern also inherits all the properties of the Experiment Steering strategic pattern and experiment progress is analyzed and judged locally, i.e., without significant communication delay to remote components.
This classification scheme is open for extension. New patterns may be added for each class if new strategic or architectural patterns emerge that do not fit in the existing patterns. New classes may be added if new pattern features emerge that express commonalities that are not covered by patterns. For example, a new class may map the existing patterns to the Time-Sensitive, Data Integration-Intensive and Long-Term Campaign patterns of the Integrated Research Infrastructure Architecture Blueprint Activity, which are Workflow Patterns that are orthogonal to the current pattern classes. Another new class may focus on the algorithms used in the feedback loop, such as probabilistic (e.g., Bayesian) vs. domain science based (e.g., physics informed) algorithms.
Pattern Catalog