Skip to content

Introduction

okram edited this page Sep 14, 2010 · 24 revisions

Rexster is a web service that is queried using HTTP and returns JSON formatted responses. Stored traversals in a Rexster deployment are identified by URIs and are parametrized by the query parameter component of the URI. Rexster can work as a standalone web server or as a servlet through Tomcat. The general system architecture is diagrammed below.

Rexster makes extensive use of Blueprints. Blueprints, amongst other things, is a collection of graph-based interfaces (e.g. graph, vertex, edge, etc.) and implementations (e.g. Neo4j, OpenRDF, etc.). The benefit is that Rexster can be used with various graph backends. Two TinkerPop packages that make use of Blueprints are Gremlin and Pipes. Gremlin is a general-purpose, graph-based, programming language and, in Rexster, serves as a general-purpose interface to working with the graph backend being exposed by Rexster. On the other hand, Pipes is a data processing framework that has support for processing Blueprints-based graphs. In general, Gremlin is used for general-purpose queries and Pipes is used for optimized, high-performance specialized graph traversals. In Rexster, the results of both Gremlin or Pipes evaluations are returned to the requester in the form of a JSON formatted result.

While the Gremlin interface to Rexster allows a user to perform any graph-based operation (e.g. add/delete vertices and edges, manipulate the indices of the graph, perform ad-hoc traversals, etc.), Rexster was designed to allow multiple applications in a deployment environment to trigger stored graph traversals and retrieve JSON formatted results. More specifically, Rexster has extended functionality to support score- and rank-based graph traversals.

Clone this wiki locally