OpenVMS / RMS Dynamic API

By Jeffrey Murch - 2016

SGCO has developed a revolutionary fully functional and industry standard 100% dynamic JSON API for RMS. This will allow real time interaction with any RMS data files for select/read, delete, add and update with the two latter having properly locked rows.

Lightweight:

The major design concern in architecting our API was to be lightweight and efficient. The competing solutions put an unnecessary load onto the host computer resulting in the need to upgrade hardware to compensate. This is turn leads to more issues and a cycle of constant hard to identify problems.

Our API uses only the processing power and memory needed to provide access to RMS. There are no unnecessary spoolers, tracking tables etc. needed to keep the API working as it relies only on the current state of the RMS data in 100% real time. Other commercial solutions either require a service that runs on OpenVMS and a service that runs remotely that must semi- manually be kept in sync and are not truly real time or dynamic or they put an unnecessary load on the OpenVMS host to generate full web content.

Our API consists of only a very small application the runs detached on the OpenVMS OS. It accepts JSON input via posts to a listener that can be assigned to any port, processes that input, performs the requested tasks on the RMS files and returns and necessary response.

Dynamic:

By leveraging RMS indexing in conjunction with the DDL/Data Dictionary for the target data we are able to access the needed data even as the RMS structure is changed. The DDL/Data Dictionary is housed on the remote system and used to dynamically structure queries to RMS as well as the parse the RMS returned records.

Secure:

Our API is by design as secure as possible. The API is not only limited to accept only properly structured JSON input but will only accept input stings that are structurally compatible with the target RMS file. This prevents the API from blindly accepting possibly dangerous input.

Complete White Paper ++