Apache ActiveMQ

Last updated
Apache ActiveMQ
Developer(s) Apache Software Foundation
Stable release
6.1.4 [1] OOjs UI icon edit-ltr-progressive.svg / 8 November 2024;9 days ago (8 November 2024)
Repository ActiveMQ Repository
Written in Java
Operating system Cross-platform
Type Java Message Service, Message-oriented middleware, Enterprise Messaging System, SOA
License Apache License 2.0
Website activemq.apache.org

Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication from more than one client or server. Supported clients include Java via JMS 1.1 as well as several other "cross language" clients. [2] The communication is managed with features such as computer clustering and ability to use any database as a JMS persistence provider besides virtual memory, cache, and journal persistency. [3]

Contents

There's another broker under the ActiveMQ umbrella code-named Artemis.

History

The ActiveMQ project was originally created by its founders from LogicBlaze [4] in 2004, as an open source message broker, hosted by CodeHaus. The code and ActiveMQ trademark were donated to the Apache Software Foundation in 2007, where the founders continued to develop the codebase with the extended Apache community.

Artemis

Artemis is another broker under the ActiveMQ umbrella based on the HornetQ code-base which was donated [5] from the JBoss community to the Apache ActiveMQ community in 2015. Artemis is the "next generation" broker from ActiveMQ. [6] [7] Artemis is a multi-protocol, embeddable, high performance, clustered, asynchronous messaging system. [8]

Technical features

ActiveMQ Classic [9] uses several modes for high availability, including both file-system and database row-level locking mechanisms, sharing of the persistence store via a shared filesystem, or true replication using Apache ZooKeeper. ActiveMQ supports a horizontal scaling mechanism called a Network of Brokers [10] out of the box. ActiveMQ supports a number of transport protocols, including OpenWire, STOMP, MQTT, AMQP, REST, and WebSockets. [11]

Usage

ActiveMQ is used in enterprise service bus implementations such as Apache ServiceMix [12] and Mule. [13] Other projects using ActiveMQ include Apache Camel [14] and Apache CXF [15] in SOA infrastructure projects. [16]

Benchmark

Coinciding with the release of Apache ActiveMQ 5.3, the world's first results for the SPECjms2007 industry standard benchmark were announced. Four results were submitted to the SPEC and accepted for publication. The results cover different topologies to analyze the scalability of Apache ActiveMQ in two dimensions. [17] [18]

Commercial support

Apache is used in enterprise software and offers limited ActiveMQ support on a voluntary basis. Users that need more extensive support may need to consult commercial companies specializing in ActiveMQ. [19]

See also

Related Research Articles

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

The Jakarta Messaging API is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicated as a sequence of bytes with no explicit message boundaries. Note that streaming protocols are almost always built above protocols using discrete messages such as frames (Ethernet), datagrams (UDP), packets (IP), cells (ATM), et al.

<span class="mw-page-title-main">Enterprise service bus</span> Communication system in a service-oriented architecture

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.

The Web Services Invocation Framework (WSIF) supports a simple and flexible Java API for invoking any Web Services Description Language (WSDL)-described service.

The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing, reliability and security.

<span class="mw-page-title-main">IONA Technologies</span> Irish software company

IONA Technologies, Inc. was an Irish software company founded in 1991. It began as a campus company linked to Trinity College Dublin had its headquarters in Dublin, and eventually also expanded its offices in Boston and Tokyo. It specialised in distributed service-oriented architecture (SOA) technology, its products connecting systems and applications by creating a network of services without requiring a centralised server or creating an information technology project. IONA was the first Irish company to float on the NASDAQ exchange. It was valued at up to US$1.75 billion at its peak. It was one of the world's 10 largest software-only companies, and around 30 new ventures spun out from it. IONA was sold to Progress Software in 2008.

<span class="mw-page-title-main">Message broker</span> Computer program module

A message broker is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Message brokers are a building block of message-oriented middleware (MOM) but are typically not a replacement for traditional middleware like MOM and remote procedure call (RPC).

JBoss Messaging is the JBoss enterprise asynchronous messaging system. It supersedes JBoss MQ as the default Java Message Service (JMS) provider in JBoss Application Server 5. JBoss Messaging has been succeeded by HornetQ.

<span class="mw-page-title-main">Apache Felix</span> Open-source OSGi framework

Apache Felix is an open source implementation of the OSGi Core Release 6 framework specification. The initial codebase was donated from the Oscar project at ObjectWeb. The developers worked on Felix for a full year and have made various improvements while retaining the original footprint and performance. On June 21, 2007, the project graduated from incubation as a top level project and is considered the smallest size software at Apache Software Foundation.

Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming interface to configure routing and mediation rules.

Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at the now defunct host CodeHaus in 2006. These two projects were combined at the Apache Software Foundation. The name "CXF" was derived by combining "Celtix" and "XFire".

Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License

HornetQ is an open-source asynchronous messaging project from JBoss. It is an example of Message-oriented middleware. HornetQ is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system. During much of its development, the HornetQ code base was developed under the name JBoss Messaging 2.0.

<span class="mw-page-title-main">Spring Roo</span> Open-source software tool

Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.

RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), MQ Telemetry Transport (MQTT), and other protocols.

Apache Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds. Kafka can connect to external systems via Kafka Connect, and provides the Kafka Streams libraries for stream processing applications. Kafka uses a binary TCP-based protocol that is optimized for efficiency and relies on a "message set" abstraction that naturally groups messages together to reduce the overhead of the network roundtrip. This "leads to larger network packets, larger sequential disk operations, contiguous memory blocks [...] which allows Kafka to turn a bursty stream of random message writes into linear writes."

<span class="mw-page-title-main">Apache RocketMQ</span> Open-source stream processing platform

RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It is the third generation distributed messaging middleware open sourced by Alibaba in 2012. On November 21, 2016, Alibaba donated RocketMQ to the Apache Software Foundation. Next year, on February 20, the Apache Software Foundation announced Apache RocketMQ as a Top-Level Project.

References

  1. "Release 6.1.4". 8 November 2024. Retrieved 15 November 2024.
  2. "Cross Language Clients". Apache ActiveMQ.
  3. "Features". Apache ActiveMQ.
  4. "IONA acquires LogicBlaze, supporters of ActiveMQ and ServiceMix ESB". InfoQ.
  5. "Donation to ActiveMQ". HornetQ. June 2015.
  6. "ActiveMQ Artemis". activemq.apache.org.
  7. "ActiveMQ Artemis Roadmap". Apache ActiveMQ.
  8. "Apache ActiveMQ Artemis Documentation - General Project Information". activemq.apache.org.
  9. "ActiveMQ Classic". activemq.apache.org.
  10. "Network of Brokers". Apache ActiveMQ.
  11. "Protocols". Apache ActiveMQ.
  12. "Apache ServiceMix". Apache ServiceMix.
  13. "ActiveMQ Integration". Mulesoft.
  14. "ActiveMQ". Apache Camel.
  15. "Axis and CXF Support". Apache ActiveMQ.
  16. "Projects using ActiveMQ". Apache ActiveMQ.
  17. "Worlds first SPECjms2007 Results using ActiveMQ 5.3". TU Darmstadt. Archived from the original on 2013-03-18. Retrieved 2013-01-16.
  18. "SPECjms2007 Results". Standard Performance Evaluation Corporation.
  19. "Support". Apache ActiveMQ.

Bibliography