-
Enhancing Performance of Cloud-based Software Applications with GraalVM and Quarkus
Authors:
M. Sipek,
D. Muharemagic,
B. Mihaljevic,
A. Radovan
Abstract:
Increased complexity of network-based software solutions and the ever-rising number of concurrent users forced a shift of the IT industry to cloud computing. Conventional network software systems commonly based on monolithic application stack running on costly physical single-purpose servers are affected by significant problems of resource management, computing power distribution, and scalability.…
▽ More
Increased complexity of network-based software solutions and the ever-rising number of concurrent users forced a shift of the IT industry to cloud computing. Conventional network software systems commonly based on monolithic application stack running on costly physical single-purpose servers are affected by significant problems of resource management, computing power distribution, and scalability.Such implementation is restricting applications to be reduced to smaller, independent services that can be more easily deployed, managed, and scaled dynamically; therefore, embellishing environmental uniformity across development, testing, and production. Current cloud-based infrastructure frequently runs on containers placed in Kubernetes or Docker-based cluster, and the system configuration is considerably different compared to the environment prevailed with common virtualizations. This paper discusses the usage of GraalVM, a polyglot high-performance virtual machine for JVM-based and other languages, combined with new Kubernetes native Java tailored stacked framework named Quarkus, formed from enhanced Java libraries. Moreover, our research explores GraalVMs creation of native images using Ahead-Of-Time (AOT) compilation and Quarkus deployment to Kubernetes. Furthermore, we examined the architectures of given systems, various performance variables, and differing memory usage cases within our academic testing environment and presented the comparison results of selected performance measures with other traditional and contemporary solutions
△ Less
Submitted 15 December, 2021;
originally announced January 2022.
-
Exploring Aspects of Polyglot High-Performance Virtual Machine GraalVM
Authors:
M. Å ipek,
B. Mihaljević,
A. Radovan
Abstract:
Contemporary software often becomes vastly complex, and we are required to use a variety of technologies and different programming languages for its development. As interoperability between programming languages could cause high overhead resulting in a performance loss, it is important to examine how a current polyglot virtual machine with a compiler written in a high-level object-oriented languag…
▽ More
Contemporary software often becomes vastly complex, and we are required to use a variety of technologies and different programming languages for its development. As interoperability between programming languages could cause high overhead resulting in a performance loss, it is important to examine how a current polyglot virtual machine with a compiler written in a high-level object-oriented language deals with it. OpenJDK's Project Metropolis presented the GraalVM, an open-source, high-performance polyglot virtual machine, mostly written in Java. This paper presents GraalVM's architecture and its features; furthermore, examining how it resolves common interoperability and performance problems. GraalVM makes software ecosystem productive when combining various programming languages, for example, Java, JavaScript, C/C++, Python, Ruby, R, and others. The vital part of GraalVM is the Graal compiler written in Java, which allows developers to maintain and optimize code faster, simpler, and more efficient, in comparison to traditional compilers in C/C++ languages. Graal can be used as a just-in-time (JIT) or as static, ahead-of-time (AOT) compiler. Graal is an aggressively optimizing compiler implementing common compiler optimizations, with emphasis on outstanding inlining and escape analysis algorithms. This paper compares Graal with some of the best-specialized competitors, and presents our results tested within an academic environment.
△ Less
Submitted 15 December, 2021;
originally announced December 2021.
-
Blockchain as an IoT intermediary
Authors:
M. Sipek,
M. Zagar,
B. Mihaljevic
Abstract:
Blockchain technology provides a private, secure, transparent decentralized exchange of data. Also, blockchain is not limited to a particular area, but it has a wide range of applications and can be integrated into a variety of Internet interactive systems. For example, the Internet of Things (IoT), supply chain tracking, Electronic Health Records (EHR), digital forensics, identity management, tru…
▽ More
Blockchain technology provides a private, secure, transparent decentralized exchange of data. Also, blockchain is not limited to a particular area, but it has a wide range of applications and can be integrated into a variety of Internet interactive systems. For example, the Internet of Things (IoT), supply chain tracking, Electronic Health Records (EHR), digital forensics, identity management, trustless payments, and other key business elements will all benefit from its implementation. Next layer solutions such as Ethereum 2.0, Polkadot, Cardano, and other Web 3.0 technologies provide developers versatility. Moreover, these platforms utilize smart contracts which are similar to standard, traditionalized software during development but offer key utilities to end-users such as online wallets, secure data with transparent rules. Blockchain is receiving a lot of attention in educational technology (EduTech) as it aims to achieve a more transparent and multipurpose educational system. In addition to smart contract technology which defines how data should be registered, gathered and processed, blockchain can be used as an IoT intermediary for mobile usage. Therefore, we implemented an educational learning platform powered by blockchain technology to examine feasibility in industry and academic environment. In essence, this is a web application which is adapted to mobile platform and connected to blockchain for crucial data exchanges. In this paper we want to emphasize the potential of blockchain technology in multiple sectors as well as the need to really understand the underlying principles which are allowing disruptability of traditional centralized software solutions.
△ Less
Submitted 15 December, 2021;
originally announced December 2021.
-
Application of Blockchain Technology for Educational Platform
Authors:
M. Sipek,
M. Zagar,
B. Mihaljevic,
N. Draskovic
Abstract:
Nowadays, huge amounts of data are generated every second, and a quantity of that data can be defined as sensitive. Blockchain technology has private, secure, transparent and decentralized exchange of data as native. It is adaptable and can be used in a wide range of Internet-based interactive systems in academic and industrial settings. The essential part of programmable distributed ledgers such…
▽ More
Nowadays, huge amounts of data are generated every second, and a quantity of that data can be defined as sensitive. Blockchain technology has private, secure, transparent and decentralized exchange of data as native. It is adaptable and can be used in a wide range of Internet-based interactive systems in academic and industrial settings. The essential part of programmable distributed ledgers such as Ethereum, Polkadot, Cardano and other Web 3.0 technologies are smart contracts. Smart contracts are programs executed on the global blockchain, the code is public as well as all of the data managed within the transactions, thus creating a system that is reliable and cannot be cheated if designed properly. In this paper, in order to make the educational system more transparent and versatile we will describe an educational learning platform designed as a distributed system.
△ Less
Submitted 15 December, 2021;
originally announced December 2021.
-
Distributed Applications in Gamification of the Learning Process
Authors:
M. Zagar,
M. Sipek,
N. Draskovic,
B. Mihaljevic
Abstract:
Driven by the fact that many of us experienced softer or not-so-soft lockdown, the intention of a couple of instructors at our university was to develop a collaborative tool that could help in online delivery and gamification on two courses that are delivered in the Business and IT curriculums we are offering to our students. That tool could be described as a decentralized web application that sim…
▽ More
Driven by the fact that many of us experienced softer or not-so-soft lockdown, the intention of a couple of instructors at our university was to develop a collaborative tool that could help in online delivery and gamification on two courses that are delivered in the Business and IT curriculums we are offering to our students. That tool could be described as a decentralized web application that simulates Internet marketing principles and helps in gamification of the learning process for our students. We planned our web application for Internet marketing simulation as the gamification of the learning process, which is one of the basics for active learning for Internet Marketing course for International Business students, to gain new class activities by online simulation competing in the field of Internet marketing principles; and for IT students in developing the Web application and also on adopting Blockchain technologies for the distributed reports which need to have a consensus of all teams included in the simulation. The proposed solution includes the design of business logic simulation and using four main digital marketing tools social networking, content creating and sharing, search engine marketing, and display advertising in use of such application for hands-on online class exercises.
△ Less
Submitted 15 December, 2021;
originally announced December 2021.
-
Next-generation Web Applications with WebAssembly and TruffleWasm
Authors:
M. Sipek,
D. Muharemagic,
B. Mihaljevic,
A. Radovan
Abstract:
In modern software development, the JavaScript ecosystem of various frameworks and libraries used to develop contemporary web applications presents many advantages. JavaScript is a widely known interpreted programming language, simple to learn and start development, and with numerous third-party libraries and extensions. However, with the rise of highly user-interactive websites and browser-based…
▽ More
In modern software development, the JavaScript ecosystem of various frameworks and libraries used to develop contemporary web applications presents many advantages. JavaScript is a widely known interpreted programming language, simple to learn and start development, and with numerous third-party libraries and extensions. However, with the rise of highly user-interactive websites and browser-based games, in some cases, JavaScripts executable engine could lack in performance. Therefore, developers could combine several other programming languages to create a polyglot user-interactive interoperable system to develop efficient modern web applications. The interoperability modules offer significant advantages but also present challenges in the execution due to high complexity and longer compilation times. This paper explores WebAssembly, a binary format compilation target with a low-level assembly-like language used for targeting from other programming languages. The binary format allows near-native performance level due to its compactness, as it prioritizes usage of low-level languages. Moreover, as a continuation of our previous research of the GraalVM ecosystem, we analyzed a guest language implementation of a WebAssembly based system, TruffleWasm, hosted on GraalVM and Truffle Java framework. This paper presents the architecture and review of the TruffleWasm within the GraalVM-based ecosystem as well as from performance test results within our academic environment.
△ Less
Submitted 15 December, 2021;
originally announced December 2021.