Coding as a Craft
  • Introduction
    • Learning objectives
  • Your first website
  • ATM Challenge - Ruby basics
    • Step 1
    • Step 2
    • Step 3
    • Step 4
    • Step 5
    • Step 6
    • Step 7
    • Step 8
    • Step 9
    • Step 10
  • Library challenge - Advanced Ruby
    • Important topics
  • Javascript Introduction
    • Variables, objects and arrays
    • Comparisons and Manipulations
    • Javascript Sample Problems
    • Defining Functions
    • Prototypes & Classes
    • Miscellaneous
  • BMI Challenge - JavaScript basics
    • Jasmine - Set up
    • First tests
    • The calculator
    • The Document-Object Model
    • Web interface
    • Acceptance tests
    • Moving on
  • Fizz Buzz in JavaScript
    • NodeJS
  • Checkout challenge
  • Open Weather Challenge
  • SlowFood challenge - OO & TDD
    • Step 1 - Setting up the project
    • Step 2 - Focus on the user experience
    • Step 3 - Entity Relationship Diagrams
    • Step 4 - Implementing the core features
    • Step 5 - Working with the database
    • Step 6 - Working with BDD
    • Extra - Setting up RSpec & Cucumber
  • Ruby On Rails introduction
  • Static Website with Middleman
    • Week lab
    • Setup Middleman
    • HAML - HTML abstraction markup language
    • SASS
    • Accessing data
    • Partials
    • Deploy to Github pages
  • BDD with Rails
    • Exercise - Implement extra features
  • Rails Messaging
    • Working with Legacy Code
    • Tips and Tricks
  • Mid Course Project
    • Project Schedule
  • Going mobile with Ionic
    • Setup
    • Javascript Modules
    • Introduction to Angular
    • Getting to Know Ionic - BMI Challenge
    • Ionic unit and e2e testing
  • The Cooper test challenge
    • The logic
    • The Back-end
    • The Client
    • Connecting the dots
    • Saving and retrieving data
    • Display charts
    • Wrapping up
    • Results tables
  • News Room Challenge
    • Main features
    • Design Sprint
    • Pivotal Tracker
    • Guides
      • i18n with Ruby on Rails
      • Rails 5.2 Scaffold
      • Attachments with Active Storage
      • Encrypted Credentials in Rails 5.2
      • Role-Based Authorization
      • Rendering JSON objects in Rails
      • Testing Ionic Applications
  • SlowFood API - API first or second?
  • Extras
    • Naming Standards
    • Classes vs Modules
    • Code structure
    • Bower
    • Code Review Instructions
    • About README's
    • MVC
    • Three-Tier Architecture
    • Rails Scaffold
    • Tailwind css with Rails
  • Career
    • General Personality
    • Agile Mindset
    • Basic Ruby
    • Advanced Ruby
    • Databases
    • SOLID Principles
  • Sinatra & SlowFood
    • Sinatra - an introduction
    • Start small
    • More Hello World
  • Ember
    • Hello World
Powered by GitBook
On this page
  • Structure
  • Presentation tier
  • Logic tier
  • Data tier
  • Benefits
  1. Extras

Three-Tier Architecture

Three-tier architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located on a physically separate computer.

Three-tier application architecture is characterized by the functional decomposition of applications, service components, and their distributed deployment, providing improved scalability, availability, manageability, and resource utilization.

Structure

Using this architecture the software is divided into 3 different tiers: Presentation, Logic (also refereed to as "business logic", "data access tier", or "middle tier"), and Data. Each tier is developed and maintained as an independent tier.

Presentation tier

This is the topmost level of the application. The presentation layer provides the application's user interface (UI). This communicates with other tiers by outputting results to the browser/client tier and all other tiers in the network.

Logic tier

The Logic tier controls an application's functionality by performing detailed processing. Logic tier is where mission-critical business problems are solved.

Data tier

Here information is stored and retrieved. This tier keeps data neutral and independent from application servers or business logic. Giving data its own tier also improves scaleability and performance.

Benefits

  • Maintainability - Since each tier is independent of the other tiers, updates or changes can be carried out without affecting the application as a whole.

  • Scalability - Because tiers are based on the deployment of layers, scaling out an application is reasonably straightforward.

  • Flexibility - Because each tier can be managed or scaled independently, flexibility is increased.

  • Availability - Applications can exploit the modular architecture of enabling systems using easily scalable components, which increases availability.

PreviousMVCNextRails Scaffold

Last updated 7 years ago