OpenVMS Boot Camp 2015
Extending WSIT using RabbitMQ and AMQP - getting creative with code generation and integration

Track: Open Source Development

, Senior Software Engineer, VMS Software

The perhaps somewhat inappropriately named Web Services Integration Toolkit (WSIT) for OpenVMS is an extensible API-level integration technology that facilitates the integration of new or existing code written in 3GL languages with Java. Based on a supplied or generated XML-based interface definition, tools provided by WSIT generate Java Beans and C language wrapper code that can be used to construct an interface to the underlying application, which can then be incorporated into essentially any type of Java application. In addition to this powerful template-driven code generation facility, the toolkit includes a runtime component that can be used to facilitate and manage ICC-based inter-process communication between Java code and the backend application in a client-server fashion, or code can be called directly from Java code via the Java Native Interface (JNI). The runtime environment also provides security features and supports basic tuning functionality to allow applications to be scaled as appropriate. However, the fact that WSIT uses the OpenVMS-specific ICC (Intra Cluster Communication) protocol for inter-process communication between the Java layer and 3GL code imposes significant restrictions in terms of how applications can be deployed. This talk describes how the template-driven WSIT code generation facilities can be customized to extend WSIT to use the Advanced Message Queuing Protocol (AMQP) with RabbitMQ in place of the ICC protocol to provide an efficient, scalable, fault-tolerant, and fully cross-platform integration solution. This customization approach may also be extended to other protocols. The talk will also present work that is being done to implement a scalable and performant FastCGI-like interface between the Apache web server and WSIT that may be used to facilitate web-enablement of applications in a straightforward and efficient manner.

Experience Level