5 Design concepts Flashcards
What is a reference architecture?
It is an abstract architecture that outlines key principles for systems within a specific domain.
How many reference architectures exist?
There are 5 reference architectures.
Name the existing reference architectures.
- Rich Client App (RCA)
- Rich Internet App (RIA)
- Web App
- Mobile App
- Service App
What are Web Apps, and what are their key features?
- browser-based
- server-side processing
- layered: Presentation, Business, Data
- suitable for low client resources, internet access, and portability
- limited to forms, with page reloads
What defines Rich Client Apps, and when are they ideal to use?
- desktop-based
- client-side processing
- offline use
- fast response times
What are Rich Internet Apps (RIA), and what are their strengths and limitations?
- browser-based applications with plugins (e.g., Flash).
- client-side processing (JS) without page reloads (Google Maps)
- rich UI and easy updates
- limited local resource access.
What makes Mobile Apps optimized, and for what environments are they best suited?
- mobile-based
- optimized for handheld devices, unreliable networks, and limited local resources, making them ideal for portable and resource-constrained environments.
What are Service Apps, and how do they function?
- service-oriented
- non-interactive (only provide APIs)
- no UI
- loose coupling
What are the deployment patterns and their characteristics?
- Non-distributed: Deployed on a single machine; simple but limited scalability. Web + Database together.
- Two-Tier: Client + Server tiers are separated.
- Three-Tier: Client + Application + Database tiers. Common for scalable web apps.
- Four-Tier: Client + Web + Business Logic + Database tiers. It devides the client tier into client + web. Better scalability and security
What are architectural patterns?
Architectural patterns are reusable solutions to common problems in software architecture.
Name three architectural pattern types, respective pattern names and describe them.
- Performance pattern: Load-Balanced Cluster => distributes client requests acorss multiple servers to improve scalability/performance.
- Structural pattern: Layers => hierarchical organization to reduce dependencies and ease maintenance.
- Concurrency Pattern: Half-Sync/Half-Async => separates synchronous and asynchronous processing using a queueing layer.
What are tactics?
Tactics are used to achieve specific system qualities: availability, performance.
Name the tactics for availability, performance and security.
Availability: Ping/Echo (fault detection), Voting (redundancy), Rollback (recovery)
Performance: Prioritization or concurrency
Security: Authentication