Studying Systems of Open Source Messaging
Total Page:16
File Type:pdf, Size:1020Kb
Journal of Theoretical and Applied Information Technology 15th October 2019. Vol.97. No 19 © 2005 – ongoing JATIT & LLS ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195 STUDYING SYSTEMS OF OPEN SOURCE MESSAGING ALEKSANDER BONDARENKO, KONSTANTIN ZAYTSEV National Research Nuclear University MEPhI (Moscow Engineering Physics Institute), Kashirskoe Avenue 31, Moscow, 115409, Russia ABSTRACT Modern large industrial and financial structures apply numerous various information systems (IS) which exchange data while communicating with each other. In order to implement such communication nowadays, specialized messaging systems are used or transport components comprised of one or several software products. This article compares four open source software products used in messaging systems: Apache Kafka, gRPC, ZeroMQ, and RabbitMQ, which satisfy criteria of Secure Sockets Layer/Transport Layer Security (SSL/TLS) encryption and possibility to operate directly with Java platform applications, that is, to provide Java API. In order to perform these studies, comparison environment was generated with four coordinates: supported communication type, productivity, reliability, and community support. Keywords: Open Source Systems, Apache Kafka, Grpc, Zeromq, Rabbitmq, Messaging, Publish&Subscribe, RPC, Streaming. INTRODUCTION Some crediting and financial institutions start development of intermodular communication With the increase in applied IS, the scope of for platform architecture. Intermodular message exchange also increases, hence, aiming at communication is based on any messaging system, unification and standardization of exchange, it is whether it is message broker or transport library. In required to develop specialized interconnecting large software products, it is also required to systems. In modern world, where Internet of Things implement several communication types focusing (IoT) exerts significant influence on global on messaging rate or high reliability of delivery. economy by amount of investments (about $6 This article compares messaging systems based on trillion) and is already implemented into global publish/subscribe communications [7] and point-to- banking, it would be reasonable to consider point communications by means of remote capabilities of various interconnecting software procedure call [8]. products [1]. In general, interconnecting systems Messaging as a basic process of integration use certain patterns of data exchange, they should of large information systems is always a relevant be selected prior to selection of protocols, subject for research. A lot of research has been communication methods, and auxiliary carried out, characteristic and relevant for its time, infrastructure of developed system. This studying the methods of exchange and recommendation is obvious: if it has not been done transmission, ready-made software solutions at in advance, then in the course of IS development, different stages of the evolution of messaging while modifying interconnecting systems, it would systems. For example, in the articles [9, 10], the be required to modify code, architecture, safety authors evaluate the performance of the ESB model, and its communications with external world architecture, including open source, and in the [2]. article [11] the performance of the middleware as a Communication pattern should be selected whole. A later study [12, 13] evaluates more using several approaches based on message- modern software solutions, taking into account the oriented middleware. At present messaging on the requirements of distributed systems and working basis of enterprise service bus (ESB) is widely with big data, such as Apache Kafka and Rabbit used, it is based on the principles of service- MQ. In [14, 15], a comparative analysis of oriented architecture (SOA) [3]. Such approach RabbitMQ vs ActiveMQ vs OpenMQ was carried proved its efficiency during recent years, however, out. Thus, due to the long existence and importance with increased number of transferred data, number of the messaging process, this topic has been deeply and variety of transactions the drawbacks of such studied. Since every year the IT industry poses new approach become obvious, and the developers start challenges in terms of data volume, reliability and to search for more promising and modern speed of their transmission, new systems appear, technologies [4, 5, 6]. 5115 Journal of Theoretical and Applied Information Technology 15th October 2019. Vol.97. No 19 © 2005 – ongoing JATIT & LLS ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195 existing ones are updated, which leads to the need a comparative analysis of these solutions by for repeated research. significant criteria for building integration With the growth of data volume and interactions in large IT structures. complexity of structures, the question arises of the 2.MATERIALS AND METHODS reliability and speed of data delivery for further 2.1. Selection of software for comparison analysis and processing. Modern solutions with an Software products for analysis were selected innovative approach and improved algorithms come with accounting for three main criteria: to the market of messaging systems to implement - product should support SSL/TLS reliable, safe and fast message delivery, displacing encryption; traditional solutions, for example, based on - product should communicate directly message queues and the principles of the corporate with Java platform applications (provision of service bus. In this work, in a comparative analysis, Java API); among the software solutions there are such modern - it should be open source product. software products as Apache Kafka and gRPC that Initial selection of software products was meet the modern challenges of the IT industry. based on analysis of publications about messaging The research hypothesis is as follows: as a result of systems. Then, using the mentioned criteria, only comparative analysis, the Apache Kafka software appropriate products were selected, i.e., the product is a leader in the group of systems that following messaging systems: Apache Kafka [16], implement Publish / Subscribe interactions; gRPC Rabbit MQ [17], ZeroMQ [18], and gRPC [19]. is a leader in a group of systems that implement The degree of compliance of the mentioned open point-to-point interactions. source products with the highlighted criteria is After reading this article, readers will find out what summarized in Table 1. promising software solutions exist for messaging with different types of interaction and the results of Table 1. Compliance of software products with selected criteria System Apache Kafka Rabbit MQ ZeroMQ gRPC Criterion SSL/TLS encryption + + +/- (CurveZMQ required) + Java API + + +/- (binding jzmq) + Open Source + + + + 2.2. Selection of space coordinates for point-to-point strategy. Therefore, it would be comparison incorrect to compare all aforementioned products in The most important characteristic of any terms of productivity and reliability due to peculiar software product is the scope of functions which features of their architecture. Moreover, since the can be performed by this product, and productivity, second group is comprised of libraries, it would be that is, the scope of performed work per unit time. incorrect to discuss their reliability and guarantee of Banking integrated software also requires for message delivery since this is the task of brokers reliability in order to store data in the best way, and from the first group. While using libraries, community support demonstrating relevance of developers of modules should pay attention to solution regarding modern trends facilitating reliability of message delivery, the libraries only competition with existing financial and engineering provide good rate, minimum latency, and user- companies. friendly API. In this regard it was decided to carry Taking this into account, the following out primary comparison of supported comparison coordinates of software products were communication types between all software selected: products, comparison in terms of productivity and 1) supported communication types; community support in Publish/Subscribe and Point- 2) productivity; to-Point groups; and reliability had to be analyzed 3) reliability; only in the scope of the first group of products. As 4) community support. a consequence, it would be possible to determine Apache Kafka and RabbitMQ are separate optimum pair of software products covering both brokers with midway center, mainly with communication types. Publish/Subscribe messaging strategy, and ZeroMQ Sum of estimates for each product was and gRPC are embedded third-party libraries with calculated according to Eq. (1). 5116 Journal of Theoretical and Applied Information Technology 15th October 2019. Vol.97. No 19 © 2005 – ongoing JATIT & LLS ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195 Transport libraries for remote procedure call 100 ∙ ∙ ,1 in ZeroMQ and gRPC were compared as follows: ZeroMQ was tested using native tool for where S was the estimate of tool; n was the number load testing by library developers in the command of comparison criteria; Zi was the value of criterion line form. Messages of various size in the range compliance; i was the criterion weight (from 0 to from 1 byte to 512 Mbytes were generated, 1). throughput capacity and latency were measured. The following scale has been proposed for gRPC was tested using specialized tool for load criterion estimation: 0 - if criterion is not complied testing: ghz, also in command line