I just came across the following sentence:
As the industry has moved from a three tier model to n-tier models, the object relational impedance mismatch has become more prevalent.
But I can't find a concise explanation of the difference between three tier and n-tier. I know what three tier is, and I assume n-tier just adds one or more tiers. I'm just not sure what these additional tiers would be. If anyone has a short explanation or simply a good link, that would be much appreciated.
hi pls check this link, so u can get good idea regarding this
http://msdn.microsoft.com/en-us/library/ms973829.aspx
Where is that quote from? What industry are they referring to? I would have to imagine that this has something to do with SOA because that is the only thing that makes sense for this kind of statement.
Most people that I have heard who make this kind of statement believe that in a service-oriented domain each service is somehow its own tier. I disagree as most of the time these disparate services can be logically grouped into the common three tiers anyhow (presentation, logic, and data). But again, its all pretty subjective.
Without seeing the sentence in context, I assume it is referring to the explosion in services and middleware.
n-tier implies n is any number - when n=3 then it is the same as n-tier.
The usual definition of 3-tier is presentation, logic & data (in any order), and yes, SOA can confuse the neophyte because sometimes it sits in the data tier, sometimes the logic tier and sometimes both logic & data tiers.
The whole subject is...subjective. If you need some tiers then call it n-tier - if you know that n=7 then call it 7-tier, or n-tier.
If we looked at tiers like being layers of a cake; each layer would have it's own ingredients and do it's own things. The tiers of each application interact with only the tier above it, or below it.
3-tier means the cake has 3 layers. Usually it's data at the bottom, then an application logic tier (PHP/ruby/etc), and then a presentation tier at the top (html)
Having an n-tier architecture means you design something multiple layers layer to it. The number of layers you have will depend on how you decide to make it.
It seems to make a lot more sense with larger, or web applications.
I usually end up with a 5 tier application. Each tier can only interact with the one above it or below it. This can provide fantastic extensibility and standardization across your application.
Client Tier
Web Browser
Presentation Tier
Render the HTML - Coldfusion/Flash/Ruby/PHP,etc.
Business Logic Tier
Run the processes and calculations as needed - Coldfusion/Flash/Ruby/PHP,etc.
Data Integration Tier
(Queries from my Development Language, Stored Procedures, etc.)
Data Tier
(Database - MySQL, etc)
This Wiki-book chapter on application architecture is a straightforward guide to layers, tiers, and deciding what you need to use.