Architectural Styles

Architectural styles are reusable 'packages' of design decisions and constraints that are applied to an architecture to induce chosen desirable qualities.Institute for Software Research, UCI


Styles provide a way to effectively reuse hard-won domain and engineering knowledge. Styles represent application-independent rules and decisions that can be applied to many systems in the same domain or product-family.

Styles are key in preventing architectural erosion and drift. Because style-based design decisions are documented up-front and pervasive through a system, they provide a way for future developers to extend a system without eroding its basic architectural principles.

Styles provide a bridge from quality needs to design. While identifying desirable qualities is easy, figuring out how to "design in" those qualities is often not. Styles provide guidance about how to design systems that meet specific targeted quality goals.

Techniques: Specific Styles

  • Pipe-and-Filter - One of the simplest and most ubiquitous styles, pipe-and-filter makes for a good illustrative example of how style-based design decisions and constraints can impart desired qualities. For example, the pipe-and-filter style requires that all filters communicate using two byte-streams, an 'in' and 'out' stream. This guarantees the quality of syntactic compatibility: any two filters can be connected (although they may not necessarily do something useful). The pipe-and-filter style also allows for partial results to be sent from filter-to-filter. This improves the parallelizability of applications since multiple filters can work on parts of the data in parallel.
  • C2 - (Chiron-2): a style that uses layered, loosely-coupled components that communicate through asynchronous messages to impart qualities such as component reusability, run-time dynamism, and distributability.
  • REST - (Representational State Transfer): REST is the architectural style of the World Wide Web, and was developed here at ISR. It uses constraints such as the separation of resources from representations, statelessness, and caching to impart qualities such as scalability, flexibility, and performance.
  • ARRESTED - (Asynchronous, Routed REST with Estimation and Decentralized Decisions): ARRESTED is an extension to the REST architectural style that uses techniques such as asynchrony, state estimation, and independent decision making to impart qualities such as decentralizability, reduced latency, and improved support for multiple agencies.
  • PACE - (Practical Architectural Approach for Composing Egocentric Trust): PACE uses techniques such as explicit trust models, digital identities, and separation of internal and external belief data to improve systems' security, trustworthiness, and robustness in decentralized environments.
  • Weaves: The Weaves style uses techniques such as explicit interfaces, object flows, and explicit flow routing to impart qualities such as parallelizability, performance, and adaptability.

See Also

  • Protocols that leverage the REST style:
    • HTTP - Hypertext Transfer Protocol, a family of protocols designed specifically for the transfer of resource representations.
    • WebDAV - Web-based Distributed Authoring and Versioning, An extension to the HTTP protocol to allow distributed authoring.