I would like to start a discussion about the business-layer and its relation within the model-layer.
There was once a time, I 've thought of seperating those, following the three tier architecture (Presentation, business, implementation), but this is wrong I guess.
Currently I think the business-layer includes the model-layer, making the model-layer a part of the business-layer.
The achitecture of my current project looks like this:
Model: 4 Hibernate persisted object classes
Plain Business: One CoreModel interface providing access to additional model-related operations, like to create new objects, to delete them (make them transient) or to perform some complex queries. It becomes an mediator for several daos and controls some advanced transaction managements.
Implementation-Layer: Hibernate related stuff (two classes, Spring hibernate support is just great)
Daos: Four Dao implementations (are they part of the business or the implementation layer?)
There is also another interface used for remote access of a complex client application. I also consider this to be part of the business-layer.
So the question remains: Are my thoughts ok?