0% found this document useful (0 votes)
23 views12 pages

337 16mbeca2 2020052512015754

Client/server computing is a model that separates the roles of clients and servers, where clients request services and servers provide them, facilitating efficient resource sharing and data management. This architecture offers benefits such as enhanced data sharing, integrated services, and location independence, but also faces challenges like network congestion and server dependency. Various types of servers exist, including file, database, transaction, groupware, and object application servers, each serving different functions within the client/server framework.

Uploaded by

kowsalya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views12 pages

337 16mbeca2 2020052512015754

Client/server computing is a model that separates the roles of clients and servers, where clients request services and servers provide them, facilitating efficient resource sharing and data management. This architecture offers benefits such as enhanced data sharing, integrated services, and location independence, but also faces challenges like network congestion and server dependency. Various types of servers exist, including file, database, transaction, groupware, and object application servers, each serving different functions within the client/server framework.

Uploaded by

kowsalya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 12

UNIT - IV

Client Server Architecture Networks


Introduction

Client/server computing is the most effective source for the tools that empower
employees with authority and responsibility.

The Client/server computing is an irresistible movement that is reshaping the way


computers is being used.

Let us now know what a client is and what is a server?

Client - A client is a single-user workstation that provides presentation services


and the appropriate computing, connectivity and the database services and the
interfaces relevant to the business need.

Server- A server is one or more multi-user processors with share memory


providing computing, connectivity and the database services and the interfaces
relevant to the business need.
The Client/Server computing is an environment that satisfies the business need
by appropriately allocating the application processing between the client and the
server processors.

Main frame
Terminals

Network
Minicomputers

Workstations
Server

Characteristics of the Client and the Server:

The clients and the servers are the logical entities that work together over a
network to accomplish a task.

The distinguishing characteristics of the Client/Server systems are:


1. Service: The client/server is primarily a relationship between processes
running on separate machines. The server process is a provider of services. The
client is a consumer of services. In essence, client/server provides a clean
separation of function based on the idea of service.

2. Shared Resources: A server can service many clients at the same time
and regulate their access to shared resources.

3. Asymmetrical protocols: There is a many-to-one relationship between the


clients and the server. Clients always initiate the dialog by requesting a service.

Servers are passively awaiting request from the clients. In some cases a client
may pass a reference to a callback object when it invokes a service. This lets the
server call back the client. So the client becomes a server.

4. 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 the redirecting
the service calls when needed. A program can be a client, a server, or both.

5. Mix-and-match: The ideal client/server software is independent of


hardware or operating system software platforms. You should be able to mix-and-
match client and server platforms.

6. Message-based exchanges: Clients and servers are loosely coupled


systems that interact through a message-passing mechanism. The message is the
delivery mechanism for the service request and replies.

7. Encapsulation of services: The server is a specialist. A message tells


a server is requested; it is then up to the server to determine how to get the job
done. Servers can be upgraded without affecting the clients as long as the published
message interface is not changed.

8. Scalability: Client/Server systems can be scaled horizontally or vertically.


Horizontal scaling means adding or removing client workstations with only a slight
performance impact. Vertical scaling means either migrating to a larger and faster
server machine or distributing the processing load across multiple servers.

9. Integrity:The server code and server data is centrally managed, which results
in cheaper maintenance and the guarding of shared data integrity. At the same time,
the clients remain personal and independent.

Merits and Demerits of the Client Server

The Merits of Client/Server Computing


Client/server computing provides the capability to use the most cost-effective
user interface, data storage, connectivity, and application services. Frequently,
client/server products are deployed within the present organization but are not used
effectively.

Enhanced Data Sharing

Data that is collected as part of the normal business process and maintained on
a server is immediately available to all authorized users.

The use of Structured Query Language (SQL) to define and manipulate the data
provides support for open access from all client processors and software.

SQL grants all authorized users access to the information through a view that is
consistent with their business need. Transparent network services ensure that the
same data is available with the same currency to all designated users.

Integrated Services

