CLIENT_NOTES by stariya


         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.
            1)Fat Client
             2)Thin Client

       Application Components

                       3 Data Management                        2 Client Types

                       2     Application Logic                          Fat
                                                              Thin     Client
                       1        Presentation                  Client

                              3 Logical Tiers

          Database Applications:
                Most common use of client-server architectures

     May 2002              UNT Center for Digital Knowledge                     9
Fat Client:
          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
own application.
Examples: Database Server, File Server
Thin Client:
          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.
                   File Server
                   Database Server
                   Groupware Server
                   Object Server
                   Transaction Server
                   Web Server
File Server:
                     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.
Database Server:
                       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 Server:
                        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
Object Server:
                       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.
Transaction Server:
              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
Web Server:

            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:
    Http
    Login
    Authentication
    Static content
    Dynamic content
    Standard port no
    Content compression
    Virtual hosting
    Large file support
    Bandwidth throttling

                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:
                       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:
                    Service
                    Shared Resources
                    Mix-and-Match
                    Encapsulation of services
                    Scalability
                    Asymmetrical Protocols
                    Transparency of location
                    Integrity
                    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.
Shared Resource:
       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
Asymmetrical Protocols:
            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.
         In essence,
           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:
                 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
print services.

           NetBios, LANServer, LANmanager, TCP/IP, APPC, DCE, ONC+,
NetWare, Named Pipes
Service-Specific MiddleWare:
        Service-specific middleware is needed to accomplish a particular
client/server type of service.
This includes:
 * 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:
       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:
       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
own application.
Examples: Database Server, File Server

                                         “I want to
                                          with my
           “I want to access            colleague”
          some information”


                                                      Server       Peer-to-peer

             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 :

                               Three-tier client/server
                                       Local-area network


           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
They are,
       Rich Transaction Processing
       Roaming Agents
       Rich data Management
       Intelligent self-managing entities
       Intelligent Middleware.

     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:
                    Transport Stack
                    Network Operating System
                    Service- Specific Middleware
                     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.
       Advantages are:
       Datagram Service
       Connection – oriented Service
       Dynamic Naming Service
      Disadvantages are:
        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.
                           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.
          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?
 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
time-independent responses,
            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
from queues.
               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.
Feature                Mom                      Rpc

1)Metaphor             post-office like         Telephone-like
2) client-server       Asynchronous.            Clients an Synchronous
                                                servers may operate at
                                                time operation.
                                                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
Requires Processing
and tricky managing

To top