It looks to me like RMI is the easiest way to implement the solution as it is posed in the assignment. Since we are not an all-Java company, we haven't used RMI, so I guess this is my opportunity to learn it.
My understanding, from what I have read, is that the normal way to implement an RMI solution is to have a web server deliver classes to the clients so that they can implement the server methods. Alternatively, the client can have the server classes in its own classpath. Many of the examples I have seen take this approach, apparently for the sake of simplicity, but add a comment to the effect that normally a web server would be used.
It seems like a web server is a better solution, since it allows changes on the server without making changes at all of the clients (and apparently vice-versa). Is it acceptable to include a web server, such as Tomcat, as a part of the solution? Is this what they expect?