Talk:Multitier architecture

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Confusion between layers and tiers[edit]

I have to say this article is quite poorly written. The author(s) have confused layers (logical decoupling) and tiers (physical decoupling) shown through conflicting statements throughout the narrative. 5.198.125.143 (talk) 20:09, 24 February 2014 (UTC)[reply]

Interpretation of MVC Is Inaccurate[edit]

The article states that "However, the MVC architecture is triangular: the view sends updates to the controller, the controller updates the model, and the view gets updated directly from the model." However in many MVC frameworks, notably web frameworks like Django, the view never directly communicates with the model. The communication always goes through the controller. Derek Chiang (talk) 00:06, 24 January 2013 (UTC)[reply]

Hahaha, I just wanted to say something similar: The authors didn't understand MVC. Because MVC isn't the same as the Hardware (Tier) Architekture. How to explain? Well, the model is the data structure, not the database itself. The controller is the logical controller of the application. And the view is the code describing the GUI. The reality is more complicated: Most webservers generate the GUI code on server, so that's a logical view. And many websites use memcached, these are logical models. It's much easier if you stick up to the fact, that "tiers" are just hardware, i.e. client, application server, cache server, data base. So don't mix hardware and software (altough many IT people do, that's sad). Anyhow, updating the view direct out of the model is usually a object oriented Java thing (a strategy which I personally dislike anyway) and won't work in request oriented web applications. 178.197.232.25 (talk) 23:46, 1 March 2013 (UTC)[reply]

Not a 'Software Design Pattern'[edit]

It is an Information Technology Architecture Pattern but it is NOT a software design pattern, it includes much more including platform infrastructure, hardware and connectivity. — Preceding unsigned comment added by 195.99.172.179 (talk) 12:15, 31 May 2012 (UTC)[reply]

It's the physical decoupling of concerns; a distributed system. 5.198.125.143 (talk) 22:36, 24 February 2014 (UTC)[reply]

This article helped me[edit]

Well it may needs cleaning up (as per the various notes and other discussion), but even so the section (currently at the top) explaining the difference between a tier and a layer was helpful to me. Also the article is flagged as not having any citations, but that little piece does have a citation and (at the time of this writing) it's valid. PragmaticallyWyrd (talk) 14:14, 15 March 2010 (UTC)[reply]

MVC[edit]

Whats written in the section comparing three tier to MVC is true but leaves the implication that MVC and n-tier are competing architectures when MVC is a pattern and could be simply part of an architecture. For example the presentation layer of a multi-tier architecture could be MVC. —Preceding unsigned comment added by NickHollingsworth (talkcontribs) 16:43, 29 May 2008 (UTC)[reply]

Comparing MVC and 3-tier is a bad idea - it looks like it makes sense to compare them, but you're really comparing application architecture (MVC) with system architecture (3 tier). Comparing them implies some sort of trade-off or incompatibility, but in fact MVC on a 3-tier system is a very sensible approach to designing a business app. Suggest replacing MVC section with a scenario that describes a hypothetical example of this. 128.32.82.78 (talk) 20:32, 16 December 2008 (UTC)[reply]

I totally agree. The section makes no sense whatsoever. I'll remove it! 178.30.68.144 (talk) 13:48, 29 January 2014 (UTC)[reply]

Cleanup and merging[edit]

I'd like to clean this article and the Three-tier (computing) article up and merge them together. Two-tier, three-tier, n-tier, are all just names for the same basic concept (that steps from Model-view-controller) and both articles do a bad job explaining things. I originally just merged the articles (bad idea) and planned to work on them later, but I haven't really gotten the chance yet.

And technically, the article should probably be named "Multiple tier" (why I merged the bigger article into the smaller!) because it's more encompassing.

Anyway, I will work on the articles more before merging them, and maybe others will join in. -- Foofy 07:11, 19 October 2005 (UTC)[reply]

  • Thanks for unmerging; thinking and talking about this beforehand is a much better idea. I will help out some with the cleanup as I have bandwidth. We do need to keep the three-tier explanations clear in the eventual outcome; that's how most people come to know of / about multi-tier architectures these days. Georgewilliamherbert 00:57, 20 October 2005 (UTC)[reply]
    • Yeah, almost everytime I read about another tier beyond the original three, it's more of a clarification of another tier. I'm gonna sink my teeth into this later tonight, still reading and gathering a bunch of info. Have a general outline I'll try to pound in tonight. -- Foofy 19:22, 20 October 2005 (UTC)[reply]
    • Multiple tier is still refered to in the CIW educational manuals for testing as another definition of three-tier. Unless the curriculumn changes, I think it is a good idea to keep the three tier explanation with the mutli-tier name as simply another defining term. Kat.
  • My gut and experience says that layers and tiers are different. Multi-layer has traditionally been the logical view (software design view), and multi-tier has been the physical implementation view (considers arrangement of hosts and network segments). The physical implementation view has redundancy and security implications that the layer view (software design view) can largely ignore. The concepts are only related in that they both provide segmentation of an "applicaiton system" - but blending these distinct dimensions of segmentaiton (making them synonyms) would require that the framing (logical vs implementation) be explicitly stated with each use. This is a current confusion when someone speaks of a network diagram; the response is: are you refering to the logical diagram or the physical diagram?) --Chris Brown (talk) 20:57, 23 September 2013 (UTC)[reply]

