Vous êtes sur la page 1sur 30

Client-server computing

Unit I - Introduction

Objective

Client-server computing introduces the basics of client/server model and component


technologies and then proposes two frameworks for client/server computing using distributed
objects. Topics affecting client/server frameworks are discussed, with a focus on the delegation
of responsibilities between clients and servers and their functionalities.

Introduction

Client-server is a computing architecture which separates a client from a server, and is


almost always implemented over a computer network. Each client or server connected to a
network can also be referred to as a node. The most basic type of client-server architecture
employs only two types of nodes: clients and servers. This type of architecture is sometimes
referred to as two-tier. It allows devices to share files and resources. Each instance of the client
software can send data requests to one or more connected servers. In turn, the servers can accept
these requests, process them, and return the requested information to the client. Although this
concept can be applied for a variety of reasons to many different kinds of applications, the
architecture remains fundamentally the same.

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,

 The server program must already running


 The server program must be listening to a port for incoming connections
 The client must know the server host machine and the port.
The client is classified into two types.

 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:

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 executes a group of sql statement.

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: Apache Tomcat,

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

Basic characteristics of Client-Server:

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:

Independent of hardware or operating system. i.e., 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
-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.

Message Based Exchanges:


Clients and servers are loosed coupled systems that interact through message passing
mechanisms for the service requests and replies.

The Business Opportunity

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.

Open systems enable organizations to buy off-the-shelf solutions to business problems.


Open systems standards define the format in which data is exchanged, remote systems are
accessed, and services are invoked. The acceptance of open systems standards supports the
creation of system architectures that can be built from technology components. These standards
enable us, for example, to

 Build reusable class libraries to use in object-oriented design and development


environments.

 Build niche products that interact with the same data (objects).

 Customize a letter at a personal desktop workstation to include data, addressing and


graphics input from a word processor, a personal spreadsheet, a workgroup database, and
an existing enterprise host application to be sent by electronic mail to anywhere in the
world.

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.

Examples include object-oriented development, relational and object-oriented databases,


multimedia, imaging, expert systems, geographic information systems (GIS), voice recognition
and voice response, and text management. These technologies provide the opportunity to
integrate their generic capabilities—with the particular requirements of an organization—to
create a cost-effective and customized business solution. The client/server model provides the
ideal platform with which to integrate these enabling technologies. Well-defined interface
standards enable integration of products from several vendors to provide the right application
solution.

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.

There is more willingness to continue improvement practices and programs to eliminate


redundancy and increase effectiveness. Organizations are becoming market-driven while
remaining true to their business vision.

To be competitive in a global economy, organizations in developed economies must employ


technology to gain the efficiencies necessary to offset their higher labor costs. Reengineering the
business process to provide information and decision-making support at points of customer
contact reduces the need for layers of decision-making management, improves responsiveness,
and enhances customer service.

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.

Major issues of information technology

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

Organizational pressures to demonstrate value apply as much to the information systems


(IS) functions as to any other element or operating unit of the business. This is a special
challenge because most IS organizations have not previously experienced strong financial
constraints, nor have they been measured for success using the same business justification
"yardstick" as other value-creating units within the business enterprise. IS has not been under the
microscope to prove that the role it plays truly adds value to the overall organization. In today's
world, organizations that cannot be seen to add value are either eliminated or outsourced.

Database logic component upsizing, downsizing, right sizing the rightsizing

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

Heterogeneous computing means the ability to communicate with other dissimilar OS


and protocols. Heterogeneous computing is the term used for describe this diverse computing
environment. Each application vendor must strive to support key platform for its target software
consumer. Developers are faced with the dilemma of how to make application software port
from platform to platform with as little difficulty, expense, and problems as possible.
Cross-Platform Computing

It is defined as the implementation of technologies across heterogeneous environments.


