Term Paper on
Client Server Architecture in Distributed Computing
Distributed computing has become a common phenomenon these days. As the system
designed from the bottom up with networking in mind, distributed computing makes
it very easy for computers to cooperate. Even the simplest applet running in a
browser is a distributed application, if you think about it. The client running
the browser downloads and executes code that is delivered by some other system.
But even this simple application wouldn't be possible without a system that
guarantees of portability and security.
Of
course, when we think of distributed computing we usually think of applications
more complex than a client and server communicating with the same protocol.
Distributed computing is a term defined as a system in which there are several
autonomous but interacting processors. Client/server computing has shifted into
one of the mainstream computing strategies. The popular description explains the
typical client/server environment as improving personal productivity and
empowering users with better and timely information and decision support tools.
But, most of today's successful client/server implementations are relatively
bounded due to the implications of using sophisticated computer technologies.
Order Your
Custom Term Papers, College Essays and Research Papers
A client/server application can thus be used for a variety of activities.
Client/server model is a concept for describing communications between computing
processes that are classified as service consumers (clients) and service
providers (servers). Clients and servers are modules which function with well
defined interfaces (i.e., they hide internal information). A set of software
modules, hardware components, or a combination of both facilities can carry the
functions performed by a client and a server forward. Clients and servers may
run on dedicated Machines, if needed that is they are machines built for the
purpose especially. Each client/server relationship is developed between two
functional modules when one module that is the client generates a service
request and the other module being the server chooses to respond to the service
request. For a given service request, clients and servers do not reverse roles:
a client stays a client and a server remains a server.
Information exchanges between clients and servers is strictly through messages
which means that no information is exchanged through global variables. The
service request and additional information is placed into a message that is sent
to the server. The server's response is similarly another message that is sent
back to the client. This is an extremely crucial feature of C/S model. Messages
exchanged are typically interactive. In other words, Client/Server model does
not support an off-line process. There are a few exceptions. Clients and servers
typically reside on separate machines connected through a network. Conceptually,
clients and servers may run on the same machine or on separate machines. In this
book, however, our primary interest is in distributed client/server systems
where clients and servers reside on separate machines. The implication of the
features of being connected through networks is that client or server service
requests are real-time messages that are exchanged through network services.
This means the procedure goes online via the network. This feature increases the
appeal of the Client-server model. Having online connection leads to greater
flexibility and scalability but several technical issues such as portability,
interoperability, security, and performance need to be considered.
An understanding with a deep study is required to study the client/server
computing system because a number of things are inter-related. The design of
client/server applications is complicated because work and data are distributed
across multiple, usually dissimilar, systems. On top of this diversity, each of
the principal architectural areas of distributed processing is influenced by
highly dynamic trends. There is a growing recognition of the benefits of a
multi-tiered architecture for more modular applications versus the commonplace
two-tier client/server architecture. Physical placement of processing varies
based on where to run presentation and business logic, and where to put data. A
growing number of application styles such as mobile computing, inter-enterprise
computing, and some forms of branch office processing can best or most
economically be executed with deferred, rather than synchronized, delivery of
messages or data.
Explaining a Distributed Computing System (DCS) leads to the definition that it
is a collection of autonomous computers interconnected through a communication
network to achieve business functions. Technically speaking, the computers do
not share main memory so that the information cannot be transferred through
global variables. The information (knowledge) between the computers is exchanged
only through messages over a network, which has been explained earlier like
request asking, “Produce income records. The limitation of no shared memory and
information exchanges through messages is of crucial importance because it
distinguishes between DCS and shared memory multiprocessor computing systems
which clearly means memory is shared. This definition requires that the DCS
computers are connected through a network that is responsible for the
information exchange between computers. The definition also requires that the
computers have to work together and cooperate with each other to satisfy
enterprise needs.
Order Your
Custom Term Papers, College Essays and Research Papers
Client/server is one of the main architectures being followed today. It is a
computational architecture that involves client processes requesting service
from server processes that is the client asks a service to be done. In general
terms, client/server maintains a distinction between processes and network
devices. Usually a client computer and a server computer are two separate
devices, each compiled accordingly for their designed purpose.
For
example, a Web server will often contain large amounts of memory and disk space,
whereas Web clients often include features to support the graphic user interface
of the browser such as high-end video cards and large-screen displays.
Client/server networking, however, focuses primarily on the applications rather
than the hardware. The same device may function as both client and server; for
example, Web server hardware functions as both client and server when local
browser sessions are run there. Likewise, a device that is a server at one
moment can reverse roles and become a client to a different server.
Distributed computing can be approached through one or more of the following:
File transfer model, Client/server model and Peer-to-peer model but the client
server model is more significant these days for distributed computing
applications. File transfer model is one of the oldest models to achieve
distributed computing at a very minimal level. Basically, programs at different
computers communicate with each other by using file transfer.
In fact, e-mail is a special case of file transfer. Although this is a very old
and extremely limited model of distributed computing, it is still used to
support loosely coupled distributed computers. For example, media clips, news
items, and portions of corporate databases are typically exchanged between
remote computers through file transfers; and e-mail is used frequently to
exchange files through embeddings and attachments. The Client/Server model on
the other hand provides the technology, which is being practiced at this time in
the world. Client/Server model, as explained previously, allows application
processes at various locations to interactively exchange messages and is thus a
major improvement over the file transfer model which has allowed considerable
ease in work. Early versions which came a number of years back had the
Client/Server model that utilized the remote procedure call paradigm that
extends the scope of a local procedure call. At present, the Client/Server model
is increasingly utilizing the distributed objects paradigm that extends the
scope of local object paradigm.
Peer-to-peer model allows the processes at different sites to invoke each other.
The basic difference between Client/Server and peer-to-peer is that in a
peer-to-peer model the interacting processes can be a client, server, or both
while in a C/S model one process assumes the role of a service provider while
the other assumes the role of a service consumer and the respective roles do not
change. Peer-to-peer middle-ware is used to build peer-to-peer distributed
applications.
The client/server is design is used by a number of popular applications like
e-mails and browsing activities. Each of these programs presents a user
interface (either graphic- or text-based) in a client process that allows the
user to connect to servers. In the case of email, the user enters a computer
name into the interface to set up future connections to the server process. When
using a Web browser, the name or address of the server appears in the Universal
Resource Locator (URL) of each request. Although a person may start a Web
surfing session by entering a particular server name the name regularly changes
as they click links on the pages. In the Web model, server information is
provided by the HTML content developer encoded in the anchor tags.
Client/server was originally developed to allow more users to share access to
database applications. Compared to the mainframe approach, client/server offers
improved because connections can be made as needed rather than being hard-wired.
The client/server model also supports modular applications. In the so-called
"two-tier" and "three-tier" types of client/server systems, a software
application is separated into modular pieces, and each piece is installed on
hardware specialized for that subsystem. One area of special concern in
client/server networking is system management. With applications distributed
across the network, it can be challenging to keep configuration information
up-to-date and consistent among all of the devices. Likewise, upgrades to a
newer version of a client/server application can be difficult to synchronize or
stage appropriately. Finally, client/server systems rely heavily on the
network's reliability; redundancy or fail-over features can be expensive to
implement.
Order Your
Custom Term Papers, College Essays and Research Papers
Changes and shifts in the industry will move the issues in client/server from
enabling personal productivity, decision support, and one-person/one-office
environments to enabling business productivity, production work flow, and
computing anywhere. Increased competition will move management attention from
decision support to action support. Payback will be measured in terms of
increased quantity and quality of business transactions. Client/server
environments that are enterprise in scope will create the need for more complex
distributed software capabilities and require more stringent management of
corporate information assets. Client/server applications, is an area of vital
importance to all, because you employ the Client/Server model to deliver
business aware functionalities and perform tasks for the whole organization.
Client/Server applications provide a powerful and flexible mechanism for
organizations to design applications to fit the business needs. For example, an
order processing application can be implemented using the model by keeping the
order processing databases (customers, products) at the corporate office and
developing/customizing the order processing logic and user interfaces for
different stores that initiate orders. In this case, order processing clients
may reside on store computers to perform initial checking and preprocessing, and
the order processing servers may exist at the corporate mainframe to perform
final approval and shipping. There are trends and concern issues that are
separate but are interrelated and must be decided in conjunction with each
other. The industry has gained considerable experience with distributed
client/server applications during the past years, leading to an improved
understanding of cooperative processing architectural designs. Users now need to
understand how vendors will contribute to a solution for the management of
workloads that handle logically and physically fragmented data.
The clients on network request information or a service from a server, and that
server responds to the client by acting on that request and returning results.
This approach to networking has proven to be a cost-effective way to share data
between tens or hundreds of clients. Usually the client and server are two
separate devices on a LAN, but client/server systems work equally well on
long-distance WANs (including the Internet). Client/server architecture provides
the fundamental framework that allows many technologies to plug in for the
applications of 1990s and beyond.
Clients and servers typically communicate with each other by using one of the
following paradigms. Basic applications of client/server architecture were based
on the "two-tiered" architectures. As a result of the limitations of file
sharing architectures, the client/server architecture emerged. This approach
introduced a database server to replace the file server. Using a relational
database management system (DBMS), user queries could be answered directly. The
client/server architecture reduced network traffic by providing a query response
rather than total file transfer. It improves multi-user updating through a GUI
front end to a shared database. In client/server architectures, Remote Procedure
Calls (RPCs) or standard query language (SQL) statements are typically used to
communicate between the client and server. With two tier client/server
architectures, the user system interface is usually located in the user's
desktop environment and the database management services are usually in a server
that is a more powerful machine that services many clients. Processing
management is split between the user system interface environment and the
database management server environment.
The database management server provides stored procedures and triggers. The two
tier client/server architecture is a good solution for distributed computing
when work groups are defined as a dozen to 100 people interacting on a LAN
simultaneously. It does have a number of limitations. When the number of users
exceeds 100, performance begins to deteriorate. This limitation is a result of
the server maintaining a connection via "keep-alive" messages with each client,
even when no work is being done. A second limitation of the two-tier
architecture is that implementation of processing management services using
vendor proprietary database procedures restricts flexibility and choice of DBMS
for applications. Finally, current implementations of the two -tier architecture
provide limited flexibility in moving (repartitioning) program functionality
from one server to another without manually regenerating procedural code.
The coming times will definitely see significant changes in the use of
computers. Developments in hardware technology - in particular, the advent of
inexpensive, high performance CPUs - are resulting in increasingly powerful
desktop machines. The computing resources of an organization or project team are
now spread across many platforms in different locations. At the same time,
business application end users are increasingly seeking more local autonomy and
responsibility. These changes are being reflected by a growing interest in
distributed object technology. Many computer industry analysts see this as the
next revolutionary step in a process which has already moved from monolithic
applications to the client/server era.
Order Your
Custom Term Papers, College Essays and Research Papers