KEMBAR78
Unit 1 Csa 6008t Client Server Computing | PDF | Client–Server Model | World Wide Web
0% found this document useful (0 votes)
30 views68 pages

Unit 1 Csa 6008t Client Server Computing

Uploaded by

rirati5484
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views68 pages

Unit 1 Csa 6008t Client Server Computing

Uploaded by

rirati5484
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 68

CSA 6008T CLIENT SERVER COMPUTING

Unit 1st
Introduction to Client/Server computing - Basic Client/Server
Computing Model, Server for Every Client- File Server, Print Server,
Application Server, Mail Server, Directory Services Server, Web Server,
Database Server, Transaction Servers. Client/Server-Fat or Thin,
Stateless or Stateful, Servers

Client-Server Model
The Client-server model is a distributed application structure that partitions tasks or workloads
between the providers of a resource or service, called servers, and service requesters called clients.
In the client-server architecture, when the client computer sends a request for data to the server
through the internet, the server accepts the requested process and delivers the data packets
requested back to the client. Clients do not share any of their resources. Examples of the Client-
Server Model are Email, World Wide Web, etc.

How Does the Client-Server Model Work?

• Client: When we say the word Client, it means to talk of a person or an organization using a particular
service. Similarly in the digital world, a Client is a computer (Host) i.e. capable of receiving information or
using a particular service from the service providers (Servers).

• Servers: Similarly, when we talk about the word Servers, It means a person or medium that serves
something. Similarly in this digital world, a Server is a remote computer that provides information (data)
or access to particular services.

So, it is the Client requesting something and the Server serving it as long as it is in the database.

Client Server Model

How the Browser Interacts With the Servers?


There are a few steps to follow to interacts with the servers of a client.

• User enters the URL(Uniform Resource Locator) of the website or file. The Browser then requests the
DNS(DOMAIN NAME SYSTEM) Server.

• DNS Server lookup for the address of the WEB Server.

• The DNS Server responds with the IP address of the WEB Server.
• The Browser sends over an HTTP/HTTPS request to the WEB Server’s IP (provided by the DNS
server).

• The Server sends over the necessary files for the website.

• The Browser then renders the files and the website is displayed. This rendering is done with the help of
DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine collectively known as the
JIT or (Just in Time) Compilers.

Client Server Request and Response

Advantages of Client-Server Model

• Centralized system with all data in a single place.

• Cost efficient requires less maintenance cost and Data recovery is possible.

• The capacity of the Client and Servers can be changed separately.

Disadvantages of Client-Server Model

• Clients are prone to viruses, Trojans, and worms if present in the Server or uploaded into the Server.

• Servers are prone to Denial of Service (DOS) attacks.

• Data packets may be spoofed or modified during transmission.

• Phishing or capturing login credentials or other useful information of the user are common and MITM(Man
in the Middle) attacks are common.
Server for Every Client

Client-server computing is a widely used model for designing network architectures where tasks
are divided between servers and clients. This model facilitates efficient data management,
resource sharing, and scalability in modern computing environments

1. The Server: The Backbone of Client-Server Architecture

In the client-server model, the server is a central node that provides services, resources, or data
to other computers (clients) on the network. The server is typically a powerful machine with
more resources, such as higher processing power, memory, and storage, to handle multiple
requests simultaneously.

Roles and Functions of the Server:

• Data Management and Storage: Servers store and manage data that clients need access
to. For instance, in a web application, the server stores the website’s files, databases, and
other resources required to render the page to clients.
• Resource Provisioning: Servers are responsible for providing services such as file
sharing, printing, database access, and more. A file server manages file storage, and a
database server handles queries from the client applications.
• Security and Authentication: Servers are often responsible for securing the network,
authenticating client requests, and controlling access to sensitive data. A web server
might handle SSL encryption to ensure secure communications.
• Centralized Control: With the client-server architecture, servers allow centralized
administration. System administrators can update software, patch vulnerabilities, and
monitor network activity from the server side.

Examples of Servers:

• Web Server: Delivers web pages to browsers (clients) over HTTP.


• Database Server: Manages a database and handles requests from clients that want to access or modify
data.
• Mail Server: Manages email communication within a network, providing email services to clients.
• File Server: Stores files and provides access to them over a network.
2. The Client: The End User Interface

The client in client-server computing refers to the device or software that requests services, data,
or resources from the server. Clients can be computers, mobile devices, or even web browsers.
Clients typically rely on servers to access resources or perform actions they cannot do on their
own.

Roles and Functions of the Client:

• Requesting Services: Clients initiate requests to the server for specific services. For
example, a user’s browser (client) requests a web page from a web server by sending an
HTTP request.
• Presentation Layer: Clients are often responsible for presenting data to the user in a
user-friendly format. After receiving the data from the server, the client interprets it and
displays it for the user.
• Data Processing (Limited): While the client is not responsible for heavy processing,
some tasks may be done locally. For example, a client application might perform some
initial processing of the data before sending a request to the server for further operations.
• User Interaction: Clients serve as the interface between the end user and the system.
Users interact with client applications to perform tasks such as browsing, messaging, and
accessing data stored on servers.

Examples of Clients:

• Web Browser: A web browser like Google Chrome or Firefox acts as a client when requesting and
displaying web pages from a server.
• Email Client: Software like Outlook or Thunderbird that allows users to send and receive emails by
connecting to a mail server.
• Mobile App: A mobile app that communicates with a server to retrieve or send data, such as a social media
app or an online shopping app.

3. Communication Between Client and Server

In client-server computing, communication occurs in the form of requests and responses. The
client sends a request to the server, asking for a service or resource, and the server responds by
providing the requested data or service.

• Request-Response Model: The client sends a request (which could include user inputs
or data), and the server processes this request, often querying a database or executing
logic, before sending a response back to the client.
• Protocols for Communication: Communication is facilitated through standard
protocols, which define the rules for data exchange. Common protocols include:
o HTTP/HTTPS for web browsers and web servers.
o FTP for transferring files between a client and a server.
o SMTP and IMAP for email communication.
4. Advantages of Client-Server Computing

The client-server architecture offers several advantages, making it a popular choice for many
businesses and organizations:

• Centralized Management: The server can be centrally managed and maintained, which
makes it easier to apply updates, enforce security measures, and manage resources.
• Scalability: New clients can be added to the network without requiring significant
changes to the server infrastructure, allowing businesses to scale up as needed.
• Resource Sharing: Clients can share resources like printers, files, and databases stored
on the server, making the architecture efficient and cost-effective.
• Security and Data Integrity: Since the server controls access to data and resources, it
can enforce strict security policies and ensure the integrity of data, reducing the risk of
data breaches or corruption.

5. Client-Server Models in Modern Applications

Today, client-server architecture is a foundational model for many modern technologies, from
cloud computing to web applications. In cloud computing, for example, users (clients) access
cloud servers that provide computing resources, storage, and applications over the internet.

• Web Applications: Websites rely heavily on the client-server model, where the browser (client) interacts
with a server to display web pages.
• Cloud Services: Services like Google Drive, Dropbox, and Microsoft 365 allow users to interact with
powerful cloud servers to store and process data.
• Multiplayer Online Games: In multiplayer games, players (clients) communicate with game servers that
host the game world and manage player interactions.

What is Client-Server Architecture?

Client-server architecture is a cornerstone of modern system design, where the network


infrastructure is structured to include multiple clients and a central server. In this model, clients
are devices or programs that make requests for services or resources, while the server is a
powerful machine or software that fulfills these requests. Communication between clients and
the server follows a request-response protocol, such as HTTP/HTTPS for web services or SQL
for database queries.

• This architecture allows for efficient data management and resource allocation by centralizing critical
functions on the server, which can handle complex processing and large-scale data storage.

• Clients manage user interactions and send specific requests to the server, which processes these requests
and sends back appropriate responses.

• The client-server architecture is highly scalable, as it can accommodate more clients by scaling the server's
capabilities or adding additional servers.
• This design is prevalent in various applications, including web services, database management, and email
systems, providing a robust framework for developing and managing complex, distributed systems
efficiently.

Importance in System Design

Client-server architecture is critically important in system design for several reasons:

• Centralized Management: By centralizing resources and services on a server, this architecture simplifies
maintenance, updates, and security management. Administrators can efficiently monitor and manage data,
apply updates, and enforce security policies from a single location.

• Scalability: Client-server architecture supports scalability. As the number of clients grows, additional
servers can be added, or existing server capacities can be expanded to handle increased demand without
significantly altering the overall system architecture.

• Resource Optimization: This model allows for optimized resource allocation. Servers are designed to
handle intensive processing and large data storage, while clients are optimized for user interactions and
requests. This separation ensures efficient use of system resources.

• Reliability and Availability: With robust server infrastructure, client-server systems can ensure high
reliability and availability. Redundancies, backups, and load balancing techniques can be implemented on
the server side to minimize downtime and ensure continuous service availability.

• Enhanced Security: Centralized servers enable better security controls and data protection measures.
Sensitive data can be securely stored on servers, and access can be tightly controlled and monitored.
Encryption and authentication mechanisms can be more effectively implemented.

Key Components of Client Server Architecture

Client-server architecture in system design involves several key components that work together
to ensure efficient communication, resource management, and service delivery. Here are the
main components:

• Client: The client is a device or application that requests services or resources from the server. It initiates
communication with the server and processes the results returned by the server.

• Server: The server is a powerful machine or application that provides services or resources to clients. It
processes client requests, performs the necessary computations or data retrieval, and sends back the
appropriate responses.

• Network: The network facilitates communication between clients and servers. It enables data exchange
using various protocols and ensures reliable connectivity.

• Protocols: Protocols are standardized rules that govern data transmission and communication between
clients and servers. They ensure that data is transmitted in a secure, reliable, and understood manner.

• Middleware: Middleware is software that acts as an intermediary between clients and servers. It provides
additional functionalities like authentication, logging, message queuing, and transaction management.
• Database: A database is a structured collection of data stored on the server. It stores and manages data that
clients request, ensuring data consistency, integrity, and security.

• User Interface (UI): The UI is the part of the client application that interacts with the user. It provides a
means for users to input data and view results returned by the server.

• Application Logic: Application logic refers to the code and algorithms that define the application's
functionality. It processes user inputs, interacts with the server, and manages the flow of data between the
client and the server.

Design Principles for Effective Client-Server Architecture

Designing an effective client-server architecture involves several key principles that ensure the
system is robust, scalable, secure, and efficient. Here are the main design principles:

• Modularity:

o Separation of Concerns: Divide the system into distinct modules, such as the client, server, and
database, each responsible for specific tasks. This separation simplifies development, testing, and
maintenance.

o Reusability: Design components that can be reused across different parts of the system or in
different projects.

• Scalability:

o Horizontal Scalability: Ensure that the system can handle increased load by adding more servers
or instances rather than just upgrading existing hardware.

o Vertical Scalability: Allow for upgrades in server hardware, such as CPU, memory, and storage,
to handle more intensive tasks.

• Reliability and Availability:

o Redundancy: Implement redundant components, such as multiple servers, to ensure the system
remains operational in case of failures.

o Load Balancing: Distribute client requests across multiple servers to prevent any single server
from becoming a bottleneck.

• Performance Optimization:

o Efficient Communication: Optimize the communication protocols and data exchange formats to
reduce latency and bandwidth usage.

o Caching: Use caching mechanisms to store frequently accessed data closer to the client to
improve response times.

• Security:
o Authentication and Authorization: Ensure that only authorized clients and users can access the
server and its resources.

o Encryption: Use encryption protocols (e.g., SSL/TLS) to secure data transmission between
clients and servers.

o Regular Audits: Conduct regular security audits and updates to identify and address
vulnerabilities.

• Maintainability:

o Clean Code: Write clear, well-documented, and maintainable code to simplify debugging and
future enhancements.

o Version Control: Use version control systems to manage changes in the codebase and coordinate
among development teams.

• Interoperability:

o Standard Protocols: Use standard communication protocols (e.g., HTTP/HTTPS, REST, SOAP)
to ensure compatibility between different clients and servers.

o Platform Independence: Design the system to support multiple platforms and devices, allowing
various clients to interact with the server.

Frameworks and Tools for Client-Server Development

