Java/Web to RMS Connection
Our RMS Connection software is divided into three distinct but
overlapping approaches. Each has
it's own advantages and disadvantages and both have been used in solving
different problems in the same application.
The first approach is based on building a compiled server program on OpenVMS
that is activated as a TCP/IP service when a connection is made. This
a persistent connection and as such, maintains a state like a normal interactive
program running on OpenVMS.
This allows events on the server to be sent to the client without having the
client poll the server. However this means there is one OpenVMS process per
client and this approach can only be used with a Java client program.
is suitable for Java programs that need real time updates from the server and
are run in a secure or controlled environment.
An example of such an application
is a real time production tracking system
that updates displays based on events on the server triggered
by production steps being completed.
Non Persistent Connection
The second approach is based on the client sending an HTTP or HTTPS post to a web
server and getting an XML response. The server can be either the DSI Secure
Web Server or a web server that supports FastCGI, such as Apache. The client,
may be either an HTML page using JQuery or Ajax or a Java application
typically using Swing or both at the same time. The Java application can also
use Java Web Start to allow easy deployment to remote clients.
This method is more suitable when the client is
a remote system that you do not have direct control over.
The down side of this is that it requires the usual coding for maintaining
state and the
client must periodically poll the server if it needs to see some server event.
The major advantage here is that the same business logic that is developed for
a web site is also usable in Java/Swing applications thereby significantly
development time. Also critical business logic is run only on the server and
only the data that a user would see on a secure web site is transferred over
the Internet. This eliminates the potential threat of database injection.
The third approach is a JDBC driver written entirely in Java. This driver was
developed to support NetBeans development using JPA and, as such, has specific
optimizations to improve performance in this environment.
Note that while these first two approaches are similar to an ODBC or JDBC connection, they
do not use SQL and, as such, are capable of efficiently using RMS
features such as record overlays or overlapping fields. This allows objects
that extend a base object to be stored in the same table or RMS file. This
cannot be done with a relational database and the resulting overhead is
evident when you look at the complexity of Hibernate or JPA.
All three approaches also allow access to OpenVMS resources such as
batch or print job submission and calling existing business logic without a
major software rewrite.
For more information and samples of the analysis, please contact Jeffrey
Coffield at (949) 650-0526 or use the