Lecture 5 - Architectural Styles I Flashcards
(8 cards)
Some architectural characteristics?
Scalability, elasticity, maintainability, consistency, teamwork, portability, modularity, flexibility, reusability, interoperability, simplicity, performance, security, reliability
What is Monolithic Architecture?
- Model where the entire application is built as a single codebase
- Handles multiple functions in one self-contained unit
- Simple to develop and deploy
- Hard to scale / modify
Key characteristics of a Monolithic structure?
- Single app block
- Unified development
- No component isolation
- Interconnection & independence
- Tight coupling
What is Layered Architecture?
- System divided into layers
- Each layer provides specific functionality to the layer ABOVE
- Ex: presentation, business, persistence, database
- IMPORTANT: database is another layer, a main class that instantiates everything is required (because each layer relies on another)
Key characteristics of a Layered Architecture?
- Simplicity
- Modularity
- Maintainability
- Scalable and Reusable
What is the Pipeline Architecture?
- Design pattern that organizes data and tasks into CONNECTED stages
- Each stage performs a specific task and passes the result to the next stage
Key Components of the Pipeline Architecture?
Pipes
- channels to transfer data between filters
- unidirectional and point-to-point
Filters
- performs only ONE TASK
- composite tasks handled by multiple filters
Producer (Source)
- starting point of a process
Transformer
- accepts input and performs a transformation of data to forward to outbound pipe
Tester
- accepts input to test one or more criteria
- OPTIONALLY produces output based on test
Consumer
- End point of pipeline
- Can persist final result to a database
Key characteristics of a Pipelined Architecture?
- Sequential
- Modular
- Isolation
- Scalability