I agree!The preceding unsigned comment was added by 58.104.82.22 (talk • contribs) .

Maybe all of this should just be merged into Client-server, especially since that article already has a small section on multi-tier architectures. --Allan McInnes (talk) 05:47, 7 February 2006 (UTC)[reply]

Pmerson: I agree with merging multi-tier and three-tier. But there are some other points to clarify:

  • Client-server and multi-tier are not the same thing. They are variations of the same architectural pattern, but are distinct enough to deserve their own pages.
  • Tiers in multi-tiered systems are not equivalent to layers. Tiers are abstractions of runtime environments or containers; layers are abstractions of a logical grouping of implementation units. Although tiers and layers are overloaded terms, this distinction is most often assumed or implied.
  • Thus, it is not always correct to equate the three tiers to model, view and controller in the MVC framework. Likewise, it's not a good idea to relate the tiers to presentation, logic and data. In general, presentation and logic may reside in more than one tier. The picture in the three-tier article is not a good representation. It mixes the concepts of tiers and layers. It's common to talk about a presentation layer, which is usually on top and contains code to handle the UI. But when we talk about tiers, the first tier is usually called the client tier, which is the runtime element that runs on the client machine. The client can be a thin client (typically a web browser) or a rich (or thick) client. Rich clients may implement more than presentation; they may embed an entire MVC implementation.
  • Multiple tier and two-tier are not commonly used terms, so I'd avoid them.
I agree that MVC and multi-tier are different concepts. I would not merge anything in the MVC, MVVC, etc world with the mulit-tier world. --Chris Brown (talk) 20:59, 23 September 2013 (UTC)[reply]

217.186.131.146 19:01, 19 May 2006 (UTC) cbass:[reply]

Merging is all right, as long as i can find multi-tier when searching for 3-tier, for the 3-tier-term is still used in a lot of lectures and articles. So Foofy is right.

Well, this proposal has been up for a while, and it looks like a merge is the way to go. I'm going to get started on it as well as clean up the articles/article in general. I've been learning a lot about application design these past few months so time to put it to some use here.  :) --Foofy 04:21, 26 May 2006 (UTC)[reply]

Oops. I think we had a quiet consensus to merge the other direction, to Three-tier as the base article name... I didn't notice that you had the tags to go the other way.
Let me fix that. Georgewilliamherbert 04:35, 26 May 2006 (UTC)[reply]
Hey, don't revert the revert saying "see discussion" without having commented in the discussion. The discussion consensus above was that three-tier was the right parent node. Put 'er back again, or explain why... Georgewilliamherbert 04:44, 26 May 2006 (UTC)[reply]

Merging two-tier, client-server, multi-tier, and three-tier is fine as they are conceptually the same, are terms used primarily by one similar technical subfield (systems/network architecture and engineering) and do not vary much in terms of goals and intent. --Chris Brown (talk) 20:57, 23 September 2013 (UTC)[reply]

Multilayer and multitier are not referring to the same thing. Multilayer design refers to dividing objects into different groups in software development, mostly for web applications. However, multitier design is usually referred to as designing the architecture that distributes application-related software or processing load across multiple computer systems. — Preceding unsigned comment added by 137.132.3.10 (talk) 06:11, 26 November 2013 (UTC)[reply]

"Multi-tier" or "multitier"[edit]

I was always told to use the hyphen unless it's in the dictionary that way, so I'm pretty sure it should have a hyphen... what do you think? --Foofy 04:32, 26 May 2006 (UTC)[reply]

Agreed. What's worse, the article title and the usage inside the article are inconsistent. (The article is "multitier architecture" while the article itself uses the spelling "multi-tier".) DoctorElmo 00:04, 19 July 2006 (UTC)[reply]

Ambiguity on certain terms (George?)[edit]

Each time I sit down to cleanup these articles it turns out I can't decide how to define certain terms because there's no clear consensus on what they mean. After a great deal of reading (and talking to programmer friends), I'm still not sure.

  • Some consider three-tier a client-server architecture, to others its a replacement/alternative.
  • Some consider three-tier and n-tier synonymous, others do not. Good explanation here [1]: "The term n-tier comes from the fact that the application logic tier is often subdivided into further logical tiers dedicated to one task or another; the application tier is seldom homogeneous. Some programmers view the division as three tiers, while others view the different classes of application logic as individual tiers."
  • Even more confusing is some people say model-view-controller is an implementation of n-tier.

