You are on page 1of 11

Types of Server

A Server is a computer or device on a network that manages network

resources. For example, a file server is a computer and storage device
dedicated to storing files Any user on the network can store files on the
server. A print server is a computer that manages one or more printers
and a network server is a computer that manages network traffic.
Servers are often dedicated, meaning that they perform no other tasks
besides their server tasks. On multiprocessing operating systems
however, a single computer can execute several programs at once. A
server in this case could refer to the program that is managing resources
rather than the entire computer.
What is Server Platform?
A term often used synonymously with operating system. A platform is the
underlying hardware or software for a system and is thus the engine that
drives the server.
Server types:
Application Servers
Sometimes referred to as a type of middleware, application servers
occupy a large chunk of computing territory between database servers
and the end user, and they often connect the two.
Middleware is a software that connects two otherwise separate
applications For example, there are a number of middleware products that
link a database system to a Web server This allows users to request data
from the database using forms displayed on a Web browser and it enables
the Web server to return dynamic Web pages based on the user's requests
and profile.
The term middleware is used to describe separate products that serve as
the glue between two applications. It is, therefore, distinct from import
and export features that may be built into one of the applications.
Middleware is sometimes called plumbing because it connects two sides of
an application and passes data between them. Common middleware
categories include:

TP monitors
DCE environments
RPC systems
Object Request Brokers (ORBs)
Database access systems
Message Passing

Audio/Video Servers
Audio/Video servers bring multimedia capabilities to Web sites by enabling
them to broadcast streaming multimedia content. Streaming is a
technique for transferring data such that it can be processed as a steady
and continuous stream. Streaming technologies are becoming increasingly
important with the growth of the Internet because most users do not have
fast enough access to download large multimedia files quickly. With
streaming, the client browser or plug-in can starts displaying the data
before the entire file has been transmitted.
For streaming to work, the client side receiving the data must be able to
collect the data and send it as a steady stream to the application that is
processing the data and converting it to sound or pictures. This means
that if the streaming client receives the data more quickly than required, it
needs to save the excess data in a buffer If the data doesn't come quickly
enough, however, the presentation of the data will not be smooth.
There are a number of competing streaming technologies emerging. For
audio data on the Internet, the de facto standard is Progressive Network's
Chat Servers
Chat servers enable a large number of users to exchange information in
an environment similar to Internet newsgroups that offer real-time
discussion capabilities. Real time means occurring immediately. The term
is used to describe a number of different computer features. For example,
real-time operating systems are systems that respond to input
immediately. They are used for such tasks as navigation, in which the
computer must react to a steady flow of new information without
interruption. Most general-purpose operating systems are not real-time
because they can take a few seconds, or even minutes, to react.
Real time can also refer to events simulated by a computer at the same
speed that they would occur in real life. In graphics animation, for
example, a real-time program would display objects moving across the
screen at the same speed that they would actually move.
Fax Servers
A fax server is an ideal solution for organizations looking to reduce
incoming and outgoing telephone resources but that need to fax actual

FTP Servers
One of the oldest of the Internet services, File Transfer Protocol makes it
possible to move one or more files securely between computers while
providing file security and organization as well as transfer control.
Groupware Servers
A GroupWare server is software designed to enable users to collaborate,
regardless of location, via the Internet or a corporate Intranet and to work
together in a virtual atmosphere.
IRC Servers
An option for those seeking real-time capabilities, Internet Relay Chat
consists of various separate networks (or "nets") of servers that allow
users to connect to each other via an IRC network.
List Servers
List servers offer a way to better manage mailing lists, whether they are
interactive discussions open to the public or one-way lists that deliver
announcements, newsletters, or advertising.
Mail Servers
Almost as ubiquitous and crucial as Web servers, mail servers move and
store mail over corporate networks via LANs and WANs and across the
News Servers
News servers act as a distribution and delivery source for the thousands of
public news groups currently accessible over the USENET news network.
USENET is a worldwide bulletin board system that can be accessed
through the Internet or through many online services The USENET
contains more than 14,000 forums called newsgroups that cover every
imaginable interest group. It is used daily by millions of people around the
Proxy Servers
Proxy servers sit between a client program typically a Web browser and an
external server (typically another server on the Web) to filter requests,
improve performance, and share connections.
Telnet Servers
A Telnet server enables users to log on to a host computer and perform
tasks as if they're working on the remote computer itself.

Web Servers
At its core, a Web server serves static content to a Web browser by
loading a file from a disk and serving it across the network to a user's Web
browser. The browser and server talking to each other using HTTP mediate
this entire exchange.

What is the Difference Between Two-Tier and

