We are developing an enterprise application in a client server mode.
The requirements are:
Appreciate if you can suggest a good distributed enterprise software development book as well.
Hello you could have a look at the Hazelcast Distributed Datagrid.
They provide the classic key/value cache but also some nice structures like distributed queues. It provides Distribution for many parts of an Enterprise Solution (Distributed Hibernate 2nd level cache, Session Distribution, Spring Integration). The thing that can be interesting for you is the use of the Distributed Executor interface of Hazelcast. So you can execute threads on any node of the cluster.
If this approach is to lightweight for you. You should look into ESB (Enterprise Service Bus) and Messaging queues. You could start playing around a little with Active MQ paired with Apache Camel. (both open source)