First Generation / 2-Tier Web Systems
Modern 3 -Tier and N - Tier Architecture
In the 2 -tier architecture, it was difficult to separate presentation from business logic with the growth of websites. Due to this, applications were not scalable and maintainable. Moreover, having only one web server imposes a bottleneck; if there is a problem on that server, then the users cannot access the website (availability). Therefore, this simple client-server model was expanded first to the 3 -tier model and then to the N-tier model. To get quality attributes, such as security, reliability, availability, scalability, and functionality, application server has been introduced wherein most of the software has been moved to a separate computer. Indeed, on large websites, the application server is actually a collection of application servers that operate in parallel. The application servers typically interact with one or more database servers, often running a commercial database (Fig. 1).Web and application servers often are connected by middle-ware, which are packages provided by software vendors to handle communication, data translation, and process distribution. Likewise, the application-database
servers often interact through middle-ware. The web server that implements CGI, PHP, Java Servlets, or Active Server Pages (ASP), along with the application server that interacts with the database and other web objects is considered the middle tier. Finally, the database along with the DBMS server forms the third tier.
In the N-tier model, there are additional layers of security between potential crackers and the data and application business logic. Separating the presentation (typically on the web server tier) from the business logic (on the application server tier) makes it easier to maintain and expand the software both in terms of customers that can be serviced and services that can be offered. The use of distributed computing, particularly for the application servers, allows the web application to tolerate failures, handle more customers, and allows developers to simplify the software design.