http://citforum.edunet.kz/SE/middleware/history/7.shtml

> -- Цитата:
> RMI позволяет Java-объекту-клиенту вызывать методы объекта-сервера, располагающегося в другой JVM (Java Virtual Machine), возможно, в другом хосте....Затем Вальдо излагает проектные принципы RMI и описывает важные отличия RMI от предшествующих работ в областях RPC, CORBA и DCOM. В частности, ...RMI также отличается от предыдущих работ в области систем удаленного вызова процедур тем, что стабы, требуемые для синхронизации и поддержки прямого и обратного маршалинга,  Для обеспечения возможности загрузки стабов в RMI используется механизм динамической загрузки классов Java, описанный в [85]. Для использования в распределенной среде необходимо обеспечить безопасность загрузки классов, и в [85] описывается, как можно добиться надежной и безопасной загрузки классов, следуя формально обоснованным методам обеспечения безопасности предыдущих механизмов загрузки классов Java [74].Статья [20] про Network Objects начинается с утверждения, что «в чистом объектно-ориентированном программировании у клиентов не должен иметься прямой доступ к реальному состоянию объектов, он должен обеспечиваться только через методы объектов. Эта методология замечательно применяется к распределенному компьютингу, поскольку вызовы методов представляют собой удобное место для внедрения коммуникаций, требуемых распределенной системой».  Более глубокое обсуждение происхождения этой работы см. в [122]. В [20] явно утверждается, что система Modula-3 Network Objects основана на идеях предыдущих исследований, и приводятся ссылки на системы Emerald [76], Argus [87], Eden [2], Arjuna [47], Orca [11] и SOS [124].

Кто у нас тут любитель покормить хабровских? ) Сколько криков поднимется, если сказать, что и RMI в Java выросло из Виртовской ветки.