A Lightweight and High Performance Remote Procedure Call Framework for Cross Platform Communication

Hakan Bagci, Ahmet Kara

Abstract

Remote procedure calls (RPC) are widely used for building distributed systems for about 40 years. There are several RPC implementations addressing different purposes. Some RPC mechanisms are general purpose systems and provide a number of calling patterns for functionality, hence they do not emphasize performance. On the other hand, a small number of RPC mechanisms are implemented with performance as the main concern. Such RPC implementations concentrate on reducing the size of the transferred RPC messages. In this paper, we propose a novel lightweight and high performance RPC mechanism (HPRPC) that uses our own high performance data serializer. We compare our RPC system’s performance with a well-known RPC implementation, gRPC, that addresses both providing various calling patterns and reducing the size of the RPC messages. The experiment results clearly indicate that HPRPC performs better than gRPC in terms of communication overhead. Therefore, we propose our RPC mechanism as a suitable candidate for high performance and real time systems.

References

  1. Allman, M. (2003). An evaluation of xml-rpc. ACM sigmetrics performance evaluation review, 30(4):2-11.
  2. Ananda, A. L., Tay, B., and Koh, E. (1991). Astra-an asynchronous remote procedure call facility. In Distributed Computing Systems, 1991., 11th International Conference on, pages 172-179. IEEE.
  3. Bershad, B. N., Anderson, T. E., Lazowska, E. D., and Levy, H. M. (1990). Lightweight remote procedure call. ACM Transactions on Computer Systems (TOCS), 8(1):37-55.
  4. Birrell, A. D. and Nelson, B. J. (1984). Implementing remote procedure calls. ACM Transactions on Computer Systems (TOCS), 2(1):39-59.
  5. Boost (2015). Boost Framework. http://www.boost.org. Accessed: 2015-12-08.
  6. Corbin, J. R. (2012). The art of distributed applications: programming techniques for remote procedure calls. Springer Science & Business Media.
  7. Google (2015a). Google Protocol Buffers (Protobuf): Google's Data Interchange Format. Documentation and open source release. https://developers.google.com/protocol-buffers. Accessed: 2015-12-08.
  8. Google (2015b). gRPC. http://www.grpc.io. Accessed: 2015-12-08.
  9. Google (2015c). Protobuf-Remote: RPC Implementation for C++ and C# using Protocol Buffers. https://code.google.com/p/protobuf-remote. Accessed: 2015-12-28.
  10. Jagannadham, D., Ramachandran, V., and Kumar, H. H. (2007). Java2 distributed application development (socket, rmi, servlet, corba) approaches, xml-rpc and web services functional analysis and performance comparison. In Communications and Information Technologies, 2007. ISCIT'07. International Symposium on, pages 1337-1342. IEEE.
  11. Kim, S.-H., Lee, Y., and Kim, J.-S. (2007). Flexrpc: a flexible remote procedure call facility for modern cluster file systems. In Cluster Computing, 2007 IEEE International Conference on, pages 275-284. IEEE.
  12. Laurent, S. S., Johnston, J., Dumbill, E., and Winer, D. (2001). Programming web services with XML-RPC. O'Reilly Media, Inc.
  13. Ming, L., Feng, D., Wang, F., Chen, Q., Li, Y., Wan, Y., and Zhou, J. (2011). A performance enhanced user-space remote procedure call on infiniband. In Photonics and Optoelectronics Meetings 2011, pages 83310K83310K. International Society for Optics and Photonics.
  14. Nelson, B. J. (1981). ”Remote Procedure Call” CSL-81-9. Technical report, Xerox Palo Alto Research Center.
  15. Satyanarayanan, M., Draves, R., Kistler, J., Klemets, A., Lu, Q., Mummert, L., Nichols, D., Raper, L., Rajendran, G., Rosenberg, J., et al. (1991). Rpc2 user guide and reference manual.
  16. Satyanarayanan, M. and Siegel, E. H. (1990). Parallel communication in a large distributed environment. Computers, IEEE Transactions on, 39(3):328-348.
  17. Soumagne, J., Kimpe, D., Zounmevo, J., Chaarawi, M., Koziol, Q., Afsahi, A., and Ross, R. (2013). Mercury: Enabling remote procedure call for high-performance computing. In Cluster Computing (CLUSTER), 2013 IEEE International Conference on, pages 1-8. IEEE.
  18. Srinivasan, R. (1995). RPC: Remote Procedure Call Protocol Specification Version 2 (RFC1831). The Internet Engineering Task Force.
  19. Sun Microsystems, I. (1988). RPC: Remote Procedure Call Protocol Specification Version (RFC1057). The Internet Engineering Task Force.
  20. UserLand Software Inc. (2015). XML-RPC Specification. http://xmlrpc.scripting.com/spec.html. Accessed: 2015-12-15.
  21. W3C (2015). SOAP Version 1.2 Part 1: Messaging Framework (Second Edition). http://www.w3.org/TR/soap12/. Accessed: 2015-12- 15.
  22. Xerox, C. (1981). Courier: The Remote Procedure Call Protocol. Xerox System Integration Standard 038112.
Download


Paper Citation


in Harvard Style

Bagci H. and Kara A. (2016). A Lightweight and High Performance Remote Procedure Call Framework for Cross Platform Communication . In Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016) ISBN 978-989-758-194-6, pages 117-124. DOI: 10.5220/0005931201170124


in Bibtex Style

@conference{icsoft-ea16,
author={Hakan Bagci and Ahmet Kara},
title={A Lightweight and High Performance Remote Procedure Call Framework for Cross Platform Communication},
booktitle={Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016)},
year={2016},
pages={117-124},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005931201170124},
isbn={978-989-758-194-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016)
TI - A Lightweight and High Performance Remote Procedure Call Framework for Cross Platform Communication
SN - 978-989-758-194-6
AU - Bagci H.
AU - Kara A.
PY - 2016
SP - 117
EP - 124
DO - 10.5220/0005931201170124