Client-Server Reviewer
Client-Server Reviewer
Client/Server is used to describe a computing model for the development of computerized systems.
This model is based on distribution of functions between two types of independent and autonomous
processes: Server and Client
1. File Server
All the files reside on the server machine. File Server provides clients access to records within
files from the server machine. File Servers are useful for sharing files across a network among
the different client process requesting the services.
2. Print Server
This machine manages user access to the shared output devices, such as printers. These are the
earliest type of servers. Print services can run on a file server or on one or more separate print
server machines.
3. Application Server
This machine manages access to centralized application software; for example, a shared
database. When the user requests information from the database, the application server
processes the request and returns the result of the process to the user.
4. Mail Server
This machine manages the flow of electronic mail, messaging, and communication with
mainframe systems on large-scale networks.
5. Fax Server
Provides the facility to send and receive the Faxes through a single network connection. The Fax
server can be a workstation with an installed FAX board and special software or a specialized
device dedicated and designed for Fax Services.
8. Database Server
Data resides on server, in the form of a SQL database. Database server provides access to data to
clients, in response to SQL requests. It shares the data residing in a database across a network.
9. Transaction Servers
The data and remote procedures reside on the server. The Server provides access to high level
functions, and implements efficient transaction processing. It shares data and high level
functions across a network.
fat client is one that carries a relatively larger proportion of processing load
Fat Clients: This architecture places more application functionality on the client machine(s). They are
used in traditional of Client/Server models.
Fat Servers: This architecture places more application functionality on the server machine(s). Typically,
the server provides more abstract, higher- level services.
A stateless server is a server that treats each request as an independent transaction that is unrelated to
any previous request.
A stateless server keeps no state information. Using a stateless file server, the client must specify
complete file names in each request specify location for reading or writing and re-authenticate for each
request
A stateful server remembers client data (state) from one request to the next.
1.1.4 Servers and Mainframes
Mainframes are the monstrous computer system that deals mainly the business functions and
technically these giant machines will run MVS, IMS and VSAM operating systems
Various other factors, which can have, prime considerations to differentiate themainframe and
Client/Server systems:
Client/Server Functions
1. First-tier (client-tier): The main responsibility of this tier is to receive user events and to control
the user interface and presentation of data.
2. Second-tier (application-server-tier): The complex application logic is loaded here and available
to the client tier on request from client
3. Three-tier (database-server-tier): This tier is responsible for data storage. This server mostly
operates on a relational database
Transaction Routing: TP monitor can increase scalability by directing transactions to specific DBMS’s.
Managing Distributed Transaction: The TP Monitor can manage transactions that require access to data
held in multiple, possibly heterogeneous, DBMSs.
Load balancing: The TP Monitor can balance client requests across multiple DBMS’s on one or more
computers by directing client services calls to the least loaded server.
Funneling: In an environment with a large number of users, it may sometimes be difficult for all users to
be logged on simultaneously to the DBMS.
Increased reliability: The TP Monitor acts as transaction manager, performing the necessary action to
maintain the consistency of database, with the DBMS acting as a resource manager.
A TP Monitor is typically used in environments with a very heavy volume of transaction, where the TP
Monitor can be used to offload processes from the DBMS server
N-tier computing obliges developer to design components according to a business schema that
represents entities, relationship, activities roles, and rules, thereby enabling them to distribute
functionality across logical and physical tiers, allowing better utilization of hardware and platform
resources, as well as sharing of those resources and the components that they support to serve several
large applications at the same time.
A fat client embeds business logic in the application at the client level.
Advantages
1. Performance and reduced workload:
Processing is distributed among the client and server unlike the traditional PC database, the
speed of DBMS is not tied to the speed of the workstation as the bulk of the database processing
is done at the back-end.
2. Workstation independence:
Users are not limited to one type of system or platform. In an ORACLE-based Client/Server
system the workstations can be IBM – compatible PCs, Macintoshes, UNIX workstations, or any
combinations of the three.
3. System interoperability:
Client/Server computing not only allows one component to be changed, it also makes it is
possible for different type of components systems (client, network or server) to work together.
4. Scalability:
The modular nature of the Client/Server system may be replaced without adversely affecting the
rest of the system.
5. Data integrity: Client/Server system preserves the data integrity, DBMS can provide number of
services that protect data like, encrypted file storage, real time backup (while the database is
being accessed), disk mirroring (where the data is automatically written to duplicate database on
another partition of same hard disk drive), disk duplexing (where the data is automatically
written to a duplicate database on a different hard disk drive), transaction processing that keeps
the track changes made to the database and corrects problems in case the server crashes.
6. Data accessibility (enhanced data sharing): Since the server component holds most of data in a
centralized location, multiple users can access and work on the data simultaneously.
7. System administration (centralized management):
Client/Server environment is very manageable. Since data is centralized, data management can
be centralized. Some of the system administration functions are security, data integrity and back
up recovery.
8. Integrated services:
In Client/Server model all information that the client is entitled to use is available at the desktop,
through desktop interface, there is no need to change into a terminal mode or to logon into
another processor to access information.
Disadvantages
1. Maintenance cost:
Major disadvantages of Client/Server computing is the increased cost of administrative and
support personnel to maintain the database server. In the case of a small network, the network
administrator can usually handle the duties of maintaining the database server, controlling the
user access to it, and supporting the front-end applications.
2. Training cost:
Training can also add to the start-up costs as the DBMS may run on an operating system that the
support personnel are unfamiliar with.
3. Hardware cost:
There is also an increase in hardware costs. While many of the Client/Server database run under
the common operating systems (Netware, OS/2 and Unix) and most of the vendors claim that
the DBMS can run on the same hardware side by side with the file server software.
4. Software cost:
The overall cost of the software is usually higher than that of traditional PC based multi-user
DBMS.
5. Complexity:
With so many different parts comprising the entire Client/Server, i.e., the more are the pieces,
which comprise the system the more things that can go wrong or fail. It is also harder to pinpoint
problems when the worst does occur and the system crashes. It can take longer to get
everything set up and working in the first place. This is compounded by the general lack of
experience and expertise of potential support personnel and programmers, due to the relative
newness of the technology.