A general‐purpose distributed computing Java middleware. (3rd October 2018) - Almeida, André Luís Barroso; Cimino, Leonardo de Souza; de Resende, José Estevão Eugênio; Silva, Lucas Henrique Moreira; Rocha, Samuel Queiroz Souza; Gregorio, Guilherme Aparecido; Paiva, Gustavo Silva; Delabrida, Saul; Santos, Haroldo Gambini; de Carvalho, Marco Antonio Moreira; Aquino, Andre Luiz Lins; Lima, Joubert de Castro
Summary: The middleware solutions for General‐Purpose Distributed Computing (GPDC) have distinct requirements, such as task scheduling, processing/storage fault tolerance, code portability for parallel or distributed environments, simple deployment (including over grid or multi‐cluster environments), collaborative development, low code refactoring, native support for distributed data structures, asynchronous task execution, and support for distributed global variables. These solutions do not integrate these requirements into a single deployment with a unique API exposing most of these requirements to users. The consequence is the utilization of several solutions with their particularities, thus requiring different user skills. Besides that, the users have to solve the integration and all heterogeneity issues. To reduce this integration gap, in this paper, we present Java Cá&Lá (JCL), a distributed‐shared‐memory and task‐oriented lightweight middleware for the Java community that separates business logic from distribution issues during the development process and incorporates several requirements that were presented separately in the GPDC middleware literature over the last few decades. JCL allows building distributed or parallel applications with only a few portable API calls, thus reducing the integration problems. Finally, it also runs on different platforms, including small single‐board computers. This work compares and contrasts JCL with other Java middleware systems and reports experimental evaluations of JCL applications in several distinct scenarios.