Integrating MagooClient with JMS SOA (1)

Introduction

The scenario is based on the correction and/or completion of a packing slip (‘PackingSlip’) by a manual operator within the context of a logistics application based on SOA and JMS. The original PackingSlip document is submitted to a JMS-based Web Service for processing. The Web Service applies a number of validation checks to the document and then either forwards it on for additional processing or else puts it on a rectify queue for the attention of an operator if errors are detected. The operator uses MagooClient to lift the PackingSlip from the rectify queue, apply the necessary modifications and re-submit it to the process queue for onward processing.

 

This scenario sets out to demonstrate:

  • MagooClient used in the context of asynchronous JMS-based Web Services.
  • Message-handling capabilities of MagooClient including the ability to plug easily and directly into JMS queues and perform XML content transformation
  • Customization possibilities with MagooClient, in particular the ability to apply stylesheets and scripting to the underlying SOAP content to provide a better end-user experience.

Design

The design follows a WSDL-first approach which will allow the blueprint to be easily ported across different JMS/ESB environments. Also, the full richness of XML Schema will be exploited to enforce more exact data validation at the user interface.

 

The WSDL contains two Services:

  • A ProcessorService – this is a Java-based application which applies validation checks to PackingSlips and routes them to other applications or to a queue for correction.
  • A RectifierService – although this is represented by WSDL, it is in fact ‘implemented’ by a human using MagooClient. This ability of MagooClient to act as a WSDL endpoint allows it to be easily added to SOA or BPEL architectures.

A Note on JMS WSDL Bindings

The WSDL definition includes JMS endpoints for these Services – a Process queue and a Rectify queue for the Processor and Rectifier Services respectively. Although standardization for JMS endpoints in WSDL is ongoing, there is as yet no standard way for JMS destinations to be specified within a WSDL definition. MagooClient supports a number of commonly used JMS extensions for WSDL, such as Apache WSIF, to interpret the WSDL and extract Queue/Topic details.

 

1 2 3 4 5 Next >