We have implemented a distributed processing system using JMS (inter-jvm work with optional synchronicity, time-outs, error handling, etc.). It is quite complex and wasn't easy, but it works reasonably well. Some clustering technologies like Terracotta offer similar capabilities, but have their own pains to bear.
I don't think your use case is quite as demanding as ours, so jms might well be a good solution for you. The other possibility you may want to consider is using a lightweight web service like REST.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com