In the client/server model, all information that the client is entitled to use is
available at the desktop. There is no need to change into terminal mode or log into
another processor to access information.

All authorized information and processes are directly available from the
desktop interface. The desktop tools—e-mail, spreadsheet, presentation graphics,
and word processing—are available and can be used to deal with information
provided by application and database server’s resident on the network.

Desktop users can use their desktop tools in conjunction with information made
available from the corporate systems to produce new and useful information.

Sharing Resources among Diverse Platforms

The client/server computing model provides opportunities to achieve true open


system computing. Applications may be created and implemented without regard to
the hardware platforms or the technical characteristics of the software.

Thus, users may obtain client services and transparent access to the services
provided by database, communications, and applications servers.
Operating systems software and platform hardware are independent of the
application and masked by the development tools used to build the application.

In this approach, business applications are developed to deal with business


processes invoked by the existence of a user-created "event."
Data Interchangeability and Interoperability

SQL is an industry-standard data definition and access language. This standard


definition has enabled many vendors to develop production-class database engines to
manage data as SQL tables. Almost all the development tools used for client/server
development expect to reference a back-end database server accessed through SQL.

Network services provide transparent connectivity between the client and local
or remote servers. With some database products, such as Ingres Star, a user or
application can define a consolidated view of data that is actually distributed
between heterogeneous, multiple platforms.

Location Independence of Data and Processing

We are moving from the machine-centered computing era of the 1970s and
1980s to a new era in which PC-familiar users demand systems that are user-
centered. Previously, a user logged into a mainframe, mini-, or micro application.
The syntax of access was unique in each platform. Function keys, error messages,
navigation methods, security, performance, and editing were all very visible. Today's
users expect a standard "look and feel." Users log into an application from the
desktop with no concern for the location or technology of the processors involved.
This creates an additional advantage to this architecture: greater ease of
maintenance. For example, it is possible to replace, repair, upgrade, or even relocate
a server while its clients remain both unaware and unaffected by that change. This
independence from change is also referred to as encapsulation.

The Demerits of Client/Server Computing

1. Traffic congestion on the network has been an issue. As the number of


simultaneous client requests to a given server increases, the server can become
severely overloaded.
2. The client-server paradigm lacks the robustness of a good P2P network.
Under client-server, should a critical server fail, clients’ requests cannot be fulfilled.

Types of Server

File Server

· File Servers are useful for sharing information across the network
· The client passes a request for file records over a network to the file server.

· This is the most primitive type of data service used for exchanging messages
over the network to find the requested data.
· The file servers provide access to the remote server processors. In the typical
implementation the software, shared data, databases and backups are stored on disk,
tape and optical storage devices that are managed by the file server.
Application

Application

File Server

Client/Server with a File Server.

Database Server
· The client passes the SQL requests as messages to the database server; the
result of each SQL command is returned over the network.

· The code, which processes the SQL request and the data, reside in the same
machine, the server uses its own processing power to find the requested data back to
the client, instead of passing all the records back to the client. This results in a much
more efficient use of the distributed processing power.
· Note that the application code resides on the client; thus you must either
write code for the client or you can buy a shrink-wrap query tool.
· The database servers provide the foundation for decision-support systems
and also provide key role in data warehousing.

Transaction Servers

The client can invoke remote procedure or services that reside on the server
with an SQL database engine using the transaction server.

· The network exchange consists of a single request/ reply. The SQL statements
either all succeeded or fail as a unit.

· These grouped SQL statements are called transactions.

· With a transaction server you create the client/server application by writing


the code for both the client and the server components.
· The client component usually includes a Graphical User Interface (GUI). The
server component consists of SQL transaction against a database. These applications
are called Online Transaction Processing or OLTP.

· The OLTP are mission-critical applications that require a very less response
time (1-3 sec).

· The OLTP applications also require tight controls over the security and
integrity of the database.

· It has two forms


o TP-Lite: based on the stored procedures provided by database vendors.
o TP-Heavy: bases on the TP Monitors which is provided by
OLTPvendors.

Application

TRANSACTIONS

