Architecture Style Flashcards
System Architecture
defines a network of processes that work together to produce an outcome. It includes elements of both software and hardware and is used ot enable design of a composite system.
Software Architecture
defines the logical model of a computer system. It refers to the logiccal organization of a distributed system into software components
Original Monolith
Software is compiled code running on one machine. Self-contained and does everything. Softtwares data is stored bytes on the same machine. Ex includes mainframes and old school installed computer software
Client Server Architectures
Each entity has exactly one role, service provider or service consumer. Service providers wait for and then respond to requests. Service consumers initiate requests. Ex includes the world wide web “old school style”. Server contains all of the processing and UI logic, serves pages to client
Advantages of Client-Server Architectures
Centralized server control, easier to secure than other models. Cleitns can use different platforms from each other and from server
Disadvantages of Client-Server Architectures
Single point of failure. Too many simultaneous client requests can overload a single server
Layered Architectures
Entities are grouped based on the functionality that they provide. Each layer hides all the layers above and below
Classic three tiers of layered architectures
Presentation(Front end)
Application logic
Storage(Backend)
N-Tiers/Multilayered Architectures
The processing logic layered
Different layers may reside on different machines
Advantages of layered architectures
Improved cohesion which allows for multiple physical deployment options. Decreased coupling which promotes re-use
Specialized expertise (by level)