2. Client -Server Technology.
Introduction:
It is a network of shared or distributed computing in which the tasks and computing power are split between the
servers and clients. The servers store and process data common to the users across the organization and these data
can be accessed by any client.
In this networking, requests are made by different clients to the server.
Server then processes the request and provides the desired result to the client. All the
information is stored with the server. Server acts like a database which extracts the
relevant information to the client. In this way it becomes fast and client becomes
thin.
The client server architecture is versatile, supports GUI and has modular
infrastructure. The technology is described as a cost reduction technology. It
includes fourth generation languages, relational databases, distributing computing
etc.
Client/server Evolution:
A long time ago, client-server computing was just using mainframes and connecting to dumb terminals. Through the
years, personal computers started to evolve and replaced these terminals but the processing is still process on the
mainframes. With the improvement in computer technology, the processing demands started to split between
personal computers and mainframes.
PCs are able to communicate with each other on a network. These networks were based on file sharing
architecture, where the PC downloads files from corresponding file server and the application is running locally
using the data received. However, the shared usage and the volume of data to be transferred must be low to run the
system well.
As the networks grew, the limitations of file sharing
architectures become the obstacles in the client-server system.
This problem is solved by replaced the file server with a
database server. In the results, this architecture decreases the
network traffic, allowing multiple users to update data at the
same time.
Typically either Structured Query Language (SQL) or
Remote Procedure Calls (RPCs) are used to communicate
between the client and server. There are several types of client-server architecture.
3. Client -Server Technology.
The Two Tier Architecture, where a client is directly connected to a server. Three Tier Architecture is
introduced. By introducing the middle tier, clients connect only to the application server instead of connect directly
to the data server. To enhance the Three Tier Architecture, it can be extended to N-tiers when the middle tier
provides connections to various types of services, integrating and coupling them to the client, and to each other.
Client/Server: Fat or Thin
A Client or a Server is so named depending on the extent to which the processing is shared between the client and
server.
Fat Clients: This architecture places more application functionality on the client machine(s). They are
used in traditional of Client/Server models.
Fat Servers: This architecture places more application functionality on the server machine(s). Typically,
the server provides more abstract, higher level services. The current trend is more towards fat servers in
Client/Server Systems. The biggest advantage of using the fat server is that it is easier to manage because
only the software on the servers needs to be changed, where as updating potentially thousands of client
machines is a real headache.
Client/Server: Stateless or Stateful
Stateless server: A stateless server is a server that treats each request as an independent transaction that is
unrelated to any previous request. The biggest advantage of stateless is that it simplifies the server design
because it does not need to dynamically allocate storage to deal with conversations The Gopher protocol
and Gopher+ are both designed to be stateless.
Stateful Server: Client data (state) information are maintained by server on status of ongoing interaction
with clients and the server remembers what client requested previously and at last maintains the
information as an incremental reply for each request. The advantage of stateful server is that requests are
more efficiently handled and are of smaller in size. The best example of stateful server is remote file
server.
Stateless vs Stateful Servers
There are some comparative analyses about stateless and stateful servers.
* A stateful server remembers client data (state) from one request to the next.
* A stateless server keeps no state information. Using a stateless file server, the client must specify
complete file names in each request specify location for reading or writing and re-authenticate for each
request.
* Using a stateful file server, the client can send less data with each request. A stateful server is simpler.
On the other hand, a stateless server is more robust and lost connections can’t leave a file in an invalid state
rebooting the server does not lose state information rebooting the client does not confuse a stateless server.
4. Client -Server Technology.
Client server architecture
Client/Server architecture is based on hardware and software components that interact to form a system. A network
architecture in which each computer or process on the network is either a client or a server .The architecture is
known as a peer-to-peer architecture because each node has equivalent responsibilities. Both client/server and peer-
to-peer architectures are widely used, and each has unique advantages and disadvantages.
The client/server architecture significantly decreased network traffic by providing a query response rather
than total file transfer. It allows
multi-user updating through a GUI
front end to a shared database.
Remote Procedure Calls (RPCs)
or standard query language (SQL)
statements are typically used to
communicate between the client
and server.
The system includes mainly three components.
(i) Hardware (client and server).
(ii) Software (which make hardware operational).
(iii) Communication middleware. (Associated with a network which is used to link the hardware and software).
The client is any computer process that requests services from server. The client uses the services provided
by one or more server processors. The client is also known as the front-end application. The server is any computer
process providing the services to the client and also supports multiple and simultaneous clients requests. The server
is also known as back-end application. The communication middleware is any computer process through which
client and server communicate. Middleware is used to integrate application programs and other software
components in a distributed environment. Also known as
communication layer.
The following are the examples of client/server architectures.
Two tier architectures
In two tier client/server architectures, the user interface is
placed at user's desktop environment and the database
management system services are usually in a server that
is a more powerful machine that provides services to the
many clients. Information processing is split between the
user system interface environment and the database
management server environment.
5. Client -Server Technology.
The problem exists in this architecture is the distribution of application logic and processing in this model.
If the application logic is distributed to dozens of client systems, the application maintenance will be very
difficult.
Three tier architectures
The three tier architecture is introduced to overcome the drawbacks of the two tier architecture. In the three
tier architecture, a middleware is used between the user system interface client environment and the
database management server environment. These middleware are implemented in a variety of ways such as
transaction processing monitors, message servers or application servers.
The three tier client/server architecture is used to improve performance for large number of users and also
improves flexibility when compared to the two tier approach.
The drawback of three tier architectures is that the development environment is more difficult to use than
the development of two tier applications.
N-tier architectures
The multi-tier architecture (often referred to as n-tier architecture) is a client–server architecture in which
presentation, application processing, and data management functions are logically separated. The most
widespread use of multi-tier architecture is the three-tier architecture.
N-tier application architecture provides a model by which developers can create flexible and reusable
applications. By segregating an application into tiers, developers acquire the option of modifying or adding
a specific layer, instead of reworking the entire application.
Client and Server Devices:
Client/server networking grew in popularity many years ago as personal computers (PCs) became the common
alternative to older mainframe computers. Client devices are typically PCs with network software applications
installed that request and receive information over the network. Mobile devices as well as desktop computers can
both function as clients. A server device typically stores files and databases including more complex applications
like Web sites. Server devices often feature higher-powered central processors, more memory, and larger disk drives
than clients.
Client-Server Application:
When developing a client-server application, like the Web browser and Web server, you need to consider how you
are going to handle developing your application in a team environment and how you are going to handle long-term
maintenance. The client-server model distinguishes between applications as well as devices. A client computer and a
server computer are usually two separate devices, each customized for their designed purpose.
Developing client-server applications parallels developing modular programs. Modular programming
separates large applications into smaller constituent pieces to ease development in teams and provide better
maintainability. In a client-server application, a module does not have to be part of the same program or even run on
6. Client -Server Technology.
the same computer. Each modular function can run on a different device. A device that is a server for one
application can simultaneously act as a client to other servers, for different applications.
Software Trends:
The most important software trends in client-server technology revolve around system integration, testing, and
application architecture. Enterprise Resource Planning (ERP) products help with system integration. ERP refers to
multi-module application software that is typically integrated with a relational database. The leading companies
producing ERP-related products are Oracle, SAP, Baan and PeopleSoft. Siebel, Clarify, and Relational Technology
System’s Trilogy are developing sales force automation and front-end systems. Design and product management
systems are also a concern for ERP. The development of client-server environment requires skills in Visual Basic
and PowerBuilder. Currently, it has become a component of VisualStudio.NET. Visual Basic for applications
provides a common language for Microsoft applications. PowerBuilder is an event-driven programming language
used for RAD (Rapid Application Development). Both of these create integrated development environments.
Future technology:
As the Internet becomes a significant factor in computing environments client/server applications operating over the
Internet will become an important new type of distributed computing.
Since client / server application architecture has become a mainstay in corporate computing, there have
been many ideas on what is the best architecture to increase performance and the user experience. Some of these
ideas include thin client and fat client technologies and web services. While each of these methods have been
successful for many companies and strides will continue to be made on each technology.
Conclusion:
Client/server still remains the only and best architecture for taking advantage of the Internet and other new
technologies that come along. We'll have to add "changes in client/server computing" to death and taxes in our
inevitable list. But, regardless of what comes, client/server computing is likely to remain the underpinning for most
computing developments we'll see over the next decade.