Types of Architecture
Client-Server Architecture
- Client-server architecture is a network design model in which multiple client devices communicate with and request services from a central server
Server
- A server is a program that provides services to clients over a network
- Servers are run infinitely unless a problem arises or shuts down
- When a request arrives, it responds to the request
Client
- A client is a program that initiates a request for services from a server over a network
- Clients are started by users or programs, and terminate when service is complete
- Clients open communication channels using the IP address of the remote host and the well-known port address of the server running on that machine
- After communication is established, the client sends request and receives response
- Although the requests may be repeated, the process is finite and comes to an end
Benefits
Centralised Resource Management
- Servers hold and manage resources – files, databases, applications, etc.
- This allows for central control of data, security policies, backups and user access
Scalability
- New clients can be added easily without changing the system
- Servers can be upgraded to serve more clients
Improved Security
- Servers can enforce security policies
- This includes user authentication, file permissions and monitoring network traffic
Ease of Maintenance
- Servers can conduct software updates, backups and system configuration
- This reduces the need to configure every client device for maintenance
Reliability and Consistency
- Servers keep consistent data
- All clients access from one source which should be most up-to-date
Remote Access Support
- Clients can access servers from anywhere over the internet
- This means it can enable remote work, cloud services and web applications
Drawbacks
Single Point of Failure
- If server is down, all clients lose access to services
High Sunk Costs
- Servers are expensive and require skilled administrators
- Initiate infrastructure and licensing costs can be high
Network Congestion and Overload
- Possibility of network congestion, server overload, slow down the network
Complexity
- Configuration and management of a secure and efficient server environment can be complex
Network Dependence
- Clients rely heavily on a stable network connection
Peer-to-Peer Architecture
Definition
- A Peer-to-Peer (P2P) architecture is a decentralized network model where each computer (peer) acts both as a client and a server
- There is no central server, as each peer can request and provide services or resources directly to other peers
- Key features:
- All peers have equal role: they can initiate or respond to requests
- Decentralised: there is no central control
- Resource sharing: resources or services are shared among peers
- Autonomy: each peer manages its own resources and may be online or offline at anytime
Benefits
Low Cost
- There is no need for expensive server hardware or infrastructure
Scalability
- New peers can join the network easily to contribute resources
- System can grow without major reconfiguration
No single point of failure
- One peer failing does not affect the whole network
- Limited impact to network
Resource sharing
- Peers can share files, processing power or bandwidth directly with others
Drawbacks
Lack of Centralised Control
- No central authority to manage users, resources and security
- Harder to enforce rules and monitor activity
Security Risks
- Each peer is responsible for its own security
- Malicious peers can spread malware or unauthorised content
Data Consistency Issues
- Files in peers not guarantee to be up-to-date
- Synchronisation is difficult
- Performance suffers if there are few online peers or peers have low bandwidth