Note. When I refer to a level, I mean the physical level. Many of the questions on this site related to “tiers” refer to logical layers, which I do not ask.
I am developing an application using the standard 3-layer architecture with presentation, business logic (BLL) and data access (DAL) layers. WPF technology, C #, LINQ, and SQL Server 2008. My question is about the physical architecture of this application.
I can put BLL / DAL in a standard DLL that loads and runs on a user computer, creating a two-tier architecture - a client machine and a database server. But it is not too difficult to turn BLL / DAL into a WCF service, which is located on the application server and is called from the user machine. This will give me a three-tier architecture — a client machine, an application server, and a database server.
My question is this: what is the advantage of using a three-tier architecture? I was often told that 3 levels add scalability, but I don’t immediately think why this would be. And, of course, you are going to get a performance hit with the same data that two flights must make over the wire - from the database server to the application server, and then from the application server to the client computer.
I would appreciate the advice of experienced architects and developers.
source
share