Skip to content

Introduction

okram edited this page Sep 14, 2010 · 24 revisions

Rexster is a web service. Requests are sent to Rexster over HTTP and, in response, Rexster returns JSON formatted results. 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—-providing ‘plug and play’ support. Two TinkerPop developed 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 for working with the graph backend being exposed. On the other hand, Pipes is a data processing framework that has support for 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 and Pipes evaluations are returned to the requester in the form of JSON documents.

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. - see Using Gremlin), 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