I'd just like some input on this. Which explanations should I use? Both? It wouldn't be so confusing if things weren't split almost evenly (at least for the first two). --Foofy 12:41, 28 May 2006 (UTC)[reply]

    • I am really ignorant of pupular usage. However, I deal with similar issues of the usage of popular terms a lot, and I don't think it is a democratic process. That is, the most popular usage isn't the "correct" usage, insofar as it is not necessarily incorrect to use the term in the less popular way. Wikipedia is an ecycolopedia -- the purpose is to explain the functionality and architecture -- not to define terms. (Leave that to Wiktionary!) Therefore, I suggest that you pick a term that seems appropriate to you, explain the architecture and function, and then mention that various terms are in use that refer to the architecture / function described. --lenehey(207.47.14.66 19:20, 27 July 2006 (UTC))[reply]
My apologies for not having noticed the question from May.
Responding to both of you...
  • Current web industry usage considers three-tier unrelated to client-server.
  • All the sites I have been involved with and all the people I work with use 3-tier even if there are multiple sets of different function application servers in the second tier, not n-tier.
  • I can't comment on model-view-controller as it's not used in the industry areas I am familiar with. I'm not sure if it not being used is an answer, or lack of an answer.
  • In terms of defining versus not defining... To some degree I think we have to define it here, as it's a technical concept most people aren't already familiar with if they aren't using the technology already.
Anyways, those are my few cents of input. Georgewilliamherbert 21:33, 27 July 2006 (UTC)[reply]

MVC is a software design pattern and has nothing to do with tiers. In fact, MVC relates to the presentation layer, so not only is an implementation of MVC confined to a single tier but also a single layer. A good example is ASP.NET MVC 5.198.125.143 (talk) 22:04, 24 February 2014 (UTC)[reply]

I say merge them[edit]

N-Tier and Multi-Tier mean the same thing.


Has anyone considered semantic relevance? It seems to me that n-tier or multi-tier is a more flexible description of a tiered architecture - it allows that standards may vary to encompass a fourth or further layer(s) whilst still describing the fundamental concept accurately. Put more simply - does the principle of three-tiered architecture rely on the fact that the architecture is tiered, or that there are three of them?
It should definitely all be merged into a single entry for tiered architecture with no limiting number - be that 'n-tiered', 'multi-tiered', 'multitiered' or just plain 'tiered' architecture.
(previous unsigned by User:Johnfrommelb )
John, for your information you get the name/date timestamps you see around using four ~ characters in a row with no spaces, it automatically expands out.
I think that the point of "three tier" is that all "business logic" processing is in the second tier, regardless of how many separate "business logic" processes exist within that tier.
If you have an alternative architecture with a layer other than "Interface / Web", "Business logic / App", and "Storage / Database" then by all means let us know...
Georgewilliamherbert 00:57, 2 August 2006 (UTC)[reply]

I just did the merge that was first discussed nearly a year ago. I like it, but people who have spent more time on this article may have different opinions. I don't think it makes much of a difference which is the article page and which is the redirect, but if anyone disagrees, edit away. --Selket Talk 22:37, 27 February 2007 (UTC)[reply]

Article semi-protected on May 1, 2007[edit]

I have semi-protected the article after cleaning up various IP vandalism over the last 12-ish hours. The time is currently set for 48 hrs of semiprotection. IP and new users cannot edit right now.

Note that not all of the recent IP edits were clearly vandalism (192.91.147.34 cleaned up a bunch of it, for example, and is thanked for that). Some were questionable information inserts and, as there was a bunch of possibly related IP vandalism, I have reverted overall back to the last known good version.

Feel free to post any comments or questions here or on my talk page. If you believe that this semi-protection was in error or against Wikipedia policy you can post at WP:ANI and ask for review. Georgewilliamherbert 18:04, 1 May 2007 (UTC)[reply]

Why did you give a warning to 61.238.111.187? Did you even bother to check the edits? 144.32.177.131 09:21, 3 May 2007 (UTC)[reply]
To give context. The York university IP based edits are due to the article being at the center of a Computer Science assignment. 80.41.99.3 00:36, 4 May 2007 (UTC)[reply]
I gave a warning to that IP because they deleted the references section. See this edit. Yes, I checked the edits. Georgewilliamherbert 01:45, 4 May 2007 (UTC)[reply]

I'm sorry but I find the first sentence of this article confusing and am thinking of editing it. I don't see why it needs to bring in the idea of a software agent and I don't think a software agent can execute an application. I would much prefer something on the lines of Somerville's statement [2] in Software Engineering 7th edition p273:- 'In this architecture, the presentation, the application processing and the data management are logically separate processes that execute on different processors'.

