Eine Analyse Von Open-Source Message-Oriented Middlewares Hinsichtlich Der Integrationsfähigkeit Von Enterprise Integration Patterns

Total Page:16

File Type:pdf, Size:1020Kb

Eine Analyse Von Open-Source Message-Oriented Middlewares Hinsichtlich Der Integrationsfähigkeit Von Enterprise Integration Patterns Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D–70569 Stuttgart Fachstudie Eine Analyse von open-source Message-oriented Middlewares hinsichtlich der Integrationsfähigkeit von Enterprise Integration Patterns Timo Gutierrez, Marcel Graf Studiengang: Softwaretechnik Prüfer/in: Prof. Dr. Dr. h. c. Frank Leymann Betreuer/in: Michael Falkenthal, M.Sc. Beginn am: 1. April 2019 Beendet am: 1. Oktober 2019 Abstract Die Integration von modernen Softwaresystem stellt auf Grund von wachsender Komplexität und großen Datenmengen eine Herausforderung dar. Um diesen Herausforderungen zu begegnen wurden von Hohpe und Woolf Enterprise Integration Patterns (EIPs) vorgeschlagen. In diesem Kontext stellt der Integrationsstil Messaging und somit Message-Oriented Middlewares (MOMs) einen wichtigen Bestandteil dar. Sie dienen dem asynchronen und zuverlässigen Austausch von Nachrichten und vereinfachen die Integration verschiedener Plattformen und Programmiersprachen. Diese Arbeit untersucht open-source MOMs hinsichtlich ihrer Integrationsfähigkeit von EIPs. Hierfür werden die EIPs zuerst in fünf Gruppen kategorisiert. So beschreibt eine Gruppe die grundlegenden EIPs, welche integraler Bestandteile einer jeden MOM sind. Weitere EIPs umfassen nicht den Scope einer MOM. Im Rahmen dieser Arbeit werden deshalb die MOMs auf Grundlage der Gruppe weiterführenden EIPs detailliert untersucht. Diese detaillierte Analyse umfasst die drei open-source MOMs Apache ActiveMQ, Apache Kafka und RabbitMQ. Apache ActiveMQ unterstützt die weiterführenden EIPs vollständig und bietet darüber hinaus auch die einfachste Form der Implementierung. RabbitMQ und Kafka unterstützen nur Teilmengen der weiterführenden EIPs. Die Untersuchung bringt hervor, dass die Integration von EIPs in MOMs ein mächtiges Werzeug, jedoch in MOMs nicht weit verbreitet ist. 3 Inhaltsverzeichnis 1 Einleitung 15 1.1 Motivation ..................................... 15 1.2 Message-oriented Middleware ........................... 16 1.3 Enterprise Integration Pattern ........................... 17 1.4 Ziele der Fachstudie ................................ 17 1.5 Architektur des Anwendungsfall ......................... 18 1.6 Gliederung der Fachstudie ............................. 18 2 Recherche 21 2.1 Kriterien für die Recherche ............................ 21 2.2 Vorgehensweise bei der Recherche ........................ 21 2.3 Rechercheergebnis ................................. 22 2.4 Zusammenfassung und Übersicht ......................... 25 3 Referenzszenario 27 3.1 Referenzarchitektur ................................ 27 3.2 Referenzkriterien ................................. 29 4 Ergebnis und detaillierter Vergleich 31 4.1 Auswahl der MOMs ................................ 31 4.2 Integration der EIPs ................................ 32 4.3 Werkzeugunterstützung .............................. 33 4.4 Implementierung der EIPs ............................. 34 4.5 Gegenüberstellung der MOMs ........................... 39 5 Diskussion 41 6 Fazit und Ausblick 43 Literaturverzeichnis 45 5 Abbildungsverzeichnis 1.1 Referenzarchitektur für die Analyse der MOMs .................. 18 3.1 Referenzarchitektur für die Analyse der MOMs .................. 27 4.1 Red Hat CodeReady Studio mit Fuse Tooling ................... 33 4.2 Normalizer Implementierung mit Fuse Tooling .................. 36 7 Tabellenverzeichnis 2.1 Zusammenfasssung der MOMs hinsichtlich Version, Lizenz und EIP Unterstützung 25 3.1 Zusammenfassung der Kriterien für die Bewertung der MOMs .......... 30 4.1 Auswahl der MOMs, die den Kriterien entsprechen ................ 31 4.2 Detaillierte Übersicht der EIP Integration ..................... 39 9 Verzeichnis der Listings 4.1 ActiveMQ Normalizer: Konfiguration des Normalizers .............. 35 4.2 ActiveMQ Normalizer: Konfiguration der Java Bean ................ 35 4.3 ActiveMQ Normalizer: Funktion zur Normalisierung der Temperaturwerte .... 35 4.4 RabbitMQ Message Filter: Empfangen von gefilterten Nachrichten ........ 36 4.5 RabbitMQ Message Filter: Senden von gefilterten Nachrichten .......... 36 4.6 ActiveMQ Message Filter: Konfiguration des Message Filters ........... 37 4.7 ActiveMQ Content Enricher: Konfiguration des Enrichers ............. 37 4.8 ActiveMQ Content Enricher: Konfiguration der Java Bean ............ 37 4.9 ActiveMQ Content Enricher: Funktion um den Ort des Sensors hinzuzufügen .. 37 4.10 ActiveMQ Recipient List: Weiterleiten an eine statische Liste von Empfängern .. 38 4.11 ActiveMQ Content-Based Router: Routing je nach Sensortyp ........... 38 11 Akronyme AMQP Advanced Message Queueing Protocol. 23 API Application Programming Interface. 23 DSL Domain-Specific Language. 32 EE4J Eclipse Enterprise for Java. 24 EIP Enterprise Integration Pattern. 15, 17 IDE Integrierte Entwicklungsumgebung. 33 IoC Inversion of Control. 32 IoT Internet of Things. 18 JSON JavaScript Object Notation. 28 MOM Message-oriented Middleware. 15, 16 MQTT Message Queuing Telemetry Transport. 23 XML Extensible Markup Language. 28 13 1 Einleitung Die zunehmende Komplexität von Software und deren Schnittstellen oder stark wachsende Daten- mengen erfordern Muster (Pattern) um die Integration von Systemen und Daten zu vereinfachen. Ein möglicher Ansatz hierfür ist eine Message-oriented Middleware (MOM) als Integrationsplattform und die Nutzung von Enterprise Integration Patterns (EIPs) um die Integration zu vereinheitlichen. Diese Arbeit behandelt die integrierte Unterstützung von EIPs in MOMs. Das folgenden Kapitel führt in das Thema ein, erläutert die Grundlagen und zeigt die Ziele dieser Arbeit auf. 1.1 Motivation Angetrieben durch den Fortschritt in der Technologie von Datenübertragung und -speicherung, hat in den vergangen Jahren die Datensammlung in den verschiedensten Bereichen enorm zugenommen. Niedrige Kosten für Datenspeicherung und schnelle Übertragungsraten erlauben die Übermittlung und Speicherung riesiger Datenmengen, die von verschiedensten Sensoren aufgezeichnet werden. Mittlerweile sind Industriemaschinen, deren korrekte Funktionsweise durch Sensoren überwacht wird, ebenso auf die Auswertung von Sensordaten angewiesen, wie Fahrassistenzsysteme in Au- tos. Weitere Anwendungsbeispiele sind die Verwendung von Sensoren in Handys und Wearables zur Steigerung der Funktionalität, sowie die Überwachung von Luftqualität, Temperatur usw. in Gebäuden mit Hilfe von Umweltsensorik. Häufig ist eine Auswertung der Sensordaten in kürzester Zeit von hoher Bedeutung, dadieauf- gezeichneten Daten sehr schnell an Wert verlieren. Ein Fehler in einer Industriemaschine, der bei weiterem Betrieb zu deren Defekt führen kann, sollte um größere Schäden zu vermeiden möglichst früh erkannt werden. Ein CO2-Sensor oder Rauchmelder muss einen Brand erkennen, bevor dieser gefährlich wird. Wird ein Gebäude zu stark beheizt, sollte die Klimatisierung zeitnah angepasst werden, um Energie zu sparen. Werden die entsprechenden Sensordaten erst Stunden später aus- gewertet, sind sie wertlos. Eine korrekte und schnelle Datenauswertung hat somit kommerzielle, ökologische und sogar sicherheitstechnische Aspekte. An entsprechende Softwaresysteme und -architekturen werden nicht nur hohe Anforderungen hin- sichtlich Geschwindigkeit und Latenz gestellt. Um aus der gesammelten Datenmenge sinnvolle Rückschlüsse ziehen zu können, müssen die Daten aggregiert und Informationen verschiedener Sensoren miteinander kombiniert werden. In einem Gebäude soll zum Beispiel bei zu kalter Tem- peratur nur dann die Heizung aktiviert werden, wenn das Fenster geschlossen ist. Auch solchen Anforderungen muss die Software gerecht werden. 15 1 Einleitung Ein weiterer entscheidender Faktor stellt die Vielzahl und Komplexität der verschiedenen Software- systeme im Unternehmen und dessen Umfeld dar. Einerseits müssen sowohl verschiedene interne Softwaresysteme integriert und der Datenaustausch ermöglicht werden. Auf der anderen Seite müs- sen auch Integrationen zu verschiedenen externen Softwaresystemen von Kunden, Lieferanten oder Dienstleistern hergestellt werden. Um all den genannten Herausforderungen gerecht zu werden, benötigt man eine integrative und zuverlässige Kommunikation. Diese kann von MOM geboten werden. Im Hinblick auf die Verwirk- lichung eines solchen heterogenen und komplexen Datenaustausches zwischen Softwaresystemen, trifft man auf eine Vielzahl von benötigten Funktionen. Die EIP bieten Lösungsmuster für häufig auftretende Problemstellungen bei der Integration von komplexen Prozessen, Daten und Software in großen Unternehmen. Mithilfe von MOMs können diese Pattern implementiert werden. Da es sich dabei um Lösungen für wiederkehrende Problemstellungen handelt, ist es denkbar, dass MOMs bereits Implementierungen der EIPs zur Verfügung stellen. Eine Sammlung an generischen Pat- terns, die je nach Anwendungsfall konfiguriert bzw. implementiert werden können, stellen einen mächtigen Werkzeugkasten für die Integration von Softwaresystemen dar. 1.2 Message-oriented Middleware Message-oriented Middleware (MOM) bezeichnet eine Software, die asynchrone Kommunikation mittels Nachrichten (Messages) zwischen Softwaresystemen ermöglicht [Gre04; Ley18]. Eine MOM wird benötigt um zuverlässig Nachrichten von einem System auf ein Anderes zu übertragen, auch wenn die Systeme durch unzuverlässige Netzwerke verbunden sind [Gre04; Ley18]. Falls Systeme oder Netzwerkverbindungen nicht verfügbar sind, wiederholt die MOM die Übermittlung der Nachricht, bis diese schließlich erfolgreich zugestellt wird [Gre04; Ley18]. Zu
Recommended publications
  • Java Linksammlung
    JAVA LINKSAMMLUNG LerneProgrammieren.de - 2020 Java einfach lernen (klicke hier) JAVA LINKSAMMLUNG INHALTSVERZEICHNIS Build ........................................................................................................................................................... 4 Caching ....................................................................................................................................................... 4 CLI ............................................................................................................................................................... 4 Cluster-Verwaltung .................................................................................................................................... 5 Code-Analyse ............................................................................................................................................. 5 Code-Generators ........................................................................................................................................ 5 Compiler ..................................................................................................................................................... 6 Konfiguration ............................................................................................................................................. 6 CSV ............................................................................................................................................................. 6 Daten-Strukturen
    [Show full text]
  • Enterprise Integration Patterns N About Apache Camel N Essential Patterns Enterprise Integration Patterns N Conclusions and More
    Brought to you by... #47 CONTENTS INCLUDE: n About Enterprise Integration Patterns n About Apache Camel n Essential Patterns Enterprise Integration Patterns n Conclusions and more... with Apache Camel Visit refcardz.com By Claus Ibsen ABOUT ENTERPRISE INTEGRATION PaTTERNS Problem A single event often triggers a sequence of processing steps Solution Use Pipes and Filters to divide a larger processing steps (filters) that are connected by channels (pipes) Integration is a hard problem. To help deal with the complexity Camel Camel supports Pipes and Filters using the pipeline node. of integration problems the Enterprise Integration Patterns Java DSL from(“jms:queue:order:in”).pipeline(“direct:transformOrd (EIP) have become the standard way to describe, document er”, “direct:validateOrder”, “jms:queue:order:process”); and implement complex integration problems. Hohpe & Where jms represents the JMS component used for consuming JMS messages Woolf’s book the Enterprise Integration Patterns has become on the JMS broker. Direct is used for combining endpoints in a synchronous fashion, allow you to divide routes into sub routes and/or reuse common routes. the bible in the integration space – essential reading for any Tip: Pipeline is the default mode of operation when you specify multiple integration professional. outputs, so it can be omitted and replaced with the more common node: from(“jms:queue:order:in”).to(“direct:transformOrder”, “direct:validateOrder”, “jms:queue:order:process”); Apache Camel is an open source project for implementing TIP: You can also separate each step as individual to nodes: the EIP easily in a few lines of Java code or Spring XML from(“jms:queue:order:in”) configuration.
    [Show full text]
  • Unravel Data Systems Version 4.5
    UNRAVEL DATA SYSTEMS VERSION 4.5 Component name Component version name License names jQuery 1.8.2 MIT License Apache Tomcat 5.5.23 Apache License 2.0 Tachyon Project POM 0.8.2 Apache License 2.0 Apache Directory LDAP API Model 1.0.0-M20 Apache License 2.0 apache/incubator-heron 0.16.5.1 Apache License 2.0 Maven Plugin API 3.0.4 Apache License 2.0 ApacheDS Authentication Interceptor 2.0.0-M15 Apache License 2.0 Apache Directory LDAP API Extras ACI 1.0.0-M20 Apache License 2.0 Apache HttpComponents Core 4.3.3 Apache License 2.0 Spark Project Tags 2.0.0-preview Apache License 2.0 Curator Testing 3.3.0 Apache License 2.0 Apache HttpComponents Core 4.4.5 Apache License 2.0 Apache Commons Daemon 1.0.15 Apache License 2.0 classworlds 2.4 Apache License 2.0 abego TreeLayout Core 1.0.1 BSD 3-clause "New" or "Revised" License jackson-core 2.8.6 Apache License 2.0 Lucene Join 6.6.1 Apache License 2.0 Apache Commons CLI 1.3-cloudera-pre-r1439998 Apache License 2.0 hive-apache 0.5 Apache License 2.0 scala-parser-combinators 1.0.4 BSD 3-clause "New" or "Revised" License com.springsource.javax.xml.bind 2.1.7 Common Development and Distribution License 1.0 SnakeYAML 1.15 Apache License 2.0 JUnit 4.12 Common Public License 1.0 ApacheDS Protocol Kerberos 2.0.0-M12 Apache License 2.0 Apache Groovy 2.4.6 Apache License 2.0 JGraphT - Core 1.2.0 (GNU Lesser General Public License v2.1 or later AND Eclipse Public License 1.0) chill-java 0.5.0 Apache License 2.0 Apache Commons Logging 1.2 Apache License 2.0 OpenCensus 0.12.3 Apache License 2.0 ApacheDS Protocol
    [Show full text]
  • Talend Open Studio for Big Data Release Notes
    Talend Open Studio for Big Data Release Notes 6.0.0 Talend Open Studio for Big Data Adapted for v6.0.0. Supersedes previous releases. Publication date July 2, 2015 Copyleft This documentation is provided under the terms of the Creative Commons Public License (CCPL). For more information about what you can and cannot do with this documentation in accordance with the CCPL, please read: http://creativecommons.org/licenses/by-nc-sa/2.0/ Notices Talend is a trademark of Talend, Inc. All brands, product names, company names, trademarks and service marks are the properties of their respective owners. License Agreement The software described in this documentation is licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.html. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This product includes software developed at AOP Alliance (Java/J2EE AOP standards), ASM, Amazon, AntlR, Apache ActiveMQ, Apache Ant, Apache Avro, Apache Axiom, Apache Axis, Apache Axis 2, Apache Batik, Apache CXF, Apache Cassandra, Apache Chemistry, Apache Common Http Client, Apache Common Http Core, Apache Commons, Apache Commons Bcel, Apache Commons JxPath, Apache
    [Show full text]
  • Talend ESB System Management Integration User Guide
    Talend ESB System Management Integration User Guide 6.0.1 Publication date: September 10, 2015 Copyright © 2011-2015 Talend Inc. All rights reserved. Copyleft This documentation is provided under the terms of the Creative Commons Public License (CCPL). For more information about what you can and cannot do with this documentation in accordance with the CCPL, please read: http://creativecommons.org/licenses/by-nc-sa/2.0/ This document may include documentation produced at The Apache Software Foundation which is licensed under The Apache License 2.0. Notices Talend and Talend ESB are trademarks of Talend, Inc. Apache CXF, CXF, Apache Karaf, Karaf, Apache Camel, Camel, Apache Maven, Maven, Apache Archiva, Archiva, Apache Syncope, Syncope, Apache ActiveMQ, ActiveMQ, Apache Log4j, Log4j, Apache Felix, Felix, Apache ServiceMix, ServiceMix, Apache Ant, Ant, Apache Derby, Derby, Apache Tomcat, Tomcat, Apache ZooKeeper, ZooKeeper, Apache Jackrabbit, Jackrabbit, Apache Santuario, Santuario, Apache DS, DS, Apache Avro, Avro, Apache Abdera, Abdera, Apache Chemistry, Chemistry, Apache CouchDB, CouchDB, Apache Kafka, Kafka, Apache Lucene, Lucene, Apache MINA, MINA, Apache Velocity, Velocity, Apache FOP, FOP, Apache HBase, HBase, Apache Hadoop, Hadoop, Apache Shiro, Shiro, Apache Axiom, Axiom, Apache Neethi, Neethi, Apache WSS4J, WSS4J are trademarks of The Apache Foundation. Eclipse Equinox is a trademark of the Eclipse Foundation, Inc. SoapUI is a trademark of SmartBear Software. Hyperic is a trademark of VMware, Inc. Nagios is a trademark of Nagios Enterprises, LLC. All other brands, product names, company names, trademarks and service marks are the properties of their respective owners. Table of Contents 1. Introduction .............................................................................................................. 1 2. Hyperic HQ Integration .............................................................................................. 3 2.1.
    [Show full text]
  • Release Notes Date Published: 2021-03-25 Date Modified
    Cloudera Runtime 7.2.8 Release Notes Date published: 2021-03-25 Date modified: https://docs.cloudera.com/ Legal Notice © Cloudera Inc. 2021. All rights reserved. The documentation is and contains Cloudera proprietary information protected by copyright and other intellectual property rights. No license under copyright or any other intellectual property right is granted herein. Copyright information for Cloudera software may be found within the documentation accompanying each component in a particular release. Cloudera software includes software from various open source or other third party projects, and may be released under the Apache Software License 2.0 (“ASLv2”), the Affero General Public License version 3 (AGPLv3), or other license terms. Other software included may be released under the terms of alternative open source licenses. Please review the license and notice files accompanying the software for additional licensing information. Please visit the Cloudera software product page for more information on Cloudera software. For more information on Cloudera support services, please visit either the Support or Sales page. Feel free to contact us directly to discuss your specific needs. Cloudera reserves the right to change any products at any time, and without notice. Cloudera assumes no responsibility nor liability arising from the use of products, except as expressly agreed to in writing by Cloudera. Cloudera, Cloudera Altus, HUE, Impala, Cloudera Impala, and other Cloudera marks are registered or unregistered trademarks in the United States and other countries. All other trademarks are the property of their respective owners. Disclaimer: EXCEPT AS EXPRESSLY PROVIDED IN A WRITTEN AGREEMENT WITH CLOUDERA, CLOUDERA DOES NOT MAKE NOR GIVE ANY REPRESENTATION, WARRANTY, NOR COVENANT OF ANY KIND, WHETHER EXPRESS OR IMPLIED, IN CONNECTION WITH CLOUDERA TECHNOLOGY OR RELATED SUPPORT PROVIDED IN CONNECTION THEREWITH.
    [Show full text]
  • Thesis Artificial Intelligence Method Call Argument Completion Using
    Method Call Argument Completion using Deep Neural Regression Terry van Walen [email protected] August 24, 2018, 40 pages Academic supervisors: dr. C.U. Grelck & dr. M.W. van Someren Host organisation: Info Support B.V., http://infosupport.com Host supervisor: W. Meints Universiteit van Amsterdam Faculteit der Natuurwetenschappen, Wiskunde en Informatica Master Software Engineering http://www.software-engineering-amsterdam.nl Abstract Code completion is extensively used in IDE's. While there has been extensive research into the field of code completion, we identify an unexplored gap. In this thesis we investigate the automatic rec- ommendation of a basic variable to an argument of a method call. We define the set of candidates to recommend as all visible type-compatible variables. To determine which candidate should be recom- mended, we first investigate how code prior to a method call argument can influence a completion. We then identify 45 code features and train a deep neural network to determine how these code features influence the candidate`s likelihood of being the correct argument. After sorting the candidates based on this likelihood value, we recommend the most likely candidate. We compare our approach to the state-of-the-art, a rule-based algorithm implemented in the Parc tool created by Asaduzzaman et al. [ARMS15]. The comparison shows that we outperform Parc, in the percentage of correct recommendations, in 88.7% of tested open source projects. On average our approach recommends 84.9% of arguments correctly while Parc recommends 81.3% correctly. i ii Contents Abstract i 1 Introduction 1 1.1 Previous work........................................
    [Show full text]
  • Storage and Ingestion Systems in Support of Stream Processing
    Storage and Ingestion Systems in Support of Stream Processing: A Survey Ovidiu-Cristian Marcu, Alexandru Costan, Gabriel Antoniu, María Pérez-Hernández, Radu Tudoran, Stefano Bortoli, Bogdan Nicolae To cite this version: Ovidiu-Cristian Marcu, Alexandru Costan, Gabriel Antoniu, María Pérez-Hernández, Radu Tudoran, et al.. Storage and Ingestion Systems in Support of Stream Processing: A Survey. [Technical Report] RT-0501, INRIA Rennes - Bretagne Atlantique and University of Rennes 1, France. 2018, pp.1-33. hal-01939280v2 HAL Id: hal-01939280 https://hal.inria.fr/hal-01939280v2 Submitted on 14 Dec 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Storage and Ingestion Systems in Support of Stream Processing: A Survey Ovidiu-Cristian Marcu, Alexandru Costan, Gabriel Antoniu, María S. Pérez-Hernández, Radu Tudoran, Stefano Bortoli, Bogdan Nicolae TECHNICAL REPORT N° 0501 November 2018 Project-Team KerData ISSN 0249-0803 ISRN INRIA/RT--0501--FR+ENG Storage and Ingestion Systems in Support of Stream Processing: A Survey Ovidiu-Cristian Marcu∗, Alexandru
    [Show full text]
  • Java Message Service Based Performance Comparison of Apache Activemq and Apache Apollo Brokers
    Available online at sjuoz.uoz.edu.krd Vol. 5, No. 4, pp. 307 –312, Dec.-2017 p-ISSN: 2410-7549 e-ISSN: 2414•6943 journals.uoz.edu.krd JAVA MESSAGE SERVICE BASED PERFORMANCE COMPARISON OF APACHE ACTIVEMQ AND APACHE APOLLO BROKERS Qusay I. Sarhan a ,* and Idrees S. Gawdan b a Dept. of Computer Science, College of Science, University of Duhok, Kurdistan Region, Iraq – ([email protected]). b Dept. of Refrigeration & Air-Conditioning, Technical College of Engineering, Duhok Polytechnic University, Duhok, Kurdistan Region-Iraq – ([email protected]) Received: Aug. 2017 / Accepted: Dec., 2017 / Published: Dec., 2017 https://doi.org/10.25271/2017.5.4.376 ABSTRACT: Software integration is a crucial aspect of collaborative software applications and systems. It enables a number of different software applications, created by different developers, using different programming languages, and even located at different places to work with each other collaboratively to achieve common goals. Nowadays, a number of techniques are available to enable software integration. Messaging is the most prominent technique in this respect. In this paper, two leading open-source messaging brokers, Apache ActiveMQ and Apache Apollo, have been experimentally compared with each other with regard to their messaging capabilities (message sending and receiving throughputs). Both brokers support exchanging messages between heterogeneous and distributed software applications using several messaging mechanisms including Java Message Service (henceforth JMS). A number of experimental test scenarios have been conducted to obtain the comparison results that indicate the one-to-one JMS messaging performance of each broker. Overall performance evaluation and analysis showed that Apache Apollo outperformed Apache ActiveMQ in all test scenarios regarding message sending throughputs.
    [Show full text]
  • A Survey of Distributed Message Broker Queues
    A Survey of Distributed Message Broker Queues Vineet John Xia Liu University of Waterloo University of Waterloo [email protected] [email protected] ABSTRACT This paper surveys the message brokers that are in vogue today for distributed communication. Their primary goal is to facilitate the construction of decentralized topolo- gies without single points of failure, enabling fault tol- erance and high availability. These characteristics make them optimal for usage within distributed architectures. However, there are multiple protocols built to achieve this, and it would be beneficial to have a empirical comparison between their features and performance to determine their real-world applicability. Figure 1: Kafka Architecture This paper focuses on two popular protocols (Kafka and AMQP) and explores the divergence in their fea- RQ0 What are the message broker implementations tures as well as their performance under varied testing commonly in use today? workloads. RQ1 What are the common requirements for the im- plementation of message queues? KEYWORDS RQ2 What are the divergent functionalities in the distributed message broker, message queue, kafka, amqp, current message queue offerings? rabbitmq RQ3 How do each of the implementations offer relia- bility, partitioning and fault tolerance? 1 INTRODUCTION 3 KAFKA Kafka was developed at LinkedIn and primarily used Distributed Message Brokers are typically used to decou- for log processing. This worked well for Kafka’s user en- ple separate stages of a software architecture. They per- gagement metrics collection use-case. The fundamental mit communication between these stages asynchronously, features behind Kafka are performance over reliability by using the publish-subscribe paradigm.[1]. These mes- and it offers high throughput, low latency message queu- sage brokers are also finding new applications in the ing.
    [Show full text]
  • Hortonworks Data Platform Data Movement and Integration (December 15, 2017)
    Hortonworks Data Platform Data Movement and Integration (December 15, 2017) docs.cloudera.com Hortonworks Data Platform December 15, 2017 Hortonworks Data Platform: Data Movement and Integration Copyright © 2012-2017 Hortonworks, Inc. Some rights reserved. The Hortonworks Data Platform, powered by Apache Hadoop, is a massively scalable and 100% open source platform for storing, processing and analyzing large volumes of data. It is designed to deal with data from many sources and formats in a very quick, easy and cost-effective manner. The Hortonworks Data Platform consists of the essential set of Apache Hadoop projects including MapReduce, Hadoop Distributed File System (HDFS), HCatalog, Pig, Hive, HBase, ZooKeeper and Ambari. Hortonworks is the major contributor of code and patches to many of these projects. These projects have been integrated and tested as part of the Hortonworks Data Platform release process and installation and configuration tools have also been included. Unlike other providers of platforms built using Apache Hadoop, Hortonworks contributes 100% of our code back to the Apache Software Foundation. The Hortonworks Data Platform is Apache-licensed and completely open source. We sell only expert technical support, training and partner-enablement services. All of our technology is, and will remain, free and open source. Please visit the Hortonworks Data Platform page for more information on Hortonworks technology. For more information on Hortonworks services, please visit either the Support or Training page. You can contact us directly to discuss your specific needs. Except where otherwise noted, this document is licensed under Creative Commons Attribution ShareAlike 4.0 License. http://creativecommons.org/licenses/by-sa/4.0/legalcode ii Hortonworks Data Platform December 15, 2017 Table of Contents 1.
    [Show full text]
  • Code Smell Prediction Employing Machine Learning Meets Emerging Java Language Constructs"
    Appendix to the paper "Code smell prediction employing machine learning meets emerging Java language constructs" Hanna Grodzicka, Michał Kawa, Zofia Łakomiak, Arkadiusz Ziobrowski, Lech Madeyski (B) The Appendix includes two tables containing the dataset used in the paper "Code smell prediction employing machine learning meets emerging Java lan- guage constructs". The first table contains information about 792 projects selected for R package reproducer [Madeyski and Kitchenham(2019)]. Projects were the base dataset for cre- ating the dataset used in the study (Table I). The second table contains information about 281 projects filtered by Java version from build tool Maven (Table II) which were directly used in the paper. TABLE I: Base projects used to create the new dataset # Orgasation Project name GitHub link Commit hash Build tool Java version 1 adobe aem-core-wcm- www.github.com/adobe/ 1d1f1d70844c9e07cd694f028e87f85d926aba94 other or lack of unknown components aem-core-wcm-components 2 adobe S3Mock www.github.com/adobe/ 5aa299c2b6d0f0fd00f8d03fda560502270afb82 MAVEN 8 S3Mock 3 alexa alexa-skills- www.github.com/alexa/ bf1e9ccc50d1f3f8408f887f70197ee288fd4bd9 MAVEN 8 kit-sdk-for- alexa-skills-kit-sdk- java for-java 4 alibaba ARouter www.github.com/alibaba/ 93b328569bbdbf75e4aa87f0ecf48c69600591b2 GRADLE unknown ARouter 5 alibaba atlas www.github.com/alibaba/ e8c7b3f1ff14b2a1df64321c6992b796cae7d732 GRADLE unknown atlas 6 alibaba canal www.github.com/alibaba/ 08167c95c767fd3c9879584c0230820a8476a7a7 MAVEN 7 canal 7 alibaba cobar www.github.com/alibaba/
    [Show full text]