Woodstock Blog

a tech blog for general algorithmic interview questions

[Design] Multilayered Architecture

First Word

A multilayered software architecture is a software architecture that uses many layers for allocating the different responsibilities of a software product.

Layers

  1. Presentation layer
    1. UI layer, view layer
    2. presentation tier in multitier architecture
  2. Application layer
    1. also called service layer/GRASP Controller Layer
  3. Business layer
    1. also called business logic layer/domain layer
  4. Infrastructure layer
    1. data access layer/persistence layer
    2. logging, networking, and other services which are required to support a particular business layer

Conventions

Application layer (or service layer) is sometimes considered a sublayer of business layer.

If there’s no explicit distinction between first 3 tiers, then it’s a traditional client-server(two-tier) model.

The application/business layers can, in fact, be further subdivided to emphasize distinct responsibility (eg. MVC).

Sometimes there’s business infrastructure layer(BI), located between the business layer and infrastructure layer.

Infrastructure layer can be partitioned into different levels (high-level or low-level). Developers focus on only the persistence capabilities, therefore only talk about persistence layer or data access layer.