Developing client-server applications involves various frameworks and tools that cater to both
the client and server sides. Here are some commonly used frameworks and tools for client-server
development:

1. Server-Side Frameworks

• Node.js: A JavaScript runtime built on Chrome's V8 engine, ideal for building scalable network
applications.

• Express.js: A minimal and flexible Node.js web application framework that provides a robust set of
features for web and mobile applications.

• Django: A high-level Python web framework that encourages rapid development and clean, pragmatic
design. Comes with a built-in ORM, admin interface, and authentication mechanisms.

• Spring Boot: A Java-based framework that simplifies the development of new Spring applications.
Provides embedded servers and simplifies dependency management.

• Ruby on Rails: A server-side web application framework written in Ruby. Emphasizes convention over
configuration and the use of the MVC pattern.
2. Client-Side Frameworks

• React: A JavaScript library for building user interfaces, maintained by Facebook. Allows for the creation
of reusable UI components and provides a virtual DOM for efficient rendering.

• Angular: A platform and framework for building single-page client applications using HTML and
TypeScript. Developed and maintained by Google.

• Vue.js: A progressive JavaScript framework for building user interfaces. Designed to be incrementally
adoptable, with a core library focused on the view layer.

• Svelte: A radical new approach to building user interfaces, shifting much of the work to compile time.
Produces highly optimized vanilla JavaScript at build time.

• Bootstrap: A popular front-end framework for developing responsive and mobile-first websites. Provides
pre-designed components and utilities.

3. Database Management Systems

• MySQL: An open-source relational database management system. Widely used for web applications and
known for its reliability and ease of use.

• PostgreSQL: An advanced open-source relational database system. Known for its robustness, extensibility,
and standards compliance.

• MongoDB: A NoSQL database that uses a flexible, JSON-like document model. Ideal for applications
requiring high performance, scalability, and flexibility in data structure.

• SQLite: A self-contained, serverless, and zero-configuration SQL database engine. Suitable for embedded
systems and small applications.

4. Communication Protocols and APIs

• REST: Representational State Transfer, an architectural style for designing networked applications. Uses
standard HTTP methods and is stateless.

• GraphQL: A query language for APIs and a runtime for executing those queries. Allows clients to request
exactly the data they need, reducing over-fetching.

• WebSocket: A protocol providing full-duplex communication channels over a single TCP connection.
Ideal for real-time applications like chat and gaming.

5. Development Tools

• Postman: A collaboration platform for API development. Allows users to create, test, and document APIs.

• Swagger: A suite of tools for API design and documentation. Provides an interface for developing and
interacting with APIs.
• Docker: A platform for developing, shipping, and running applications in containers. Ensures consistency
across multiple development and production environments.

• Kubernetes: An open-source system for automating deployment, scaling, and management of


containerized applications. Provides powerful orchestration capabilities.

• Git: A distributed version control system for tracking changes in source code during software development.
Essential for collaborative development and maintaining code history.

Steps for Client-Side Design and Server-Side Design

Designing a client-server architecture involves distinct steps for both the client-side and server-
side development. Here are the steps for each:
1. Client-Side Design

Client Side Design

• User Requests a Website: The process begins when a user requests a website by entering a URL in the
browser or clicking a link.
• CDN Serves HTML Files: A Content Delivery Network (CDN) quickly serves the HTML files, which
contain links to the JavaScript files needed for the website.

• Browser Downloads HTML and JavaScript: The browser first downloads the HTML file and then
proceeds to download the linked JavaScript files. During this phase, the site may not be fully visible to the
user, as it waits for the JavaScript to render the content.

• Browser Downloads the JavaScripts: The browser continues to download the JavaScript files specified in
the HTML.

• JavaScript Execution and API Calls: Once downloaded, the JavaScript is executed. During execution,
the JavaScript makes API calls to the server to fetch the necessary data. At this stage, placeholders may be
visible to the user while the actual data is being fetched.

• Server Responds with Data: The server responds to the API requests with the required data. This data is
sent back to the client-side application.

• Data Fills Placeholders: The data fetched from the APIs fills the placeholders in the client interface. The
page becomes fully interactive and visible to the user.
2. Server-Side Design

Server Side Design

• User Requests a Website: The process starts when a user requests a website.
• Server Creates "Ready to Render" HTML Files: The server processes the request and generates HTML
files that are ready to be rendered.

• The Browser Can Quickly Render the HTML but the Site Isn't Interactive: The browser receives and
renders the HTML quickly, allowing the user to see the content immediately, but the site is not yet
interactive.

• The Browser Downloads the JavaScript: The browser then downloads the necessary JavaScript files.

• The User Can View Content and the Interactions Can Be Recorded: The user can view the content
while the JavaScript is being downloaded. User interactions can be recorded even though the site is not
fully interactive yet.

• The Browser Executes the JS Framework: Once the JavaScript is downloaded, the browser executes the
JavaScript framework (e.g., React, Angular).

• The Recorded Interactions Can Be Executed and the Page Is Now Interactive: The recorded
interactions are executed, and the page becomes fully interactive.

Networking and Communication in Client-Server Architecture

In system design, networking and communication in client-server architecture are fundamental


concepts. Here's a breakdown:

• Client-Server Model: This architecture involves two main components:

• Client: Initiates requests to the server, typically in response to user actions or inputs.

• Server: Responds to client requests, performing required processing and returning results.

• Networking Protocols: These define rules and formats for communication between clients and servers.
Examples include HTTP/HTTPS for web applications, TCP/IP for general network communication, and
WebSocket for real-time applications.

Communication Patterns:

• Request-Response: Commonly used where a client sends a request to the server and waits for a response.

• Publish-Subscribe: Allows clients to subscribe to specific events or data updates from the server,
promoting real-time data flow.

• Remote Procedure Call (RPC): Enables a client to invoke procedures or functions on a server as if they
were local.

• Scalability and Performance: Key considerations include load balancing (distributing client requests
across multiple servers), caching (storing frequently accessed data), and optimizing network protocols to
minimize latency.

• Security: Ensuring data integrity, confidentiality, and authentication through measures like HTTPS
(SSL/TLS), firewalls, and encryption protocols.
• Fault Tolerance: Implementing redundancy and failover mechanisms to ensure continuous service
availability in case of server failures or network issues.

Real-World Examples of Client-Server Architecture:

Some are some real-world examples of Client Server Architecture are:

1. Banking Systems: Online banking applications use client-server architecture to enable customers (clients)
to interact securely with bank servers. Clients can perform transactions, check balances, and manage
accounts through web or mobile applications.

2. Enterprise Applications: Large organizations use client-server architecture for various internal systems
such as ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), and document
management systems. Clients (employees or users) access centralized servers to retrieve and update data
related to business operations.

