This Article 
 Bibliographic References 
 Add to: 
Designing an Agent Synthesis System for Cross-RPC Communication
March 1994 (vol. 20 no. 3)
pp. 188-198

Remote procedure call (RPC) is the most popular paradigm used today to build distributed systems and applications. As a consequence, the term "RPC" has grown to include a range of vastly different protocols above the transport layer. A resulting problem is that programs often use different RPC protocols, cannot be interconnected directly, and building a solution for each case in a large heterogeneous environment is prohibitively expensive. We describe the design of a system that can synthesize programs (RPC agents) to accommodate RPC heterogeneities. Because of its synthesis capability, the system also facilitates the design and implementation of new RPC protocols through rapid prototyping. We have built a prototype system to validate the design and to estimate the agent development costs and cross-RPC performance. The evaluation shows that the synthesis approach provides a more general solution than existing approaches do, and with lower software development and maintenance costs, while maintaining reasonable cross-RPC performance.

[1] B. Bershad, D. Ching, E. Lazowska, J. Sanislo, and M. Schwartz, "A remote procedure call facility for interconnecting heterogeneous computer systems,"IEEE Trans. Software Eng., vol. SE-13, pp. 880-894, Aug. 1987.
[2] J. Auerbach, "TACT: A protocol conversion toolkit,"IEEE J. Select. Areas Commun., vol. 8, pp. 143-159, Jan. 1990.
[3] Sun Microsystems,Open Network Computing--RPC Programming, Mar. 1991.
[4] J. W. Stamos and D. E. Gifford, "Implementing remote evaluation,"IEEE Trans. Software Eng., vol. 16, pp. 710-722, July 1988.
[5] J. Falcone, "A programmable interface language for heterogeneous distributed systems,"ACM Trans. Comput. Syst., vol. 5, pp. 330-351, Nov. 1987.
[6] A. D. Birrell and B. J. Nelson, "Implementing remote procedure calls,"ACM Trans. Comp. Syst., vol. 2, no. 1, pp. 39-59, Feb. 1984.
[7] Sun Microsystems, "Remote procedure call protocol specification version 2 (RFC 1057)," Network Inf. Center, SRI Int., June 1988.
[8] T. H. Dineen, P. J. Leach, N. W. Mishkin, J. N. Pato, and G. L. Wyant, "The network computing architecture and system: An environment for developing distributed applications,Proc. Summer USENIX Conf., 1987, pp. 385-398.
[9] B. Liskov and L. Shrira, "Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems," inProc. SIGPLAN'88 Conf. Programming Language Design and Implementation, ACM, June 1988, pp. 260-267.
[10] E. F. Walker, R. Floyd, and P. Neves, "Asynchronous remote operation execution in distributed systems,"Proc. 10th Int. Conf. Distrib. Computing Syst., pp. 253-259, May 1990.
[11] A. L. Ananda, B. H. Tay, and E. K. Koh, "ASTRA--An asynchronous remote procedural call facility,Proc. 11th Int. Conf Distrib. Computing Syst., May 1991, pp. 172-179.
[12] K. S. Yap, P. Jalote, and S. Tripathi, "Fault tolerant remote procedure call,"Proc. 8th Int. Conf. Distrib. Computing Syst., San Jose, CA, 1988, pp. 48-54.
[13] L. Zahn et al.,Network Computing Architecture, Prentice-Hall, Englewood Cliffs, NJ., 1990.
[14] D. K. Gifford and N. Glasser, "Remote pipes and procedures for efficient distributed communication,"ACM Trans. Comput. Syst., vol. 6, pp. 258-283, Aug. 1988.
[15] B. Liskov and R. Scheifler, "Guardians and actions: linguistic support for robust, distributed programs,"ACM Trans. Program. Languages Syst., vol. 5, no. 3, pp. 381-404, July 1983.
[16] Y. Huang and C. V. Ravishankar, "Cicero: A protocol construction language," Tech. Rep. CSE-TR-171-93, Dept. of Elec. and Comput. Sci., Univ. of Michigan, Ann Arbor, 1993.
[17] C. V. Ravishankar and R. Finkel, "Linguistic support for dataflow," Tech. Rep. CSE-TR-14-89, Dept. of Elec. Eng. and Comput. Sci., Univ. of Michigan, Ann Arbor, 1989.
[18] ISO,Information Processing Systems-Open System Interconnection--LOTOS--A Formal Description Technique Based on the Temporal Ordering of Observational Behavior, ISO 8807 1988, 1985.
[19] ISO,Information Processing Systems--Open System Interconnection--Estelle (Formal Description Technique Based on an Extended State Transition Model), ISO9074 1988, 1987.
[20] Y. Huang and C. V. Ravishankar, "A universal RPC toolkit," Tech. Rep. CSE-TR-170--93, Dept. of Elec. Eng. and Comput. Sci., University of Michigan, Ann Arbor, Michigan, 1993.
[21] L. Peterson, N. Hutchinson, S. O'Malley, and H. Rao, "Thex-kernel: A platform for accessing Internet resources,"IEEE Comput., vol. 23, pp. 23-33, May 1990.
[22] S. W. O'Malley and L. L. Peterson, "A dynamic network architecture,"ACM Trans. Comput. Syst., vol. 10, pp. 110-143, May 1992.
[23] J. Purtilo, "The Polylith software bus," Dep. Comput. Sci., Univ. Maryland, Tech. Rep. 2469, 1990 (to be published inACM Toplas).
[24] P. Gibbons, "A stub generator for multilanguage RPC in heterogeneous environments,"IEEE Trans. Software Eng., vol. SE-13, pp. 77-87, Jan. 1987.
[25] J. P. Ansart, P. D. Amer, V. Chari, J. F. Lenotre, L. Lumbroso, E. Mariani, and E. Mattera, "Software tools for Estelle," inProtocol Specification, Testing and Verification VI (IFIP/WG 6.1), B. Sarikaya and G. v. Bochmann, Eds. Amsterdam, The Netherlands: North-Holland, 1987.
[26] J. P. Briand, M. C. Fehri, L. Logrippo, and A. Obaid, "Executing LOTOS specifications," inProwcol Specification, Testing and Verification VI (IFIP/WG 6.1), B. Sarikaya and G. v. Bochmann, Eds. Amsterdam, The Netherlands: North-Holland, 1987.
[27] S. T. Vuong, A. C. Lau, and R. I. Chan, "Semiautomatic implementation of protocols using an Estelle-C compiler,"IEEE Trans. Software Eng., vol. 14, pp. 384-393, Mar. 1988.
[28] D. P. Anderson, "Automated protocol implementation with RTAG,"IEEE Trans. Software Eng., vol. 14, pp. 291-300, Mar. 1988.
[29] L. Svobodova, "Implementing OSI systems,"IEEE J. Select. Areas Commun., vol. 7, pp. 1115-1130, Sept. 1989.
[30] C. Pu, H. Massalin, and J. Ioannidis, "The synthesis kernel,"Computing Syst., vol. 1, pp. 11-32, Winter 1988.

Index Terms:
remote procedure calls; protocols; software prototyping; parallel programming; telecommunications computing; agent synthesis system; cross-RPC communication; remote procedure call; distributed systems; transport layer; RPC protocols; large heterogeneous environment; RPC agents; RPC heterogeneities; rapid prototyping; agent development costs; cross-RPC performance; maintenance costs
Yen-Min Huang, C.V. Ravishankar, "Designing an Agent Synthesis System for Cross-RPC Communication," IEEE Transactions on Software Engineering, vol. 20, no. 3, pp. 188-198, March 1994, doi:10.1109/32.268920
Usage of this product signifies your acceptance of the Terms of Use.