CLIENT:

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 using

The client is classified into two types.

1)Fat Client

2)Thin Client

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 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 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.

SERVER:

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.

Types:

v  File Server

v  Database Server

Groupware Server

v  Object Server

Transaction Server

v  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.

TPM:

It monitors the transaction process. It will perform the following operations.

1)Rollback

2)Commit

3)Abort

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. www.web-server-servers.com.

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:

Client-Server:

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

Service:

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.

Mix-and-Match:

Independent of hardware or operating system. ie , platform independent.

Encapsulation of Services;

Server provides various kinds of services to client according to the request of client. Those services are encapsulated in sever itself.

Scalability:

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 multiservers.

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.

Integrity:

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:

Middleware is glue that connects the different types of Computer system.

It is the infrastructure that supports component based application development.

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.

Eg;

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 AND FAT CLIENTS:

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

2 TIER VERSUS 3 TIER ARCHITECTURE:

2 TIER:

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 :

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 APPLICATION

They are,

·  Rich Transaction Processing

·  Roaming Agents

·  Rich data Management

·  Intelligent self-managing entities

·  Intelligent Middleware.

BUILDING BLOCKS:

Types:

·  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

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 programmer.

NETWARE:

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.

NETBEUI:

Advantages are:

·  Datagram Service

·  Connection – oriented Service

·  Dynamic Naming Service

Disadvantages are:

·  Lack of network layer

·  Lack of Security layer

NETBIOS:

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 server?

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 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.

MOM VERSUS RPC:

Feature / Mom / Rpc
1)Metaphor / post-office like / Telephone-like
2) client-server / Asynchronous. / Clients an Synchronous concurrent Relationship servers may operate at time operation.
Different times and speeds
3) c/s sequencing / No fixed sequence / Server first, client next
4) style / queued / call return
5) load balancing / single queue is used to Implement fifo or priority / requires a separate TP monitor Based policy.
6)Transactional / yes. / No Support.
7) Message Filtering / Yes / No
8)Performance / Slow. An intermediate hop Is needed / Fast
9)Asynchronous
Requires Processing
and tricky managing / yes. Queues and triggers are needed. / Limited. Threads
Code for

.