PGX Usage Modes
In order to address different user requirements, PGX provides three different
Local Shell Mode
The simplest usage mode 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
The local shell mode is useful for the following situations:
The user wants to run some quick graph analyses on small graph data with
his/her laptop or desktop. The PGX shell provides a lightweight way of running
graph analysis immediately with PGX, without writing a Java application.
The user is currently exploring the data set and trying different graph
algorithms on it whenever some idea occurs to him/her. The interactive nature of
the PGX shell fits perfectly for such a user.
Figure: PGX Local Shell Mode
Remote 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 a client machine (e.g. laptop). The
PGX shell is equally as powerful in remote mode as it is 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:
- The user wants to perform graph analysis on a large data set with
a powerful server-class machine that has many cores and a large memory.
- The server-class machine is (potentially) shared by multiple clients.
Figure: PGX Remote Shell Mode
Local Java Mode
PGX can be embedded into a user application as a normal Java library.
The embedded mode is useful for the following situation:
- The user wants to build up a serious application (or service) where the graph
analysis is a part of its functionality.
Figure: PGX Embedded Mode
See the PGX APIs.
Advanced: Remote Java Mode
In addition, it is also possible for the user to create his/her own
Java application that connects to a PGX server and controls it
as the PGX Shell does in the Server-Client mode.
See the PGX APIs.