As the multitasking started back in 1960’s, it was easy to access a single computer (server) form a client side. This client server communication was working fine till the number of clients accessing the server was not increased. When the number of clients increased, the distance between the client and the server also increases. In this client server computing system, the application and the databases were integrated. The trend of client server communication started rapidly in 1990’s. E-commerce moved in and more investment was done in this field. It led the companies to think about the development of client server architecture so that the communication is made fast and reliable (GSA). The main idea behind this was the separation of application code from the database code. This led to the creation of client server architecture, which means that separate application servers were being deployed that made the development of web applications easier. This is called N-tier architecture. Tier means the layers and N represents the number of tier in the client server architecture.
2. What is N Tier Architecture?
There are 3 basic types of client server architecture, 1 Tier, 2 Tier and 3 Tier or N Tier architecture. IT is seen that mostly 3 layers are used in client server architecture so 3 Tier architecture is referred as N-Tier architecture (Marston, 2012). It seems that any client server architecture can be made by using the number of tiers. However, it should be noted that tier in client server application should have some of the following characteristics. If the tiers do not have the following properties then the client server architecture will be of no use.
Each tier in N Tier architecture should be developed separately and it can be developed by different teams of developers as well (Marston, 2012). Tier should be able to be joined to the other one so that it can form a unit of application by joining all tiers together. In N Tier architecture, each tier should present different from the other tiers. Important aspect of N tier architecture is that, each tier must possess some boundary from the other tiers. No tier should be capable of operating individually. It should operate by interacting with other tiers in the architecture. If there is a need to change a tier with its alternate then it must be an easy process.
Figure 1. (3 Tier Architecture)
3. Why use N Tier Architecture
N tier architecture has made it easier to divide the application processing. In the past, the applications were hosted only on one server it could decrease the performance. With the use of N Tier architecture, the applications can be distributed over different machines (Kambalyal). It means the data that is non critical can be processed on the client machine while the critical data is processed over servers. It is easy to optimize the servers for application processing and database processing. It also helps in the reduction of data replication of the application. IT means that the data is stored mainly on the servers rather than on each machine.
4. N Tier Architecture
It should be very clear that it is not possible to consider an application and divide it into different parts and then call each part a Tier. As discussed earlier that each tier should posses some of the properties to work it perfectly with the client server architecture. However, each part of the application needs to be worked on to identify the each code and its proper functionality. Then the parts of the application can be considered to be a tier. While talking about N Tier architecture, it is meant that there are maximum 3 tiers in client server architecture. The three tiers in N Tier architecture are
- Presentation Logic
- Business Logic
- Data Access Logic
The presentation logic in N tier architecture is the client side. The client machine is used to present the data that is requested by the user. The request is sent by the user to the server. The request then brings the requested data from the server. The information or the data fetched from the server needs to be presented to the client. It is the GUI interface that is presented to the client (IncrediCube, 2010). The information is taken as content that is in structured form.
4.2. Business Logic
The second tier in N Tier architecture is the Business Logic. It is the second and middle tier in the architecture. It is the middleware and is a web application mostly. The function of business logic is to perform web application functionality (Marston, 2012). It does not store any data. It gets the request from the client side, and then decides the path for sending request to fetch data from the server. The operations in the Business Logic are automatic and are done in the background.
4.3. Data Layer
Data layer is the third tier in N tier architecture. Its main function is the storage of data and it is on the server side. The data is stored in it and it can be accessed from the request of Business Logic. The data is accessed by the use of Data access layer within the Data layer. Data access handles the operations like interaction with the database and handling I/O operations as well. Query and storage performance are made in the data layer.
The following diagram shows the proper functioning of N Tier architecture.
Figure 2. Request Response In 3 Tier Architecture
The company is looking for a solution to its order system. The company wants a system that could manage its customers and their orders. For this purpose, there are two solutions that can be applied to solve the problem of the company.
5.1. Solution 1
The first solution is the traditional client server architecture that is based on 3 Tier. It is an N tier architecture that will be the best for the company. In this architecture, the company will be easy to handle its customers and their orders. The customer will be able to send its request to the business logic which in term will forward the request to database with data access layer. This solution will be applicable to the recent situation of the company. This architecture can handle number of customers, as the requests will be first sent to the business logic that is application server. This 3 Tier architecture can hold 2000 to 3000 customers at a time (Howitz, 2012).
Figure 3. 3-Tier Client Server Architecture
5.2. Solution 2
The second solution that may be applicable to the company is the distributed client server architecture. It is also an N tier architecture however the resources are increased in the Business Logic. With this increased number of resources in Business Logic, it can handle huge number of customers at a time. The reason is that, the requests are sent to the different servers depending on the availability. This 3 Tier architecture can hold more than 3000 customers at a time without affecting the performance of the system.
Figure 4. 3-Tier Client Server Architecture
5.3. Case Study
The company has recently around 1900 customers who are placing their orders. The company has option to select from the above mentioned solution. The best solution that the company should adopt at the recent time is Solution 1. The reason behind this selection is that there are very less chances that 1900 customers of the company will be accessing their database at the same time. Incase if all the customers access the database at the same time, then it is clear the N Tier architecture can handle 2000+ customers at the same time with the solution provided in the Client Server Architecture. It means that the performance of the server will not be affected as well (Howitz, 2012). However, if in the future the number of the customers of the company increase, then the company can move to solution 2 by distributing the work to different servers. It will cost them a lot. By considering the recent scenario, it is a local company with limited number of customer.
Compare and contrast the design and purpose of each tier in an n-tiered system architecture:
This layer is responsible for the activities between the user and the application. This layer does not have the access to the database directly. The content must be in usable form for the client so that he can easily interact with the information being displayed. Different users or clients can send request to the server at the same time to fetch information. The presentation Tier or layer is developed by using HTML, CSS and sometime Java scripts and some elements of User Interface. The presentation logic is handling only how the content should be displayed to the client. During this communication, the middle tier is made thinner. The presentation logic is very important because the information that is fetched from that database needs to be clearly presented to the client. If the information is not displayed properly then there will be no use of this information. Internet browser is an example of the client that displays the information.
The business logic is very important in N Tier architecture. The business logic receives the requests from the client. It holds the business logic and database logic. The business logic then manipulates the requests and forwards it to the database. From database it brings the information to the business logic. This tier manipulates the data and transforms it into the information. The business logic handles the incoming and sending of the information. It handles the requests from the client side and then sends it to the server for fetching data. Once the data is retrieved from the server, it transforms it into the information and passes it to the tier one that is Presentation Logic. This tier handles the transfer of data between the client and the server.
Data layer is the third tier in N tier architecture. Its main function is the storage of data and it is on the server side. Data related operations are mostly done in this tier. The data is stored in it and it can be accessed from the request of Business Logic. The data is accessed by the use of Data access layer within the Data layer. Data access handles the operations like interaction with the database and handling I/O operations as well. Query and storage performance are made in the data layer.
If we talk about the n tier architecture, then Business Logic is the most important tier. The reason is that it makes the client server architecture run smoother. The Business is the linker between the presentation and the data layer. It makes the communication between them efficient. It also boosts the performance of the architecture. If the Business logic tier is eliminated from the architecture, then it will be 2 tier architecture. The business logic tier gets the command from the client, and then this tier manipulates the data. The data is then fetched from the database, and then the data is presented to the client. It distributes the load of the application and the client side is thin. There is only few processing going on the client side.
- Grafixia Software Architecture. Client-Server / N-Tier Systems. Retrieved 26th March 26, 2013 from http://www.dossier-andreas.net/software_architecture/tiers.html
- Howitz, C. (2012). What Is 3-Tier(Multi-Tier) Architecture And Why Do You Need It?. Retrieved 26th March 26, 2013 from http://blog.simcrest.com/what-is-3-tier-architecture-and-why-do-you-need-it/
- IncrediCube (2010). What is a 3-tier system architecture? Retrieved 25th March 2013 from http://www.incredicube.com/what-is-a-3-tier-system-architecture
- Kambalya, C. 3-Tier Architecture. Retrieved 25th March 2013 from http://channukambalyal.tripod.com/NTierArchitecture.pdf
- Kothari, V. (2009). CLR Stored Procedure in Linq based n-tier architecture. Retrieved 26th March 26, 2013 from http://dev.digi-corp.com/2009/09/clr-stored-procedure-in-linq-based-n-tier-architecture/
- Marston, T. (2012). What is the 3-Tier Architecture? Retrieved 25th March 2013 from http://www.tonymarston.net/php-mysql/3-tier-architecture.html#3-tier-benefits
- Howitz, C. (Author) (2012). What Is 3-Tier(Multi-Tier) Architecture And Why Do You Need It?, [Photograph]Retrieved 26th March 26, 2013 from http://blog.simcrest.com/what-is-3-tier-architecture-and-why-do-you-need-it/
- IncrediCube (2010). What is a 3-tier system architecture? [Photograph], Retrieved 25th March 2013 from http://www.incredicube.com/what-is-a-3-tier-system-architecture
- Kambalya, C. (Author). 3-Tier Architecture. [Photograph] Retrieved 25th March 2013 from http://channukambalyal.tripod.com/NTierArchitecture.pdf
- Marston, T. (Author). (2012). What is the 3-Tier Architecture? [Photograph], Retrieved 25th March 2013 from http://www.tonymarston.net/php-mysql/3-tier-architecture.html#3-tier-benefits