1/32
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Software pattern
A reusable solution to a recurring software design problem
Application Layers Pattern
Separates concerns into presentation, application logic, and resource layers
Presentation layer
Handles rendering, user interaction, and communication logic
Application logic layer
Contains the core business logic of the application
Resource layer
Manages access to data sources such as databases and files
Monolithic application
A self-contained application deployed as a single unit
Main drawback of monolithic applications
Difficult to scale and evolve as system size grows
Client–Server architectural style
Clients request services and servers provide them
Tier
A physical deployment unit in a system architecture
Layer
A logical functional unit in a system architecture
Difference between tiers and layers
Tiers are physical; layers are logical and orthogonal to tiers
Client thickness
The amount of functionality executed on the client
Thin client
Client with little or no presentation or application logic
Thick client
Client that executes part of the presentation or application logic
2-tier architecture
Client and server communicate directly in a centralized system
3-tier architecture
Separates presentation, application logic, and data across physical tiers
N-tier architecture
Uses multiple tiers to improve scalability and maintainability
Remote presentation applications
Thick clients where UI logic runs on the client and data comes from APIs
Distributed applications
Applications where logic is split between client and server
Model–View–Controller (MVC)
Separates data, presentation, and control logic
Main benefit of MVC
Separation of concerns improves maintainability and testability
Model–View–Presenter (MVP)
Presenter mediates between View and Model through interfaces
Model–View–ViewModel (MVVM)
ViewModel exposes data and behavior without referencing the View
Key difference between MVC, MVP, and MVVM
How Views interact with Models and logic layers
Service-Oriented Architecture (SOA)
Architectural style for building distributed systems using services
Service
An encapsulated unit of functionality with a well-defined interface
Loose coupling
Minimizing dependencies between services to improve flexibility and scalability
SOA interaction roles
Provider, Consumer, and Registry
Purpose of a service registry
Enable discovery of available services
Web service (WS-*)
A machine-to-machine service using SOAP and WSDL
Main difference between REST and WS-*
REST is lightweight and resource-oriented; WS-* is protocol-heavy and operation-oriented
When WS-* is preferable
Complex enterprise workflows with strict contracts and QoS requirements
When REST is preferable
Scalable, lightweight Web-based systems