When creating cross platform applications, developers are saddled with many issues. Providing
the following capabilities is imperative for the application developer: The application must run
on multiple platforms.
1. It must have the same look and feel as on other platforms.
2. It must integrate with the native operating environment.
3. It must behave the same on all platforms.
4. It must be maintained simply and consistently.
Running on multiple platforms:
The application must be deployed on many computer systems. A Proliferation of
computer hardware and OS makes up the current computing climate. Applications must support
these environments to give users freedom of choice for deployment. Maintaining the same look
and feel on all platforms:
The application should maintain the same look and feel on all platforms. This is very crucial, as
application users should not be unfamiliar with a product because it is implemented on different
systems. Each OS system platform has similar graphical interface capabilities.
Supporting the native operating environment:
Application must utilize native features of the target platform. By supporting the native
environment, the developer does not force in additional constraints or software on the user.
Behaving the same on all platforms:
The software must behave similarly on all systems. It is very important for applications to
provide consistency to users.
Simple and consistent maintenance:
Developers should ease the integration of software into new environments by providing
similar maintenance of application programs. Installation and update facilities vary from
platform to platform
Distributed Computing

Distributing computing is technology architecture with wonderfully promising benefits and


advantages. Distributing computing involves the distribution of work among more than one
machine. Distributing computing is broader in that many machines may be processing the work
on behalf of client machines.
Advantages:
 Execution is very fast.

 Reduce the network traffic.

 Reduce the usage of memory.


Decomposition approaches Layers and Tiers

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

 Management: Application and data

 Transaction processing

 Centralized application logic

 Communications

 Computations

Client Server Computing

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.

BENEFITS OF CLIENT SERVER COMPUTING

 Reduced total execution time.

 Reduced client CPU usage.

 Increased client CPU usage.

 Reduced client memory usage.

 Reduced network traffic.


Reduced Total Execution Time:
Applications deployed as client only applications incur all processing on one CPU. The
total execution time is sure to decrease when multiple machines are co-operating on the same
program. If the server application becomes backlogged as it processes request from many clients,
total execution time may actually increased. Thus it is very important for the application
developer to develop scalable client server applications that avoid over burdening the server.
Reduced Client Server Usage:
By offloading work to a server computer the workstation machine may see a reduction in
the amount of CPU usage. There are many advantages to reducing client CPU usage. The first is
client application may take advantages of the additional CPU cycles that become available. The
second is the application developer may determine what mix of client and server code execution
best suits the particular application and the system platform.
Distributed computing maximizes the efficiency of the network by using the available
CPU cycles at client stations. In such a scenario, these would be thought of as distributed work
nodes. Client computers have the capacity to process information cooperatively should be
utilized for that purpose. Client server efficiency is maximized in such an environment because
CPU cycles at the client as well as the server are leveraged to create a more effective overall
system. In order for clients operate in such a scenario; they probably need to use an advanced OS
in order to provide multitasking and other capabilities. Clients that consist of such products and
have enough horsepower will work very well to assist in cooperative processing.
Reduced Client Memory Usage:
Client applications employing client server technology may often gain additional
advantages with client server computing. Memory usage may be decreased when implementing
client server, because many pertinent features are to be deployed on another system. Another
code as well as third party modules may be migrated to other platforms, thus benefiting the users
of these systems. Memory constraints are very important to many users, so easing the memory
crunch is much appreciated. When third party functions and features used by the applications are
also migrated to the server platform, an inherent reduction in memory and processing usage is
obtained.
LOCAL DATABASE

CLIENT SERVER DATABASE

Fig: A client reporting application with a local and client server database.

Reduced Network Traffic:


Another important benefit of client server computing is the reduced network traffic. The
client server model is designed for the client to initiate a request and for the server process and
respond to the request. With this model the actual data manipulation transpires on the server
computer and is usually not transferred to the client station during processing. The client
computer only receives data when the unit of work is completed. As a result fewer network
transmissions are required to compute task.

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.

Unfortunately, it often seems as if the number of definitions of client/server computing


depends on how many organizations you survey, whether they're hardware and software vendors,
integrators, or IS groups. Each has a vested interest in a definition that makes its particular
product or service an indispensable component.

Throughout this book, the following definitions will be used consistently:

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

Client/server computing is an environment that satisfies the business need by


appropriately allocating the application processing between the client and the server processors.
The client requests services from the server; the server processes the request and returns the
result to the client. The communications mechanism is a message passing interprocess
communication (IPC) that enables (but does not require) distributed placement of the client and
server processes. Client/server is a software model of computing, not a hardware definition.

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.

Effective client/server computing will be fundamentally platform-independent. The user of an


application wants the business functionality it provides; the computing platform provides access
to this business functionality. There is no benefit, yet considerable risk, in exposing this platform
to its user.

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.

Cost of Client Server Computing

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.

2. HARDWARE AND INFRASTRUCTURE COSTS

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.

