Apache ActiveMQ
Encyclopedia
Apache ActiveMQ is an open source
(Apache 2.0 licensed) message broker
which fully implements the Java Message Service
1.1 (JMS). It provides "Enterprise Features" like clustering, multiple message stores, and ability to use any database
as a JMS persistence
provider besides VM
, cache
, and journal
persistency.
Apart from Java, ActiveMQ can be also used from .NET
, C
/C++
or Delphi
or from scripting languages like Perl
, Python
, PHP
and Ruby
via various "Cross Language Clients" together with connecting to many protocols and platforms. These include several standard wire-level protocols, plus their own protocol called OpenWire.
ActiveMQ is used in enterprise service bus
implementations such as Apache ServiceMix
, Apache Camel
, and Mule
.
ActiveMQ is often used with Apache ServiceMix
, Apache Camel
and Apache CXF
in SOA
infrastructure projects.
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.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
(Apache 2.0 licensed) message broker
Message broker
Message broker is an intermediary program which translates the language of a system from one internationally recognized language to another by way of a telecommunications medium.-Pattern:...
which fully implements the Java Message Service
Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
1.1 (JMS). It provides "Enterprise Features" like clustering, multiple message stores, and ability to use any database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
as a JMS persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....
provider besides VM
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...
, cache
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
, and journal
Journal (computing)
In computer storage, a journal is a chronological record of data processing operations that may be used to construct or reinstate an historical or alternative version of a computer system or computer file....
persistency.
Apart from Java, ActiveMQ can be also used from .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
or Delphi
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...
or from scripting languages like Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
and Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
via various "Cross Language Clients" together with connecting to many protocols and platforms. These include several standard wire-level protocols, plus their own protocol called OpenWire.
ActiveMQ is used in enterprise service bus
Enterprise service bus
An enterprise service bus is a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture...
implementations such as Apache ServiceMix
Apache ServiceMix
Apache ServiceMix is an enterprise-class open-source distributed enterprise service bus and service-oriented architecture . It was built from the ground up on the semantics and APIs of the Java Business Integration specification JSR 208 and released under the Apache License...
, Apache Camel
Apache Camel
Apache Camel is a rule-based routing and mediation engine which provides a Java object-based implementation of the Enterprise Integration Patterns using an API to configure routing and mediation rules...
, and Mule
Mule (software)
Mule is a lightweight enterprise service bus and integration framework. It can handle services and applications using disparate transport and messaging technologies...
.
ActiveMQ is often used with Apache ServiceMix
Apache ServiceMix
Apache ServiceMix is an enterprise-class open-source distributed enterprise service bus and service-oriented architecture . It was built from the ground up on the semantics and APIs of the Java Business Integration specification JSR 208 and released under the Apache License...
, Apache Camel
Apache Camel
Apache Camel is a rule-based routing and mediation engine which provides a Java object-based implementation of the Enterprise Integration Patterns using an API to configure routing and mediation rules...
and Apache CXF
Apache CXF
Apache CXF is an open-source, fully featured Web services framework. It originated as the combination of two open-source projects: Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus. These two projects were combined by people working together at the Apache...
in SOA
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
infrastructure projects.
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
Spec
-Specification:* Specification , an explicit set of requirements to be satisfied by a material, product, or service** "Spec sheet" or datasheet used to describe something technical...
and accepted for publication. The results cover different topologies to analyze the scalability of Apache ActiveMQ in two dimensions.
See also
- StormMQStormMQIn computing, StormMQ is a message queuing service , using the standard Advanced Message Queuing Protocol . StormMQ is a hosted, On-Premise or Cloud solution for Machine-to-Machine Message Queuing using AMQP...
- Apache QpidApache QpidApache Qpid is an open source messaging system which implements the Advanced Message Queuing Protocol. It provides transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support.-See also:*Apache ActiveMQ*Message-oriented...
- Message-oriented middlewareMessage-oriented middlewareMessage-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...
- Enterprise Messaging SystemEnterprise messaging systemAn enterprise messaging system is a set of published Enterprise-wide standards that allows organizations to send semantically precise messages between computer systems. EMS systems promote loosely coupled architectures that allow changes in the formats of messages to have minimum impact on...
- Enterprise Integration PatternsEnterprise Integration PatternsEnterprise Integration Patterns is a book by Gregor Hohpe and Bobby Woolf and describes a number of design patterns for the use of enterprise application integration and message-oriented middleware....
- Service-Oriented ArchitectureService-oriented architectureIn software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
- Event-driven SOAEvent-driven SOAEvent-driven SOA is a form of service-oriented architecture , combining the intelligence and proactiveness of event-driven architecture with the organizational capabilities found in service offerings...
External links
- Apache ActiveMQ web site
- "Apache ActiveMQ" excerpt from ActiveMQ in Action
- "Deploying ActiveMQ for large numbers of concurrent applications" excerpt from ActiveMQ in Action
- Enterprise ActiveMQ web site - downloads, subscriptions, training, consulting
- CamelOne 2011 Conference
- Enterprise Messaging with ActiveMQ
- Apache ActiveMQ Reference Guide
- ActiveMQ Foundation Guide
- ActiveMQ Monitor (AMon)
- Apache ActiveMQ LDAP and JDBC Security Plugins
- SPECjms2007 Results
- Introduction to Messaging With Apache ActiveMQ