The HTTP Shell: Overview
While developing InfoGrid applications, it emerged that most handlers of HTTP POST methods (i.e. the servlets that create or change information) perform just a very small number of operations, namely:
- creating new MeshObjects,
- deleting MeshObjects,
- relating and unrelating MeshObjects,
- blessing or unblessing MeshObjects,
- setting Properties in MeshObjects, etc.
This is not surprising, because these are the elemental operations updating a MeshObjectGraph.
Each HTTP POST handler still had to perform the same overhead, such as access control, error handling etc. In many cases the overhead code was much larger than the actual functionality of a handler. The repeated code and additional maintenance required appeared suboptimal.
The HttpShell is a general-purpose HTTP POST handler that can perform arbitrary MeshObjectGraph manipulation operations. This enables most data manipulation in InfoGrid to be handled by a single piece of code, the HttpShell.
The HttpShell is configured and driven by a set of conventions for HTTP POST parameters. This enables developers to perform arbitrary MeshObjectGraph manipulations changing no code other the HTML, in which the HTTP POST parameters are defined, using HTML elements such as <input...