3 research outputs found
A high performance Java middleware for general purpose computing and capacity planning.
Programa de P?s-Gradua??o em Ci?ncia da Computa??o. Departamento de Ci?ncia da Computa??o, Instituto de Ci?ncias Exatas e Biol?gicas, Universidade Federal de Ouro Preto.Middlewares ou Frameworks s?o fundamentais no desenvolvimento de aplica??es distribu?das
devido a complexidade das mesmas. Muitas solu??es foram propostas nas ?ltimas tr?s
d?cadas de melhorias e a linguagem Java faz parte destes esfor?os. A comunidade Java
? enorme e a linguagem oferece suporte para computa??o de alto desempenho (HPC),
assim como para plataformas de pequeno porte, tais como as adotadas para IoT. Os
middlewares Java para HPC implementam funcionalidades, tais como escalonamento de
processos, toler?ncia a falhas, portabilidade de c?digo, instala??o simplificada em grandes
clusters, desenvolvimento colaborativo na pilha de servi?os em nuvem, execu??o de c?digo
existente sem refatora??o, suporte a estruturas de dados distribu?das e nativas, execu??o
de tarefas de forma ass?ncrona no cluster, suporte a cria??o de vari?veis globais distribu?das,
conceito de super-pares e muitas outras melhorias. Infelizmente, tais funcionalidades
nunca foram reunidas em uma API ?nica de uma solu??o de middleware simples e r?pida.
Neste trabalho, ? apresentado o Java C?&L? ou simplesmente JCL, um middleware
para desenvolvedores Java que adota computa??o reflexiva e possui modelo de programa??o
baseado em endere?amento compartilhado e distribu?do. O JCL re?ne diversas
funcionalidades apresentadas separadamente nas ?ltimas d?cadas, permitindo construir
aplica??es paralelas ou distribu?das a partir de poucas instru??es port?veis e sendo capaz
de ser executado sobre diferentes plataformas, incluindo as IoT. Este trabalho apresenta
as funcionalidades e a arquitetura do JCL, compara e contrasta JCL e seus concorrentes,
e apresenta resultados experimentais de aplica??es JCL.Middleware systems or frameworks are fundamental in the development of distributed
applications due to their complexity. Several solutions were proposed in the last three
decades of improvements and Java can be considered as part of these efforts. The Java
community is huge and the language supports several features designed for high performance
computing (HPC), but also for small platforms like the Internet of Things (IoT)
ones. The Java middlewares proposed for HPC implement several features, such as
scheduling, fault tolerance, code portability, simple deployment over large clusters, collaborative
development in the cloud stack, execution of existing code without refactorings,
native support for distributed data structures, asynchronous task execution, support for
distributed global variables, super-peer concept and many others, but without integrating
them. Unfortunately, these features were not put together in a simple and fast middleware
solution. In this paper, we present Java C?&L? or just JCL, a distributed shared
memory lightweight middleware for Java developers that separates business logic from
distribution issues during the development process and gathers several features presented
separately in the last decades of middleware literature, allowing building distributed or
parallel applications with few portable instructions and capable to run over different platforms,
including small ones. This paper describes JCL?s features, compares and contrasts
JCL to other Java middleware systems, and reports performance measurements of JCL
applications in several distinct scenarios
A general-purpose distributed computing Java middleware.
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
A middleware solution for integrating and exploring IoTand HPC capabilities.
Even with the considerable advances in the development of middleware solutions, there is still a substantial gap in Internet of Things (IoT) and high?performance computing (HPC) integration. It is not possible to expose services such as processing, storage, sensing, security, context awareness, and actuating in a unified manner with the existing middleware solutions. The consequence is the utilization of several solutions with their particularities, thus requiring different skills. Besides that, the users have to solve the integration and all heterogeneity issues. To reduce the gap between IoT and HPC technologies, we present the JavaC?&L? (JCL), a middleware used to help the implementation of distributed user?applications classified as IoT?HPC. This ubiquity is possible because JCL incorporates (1) a single application programming interface to program different device categories; (2) the support for different programming models; (3) the interoperability of sensing, processing, storage, and actuating services; (4) the integration with MQTT technology; and (5) security, context awareness, and actions services introduced through JCL application programming interface. Experimental evaluations demonstrated that JCL scales when doing the IoT?HPC services. Additionally, we identify that customized JCL deployments become an alternative when Java?Android and vice?versa code conversion is necessary. The MQTT brokers usually are faster than JCL HashMap sensing storage, but they do not perform distributed, so they cannot handle a huge amount of sensing data. Finally, a short example for monitoring moving objects exemplifies JCL facilities for IoT?HPC development