CLIENT AND SERVER SYSTEMS
General Overview  

Zeynep Bulbul
47862B
02.11.97


INTRODUCTION:

 

The subject of client and server systems cover such a wide area that it is quite difficult to filter the documents available on the web and at the same time have a broad and clear overview of the topic. There are number of courses given by universities and profit-oriented organizations on client and server technology, since it is today's one of the hot topics.

To give a general understanding of client/server systems, the subject is classified such as:

1.What is what?
1.1 What is Client and server system?
1.2 What do Client programs do?
1.3 What do the Server do?
2.Client/Server Architecture
3.Example:World Wide Web
4.What is Client/Server Computing


1. WHAT IS CLIENT AND SERVER SYSTEM?

 

The principle is that the user has a client program. He asks information (or data) from the server program. The server searches the data and sends it back to the client.[1] Putting in another way,we can say that the user is the client, he uses a client program to start a client process, sends message to server which is a server program, to perform a task or service..[2

As a matter of fact a client server system is a special case of a co-operative computer system. All such systems are characterised by the use of multiple processes that work together to form the system solution. (There are two types of co-operative systems client-server systems and peer-to-peer systems.) [10

The client and server systems consist of three major components : a server with relational database, a client with user interface and a network hardware connection in between. Client and server is an open system with number of advantages such as interoperability, scalability, adaptability, affordability, data integrity, accessibility, performance and security. [15

WHAT DO THE CLIENT PROGRAMS DO?

 

They usually deal with;

  • managing the application's user-interface part
  • confirming the data given by the user
  • sending out the requests to server programs
  • managing local resources, like monitor, keyboard and peripherals.
  • The client-based process is the application that the user interacts with. It contains solution-specific logic and provides the interface between the user and the rest of the application system.In this sense the graphical user interface (GUI) is one characteristic of client system.[2
    It uses tools some are as:

  • Administration Tool: for specifying the relevant server information, creation of users, roles and privileges, definition of file formats, document type definitions (DTD) and document status information.
  • Template Editor: for creating and modifying templates of documents
  • Document Editor: for editing instances of documents and for accessing component information.
  • Document Browser: for retrieval of documents from a Document Server
  • Access Tool: provides the basic methods for information access[9
  • WHAT DO THE SERVER DO?

     
    Its purpose is fulfilling client's requests. What they do in general is;
  • receive request
  • execute database retrival and updates
  • manage data integrity
  • sent the results to client back
  • act as a software engine that manage shared resources like databases, printers, communication links..etc.
  • When the server do these, it can use common or complex logic. It can supply the information only using its own resources or it can employ some other machine on the network, in master and slave attitude. .[2
    In other words, there can be,

  • single client, single server
  • multiple clients, single server
  • single client, multiple servers
  • multiple clients, multiple servers
  • [6

    In a client server system, we can talk about specialization of some components for particular tasks. The specialization can provide very fast computation servers or high throughput database servers, resilient transaction servers or for some other purpose, nevertheless what is important is that they are optimised for that task. It is not optimal to try to perform all of the tasks together.Actually it is this specialization, therefore optimization that gives power to client and server systems. [10

    These different server types for different tasks can be collected in two categories:

    1.Simpler ones are;
  • disk server
  • file server: client can only request for files, but the files are sent as they are, but this needs large bandwidth and it slows down the network.


  • 2.Advanced ones;
  • database server

  • transaction server

  • application server


  • where last three will be explined in the following parts:

    Database server:

      In the database server the client passes Structured Query Language (SQL) packets to server to make specific demands for data.On the other hand server finds requested data using self resources and instead of sending the entire data file to client it sends only the results of the query on network. [2,4]  SQL is a standardized query language for handling database requests and administration. [3]  The original version called SEQUEL (structured English query language) was designed by an IBM research center in 1974 and 1975. SQL was first introduced as a commercial database system in 1979 by Oracle Corporation.[13

    The answer of the question what a database server is can be collected in the following manner:
  • A database server is a program which accepts clients' SQL requests over multiple network connections.
  • One server can handle multiple clients.This means that the server is multithreaded.
  • Each client has a corresponding process inside the database server.
  • The processing of SQL and data file access occur in the database server. The server performs series of action like data access coordination, memory caching, and security processing. .[11
  • Transaction server:

      In the transaction server, client invoke remote procedures on the server. Server has SQL database engine applications based on transaction servers that are called Online Transaction Processing (OLTP). This server is known to be mission critical .[2]  Transact-SQL permits procedural processing with control statements like if..then, while, raiserror, and return. [11
    It may include the following types of statements:

    Application server:

      This server doesn't necessarily need to be database centered. Its purpose is to be used for client needs.It provides services like download capabilities, regulates electronic mail ...etc.[2,4

    CLIENT / SERVER ARCHITECTURE:

     
    1. Two tier architecture:

    Here the client talks directly with the server, there is no intervening server between. It is quite good for small environments, where there is not so many users. It is also known as first generation architecture.[15] Two tier architecture has low development and low purchase costs.It is also used in prototyping, but this is a bit risky, since real life can bring unexpected surprises in implementations.It has limited scalability. [2,5

    However in general, this type of architecture refers to a client/server system, in which a client application contains all the business logic and a database server is taking care of data management. [3

    2. Three tier Architecture:

    Here there is a server, or third company between client and server. It may provide translation, metering and/or intelligent agent services.[2]It is more scalable than two tier architecture, it provides separate presentation and logic process, as well as multi-Process and multi platform. [5]  It is also known as second generation architecture.[15]

    However the trade-off is three tier architecture is hard to learn, compared to two tier, ther is a language barrier, it increases the complexity of system. [5

    Three tier architecture may have additional layer of application servers. This lets splitting of the application logic on different servers, with one specialized server for process handling. This decreases the load on the system, since the client doesn't need to contact every server by sending individual requests, instead it sends one whole request that covers everything. [3

    EXAMPLES OF CLIENT AND SERVER SYSTEMS:

     
    The most common client and server systems are:
  • finger
  • telnet
  • ftp
  • NFS (Network File System)
  • X Window System
  • Gopher
  • World Wide Web [8
  • We can talk about World Wide Web more as an example of client and server systems.

    World Wide Web:

     

    It is possibly the most well-known client-server system. A site may become a Web server by running an http daemon where a user becomes a Web client by running a browser such as Netscape. A client may request information from a series of servers.

    The servers all use the same protocol for communication with clients although they may differ in speed, reliability, etc. Typical ones are the CERN server, the NCSA server, and servers from Netscape, Microsoft, O'Reilly, Silicon Graphics, etc.

    The request that the server send to a client may be text, an image file, or other type of file. It is identified by a name called a URL (Uniform Resource Locator).The server stores that particular URL, to return the document as the message reply.

    The client uses browsers to request documents from servers and to display them in some meaningfully. A Lynx browser is a text-based browser, while the others may have some GUI capabilities. Netscape is an example, but there are some others as well. Their difference can be HTML version, in some features like email support , amount of customisation, , caching capabilities...etc. [6,12

    WHAT IS CLIENT AND SERVER COMPUTING?:

     

    Client/server computing typically begins as a convenient way for a small group of users to share resources. [7]  Client and server computing divides a large piece of software into modules that need not all be executed within the same memory space nor on the same processor. Client and server processes exchange information although they may run on different hardware and software platforms as appropriate for their special functions. [3

    Developing a flexible user interface is very important for client/server computing. As it was said before, client and server may run on different platforms, so creating a user interface that is independent of the server hosting the data is needed. The user interface of client/server application can be written for Macintosh, DOS or UNIX based computers. Since the user interface is generally under client' responsibility, the server has more computing resources to use on accomplishing queries.This is one advantage of client/server computing. Client/server computing provides a mechanism for disparate computers to cooperate on a single computing task.[14

    WORKS CITED:

     

    [1] AOL Server, F.R - 23.10.96 ****
    < http://noxa33.cern.ch/www/icptalk/wwweb/cliesrv.html

    [2] Lloyd Taylor - 29.10.97 *****
    < http://www.cis.ohio-state.edu/hypertext/faq/usenet/client-server-faq/faq.html

    [3] Solid Information Technology Ltd. - 17.10.97 ***
    < http://www.solid.fi/support/td/td000011.htm

    [4] Welcom Software Technology - 28.02.97 **
    < http://www.wst.com/resource/wpaper/cs.html

    [5] Passport Cooperation,Alan Mayfield -26.08.96 ***
    < http://www.passportcorp.com/products/presentation/tsld016.htm

    [6] Jan Newmarch - 10.03.97 *****
    < http://pandonia.canberra.edu.au/ClientServer/week10/http.html

    [7] IBM Corperation - 09.10.97 **
    < http://www.as400.ibm.com/clntserv/pcserv/pcserv.htm

    [8] Jan Newmarch - 10.03.97 *****
    < http://pandonia.canberra.edu.au/ClientServer/old/socket.html

    [9] University of Linz - 11.04.95 ***
    < http://pomelo.faw.uni-linz.ac.at/projects/europub/hydoman/client.html

    [10] John Colman - 19.08.97 ****
    < http://www.isa.co.uk/csg/csdefn.htm

    [11] Keith Altman - 06.05.96 ***
    < http://www.dgsys.com/~dcasug/sybintro/csarch.html#Client/Server Architecture

    [12] Sarah Beasley - 27.05.97 ****
    < http://www.sccd.ctc.edu/~sbeasley/mais/whtiswww.html

    [13] Sandy Bay Software - 08.11.96 ****
    < http://www.sandybay.com/pc-web/SQL.htm

    [14] Eric Lease Morgan - 25.02.97 ****
    < http://sunsite.berkeley.edu/~emorgan/waves/clientservercomputing.html

    [15] Olcay Sarioglu - 24.05.97 *****
    < http://www.cc.metu.edu.tr/~olcay/What_is_Client-Server.html