A client is a computer system that accesses a (remote) service on
another computer by some kind of network. The term was first applied to
devices that were not capable of running their own stand-alone programs,
but could interact with remote computers via a network.
For getting connection with server :
1)The server program must already running
2)The server program must be listening to a port for incoming connections
3)The client must know the server host machine and the port the server
The client is classified into two types.
3 Data Management 2 Client Types
2 Application Logic Fat
1 Presentation Client
3 Logical Tiers
Most common use of client-server architectures
May 2002 UNT Center for Digital Knowledge 9
These kind of clients are having the own application.Based on this
Application, they can be activated. There is no need to depends on the
Fat Clients are the more traditional form of Client/Server. The bulk of the
application runs on the client side of the equation. Fat Clients are used for
decision support and personal software. They provide flexibility and
opportunities for creating front-end tools that let end-users create their
Examples: Database Server, File Server
These kind of clients are fully activated based on the server only.
It doesn’t have any own application.
A “server” is just a computer running a piece of software
that provides resources to clients.A computer or software providing
services to remote client machines or applications, such as supplying page
contents (texts or other resources) or returning query results.
A Fileserver consists of large amount of files that may
be documents, images, engineering drawings and other large data
objects. File Servers are useful for sharing files across a network. They are
indispensable for creating shared repositories of all types of files.
A Database server maintains databases and uses its
own processing power to find the requested data from database. The
Client passes SQL requests as messages to the database server. The
requests of each SQL command are returned over the network. The result
is a much more efficient use of distributed processing power. The
database servers provide the foundation for decision support system.
Groupware addresses the management of semi-
structured information such as text, image, mail, bulletin boards and the
flow of work. This Client/Server System provides direct communication
between clients. Here applications are created by using a scripting
language and form-based interfaces. People can directly contact with other
people (like usenet, newsgroup)
Example: Lotus Notes
The Client/Server applications are written as a set of
communicating Objects. Client objects communicate with server objects
using an instance of that Object Request Broker (ORB). The ORB locates an
instance of that object server class, invokes the requested method, and
returns the results to the client objects. Server objects must provide
supports for concurrency and sharing
Eg of ORB:
DSOM->Distributed System Object Model
DOMF->Distributed Object Management Facility.
DOMS->Distributed Object Management System.
DOE-> Distributed Object Everywhere.
With a transaction server, Client invokes RPC that resides on
the server with sql database engine. This remote procedure call(RPC) on
the server execute a group of sql statement.
It monitors the transaction process. It will perform the following
This type of servers is intergalactic Client/Server application.
This consists of thin, portable, “Universal” clients that talk to super fast
servers. The web server returns documents when clients ask for them by
name. The clients and servers communicate using an RPC-like protocol
called HTTP. A Web Server is a computer that has web server software
installed that uses the HyperText Transfer Protocol HTML. The web server
is connected to the Internet. A Web Server may host websites or provide
access to content and it responds to requests received from Web browsers.
Every Web Server has an IP address and usually a domain name, e.g.
Eg : Apachi Tomcat, pws.
Common Features of web server:
Standard port no
Large file support
Client/Server is separated logical entities i.e. software
programs that work together over a network to accomplish a task. The
client and server logical entities are called as separate program units.
The Client first initiates the communication by passing request to
server. The server gets the request and produces the response and
send back to the client over on the network.
Client/Server Computing means scrapping every
mainframe that can’t fit on the desktop and the demise of host-centric
computing and also unleashing a new bread of “born-again”
networked mainframes that will bring every PC in the enterprise back
to the fold. This computing provides
- Open & Flexible Environment
- Allowing to mix and match Services
- Client application can run in any platform
Basic characteristics of Client-Server:
Encapsulation of services
Transparency of location
Message Based Exchanges
The server is the provider of services. The client is the consumer of
the services. In essence, client/server provides clean separation of various
functions based on the idea of service.
The server provide many services to client and regulate their access
to shared resources.
Independent of hardware or operating system. ie , platform
Encapsulation of Services;
Server provides various kinds of services to client according to
the request of client. Those services are encapsulated in sever itself.
Client/server systems are scaled in two ways.
1) Horizontal way
- adding or removing clients with slight impact.
2) Vertical way
-migrating to a larger and faster server machine or
There is a many to one relationship between clients and server.
Clients always initiate the dialog by requesting service . Servers are
passively awaiting requests from the clients.
Transparency of Location:
The server is a process that can reside on the same machine as
the client or a on a different machine across a network. Client/Server
software usually masks the location of the server from the clients by
redirecting the service calls when needed. A program can be a client, a
server, or both.
The server code and data are centrally maintained, which
results in cheaper maintenance and the guarding of shared data integrity.
At the same time the clients remain personal and independent.
Message Based Exchanges:
Clients and servers are loosed coupled systems that interact
through message passing mechanisms for the service requests and replies.
Middleware is glue that connects the different types of Computer
It is the infrastructure that supports component based application
It is the software that connects two separate application.
It is called plumbing because it connects two sides of application and
passes data between them.
Middleware is software that acts as an interface between client
and server. This is implemented in 3-tier Architecture of client/server
system. This Middleware provides a way to interact the server for the
client. Depends upon the service of Middleware, it classified as
1. General Middleware
2. Service-specific Middleware
General Middleware is the subtract for most client/server
interactions. It includes the Communication stacks, distributed directories,
authentication Services, Network time, RPC and queuing services. This
type also includes the network OS extensions such as distributed file and
NetBios, LANServer, LANmanager, TCP/IP, APPC, DCE, ONC+,
NetWare, Named Pipes
Service-specific middleware is needed to accomplish a particular
client/server type of service.
* Database-specific Middleware (ODBC, EDA/SQL)
* OLTP-specific Middleware (RPC,X/Open’s TxRPC)
* Groupware-specific Middleware (SMTP, Lotus Notes Calls)
* Object-specific Middleware (CORBA, DCOM)
* Internet-specific Middleware ( HTTP, S-HTTP ,SSL)
* System Management Specific Middleware (SNMP, ORB)
FAT SERVERS AND FAT CLIENTS:
The Fat Server model places more function on the server Fat server
applications are easier to manage and deploy on the network because most
of the code runs on the servers. Fat servers try to minimize network
interchanges by creating more abstract levels of services.
Examples: Groupware Server, Transaction Server, Web Server.
Fat Clients are the more traditional form of Client/Server. The bulk
of the application runs on the client side of the equation. Fat Clients are
used for decision support and personal software. They provide flexibility
and opportunities for creating front-end tools that let end-users create their
Examples: Database Server, File Server
2 TIER VERSUS 3 TIER ARCHITECTURE:
“I want to
“I want to access colleague”
Understanding Networked Applications 4 A First Course
Here the communication is performed only between the client and server.
There is no intermediator, that is , no need of interface like application
server. The application logic is either buried inside the user interface on
the client or within the database on the server or both.
3 TIER :
Note: many clients per Shared
application server, several data
application servers per data
Understanding Networked Applications 8 A First Course
Here interface is needed . Application logic is in the middle part that is ,
It lives between the client and server. It is the middle tier.
KEY TECHNOLOGIES NEEDED FOR CLIENT-SERVER
Rich Transaction Processing
Rich data Management
Intelligent self-managing entities
The Server Building Block
The Client Building Block
The Middleware Building Block
Client Building Blocks:
The Client building block runs the client side of the
application. It runs on an Operating System (OS) that provides a GUI or
OOUI and that can access distributed services. The Client also runs a
component of the Distributed System Management (DSM) elements. The
requests are gathered by using this client side application from client user.
Server Building Blocks:
The server application runs on top of some shrink-
wrapped server software package. The contending server platforms for
creating the next generation of client/server applications are SQL database
servers, TP Monitors, Groupware servers, Object servers and Web Server.
Middleware Building Blocks:
It runs on both the client and server sides of
an application. This building block is broken into 3 categories:
Network Operating System
Service- Specific Middleware
PEER TO PEER COMMUNICATION:
The term “Peer-to-Peer “indicates that the two sides of
a communication link use the same protocol interface to conduct a
networked conversation. Any computer can initiate a conversation with
any other computer. The protocol is symmetrical and it is sometimes called
“Program-to-Program”. The peer-to-peer tends to “close to the wire” in the
sense that it does not fully mask the underlying network from the
IPX/SPX is a Netware’s native stack. IPX/SPX is an
implementation of the Xerox Network Services (XNS) transport and
network protocol. This is a cleaner version of TCP/IP protocol. So this is
required by LAN enterprises. The IPX/SPX network layer is provided by
the Internet Packet Exchange (IPX) protocol. This provides unreliable
services with connection oriented manner. So the SPX is used on the top of
IPX to achieve the reliable service with datagram service.
Connection – oriented Service
Dynamic Naming Service
Lack of network layer
Lack of Security layer
The NetBIOS services are provided through a set of commands,
specified in a structure called Network Control Block (NCB). The structure
also contains the parameters associated with the command and the fields
in which NetBIOS will return information to the program. A command can
be issued in either wait or no-wait mode. In wait mode, the requesting
thread is blocked until the command completes. In the no-wait mode,
control is returned to the calling thread at the earliest time possible,
usually before the command completes. When the command completes,
the NetBIOS DLL places a return code in the NCB.
REMOTE PROCEDURE CALL(RPC);
RPC stands for Remote Procedure Calls and it
also invoke the process of server.This invoked program runs across the
wire in a different resource domain. A Client process calls function on a
remote server and suspends itself until it gets back the results. Parameters
are passed like in any ordinary procedure. The RPC, like an ordinary
procedure, is synchronous. The RPC run-time software collects values for
the parameters ,forms a message , and sends it to the remote server. The
server receives the request, unpacks the parameters, calls the procedure
and sends the reply back to the client.
ISSUES OF RPC:
1) how are the server functions located and started?
2) How are parameters defined and passed between client and
3) How are failures handled?
4) How is security handled by the rpc?
5) How does the client find its server?
6) How is data representation across systems handled?
MESSAGING AND QUEUING: THE MOM MIDDLEWARE
Mom- message oriented middleware.
It is a key piece of middleware that is absolutely essential fro a
class of client server products. If your appln can tolerate a certain level of
It provides easiest path for creating enterprise and inter-
enterprise client server systems.
It allows general purpose messages to be exchanged to be
exchanged in client server system using message queues.
Product provides are
IBM, COVIA, PEERLOGIC and so on.
The clients and servers can run at different times. Everybody
communicates by putting messages on queues and by taking messages
It provides NOS services including hierarchical naming,
security, and a layer that isolates appln from the network.
Messaging queues are versatile. We can use them to create one
to many or many to one relationships.
MOM VERSUS RPC:
Feature Mom Rpc
1)Metaphor post-office like Telephone-like
2) client-server Asynchronous. Clients an Synchronous
servers may operate at
Different times and
3) c/s sequencing No fixed sequence Server first, client next
4) style queued call return
5) load balancing single queue is used requires a
to Implement fifo or separate TP monitor
priority Based policy.
6)Transactional yes. No Support.
7) Message Filtering Yes No
8)Performance Slow. An intermediate Fast
hop Is needed
yes. Queues and Limited. Threads
9)Asynchronous triggers are needed. Code for
and tricky managing