We propose a high-level approach to software architecture that bridges the gap between system requirements (in the problem space) and the architectural design (in the solution space). We use constraint- and intent-based architectural prescriptions to enable architectural reflection, reification, and distributed configuration discovery as the basis for designing adaptive, selfconfiguring software systems. We discuss some key architectural properties and patterns that facilitate the design and implementation of self-configuring systems, and use these as the basis for an example prototype architecture for self-evolving systems called Distributed Configuration Routing (DCR). Finally, we propose the development of architectural prescription languages (APLs) and enhanced system design environments to provide better support for intent-based architectures.
Matthew J. Hawthorne, Dewayne E. Perry