Every application has business logic. The logic might be some kind of validations or making calls in an order or doing some number crunching and spitting out the results. The business logic now can reside in multiple places. The business logic can reside from Presentation layer to business layer to the data layer ( even go down to Stored Procedures).
In my experience, what I have seen, the team's expertise decides where the business logic resides. If the team is strong in DB skills and DBA's have agreat say, the business logic ends up in database. If the GUI is very important and team does not much skills in n-tier architecture, the business logic ends up in presentation layer. If team has worked with some kind of EJB's or has object mapping experience (either Toplink or Hibernate ), the team will create a middle tier (either POJO's or EJB's) to handle the business logic.
I am not debating the merits and demerits of where the business logic should reside. What I am trying to say is, why it resides where it is resides.
Business Logic : why it resides where it resides ?