J2EE

I have a set of questions pertinent to the architecture design for an application. 1.If any customer comes up with an application development what are all the factors taken into consideration in proposing an architecture design for developing the application? 2.What are the types of J2EE architectures available? Even in the case of Sun's Petstore Architecture(with clientTier,WebTier and EJBTier),What are the advantages in building the application accross three tiers?There are so many books explaining these features, but i find it intangible.It would be great if anyone could give me a practical explanation.

if you dont have the experience with 3 tier design I would suggest (only an opinion) that you wont benefit from three tier design as its very complex and the dev cycle is much much longer than flatter architectures. Just make sure that your design is elegant and as simple as possible while still fitting the requirements and you will be ok. Dont use EJBs unless you have sufficient previousl experience to know that you need to as its a specialist technology with less applications than you might imagine