Enterprise Object Broker
      "Transparent distribution for Java objects via their interfaces."
See the homepage http://eob.sourceforge.net
Maybe this is the way it should be ... separating interfaces from implementation, what will those clever java guys think of next?
        public interface QuoteService {
        BigDecimal getQuote(String symbol);
        }
      
      
        public class DefaultQuoteService implements QuoteService {
        BigDecimal getQuote(String symbol) {
        // whatever.
        }   
        }
      
      Client side - JNDI lookup and a cast to QuoteService... no remote exception stuff.
-- PaulHammant