Bee
BEE the Apache ActiveMQ JMS, TomEE/Tomcat JMS wrapper - Page 3
Working
BEE is positioned as an intermediary between the application that uses it and the JMS API. It isolates totally the application who uses this API. To benefit of JMS message service, the application involves only a few functions provided by the interface of BEE.

This interface consists of a single class «Beepin» which (version 1.0.0) exposes only 5 methods which allow the use of the component. The class diagram and the source code documents give more details about it.

 
Interface features

Only the enumeration «ChannelType» and the class «Beepin» are accessible from the outside of the component (public visibility).

«ChannelType» lists the three types of channels supported by BEE:

  • LOCALCHANNEL: Broadcast channel (Topic in JMS register) local to the application server JVM.
  • FOREIGNCHANNEL: external broadcast channel, available through a network communication.
  • QUEUECONTROLCHANNEL: Point to point communication Queue (Queue in JMS register).
Beepin exposes 5 functions for use the JMS service:
  • Initialize BEE by providing the necessary parameters: Component ID, address and listening port, remote login and password.
  • Add channel of one of the three supported types and a «conversation language» as words list (msgTypes).
  • Subscribe to a broadcast channel to receive messages.
  • Send a message to a particular channel.
  • Read a message on a particular communication Queue.

 
Internal working

The class diagram details the internal structure of BEE:

  • It enables the creation of any number of communication channels.
  • These channels may be of three different types as indicated.
  • Each broadcast channel may have any number of subscribers.
  • Communication Queues permit the conveyance of point to point messages and do not include a subscription mechanism.
The treatments encapsulated in the methods of the three classes of communication channels and those of Beepin, call to the JMS API for the performance of different services requested. These direct calls to JMS API provided by TomEE assume the management of a particular implementation of this JEE service. Tomee uses Apache ActiveMQ as a support of JMS. BEE is compliant only with this implementation.

These treatments are such that no configuration file is required. All initializations of services are done dynamically by BEE. They include, also, all the JMS calls and references to its API. BEE clients are completely isolated from JMS while benefiting from its services. That's the whole point of this component.