WAYS FOR PRESERVING EXISTING INVESTMENTS:

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.

 Reducing client hardware requirements:

Client server architecture, which is designed to distribute functionality between two or


more machines, reduces the client’s hardware requirements. The introduction of the server place
a significant role by decreasing the amount of client processing. Resource utilization is thus
reduced at these client machines and, as a result, less powerful existing machines may have their
life extended.

 Reductions in client processing:

Many applications that use client-server technology spent a significant amount of


execution time idling and waiting for the server. A notable change in client processing power
makes only a slight improvement in client execution times. The client in effect, has become less
dependent on machine capabilities when off-loading work to the server computers.
The significant reduction in client processing can be used in one of the two ways:
 Systems with extra CPU cycles can be used to run other programs or process other work
at the client computer.

 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

ODBC, EDA/SQL - Database-specific Middleware


RPC, X/Open’s TxRPC OLTP- specific Middleware
SMTP, Lotus Notes Calls - Groupware-specific Middleware
CORBA, DCOM - Object-specific Middleware
HTTP, S-HTTP, SSL - Internet-specific Middleware
SNMP, ORB - System Management Specific Middleware

Mom- message oriented middleware


RPC - Remote Procedure Call
NCB -Network Control Block
IPX - Internet Packet Exchange
XNS -Xerox Network Services

Objective Questions
6. Example of Fat Server & Fat Client is

A) Groupware Server & File Server,

B) Database Server & Transaction Server.

C) File Server & Groupware Server

D) Groupware Server
1. Example of Groupware Server

A) File server B) Database Server C) Lotus Notes D) HTTP Server

2. Which one is Service-Specific Middleware?

1) ODBC, EDA/SQL 2) COBOL 3) Intranet 4) SMTP, Lotus Notes Calls

A) 2, 4 B) 1, 4 C) 2, 3 D) 1, 2

3. Xerox Network Services (XNS) provide by using

A) HTTP B) SMTP C) SNMP D) TCP/IP

4. The MOM Middleware has the client /server communication is

A) Peer to Peer B) Asynchronous C) RPC D) synchronous

5. Example of Fat Server & Fat Client is

A) Groupware Server & File Server,

B) Database Server & Transaction Server.

C) File Server & Groupware Server

D) Groupware Server

6. NetBIOS is a

A) RPC B) Peer To Peer C) MOM Middleware D) Distributed system

7. Which one is Object Specific Middleware?


A) SMTP, Lotus Notes Calls

B) HTTP, S-HTTP, SSL

C) SNMP, ORB

D) CORBA, DCOM

8. How to overcome 3 Tier Architecture is better than 2 tier architecture

A) Server to server infrastructure

B) System administrations: fewer complexes


C) Security: high
D) All the above

9. How to involve TPM in Database Management System

A) Update and alter B) Rollback C) Delete D) Stop

10. Which one is correct?

A) Middleware is consist of computer hardware tools

B) Middleware is software that acts as an interface between client and server

C) Middleware is collection of computers connect through the internet

D) Middleware is a Operating System

1. Define client and server.

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.

5. Define horizontal and vertical scalability.

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.

6. What are the uses of file 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.

8. What are the functions of a transaction server?

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.

OLTP-Online Transaction Processing The client component usually includes a Graphical


User Interface (GUI).The sever component usually consists of SQL transactions against a
database. These applications are called Online Transaction Processing or OLTP. OLTP
applications are mission critical applications that require a 1-3 second response time 100% of the
time and they also require tight controls over the security and integrity over the database.

10. Define types of OLTP.

Two forms of OLTP are:


 · TP Lite
 · TP heavy
TP lite- based on the stored procedures provided by database vendors.
TP heavy- based on the TP monitors provided by OLTP vendors.

11. Define transaction.


In transaction server, the SQL statements either all succeed or fail as a unit. These
grouped SQL statements are called transactions.

12. Define groupware servers.

Groupware addresses the management of semi-structured information such as text,


image, mail, bulletin boards, and the flow of work. These client/server systems place people in
direct contact with other people. Example: Lotus Notes

13. Define object servers.

In an object server, the client/server application is written as a set of communicating


objects. Client objects communicate with server objects using an ORB (Object Request Broker)

14. Define ORB.

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.

15. What is 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.

16. What is 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 .

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

Vous aimerez peut-être aussi