views:

3388

answers:

4

I've seen quite a few developer job postings recently that include a sentence that reads more or less like this: "Must have experience with N-Tier architecture", or "Must be able to develop N-Tier apps".

This leads me to ask, what is N-Tier architecture? How does one gain experience with it?

A: 

It's my understanding that N-Tier separates business logic, client access and data from each other using separate physical machines. The theory is that one of them can be updated independently of the others.

GregD
doesn't have to be separate machines...
alchemical
+1  A: 

It's a buzzword that refers to things like the normal Web architecture with e.g., Javascript - ASP.Net - Middleware - Database layer. Each of these things is a "tier".

1800 INFORMATION
+21  A: 
eed3si9n
+1 for a pretty picture :p
Davy8
"3-tiers" and "N-tiers" is there a difference?
chakrit
It depends on how you count "tiers" (logical, physical, etc), but you can easily have more than 3 process involved to write an app. UI, UI platform (like Eclipse RCP), Web Services, BLL, DAL, Database, Authentication Services, Reporting Services, Analytical Services...
eed3si9n
@eed3si9n I see.
chakrit
@chakrit: In my time (I'm old) more that 2-tiers (client-server) was automatically referring to n-tier.
Eduardo Molteni
+4  A: 

It's based on how you separate the presentation layer from the core business logic and data access (Wikipedia)

3-tier means Presentation layer + Component layer + Data access layer. N-tier is when unneccessary layers are added beyond these three and it's labeled with a buzzword so it doesn't seem like your architects are a bunch of crack monkeys. I say this based on the N-tier architecture I have to work with.

tsilb
actually if one of those tiers is hosted by a remote party, for instance a payment processor, that tier may not be so "unnecessary"
Zak