Application
DBMS
TP Monitor

Client/Server with the Transaction Servers

Groupware Servers

· It involves the management of semi-structured information such as text,


image, mail, bulletin boards and the flow of work.
· These client/server system places people in direct contact with other people.
Best examples are Lotus Notes and Microsoft Exchange.
· Specialized groupware software can be built on top of a vendor’s canned set
of client/server API’s. In many cases, applications are created using a scripting
language and form-based interfaces provided by the vendor. Now many groupware
products use e-mail as their standard messaging middleware. Also, Internet is quickly
becoming the middleware platform of choice for groupware.
Object Application Servers.

· The client/server application is written as a set of communicating objects


with an object server.
· The client object uses the Object Request Broker (ORB) to communicate
with the server objects.

· The ORB locates an instance of that object server class, invokes the
requested method and returns the results to the client object.
· The server objects must support the concurrency and sharing aspects. The
ORB and a new generation of CORBA application servers bring it all together.

· The commercial ORB’s that comply with the Object Management Group’s
CORBA standard include Iona’s Orbix, Inprise’s VisiBroker, ICL’s DAIS,
JavaSoft’s Java IDL , BEA’s ObjectBroker, IBM’s SOM and Expersoft’s
PowerBroker.

· CORBA is also the basic foundation technology for the Enterprise


JavaBeans component model. The new generation CORBA application servers are
also called as the Object Transaction Monitors (OMTs) provide server-side
component coordination services.

Client Server Architecture

The knowledge about the Fat Servers and the Fat Clients

We know that the client/server models can be distinguished by the service they
provide and how the distributed application is split between the client and the server.

In these lines we have


Fat Server Model
Fat Client Model

The Fat Server Model

· Place more functions on the server


· Usually used for the mission-critical applications.
· Applications are easier to manage on the network as most of the work is done
on the server.
· The fat servers create abstract level of services by which the network
interchange is minimized.
· The Transaction Servers and the Object Server embed the concept of
encapsulation of database by exporting the procedure/ methods, which act on the
data instead of the raw data.
· The client interacts with such fat servers using the remote procedure call.
· The examples are the Groupware, Transaction Servers, and Web Servers.

Fat Client Model


· Places more function on the client. In a client/server architecture, a client that
performs the bulk of the data processing operations. The data itself is stored on the
server.
· They are the traditional form of the client/server systems
· They are generally used for decision support and personal software
· They lead to the creation of the front-end tools and applications.
· The best places are – the file server and the database server models where the
client knows how the data is organized and stored on the
server.
We must know that in the real/actual working environment both fat server and
the fat client may coexist in one application.
The Architectures

A network architecture in which each computer or process on the network is


either a client or a server.
Servers are powerful computers or processes dedicated to managing disk drives
(file servers), printers (print servers), or network traffic (network servers ). Clients
are PCs or workstations on which users run applications. Clients rely on servers for
resources, such as files, devices, and even processing power.
Another type of network 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. Client-server architectures are sometimes called two-tier
architectures.

The gurus of the client/server architecture do not use the terms fat client and the
fat servers on the contrary they refer to them are 2-tier, 3-tier and N-tier client/server
architecture. This is the means by which they are functionally split. The functional
units comprise of user interface, business logic and the shared data.

2-tier Client/Server Architecture

Two tier software architectures were developed in the 1980s from the file server
software architecture design. The two-tier architecture is intended to improve
usability by supporting a forms-based, user-friendly interface.
The two-tier architecture improves scalability by accommodating up to 100
users (file server architectures only accommodate a dozen users). It also proves
flexibility by allowing data to be shared, usually within a homogeneous environment.

The two-tier architecture requires minimal operator intervention, and is


frequently used in non-complex, non-time critical information processing systems

GUI and Application DBMS, Legacy and other resource


Managers
SQL, File I/O
Tier 1 HTTP

2-tier Client/ Server Architecture

Eg: File Servers, Database Servers with Stored Procedure.


Two tier architectures consist of three components distributed in two layers:

