Lecture 12 Clint Server Architecture

 

Introduction

The client-server architecture is a framework for computer networks where numerous clients, acting as remote processors, seek and obtain services from a central server or host computer. 

Clients serve as interfaces, enabling computer users to solicit services from the server and showcase the outcomes returned by the server. Servers, in turn, anticipate incoming requests from clients and subsequently fulfill them with appropriate responses.



Client – The client can be any computer that requests something from the server. For example – visiting any website we request the webpage from its domain. So here we act as a client.
Server – On the other hand, the Server is the computer that is designed to serve the requests to the client. For the same example as above, the client asks for the webpage then the server responds with the webpage to the client.


Working of Client-Server Architecture

when a client seeks data from a server, it initiates the process by querying the DNS (Domain Name System) for the specific server's IP address. The DNS server then provides the corresponding IP address. Subsequently, the client directs its request to the identified server using the specified port number associated with the particular application. The server, upon receiving the request, responds accordingly. The client, in turn, receives the response message, and the application associated with the designated port consumes the response packet. It's important to note that, at a broad level, the communication between the client and server occurs through HTTP packets.

Types of Client-sever Architecture
Client-Server Architecture is categorized into different types based on the business logic implemented for the request to be handled between client and server. 
1-Tier Architecture
2-Tier Architecture
3-Tier Architecture

1-Tier Client-Server Architecture:


Characteristics:
All aspects of the application, including User Interface, Business Logic, Database Logic, and Database, are bundled into a single package.
Layers like presentation, business, and data are combined in a unified software entity.
Data is typically stored locally or on a shared drive.

Advantages:
Offers a comprehensive set of services.

Challenges:
Complexity in management.
Data variance is a primary issue.
Work duplication is common.

Structure:
Presentation Layer
Business Logic Layer
Data Layer

Summary:
1-tier architecture provides a complete, self-contained application package.
Challenges include management complexity, data variance, and duplicated work.
Layers are combined into a single entity, often storing data locally or on shared drives.

2-Tier Client-Server Architecture Summary:



Characteristics:

Two main components: Client (presentation layer) and Server (business logic, database).
Client handles the user interface, and the server manages application logic and database processing.

Advantages:
Clear separation between presentation and application logic.
Simplified architecture compared to 3-tier.

Challenges:
Limited scalability compared to 3-tier.
Maintenance and updates may be more challenging.

Structure:
Presentation (Client)
Application and Database Logic (Server)

Summary:
2-tier architecture: Client for presentation, Server for application and database logic.
Provides separation of concerns but may face limitations in scalability.
Easier maintenance compared to more complex architectures.

3-Tier Client-Server Architecture Summary:


Characteristics:
Middleware introduced between client and server.
Client initiates requests, middleware facilitates communication with the server.
Layers:

Presentation Layer (Client Devices):
Managed by client devices.
Handles user interface and interaction.

Application Layer (Middleware):
Middleware intercepts and processes client requests.
Manages application logic and communication between presentation and database layers.

Database Layer (Server):
Controlled by the server.
Manages data storage and retrieval.

Advantages:
Enhanced security with the middleware layer.
Conceals database structures from clients.
Ensures data integrity.

Challenges:
Increased complexity compared to 2-tier architecture.
Maintenance may be more involved.

Summary:
3-tier architecture includes middleware for enhanced functionality.
Presentation, application, and database layers are distinct.
Middleware facilitates communication between client and server, improving security and data integrity.


Advantages of Client-Server Architecture:

Easy Management:
Simplified file management on a single server.

Accessibility:
Clients can access the system from any location or platform.

Scalability:
Highly scalable, allowing easy addition of resources (clients and servers).

Centralized Control:
Centralized administration enhances control over the network.

Security:
Centralized architecture enhances data protection and allows efficient recovery through backups.
Implements security measures like username and passwords.

Cloud Computing.

Definition:
Delivery of various services via the Internet.
Includes resources like data storage, servers, databases, networking, and software.

Storage Approach:
Cloud-based storage replaces local drives.
Files stored remotely in a database.

Accessibility:
Web access enables data and software availability on any electronic device.

Benefits:

Cost Savings: Reduces infrastructure costs.
Increased Productivity: Streamlines processes and collaboration.
Speed and Efficiency: Swift deployment and resource scalability.
Performance: Enhanced capabilities and reliability.
Security: Robust measures for data protection.
Popularity: Widely adopted for its diverse advantages by individuals and businesses alike.

Cloud Computing Services:



Definition:
Not a single technology but a system with three primary services.

Services:

Software-as-a-Service (SaaS):
Subscription-based software access.
No need for local installation; runs on external servers.

Infrastructure-as-a-Service (IaaS):
Provides IT infrastructure over the internet.
Often linked with serverless computing.

Platform-as-a-Service (PaaS):
Offers software and hardware to end-users.
Enables development, running, and management of apps without infrastructure concerns.

Characteristics:
Each service addresses specific needs in the cloud computing ecosystem.
Provides flexibility and scalability to users based on their requirements.

Cloud Computing Security Overview:

Concerns:

Remote storage raises significant concerns about data and platform security in cloud computing.

Definition:

Cloud Security: Encompasses measures to safeguard digital assets and data stored on cloud-based services.

Protective Measures:

Two-Factor Authorization (2FA):
Enhances access security by requiring additional authentication steps.

VPN (Virtual Private Network):
Ensures secure communication channels between users and cloud services.

Security Tokens:
Adds an extra layer of identity verification for user access.

Data Encryption:
Encodes data to prevent unauthorized access during transmission and storage.

Firewall Services:
Implements barriers to monitor and control network traffic, enhancing security.

Ongoing Concerns:
Continuous advancements and adaptations in security measures to address evolving threats.

Conclusion:
Cloud computing can be safe when robust security measures, such as 2FA, VPNs, encryption, and firewalls, are implemented. Continuous vigilance and adaptation to emerging threats are essential for maintaining a secure cloud environment.

Comments

Popular posts from this blog

Lecture 2 - Fetch, Execution and IO

Lecture 11 Linux Network and Process Management