I am not sure I can come up with a defn for ArchitecturalPatterns, but I think they do exists (or at least we ought to be able to create them). PatternsOfClientServerArchitectures may contain examples of at least one style of the thing I may be talking about.
The problem is that so far we seem to have focused on how DesignPatterns build an architecture from the bottom up. (See PatternsGenerateArchitectures for a bit more about this.) - However I think we need to have something which we can use at a larger grain. ArchitecturalStyle does go some way to this but they are still not really what I am look at.
I know that PaulDyson is interested in this stuff, and he did a session called Patterns in Software Architecture BCS-OOPS Patterns day.
This is what he said about Patterns in Software architecture...
Design patterns describe the right kinds of things for an architecture (structure, communication, philosophy) but they consider the wrong level of scale for a large system.
May be Paul would like to enter a bit more about his ideas and may be even a few patterns he proposed at that day.
Tom Mowbray's AntiPatternsBook contains a few decent ArchitectureAntiPatterns that I think are at the same level as the kind of stuff you're looking for. For instance one of his that I like is "don't build StovepipeSystems". Also, FrankBuschmann and his cohorts in the PartyOfFive have a few good ArchitecturalPatterns, notably PipesAndFiltersArchitecture? and a few others. I could list those out, but I don't have PoSa handy. :( -- KyleBrown
There seems to be general agreement that MultiCaster is an architectural pattern. I'd also claim that WikiWikiWeb is an architectural pattern. PartyOfFive distinguish between idioms, DesignPatterns and ArchitecturalPatterns, where each seems somewhat independent of the other; just as DesignPatterns can be composed of varying idioms, so an ArchitecturalPattern is one that can be composed of varying DesignPatterns.
But I'll go further out on the limb than this and actually venture a definition: an architectural pattern is any pattern concerned with the construction context of a whole system, rather than just some part of it. In physical architecture equivalents would be SkyScraper?, LofstromLoop?, IgLoo? and so on.
-- PeterMerel
An architectural pattern is any pattern concerned with the construction context of a whole system, rather than just some part of it.
I think this is pretty much spot-on ... it just depends on what scale your system is. If your system is 4-5 objects then the Gof-style design patterns are architectural patterns because they consider the structure, relative communication and design philosophy for these 4-5 objects. I'm interested in the patterns that describe the structure of systems where the number of objects is measured in millions and the organizational unit is much larger than the class ... so perhaps these should be LargeScaleSystemPatterns?? ThreeTierDistributionArchitecture, FourLayerArchitecture, IsolationLayer and the ubiquitous MultiCaster all seem to fit the bill. -- PaulDyson
My attempts so far - MicroArchitecture -- RichardHenderson
OK, let's start listing them:
Here's some more from http://www.rationalrose.com/models/architectural_patterns.htm
See also AttributeBasedArchitecturalStyles, ProductLineArchitecture