0MQ on OpenVMS 

ØMQ is a lightweight messaging implementation

Introduction

The following was taken from the home page of 0MQ

  • ØMQ is a lightweight messaging implementation.
  • ØMQ is already very fast. We're getting 13.4 microseconds end-to-end latencies and up to 7,000,000 messages a second today.
  • ØMQ is very thin. Requires just a couple of pages in resident memory.
  • ØMQ is fully open sourced LGPL-licensed software written in C++.
  • ØMQ provides C, C++, Java, Python and .NET language APIs.
  • ØMQ supports different wire-level protocols: TCP, PGM, AMQP, SCTP.
  • ØMQ runs on AIX, FreeBSD, HP-UX, Linux, Mac OS X, OpenBSD, QNX Neutrino, Solaris and Windows.
  • ØMQ supports i386, x86-64, Sparc, Itanium and ARM microarchitectures.
  • ØMQ is fully distributed: no central servers to crash, millions of WAN and LAN nodes.
  • ØMQ is an extensible framework: kernel-style drivers for custom hardware, protocols or applications.

Please see Towards Messaging on an Internet Scale for a fascinating look at what the folks at 0MQ are planning and thinking about!


An additional aspect of the software is that 0MQ may be used for inter-process and inter-thread communication. There are three important reasons to adopt this way of writing the code:

  1. It makes your business logic single-threaded. When you are writing it you can focus on the job at hand rather than polluting the code with impenetrable and error-prone synchronization logic.
  2. Once one process is not able to handle the load, you can simply move one (or several) threads to a different machine. The messages are passed the same way whether they are passed in-process, between processes or between different machines.
  3. Thread synchronization is much more efficient with 0MQ than with standard critical section based approach

Why 0MQ on OpenVMS?

OpenVMS has been deployed in many mission-critical environments over the years, with messaging being one of the primary applications. The demand for the integration of OpenVMS with other systems ---including OpenVMS---, is rising as the world demands standards-based solutions which may be deployed on practically any platform. In addition, client APIs should be available for all major languages. The advent of SOA and its associated SOI methodology has accelerated the adoption of service-oriented solutions and facilitated the modernization of existing applications; queuing provides an elegant method of combining pieces from one application with those of another, thus creating a new, composite, application. In addition, the demand for ever-decreasing latencies has led to advances in software and hardware, allowing the introduction of sub-millisecond latencies and multi-million message per second functionality into new applications.

 

Where do I start?

A good introduction to the software, the initiative and the standards involved may be found on the 0MQ Web page. We strongly suggest you take the time to peruse both the introduction and also some of the articles about the software and its prospective use.

We have created a blog for 0MQ on OpenVMS and will announce kits, changes and errata there. We also hope that participants in the testing will write about their experiences with the software, missing features, improvements etc.

 

How can I help?

This is Open Source software. Anything you feel you can contribute -code, documentation, examples- is more than welcome and will be considered for inclusion in a future version. We welcome all the help we can get!