Three-Tier Architecture?
In my previous post I have outlined points to be considered
while testing Web based applications. In todays software testing class
we are discussing about theTwo-Tier and Three-Tier architecture.
All projects are broadly divided into two types of applications 2 tier and 3
tier architecture. Basically high level we can say that 2-tier
architecture is Client server application and 3-tier architecture is Web
based application. Below I am concentrating on the difference between
Two-Tier and Three-Tier Architecture, what all advantages, disadvantages
and practical examples.
Two-Tier Architecture:
The two-tier is based on Client Server architecture. The two-tier
architecture is like client server application. The direct communication
takes place between client and server. There is no intermediate between
client and server. Because of tight coupling a 2 tiered application will run

Two-Tier Architecture
The above figure shows the architecture of two-tier. Here the direct
communication between client and server, there is no intermediate
between client and server.
Lets take a look of real life example of Railway Reservation two-tier
Lets consider that first Person is making Railway Reservation for Mumbai
to Delhi by Mumbai Express at Counter No. 1 and at same time second
Person is also try to make Railway reservation of Mumbai to Delhi from
Counter No. 2
If staff from Counter No. 1 is searching for availability into system & at the
same staff from Counter No. 2 is also looking for availability of ticket for
same day then in this case there is might be good change of confusion
and chaos occurs. There might be chance of lock the Railway reservation
that reserves the first.
But reservations can be making anywhere from the India, then how it is
So here if there is difference of micro seconds for making reservation by
staff from Counter No. 1 & 2 then second request is added into queue. So
in this case the Staff is entering data to Client Application and reservation
request is sent to the database. The database sends back the
information/data to the client.
In this application the Staff user is an end user who is using Railway
reservation application software. He gives inputs to the application
software and it sends requests to Server. So here both Database and
Server are incorporated with each other, so this technology is called as
Client-Server Technology.
The Two-tier architecture is divided into two parts:
1) Client Application (Client Tier)
2) Database (Data Tier)
On client application side the code is written for saving the data in the
SQL server database. Client sends the request to server and it process the
request & send back with data. The main problem of two tier architecture
is the server cannot respond multiple request same time, as a result it
cause a data integrity issue.
1. Easy to maintain and modification is bit easy
2. Communication is faster

1. In two tier architecture application performance will be degrade
upon increasing the users.
2. Cost-ineffective
Three-Tier Architecture:
Three-tier architecture typically comprise a presentation tier,
a business or data access tier, and a data tier. Three layers in the three
tier architecture are as follows:
1) Client layer
2) Business layer
3) Data layer
1) Client layer:
It is also called as Presentation layer which contains UI part of our
application. This layer is used for the design purpose where data is
presented to the user or input is taken from the user. For example
designing registration form which contains text box, label, button etc.
2) Business layer:
In this layer all business logic written like validation of data, calculations,
data insertion etc. This acts as a interface between Client layer and Data
Access Layer. This layer is also called the intermediary layer helps to make
communication faster between client and data layer.
3) Data layer:
In this layer actual database is comes in the picture. Data Access Layer
contains methods to connect with database and to perform insert, update,
delete, get data from database based on our input data.

Three-tier Architecture
1. High performance, lightweight persistent objects
2. Scalability Each tier can scale horizontally
3. Performance Because the Presentation tier can cache requests,
network utilization is minimized, and the load is reduced on the
Application and Data tiers.
4. High degree of flexibility in deployment platform and configuration
5. Better Re-use
6. Improve Data Integrity
7. Improved Security Client is not direct access to database.
8. Easy to maintain and modification is bit easy, wont affect other
9. In three tier architecture application performance is good.
1. Increase Complexity/Effort

Difference between COM and DCOM

History of Component Object Model (COM):

One of the first methods of interprocess communication in Windows
(windows family operating system) was DDE (Dynamic Data
Exchange) that allowed sending and receiving messages in so called
Conversations between applications. This technology was the base
of OLE (Object Linking and Embedding)that in turn was one of the
leading technologies introduced with windows 3.0. Text conversations and
windows messages proved not to be as flexible as to allow sharing
application features in a robust and extensible way. By the time version
3.1 of Windows was released, COM was created as a new foundation, and
OLE changed to OLE2.
Visual Basic introduced the VBX (Package extensions in the form of
dynamically linked libraries) that allowed the creation of objects to be
graphically placed in a form and manipulated by properties and methods.
These were later adapted for use by other language such as Visual C+
+. OLE custom controls (OCXs) would be the replacement for the
widely popular VBX.
From many of these ideas spawned Microsofts first o object-based
framework, OLE, which is the abbreviation of Object Linking and
Embedding. OLE was built on top of dynamic data exchange (DDE) and
designed specially for compound documents. It was introduced with MSWord for Windows and Excel in 1991, and was later included with
Windows, starting with version 3.1 in 1992. An example of a compound
document is a spreadsheet embedded in a MS-Word for Windows
document; as changes are made to the spreadsheet within Excel, they
appear automatically inside the Word document.
In early 1996, Microsoft found a new use for OLE Custom Controls,
expanding their web browsers capability to presents content, renamed
some parts of OLE relating to the internet ActiveX gradually renamed all
OLE technologies to ActiveX, excepts the compound document technology
that was used in Microsoft Office. Later that year, DCOM was introduced
as an answer to CORBA.
Component Object Model (COM):
Component object model is an interface standard for software component
introduced by Microsoft in 1993. It is used to enable interprocess
communication and dynamic object creation in any programming
language that supports the technology. The term COM is often used in the
software development industry as an umbrella term that encompasses the
OLE, OLE Automation, ActiveX, COM+ and DCOM technologies.
COM is a software architecture that allows applications and systems to be
built from the components supplied by different software vendors. It is a
set of binary and network standards that allows any software to

