People in the java land normally deploy products in 3 tiers (webserver (static), app server (dynamic), database server). People in Microsoft land normally deploy applications in 2 tiers (webserver (static and dynamic), database server).
I always hear the argument of separating them for security reasons, but in reality once you own the web tier its pretty easy to own the application tier. It may be slightly more secure, but its not a reason not to patch things (which is what people use it as).
In reality the complexity of having a whole layer to do essentially nothing seems pointless to me. Why bother deploying more hardware for a minor benefit. Even in the java world, the application servers do everything a standard webserver can do, so what's the point?
Any comments, please leave some.