>Marcus,
> You could be correct in some situations and incorrect in others. For example
> what if the UI is VB or HTML and the IO is VFP running on another machine?
> In my opinion tier and layer are almost synomonous with very slight differences.
Well, this can be taken to a higher level even. What if you add a turbo-charger to your cars engine? Is it still part of the engine or an entirely new components (/layer the fuel goes through). I'd say it's part of the engine.
The same I believe to be true for tiers. But it really comes down to what one considers a tier. What exctly makes a tier? A certain set of classes that have a certain kind of functionality? In this case, the I/O layer and the front end are one tier as both of them are interface related (where the actual front end potentially is hardly more than a rendering mechanism). I don't think the fact that they might be running on different boxes makes a big difference. Not logically anyway. Technically maybe. But the machine boundaries will blur more and more as we move into newer technologies...
Another way to specify what a tier is to look at messaging. All the layers a message travels through could be considered a tier. In this case we might end up with lots of tiers though (hundrets?).
Another way would be by inheritance structure. A certain set of classes subclassed from a common abstract class could be a tier. Which, of course, would mess up the situation real bad if we were to decide to change our inheritance structure (and besides, VB couldn't even create n-tiered apps...LOL)
I guess there are other ways of defining tiers. Maybe you could give some imput here...
Markus