The reality of software is that after all the massaging and fiddling it all comes down to ones and zeros, registers and program pointers and all the rest. So the notions of design which we bandy about are at their root simply metaphors which we use to discipline our thinking about programming. Recently the notion of architectures has come to front and center stage as a research topic in academia. One has to wonder if there is really any limit to the kinds and combinations of architectures which can be assembled. I created this place to see if we can collectively agree on a list of interesting architectures. I'll start by listing a few: * PipesAndFilters * DataDrivenPrograms * BlackBoardArchitecture * ExpertSystems * ClientServerSystems * NetworkDistributedArchitecture * EventDrivenArchitecture * DataBaseCentered * InterpreterBasedPrograms * DataFlowSystems I'm sure that I've missed some obvious ones -- but these are some that pop into mind. -- RaySchneider ---- ''I think you'll have to expand on the short titles you have given some of these.'' Also, I am unsure as to where I would fit an ''embedded system'' in these, consider the micro inside a VCR, generally it uses sensors to decide whether to adjust the tracking and things like that. -- ScottWalsh ---- I do want to expand on them, but time is a tyrant ... Embedded programming is a discipline that receives rather short shrift in professional circles - which is too bad. Almost all of what my group does is embedded programming. An architecture that I find useful in embedded programming is something I call CommandObject - the entity is perceived as a commandable thing and you develop it as a set of methods that are called so that the whole thing looks like a tightly coupled MasterSlave with the Master having the user interface and tasking the slave - this is a clean partition of responsibilities and the slave has CompleteCoverage if there is a layered architecture that has PhysicalPrimitives and CompositePrimitives - the Composite Primitives are composed of calls to the Physical Primitives - essentially it is the physical reality logical reality layering. Is this any help on embedded systems? -- RaySchneider ---- Software Architecture In Practice (ISBN:0201199300) by Bass et al talks of ArchitecturalStyle''''''s, which reminds me of DesignMetaphors. ---- CategoryMetaphor