What are the different tiers of a 3-tier Web-based system?

 

Most of the traffic on the Internet is web-based and web-based applications are predominantly client-server.  Client is usually a web browser and server is usually referred to as the Web server.  Example of a browser is Microsoft Internet Explorer and example of a Web server is Apache.

 

Applications that are written in HyperText Markup Language (HTML) have limited functionality.  Static web pages are presented using HTML solely for marketing purposes with no or little interactivity.  Doing business on line requires extensive functionalities, not only in the form of comprehensive interactivity but also the need for centralisation of data.  For example in order to enable a customer to shop on line we need to provide for presentation of web content in accordance to the customer's requirements and allow the customer to register and login and pay online.

 

Generally computing applications consist of three different and distinct types of functionalities.  

 

 

Data Management

 

Functional Logic

 

Presentation Services

 

 

 

 

 

A stand-alone computing application is one when all these three functionalities are on one computer.  For example an Access database application that runs on your PC at home.  Client-server applications are when we have separated these three functionalities and distributed them across two or more computers.  With this type of architecture one has to decide on the number of computers (or tiers) and how to distribute the three functions among the tiers.

 

What are the different types (the various ways we can distribute) of client-server architecture?

 

 

 

Specialisation- Separation of the functionalities means that a tier could specialise in what it does.  For example presentation layer in a 3-tier client-server architecture may only be concerned with interaction with the user and not the data management or the business logic.  Similarly the other two tiers may well be highly specialised.  This means that alterations to the presentational functions at the front -end should not effect the functions at the other two tiers.

 

Openness (Design flexibility)- Separation of the functions across a number of tiers could also mean that these tiers are technology and platform independent.  Consequently different technologies and programming languages can be used at different tiers, hence a greater choice of components and higher flexibility.

 

Reliability/Availability/Scalability -  By distributing system functionality across a number of tiers,  through appropriate duplication high availability and robustness of the system can be ensured.

 

 

Left-Right Arrow: ODBC, JDBC
DCOM, CORBA
Left-Right Arrow: TCP/IP, HTTP, HTML                                                                            

 

1st tier- Web browser                                                            2nd tier- Web server                               3rd tier- Data storage

 

Typically, web-based systems are 3-tier.  The 1st tier is the presentational  tier and is usually a Web browser.  2nd tier is almost always associated with a Web server.  3rd tier is usually a database.  The separation explained here refers to a situation when we have a thin client.  As such drawing definitive lines for the functionality of the tiers  is sometimes unrealistic.  This is in particular the issue when we have not so thin clients or when we have fat clients.  Some of the business logic for example could be attributed to the 1st tier under these circumstances.

 

It is also important to note that Web application architecture sometimes is referred to as multi-tier.  In effect we could have more than 3-tiers in circumstances when the Web server requires to access one or more application servers for specialised services.

 

What are the thin and fat clients?  How do these effect the architecture?  What does the architecture look like?

 

 

 

 

 

 

 

Food for thought:

How do you decide on the functionalities at various tiers?

Is there any advantage in increasing the number of tiers to say 4?

What are middle tiers and what are their functionalities, and advantages?