when you're using JMS, you have to make sure that all your clients have a JMS client installed as well, so they communicate with your JMS server. I don't find it that difficult, but sometimes you just can't have that on remote machines.
still, using JMS, i think your implementation will be a lot easier. I mean - your clients query the server for information. so, let's say you have a method called queryMyServer() on each of the clients.
using JMS, your EJBs just don't care about the clients - what you do is use a topic, that all clients listen to. then, when you update your data, just put a message on this topic, telling all clients you got some new info for them.
the clients will have a listener on this topic, and in its onMessage() method - just call queryMyServer() and you're good as gold, since the clients will query the server when they can, and you still have the control (inside your server) of load and distribution of data. additionally, a client may decide it doesn't need your data, so that's good as well - less hussle and expensive RMI on your side.
you might also want to just send the changed data on your JMS message straight away to the client, and let the JMS provider worry about it gettting safely to the destination.