--Bach&Byte 16:16, 14 August 2007 (UTC)[reply]

I disagree that they "execute on different processors", that may be possible but it's neither here nor there when trying to explain multi-tier architecture. And even if academics try to define "tier" and "layer" differently, in the industry they're the same thing because neither of them imply anything other than a logical grouping of functions. It's enough to seperate the solution into 1 layer for interaction with the data storage, 1 layer for the logic that processes (filters, matches, manipulates, etc.) the data and performs certain tasks (calculations, simulations, adjustments, concatenations, truncation, transformations, etc.), and 1 layer for the display of screens, forms, reports, results, datasets etc. They may be seperate processes (that may communicate via messages, on a single machine or even accross a network) or they may all reside in one executable. The idea of multi-tier architecture doesn't specify anything about physical implementation, it's just a strategy for better solutions (better for their future that is - in terms of scalability, future amendments, testing, interacting with other software, etc.). Having said that, I think it's an over-rated buzz word for inexperienced programmers, and it turns a 2 week job into a 6 month project. It's only bad code that becomes so convoluted over time that makes multi-tier architecture begin to look like a necessity. A good piece of code should already be significantly modular and losely coupled. However programmers should balance the need to deliver code with their desire to prolong the project unless they are paid according to their performance. They should also further confuse management by regularly displaying their grasp of the latest jargon (preferablly with hyphens if possible). - Australian Accountant, 26 Feb 2009 —Preceding unsigned comment added by 58.105.242.113 (talk) 02:39, 26 February 2009 (UTC)[reply]

Contradiction[edit]

The opening paragraph is contradictory - it starts off describing a multi tier architecture as having logically separate processes, and then describes tiers as being physically rather than logically separated. Pjc51 (talk) 20:34, 1 January 2009 (UTC)[reply]

Comparison with the MVC architecture[edit]

Looking at google images search of MVC the diagrams all appear to show the model and view communicating with the controller. this seems contradictory of the statement "the View sends updates to the Controller, the Controller updates the Model, and the View gets updated directly from the Model."

The MVC controller is descrabed as: The Controller object acts as a Mediator between the Model and View objects. A Controller object communicates data back and forth between the Model objects and the View objects. at: [3] —Preceding unsigned comment added by 98.214.111.54 (talk) 01:14, 28 October 2009 (UTC)[reply]

The Model View and Controller are three separate logical concerns within the presentation layer. They do not represent tiers.

  • View represents what the user sees and interacts with (e.g. an HTML page)
  • Model represents the dynamic data types and values within the View (e.g. submitted username and password strings)
  • Controller manages the two other components (e.g. Place username and password from View's form input in to Model then pass to Business Logic Layer for processing)

The main dispute between software developers is whether the Model should consume the domain (business) logic or the Controller. Personally I prefer leaner Models that just contain the data types, values and getters/setters and have Controllers call business functions. 5.198.125.143 (talk) 22:24, 24 February 2014 (UTC)[reply]

Lots of Blabla[edit]

Its paragraphs like that one, that make me think this is just about some made-up buzzword:

An example of 3-tier model is reporting applications that employ ETL tools. Where for 1-tier you may use an autosys JIL as an interface, which is an excellent way for scheduling the process and managing dependencies. The JIL would call a wrapper script on Ab Initio server which calls an Ab Initio graph. This is considered to be 2nd-tier. Ab Initio is an excellent ETL tool which can extract data from multiple databases on multiple data servers and process it. The 3rd-tier would be the database server(s) where the data is stored.

This paragraph doesn't explain anything, it just introduces more buzzwords like ETL, JIL or Ab Initio. — Preceding unsigned comment added by 2A01:198:209:0:E60:76FF:FE30:1C88 (talk) 07:51, 18 December 2012 (UTC)[reply]

spam: Example of free 3-tier system[edit]

Removed link to a password scamming site.--Marvin300 (talk) 20:01, 10 June 2013 (UTC)[reply]

Complete Buzzwords[edit]

Just Buzzwords, let the time wasters figure it out while the rest of the world actually achieve something.

Web server query[edit]

Hi

First post on here. Apologies if this is incorrect. However, I have a query regarding the section 'Web development usage' For tier 1 it says 1. A front-end web server server serving static content.....

Should this be 'A front-end web browser serving static content.....'

Regards Tmn0004676 (talk) 16:54, 6 February 2015 (UTC)[reply]

This page should describe the tradeoffs[edit]

The page should have a section to describe the trade offs of this pattern, for example being quite simple to implement and grasp vs. tight coupling between the application layer and the data layer.

[1]

2A02:8109:9AC0:6695:6071:7039:A2A1:8616 (talk) 11:09, 3 November 2019 (UTC)[reply]

References