Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:ad:patterns:tier_strategy [2019/03/24 12:02] (current)
Line 1: Line 1:
 +# IT:​AD:​Patterns:​Tier Strategy #
  
 +
 +
 +<callout type="​Navigation"​ class="​small">​
 +* [[../​|(UP)]]
 +{{indexmenu>​.#​2|nsort tsort}}
 +
 +
 +
 +
 +---
 +
 +
 +</​callout>​
 +
 +
 +<panel title="​Summary">​
 +
 +The Tier Strategy is one that uses physically different servers to address different concerns of the whole application.
 +
 +
 +</​panel>​
 +
 +
 +## Description ##
 +
 +It's not a new concept, but years later, there'​s still no end of confusion for even seasoned enterprise developers as to what is a 3 tier application,​ as compared to an N-Tier (ie 4 or more tiers) application.
 +
 +Here's a break down of what layers go within 1, 2, 3, 4 tier architectures.
 +
 +
 +### 1 Tier ###
 +
 +
 +#### Desktop App ####
 +
 +![](https://​dl.dropbox.com/​u/​11851202/​PUBLIC/​SKYS/​Posted/​IT/​AD/​Design/​Patterns/​Tiers/​1.Tier.png)
 +
 +* Presentation Layer
 +* Application/​Business Logic Layer
 +* Data Access Layer
 +* RDBS/​Database
 +
 +Considerations:​
 +* Defunct concept really as desktop apps are defunct. Although could argue coming back a bit with some CellPhones that don't require services. ​
 +
 +#### Web ####
 +
 +Not Applicable (can't do a single tier web site).
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +### 2 Tier ###
 +
 +
 +#### Rich Client/ Data Server Scenario: ####
 +
 +![](https://​dl.dropbox.com/​u/​11851202/​PUBLIC/​SKYS/​Posted/​IT/​AD/​Design/​Patterns/​Tiers/​2.Tier.b.png)
 +
 +* Rich Client Tier (Thick Client)
 +    * Presentation Layer
 +    * Application/​Business Logic Layer
 +    * Data Access Layer
 +* Server Tier (Application Logic/Data)
 +    * RDBS/​Database
 +
 +Considerations:​
 +
 +* Rich Clients have many scalability and maintenance issues.
 +* It really is a rather poor design, luckily more or less defunct now.
 +
 +
 +####Web App:####
 +
 +![](https://​dl.dropbox.com/​u/​11851202/​PUBLIC/​SKYS/​Posted/​IT/​AD/​Design/​Patterns/​Tiers/​2.Tier.png)
 +
 +* Client Tier
 +   * Browser
 +* Server Tier (Web Server, serializing to Client Browser)
 +    * Presentation & Application Service Facade Layer
 +    * Application/​Business Layer
 +    * Data Access Layer
 +    * RDBS/​Database (in a different process) ​
 +
 +Considerations:​
 +    * Pros:
 +        * High throughput between app and db (as on same server)
 +    * Cons:
 +        * Security: Insecure as front server has higher chance of being hacked and/or injected sql that directly accesses db.
 +        * Deployment: Db must be cloned per server.
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +### 3 Tier ###
 +
 +### Client/​Server ###
 +
 +![](https://​dl.dropbox.com/​u/​11851202/​PUBLIC/​SKYS/​Posted/​IT/​AD/​Design/​Patterns/​Tiers/​3.Tier.png)
 +
 +* Client Tier 
 +    * Browser
 +    * RIA
 +* Server Tier (Web Server, serializing to Client Browser)
 +    * Presentation & Application Service Facade Layer
 +    * Application/​Business Logic Layer
 +    * Data Access Layer
 +* Data Tier 
 +    * RDBS/​Database (in a different process) ​
 +
 +Considerations:​
 +
 +* Typical WebApp, with moderate Security requirements
 +    * Domain is in same network as Presentation
 +        ​
 +
 +
 +
 +
 +
 +
 +## N Tier ##
 +
 +
 +
 +#### Web ####
 +
 +![](https://​dl.dropbox.com/​u/​11851202/​PUBLIC/​SKYS/​Posted/​IT/​AD/​Design/​Patterns/​Tiers/​4.Tier.png)
 +
 +* Client Tier 
 +    * Browser
 +    * RIA
 +* Server Tier (Web Server, serializing to Client Browser)
 +    * Presentation & Application Service Facade Layer
 +* Server App Logic Tier
 +    * Application/​Business Logic Layer
 +    * Domain Layer
 +    * Data Access Layer
 +* Data Tier 
 +    * RDBS/​Database (in a different process) ​
 +
 +Considerations:​
 +* Higher security:
 +    * Access between tiers can be firewalled specifying which machines are allowed through.
 +* Higher Cost:
 +        * -
 +        * additional Latency.
 +        * More mapping
 +
 +
 +
 +
 +## Resources ##
 +
 +
 +* [http://​en.wikipedia.org/​wiki/​Multitier_architecture](http://​en.wikipedia.org/​wiki/​Multitier_architecture)