For the following scenario I am looking for your advices and tips on best practices:
In a distributed (mainly Java-based) system with:
many (different) client applications (web-app, command-line tools, REST API)
a central JMS message broker (currently in favor of using ActiveMQ)
multiple stand-alone processing nodes (running on multiple remote machines, computing expensive operations of different types as specified by the JMS message payload)
How would one best apply the JMS support provided by the Spring Integration framework to decouple the clients from the worker nodes? When reading through the reference documentation and some very first experiments it looks like the configuration of an JMS inbound adapter inherently require to use a subscriber, which in a decoupled scenario does not exist.
Small side note: communication should happen via JMS text messages (using a JSON data structure for future extensibility).
This doesn't really answer your question, but make sure you look into Apache Camel for connecting your different components. I found it extremely useful for connecting a JMS queue up to an existing web service and plan to use it for other components also.
An example that monitors an ActiveMQ queue for messages, transforms them, and posts them to a web service: