This morning, I go on reading the dissertation “Architectural Styles and the Design of Network-based Software Architectures” written by Roy Thomas Fielding. In chapter 2 Network-based Application Architectures, in more detail, in 2.2 Evaluating the Design of Application Architectures, the author gives me a beautiful image when he describes what the architectural style is. He thinks that an architectural style is a coordinated set of architectural constraints, and regards the architectural constraints as a derivation tree. It's to me a new, lively and powerful conception. To express my excitement, now I quote part of his article on the the description of the architectural style in my blog ——"
As described in the previous chapter, an architectural style is a coordinated set of architectural constraints that has been given a name for ease of reference. Each architectural design decision can be seen as an application of a style. Since the addition of a constraint may derive a new style, we can think of the space of all possible architectural styles as a derivation tree, with its root being the null style (empty set of constraints). When their constraints do not conflict, styles can be combined to form hybrid styles, eventually culminating in a hybrid style that represents a complete abstraction of the architectural design. An architectural design can therefore be analyzed by breaking-down its set of constraints into a derivation tree and evaluating the cumulative effect of the constraints represented by that tree. If we understand the properties induced by each basic style, then traversing the derivation tree gives us an understanding of the overall design’s architectural properties. The specific needs of an application can then be matched against the properties of the design. Comparison becomes a relatively simple matter of identifying which architectural design satisfies the most desired properties for that application. "