A dynamic remote object has no facility for local validation of method invocations: it has no proxy. Therefore, it is the easiest way to execute things remotely. Attribute errors are very costly, though.
def __getattr__(self, attr):