JAIN SLEE for Messaging Applications

Abstract

This document briefly investigates the used of JAIN SLEE in the context of implementing messaging applications. Of particular interest are applications that require integration with SMPP and MM7 based external resources.

JAIN SLEE based Messaging Architecture

A simple high level view of a JAIN SEE based messaging application architecture is given in Figure 1. On the left hand side is the common approach taken to build messaging applications that uses a combination of a message queue and an application environment (for example J2EE) that is synchronous in nature. The right hand side shows a JAIN SLEE based architecture.

messaging architecture

Figure 1 - Messaging Application Architecture

There are two aspects of the messaging application to consider (see Figure 1):

  1. Routing of protocol messages from SMPP and MM7 protocol stacks to appropriate business level components
  2. Business level components themselves, which correspond to the messaging applications

Current Architectures

  • Do not commonly make use of containers that natively support event-driven applications
  • A message queue is placed between the protocol stacks and the application.
  • The message queue decouples the naturally asynchronous protocol stacks from the application. I.e. it provides asynchronous delivery of protocol messages.
  • The message queue provides a mechanism whereby load spikes of protocol messages may be absorbed and held in the queue until the application can catch up and process them
  • The routing components provide message routing logic and must be implemented as part of the business logic of the application. Additional complexity is required in this layer if multiple applications are interested in the same protocol message
  • There are no standard Messaging APIs for the applications to use (although see jsrs such as JSR 205: Wireless Messaging API 2.0 and JSR 212: Server API for Mobile Services: Messaging - SAMS: Messaging), therefore applications may be more complex, harder to understand and harder to maintain.

SLEE Based Architecture

  • SLEE is designed to support event driven applications
  • Event routing behaviour of SLEE is defined in the specification by pseudo code and a mathematical model
  • All support for asynchrony, absorption of load spikes etc is provided by the SLEE container and does not need to be implemented by application developers
  • Applications are written in terms of standard Messaging APIs (SMPP and MM7 APIs in Figure 1) thereby making them simple to write, understand and maintain
  • Application business logic is implemented as collections of SBBs

Conclusion

There are a number of architectures that can be adopted to support messaging applications. Current architectures have successfully been used to support the requirements of messageing applications by judicious use of message queues, message stores and application logic

The JAIN SLEE programming model is suited for interaction with asynchronous systems such as SMPP and MM7 protocol stacks. The behaviour defined by JAIN SLEE means that JAIN SLEE based messaging applications do not need to implement behaviour to deal with absorbtion of load spikes and asynchrony. These aspects are the responsibility of the JAIN SLEE container so the application developer need only use a SLEE implementation that meets the performance requirements for their application.

JAIN SLEE provides an additional tools in the application developers arsenal that is perhaps more naturally suited to building messaging applications.

 

 

 

University of Otago jainslee.org.nz University of Otago