A tier is generally a logical boundary, but a physical boundary could exist as well. For example, my
servlets and jsps may represent a web tier of my application. My EJBs representing my business logic are the 2nd tier, and my database is my third tier.
It doesn't really matter where my servers are running, you still have the logical separation of your code. If they are running on separate servers, then you have a physical boundary that maps to the logical boundary.