Client-Server Computing
Web/Proxy Servers
MVC & App Development
Lecture-6
Client Server Computing
In client server computing, the clients requests a
resource and the server provides that resource
A server may serve multiple clients at the same
time while a client is in contact with only one
server.
Both the client and server usually communicate
via a computer network but sometimes they may
reside in the same system.
Characteristics of Client-Server
• The client server computing works with a system of request and
response.
• The client and server should follow a common communication protocol
so they can easily interact with each other.
• A server can only accommodate a limited number of client requests at
a time.
• Denial of Service attacks hindera servers ability to respond to authentic
client requests by inundating it with false requests.
• An example of a client server computing system is a web server. It
returns the web pages to the clients that requested them.
Difference B/w Client-Server and Peer-
Peer Computing
In client server computing, a server is a central
node that services many client nodes. On the
other hand, in a peer to peer system, the nodes
collectively use their resources and
communicate with each other.
In client server computing the server is the one
that communicates with the other nodes. In peer
to peer to computing, all the nodes are equal
and share data with each other directly.
Advantages & Disadvantages
Advantages
All the required data is concentrated in a single place
The server need not be located physically close to the
clients.
It is easy to replace, upgrade or relocate the nodes
Platform independent
Disadvantages
If all the clients simultaneously request data from the
server, it may get overloaded.
If the server fails for any reason, then none of the
requests of the clients can be fulfilled
The cost of setting and maintaining a client server model
are quite high.
Web Server & Proxy Server
Web Server
A web server is a program that uses the Hypertext Transfer
Protocol(HTTP) to serve the files that form Web pages to
users, in response to their requests, which are forwarded by
their computers HTTP clients.
Web server - process requests
Proxy Server
A proxy server acts as a gateway between you and the
internet. It's an intermediary server separating end users from
the websites they browse. Proxy servers provide varying
levels of functionality, security, and privacy depending on your
use case, needs, or company policy
Proxy server - send requests.
User - request - > proxy server - > request - > web server(FD)
Web Application Development
Web Applications are dynamic web sites combined with
server side programming which provide functionalities
such as interacting with users, connecting to back-end
databases, and generating results to browsers.
Examples of Web Applications are Online Banking,
Social Networking, Online Reservations, eCommerce /
Shopping Cart Applications, Interactive Games, Online
Training,
Technologies
There are two main categories of coding, scripting and
programming for creating Web Applications:
1. Client Side Scripting
Client Side Scripting is the type of code that is executed
or interpreted by browsers.
Client Side Scripting is generally viewable by any visitor
to a site
Below are some common Client Side Scripting
technologies: HTML (Hyper Text Markup Language)
CSS (Cascading Style Sheets)
JavaScript
Ajax (Asynchronous JavaScript and XML)
2. Server Side Scripting
Server Side Scripting is the type of code that is executed
or interpreted by the web server.
Server Side Scripting is not viewable or accessible by any
visitor or general public.
Below are the common Server Side Scripting
technologies:
PHP (very common Server Side Scripting language)
ASP.NET (Microsoft's Web Application Framework -
successor of ASP)
Phyton
Perl
Ruby
MVC Architecture
The Model-View-Controller (MVC) framework is an
architectural pattern that separates an application into
three main logical components Model, View, and
Controller.
Each architecture component is built to handle specific
development aspect of an application.
MVC separates the business logic and presentation
layer from each other.
It was traditionally used for desktop graphical user
interfaces (GUIs) but now used in web applications and
mobile apps.
Three Component of MVC Architecture are:
1. Model: It includes all the data and its related logic
2. View: Present Data to the user or handles user interaction
3. Controller: An interface between Model and View component
View: A View is that part of the application that represents
the presentation of data. Views are created by the data
collected from the model data. A view requests the model to
give information so that it resents the output presentation to
the user.
Controller: The Controller is that part of the application that
handles the user interaction. The controller interprets the
mouse and keyboard inputs from the user, informing model
and the view to change as appropriate. A Controller send's
commands to the model to update its state. The controller
also sends commands to its associated view to change the
view's presentation.
Model: The model component stores data and its related
logic. It represents data that is being transferred between
controller components or any other related business logic.
MVC Real Life Example:
Frontend & Backend Technologies
Frontend technologies: it is a set of technologies that are used in
developing the user interface of web applications and webpages. With
the help of front-end technologies, developers create the design,
structure, animation, and everything that you see on the screen while
opening up a website, web application, or mobile app.
Backend Technologies: The backend (or “server-side”) is the portion of
the website you don’t see. It’s responsible for storing and organizing
data, and ensuring everything on the client-side actually works. The
backend communicates with the front-end, sending and receiving
information to be displayed as a web page. Whenever you fill out a
contact form, type in a web address, or make a purchase (any user
interaction on the client-side), your browser sends a request to the
server-side, which returns information in the form of frontend code that
the browser can interpret and display. Some common backend
languages are Ruby, PHP, Java, .Net, and Python.
THANK YOU