__NOTOC__
Open Network Computing (ONC) Remote Procedure Call (RPC), commonly known as Sun RPC is a
remote procedure call
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared computer network), which is written as if it were a ...
system. ONC was originally developed by
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
in the 1980s as part of their
Network File System
Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like ...
project.
ONC is based on
calling convention
In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines or functions receive parameters from their caller and how they return a result. When some code calls a function, design choices have been ...
s used in
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and the
C programming language
C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of ...
. It
serializes data using the
External Data Representation (XDR), which has also found some use to encode and decode data in files that are to be accessed on more than one platform. ONC then delivers the XDR payload using either
UDP or
TCP. Access to RPC services on a machine are provided via a ''
port mapper'' that listens for queries on a
well-known port (number 111) over UDP and TCP.
ONC RPC version 2 was first described in
published in April 1988. In June 1988 it was updated by . Later it was updated by , published in August 1995. , published in May 2009, is the current version. All these documents describe only version 2 and version 1 was not covered by any RFC document. Authentication mechanisms used by ONC RPC are described in RFC 2695, RFC 2203, and RFC 2623.
Implementations of ONC RPC exist in most
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems.
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
supplied an implementation for
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
in their (now discontinued)
Microsoft Windows Services for UNIX product; in addition, a number of third-party implementation of ONC RPC for Windows exist, including versions for
C/
C++,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
(see external links).
In 2009, Sun
relicensed the ONC RPC code under the standard 3-clause
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
, which was reconfirmed by
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
in 2010 following confusion about the scope of the relicensing.
See also
*
XDR – The grammar defined in RFC 1831 is a small extension of the XDR grammar defined in RFC 4506.
*
DCE
*
XML-RPC
XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) ''Programming Web Services with XML-RPC.'' O'Reilly. First Edition. ...
References
*
Notes
External links
RFC 5531- RPC: Remote Procedure Call Protocol Specification Version 2 (current version)
RFC 1831- RPC: Remote Procedure Call Protocol Specification Version 2 (third published version)
RFC 1057- RPC: Remote Procedure Call Protocol Specification Version 2 (second published version)
RFC 1050- RPC: Remote Procedure Call Protocol Specification Version 2 (first published version)
— A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University
— A developer's introduction to RPC and XDR, from SGI IRIX documentation.
Netbula's PowerRPC for Windows (ONC RPC for Windows with extended IDL)Netbula's JRPC (ONC RPC for Java)(supports J2SE, J2ME and AndroidONC/RPC Implementation of the University of Aachen (Germany)Remote Tea (LGPL Java Implementation)Remote Tea .Net (LGPL C# Implementation)Distinct Corporation's ONC RPC for WindowsLinux Journal article on ONC RPCJava NIO based ONC RPC library
{{Sun Microsystems
Application layer protocols
Internet Standards
Remote procedure call
Sun Microsystems software
Unix software