Chapter 2. Introduction

JBoss Messaging 2.0 alpha, is a bare-bones messaging system. This release is designed to show case the elegant architecture and high performance transport and persistence. Many other features, including state of the art clustering will be added before the final general availability (GA) release

JBoss Messaging builds upon the solid performance of JBoss Messaging 1.4 to bring unrivalled levels of performance and scalability

This release contains the following features:

  • Class beating, ultra high performance journal based persistence

    We have designed and implemented a fast append only journal which handles the persistence for JBoss Messaging 2.0. The journal is written 95% in Java for portability, and can run in one of two modes:

    a) Using pure Java NIO. This provides great performance and runs on any operating system the JVM runs on.

    b) Using Linux asynchronous IO (aio). This provides even better performance, impossible via Java alone. This is implemented via a thin C++ layer which the journal tasks to via JNI. This option is only available when running on Linux

  • JBoss Messaging 2.0 has a new high performance network transport which leverages Apache MINA to provide high performance and high scalability at network layer with an asynchronous API via Java NIO.

    The JBoss Messaging team work closely with Trustin Lee, the lead of MINA, to ensure it's smooth integration.

  • Standalone and embedded versions.

    JBoss Messaging can be embedded in your own system without the requirement of any servers at all. Just instantiate a few POJOS (Plain Old Java Objects) and you have a Messaging System running.

  • Full JMS 1.1 support

    JBoss Messaging provides a full JMS 1.1 API

  • JMS agnostic messaging core

    JBoss Messaging core is actually 100% JMS agnostic. It provides its own non JMS API and fully supports transactional (including XA), reliable, persistent messaging without JMS. The JMS API is actually provided as a thin facade on the client side which translates calls to and from the messaging core API. Abstracting out messaging functionality into a general purpose messaging core makes it easier for us to support other messaging protocols in the future, like AMQP.