Logo
JBoss ESB Sniffer has been developed within the framework of the European project ARUM - Adaptive Production Management (http://arum-project.net/). This project was aimed at the development of flexible and adaptive ICT solutions for production management and control of highly complex, small lot productions such as in aircraft and shipbuilding industries.

The solution developed within the ARUM project is based on a unique fusion of two paradigms - the multi-agent systems (MAS) and Service Oriented Architectures (SOA). On one hand, the intelligent agents have proven their qualities in various industrial deployments in terms of flexibility and adaptability. On the other hand, SOA provides a modern and standardized software paradigm for building modular and distributed applications that are composed of reusable and interoperable services. The intention of the fusion is to introduce the intelligent services that wrap specific functionalities, implemented by use of the multi-agent system. The technological infrastructure for integration of the services and heterogeneous legacy systems according to the SOA principles is provided by the Enterprise Service Bus (ESB).

Both agents and services share the common characteristic - the application is composed of loosely-coupled, distributed entities that interact in a networked environment. It is apparent that for such kind of systems it is necessary to employ tools that allow the system designers as well as administrators to monitor the activity on the service bus, where the intensive communication of is carried out via messages. The tool for monitoring of ESB communication is indispensable in the design phase to fine-tune and verify the overall system behavior, which is designed as a composition of services. Traceability of the communication is also useful in the runtime phase for the system administrators to monitor the overall system health and to discover the deviations from the desired behavior. Although such tools are common in the MAS domain, they are insufficiently supported in the ESB implementations. In the selected JBoss ESB platform such a tool is completely missing.

Sniffer consists of three main parts (Fig. 1) - the Interceptor, which purpose is to intercept and process messages sent through the ESB, the database used to log the messages, and a user interface module designed as a portlet pluggable into the ARUM administration web portal. The web portal, which is based on the Liferay technology, is deployed on the same JBoss application server as the Interceptor as well as the ESB.

JBosss ESB sniffer architecture

Fig. 1: JBosss ESB sniffer architecture

The Interceptor leverages the service of the same name that is offered by the JBoss application server. Since ESB 4.11 there is a an interface designed for intercepting messages called PipelineInterceptor, which can be implemented and modified in order to work correctly with the target system. The designed Interceptor uses this interface and extends its functionality. There are four different interception points that have to be defined in a configuration file of the application server. These points represent the types of messages sent through the ESB that should be intercepted: failure, instantiate, start and end.

The Database is a standard MySQL database to which the following properties of each captured message are stored:

  • date and time the message was sent;

  • name of the sending service;

  • name of the receiving message queue (the messages are sent to queues from where they are picked up by the receivers);

  • content of the message;

  • other FIPA-related message attributes such as protocol, performative, conversation ID, etc. (see next section).

 

The Sniffer UI  (see Fig. 2) is implemented as a portlet that runs within the ARUM administration dashboard. The dashboard leverages the web portal technology, which is a specially designed web page on which the information related to different sources is displayed within dedicated user interface components - the portlets. The ARUM administration dashboard provides the user with the means for administration of the overall ARUM solution. It means for example the deployment of services, monitoring their parameters and health, visualizing the message flow and statistics (via Sniffer), etc.

Sniffer user interface - the table showing the list of exchanged
Fig. 2: Sniffer user interface - the table showing the list of exchanged

The Sniffer UI loads messages from the database and displays them in two different forms. The first form, which is depicted in 0, is a basic table displaying the captured messages and their details. The second one shown in Fig. 3 is a graphical view of the message flow in UML sequence diagram. Various filters can be applied when choosing what messages to be shown in both modes, such as messages sent only by selected services, messages sent within a specified time period, messages of certain performative, etc.

Sniffer user interface - the graphical representation of the message flow

Fig. 3: 
Sniffer user interface - the graphical representation of the message flow