|
ABSTRACT
The Remote Procedure Call (RPC) is a popular paradigm for inter-process communication (IPC) between processes in different computers across the network. It is widely used in various Distributed Systems. Although it is conceptually simple and straightforward to implement, there are a lot of different and subtle issues involved which result different RPC implementations. In this paper, various distinctive RPC implementations are surveyed, analyzed and compared: Xerox Courier RPC, Xerox Cedar RPC, Sun ONC/RPC, Apollo NCA/RPC, Cambridge Mayflower Project RPC, MIT Athena Project RPC, Stanford Modula/V RPC, and Rajdoot RPC are presented. The design objectives, features provided, call semantics, orphan treatment, binding, transport protocols supported, security/authentication, data representation and application programming interface of these RPCs are examined.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
[1] Project Athena Executive Committee, "An Introduction to Project Athena", MIT, 1983.
|
| |
2
|
[2] Almes, G., "The Impact of Language and System on Remote Procedure Call Design", Proc. of 6th International Conference on Distributed Computing Systems, May 1986, pp. 414-421.
|
 |
3
|
|
| |
4
|
[4] J. M. Bacon and K. G. Hamilton, "Distributed Computing with the RPC: the Cambridge Approach", Distributed Processing, IFIP, North-Holland, 1988, pp. 355-369.
|
| |
5
|
|
 |
6
|
|
| |
7
|
[7] Nelson, B. J., "Remote Procedure Call", Tech. Rep. CSL-81-9, Xerox Palo Alto Research Center, Palo Alto, Calif. 1981.
|
| |
8
|
[8] Cheriton, D. R., "The V kernel: A Software Base for Distributed Systems", IEEE Software, Vol. 1, No. 2, 1984, pp. 19-42.
|
 |
9
|
|
 |
10
|
|
| |
11
|
[11] Eric C. Cooper, "Circus: A Replicated Procedure Call Facility", Proc. of 4th Symp. on Reliability in Distributed Software and Database Systems, Oct 1984, pp. 11-24.
|
| |
12
|
[12] Dineen, T. H., Leach, P. J., Mishkin, N. W., Pato, J. N., and Wyant, G. L., "The Network Computing Architecture and System: An Environment for Developing Distributed Applications", In Proc. of the 1987 Summer USENIX Conference (Phoenix, Ariz., June), USENIX Association, Berkeley, Calif., 1987, pp. 385-398.
|
| |
13
|
Mike Kong , Terence H. Dineen , Paul J. Leach , Elizabeth A. Martin , Nathaniel W. Mishkin , Joseph N. Pato , Geoffrey L. Wyant, Network computing system reference manual, Prentice-Hall, Inc., Upper Saddle River, NJ, 1990
|
| |
14
|
[14] Leffler, S. J., Fabry, R. S., W. N., Lapsley, P. Miller, S., and Torek, C., "An Advanced 4.3 BSD Interprocess Communication Tutorial", Unix Programmer's Supplementary Documents, Vol. 1 (PS1), 4.3 Berkeley Software Distribution, Computer Systems Research Group, Computer Science Division, Univ. of California, Berkeley, Calif., Apr 1986.
|
| |
15
|
[15] Joshua Levy, "A Comparison of Commercial RPC Systems", Atherton Technology, 1989.
|
 |
16
|
B. Liskov , D. Curtis , P. Johnson , R. Scheifer, Implementation of Argus, Proceedings of the eleventh ACM Symposium on Operating systems principles, p.111-122, November 08-11, 1987, Austin, Texas, United States
|
 |
17
|
|
| |
18
|
|
| |
19
|
[19] Russel Sandberg, "The SUN Network File System: Design, Implementation and Experience", Proc. of USENIX Conference, 1986, pp. 150-166.
|
| |
20
|
[20] M. Satyanarayanan and E. H. Siegel, "Multi-RPC: A Parallel Remote Procedure Call Mechanism", Tech. Rep. CMU-CS-86-139/CMU-ITC-047, Carnegie Mellon Univ. Aug 1986.
|
| |
21
|
|
| |
22
|
[22] Stuart Sechrest, "An Introductory 4.3BSD Interprocess Communication Tutorial", Unix Programmer's Supplementary Documents, Vol. 1 (PS1), 4.3 Berkeley Software Distribution, Computer Systems Research Group, Computer Science Division, Univ. of California, Berkeley, Calif., Apr 1986.
|
| |
23
|
[23] Shrivastava S. and Panzieri F., "The Design of a Reliable Remote Procedure Call Mechanism", IEEE Trans. Computers, Vol. 31, No. 7, Jul 1982, pp. 692-697.
|
| |
24
|
[24] S. K. Shrivastava, "On the Treatment of Orphans in a Distributed System", Proc. of 3rd Symp. Reliability Distributed Software and Database Systems, Oct 1983, pp. 155-162.
|
 |
25
|
|
| |
26
|
[26] Robert J. Souza and Steven P. Miller, "Unix and Remote Procedure Calls: A Peaceful Coexistence?", Proc. 6th IEEE International Conference on Distributed Computing Systems, 1986.
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
| |
30
|
[30] A. S. Tanenbaum and Robbert van Renesse, "Reliability Issues in Distributed Operating Systems", Proc. of 6th Symp. on Reliability in Distributed Software and Database Systems, Kingsmill Williamburg, VA, Mar 1987.
|
| |
31
|
[31] Tanenbaum, A. S. and van Renesse, R., "A Critique of the Remote Procedure Call Paradigm", Research into Networks and Distributed Applications (Edt. by R. Speth), Elsevier Science Publishers B. V. (North-Holland), Apr 1988.
|
| |
32
|
[32] Tanenbaum, A. S., Renesse, R. van, Staveren, H. van., Sharp, G. J., Mullender, S. J., Jansen, A. J., and Rossum, G. van, "Experiences with the Amoeba Distributed Operating System", Report IR-194, Dept of Mathematics and Computer Science, Vrije Universiteit, July 1989 (accepted for publication).
|
| |
33
|
|
| |
34
|
|
| |
35
|
[35] Xerox Corporation, "Courier: The Remote Procedure Call Protocol", Xerox System Integration Standard 038112, Xerox OPD, Dec 1981.
|
| |
36
|
[36] Yap, M., P. Jalote and S. K. Tripathi, "Fault Tolerant Remote Procedure Call", Proc. of 8th International Conference on Distributed Computing Systems, Jun 1988, pp. 48-54.
|
| |
37
|
|
CITED BY 13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jinsong Lin , Eusden Shing , Wing-Kai Chan , Rajive Bagrodia, TMACS: type-based distributed middleware for mobile ad-hoc networks, Proceedings of the 5th Annual International Conference on Mobile and Ubiquitous Systems: Computing, Networking, and Services, July 21-25, 2008, Dublin, Ireland
|
|