communicate with each other regardless of the hardware, the operating

system, and programming language used for development. COM is not a
Programming language but a specification that defines how components
can communicate with each other.
In a component based system, components interact with each other by
calling methods and passing data. COM ensures that there is a standard
method of interaction between the components. All the COM objects need
to follow these standards when providing the functionality. Standards are
as important to component architecture as they are to any system with
interchangeable parts. For example, the signal that a television or radio
receives is specified in a standards. Without standards, nothing will
function together.
Benefits of COM:
Any Programming language that can create structures of pointers and call
functions through pointers can create and use components objects.
Components can be implemented in a number of programming languages
and can be used for client software written in different programming
languages. This is because COM provides a binary and not source code
standard. This is the fundamental benefit of COM over object oriented
Distributed Component Object Model (DCOM):
DCOM is a model as COM but is specially designed for distributed
applications. While there is a need of using the applications as distributed
then DCOM becomes in picture.
Distributed Component Object Model is proprietary Microsoft technology
for communication among software components distributed across
networked computers. DCOM, which originally was called Network OLE,
extends Microsofts COM, and provides the communications substrate
under Microsoft COM+ application sever infrastructure. It has been
deprecated in favour of Microsoft .Net.
In terms of the extensions it added to COM, DCOM had to solve the
problem of

Marshalling: serialize and de-serializing the arguments and

returns values of methods calls over the wire.
Distributed garbage collection: ensuring that references held
by clients of interfaces are released when, for example, the client
process crashed, or the network connection was lost.

Black-Box Frameworks
Black-box frameworks consist of concrete and ready-to-use classes and
services. Although developers can extend the existing framework
components to achieve customization in a black-box framework, they
more often adapt the framework by combining a number of components
to create the desired result. A black-box framework may contain many
common spots, and it employs the composition approach to enable its hot
spots. Figure 2-8 illustrates a black-box framework.

Figure 2-8. A black-box framework

Because of the composition approach in a black-box framework, it
provides a greater range of flexibility than that of a white-box framework.
Developers can pick and choose different components to achieve specific
application requirements with infinite possibilities. Unlike white-box
frameworks, where a developer often needs to know the detailed
implementation of the framework component for adaptation, black-box

frameworks consist of components that hide their internal

implementation. Adaptation of such components is done through welldefined interfaces, such as certain public methods and properties.
Developers need to be familiar with only these public members in order to
use the framework.
Compared with white-box frameworks, black-box frameworks are harder
to develop. Encapsulating business-domain expertise into components
that are generic enough to be used in many application scenarios is not
an easy task. Encapsulating too much will lead the domain expertise
inside the component becoming less fit in many application scenarios.
Encapsulating too little will lead to developers having to work with a large
number of components and more complex coordination logic in order to
build the application.
The extra flexibility of black-box frameworks doesnt come for free. When
using a black-box framework, developers must implement their own
process flow and coordination logic needed to link multiple components
together. Because developers now control how and what components
need to work together, they are responsible for the extra workload on
"wiring" the components together along with the extra flexibility provided
by the black-box framework. In contrast, whitebox frameworks
automatically handle the "wiring" for you in the template methods of their
Although developers dont have to deal with learning the internal
implementation of the abstract class as they do with a white-box
framework, they do have to be familiar with a greater number of
components and their use when using a black-box framework, since the
developer now has more "moving" parts to deal with in order to combine
them into something they need.
When developing an application framework, there is no requirement that
the framework contains either all abstract classes or all concrete classes.
In fact, neither pure white-box nor black-box frameworks are practical in
the real world. Having a mix of both the inheritance approach and
composition approach gives you the freedom to use whatever approach is
best for the design of a particular component. By mixing white-box
frameworks and black-box frameworks, you effectively create a gray-box