Software Architecture
Contents
Architectural Style
1) Components
2) Connectors - (ie RPC, broadcast, protocols)
3) Constraints
ie Client/Server, Peer-to-Peer, Pipe-Filter, Centralised, Layered
Client Server Architecture
One component functions as a server, which provides services to other componenets
One component functions as a client, which requests services provided by a server
Connector -> Request-response model
Pros
Straightforward, Scalable, Easy to maintain
Cons
Single point of failure, congestion
Peer to Peer
Each peer functions as both a server and a client.
No middleman server (although possibly a a relay (Hybrid P2P))
Pros
Efficiency, scalability, robustness
Cons
Complexity, resource availability
Pipe and Filter Architecture
ie ls . | grep -v ... | more
A filter component which reads input streams, and transforms data.
A pipe connector which transfers data from one filter to another.
Output can start beginning before all input is read.
Stateless
Pros Easy to understand, flexible, concurrent
Cons Order dependent, error handling, not interactive
Repository Architecture
Central data repository component
Data accessor components
Read/Write connector
Pros
Centralisation -> concurrency, integrity, security, backup
Cons
eh.
Event Based Architecture
Publisher and subscriber