Quality is delighting customers
All round testers must aware of basics of Web concepts.
Topics to be Covered:
- Client server Computing
- Two-Tier Architecture
- Three-Tier Architecture
- Distributed Processing
- Characteristics of client/server architecture
- Server Types
- Transaction Server
- Application Server
Client/server is a computational architecture that involves client processes requesting service from server processes
The long answer: Client/server computing is the logical extension of
modular programming. Modular programming has as its fundamental
assumption that separation of a large piece of software into its
constituent parts ("modules") creates the possibility for easier
development and better maintainability. Client/server computing takes
this a step farther by recognizing that those modules need not all be
executed within the same memory space. With this architecture, the
calling module becomes the "client" (that which requests a service),
and the called module becomes the "server" (that which provides the
- What is a Client process? The client is a process (program) that sends
a message to a server process (program), requesting that the server
perform a task (service).
- Client programs usually manage the user-interface portion of the application, validate data entered by
the user, dispatch requests to server programs, and sometimes execute
- The client-based process is the front- end of the application that the user sees and interacts with.
- The client process contains solution-specific logic and provides the interface between the user and the rest of the application system.
- The client process also manages the local resources that the user
interacts with such as the monitor, keyboard, workstation CPU and
peripherals. One of the key elements of a client workstation is the
graphical user interface (GUI).
- What is a Server process? A server process (program) fulfills the client request by performing the task requested.
- Server programs generally receive requests from client programs,
execute database retrieval and updates, manage data integrity and
dispatch responses to client requests.
- Server programs may execute common or complex business logic.
- The server-based process "may" run on another machine on the network.
This server could be the host operating system or network file server;
the server is then provided both file system services and application
- The server process acts as a software engine that manages shared resources such as databases, printers, communication links, or high powered-processors.
- The server process performs the back-end tasks that are common to similar applications.
What is a Two-Tier Architecture?
A two-tier architecture is where a client talks directly to a server,
with no intervening server. It is typically used in small environments
(less than 50 users).
A common error in client/server development is to prototype an
application in a small, two-tier environment, and then scale up by
simply adding more users to the server. This approach will usually
result in an ineffective system, as the server becomes overwhelmed. To
properly scale to hundreds or thousands of users, it is usually
necessary to move to a three-tier architecture.
Fig: Two-tier architecture
A three-tier architecture introduces a server (or an "agent") between the client and the server.
The role of the agent is manyfold.
It can provide translation services (as in adapting a legacy application
on a mainframe to a client/server environment), metering services (as
in acting as a transaction monitor to limit the number of simultaneous
requests to a given server), or intelligent agent services (as in
mapping a request to a number of different servers, collating the
results, and returning a single response to the client.
Different layers in Three-Tier Architecture – Source -
CONNJUR project, http://connjur.uchc.edu
- Firewall is a shield that protect private networks from threats/harm coming from Internet
- Firewall prevent un-authorized users to gain access to confidential information.
- Firewalls are combination of hardware and software
- Firewalls may use routers, servers and software to shield networks
Types of Firewalls
There are two types of firewalls:
- Packet-filtering (routers)
- Pro-based firewalls
Packet-filtering Firewalls - This type of firewall blocks information by screening
incoming packages. Packet filtering provides basic network security
features at the IP level
Proxy-based Firewalls - More secure firewall. A proxy server is a software running on host computers
running at network perimeter. Proxy servers are designed so that they
are the only servers interacting with Internet.
The distribution of applications and business logic across multiple
processing platforms. Distributed processing implies that processing
will occur on more than one processor in order for a transaction to be
completed. In other words, processing is distributed across two or more
machines and the processes are most likely not running at the same
time, i.e. each process performs part of an application in a sequence.
Often the data used in a distributed processing environment is also
distributed across platforms.
The basic characteristics of client/server architectures are:
1) combination of a client or front-end portion that interacts with the
user, and a server or back-end portion that interacts with the shared
resource. The client process contains solution-specific logic and
provides the interface between the user and the rest of the application
system. The server process acts as a software engine that manages
shared resources such as databases, printers, modems, or high powered
2) the front-end task and back-end task have fundamentally different requirements for computing resources such
as processor speeds, memory, disk speeds and capacities, and
3) the environment is typically heterogeneous and multi-vendor. The hardware platform and
operating system of client and server are not usually the same. Client
and server processes communicate through a well-defined set of standard
application program interfaces (API's) and RPC's.
4) An important characteristic of client-server systems is scalability.
They can be scaled horizontally or vertically. 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 multiservers.
- The simplest form of servers are disk servers and file servers.
- With a file server, the client passes requests for files or file
records over a network to the file server. This form of data service
requires large bandwidth and can slow a network with many users down
considerably. Traditional LAN computing allows users to share
resources, such as data files and peripheral devices, by moving them
from standalone CPUs onto a Networked File Server (NFS).
In transaction servers, clients invoke remote procedures that reside on
servers which also contains an SQL database engine. There are
procedural statements on the server to execute a group of SQL
statements (transactions) which either all succeed or fail as a unit.
The applications based on transaction servers are called On-line
Transaction Processing (OLTP) and tend to be mission-critical
applications which require 1-3 second response time, 100% of the time
and require tight controls over the security and integrity of the
database. The communication overhead in this approach is kept to a
minimum as the exchange typically consists of a single request/reply
(as opposed to multiple SQL statements in database servers).
Application servers are not necessarily database centered but are used to server
user needs, such as. download capabilities from Dow Jones or regulating
a electronic mail process. Basing resources on a server allows users to
share data, while security and management services, which are also
based in the server, ensure data integrity and security.