Lecture 2 Introduction To Client Server Computing
Lecture 2 Introduction To Client Server Computing
Lecture 2 Introduction To Client Server Computing
DISTRIBUTED SYSTEMS
Prof S Karume
Presentation Outline
• Review of lecture 1
• Introduction to client server (videos – 24
minutes)
• Characteristics of Distributed Systems
• Example Distributed Systems
• Challenges of Distributed Systems
• Summary
Review of Lesson 1
• What are distributed systems
• What is a centralized system
• Difference between the two
• Why we need distributed systems
• Consequences of distributed system
• Goals of distributed systems
• Characteristics of distributed systems
• Examples of selected applications of distributed systems
• Challenges of application of distributed systems
Introductory videos
• https://www.youtube.com/watch?v=L5BlpPU_muY
• https://www.youtube.com/watch?v=eesqK59rhGA
• https://www.youtube.com/watch?v=Zfmk0GtANNs
• https://www.youtube.com/watch?v=eVYsIolL2gE - sockets
5
Internet Applications Serving Local and
Remote Users
PC client
Internet
Server
Local Area Network
PDA
6
Increasing Demand for Internet Applications
• To take advantage of opportunities presented by the
Internet, businesses are continuously seeking new
and innovative ways and means for offering their
services via the Internet.
• This created a huge demand for software designers
with skills to create new Internet-enabled
applications or migrate existing/legacy applications
to the Internet platform.
• Client Server applications is one architecture for
creating web enabled applications
7
Elements of Client-Server
Computing/Communication
a client, a server, and network
t
ues
req
result
network
client
server
• Client server application is an application that enable the client and the server to
communicate either in a distributed environment or on same computer
• Processes follow protocols that define a set of rules that must be observed by participants:
8
How client server system works
the clients requests a resource and the server
provides that resource. A server may server
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
• Main Components
• Client
• Server
• Network / internet (network of
networks)
9
Client Server Components
explained
Client is the hardware and software that enable user to request a service or a
resource form a server
Server is the software responsible for processing the client request e.g web server
(www or HTTPD demon in apache)
Middleware is software that runs between client and server processes. It is the "glue"
between the client and server, which makes it possible for them to communicate to
each other. Middleware is written in such a way that the user never notices it's
presence. It delivers secure and transparant services to users. (e.g RPC, ORB, )
10
Networking Basics
TCP/IP Stack
• Physical/Link Layer
• Functionalities for transmission of signals representing a stream of Application
data from one computer to another
(http,ftp,telnet,…)
• Internet/Network Layer
• IP (Internet Protocols) – a packet of data to be addressed to a Transport
remote computer and delivered
(TCP, UDP,..)
• Transport Layer
• Functionalities for delivering data packets to a specific process on a
Internet/Network
remote computer (IP,..)
• TCP (Transmission Control Protocol)
• UDP (User Datagram Protocol) Physical/Link
• Programming Interface: (device driver,..)
• Sockets
• Applications Layer
• Message exchange between standard or user applications:
• HTTP, FTP, Telnet, Skype,…
11
Networking Basics
• TCP (Transmission Control • TCP/IP Stack
Protocol) is a connection-
oriented communication
protocol that provides a Application
reliable flow of data between (http,ftp,telnet,…)
two computers. Transport
• Analogy: Speaking on Phone (TCP, UDP,..)
12
Networking Basics
• UDP (User Datagram Protocol) • TCP/IP Stack
is a connectionless
communication protocol that
sends independent packets of
data, called datagrams, from Application
one computer to another with no (http,ftp,telnet,…)
guarantees about arrival or Transport
order of arrival
(TCP, UDP,..)
• Similar to sending multiple
emails/letters to friends, each Network
containing part of a message. (IP,..)
• Example applications: Link
• Clock server (device driver,..)
• Ping
• Live streaming (event/sports
broadcasting) 13
TCP Vs UDP Communication
A … B
Connection-Oriented Communication
A
… B
Connectionless Communication
14
Understanding Ports
• The TCP and UDP P
o TCP
server
protocols use ports r Client
t
to map incoming
data to a particular
process running on
a computer. app app app app
16
Sockets
• Sockets provide an interface for programming networks at the transport layer
• Network communication using Sockets is very much similar to performing file
I/O
• In fact, socket handle is treated like file handle.
• The streams used in file I/O operation are also applicable to socket-based I/O
• Socket-based communication is programming language independent.
• That means, a socket program written in Java language can also communicate to a
program written in Java or non-Java socket program
17
Socket Communication
• A server (program) runs on a specific
computer and has a socket that is bound
to a specific port. The server waits and
listens to the socket for a client to make
a connection request.
Connection request
port
server Client
18
Socket Communication
• If everything goes well, the server accepts the connection. Upon acceptance, the
server gets a new socket bounds to a different port. It needs a new socket
(consequently a different port number) so that it can continue to listen to the original
socket for connection requests while serving the connected client.
port
server
port
Client
port Connection
19