Analysing RPC and Testing the Performance of Solutions
DOI:
https://doi.org/10.31449/inf.v42i4.1510Abstract
In distributed computing, network sockets provide mechanism for a process to establish a remote connection to another process and send messages back and forth. This interface makes possible a proper mechanism that allows a program running as a process on computer A to call a procedure or a function on remote computer B and pass parameters to it. In the case of synchronous Remote Procedure Call (RPC), processes on computer A need to wait for the finishing of execution of procedures on computer B. When the called procedure finishes, produces its result and passes it to the process on computer A that can continue execution. The question is what happens between the time of the remote procedure call and arrival of the returned values and how much the caller must wait for result. To answer that question, this paper describes the structure of third generation RPCs and analyses them putting the focus on performance and the way of marshalling parameters. To facilitate the choice between them this paper represents the results of performance tests carried out by the authorsReferences
Andrew D. Birrell and Bruce Jay Nelson (1984). Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984, Pages 39-59
Andrew S. Tanenbaum, Robbert van Renesse (1988). A Critique of the Remote Procedure Call Paradigm.
Available at
http://www.cs.vu.nl/~ast/Publications/Papers/euteco-1988.pdf
Andrew S. Tanenbaum, Maarten van Steen (2016). Distributed Systems: Principles and Paradigms. Pearson Education Inc. ISBN:978-15-302817-5-6
Andrew D. Birrell (1985). Secure Communication Using Remote Procedure Calls. ACM Transactions on Computer Systems, Vol. 3, No. 1, February 1985, Pages
-14
Paul Krzyzanowski (2012). Remote Procedure Calls Available at https://www.cs.rutgers.edu/~pxk/417/notes/08-rpc.html
Michael D. Schroeder and Michael Burrows1 (2006). Performance of Firefly RPC. http://web.mit.edu/6.826/www/notes/HO11.pdf
Hakan Bagci and Ahmet Kara (2016). A Lightweight and High Performance Remote Procedure Call Framework for Cross Platform Communication. ICSOFT-EA 2016 Abstracts. Available at:
http://www.scitepress.org/DigitalLibrary/PublicationsDetail.aspx?ID=Rqt07DUDIy8=&t=1
What is gRPC? Available at http://www.grpc.io/docs/guides/
Protocol Buffers. Available at https://developers.google.com/protocol-buffers/docs/overview#whynotxml
XML-RPC for C and C++. Available at http://xmlrpc-c.sourceforge.net/
Apache XML-RPC. Available at https://ws.apache.org/xmlrpc/
XML-RPC for Ruby. Available at https://github.com/ruby/xmlrpc
JSON-RPC 2.0. Essential Java libraries and tools for JSON-RPC 2.0development. Available at http://software.dzhuvinov.com/json-rpc-2.0.html
JSON-RPC 2.0. Available at http://software.dzhuvinov.com/json-rpc-2.0-client.html
JSON-RPC 2.0. for Ruby. Available at https://github.com/chriskite/jimson
Downloads
Published
How to Cite
Issue
Section
License
I assign to Informatica, An International Journal of Computing and Informatics ("Journal") the copyright in the manuscript identified above and any additional material (figures, tables, illustrations, software or other information intended for publication) submitted as part of or as a supplement to the manuscript ("Paper") in all forms and media throughout the world, in all languages, for the full term of copyright, effective when and if the article is accepted for publication. This transfer includes the right to reproduce and/or to distribute the Paper to other journals or digital libraries in electronic and online forms and systems.
I understand that I retain the rights to use the pre-prints, off-prints, accepted manuscript and published journal Paper for personal use, scholarly purposes and internal institutional use.
In certain cases, I can ask for retaining the publishing rights of the Paper. The Journal can permit or deny the request for publishing rights, to which I fully agree.
I declare that the submitted Paper is original, has been written by the stated authors and has not been published elsewhere nor is currently being considered for publication by any other journal and will not be submitted for such review while under review by this Journal. The Paper contains no material that violates proprietary rights of any other person or entity. I have obtained written permission from copyright owners for any excerpts from copyrighted works that are included and have credited the sources in my article. I have informed the co-author(s) of the terms of this publishing agreement.
Copyright © Slovenian Society Informatika