Client-Server Computing: Unit I - Introduction Objective
Client-Server Computing: Unit I - Introduction Objective
Client-Server Computing: Unit I - Introduction Objective
Unit I - Introduction
Objective
Introduction
Client
A client is a computer system that accesses a 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. The following
condition for getting connection with server,
Fat Client
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 depend 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 kinds of clients are fully activated based on the server only. It doesn’t have any
own application.
Server:
“Traditional” servers are entities that passively await requests from clients and then act
on them, but recent research in this area encompasses systems fulfilling the theoretical
organization of client/server systems in which servers can actively search out changes in the state
of clients and take appropriate action. Servers typically fill one specific need and encapsulate the
provided services so the state of the server is protected and so that the means by which the
service is provided is hidden from the client. In order to accommodate workstation clients as
first-rate network members, servers must handle peer-to-peer protocols that are used for “file
sharing” on PCs, handle PC messages, and service PC resources using native formats. An
important consideration in determining the granularity of services that a server will offer is the
possibility of having servers act as clients to other servers. Using this model, a server can execute
a task by dividing it into subtasks and then having other servers complete the subtasks.
Types:
1. File Server
2. Database Server
3. Groupware Server
4. Object Server
5. Transaction Server
6. Web Server
File Server:
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:
Object Server:
Eg of ORB:
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 executes a group of sql statement.
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 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.
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 Resources:
The server provides many services to client and regulates their access to shared resources.
Mix-and-Match:
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:
1) Horizontal way
-Adding or removing clients with slight impact.
2) Vertical way
-Migrate to larger and faster server machine or multiservers.
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.
We are in the midst of a fundamental change in both technology and its application.
Organizations today expect to get more value from their investments in technology. In the
"postscarcity era of computing"1 the availability of processing power is not a constraint. Cost of
platform technology has become a minor factor in selecting among alternatives to build the
business solution. The constraining factors are the organizational impact of reengineering the
business process and the costs and time required for system development. In addition, the need to
re-educate personnel to the required level of expertise can be an extremely expensive
proposition.
Build niche products that interact with the same data (objects).
Contrary to the claims of groups ranging from the Open Software Foundation (OSF) to the
user/vendor consortium Open User Recommended Solutions (OURS), open systems are not
exclusively systems that conform to OSF or OURS committee recommendations, or necessarily
to UNIX specifications.
The client/server model makes the enterprise available at the desk. It provides access to data that
the previous architectures did not. Standards have been defined for client/server computing. If
these standards are understood and used, organizations can reasonably expect to buy solutions
today that can grow with their business needs without the constant need to revise the solutions.
Architectures based on open systems standards can be implemented throughout the world, as
global systems become the norm for large organizations.2 While a supportable common platform
on a global scale is far from standardized, it certainly is becoming much easier to accomplish.
From the desktop, enterprise-wide applications are indistinguishable from workgroup and
personal applications.
Powerful enabling technologies with built-in conformance to open systems standards are
evolving rapidly.
Enterprise systems are those that create and provide a shared information resource for the entire
corporation. They do not imply centralized development and control, but they do treat
information and technology as corporate resources. Enterprise network management requires all
devices and applications in the enterprise computing environment to be visible and managed.
This remains a major challenge as organizations move to distributed processing. Standards are
defined and are being implemented within the client/server model. Client/server applications
give greater viability to worker empowerment in a distributed organization than do today's host-
centered environments.
Driving Forces
Opportunities are available to organizations and people who are ready and able to compete in the
global market. A competitive global economy will ensure obsolescence and obscurity to those
who cannot or are unwilling to compete. All organizations must look for ways to demonstrate
value. We are finally seeing a willingness to rethink existing organizational structures and
business practices.
Organizations are aggressively downsizing even as they try to aggressively expand their revenue
base.
Empowerment means that knowledge and responsibility are available to the employee at the
point of customer contact. Empowerment will ensure that product and service problems and
opportunities are identified and finalized. Client/server computing is the most effective source
for the tools that empower employees with authority and responsibility.
The following are some key drivers in organizational philosophy, policies, and practices.
Each individual must have access to all information he or she has a "need and right" to
access, without regard to where it is collected, determined, or located. We can use technology
today to provide this "single-system image" of information at the desk, whatever the technology
used to create it
Major Issues of the 1990s
Generally we can distinguish two main streams of the Rightsizing process: the
downsizing and upsizing processes. The downsizing process is characterized by data and process
shifting from Mainframe to desktop connected with LAN and WAN network.
The following steps, instead, characterize the Upsizing process:
The integration and connection of standalone workstations or LAN The development of
distributed applications on this new architecture the Rightsizing of the applications and systems
that is their Downsizing or Upsizing provides a major opportunity for cost savings and
improving the flexibility of the information systems. In the following figure we see the
rightsizing of the case study. It is from a traditional architecture based on a MVS IBM to a new
distributed Client-Server architecture. The new Client-Server applications are executed on
several application servers.
Heterogeneous Computing
What is “Layering”?
Let’s start by defining what we mean by “layering.” The term layer refers to the application of an
architectural pattern generally known as the “Layers” pattern, which is described in a number of
texts ([Buschmann], [Herzum], [PloP2]), and also in the RUP. A pattern represents a solution to
a common problem that exists in a particular context. An overview of the Layers pattern is given
in Table 1.
One of the most familiar examples of layering is the OSI 7-layer model, defined by the
International Standardization Organization (ISO). This model, shown in Figure 1, defines a set of
networking protocols — each layer focuses on a specific aspect of communication and builds
upon the facilities of the layer below it. The OSI 7-layer model uses a responsibility based
layering strategy: each layer has a particular responsibility. This strategy is described in detail
later in this paper.
Figure 2 shows another example of responsibility-based layering.
The Presentation Logic layer contains elements responsible for providing some form of
rendering to a human being, such as an element in the user interface.
The Business Logic layer contains elements responsible for performing some kind of
business processing
and applying the business rules.
The Data Access Logic layer contains elements responsible for providing access to an
information source,
Such as a relational database.
It should be noted that layers can be modeled in a number of ways, as described later in this
paper. For now, we will explicitly represent a layer using a UML package with the stereotype
«layer».
The layers shown in this particular example of responsibility-based layering are often
called “tiers” and are a familiar concept in distributed systems development where 2-tier, 3-tier,
and n-tier systems are found. An important aspect of Figure 2 is the direction of dependencies
shown, since it implies a certain rule that is a characteristic of layered systems — an element in a
particular layer may only access elements in the same layer, or in layers below it1. In the
example given here, elements in the Business Logic layer may not access elements in the
Presentation Logic layer. Also, elements in the Data Access Logic layer may not access
elements in the Business Logic layer. This structure is often referred to as a directed acyclic
graph (DAG). It is directed in that the dependencies are unidirectional and acyclic in that a path
of dependencies is never circular.
On a more specific note, it is important to be precise about the meaning of each layer
when defining a layering strategy so that elements are correctly placed in the appropriate layer.
Failure to correctly assign an element to the appropriate layer will diminish the value of applying
the strategy in the first place. As each layering strategy is discussed in more detail, some general
guidance is given on the meaning of each of the layers.
The client server communication is with the help of much application as logic
components. Many application components will execute more efficiently on either the client or
server. For instance, logic components that may be shared among the clients might be placed at
server for efficiently. If one server is processing the shared logic, the client will be freed to
process other application components. In addition, if many clients are active in the processing of
the non centralized application logic, then the overall system becomes more scalable.
The efficient execution components for the client server communication are:
Client:-
Presentation/Display
User Interaction
Application Logic
Request Formulation
Server:-
Queries against shared resources
Transaction processing
Communications
Computations
Client server technology and the accompanying tools for the development provide the
fundamental building blocks for high performance, highly leveraged and highly accessible
information systems. Systems generated with client server computing have the potential to
increase the productivity of end users. End users will have broader access to data and the ability
to model it quickly.
Fig: A client reporting application with a local and client server database.
Reduced network traffic may provide extremely significant benefit to the end user on a
heavily used network. Network hardware systems have become faster, new topologies have
emerged, bridging, and channel splitting have offered significant relief of network traffic.
Anything that relieves the constraint of network resources is welcome, and the client-server
model of computing may provide additional relief to over utilized network systems.
The single-system image is best implemented through the client/server model. Our
experience confirms that client/server computing can provide the enterprise to the desktop.
Because the desktop computer is the user's view into the enterprise, there is no better way to
guarantee a single image than to start at the desktop.
Client: A client is a single-user workstation that provides presentation services and the
appropriate computing, connectivity, and database services and interfaces relevant to the
business need.
Server: A server is one or more multiuser processors with shared memory providing
computing, connectivity, and database services and interfaces relevant to the business
need.
This definition makes client/server a rather generic model and fits what is known in the industry
as "cooperative processing" or "peer-to-peer."
Because the client/server environment is typically heterogeneous, the hardware platform and
operating system of the client and server are not usually the same. In such cases, the
communications mechanism may be further extended through a well-defined set of standard
application program interfaces (APIs) and remote procedure calls (RPCs).
The modern diagram representing the client/server model was probably first popularized by
Sybase.
Figure illustrates the single-system image vision. A client-user relies on the desktop workstation
for all computing needs. Whether the application runs totally on the desktop or uses services
provided by one or more servers—be they powerful PCs or mainframes—is irrelevant.
Changes in platform and underlying technology should be transparent to the user. Training costs,
business processing delays and errors, staff frustration, and staff turnover result from the
confusion generated by changes in environments where the user is sensitive to the technology
platform.
For implementing the client server technology, a substantial cost is required. The cost includes
system support, maintenance, and training, labor costs. Labor costs compromise almost half of
the total costs of a client server information system. Since there are tremendous benefits and
advantages to the technology, it cannot implement economically feasible. Implementing a client
server system will prove to be a challenging yet rewarding process. Knowledge, experience,
initial costs, and exposure to client server computing will provide a tremendous base for
leveraging subsequent project. Initial exposures however will probably not yield a bottom line
savings or make IS or application developers more productive
1. SYSTEM SUPPORT AND MAINTENANCE
Implementing a client server system will prove to be a challenging yet rewarding process.
Knowledge, experience, initial costs, and exposure to client server computing will provide a
tremendous base for leveraging subsequent project. Initial exposures however will probably not
yield a bottom line savings or make IS or application developers more productive.
The infrastructure costs of client server computing were less than those of a comparative
minicomputer based solution. The difference lies in terms of networks, gateways, bridges and
routers needed to be purchased for the initial installation. PC’s are generally very low in cost and
are always getting cheaper. In fact, this downward price trend, which is sure to be maintained
into the future, will push the overall infrastructure costs of client server computing down even
further. In addition, the component costs in microprocessor based environments are Client Server
Computing sure to decrease as well, effectively lowering the costs of OS for the client, the server
and for associated peripheral hardware.
3. SOFTWARE DEVELOPMENT COST
One of the greatest promises of client server computing is its development technology,
methodologies, and tools. Comparative application development costs were 29% less expensive
for client server implementations than for the minicomputer technologies. The cost difference is
due to many factors including the development tools available and the inherent comparative ease
of developing applications using those tools.
4. LABOR COSTS:
Training, Administration, Support The labor costs attributed to a client server technology
deployment are numerous and high. As with any new technology, the initial and ongoing training
of programmers, IS staff and users is to be expected. Total labor costs are 34% less for a
minicomputer system deployment than they are for a client server one, according to Forrester.
Labor costs themselves account almost 50% of the total cost of a client server implementation.
Skilled labor comes at a high premium, especially in the initial phase of the new technology.
The ongoing maintenance and support of client server networks is a major cost factor facing
cooperation’s today. In fact, management costs are magnified with client server because of the
inherent manageability problems associated with distributed networks. Traditional main frame
and mini-computers provide or a central management strategy with a central machine whose
tools are time tested and proven. Client server management tools are just beginning to become
robust enough to support large, disperse deployments. Managing distributed networks is a
difficult task made worse by heterogeneous networks. Management solutions must be far
reaching and well integrated for client-server technology to proliferate.
Economic constraints very often force companies to limit their spending on new computer
resources and fully utilize existing ones. Weighing user’s productivity on outdated systems
against the cost of replacing those systems is a delicate balancing act. Client-server promises
both to preserve existing investments in computers and ease the pain of transition to newer
systems. To do this, client hardware requirements are reduced and expensive server machines
and peripherals are effectively shared. Client-server computing may benefit the bottom line of
cooperation’s.
Systems not capable of running multitasking OS can be preserved. These systems might
not be able to participate in some areas without the use of client-server, as they aren’t
capable of the required amount of work in a client-only solution.
COST COMPONENT CLIENT SERVER ( %) MINICOMPUTER ( % )
Application development 28 40
Infrastructure 25 27
System Support 40 30
Training 7 3
Table: Client Server Vs Minicomputer
Client Server Implementation
One of the keys to implementing successful client server applications is the proper
distribution of functionality and programs between the client and the server machines. Choosing
this application code mix is one of the most important architectural challenges to client server
development. The correct distribution of code will produce the most optimal execution for both
client and server. If either machine becomes overloaded, the benefits of the technology are
reduced.
Keywords
Objective Questions
6. Example of Fat Server & Fat Client is
D) Groupware Server
1. Example of Groupware Server
A) 2, 4 B) 1, 4 C) 2, 3 D) 1, 2
D) Groupware Server
6. NetBIOS is a
C) SNMP, ORB
D) CORBA, DCOM
Clients and servers are separate logical entities that work together over a network to
accomplish a task. Clients send requests to the server. The server in turn sends response to the
client.
2. Define Client – Server Computing Era:
Client/Server reshaped the way of computers being used.
Client/Server become mandatory in all computer oriented fields Internet is a good
example for the Client/Server concept.
3. What are the characteristics of client and server?
· Service
· Shared resource
· Asymmetrical Protocols
· Transparency of location.
· Mix-and-match.
· Message-based exchanges.
· Encapsulation of services.
· Scalability.
· Integrity.
4. Define transparency of location.
The server is a process that can reside on the same machine as the client or on a different
machine across a network. Client/server software usually masks the location of the server from
the clients by redirecting service calls when needed. This is referred as transparency of location.
Horizontal scaling means adding or removing client workstations with only a slight
performance impact.
Vertical scaling means migrating to a larger and faster server machine or multi servers.
The client (typically a PC) passes requests for file records over a network to the file
server. File servers are useful for sharing files across a network. They are indispensable for
creating repositories of documents, images, engineering drawings, and other data objects.
7. What are the functions of database server?
The client passes SQL requests as messages to the database server. The results of each
SQL command are returned over the network. The code that processes the SQL request and the
data reside on the same machine. The server uses its own processing power to find the requested
data instead of passing all records back to a client and then letting it find its own data.
In a transaction server, the client invokes remote procedures that reside on the server with
an SQL database engine. These remote procedures on the server execute a group of SQL
statements. The network exchange consists of a single request/reply message.
9. Define OLTP.
ORB-Object Request Broker. In an object server, client objects communicate with server
objects using an ORB (Object Request Broker).The ORB locates an instance of that object server
class, invokes the requested method, and returns the result to the client object. Server object must
provide support for concurrency and sharing. The ORB brings it all together.
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.
12 Marks Questions
1. Discuss about Client/Server Concepts.
2. (i) Discuss Client/Server System basic Characteristics.
(ii) List out Server types and briefly explain each server.
3. (i) Discuss about Fat Server Model and Fat Client Model.
(ii) Discuss about 2-tier Client/Server System versus 3-tier Client/Server System.
(ii) What is Intergalactic Client/Server? What are the key technologies are needed for
Client/Server System?
4. What are the basic building blocks in Client/Server System? And Explain each
Situations of building blocks arrangements.
5. Discuss about each type of building blocks. (or) Discuss about Inside The
Building blocks.
6. Explain briefly about Peer-to-peer Communications
7. Explain briefly Remote Procedure Calls (RPC).
8. (i)Explain about Message Oriented Middleware (MOM).
(ii) Comparing MOM and RPC.
Reference
Text Books
Robert Orfali, Dan Harkey and Jeri Edwards, “The Essential Client/Server Survival
Guide”, Galgotia Publications Pvt. Ltd.,