Architectural Styles, Design Patterns, And Objects
Foundations for the study of software architecture