Open Architecture

Anything which is accessible is open. As such every source library with the proper interface is open for use, if not also extension. Producing a JAVA-based interface for the use and extension of existing non-JAVA source libraries is the long-term goal of the Open Architecture project. This will help reinforce the "universality" goal of JAVA.

The OPEN-VM pattern wears a number of hats: controller, command processor, interpretor, and virtual machine...

A controller, for the most part, processes inbound request for views of an internal data model. The "inbound request" can be seen as issued commands. As such, a controller and command-processor are very similar in construction. And, at the lowest level a computer simply processes a stream of imperatives, a.k.a commands. So, a virtual machine, the software equivalent of a hard-wired system unit simply is a mechanism for interpreting and handling such sequences of computing instructions.

The original vision behind an OPEN-VM was that it would "open-up" a platform's high-level language's application programming interface for use by a set of common cross-platform imperatives, that are universal for all of the platforms on which the OPEN-VM is written.

The commands that one might find in the OPEN-VM language set come in three categories: basic (primitive), flow of control, and grouping.

The basic ( foundational and universal ) commands would be: assign, behave, construct, and destruct. The flow of control commands would be: if-then-else, switch-case-default, while-do, repeat-until, and for. The above includes branching, pretest and post-test sentinel controlled loops, plus counter-controlled iteration ( a.k.a looping ). Flow of control also might be achieved with the abstract notion of "guarded" code-regions.

Finally, the grouping commands would allow for combining program parts forming concern structures, such as methods, data-blocks, objects, and etc. These three classes of command would allow for the "structured-use" of the concerns found in a platform's programming interface. This would be one style of universality available, that could evolve as language platforms and methods of concern partitioning matured.

It, the OPEN-VM, was implementable within the scope of structured C, COBOL, FORTRAN, and old Pascal. Yet, it would have likely not been as effective or impactful as JAVA will be, is, and has been.

We will soon be finishing our implementation of the OPEN-VM and writing a tutorial text on how you might build your own, much like our CABOOSE in JAVA text.