b) is looking to be the lead horse at this stage, but I would really
like to use a method in the client rather than the server as (to me) it
makes the process more transparent.
I don't understand this point. Here's what I've done in the past.
In the client version of the EO make a method that looks like this
(psuedo):
public NSArray getQualifiedObjects() {
invokeRemoteMethod("getQualifiedObjects", blah-blah...);
}
Then on the server you have
public NSArray getQualifiedObjects() {
}