Would appreciate any feedback / recommendations regarding our current application architecture.
Broadly, it is currently as follows:
Client: (Access to Service Layer is controlled through Spring)
Swing Rich Client (JGoodies, JForm Designer...)
Spring HTTP Remoting communicating with..
App Server: (All objects on the server are controlled through Spring)
Service Layer Pattern using....
Data Access Objects using ...
Toplink ORM to map to legacy database.
State only exists on the Client.
Currently, we have a Business Domain, instances of which exist on the Client and on the Server (but only for the lifetime of a partilcuar remote call).
We believe that this Business Domain, shows all the features of an anemic domain model (http://www.martinfowler.com/bliki/An...mainModel.html) due to the use of remoting and the service layer to execute business logic and provide CRUD opertations on the persistent data store.
As part of refactoring this Business Domain (it also currently too closely resembles the legacy database) I am proposing to combine the calls to the service layer within the Business Domain.
For example, we currently have a Client Object. To "getAddresses" we call the ClientSO.getAddresses and populate the "address" property within the Client Object.
I now intend to to implement the call to the ClientSO.getAddresses method, within the Business Domain, Client.getAddresses method.
Does this appear to be a correct thing to do?
Also, is it worth implementing the new features withing Spring 2.0, to use AspectJ to dependency inject domain objects.
Any feedback greatly appreciated.