You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

This page provides a high level description of the architecture of Broker-J.

Broker-J is messaging broker that implements the AMQP protocols (version 0-8, 0-9, 0-91, 0-10 and 1.0).  Any AMQP compliant messaging library can be used with the Broker.  The Broker supports on the fly message translation from one AMQP protocol to another, meaning it is possible to use the Broker to allow clients that use different AMQP protocol version to exchange messages.

The Broker has a highly pluggable architecture that allows alternative implementations to be substituted for any concern.  For instance, you can simply build a module delegating to your own storage or own authentication provider linking to your enterprise authentication backend.

Broker-J is 100% pure Java.  It can be run standalone or embedded within another Java applications.

Model

A tree of manageable categories, that are extend of the interface ConfiguredObject, underpins the Broker.   A ConfiguredObject has zero or more attributes, zero or more children and zero or more context variable name/value pairs.  A ConfiguredObject may be persisted to a configuration store so its state can be restored when the Broker is restarted.

The manageable categories are arranged into a tree structure.  SystemConfig is at the root and has a single descendent Broker.  The Broker itself has children: Port, AuthenticationProvider, VirtualHostNode amongst others.   VirtualHostNode has a child VirtualHost.  It is the VirtualHost that has categories directly involved in messaging such as Queue.  The diagram below illustrates the category hierarchy but many categories are elided for brevity.

Each ConfiguredObject has zero or more attributes.   Attributes have a name and a value which can be a Java primitive value or an instance of any class for which an AttributeValueConverter exist.  This mechanism allows attribute values to be Lists, Sets, Maps, or arbitrary structured types ManagedAttributeValues.  Attributes are marked up in the code with method annotations @ManagedAttribute 

@ManagedAttribute

 

AttributeValueConverter

 

 

 

Threading

AMQP IO Layer

AMQP Protocol Engines

Queues

HTTP, REST and Web Management

AMQP Management

Terms

 

 

 

 

  • No labels