I think this terminology is left-over from Sun's Suntone architecture. In this concept, Sun organized a design on three dimensions: Layers, Tiers, and Systemic Qualities.
Systemic qualities are the non-functional requirements, such as the big seven topics tested on the SCEA exam: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security.
Tiers are major logical and physical components through which processing passes, such as client, web server, app server, database, etc.
Layers are design components grouped by level of abstraction. The bottom layer might be hardware. The operating system might be a layer on hardware. Sharable libraries might be a layer on that, then the app server on that, then EJBs on top.
posted 10 years ago
Thanks Keith, now i am much more clear with tiers and layers,
just one question any example of logical tiers as i understand client, web server, app server, database are physical tiers.
posted 10 years ago
Well, a full JEE5 app server would contain a servlet container and also an EJB container. Physically they'll be in the same box, but it may be useful to consider them separate tiers.
There's no official list of tiers, so you can decompose your design in any way that would be useful. Maybe it's important for a design to have a cache between the application code and the database. It might be useful to consider the cache as a separate tier, whose physical location is determined later.
I know this is an old topic but it still applies today. I am reading the book OCM JavaEE 6 Enterprise Architect Exam Guide and the same distinction is made for layers and tiers.
Layers are more physical than logical (from Application to physical hardware) while tiers are the logical components (Business, Presentation etc). How are these concepts treated in the exam?
Should I ignore the definitions?
What a show! What atmosphere! What fun! What a tiny ad!
Two software engineers solve most of the world's problems in one K&R sized book