3. Telecommunications: Telecom networks rely heavily on client-server architecture for services like voice-
over-IP (VoIP), video conferencing, and messaging applications. Clients (users' devices or applications)
communicate through servers that manage call routing, signaling, and media streaming.

4. Internet of Things (IoT): IoT ecosystems often employ client-server architecture for managing devices
and collecting sensor data. Devices act as clients that send data to servers for processing, storage, and
analysis. Examples include smart home systems and industrial IoT applications.

5. Healthcare Systems: Electronic Health Record (EHR) systems and telemedicine platforms utilize client-
server architecture to securely manage patient records, facilitate remote consultations, and exchange
medical data between healthcare providers and patients

What is a Server?
Last Updated : 28 Dec, 2024



A server is a hardware device or software that processes requests sent over a network and replies
to them. A client is the device that submits a request and waits for a response from the server.
The computer system that accepts requests for online files and transmits those files to the client
is referred to as a “server” in the context of the Internet.

What is a Server?

A Server is a program or a device that provides functionality for called clients which are other
programs or devices. This architecture is called the client-server model.

A single overall computation is distributed across multiple processes or devices. Servers can
provide various functionalities called services. These services include sharing data or resources
among multiple clients or performing computations for a client. Multiple clients can be served by
a single server, and a single client can use multiple servers.
Uses of Servers

A client process may run on the same device. It can also connect over a network to a server to run
on a different device. Examples of servers may include database servers, mail servers, print servers,
file servers, web servers, application servers, and game servers. Most frequently client-server
systems are implemented by the request-response communication., i.e., a client sends a request to
the server. In this model, the server performs some action and sends a response back to the client,
typically with a result or acknowledgement.

Designating a computer as server-class hardware means that it is specialized for running servers
on it. This implies that it is more powerful and reliable than standard personal computers. However
large computing clusters may comprise many relatively simple, replaceable server components.

Server Component

Together, server components are intended to offer clients functionality, resources, and/or
services. Specific components will differ based on the form factor and function of a given server,
but common components are covered here.

• Hardware: The dedicated server’s central processing unit (CPU) , memory , storage device , network
interfaces, and the server chassis are all included in this.

• Server OS: This operating system (OS) was created with a particular kind of client/server environment in
mind.

• Network Connectivity: Over a local area network (LAN) , wide area network (WAN) , or the internet ,
server programs connect to the network architecture and communicate with client devices. To offer
redundancy and accommodate various network setups, certain server form factors contain several network
interfaces.

• Management and Monitoring Tools: Instruments for remote management and performance monitoring
are frequently included with servers.

• Server Software: This server software supports a particular use case. Software for email servers, web
servers, and database servers are a few examples.

• High-Availability Features: High-availability (HA) capabilities are included on some servers to reduce
downtime and guarantee continuous operation. This involves having access to numerous storage systems,
backup power supply and network interfaces, and configuration management tools that enable automatic
failover and load balancing .

How a Server Works?

A device needs to be set up to listen for client requests across a network connection in order to
perform the role of a server. The operating system may include this functionality as an installed
application, a role, or a combination of the two.
The windows server operating system from microsoft has the capability to hear and respond to
client requests. The types of client requests the server can handle increase with additional
installed roles or services. Another illustration is when an additional application called Apache is
put on top of an operating system to handle requests from web browsers. A client sends a request
over the network whenever it needs data or functionality from a server. The server gets this
request and provides the necessary information in response. This is the client-server networking
request and response model, commonly referred to as the call and response model.

As part of a single request and response, a server frequently completes a variety of additional
tasks, such as confirming the requestor’s identity, making sure the client has permission to access
the data or resources requested, and correctly formatting or returning the required response in the
expected manner.

Types of Servers and Their Applications


1. Application Server

These servers host web apps (computer programs that run inside a web browser) allowing users
in the network to run and use them preventing the installation of a copy on their own computers.
These servers need not be part of the World Wide Web. Their clients are computers with a web
browser.

2. Catalog Server

These servers maintain an index or table of contents of information that can be found across a
large distributed network. Distributed networks may include computers, users, files shared on
file servers, and web apps. Examples of catalog servers are directory servers and name servers.
Their clients are any computer program that needs to find something on the network. An
example can be a domain member attempting to log in, an email client looking for an email
address, or a user looking for a file

3. Communication Server

These servers maintain an environment needed for one communication endpoint to find other
endpoints and then communicate with them. These servers may or may not include a directory of
communication endpoints and a presence detection service, depending on the openness and
security parameters of the network. Their clients are communication endpoints.

4. Computing Server

These servers share vast amounts of computing resources which include CPU and random-access
memory over a network. Any computer program that needs more CPU power and RAM than a
personal computer can probably afford can use these types of servers. The client must be a
networked computer to implement the client–server model which is a necessity.
5. Database Server

These servers maintain and share any form of database over a network. A database is an organized
collection of data with predefined properties that may be displayed in a table. Clients of these
servers are spreadsheets, accounting software, asset management software, or virtually any
computer program that consumes well-organized data, especially in large volumes.

6. Fax Server

These servers share one or more fax machines over a network which eliminates the hassle of
physical access. Any fax sender or recipient is the client of these servers.

7. File Server

Shares files and folders, storage space to hold files and folders, or both, over a network. Networked
computers are the intended clients, even though local programs can be clients.

8. Game Server

These servers enable several computers or gaming devices to play multiplayer games. Personal
computers or gaming consoles are their clients.

9. Mail Server

These servers make email communication possible in the same way as a post office makes snail
mail communication possible. Clients of these servers are senders and recipients of email.

10. Print Server

These servers share one or more printers over a network which eliminates the hassle of physical
access. Their clients are computers in need of printing something.

11. Proxy Server

This server acts as an intermediary between a client and a server accepting incoming traffic from
the client and sending it to the server. Reasons to use a proxy server include content control and
filtering, improving traffic performance, preventing unauthorized network access, simply routing
the traffic over a large and complex network. Their clients are any networked computer.

12. Web Server

These servers host web pages. A web server is responsible for making the World Wide Web
possible. Each website has one or more web servers. Their clients are computers with a web
browser.
Where Are Servers Stored?

A server is stored in a closet or glass house. These areas help isolate sensitive computers and
equipment from people who should not access them.

Remote servers or the servers that are not hosted on-site are located in a data center. For these
types of servers, the hardware is managed by another company and configured remotely by you or
your company.

Why Are Servers Always On?

The servers are always on because they are commonly used to deliver services that are constantly
required, most servers are never turned off. Consequently, when servers fail, they can cause
network users and companies many problems. To alleviate these issues, servers are commonly set
up to be fault tolerant.

Can Any Computer Make A Server?

The answer is ‘Yes’. Any computer act as a server with the right software. You may install an FTP
server program on computer and share files between other computers over your network. But, you
can make your home computer a server. you have to keep some important points in your mind:

• The computer and the related server software must be in a running mode that is accessible at any time.

• A computer is in server mode, its resources (like bandwidth and processing) will not allow it to do any
other things.

• If the services become popular, which you are providing, a typical computer can not be capable of handling
all of the requests.

.
Application Server
In modern computing, where web applications dominate the digital landscape, the term
"application server" is significant. From facilitating communication between various software
components to managing mission-critical transactions and operations, application servers play a
crucial role in the functioning of business applications.

What Is an Application Server?

An application server resides on the server side and bridges clients (web browsers or mobile
apps) and backend business applications or databases. Its primary function is managing
application operations, processing requests and data flow. Put simply, an application server
handles the business logic of an application to facilitate seamless integration between different
components and offer support for multiple users concurrently.

How Do Application Servers Work?

Application servers follow a client-server model, where clients (typically web browsers or
mobile devices) send requests to the server, which processes these requests, executes the
necessary business logic, interacts with databases if required and sends back responses to the
clients. This process involves various layers, including presentation logic, application logic and
data access logic—all managed by the application server.

Pros of Application Servers

• Scalability: Application servers are designed to handle many users and transactions, making them ideal for
scalable applications.
• Centralized Management: They provide a centralized platform for managing and deploying applications,
simplifying the development and maintenance process.
• Security: Application servers often have built-in security features, such as authentication and
authorization, to support the integrity of mission-critical applications and data.

How Application Servers Differ from Web Servers

An application server and a web server are crucial components in web development, yet they
serve distinct purposes.

A web server primarily delivers static content, such as CSS, HTML and JavaScript files, to
clients upon request. It handles HTTP requests and responses efficiently, often employing
protocols like HTTP and HTTPS to communicate with web browsers.

Conversely, an application server is designed to execute dynamic, application-specific tasks. It


manages business logic, database transactions and various server-side processes—generating
dynamic content tailored to user requests. Unlike a web server, which mainly deals with static
content delivery, an application server facilitates the execution of server-side scripts and
applications, allowing for the generation of personalized and interactive web experiences.

While both servers collaborate in web environments, their functionalities vary significantly. Web
servers focus on content delivery, while application servers handle dynamic application logic and
data processing.

How Application Servers Differ from Database Servers

An application server and a database server play separate yet complementary roles within a
client-server architecture.

The application server primarily hosts and executes the business logic or application logic of a
software application. It manages tasks such as processing client requests, maintaining sessions
and facilitating communication between the client-side and backend systems.

In contrast, a database server is specialized in storing, managing and retrieving data efficiently. It
provides services like data storage, retrieval, querying and transaction management, enabling
applications to interact with structured data. While application servers focus on executing
application logic and managing client-server communication, database servers specialize in data
storage and management, supporting SQL and other query languages for data manipulation.

Leading the Charge: Progress Application Server for OpenEdge (PAS for OE)

The Progress Application Server for OpenEdge is an application server renowned for its
reliability, scalability and robustness. It offers a comprehensive platform for developing,
deploying and managing business-critical applications.

Here are the main benefits of PAS for OE:

• Simple: PAS for OpenEdge is built upon the industry-standard Apache Tomcat web server framework,
installed, configured and monitored as a web server that supports easy-to-create, HTML-based frontends
for users of applications based on the OpenEdge platform.
• Secure: With Spring Security Framework included, our innovative application server was designed on the
latest standards for secure operation.
• Cloud-Ready: PAS for OpenEdge provides a scalable and cloud-ready server to optimize operations and
reduce management costs.
• Supports ABL Development and Deployment: PAS for OpenEdge is specifically tailored to support
ABL application development and deployment environments.
• REST Services: To build a safe, scalable API interface for your application, PAS for OpenEdge can
deploy REST services using its RESTful Service Interface.

Application servers are the backbone of modern web applications, providing the necessary
structure for executing and managing complex business logic. Understanding their
functionalities, pros and cons and differences from other server types is crucial for developers
and businesses to achieve optimal application performance and scalability.
Web Server

Web Servers play an important role in delivering web applications to users. They process
requests from browsers and serve the necessary content, such as web pages, images, and data,
ensuring a smooth online experience. Understanding the types of web servers helps in choosing
the right one based on performance, scalability, and security needs.

What is Web Sever?

A web server is a system that stores and delivers web pages to users. It uses the HTTP/HTTPS
protocol to handle requests from browsers and sends back things like HTML files, images, and
videos.

• Web Browser This is where you type the URL (e.g., www.example.com). The web browser sends a
request for the page you want to access.

• Request Sent via the Internet: The request travels over the Internet to the web server, asking for specific
content like a webpage or an image.

• Web Server: The web server is a computer that stores and delivers web pages. It receives the request from
the browser and processes it. The server then prepares the requested information (like HTML, images, etc.).

• Response Sent Back: The web server sends the response (the requested webpage or content) back through
the internet.

• Web Browser Displays the Page: The browser receives the response from the web server and displays the
web page to the user.

How Does a Web Server Work?

• Client Request: In the web browser(https://www.example.com) the user enters a URL.

• DNS Resolution: To get the IP address of the requested domain, the browser contacts a Domain Name
System (DNS) server.

• Connecting to the Web Server: Using the obtained IP address the browser establishes a connection with
the web server.

• Processing Request: The web server receives the request and processes it.

• Serving the Response: The requested files(HTML, CSS, JavaScript, images ) are sent back to the client’s
browser by the web server.

• Rendering the Web Page: Based on the received data the browser displays the web page to the user.
How Does a Web Server Work

Types of Web Servers

Web servers can be categorized based on their functionality, usage, and implementation. Below
are some of the most common types

Web Servers
1. Apache Web Server

Apache Web Server is one of the most widely used and the oldest open-source web servers
available under the Apache License 2.0 which means that it can be freely used and can be
modified. It was developed by the Apache Software Foundation, and first released in 1995. It is
highly flexible and customizable. It is written in the C programming language.

• Supports multiple operating systems (Windows, Linux, macOS).

• Allows advanced routing.

• Provides directory-level configuration.

2. Nginx Web Server

Nginx (pronounced as “Engine-X”) is a high-performance web server known for its speed,
scalability, and efficient handling of concurrent connections. It was developed by Igor Sysoev,
and initially released in 2004 and quickly became popular due to its high performance and
scalability. It is written in C language.

• Designed for handling large volumes of traffic.

• Functions as a reverse proxy and load balancer.

• Efficient for serving static content.

3. Microsoft IIS (Internet Information Services)

IIS is a web server developed by Microsoft, designed to work with Windows Server
environments. It was developed by Microsoft, and first released in 1995 as a web server designed
specifically for Windows-based systems. It is written in C++.

• Supports ASP.NET, PHP, and other web technologies.

• Provides built-in security features.

• Integrates well with Microsoft products.

4. LiteSpeed Web Server

LiteSpeed is a high-performance web server known for its speed and security features. The
LiteSpeed Web Server, developed by LiteSpeed Technologies, and first introduced in 2003 as a
high-performance alternative to Apache. It is written in C.

• Faster processing than Apache in some scenarios.

• Built-in DDoS protection.


• Supports PHP applications with high efficiency.

5. Apache Tomcat Web Server

Apache Tomcat is a web server primarily used for running Java-based applications. The Apache
Tomcat web server was developed by the Apache Software Foundation and was initially released
in 1998. It is written in Java, making it highly compatible with Java-based frameworks like
Spring Boot.

• Supports Java Servlets and JSP (Java Server Pages).

• Provides a robust environment for Java EE applications.

• Works well with Apache web server.

6. NodeJS Web Server

NodeJS itself can act as a web server by handling HTTP requests directly without requiring
additional software. NodeJS, developed by Ryan Dahl, and introduced in 2009 as a JavaScript
runtime environment rather than a traditional web server. It is written in JavaScript and C++.

• Event-driven, non-blocking architecture.

• Highly efficient for real-time applications.

• Uses JavaScript for both client-side and server-side development.

7. Lighttpd

Lighttpd was developed by Jan Kneschke, and released in 2003 as a lightweight and fast web
server. It is written in C and is available as an open-source project under the BSD License.
Lighttpd is a cross-platform web server, running on Windows, Linux, and macOS.

• It is optimized for low memory usage and high-speed performance, making it ideal for servers with limited
resources.

• Uses asynchronous request handling, which improves efficiency and scalability for handling multiple
connections.

• Supports HTTPS, FastCGI, and URL rewriting, making it a secure and efficient choice for web hosting.

8. OpenLiteSpeed

OpenLiteSpeed was developed by LiteSpeed Technologies, and launched in 2013 as the open-
source version of LiteSpeed Web Server. It is written in C and is available under the GPLv3
License. It is cross-platform, supporting Windows, Linux, and macOS. OpenLiteSpeed offers
built-in caching, HTTP/3 support, and high-performance optimizations, making it an excellent
choice for developers looking for a free alternative to LiteSpeed.

• Provides fast processing speeds with built-in caching and event-driven architecture, improving website
loading times.

• Supports modern web protocols for faster and more secure communication between clients and servers.

• Offers an easy-to-use interface for configuring server settings, making management simpler.

9. Jigsaw Server

Jigsaw Server was developed by the World Wide Web Consortium (W3C), and first released in
1996 as a research-based web server. Jigsaw is written in Java and is open-source. It is designed
for testing and developing new web standards, rather than being used for mainstream web
hosting.

• Jigsaw is cross-platform, running on Windows, Linux, and macOS.

• Allows users to extend and modify its functionality easily, making it flexible for research and development.

• Fully supports HTTP/1.1 and is designed for experimenting with new web technologies.

10. Sun Java System Web Server

The Sun Java System Web Server was developed by Sun Microsystems, and released in 1996 as
a web server optimized for Java applications. It was written in C and C++. After Oracle acquired
Sun Microsystems, the development of this web server was discontinued.

• Designed specifically for hosting Java-based enterprise applications, ensuring seamless integration.

• Handles high traffic efficiently, making it suitable for large-scale applications.

• Supports multiple operating systems, including Windows, Linux, and Solaris, for flexible deployment.

Which Web Server Should You Use and When?

Choosing the right web server depends on what you need for your website or application. Here’s
a simple guide to help you decide:

• Use Apache: If you want a reliable and customizable web server that works on almost any system. It’s
great for general websites and supports many features.

• Use Nginx: If your website gets a lot of visitors and you need a fast and efficient server that can handle
high traffic smoothly.

• Use IIS: If you are using Windows-based applications and need a server that works well with Microsoft
technologies like ASP.NET.
• Use LiteSpeed: If you want a faster and more secure alternative to Apache, especially for WordPress or
other PHP-based websites.

• Use Apache Tomcat: If your website or app is built with Java and you need a server that supports Java
Servlets and JSP (Java Server Pages).

• Use NodeJS: If you’re building real-time applications, such as chat apps or online games, and want to use
JavaScript for both frontend and backend.

• Use Lighttpd: If you need a lightweight and fast server that works well on systems with low memory or
limited resources.

• Use OpenLiteSpeed: If you want a free version of LiteSpeed that still offers great speed and performance.

• Use Jigsaw: If you are a developer or researcher testing new web technologies and standards.

• Use Sun Java System Web Server: If you are working with older Java applications, but note that this
server is no longer supported.

Difference Between Web server and Application server

A server is a central repository where information and computer programs are held and accessed
by the programmer within the network. Web servers and Application servers are kinds of servers
employed to deliver sites and therefore the latter deals with application operations performed
between users and back-end business applications of the organization.

What is a Web Server?

A Web Server is a computer program or device that serves web content, primarily hosting websites
and handling HTTP requests from clients (usually web browsers). It accepts requests for data and
sends the specified documents, primarily static content such as HTML, CSS, and images.
However, web servers can also handle dynamic content by interacting with server-side scripts.

Example of Web Servers:

• Apache HTTP Server

• Nginx

• Microsoft IIS

• Resin
What is an Application Server?

An Application Server provides a more comprehensive environment for running enterprise


applications. It includes both a web container and an EJB (Enterprise JavaBeans) container,
supporting a wide range of applications, including dynamic content and complex business
operations. Application servers handle not just HTTP, but also other protocols like RMI (Remote
Method Invocation) and RPC (Remote Procedure Calls), making them suitable for hosting both
the logic and user interface of applications.

Examples of Application Server:

• WebLogic

• JBoss

• WebSphere

• GlassFish
Differences Between Web Servers and Application Servers
S.NO Web Server Application Server
1. Web server encompasses While application server
web container only. encompasses Web container
as well as EJB container.
2. Web server is useful or Whereas application server
fitted for static content. is fitted for dynamic
content.
3. Web server consumes or While application server
utilizes less resources. utilize more resources.
4. Web servers arrange the While application servers
run environment for web arrange the run environment
applications. for enterprises applications.
5. In web servers, While in application server,
multithreading is multithreading is not
supported. supported.
6. Web server’s capacity is While application server’s
lower than application capacity is higher than web
server. server.
7. In web server, HTML and While in this, GUI as well as
HTTP protocols are used. HTTP and RPC/RMI
protocols are used.
8. Processes that are not Processes that are resource-
resource-intensive are intensive are supported.
supported.
9. Transactions and Transactions and
connection pooling is not connection pooling is
supported. supported.
10. The capacity of fault It has high fault tolerance.
tolerance is low as
compared to application
servers.
11. Web Server examples are Application Servers
Apache HTTP Server , example are JBoss ,
Nginx. Glassfish.

Web Servers and Application Servers serve distinct purposes in the architecture of web and
enterprise applications. Web servers are ideal for serving static content and simple web
applications with minimal resource consumption, while application servers offer a more robust
environment for enterprise-level applications that require complex processing, transaction
management, and high fault tolerance.

What is File server?


Last Updated : 31 Aug, 2022



Before learning about File Servers, we need to understand why it is introduced into computer
networks. Different users within a network need file storage and file-sharing solution which is
accessible from any location. So they upload their files to a server and share them with their
companion on a network. This server is termed a File Server. For understanding it better, we can
imagine it like a Google Drive or a Dropbox.

What is a File Server?

The central server in a computer network that is responsible for the storage and management of
data files is called a File Server. In a File Server, users access a central storage space that acts as
a medium to store the internal data. The users can share information over a network without having
to physically transfer files. The server administrator has given strict rules that which users have
the access to the files. These rules include opening, closing, adding, deleting, and editing a file.

Apart from accessing the files via a local network, users can also benefit from remote access. This
includes accessing and saving the desired file on the server even when users are on the go. It makes
a remote file system accessible to clients. The File Servers can also be used as a Backup Server
and Respiratory for programs which means the files are accessible to multiple network
participants.
Type of File Server:

File Servers can be categorized as:

1. Dedicated File Server: Dedicated File Server solely provide services to other computers. This can be in a
particular local-area network or having a properly authorized access request associated with a computer
system. It is dedicated to one purpose- being a File Server. A dedicated File Server offers sufficient storage
space for the website. Also, it is more secure.
2. Non-Dedicated File Server: The function of a Non-Dedicated File Server is like any other workstation that
permits it to utilize itself as a workstation. These File Servers can be used simultaneously as a workstation,
also for everyday tasks. A Non-Dedicated File Server offers less storage space for the website. It is less secure
and can be compromised by a fraudster.

Working of File Server:

Let’s first talk about the best hardware suitable for the foundation of the authentic file server. The
hardware should offer enough space, working memory, and processing power. This helps the users
in convenient file sharing, processing, and accessing files more quickly as possible.

File Server

File Servers don’t make any changes to the existing files. This is because they store the data as a
heap of binary data and files in the form of blobs(Binary Large Object). So they don’t perform any
additional filtering or processing of data(executables, documents, photos, and video). The only
way of working with File Servers is to make a file system that is accessible to clients.

Features of File Server:

• Multiple users can access files simultaneously.


• Protocols are set for authorization.
• FTP(File Transfer Protocol) and SFTP(Secure File Transfer Protocol) are used over the internet for accessing
files.
• Blocking multiple users from editing the same file at the same time is called File Locking.
• One can use a download server for ease.

Advantages:

• Helps in resource and information sharing.


• Helps in central storage of data.
• Helps in connecting with multiple computers for sending and receiving information when accessing the
network.
• Faster-problem-solving.
• Boots Storage Capacity.
• Highly flexible and reliable.

Disadvantages:

• Costly setup.
• The risk from viruses and malware.
• It lacks independence.
• Requires time for constant administration.
• It lacks Robustness.

Protocols in File Server:

Some of the File Server Protocols are Server Message Block(SMB), Network File System(NFS),
and File Transfer Protocol(FTP).

• Server Message Block(SMB): The network File sharing protocol allowing applications to do some
operations to request services for the server is called Server Message Block(SMB). These operations can be
reading or writing files in a computer network. LAN File Servers use this protocol. It is supported for
Windows and macOS.
• Network File System(NFS): A distributed file system whose operation is to store files on a network is
referred to as a Network File System(NFS). These operations can be accessing files(create, remove, read,
write) and directories over a network and acting like they are present locally.
• File Transfer Protocol(FTP): The process involving sending and receiving files between devices over a
network is called File Transfer Protocol(FTP). It is a standard communication protocol. It is built on a client-
server model architecture means clients can execute information from the remote file system directly.
Print Server
Introduction

A print server is a computer, network device, or software program that controls print requests
and provides network administrators and end-users with printer queue status information. Both
large enterprise networks and small or home office (SOHO) networks use print servers.

Print servers receive print requests from PCs, queue them, and subsequently route the requests to
designated printers. Additionally, print servers might be cloud-based or physically located. When
print requests come in more quickly than they can be processed, print servers assist. Print servers
assist in offering more management and control over print requests for an organization that has a
large number of devices, or devices spread across various geographic areas.

In a large organization, a dedicated computer serving as a print server may manage hundreds of
printers. A print server, which serves the same purpose as a dedicated print server but frees up
important disk space on the office's few PCs, is typically a small network device or specialized
plug-in board the size of a hub.
How are print servers operated?

The software needed for a print server may be installed on a computer's operating system or be a
component of a server, network device, or application. Network printing management is made
possible by software on specialized PCs or network devices.

• In the event that servers are used, computers can communicate with available printers by connecting to the
server via a network.
• Printers are connected to dedicated print server devices via USB, parallel, or wireless connections. Usually,
devices are connected to several additional printers as well as the local area network (LAN).
• Multiple printers are networked with print servers installed on computers.
• Printers may have built-in print servers.

The client-server architecture is used by print servers. To keep control over print queues, print
servers establish direct connections with network printers. The print server is what gets a request
to print a file made by a user on behalf of an authorized client. After that, the print server handles
request information, including file and print requirements. After that, the request is queued and
issued to a certain network printer. On the specific printer, the files are printed in the order they
are queued.

Additionally, print servers may support a variety of proprietary and non-proprietary printing
protocols. Printing protocols facilitate communication between the printers that handle requests
from clients and the clients making the requests.

They are divided into the following protocols:

• Specific print activities are handled by dedicated protocols like Jetdirect or Line Printer Daemon.
• Generic protocols that treat printers like remote drives, including Server Message Block (SMB).
• Wireless protocols that allow devices to use printers wirelessly, like AirPrint.

Why an organization might need a print server

Print servers are very helpful for businesses that need to print a lot of documents and have
multiple printers. Here, they help with the management of each connected printer's print queues.
Print servers are helpful for additional purposes, including the following:

Managing several printers from a central location. This facilitates the monitoring of printer
health, software updates, and bottleneck prevention for printers spread throughout an office or
building.

Print servers are able to control the queue for every connected printer, which increases
efficiency. To better serve customers, print servers can also route requests to quicker local
printers. The processing power required for printers to handle large queues is offloaded to a
specific device.
Downsides of utilizing a print server

However, there are drawbacks to printing servers. The possibility that print servers will become a
source of venerability for companies is a significant drawback. If the server fails, it will affect all
printers attached to it.

An executable file from Microsoft that controls the printing processes is called Windows Print
Spooler. It allows every system in the service to function as both a print server and an
administrative or print client. An attacker could have gained system access on machines by
exploiting a zero-day vulnerability in Print Spooler. Part of the PrintNightmare problem, which
affects Windows Print Spooler and print driver configuration settings, is this vulnerability.

History of print server technology

Many endpoints could initially be connected to a single wide area network (WAN) connection
point due to terminal servers. Print queuing was eventually included by terminal server designers
as printers were connected to the servers as they developed. Having specialized print servers
grew increasingly typical as time went on.

Although they may not be as necessary now as they previously were, print servers eventually
become a crucial component of networks. Hard copies may no longer be as crucial or useful to
some businesses, which may only need to rely on digital files. Furthermore, print servers'
features are occasionally included pre-packaged in other network appliances.

Additionally, cloud-based "serverless" printing solutions are available. When a print server is
hosted remotely and users access it via the internet, they can manage prints using public or
private cloud services. Users do not need to own or manage a physical print server while using
this option.

A print server is still an option for organizations that rely on printing physical documents, but it
is up to the organization.

Why do I need a print server?

In a networked setting, a print server serves as the primary hub for managing print jobs and
assigning them to different printers. By eliminating the need for a direct connection between
every computer and every printer, it simplifies and speeds up the printing process. Strong
arguments for utilizing a print server include the following:

• Centralized printer management: A print server simplifies printer management by centralizing tasks,
including driver installation, printer configuration, and maintenance. This centralized approach reduces the
effort for IT personnel while ensuring consistent printer settings across the network.
• Enhanced print job efficiency: Print servers queue up and expedite the processing of print jobs by
prioritizing print jobs based on user or department needs. This guarantees that urgent documents are
produced on time and helps prevent printer overload.
• Enhanced security: Print servers can enforce secure printing regulations, such as requiring job release
codes or PIN authentication to prevent unauthorized access to private data, in addition to being shielded by
the network firewall. This protects confidential data and stops unauthorized printing.
• Cost-effective solution: Print servers are an affordable choice for businesses and organizations with
several printers. Print servers can lower overall IT costs by removing the requirement for several direct
connections and centralizing printer administration.
• Flexibility and scalability: Print servers can grow with a business as it grows. When the number of users
or printers increases, it is comparatively simple to connect more devices to the print server to handle the
additional load.

What is print server software?

A computer can serve as a print server with the help of print server software. It distributes print
jobs to network printers, handles print jobs, and keeps an eye on printer status. The operating
system may come with print server software already installed, or it can be purchased separately.

There are numerous varieties of print server software available, each with a unique set of
functionalities.

Among the most typical characteristics are:

• Print job queuing and management.


• Printer status monitoring.
• Job accounting.
• Secure printing.

Businesses and organizations without a large, complex network infrastructure that needs a
dedicated printer but has several network printers can benefit from print server software. It can
lower IT expenses, boost security, and increase the effectiveness of print jobs.

Printing protocols

Printer and computer communication is governed by a set of rules and conventions called
printing protocols. They are required to ensure that print jobs are transmitted and received
accurately.

While there are a number of printing protocols in use today, the following are the most popular
ones:

• Line Printer Remote (LPR): Originally designed for Unix computers, LPR is an outdated protocol. This
simple technique is still followed by a lot of people today. When LPR prints, the entire job is sent to the
printer at once. Thus, LPR can be slow, especially for high-volume assignments.
• Internet Printing Protocol (IPP): IPP is a more modern protocol based on HTTP. Despite being a more
complex protocol than LPR, it offers a number of advantages, including the capacity to monitor and cancel
jobs. IPP is the suggested protocol for newly purchased printers and is growing in popularity.
• Server Message Block/Common Internet File System (SMB/CIFS): The SMB/CIFS network file-
sharing protocol allows printing on Windows networks. SMB/CIFS is not as robust as LPR or IPP, despite
being a simple and easy-to-use protocol.
• JetDirect: The proprietary protocol known as JetDirect was developed by HP. Although it is not as widely
supported as LPR or IPP, HP printers commonly use this protocol.
• TCP/IP: TCP/IP is the most commonly used network protocol in the world. It is used for a plethora of
network operations, printing being only one of them. A reliable protocol for printing over wired and
wireless networks is TCP/IP.

Common issues and troubleshooting

When managing print servers, several common issues might arise, such as printer faults and
network issues. These issues can aggravate users and make printing challenging. It is necessary
to quickly identify and resolve these issues in order to maintain a seamless and productive
printing environment.

1. Network connectivity: When there are issues with print server network connectivity, it's
critical to ensure that the print server is physically connected to the network.

Verify that the print server is correctly connected to the network and has a functional IP address.
Ensure that network wires are securely connected and look for any damage.

2. Print job failures: A number of factors, including incorrect printer settings, improper print
data, or insufficient storage capacity on the print server, can lead to print job failures.

To address print job problems, review the print queue on the print server to identify any failed or
delayed print processes. Terminate stalled jobs to free up resources and make way for new
positions.

3. Print queue management: To prevent delays in printing operations, efficient print queue
management is required. Watch the print queue and terminate any stalled or failing tasks to
maintain a seamless workflow.

4. Security vulnerabilities: Confidential data may be in danger due to security vulnerabilities in


print servers. Regularly apply the latest security updates to the print server's operating system
and printer drivers to safeguard against security risks. To access the print server and network,
create strong passwords.

Make sure that firewalls and other security technologies are always protecting your servers.

Benefits of a Print Server

A print server can assist with many administrative duties in the workplace and offer additional
conveniences to the staff, in addition to enabling all members of your team to use the printer at
the same time.

1. Easy Administration

If you have a print server at the workplace, fresh print job requests will not be routed directly to
the printer. First, the print server will receive them, after which a queue will form.
This facilitates improved management of printing resources and updates to printer settings for
the system administrator in your office.

A print server can assist with several common and helpful management techniques, such as
setting color printing quotas, checking user identity, and watermarking printed papers.

Such actions provide a greater degree of protection for all employees and the official documents
that the printer handles.

2. Show Print Job Status to Users

During office hours, we frequently need to print documents on a tight timeline. Our computer's
ability to indicate the percentage of the printing work that has been finished and the estimated
time it will take to finish the remaining tasks is quite helpful in these common instances.

This is made feasible by a print server, which provides the user who started the process with the
print job status. From the respective software, you can view the total number of pages that need
to be printed as well as the number of pages that have already been printed.

3. Higher Cost-Effectiveness and Productivity

Your company will be more cost-effective if it has a wireless print server because it will require
fewer devices to provide the same results.

This kind of single server can allow every employee to use a single printer without interfering
with each other's work. It also oversees the queued jobs, allowing them to be pushed forward,
backward, or deleted completely. This streamlines the entire procedure and maintains
productivity levels for the entire year.

How Does A Print Server Connect to The Printers?

It is possible to connect a print server and printer in a few different ways. The servers have one
or more ports, so if one connection fails, you may rely on the next to continue working with the
printer.

1. Ethernet

For a very long time, Ethernet has been the main connecting method for network devices. As a
result, it's no surprise that printer servers use the same common connectivity solution.

Additionally, this port can directly connect to the router, which will facilitate device internet
access.
2. USB

On print servers, USB ports are the most commonly used type of connectivity. Each device has a
USB connector built in, so you can use a cable to connect it right away to the printer's USB port.

By attaching the printer to their assigned port, certain routers can also function as USB print
servers.

3. Wi-Fi

If you don't want to deal with the hassle of cables, you can use a wireless print server. All of the
client PCs and printers are already available, so all they need to do is join the Wi-Fi network.
Using this simple strategy, workplaces can reduce clutter across the office space.

Mail Server
What is a mail server?
AI Overview

A mail server, also known as an email server, is a computer system that handles the sending,
receiving, and storage of electronic mail (emails). It acts as a central hub for email
communication, managing the flow of messages between email clients (like Outlook or Gmail)
and the internet.
Here's a more detailed explanation:

• Function:

Mail servers facilitate email communication by:

o Receiving emails: They accept emails sent to users within a domain.

• • Storing emails: They store emails in a user's mailbox until the user retrieves them.
• • Sending emails: They relay emails to their intended recipients' email servers.
• • Routing emails: They use protocols like SMTP (Simple Mail Transfer Protocol) to route
emails between servers.

• •

• Protocols:
Mail servers use various protocols to manage email traffic:
• SMTP (Simple Mail Transfer Protocol): Used for sending emails from a client to a
mail server and between mail servers.

• • IMAP (Internet Message Access Protocol): Allows users to access and manage their
emails on a server, keeping them accessible from multiple devices.
• • POP3 (Post Office Protocol version 3): Downloads emails to a user's device, often
deleting them from the server after download.

• •

• How it works:
When you send an email, your email client uses SMTP to send the message to your mail server.
The mail server then uses SMTP to relay the message to the recipient's mail server. The
recipient's mail server uses IMAP or POP3 to allow the user to access and read the email.
• • Example:
If you work for company A and send an email to someone at company B, your email client uses
SMTP to send the email to your company's mail server. Your company's mail server then relays
the email to company B's mail server, which then uses IMAP or POP3 to allow the recipient to
access and read the email.

Difference between Web Server and Mail Server


Last Updated : 03 Apr, 2023



Web Server : Web Server, as the name suggests, is a server software where web content is
stored and uses HTTP protocol and other protocols to respond to user requests that is being made
over WWW. Its main function is to display the content of the website through storing,
processing, and delivering webpages within the website to users.

Example: Apache, NGINX, Microsoft Internet Information Services (IIS), etc.

Web Server Features:

• HTTP protocol: Web servers use the HTTP protocol to serve web pages over the internet.
Domain Name System (DNS): A web server can host multiple websites, each with its own domain name
and IP address.
• Server-side scripting languages: Web servers support server-side scripting languages like PHP, Python, and
Ruby, which allow developers to build dynamic web applications.
• Web application servers: Web servers can run web application servers like Apache Tomcat, JBoss, and
Node.js, which allow developers to build complex web applications.
• Content management systems: Web servers can support content management systems (CMS) like
WordPress, Drupal, and Joomla, which make it easy to create and manage web content.
Mail Server : Mail Server, similar to the post office, is a computer system program responsible
for receiving, routing, delivering e-mail. It is also known as MTA (Mail Transfer Agent) and
store incoming mail for distribution to users and deliver e-mail to client computers.

Example: Yahoo!, Gmail incoming mail server, Gmail outgoing mail server, etc.

Mail Server Features:

• SMTP protocol: Mail servers use the Simple Mail Transfer Protocol (SMTP) to send and receive emails.
• Mail transfer agents: Mail servers use mail transfer agents (MTAs) like Sendmail, Postfix, and Exim to
route and deliver email messages.
• Mail delivery agents: Mail servers use mail delivery agents (MDAs) like Dovecot, Courier, and Cyrus to
store incoming mail messages for retrieval by email clients.
• POP3 and IMAP protocols: Mail servers support protocols like POP3 and IMAP, which allow email clients
to retrieve messages from the server.
• Spam filtering: Mail servers often have built-in spam filters to block unwanted email messages.
• User authentication: Mail servers require user authentication to send and receive emails, typically through a
username and password.

Similarities between web servers and mail servers:

• Both run on server hardware: Both web servers and mail servers run on dedicated server hardware. These
servers can be either physical or virtual and are typically designed to handle high traffic loads.
• Both use an operating system: Both types of servers use an operating system such as Linux, Windows, or
macOS to manage system resources and run server software.
• Both use network protocols: Both web servers and mail servers use network protocols to communicate with
client devices. For example, web servers use HTTP or HTTPS, while mail servers use SMTP, POP3, or
IMAP.
• Both require security measures: Both web servers and mail servers need to be secured against cyber threats
such as hacking and malware. This requires implementing security measures such as SSL/TLS encryption,
firewalls, and antivirus software.
• Both can be managed remotely: Both types of servers can be managed remotely using various tools such as
SSH, RDP, or web-based control panels.
• Both can be hosted in the cloud: Both web servers and mail servers can be hosted in the cloud, allowing
users to access them from anywhere with an internet connection.

Web Server vs Mail Server


Web Server Mail Server
Web servers basically handle, manage, Mail Servers basically handle, manage, and
and run one or more websites. delivers e-mail over the internet.
It delivers content for website to user
It delivers and receive email messages same
or visitor that wants it same as a web
as post office.
browser.
Its main objective is to display website Its main objective is to act as virtual post
content through storing, processing office and make communication possible
and delivering web pages to users or between various employees of organization
visitors. or business or company.
Web Server Mail Server
It is important for users to view
It is important for users to store their
website because without web server,
documents, files and videos in cloud
users won’t be able to have access to
storage.
content of websites at all.
Types of web servers include Apache Types of mail server include POP3 mail
HTTP server, Jigsaw server, LiteSpeed server, IMAP mail server, SMTP mail
Web server, etc. server, etc.
Its main function is to host website and
Its supports e-communication, content and
distribute web pages as they are
file sharing, etc.
requisitioned.
It follows a network protocol known as
It follows SMTP (Simple Mail Transfer
HTTP (Hyper Text Transfer
Protocol).
Protocol).

What is a mail server?

A mail server (sometimes called an email server) is a software program that sends and receives
email. Often, it is used as a blanket term for both mail transfer agents (MTA) and mail delivery
agents (MDA), each of which perform a slightly different function.

Mail servers play a crucial role in the email delivery process. Without them, users would have no
way of transferring those messages to and from other mail clients.

What is a mail client?

Mail servers send messages from one mail client to another. A mail client (also called an *email
client* or *message user agent*) is a web-based or desktop application that receives and stores
email messages. Some of the most widely-used mail clients include Microsoft Outlook, Gmail,
and Apple Mail.

How do mail servers deliver email messages?

Email messages are sent and received using two types of mail servers: outgoing mail servers, or
*mail transfer agents* (MTA), and incoming mail servers, or *mail delivery agents* (MDA).
MTAs retrieve outgoing email messages from the sender’s mail client, then deliver them to
MDAs, which are responsible for temporarily storing and delivering email messages to the
recipient’s mail client.

Mail servers deliver email messages between mail clients by using email protocols, which tell
the server how to process incoming requests, where to forward the messages, and how to deliver
them to the intended mail client.
When sending an email from one client to another, the MTA uses an outgoing mail protocol, like
the Simple Mail Transfer Protocol (SMTP), to check the sender’s email envelope* data and
determine where the message needs to be sent. SMTP does this by using the Domain Name
System (DNS) to translate the recipient’s domain into an IP address.

Then, it locates a mail delivery agent by querying mail exchange (MX) records. The MX record
tells the server how to route the message to its final destination. Once the MX record returns the
appropriate destination, the MDA uses an incoming mail protocol, like the Internet Message
Access Protocol (IMAP) or Post Office Protocol Version 3 (POP3), to retrieve the email message
from the mail server and deliver it to the specified mail client (or clients).

For an in-depth explanation of the email delivery process, see What is email?

*An email envelope contains the sender and recipient’s email addresses, among other data
SMTP needs in order to transfer an email message from server to server.

What is the difference between a mail client and a mail server?

While mail clients and mail servers are both used to send and receive email messages, they are
not the same. A mail client is an application that allows users to retrieve, store, and format emails
to be sent. Mail servers, meanwhile, are software programs that use email protocols to move
email messages between mail clients.

To illustrate this difference, imagine that Alice wants to send Carol a letter. Alice addresses the
letter to Carol, then leaves it in their mailbox. A postal worker retrieves the letter from the
mailbox and delivers it to a post office, where it is sorted and transferred to the correct location.
Finally, another postal worker delivers the letter to Carol’s mailbox, where it can be stored until
they are ready to retrieve it.

Similarly, a user may write and address an email to its intended recipient (or recipients), but the
mail server, like the postal worker, is responsible for accepting the message, transferring it to an
incoming mail server, then delivering it to the correct inbox, where it is stored.

Is an email provider a mail client or a mail server?

Most email providers offer mail client services to their users. While email providers rely on mail
servers to exchange messages between clients, they do not always make mail servers available to
users as a free or paid service.

For example, consider two popular email providers: Google and Apple. As of 2023, Google
offers both a mail client (Gmail) and mail server (Gmail SMTP Server). Gmail allows users to
store, retrieve, and send emails, while Gmail SMTP Server gives users access to a wider range of
features, like sending email messages from third-party clients (e.g. Microsoft Outlook). Apple,
on the other hand, only provides a mail client called Apple Mail.
Do mail servers block malicious email messages?

Because any type of message can be sent over email, attackers often use it to send phishing
messages, malware, or other dangerous content. Most mail servers do little to prevent attacks like
this, aside from ensuring that emails came from the location that they claim to be from (via
DKIM, DMARC, and SPF).

To solve for this security gap, some email providers scan emails for suspicious elements, filter
spam, and implement encryption to prevent attackers from accessing and manipulating messages.

Directory Services Server


In today's tech-driven world, computers talk to each other from all over the globe, forming what
we call distributed systems. At the heart of these systems are directory services, like digital
phonebooks, storing info about users and devices. But managing these directories across far
locations is tricky. This article will help to know about the challenges and solutions for handling
directory services in distributed setups.

What are Directory Services?

Directory services refer to centralized systems that store and manage information about users,
devices, and resources within a network.

• They facilitate efficient identity management, authentication, access control, and resource location across
distributed computing environments.

• These services play a crucial role in organizing and securing network resources, enabling administrators to
manage user accounts, group memberships, and access permissions effectively.

Types of Directory Services

Directory services come in various types, each tailored to specific needs and environments. Here
are some common types of directory services:

1. Active Directory (AD):

• Developed by Microsoft, Active Directory is a directory service used primarily in Windows-based


environments.

• It provides centralized management of user accounts, groups, computers, and other network resources.

• Active Directory supports features such as authentication, authorization, and group policy management.
• It is widely used in enterprise environments for identity and access management.

2. Azure Active Directory (Azure AD):

• Azure AD is Microsoft's cloud-based directory and identity management service.

• It is designed for modern cloud-first and hybrid IT environments, providing identity services for cloud
applications and resources.

• Azure AD supports features such as single sign-on, multi-factor authentication, and access management for
cloud-based services.

3. Open Directory:

• Open Directory is Apple's directory service, providing authentication, authorization, and directory lookup
services for macOS and macOS Server environments.

• It supports integration with other directory services such as LDAP and Active Directory.

• Open Directory is used in Apple-centric environments for user and device management.

4. eDirectory:

• eDirectory, formerly known as Novell Directory Services (NDS), is a directory service developed by
Novell (now Micro Focus).

• It provides centralized management of user accounts, groups, and resources in Novell NetWare and Linux
environments.

• eDirectory supports features such as replication, synchronization, and high availability for distributed
networks.

5.FreeIPA:

• FreeIPA is an open-source identity management solution that combines LDAP, Kerberos, DNS, and
certificate services.

• It is designed for Linux-based environments and provides centralized authentication, authorization, and
policy enforcement.

• FreeIPA supports integration with Active Directory and other directory services.

Design Considerations in Directory Service

When designing a directory service, several key considerations need to be taken into account to
ensure it meets the requirements of the organization and provides a secure and efficient
infrastructure for managing identities and resources. Some important design considerations
include:
• Scalability:

o The directory service should be able to scale horizontally to accommodate the growing number of
users, devices, and resources in the organization.

o This includes considerations for distributed architecture, replication, and load balancing to ensure
optimal performance and reliability.

• Performance:

o The directory service should be designed for high performance, with fast query response times and
efficient data storage and retrieval mechanisms.

o This involves optimizing database schemas, indexing attributes for quick searches, and caching
frequently accessed data to minimize latency.

• Flexibility:

o The directory service should be flexible and adaptable to support diverse use cases and integration
with other systems and applications.

o This includes support for standards-based protocols such as OAuth, and SAML, as well as APIs
for custom integration and automation.

• High Availability:

o Ensuring high availability is critical for mission-critical directory services that are essential for
authentication and access control.

o Design considerations include redundancy, failover mechanisms, and disaster recovery planning to
minimize downtime and data loss in the event of hardware or software failures.

Directory Service Architectures

Directory service architectures encompass various approaches to organizing and structuring


directory services to meet the needs of organizations for identity management, authentication,
and access control. Some common directory service architectures include:

• Centralized Directory Service:

o In a centralized directory service architecture, a single, authoritative directory server or service


manages all directory data and operations.

o This architecture is typically used in small to medium-sized organizations where a single directory
server can efficiently handle the workload.

o Centralized directory services provide a unified view of identities and resources, simplifying
administration and access control.

• Distributed Directory Service:


o In a distributed directory service architecture, directory data is distributed across multiple
directory servers or nodes, often geographically dispersed.

o This architecture is suitable for large organizations with complex network infrastructures and
distributed user populations.

o Distributed directory services support scalability, fault tolerance, and load balancing by
distributing directory data and operations across multiple servers.

• Hybrid Directory Service:

o A hybrid directory service architecture combines elements of centralized and distributed directory
services to meet the diverse needs of modern organizations.

o This architecture is common in hybrid IT environments where organizations maintain both on-
premises and cloud-based directory services.

o Hybrid directory services enable seamless integration and interoperability between on-premises
directory servers (e.g., Active Directory) and cloud-based identity providers (e.g., Azure AD),
allowing organizations to leverage the benefits of both environments.

• Cloud-based Directory Service:

o Cloud-based directory service architecture leverages cloud computing platforms to host and
manage directory services, providing scalable, flexible, and cost-effective solutions for identity
management and access control.

o This architecture is well-suited for organizations seeking to offload the operational overhead of
managing on-premises directory servers and take advantage of cloud-based identity services.

o Cloud-based directory services such as Azure Active Directory (Azure AD), AWS Directory
Service, and Google Cloud Directory offer features such as single sign-on, multi-factor
authentication, and user provisioning for cloud-native and hybrid IT environments.

Directory Service Protocols

Directory service protocols are communication standards used for accessing and managing
directory information within directory services. These protocols enable clients to perform
operations such as querying directory data, adding or modifying entries, and authenticating users.
Some common directory service protocols include:

1. LDAP (Lightweight Directory Access Protocol):

o LDAP is a widely used open protocol for accessing and managing directory information.

o It provides a lightweight and efficient means of querying and updating directory data over TCP/IP
networks.

o LDAP is commonly used in directory services such as Active Directory, OpenLDAP, and Apache
Directory Server.
2. LDAPS (LDAP Secure):

o LDAPS is a secure variant of LDAP that adds SSL/TLS encryption to LDAP communications for
enhanced security.

o LDAPS encrypts data transmitted between LDAP clients and servers to protect against
eavesdropping and tampering.

o LDAPS typically uses port 636 for encrypted LDAP communication.

3. Kerberos:

o Kerberos is a network authentication protocol that provides secure authentication for users and
services within a network.

o It uses tickets to authenticate users and encrypt communication between clients and servers.

o Kerberos is commonly used in conjunction with LDAP for authenticating users in directory
services such as Active Directory.

4. SAML (Security Assertion Markup Language):

o SAML is an XML-based standard for exchanging authentication and authorization data between
identity providers and service providers.

o It enables single sign-on (SSO) and federated identity management across different domains or
organizations.

o SAML is often used in federated directory services to enable seamless access to resources across
trusted domains.

5. OAuth (Open Authorization):

o OAuth is an open standard for authorization that enables secure access to resources without
sharing user credentials.

o It allows users to grant permissions to third-party applications to access resources on their behalf.

o OAuth is commonly used in modern authentication and authorization frameworks for web and
mobile applications.

Key Components of Directory Services

Directory services consist of several key components that work together to manage and organize
directory information, facilitate authentication and authorization, and provide access control
within a network. Some of the key components of directory services include:

1. Directory Information Tree (DIT):

o The Directory Information Tree (DIT) is the hierarchical structure used to organize directory
information within a directory service.
o It consists of entries representing users, groups, devices, and resources, organized into a tree-like
structure with parent-child relationships.

o The DIT provides a logical framework for organizing and accessing directory data, enabling
efficient search and retrieval operations.

2. Schema:

o The schema defines the structure and attributes of directory entries stored in the directory service.

o It specifies the types of objects that can be stored in the directory, their properties (attributes), and
the relationships between them.

o The schema ensures consistency and interoperability by defining a common data model for
directory information.

3. Directory Server:

o The directory server is the core component of the directory service that stores and manages
directory data.

o It provides services for adding, modifying, deleting, and searching directory entries, as well as for
authenticating and authorizing users.

o Directory servers may use protocols such as LDAP (Lightweight Directory Access Protocol) to
communicate with directory clients and other directory servers.

4. Directory Clients:

o Directory clients are applications or services that interact with the directory server to perform
directory-related operations.

o They may include user authentication services, identity management systems, directory
synchronization tools, and administrative interfaces.

o Directory clients use directory protocols such as LDAP or LDAPS to communicate with the
directory server and access directory information.

5. Authentication Services:

o Authentication services verify the identity of users and entities accessing the directory service.

o They authenticate users based on their credentials (e.g., usernames and passwords) or using other
authentication mechanisms such as Kerberos or client certificates.

6. Authorization Services:

o Authorization services control access to directory resources based on predefined policies and
permissions.

o They determine which users or entities are allowed to perform specific actions (e.g., read, write, or
delete) on directory entries and attributes.
7. Replication and Synchronization:

o Replication and synchronization mechanisms ensure consistency and availability of directory data
across distributed directory servers.

o They replicate directory information between multiple directory servers to provide fault tolerance,
load balancing, and disaster recovery capabilities.

Directory Service Operations

Directory service operations encompass a range of actions performed on directory data,


including querying, adding, modifying, and deleting directory entries. These operations are
essential for managing identities, resources, and access control within a directory service. Some
common directory service operations include:

• Search:

o Search operations retrieve directory entries that match specified search criteria.

o Searches can be performed based on attributes such as usernames, group memberships, or


organizational units.

o Search operations may return individual entries or lists of entries that match the search criteria.

• Add:

o Add operations create new directory entries and add them to the directory service.

o When adding an entry, attributes such as usernames, passwords, email addresses, and group
memberships are specified.

o Add operations typically require appropriate permissions or credentials to modify directory data.

• Modify:

o Modify operations update existing directory entries with new attribute values or remove attributes.

o Changes to directory entries may include updating user information, changing group
memberships, or modifying access permissions.

o Modify operations ensure that directory data remains accurate and up-to-date.

• Delete:

o Delete operations remove directory entries from the directory service.

o Deleting an entry may involve removing user accounts, groups, devices, or other directory objects.

o Delete operations should be performed with caution to avoid accidental data loss.
• Authenticate:

o Authenticate operations verify the identity of users or entities accessing the directory service.

o Users provide credentials such as usernames and passwords, which are authenticated against
directory data.

o Authentication operations determine whether users are authorized to access directory resources.

• Authorize:

o Authorize operations control access to directory resources based on predefined policies and
permissions.

o Authorization decisions are made based on the user's identity, group memberships, and access
control rules.

o Authorize operations enforce access control policies to protect directory data from unauthorized
access.

• Replicate:

o Replicate operations synchronize directory data between multiple directory servers.

o Replication ensures that directory information remains consistent and available across distributed
environments.

o Replication operations replicate changes made to directory data from one server to other servers in
the replication topology.

Challenges of Directory Services

Directory services in distributed systems face several challenges due to the distributed nature of
the environment, the diversity of platforms and protocols, and the need to ensure data
consistency, availability, and security across distributed locations. Some of the key challenges
include:

• Scalability: Handling increased data and requests while ensuring performance doesn't degrade. This
involves efficiently distributing workload across nodes as the system grows.

• Consistency: Ensuring that all replicas of directory data are synchronized and up-to-date. Managing
consistency becomes challenging in distributed systems due to network latency and potential conflicts
during updates.

• Availability: Guaranteeing uninterrupted access to directory services despite failures or network partitions.
Achieving high availability requires robust fault tolerance mechanisms and redundancy.

• Security: Protecting directory data from unauthorized access, tampering, or disclosure. This involves
implementing strong authentication, access controls, encryption, and auditing mechanisms.
Database Server
A database server is a machine running database software dedicated to providing database
services. It is a crucial component in the client-server computing environment where it provides
business-critical information requested by the client systems.

A database server consists of hardware and software that run a database.

The software side of a database server, or the database instance, is the back-end database
application.

The application represents a set of memory structures and background processes accessing a set
of database files.

The hardware side of a database server is the server system used for database storage and
retrieval.

Database workloads require a large storage capacity and high memory density to process data
efficiently. These requirements mean that the machine hosting the database is usually a dedicated
high-end computer.

phoenixNAP Database Servers

phoenixNAP offers dedicated database servers with powerful and scalable hardware
components. The workload-optimized servers are available in locations in the US, Europe, and
Asia-Pacific. They support MySQL, MongoDB, MariaDB, Apache Cassandra, MS SQL, and
PostgreSQL databases.

What Is a Database Server Used For?

Database servers have several use cases. Some of them are:

• Dealing with large amounts of data regularly.

Database servers shine in a client-server architecture, where the clients frequently process data.

• Managing the recovery and security of the DBMS.

Database servers carry out the constraints specified within the DBMS (database management
system). The server controls and manages all the clients connected to it and handles all database
access and control requests.
• Providing concurrent access control.

Database servers provide a multi-user environment where many users can access the database
simultaneously while maintaining security and hiding the DBMS from the clients.

• Storing applications and non-database files.

Some organizations use database servers as a much more efficient solution compared to file
servers.

How Does a Database Server Work?

The database server stores the Database Management System (DBMS) and the database itself. Its
main role is to receive requests from client machines, search for the required data, and pass back
the results.

The DBMS provides database server functionality, and some DBMSs (e.g., MySQL) provide
database access only via the client-server model. Other DBMSs (such as SQLite) are used for
embedded databases.
Clients access a database server through a front-end application that displays the requested data
on the client machine, or through a back-end application that runs on the server and manages
the database.

The ODBC (Open Database Connectivity) standard provides the API allowing clients to call the
DBMS. ODBC requires necessary software on both the client and server sides.

In a master-slave model, the database master server is the primary data location. Database slave
servers are replicas of the master server that act as proxies.

Database Server Examples

The following is a list of some well-known and widely used database servers. The list is not
exhaustive and there are many other solutions on the market.

MySQL

MySQL is an SQL-based open-source Relational Database Management System (RDBMS).


MySQL comes in a free and paid version, and it supports Linux and Windows. The system offers
native, real-time analytics and unified service for OLAP and OLTP databases.

The free version offers most of the necessary functionalities and has several available user
interfaces.
PostgreSQL

PostgreSQL is an advanced object-relational DBMS. PostgreSQL was designed to allow users to


add custom functions using different programming languages, including C/C++, Java, etc.

PostgreSQL supports Windows and Linux, and its characteristics are excellent data security
and fast data retrieval.

Microsoft SQL Server

Microsoft SQL Server is a relational database management system primarily used to store and
retrieve data requested by other applications. MSSQL Server allows many users to access the
same database concurrently.

Microsoft’s SQL Server supports several programming languages, such as Assembly, C/C++,
Linux, and operates on Windows and Linux.

SQLite

SQLite is an open-source database management system written in the C programming language.


SQLite stores data to a text file on a device. It is widespread and supports Mac, Windows, and
Linux operating systems.

SQLite is suitable for small or medium-size databases.

MS Access

Microsoft Access is a database management system that allows users to store information for
reference, reporting, and analysis. Microsoft Access helps users analyze large data sets and
manage the data better than Microsoft Excel or other spreadsheet applications.

Microsoft Access supports Microsoft Windows, and it is the primary choice for e-commerce
websites.

SAP HANA

SAP HANA is a column-oriented RDBMS developed by SAP SE. The system’s primary
function is to store and retrieve data as requested by client applications. It supports many
different types of applications.

SAP HANA supports OLTP, OLAP, and SQL, and it can manage SAP and non-SAP data.

IBM Db2

IBM Db2 is an RDBMS that delivers data to its IBM data server clients. Db2 is written in
C/C++ and Assembly. It is NoSQL-based and supports JSON and XML file types.
Db2 supports Linux, UNIX, and Windows platforms.

MariaDB

The MariaDB database management system is available as a free and paid version. It boasts
efficient resource usage due to an optimizer that increases query performance and
processing.

MariaDB offers multi-core support and multi-thread database access in real-time.

Users can choose from a range of storage engines. The server operates on Windows, Linux,
UNIX, and Mac.

Oracle

Oracle offers one of the most popular, object-relational DBMS. Its latest version includes a wide
range of multi-model, multi-workload, and multi-tenant enhancements.

The DBMS supports binary JSON and offers ten times faster data scans compared to previous
versions. Windows, Linux, and many UNIX operating systems versions are supported.

MongoDB Atlas

The MongoDB database system is available as a free and commercial version. MongoDB is
developed for applications that use structured and unstructured data, and its engine supports
JSON and NoSQL documents.

MongoDB stores data as documents instead of using SQL to organize data.

What is Transaction Server?


A computer network is a framework that associates various autonomous computers to share data
(information) and assets. The incorporation of computers and other various gadgets permits clients
to communicate without any problem. It is a collection of at least two computer systems that are
connected together. An organization association can be laid out utilizing either link or remote
media. Equipment and programming are utilized to associate computers and instruments in any
organization.

There are various types of computer networks like LAN(local area network), WAN(wide area
network), PAN(personal area networks), etc.
Transaction

In simple words, a transaction is the exchange of information between two or more entities
affecting each other. In computer networks, a transaction for the most part implies a succession of
data trade and related work, (for example, data set refreshing) that is treated as a unit for fulfilling
a request and for guaranteeing information base integrity.

All the transactions follow ACID properties to maintain the integrity of the data in databases.

Transaction server

A transaction server is an interaction that runs the pieces of the transaction program that play out
the work the client mentioned, normally by reading and composing a common information base,
conceivably calling different programs, and perhaps getting an answer that is directed once again
to the gadget that gave the contribution to the request.

Some of the examples of commercially available transaction servers are:

• Microsoft transaction server ( MTS )

• IBM transaction server

Transaction servers incorporate programming that handles high volumes of message exchanges.
This kind of programming is planned explicitly to deal with enormous volumes of information
passage and message traffic in an organization.

• Transaction servers are widely used in relational database system.

• Transaction-server systems, also called query-server systems.

• It provide an interface to which clients can send requests to perform an action, in response they execute the
action and send back results to the client.

• Usually, client machines ship transactions to the server systems, where those transactions are executed, and
results are shipped back to clients that are in charge of displaying the data.

• Requests may be specified by using SQL.

• Clients send requests to the server.

• Transactions are executed at the server.

• Results are shipped back to the client.

We can understand transaction servers with the analogy of a telephone switchboard that oversees
a huge number of messages from clients across the Internet. Below is the basic structure of
transaction processing system using transaction server:
Transaction Server Architecture

Transaction Server Architecture

Server processes

• These receive user transactions, execute them and send results back

• Processes may be multithreaded, allowing a single process to execute several user queries concurrently.
• Typically multiple multithreaded server processes.

Lock manager process

• Manages lock manager functionality.

• It includes lock grant, lock release and deadlock detection.

Database writer process

• Output modified buffer blocks to disks continually.

Log writer process

• Server processes simply add log records to log record buffer.

• Log writer process outputs log records to stable storage.

Checkpoint process

• Performs periodic checkpoints.

Process monitor process

Monitors other processes, and takes recovery actions if Shared memory contains shared data

• Buffer pool

• Lock table

• Log buffer

• Cached query plans

• any of the other processes fail.

• E.g., aborting any transactions being executed by a server process and restarting it.

A typical transaction server consists of multiple processes accessing data in shared memory.

All database processes can access shared memory.

To ensure that no two processes are accessing the same data structure at the same time, databases
systems implement mutual exclusion using either

• Operating system semaphores

• Atomic instructions such as test-and-set


How Transaction Server Works?

Suppose, there is a client who wants to access a file from the server, so first of all client makes a
connection to the server using TCP protocol, and the translation of the name address into the IP
address is done by DNS.

Then they make a request to the server for the particular information or file. This request contains
the command, page desired, and the protocol or version.

After this, the server reads the request and sends the requested file to the client and it is called
response. The response contains the status line, header files, and the message body containing the
information from the database, and this whole process is called request-response behavior. It might
also happen that server denies some information.

Finally, when the client receives the information, the transaction is terminated.

Components of Transaction Server

• Server(runtime part for dealing with the exchanges and their state occasions)

• User interface ( by which the user and a computer system interact)

Applications of Transaction Server

• It handles a large amount of data entry and traffic in a company.

• It makes System Application Products (SAP) accessible on the Internet. These product items give revealing
and insightful devices to organizations.

• These servers also expand the capabilities of SAP.

• A transaction server is most frequently utilized in distributed software architecture.

• Useful in increasing productivity and customer satisfaction.

• It can perform real-time processing and reduce processing time.

Disadvantages of Transaction Server

• The setup cost is high.

• It might happen that software and hardware are incompatible.

• Every server is designed to support only a specific operating system and device.

• Managing a transaction server is complex and requires experience.


thick client (fat client)
A thick client (sometimes called a fat client) is a form of client-server architecture. Specifically,
it is a networked computer system with most resources installed locally, rather than distributed
over a network. Thick client devices can be, for example, PCs, because they have their own hard
drives, software applications and other local resources. Most, if not, all essential components are
contained in a thick client.

Thick clients are almost unanimously preferred by network users because they are very
customizable and the user has more control over what programs are installed and the specific
system configuration. Workplaces will commonly provide thick clients to employees so they can
work offline. With thick clients, there is no need to have continuous server communication.

Thick clients are connected to a server over a network connection but don't need to have a
maintained connection. The temporary connection is needed to download programs, data and
updates to the operating system. In addition, thick clients don't need to consume any server
computing resources. Most resources will be available on the client, so it can function
independently. Thick clients will excel in environments where the primary server has limited
storage and computing capacity, or experiences high network speeds, as well as in work-from-
home environments.

Similarly, a system that has some components and software installed but also uses resources
distributed over a network is sometimes known as a rich client.

Benefits and drawbacks of thick clients

Thick clients have a number of benefits to them, for example:

• Working offline. One of the biggest benefits of thick clients is the ability it gives to work offline. Thick
clients normally have the hardware and software requirements to work as needed, often without needing to
be connected to a central server.
• Server connection. Thick clients can work offline because they don't need to maintain constant
connections to central servers. Once an initial amount of information is gathered from a server, server
connections are generally not needed.
• Fewer server requirements. The servers that thick clients connect to don't need to be as high-performing.
Since the thick clients do a lot of the application processing, that can allow for cheaper servers.
• Server capacity. The use of thick clients normally means more server capacity is available. With fewer
requirements that a server has to provide to each individual client, the server can benefit more clients.
• More flexibility. Having a computer that works off of its own local resources -- operating system, user
interface, storage -- means a large level of flexibility. They should be able to work from wherever, as long
as they are able to have a momentary connection to a central server to download any needed data.
• Existing infrastructure. In the same line of thought, many organizations may already have fast enough
local PCs to implement an infrastructure to run thick clients with relative ease.
• Storage. Files and applications can be stored on the thick client, meaning they can be accessed at any time.
• Computer performance. Any application that would be resource or bandwidth-intensive should be able to
perform well since resources are being taken from the individual computers and not being allocated by a
central server.
Thick clients are not free from their downsides, however, including:

• Security. The individual will now have to be more responsible for the security and protection of their
computer, since data will be stored on the thick client.
• Data storage. Data storage can be a double-edged sword as data now needs to be backed up in order to
ensure the data isn't gone forever if something goes wrong.
• Investment into each client. The hardware and software will have a higher up-front cost, and will then
have a continual cost in maintenance and updates.
• Maintenance. May include updates for security or any hardware and software fixes across the connected
clients.
• Network traffic. There can be a lot of network traffic since each client needs to bring data through a
network to work on locally.
• New applications. New applications that a client may need may also have to be uploaded on other
workstations.

Examples of thick clients

A good example of a thick client is a computer that's given to a company employee. In general, it
would be safe to assume most employees will need to utilize the same, or similar, client
applications and files. A thick client could come with the list of business applications needed.
Because the computer has all of the hardware and software needed, the employee only needs to
connect to the company's server to download updates or to retrieve any other data needed. Once
that data is downloaded, they no longer need a connection to the network. If the employee needs
to work from home, this could be very useful, since they don't have to worry about staying
connected the whole workday. If the employee loses their internet connection, they can continue
working with all their files saved on their computer's hard drive -- assuming the application
doesn't need internet, that is.

Thin Client Definition

A common thin client definition is a computer that uses resources housed inside a central server
as opposed to a hard drive. A thin client connects to a server-based environment that hosts the
majority of applications, memory, and sensitive data the user needs. Thin clients can also
connect to servers based in the cloud.

In many instances, a thin client computer is an effective replacement for a personal computer
(PC). It can also be a superior solution, particularly because it enables an IT team to set up a
virtual desktop infrastructure (VDI). With a thin client setup, you can acquire new workstations
for employees working remotely or in-house at a lower cost than if you give each one their own
desktop. Further, you have the option to centralize your security solution by protecting the server
the various thin clients connect to.

What Are The Benefits Of A Thin Client?


Thin clients offer several benefits that can improve the efficiency and cyber safety of an
organization.

1. Increased security: Security can be enhanced if you employ thin clients instead of typical PCs. The thin
client itself is incapable of running software unless it has been authorized at the server level. This means
that if three users were to accidentally begin a download of three different kinds of malware, they could all
be blocked by the same firewall protecting the server each thin client is connected to. Also, if someone tries
to save data corrupted with malicious code, they will be unable to do it on the thin client computer itself.
They would have to put it on the server. If the server is protected, getting the malicious code onto it will be
impossible, thereby protecting all thin client users from having their operations interrupted by malware they
accidentally installed. In addition, it is easier to monitor a system based on thin client architecture because
all endpoints connect to the same central server.
2. Less cost: It is more effective to deploy thin clients than it is to deploy normal PCs. Thin clients do far less
work than regular PCs, and therefore, they need fewer resources. A thin client will not have a high-end
graphics card, for example, or an expensive hard drive for storage. It will also have less memory than a PC.
Each of these components comes with considerable cost. Because thin client manufacturers do not have to
invest as much in sourcing the various piece that a regular PC would require, they can pass these savings on
to the consumer.
3. More manageable: Thin clients are often easier to manage because all endpoints are connected to the same
server. This means you can focus much of your management efforts on that one physical unit. Because one
IT team member can handle routine tasks such as upgrading security software at the central server, several
users can be serviced at once. This eliminates the need for IT staff to visit individual workstations for
installation or troubleshooting.
4. Scalability: Using thin client architecture, you can easily scale up through the deployment of virtual
desktops. In addition to the benefits typical of a thin client setup, a virtual desktop environment enables you
to allow users to bring their own device. The server used for the various thin clients in the office can also
be used as a full-fledged virtual desktop base, giving seasonal workers or temporary contractors a simple
way to connect and get work done.

What Is A Thin Client Used For?

A thin client is used for desktop virtualization, shared services, or browser-based computing.
With a virtualized desktop setup, including one where each user has a remote desktop, each
individual desktop exists within a virtual machine, which is simply a partition inside a
centralized server. NComputing is a popular desktop virtualization solution. Several partitions
exist side by side, and each one serves a different user. Each of these users has their own
applications and operating system, similar to when they use a normal PC.

The difference is that these resources are housed on the central server instead of on their
individual devices. Further, as long as a device can connect to the server, it can make use of the
resources that are run on it, allowing for greater flexibility and more agile deployment.

When terminal services are shared, the users at the various thin client stations can use the same
operating system and applications because they are run from a central server. Users are limited
with what they can do because all activity has to be approved by the IT department. This can
benefit the organization, as user activity can be limited to the use of specific, safe, or protected
applications.
With browser-based architecture, the application-related functions of a device are executed
within a browser instead of via a remote server. While data processing happens on the thin client
itself, software and data have to be accessed by connecting to the network.

Thick clients vs. thin clients

Thin clients are another form of network architecture, which works as an opposite of thick
clients. A thin client is a low-cost network computer that relies heavily on a server for its
computational role. The idea of a thin client is to limit the computing capabilities to only
essential applications.

As opposed to thick clients, thin clients are more easily manageable, are easier to protect from
security risks, and are lower on maintenance and licensing costs. The biggest and most obvious
difference between the two is that thin clients rely on a network connection for computing and
don't do much processing on the hardware itself. Thick clients don't need the constant network
connection and can do much of the processing for client/server applications. Thin clients are also
run as specified by the server, but may also have more downtime.

What is a stateless server ?


As the name suggests, the stateless server has no state with regard to the user’s information. It
means when the user access any web resource, the server does not keep a track of the user’s
identity or actions performed on the page. So every time, the user has to prove the identity to
gain access.

Let’s understand it better in contrast with the stateful server. Stateful servers store users’ state
information in the form of sessions. It stores information like profile, preference, user’s action
and gives personalized experience on next visit. The user does not need credentials every time
during the valid session.

While stateless server treats each request as independent and demand user credentials. It requires
no knowledge of previous interactions and stores no session information. So, there’s no
difference between previous, current, and next requests.

Features of Stateless Server:

Performance: The server is not bound to maintain and synchronize any session data. So it can
serve any number of requests to the user. It helps in achieving a better response time with
experience.
Design: This is regarded as an advantage for developers as the stateless servers are easy to
design and code because there is no need to dynamically maintain storage units in the backend.
Stateless authentication uses REST (Representational State Transfer) to design the web APIs.

Data Crash: Since no data is stored on the server, there is nil impact of a system crash on the
performance of the web resource. The user can simply recover the access by reauthenticating.
Stateless uses a different server on each request. So there’s a scope of horizontal expansion.

Technology: The stateless servers can identify users based on a unique ID called Tokens.
Tokens accommodate essential information of the user grants access after receiving the secret
token. The validity of the token depends either on session duration or it gets destroyed once the
user logs out of resource. This technology is known as cryptography which is going to be a major
driver of future security mechanisms.

How does Stateless Server Works?

User visits a web page and the client-side interface on detecting a user responds with a credential
window. The user gives a username, password and submits it for authentication. The server
verifies the credentials from Database and gives access to the user. The server gives a unique
token to verify the identity. The user on the next request can use the token to gain entry into the
resource. This eliminates the need for the server to store information.

Here, the responsibility of authentication lies with the user who has to input the digital key to
gain access and the database to match the key with the information. The information is stored in
the database, not in the server, so the client has to make a call to the database every time
manually either using credentials or a token.

The common way to identify users is through JASON Web Token (JWT) / OAuth stored on the
client-side. This way the server relies on the user with a new request and does not rely on
information from the earlier request.

Conclusion: So far we have covered the major know-hows of the Stateless model and its role in
ensuring the security of the data. HTTP is known as a stateless server for the reason it demands
the user’s identity on every visit. Hence, we can say that a stateless server is a modern aspect of
web resources that are more critical from a security perspective.

Stateful Server

Client data (state) information are maintained by server on status of ongoing interaction

with clients and the server remembers what client requested previously and at last

maintains the information as an incremental reply for each request.

The advantages of stateful server is that requests are more efficiently handled and are
of smaller in size. Some disadvantages are their like state information becomes invalid when

messages are unreliable. Another disadvantage is that if clients crash (or reboot) frequently,

state information may exhaust server’s memory. The best example of stateful server is

remote file server.

Servers and Mainframes


From a hardware perspective, a mainframe is not greatly different from a personal
computer.
The CPU inside a mainframe was, however, much faster than a personal computer.
In fact,
what a mainframe most closely resembled was a LAN. A mainframe was ‘larger’ in
terms
of:
* The raw speed expressed in instructions per second, or cycles.
* The amount of memory that could be addressed directly by a program.
Mainframes are the monstrous computer system that deals mainly the business
functions
and technically these giant machines will run MVS, IMS and VSAM operating
systems.
There is a common believe that a mainframe is ‘database’. There are many reasons
behind
this belief:
* Many servers are either file or database servers running sophisticated database
such as Sybase, Oracle and DB2.
Introduction to Client/Server Computing6
* These servers connect to the mainframe primarily to access databases.
* Organisations use servers specifically to replace mainframe databases.
* Organisations keep applications on the mainframe usually for better database
performance, integrity and functionality.
Mainframe users argue that in the long run, a mainframe is at least as good a server
as
a PC, and perhaps even better. And because the mainframe portrayed as a better
server
than a PC, the picture is clear: PC servers and mainframe servers compete at the
back-end
both are essentially databases.
There is some controversy as to whether servers will eventually replace
mainframes.
They may, but not in the near future. Mainframes still serve the purpose in
managing the
complex business rules of very large organizations and enterprises that are spread
out over
a very large area. But the increasing processing power of servers combined with
their
lower costs makes them the logical replacement to mainframe-based systems in the
future.
In the meanwhile, Client/Server networks will often find it necessary to connect to
mainframe-based systems. This is because some data can only be found in the
mainframe
environment, usually because the business rules for handling it are sufficiently
complex
or because the data itself is massive or sensitive enough that as a practical matter it
remains
stored there.
Connection to a mainframe requires some form of network – like access. Even if
you
are using a telephone and modem as your access hardware, you still require special
software
to make your workstation appear to the mainframe to be just another network
terminal.
Many vendors can provide the necessary software to handle this type of network
extension.
A very natural question at this stage is: How do Client/Server Systems differ from
Mainframe
Systems?
The extent of the separation of data processing task is the key difference.
In mainframe systems all the processing takes place on the mainframe and usually
dumb terminals are used to display the data screens. These terminals do not have
autonomy.
On the other hand, the Client/Server environment provides a clear separation of
server
and client processes, both processes being autonomous. The relationship between
client
and server is many to many.
Various other factors, which can have, prime considerations to differentiate the
mainframe and Client/Server systems:
• Application development: Mainframe systems are over structured, time-consuming
and create application backlogs. On the other hand, PC-based Client/Server systems
are flexible, have rapid application development and have better productivity tools.
• Data manipulation: Mainframe systems have very limited data manipulation
capabilities whereas these techniques are very flexible in the case of Client/Server
systems.
Introduction 7
• System management: Mainframe systems are known to be integrated systems but
in the case of Client/Server systems only few tools are available for system
management.
• Security: Mainframe systems are highly centralized whether as Client/Server
systems are relaxed or decentralized.
• End user platform: Mainframe systems comprise of dumb terminals, are character-
based, single task oriented and of limited productivity. On the other hand, Client/
Server systems are intelligent PC’s with graphical user interface having multitasking
OS with better productivity tools

Stateless vs Stateful Servers


There are some comparative analysis about stateless and stateful servers.
* A stateful server remembers client data (state) from one request to the next.
* A stateless server keeps no state information. Using a stateless file server, the client
must specify complete file names in each request specify location for reading or
writing and re-authenticate for each request.
* Using a stateful file server, the client can send less data with each request. A stateful
server is simpler.
On the other hand, a stateless server is more robust and lost connections can’t leave
a
file in an invalid state rebooting the server does not lose state information rebooting
the client does not confuse a stateless server.

You might also like