The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.02 - February (2008 vol.19)
pp: 174-187
ABSTRACT
We present Natural Remote Method Invocation(NRMI): a middleware mechanism that provides a fully-generalimplementation of call-by-copy-restore semantics for arbitrarylinked data structures, used as parameters in remote procedurecalls. Call-by-copy-restore offers a more natural programmingmodel for distributed systems than traditional call-by-copy middleware,enabling remote calls to behave much like local calls. Wediscuss in depth the effects of calling semantics for middleware,describe when and why NRMI is more convenient to use thanstandard middleware, and present three implementations ofNRMI in distinct settings, showing the generality of the approach.
INDEX TERMS
Middleware, RPC, Java, call-by-copy-restore, programming model.
CITATION
Eli Tilevich, Yannis Smaragdakis, "NRMI: Natural and Efficient Middleware", IEEE Transactions on Parallel & Distributed Systems, vol.19, no. 2, pp. 174-187, February 2008, doi:10.1109/TPDS.2007.70717
REFERENCES
[1] E. Tilevich and Y. Smaragdakis, “NRMI: Natural and Efficient Middleware,” Proc. 23rd Int'l Conf. Distributed Computer Systems (ICDCS '03), pp. 252-261, 2003.
[2] A.S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms. Prentice Hall, 2002.
[3] A.S. Tanenbaum, Distributed Operating Systems. Prentice Hall, 1995.
[4] Distributed Computing Systems Course Notes, http://www.cs.wpi. edu/cs4513/b01/week3-comm week3-comm.html, 2007.
[5] Open Group, DCE 1.1 RPC Specification, http://www.open group.org/onlinepubs009629399 /, 1997.
[6] F. Reverbel and M. Fleury, “The JBoss Extensible Server,” Proc. ACM/IFIP/Usenix Int'l Middleware Conf. (Middleware), 2003.
[7] Sun Microsystems, Java 2 Enterprise Ed., http://java.sun.comj2ee/, 2007.
[8] D. Schmidt, M. Stal, H. Rohnert, and F. Buschmann, Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley & Sons, 2000.
[9] A. Stevens et al., Xdoclet, http:/xdoclet.sourceforge.net/, Apr. 2007.
[10] E. Tilevich and Y. Smaragdakis, “J-Orchestra: Automatic Java Application Partitioning,” Proc. 16th European Conf. Object-Oriented Programming (ECOOP '02), pp. 178-204, 2002.
[11] E. Tilevich and Y. Smaragdakis, “Portable and Efficient Distributed Threads for Java,” Proc. ACM/IFIP/Usenix Int'l Middleware Conf., pp. 478-492, Oct. 2004.
[12] D. Weyns, E. Truyen, and P. Verbaeten, “Distributed Threads in Java,” Proc. Int'l Symp. Distributed and Parallel Computing (ISDPC), 2002.
[13] Sun Microsystems, Remote Method Invocation Specification, http://java.sun.com/products/jdkrmi/, 1997.
[14] V. Krishnaswamy, D. Walther, S. Bhola, E. Bommaiah, G. Riley, B. Topol, and M. Ahamad, “Efficient Implementations of Java Remote Method Invocation (RMI),” Proc. Fourth Usenix Conf. Object-Oriented Technologies and Systems (COOTS), 1998.
[15] M. Philippsen, B. Haumacher, and C. Nester, “More Efficient Serialization and RMI for Java,” Concurrency: Practice and Experience, vol. 12, no. 7, pp. 495-518, May 2000.
[16] J. Maassen, R. van Nieuwpoort, R. Veldema, H.E. Bal, and A. Plaat, “An Efficient Implementation of Java's Remote Method Invocation,” Proc. ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPOPP '99), May 1999.
[17] J. Maassen, R. van Nieuwpoort, R. Veldema, H.E. Bal, T. Kielmann, C. Jacobs, and R. Hofman, “Efficient Java RMI for Parallel Programming,” ACM Trans. Programming Languages and Systems, vol. 23, no. 6, pp. 747-775, Nov. 2001.
[18] G.K. Thiruvathukal, L.S. Thomas, and A.T. Korczynski, “Reflective Remote Method Invocation,” Concurrency: Practice and Experience, vol. 10, nos. 11-13, pp. 911-926, Sept.-Nov. 1998.
[19] Object Management Group, Objects by Value Specification, http://www.omg.org/cgi-bin/doc?orbos98-01-18.pdf , Jan. 1998.
[20] J.B. Carter, J.K. Bennett, and W. Zwaenepoel, “Implementation and Performance of Munin,” Proc. 13th ACM Symp. Operating Systems Principles (SOSP '91), pp. 152-164, Oct. 1991.
[21] H.E. Bal, R. Bhoedjang, R. Hofman, C. Jacobs, K. Langendoen, T. Ruhl, and M.F. Kaashoek, “Performance Evaluation of the Orca Shared-Object System,” ACM Trans. Computer Systems, vol. 16, no. 1, pp. 1-40, Feb. 1998.
[22] Y. Aridor, M. Factor, and A. Teperman, “cJVM: A Single System Image of a JVM on a Cluster,” Proc. Int'l Conf. Parallel Programming (ICPP), 1999.
[23] M. Surdeanu and D.I. Moldovan, “Design and Performance of a Distributed Java Virtual Machine,” IEEE Trans. Parallel and Distributed Systems, vol. 13, no. 6, pp. 611-627, June 2002.
[24] W. Yu and A. Cox, “Java/DSM: A Platform for Heterogeneous Computing,” Concurrency: Practice and Experience, vol. 9, no. 11, pp.1213-1224, 1997.
[25] M. Tatsubori, T. Sasaki, S. Chiba, and K. Itano, “A Bytecode Translator for Distributed Execution of Legacy Java Software,” Proc. 15th European Conf. Object-Oriented Programming (ECOOP '01), June 2001.
[26] A. Spiegel, “Automatic Distribution of Object-Oriented Programs,” PhD dissertation, FB Mathematik und Informatik, Freie Univ. Berlin, Dec. 2002.
[27] B. Haumacher, J. Reuter, and M. Philippsen, JavaParty: A Distributed Companion to Java, http://wwwipd.ira.uka.deJava Party/, 2007.
[28] M. Philippsen and M. Zenger, “JavaParty—Transparent Remote Objects in Java,” Concurrency: Practice and Experience, vol. 9, no. 11, pp. 1125-1242, 1997.
[29] M. Dahm, “Doorastha—A Step toward Distribution Transparency,” Proc. Java Informations Tage/Net.ObjectDays Conf. (JIT), 2000.
[30] J. Waldo, G. Wyant, A. Wollrath, and S. Kendall, “A Note on Distributed Computing,” Technical Report SMLI TR-94-29, Sun Microsystems Laboratories, Nov. 1994.
5 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool