Virtual Machine

Main Features of CAVM

CAVM is a process virtual machine that is designed and implemented specifically for the implementation of CAOPLE programming language.

It has the following features.

Platform Transparent

CAVM works on all major operating systems. It has been tested in Windows, Linux (Ubuntu 14 and 16) and iOS X operating systems.

Heterogeneous Cluster

CAVM can be executed in a cluster that contains nodes of different platforms. The object code generated from CAOPLE source code via compilation can be run on such a cluster without any change. It truly achieves code-once-run-anywhere.

Easy to install and server provision

CAVM is written in Java. The only external software that it requires is Java 8 runtime environment. It has been tested to work well on both Oracle Java 8 and Open Java 8. The provision of server and installation and setup of CAVM is simple and straightforward. It can be done effortlessly as if it is serverless.

See Installation for the instruction on how to install CAVM on a cluster.

Lightweight

CAVM is very light weight. The .jar file is of a size less than 3MB. It is fast to download and quick to start because it is a process virtual machine.

Powerful

CAVM is powerful. In addition to the execution of arithmetic and logic operation instructions, it also provides all the facilities to manage, monitor, and operate the nodes in the cluster, to deploy code and register agents, to operate, monitor and even to debug agents, to facilitate the communications between agents, etc. These are all performed automatically in a network transparent way. These are achieved through its unique innovative architecture.

See Architecture for more information.

Efficient

CAVM is efficient. The code of a (micro)service can be deployed to a node in a remote cluster typically in the scale of milliseconds. Microservices can also be created (started) typically in the scale of 10s milliseconds, which is a magnitude level faster than containers.

Easy to Operate

CAVM is very easy to operate. CAVM running on a node in a cluster can be operated through three interfaces:

  1. The Graphic User Interface of CAOPLE's Integrated DevOps Environment CIDE on a developer's workstation;

  2. The command line script language to operate CAVM remotely;

  3. The interactive command line interface on the server.

See Operation for Details.