What is Software Architecture?
How the software is logically organised.
What is System Architecture?
Where the components are placed physically.
What is the role of Middleware?
Separates applications from the underlying platform.
What is an Architectural Style?
Defines how components connect and communicate - abstract of physical deployment.
Name the 4 architectural styles.
Layered, Object-based, Resource-centred (REST), Event-based.
What is Layered Architecture?
Components organised in layers where each layer uses services from the layer below.
What is Pure Layered architecture?
Each layer only communicates with layer directly below (e.g. network protocol stack).
What is Mixed Layered architecture?
Layers can skip levels.
What is Layered with Upcalls?
Lower layers can call back up (e.g. OS kernel).
What does PAD stand for?
Presentation, Application, Data - application layering model.
What is the Presentation layer in PAD?
Everything user facing - UI
What is the Application layer in PAD?
Core business logic and processing.
What is the Data layer in PAD?
Persistent storage.
What is Object-based Architecture?
System is collection of objects that communicate via method calls.
What is Encapsulation in Object-based arch?
Objects hide internal data and just have methods for interaction.
What are Distributed Objects?
Objects on different machines where method calls happen over the network.
How does RMI (Remote Method Invocation) work?
Client has proxy (stub), calls method on proxy, proxy packages and sends over network to remote object, results sent back.
What is Resource-based Architecture (REST)?
Collection of resources manipulated through a uniform interface.
What are the 4 key principles of REST?
What are the benefits of REST?
Simple (uniform interface), Scalable (stateless), Web-friendly (HTTP).
What is Event-based Architecture?
Strong separation between processing and coordination. Autonomous processes coordinating with events.
What is an Event Bus?
Central mechanism that matches publishers to subscribers.
What is a Shared Data Space?
Processes put tuples in shared space
What is a Thin Client?
Client handles only presentation; server handles application + data.