This page presents an overview of the different usage modes of PGX.
The simplest usage mode for PGX is the local shell mode. As the name suggests, the user interacts with a PGX instance running locally on the same machine via a command-line shell interface. The PGX shell dynamically interprets and executes user commands to invoke the underlying PGX functionality.
The local shell mode is useful for the following situations:
The user wants to run some quick graph analyses on small graph data with their personal computer. The PGX shell provides a lightweight way of running graph analysis immediately with PGX, without writing a Java application, and without requiring a powerful server machine.
The user is currently exploring the data set and trying different graph algorithms on it whenever some idea occurs to them. The interactive nature of the PGX shell fits perfectly for such a user.
Figure: PGX Local Shell Mode
Read the following section to learn more about PGX in local shell mode:
In the remote shell mode, the main PGX execution engine is deployed as a RESTful application on a powerful server machine, while the PGX shell connects to it remotely from the user's personal computer. The PGX shell provides the same functionalities in remote mode as in local mode. Also, multiple clients can connect to the same PGX server at the same time. In the latter case, the PGX server is time-shared among these clients.
The remote mode is useful for the following situation:
Figure: PGX Remote Shell Mode
Read in the following guides how to install and start the PGX server in shared memory mode (single machine, scale up) or distributed mode (multiple machines, scale out):
PGX can also be embedded into a user application as a normal Java library.
The embedded mode is useful for the following situation:
Figure: PGX Embedded Mode
Read in the following guide the functionalities offered by the PGX APIs: PGX APIs
You can also run shared memory PGX inside of a web application. PGX ships with a WAR-file which can be deployed directly into your favorite servlet container:
Once a remote PGX server is set up and running, refer to this guide to learn how to connect to a server: