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
  • Performance suffers if there are few online peers or peers have low bandwidth