Category: Software Engineering
Associative EntityDB
Three-Tiered Architecture
7-2 Assignment Three-Tiered Architecture
John C. Aghadiuno
Nasser Halwani
8/3/2020
Table of Contents
- Benefits 3
- Presentation Tier 4
- Application Tier 4
- Data Tier 4
- Required Steps 4
- Assessment 4
- Proof of Concept 5
- Data Migration. 5
- Application Migration. 5
- Finalize. 5
- Optimize. 5
- Timeframe. 5
- References 6
Benefits
The three-tier architecture is a client-server software architecture pattern in which the presentation layer or user interface, business logic and storage are separated and maintained as independent modules on separate platforms (Three-Tier Architecture, 2020).
This architecture is the most vendor-neutral design pattern that allows any one of the modules to be upgraded or replaced independently.
Because of this design, which is not physical but logical, they could run in distributed environments, on different servers that may or may not be geographical dispersed.
The primary benefit of this type of architecture is that independence in updating and replacing the specific module or parts of the application without affecting the entire system.
Hardware and software can be upgraded or replaced. Entire servers can be changed. Additional machines can be added for storage as the database and business grows.
Flexibility is also associated with the three-tier architecture. It provides enterprises with the flexibility to adapt to changing and evolving technologies with minimal impact on the entire system.
Scalability is another great advantage of the three-layer architecture. Because the different layers are separated and function autonomously of each other, you can scale each independently depending on the need at any given time (3-Tier Architecture: A Complete Overview, n.d.).
For example, each layer can be scaled to meet requests as the business grows. This allows you to load balance each layer independently, improving overall performance with minimal resources; and thereby reducing costs.
Additionally, the independence created from modularizing the different tiers gives more deployment options. For example, the web servers may be hosted in a public or private cloud, while the application and data layers may be hosted onsite. Or in any combination thereof.
Another advantage of these disparate layers is that they also increase reliability and availability by hosting distinct parts of the application on different servers and utilizing cached results. “With a full stack system you have to worry about a server going down and greatly affecting performance throughout your entire system, but with a 3-layer application, the increased independence created when physically separating different parts of an application minimizes performance issues when a server goes down” (3-Tier Architecture: A Complete Overview, n.d.).
Here is a brief overview of the 3 separate layers typically involved.
Presentation Tier
The presentation tier is the client facing, front end layer. It typically provides the user interface through which the client interacts with the system. This user interface is a public interface, accessible through a web browser or web-based application and which feedback and information useful to the end user. This tier is often built on web technologies using client-side programming languages such as HTML, JavaScript, CSS, etc.
Application Tier
The application tier contains the functional business and programming logic that drives an application’s core capabilities. This player is often written in high-level, object-oriented, procedural programming languages such as Java, .NET, C#, Python, C++, etc.
This layer is responsible for processing information from the data layer and sending to the presentation layer where it is interpreted to the client in a way they understand, and vice versa.
Data Tier
The data tier comprises of the DBMS, data storage system and data access layer. Data can be accessed by the application layer via API calls and other open standard protocols.
Data tier controls where the information is stored. This means that it is the layer that runs a relational database management system on a database server or a mainframe and contains the computer data storage logic. The data tier keeps data independent from application servers or processing logic (application layer) and improves reliability, scalability and performance (Marinescu, 2018).
Required Steps
Creating and moving an existing architecture to a new one is not as easy as it appears. It is not as simple as measuring potential hardware expense with pricing for servers and storages. A multitude of options must be taken into consideration (Varia, 2010).
The steps needed to convert and migrate to a 3-tier architecture would include the following phases.
Assessment
This phase will include a financial assessment of the costs involved, as well as other necessary assessments such as security and technical assessments. We would also need to identify the available human and technical resources available as well as tools that will be readily available and others that will need to be built.
We would also identify any gaps, if any, between current architecture and the new architecture, etc.
Proof of Concept
During this phase, a testing and development architecture would be built as proof of concept. This will be used to test existing software system and build confidence. We would also use this phase to mitigate risks by validating the proposed architecture.
Data Migration
This phase would involve moving data to the data layer of the new architecture once it is ready.
Application Migration
Applications will be moved next in this phase, as well as the services and tools needed to support them.
Finalize
During this phase, we would consolidate our system, leverage available services, tighten security, automate productivity, and add other services that might be needed to support the architecture in a production environment.
Optimize
The final phase will be used for optimizing performance and usage, improving efficiency, decompose database if necessary or re-engineer application, and then implement monitoring services.
Timeframe
- Assessment: 4 weeks
- Proof of Concept: 8 weeks
- Data Migration: 2 weeks
- Application Migration: 2 weeks
- Finalize: 3 weeks
- Optimize: 1 week
Total projected time from start to finish: 5 months.
References
3-Tier Architecture: A Complete Overview. (n.d.). Retrieved from Logi Analytics, Inc: https://www.jinfonet.com/resources/bi-defined/3-tier-architecture-complete-overview/
Three-Tier Architecture. (2020, April 23). Retrieved from Techopedia: https://www.techopedia.com/definition/24649/three-tier-architecture