ONC RPC
ONC RPC (англ. Open Network Computing Remote Procedure Call) — широко используемая система удаленного вызова процедур. Разработана компанией Sun Microsystems как часть проекта сетевой файловой системы (Network File System), и иногда упоминается как Sun ONC или Sun RPC. ONC RPC описан в RFC 1831 (1995 года) и RFC 5531 (2009 года). Механизмы аутентификации, используемые ONC RPC, описаны в RFC 2695, RFC 2203 и RFC 2623.
RPC основан на соглашении о вызове, используемом в Unix и языке программирования Си — cdecl
. Он сериализует данные при помощи XDR, который также может кодировать и декодировать файлы для поддержки доступа с различных платформ. Затем ONC доставляет данные XDR, используя UDP или TCP. Доступ к сервисам RPC на компьютере предоставляется через отображатель портов (port mapper), который принимает запросы на известном порту, обычно 111, по UDP и TCP.
Реализации ONC RPC существуют в большинстве Unix-подобных систем. Чаще всего они основываются на коде от компании Sun, опубликованном в Usenet в 1984 году. Microsoft поставляет реализацию в составе продукта Microsoft Windows Services for UNIX, кроме того существуют иные реализации ONC RPC для ОС Windows, в том числе для C/C++, Java, .NET.
В 2009 году Sun собиралась перелицензировать реализацию ONC RPC под 3-условную BSD license[1], что позже было сделано Oracle в 2010 году.[2]
Примечания
- Simon Phipps. «Old Code and Old Licenses» (недоступная ссылка). Sun Microsystems (13 февраля 2009 г.). Дата обращения: 20 февраля 2009 г.. Архивировано 22 февраля 2012 года.
- «The long, sordid tale of Sun RPC, abbreviated somewhat, to protect the guilty and the irresponsible» (недоступная ссылка). Tom Callaway, Red Hat (26 августа 2010 г.). Дата обращения: 26 августа 2010 г.. Архивировано 22 февраля 2012 года.
Ссылки
- Ed Petron. «Remote Procedure Calls» (англ.) (недоступная ссылка). LinuxJournal (1 октября 1997 г.). Дата обращения: 21 февраля 2011. Архивировано 22 февраля 2012 года.
- Различные реализации:
- ONC/RPC für Windows NT/95 (нем.) (недоступная ссылка). RWTH Aachen University. Дата обращения: 21 февраля 2010. Архивировано 22 февраля 2012 года.
- Remote Tea (LGPL Java Implementation) (англ.) (недоступная ссылка). Дата обращения: 21 февраля 2011. Архивировано 22 февраля 2012 года.
- Remote Tea .Net (LGPL C# Implementation) (англ.) (недоступная ссылка). Дата обращения: 21 февраля 2011. Архивировано 22 февраля 2012 года.
- Distinct Corporation’s ONC RPC for Windows (англ.) (недоступная ссылка). Дата обращения: 21 февраля 2011. Архивировано 22 февраля 2012 года.
- ООО "Открытые технологии виртуализации" (RU), Реализация протокола RPC версии 2 (RFC 1057, RPC: Remote Procedure Call Protocol Specification)