Please note this page is present for reference only. QMan has been removed and is no longer a released component.
At package level, QMan is composed by 4 core packages illustrated in the picture below :
This package contains all configuration entities / items shared between all QMan components.
Those includes both configuration items that are directly under the user control and not-public items used internally to configure (sub) components.
As you can see, the configuration package is a central grouping of components that serves the remaining three modules.
When QMan starts, this component is responsible to build the configuration for that instance. As you can see it uses several built-in builders in order to create and populate the configuration instance.
Encapsulates a configuration for a QMan instance. Note that this is a singleton because it must be accessed from everywhere inside QMan sub-modules.
Active participants of the configuration build process. Basically they are responsible to parse a specific section of the (optional) qman-configuration file that is given at QMan startup. At the moment we have two implementantion of this interface :
- WorkerManagerConfigurationParser : parses the configuration data of the internal worker manager; It creates a WorkerManagerConfigurationData instance.
- BrokerConnectionDataParser : parses the connection data of declared brokers; For each configured broker a corresponding BrokerConnectionData instance is created.
A value object encapsulating configuration data for the work manager.
A value object encapsulating connection data of a remote broker.
A map associating a code with an access mode. At the moment we have three access modes :
- RO : Read only;
- RW : Read / Write;
- RC : Read create;
Each time a message is received from a remote broker there will be a specific message handler that is responsible for processing that message.
On top of that, message handlers mapping associates an operation code (a character) with a message handler instance.
As you can see, there are two distinct collections of mappings. The first one contains message handlers associates with management queue, while the second one is referred to message handlers associated with method reply queue.
Contains all services that are part of QMan JMX adapter. A special note should be done for this package because even from the picture is not clear, the JMX core could be used independently from the WSDM adapter.
That means this package contains all services and interfaces needed for expose a Qpid management domain model using JMX.
That fits a management scenario where there's a java agent layer that wants to monitor / instrument / manage one or more remote brokers.
Each managed entity will have its own JMX representation as an MBean with common and specific features (depending on the resource type).
JMX interfaces and entities are detailed here
Components that belong to this package enable QMan interfaces to be exposed using WS-DM / HTTP. As part of that, this package contains
- standard JEE Web components (Servlets and Context Listeners).
- WS-DM specific components
Note that this is an additional layer over the previous JMX core so the basically the same considerations apply management resources (in this case we call them WS-Resources).
Simply speaking, we could say that the whole WSDM Layer acts as a facade of the JMX Adapter, so it should be able to control the lifecycle of a that adapter. This component is a web component that (as the name suggests) provides a lifecycle management (startup & shutdown) of a JMX adapter instance.
An HTTP Servlet that listens for incoming WS-DM / HTTP requests and dispatches those requests to the appropriate handler.
A front controller of the JMX instrumentation layer exposed itself for management (as an MBean).
QMan object representation of a WS-Resource. A WS-Resource is a composition of a management resource and a Web service through which the resource can be accessed.
A static WS-Resource that acts as a controller / facade of QMan WS-DM management domain model. Basically it provides the following features :
- WS-Resource creation : When a new resource is built on JMX layer, it builds the corresponding WS-Resource representation (WS-Resource instance, WSDL, RMD and capabilities)
- WS-Resource deletion : When a resource is deleted on JMX layer (i.e. a connection that has been closed, a session that has been destroyed), it deletes the corresponding WS-Resource
- Notifications : Acting as a notification producer, each time a WS-Resource is created / destroyed a dedicated message is published on a lifecycle topic.
A WS-Resource that enables QMan notifications. It provides operations that allow a requestor to query and manipulate subscription resources that it manages. For example it is possible (on requestor side) to pause and resume a subscription.
This is the interface that all QMan WS-Resources have. Although a concrete implementation of this interface is built at runtime, it indicates that the resources will have a common set of features (attribute retrieveal, operation invocation).
Other WS interfaces
The other interfaces on the diagram simply enumerates all the WS-DM interfaces that will be implemented by the QMan WS-Resources. More information about those interfaces are found here .