Reading: 2.1, 2.3
Architectural Styles
Formulated in terms of components, the way that components are connected to each other, the data exchange between components and these elements jointly configured into a system.
Layered architectures
Components are organized in a layered fashion. Requests typically go downwards.
Object-based and service-oriented architectures
Components organized through a procedure-call mechanisms. Provide a natural way of encapsulating data.
Resource-based architectures
Distributed system being a huge collection of resources being individually managed by components. Ex: REST
System Architectures
Multi-client / single server
Server forms bottleneck, a single point of failure and scaling becomes difficult
Thin clients
Clients are lightweight and depends on server side computing.
Ex: executing GUI on client while application executes on server
Multitier Systems
Servers are clients of other servers (proxy servers)