client (requester of services) and server (provider of services).

The three components are

1. User System Interface (such as session, text input, dialog, and display
management services)
2. Processing Management (such as process development, process enactment,
process monitoring, and process resource services)
3. Database Management (such as data and file services)

The two-tier design allocates the user system interface exclusively to the client.
It places database management on the server and splits the processing management
between client and server, creating two layers.

The application logic may be present at the client side within a user interface or
it may be present within the database on the server or on the both. It is most popular
because of its simplicity.

These applications can be quickly built by using and visual builder tools; which
can be used for developing applications for decision support system of small-scale
groupware or you may build a simple web publishing applications.
But the real problem arises only when you deploy them beyond the
departmental LAN. Typically the applications that worked perfectly well in
prototypes and small installations failed for large-scale productions. It actually went
through a transition phase, where it grew beyond the departmental LAN’s.Thus the
complex world is now faced by the 3-tier and the N-tier applications.

3-tier Client/Server Architecture


The three-tier software architecture emerged in the 1990s to overcome the
limitations of the two-tier architecture.
The third tier (middle tier server) is between the user interface (client) and the
data management (server) components.
This middle tier provides process management where business logic and rules
are executed and can accommodate hundreds of users (as compared to only 100
users with the two tier architecture) by providing functions such as queuing,
application execution, and database staging.

The three tier architecture is used when an effective distributed client/server


design is needed that provides (when compared to the two tier) increased
performance, flexibility, maintainability, reusability, and scalability, while hiding
the complexity of distributed processing from the user.

They are also easy to manage and deploy the network and most of the code runs
on the server. The protocol of interaction between the client and the server is as
follows:

The client calls for the business logic on the server, the business logic on the
behalf of the client accesses the database.

The 3-tier substitutes a few server calls for many SQL queries and updates so it
performs much better than 2-tier. A three tier distributed client/server architecture
includes a user system where user services (such as session, text input, dialog, and
display management) reside.

The middle tier provides process management services (such as process


development, process enactment, process monitoring, and process resourcing) that
are shared by multiple applications.
The third tier provides database management functionality and is dedicated to
data and file services that can be optimized without using any proprietary database
management system languages.

RPC,ORB, SQL data


MOM, access
HTTP
Tier 1

Tier 2
DBMS, Legacy
and other resource
managers
Tier 3

3-tier Client/ Server Architecture


3-tier to N-tier

In the 3-tier applications, the middle tier is generally not a monolithic program
but is implemented as a collection of components that are initiated by several client-
initiated business transaction.
One component can call other components to help it implement a request; also
some components may act as gateways which may encapsulate legacy applications
running on mainframe.

The component-based application provides the following advantages over the


monolithic applications.

1. You can develop big applications in small steps


Large mission-critical application projects may be divided into small
component projects. The component enriches them for a small-team and incremental
development approach.

2. You can reuse components

3. Clients can access data and functions easily and safely.


The client sends request to the components to execute on their behalf. The
clients do not need to know which database is being accessed to execute the request;
also they do not need to know if the request was sent to another component or
application for execution. The server component encapsulates the details of the
application logic and thus raises the level of abstraction.

4. Custom applications can incorporate off-the-shelf components Today’s


trend is to buy ready-made components that are packaged as applications. They can
also be mix and matched with different software vendors; but a word of caution is
the “Mix-and-Match “capability needs some semantic glue.

When can /should you use 3-tier?

According to Gartner Group’s for the smaller projects – 2-tier applications are
easier to develop than 3-tier, however as the application becomes more complex, 2-
tier applications become exponentially harder to develop.
According to Gartner Group, if your application has any of the following
characteristics then you may choose 3-tier architecture:
1. Many applications services/classes (around or more than 60)
2. Application programmed in different languages or written by different
organizations
3. An application life longer than 3 years.
4. If there are more than 60,000 transactions per day or more than 300
concurrent users on the same system accessing the same database.
5. Two or more heterogeneous data sources like two DBMS or a DBMS and
a file system.

You might also like