Abstract
While many cluster and grid computing frameworks are available, the task of building secure distributed systems or implementing distributed algorithms continue to be a challenging task due to the inherent distributed nature of such systems with multiple failure modes and security issues. In this paper, we present the design and development of remote method delegation (RMD), which is a secure lightweight grid computing platform with load balancing and code migration. RMD is focused on improving the usability issues that plague related industry solutions. The platform is implemented on the JVM (Java Virtual Machine) and supports the Java and Kotlin programming languages, however, the platform should theoretically work with other JVM languages. RMD was designed to simplify the implementation of distributed algorithms by providing a Kotlin DSL (domain specific language) that allows the programmer to define jobs within dedicated code blocks. Users from around the world can donate their own computing resources by hosting their own job server. RMD is secured by placing all untrusted code within a sandbox environment that prevents potentially malicious actions from taking place. To demonstrate the feasibility of the proposed model, a proof of concept implementation has been constructed with real examples demonstrating the usefulness of the proposed solution.
Similar content being viewed by others
References
Alt, M., Gorlatch, S.: Adapting java rmi for grid computing. Fut. Gener. Comp. Syst. 21, 699–707 (2005). https://doi.org/10.1016/j.future.2004.05.010
Anderson, D.P.: Boinc: a system for public-resource computing and storage. In: Fifth IEEE/ACM International Workshop on Grid Computing, pp. 4–10. https://doi.org/10.1109/GRID.2004.14 (2004)
Anderson, D.P., Cobb, J., Korpela, E., Lebofsky, M., Werthimer, D.: Seti@ home: an experiment in public-resource computing. Commun. ACM 45(11), 56–61 (2002)
Borthakur, D.: The hadoop distributed file system: Architecture and design. Hadoop Proj. Website 11(2007), 21 (2007)
Bruneton, E.: ASM 4.0 A Java bytecode engineering library (2011)
Chamberlain, B.L., Callahan, D., Zima, H.P.: Parallel programmability and the chapel language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007)
Choi, H., Choi, W., Quan, T.M., Hildebrand, D.G., Pfister, H., Jeong, W.K.: Vivaldi: a domain-specific language for volume processing and visualization on distributed heterogeneous systems. IEEE Trans. Visual. Comput. Graph. 20(12), 2407–2416 (2014)
Dagum, L., Menon, R.: Openmp: an industry standard api for shared-memory programming. IEEE Comput. Sci. Eng. 5(1), 46–55 (1998)
Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008)
DeVito, Z., Joubert, N., Palacios, F., Oakley, S., Medina, M., Barrientos, M., Elsen, E., Ham, F., Aiken, A., Duraisamy, K., Darve, E., Alonso, J., Hanrahan, P.: Liszt: A domain specific language for building portable mesh-based pde solvers. In: SC ’11: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, pp. 1–12 (2011)
Estrada, T., Taufer, M., Anderson, D.P.: Performance prediction and analysis of boinc projects: an empirical study with emboinc. J. Grid Comput. 7(4), 537 (2009). https://doi.org/10.1007/s10723-009-9126-3
Ferrari, T., Giacomini, F.: Network monitoring for grid performance optimization. Comput. Commun. 27(14), 1357–1363 (2004)
Foster, I., Zhao, Y., Raicu, I., Lu, S.: Cloud computing and grid computing 360-degree compared. Cloud Computing and Grid Computing 360-Degree Compared, 5. https://doi.org/10.1109/GCE.2008.4738445(2009)
Graham, R.L., Woodall, T.S., Squyres, J.M.: Open mpi: A flexible high performance mpi. In: Proceedings of the 6th International Conference on Parallel Processing and Applied Mathematics, Springer, Berlin, PPAM’05, pp 228–239. https://doi.org/10.1007/11752578_29 (2006)
Gropp, W., Lusk, E., Doss, N., Skjellum, A.: A high-performance, portable implementation of the mpi message passing interface standard. Parallel Comput. 22(6):789–828, https://doi.org/10.1016/0167-8191(96)00024-5, http://www.sciencedirect.com/science/article/pii/0167819196000245 (1996)
Günther, S., Cleenewerck, T.: Design principles for internal domain-specific languages: A pattern catalog illustrated by ruby. In: Proceedings of the 17th Conference on Pattern Languages of Programs, PLOP’10, pp 3:1–3:35. ACM, New York. https://doi.org/10.1145/2493288.2493291 (2010)
Iqbal, M.H., Soomro, T.R.: Big data analysis: Apache storm perspective. Int. J Comput. Trends Technol. 19(1), 9–14 (2015)
Islam, S., Balasubramaniam, S., Goyal, P., Sati, M., Goyal, N.: A Domain Specific Language for Clustering. In: Krishnan, P., Radha Krishna, P., Parida, L. (eds.) Distributed Computing and Internet Technology, pp 231–234. Springer International Publishing, Cham (2017)
Kong, L., Mapetu, J.P.B., Chen, Z.: Heuristic load balancing based zero imbalance mechanism in cloud computing. J Grid Comput, 1–26 (2019)
Krašovec, B., Filipčič, A.: Enhancing the grid with cloud computing. J. Grid Comput. 17(1), 119–135 (2019)
Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification, Java SE 8 Edition, 1st edn. Addison-Wesley Professional (2014)
Massey N, Jones R, Otto F, Aina T, Wilson S, Murphy J, Hassell D, Yamazaki Y, Allen M: weather@ home—development and validation of a very large ensemble modelling system for probabilistic event attribution. Quart. J. R. Meteorol. Soc. 141(690), 1528–1545 (2015)
Moeller, R., et al: Fast-serialization. https://github.com/RuedigerMoeller/fast-serialization (2014)
Silvano, C., Agosta, G., Bartolini, A., Beccari, A.R., Benini, L., Besnard, L., Bispo, J., Cmar, R., Cardoso, J.M., Cavazzoni, C., et al.: The antarex domain specific language for high performance computing. Microprocess. Microsyst. 68, 58–73 (2019)
Stevenson A, MacDonald S: Smart proxies in java rmi with dynamic aspect-oriented programming. In: 2008 IEEE International Symposium on Parallel and Distributed Processing, pp. 1–6. IEEE (2008)
Van Nieuwpoort, R., Maassen, J., Wrzesinska, G., Hofman, R., Jacobs, C., Kielmann, T., Bal, H.: Ibis: a flexible and efficient java-based grid programming environment. Concurr. Comput. Pract. Exper. 17, 1079–1107 (2005). https://doi.org/10.1002/cpe.860
Vinter, B., Bjørndalen, J, Anshus, O., Larsen, T.: A Comparison of Three MPI implementations., IOS Press, Netherlands, pp. 127–136 (2004)
W Stamos, J., Gifford, D.: Implementing remote evaluation. IEEE Trans Softw. Eng. 16, 710–722 (1990). https://doi.org/10.1109/32.56097
Wilbur, S.R., Bacarisse, B.: Building distributed systems with remote procedure call. Softw. Eng. J. 2, 148–159 (1987)
Wood, B., Watling, B., Winn, Z., Messiha, D., H Mahmoud, Q., Azim, A.: Source code for the rmd project. https://github.com/BradleyWood/RMD (2019)
Zaharia, M., Xin, R.S., Wendell, P., Das, T., Armbrust, M., Dave, A., Meng, X., Rosen, J., Venkataraman, S., Franklin, M.J., Ghodsi, A., Gonzalez, J., Shenker, S., Stoica, I.: Apache spark: a unified engine for big data processing. Commun ACM 59(11), 56–65 (2016). https://doi.org/10.1145/2934664
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Wood, B., Watling, B., Winn, Z. et al. Remote Method Delegation: a Platform for Grid Computing. J Grid Computing 18, 711–725 (2020). https://doi.org/10.1007/s10723-020-09525-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10723-020-09525-z