Architectural Styles

Work in progress. This note is still being written and incomplete.

An architectural style is a named collection of architectural design decisions that:

  • Are applicable in a given development context.
  • Constrain architectural design decisions for a particular system.
  • Help achieve beneficial qualities in the resulting system.

Architectural Styles Comparison

CategoryStyleComponentsConnectorsData / InformationKey Characteristics
TraditionalMain Program and SubroutinesMain program, subroutinesProcedure callsParameters and return valuesMain program coordinates execution through subroutine calls.
TraditionalObject-OrientedObjectsMessages and method invocationsObject stateObjects encapsulate their internal representation.
LayeredLayeredLayersLayer interaction protocolsData between layersEach layer provides services to the layer above and uses services from the layer below.
LayeredVirtual MachineOpaque layersLayer interfacesData between layersResults from fully opaque layers.
LayeredClient-ServerClients and serversRPC-based network protocolsRequests and responsesClients know server identities; servers do not need to know client identities.
Data-FlowBatch SequentialSeparate programsData transfer between programsAggregate dataPrograms execute in sequence and pass completed data to the next program.
Data-FlowPipe and FilterFiltersPipesData streamsFilters transform input streams into output streams.
Shared MemoryBlackboardBlackboard and components operating on itData accessShared blackboard stateSystem control is driven by the blackboard state.
Shared MemoryRule-BasedUser interface, inference engine, knowledge baseProcedure calls and/or shared memoryFacts and queriesInference engine uses rules in the knowledge base.
InterpreterInterpreterCommand interpreter, interpreter state, user interfaceProcedure calls and shared stateCommands and program stateCommands are parsed and executed while interpreter state is updated.
InterpreterMobile-CodeExecution dock, compiler/interpreterNetwork protocolsCode, program state, dataProgram representations can become processing components.
Implicit InvocationImplicit InvocationEvent-related componentsEvent-based invocationEventsComponents respond to announced events.
Implicit InvocationPublish-SubscribePublishers, subscribers, proxiesNetwork protocolsSubscriptions, notifications, published informationPublishers broadcast information to registered subscribers.
Event-BasedEvent-BasedEvent generators and consumersEvent busesEventsComponents communicate through event buses.
DistributedPeer-to-PeerIndependent peersNetwork protocolsNetwork messagesPeers can act as clients or servers.
OtherC2———Common architectural style identified in the lecture.
OtherCORBA———Common architectural style identified in the lecture.

Advantages and Disadvantages

StyleAdvantagesDisadvantages
Object-OrientedInfinite malleability of object internals; decomposition into interacting agentsObjects must know server identities; side effects in method invocations
LayeredIncreasing abstraction; evolvability; reuse; different implementations can preserve the interfaceNot universally applicable; performance issues; layers may need to be skipped
Pipe and FilterFilter addition, replacement and reuse; analysis of throughput, latency and deadlock; concurrent executionBatch-oriented processing; limitations for interactive applications; lowest common denominator for data transmission
Rule-BasedBehavior can be modified by adding or deleting rulesLarge numbers of interacting rules can become difficult to understand
Implicit InvocationComponent reuse; system evolution at construction-time and run-timeCounter-intuitive structure; components relinquish computation control; response and ordering may be unknown
Publish-SubscribeEfficient one-way dissemination; very low coupling—
Event-BasedHighly scalable; easy to evolve; effective for highly distributed applications—
Peer-to-PeerDecentralized computing; robust to node failure; scalable access to resources and computing powerProtocol requires careful consideration
Written by October 5, 2026 4 min read
Was this helpful?