persevere-framework


Persevere - REST JSON database, distributed computing, and persistent object mapping for JavaScript

Persevere is an open source set of tools for persistence and distributed computing using an intuitive standards-based JSON interfaces of HTTP REST, JSON-RPC, JSONPath, and REST Channels. The core of the Persevere project is the Persevere Server. The Persevere server includes a Persevere JavaScript client, but the standards-based interface is intended to be used with any framework or client.

The Persevere Server is an object storage engine and application server (running on Java/Rhino) that provides persistent data storage of dynamic JSON data in an interactive server side JavaScript environment with the following key features:

  • Create, read, update, and delete access to persistent data through a standard JSON HTTP/REST web interface
  • Dynamic object persistence - expando objects, arrays, and JavaScript functions can be stored, for extensive JavaScript persistence support
  • Remote execution of JavaScript methods on the server through JSON-RPC for a consistent client/server language platform
  • Flexible and fast indexed query capability through JSONQuery
  • Comet-based data monitoring capabilities through REST Channels with Bayeux transport plugin/negotiation support
  • Data-centric capability-based object level security with user management, Persevere is designed to be accessed securely through Ajax with public-facing sites
  • Comprehensive referencing capabilities using JSON referencing, including circular, multiple, lazy, non-lazy, cross-data source, and cross-site referencing for a wide variety of object structures
  • Data integrity and validation through JSON Schema
  • Class-based data hierarchy - typed objects can have methods, inheritance, class-based querying
  • Pluggable data source architectures - SQL tables, XML files, remote web services can be used as data stores
  • Service discovery through Service Mapping Description

Persevere JavaScript Client is a persistent object mapping framework for JavaScript in the browser, which allows programmers to access, traverse, and manipulate persisted objects graphs easily with standard JavaScript syntax and intuitive Persistent JavaScript (PJS) API. Persevere implements the PJS API and maps JavaScript objects to persistent storage objects remotely through JSON based RESTful web services following the JSPON (JavaScript Persistent Object Notation) data interchange specification. Persevere accesses persisted object graphs provided through RESTful JSON data sources which can represent various underlying sources such as database tables, XML files, web services, and object repositories, and such persisted graphs can even span domains. Persevere allows application code to be persisted and exist within these object graphs, to facilitate improved object oriented design and organization. Persevere can provide orthogonal persistence and lazy loading support with standard JavaScript property access and modification through JavaScript pre-processing, or it can provide these capabilities natively with JavaScript 1.7. Note that the Persevere JavaScript Client is released under the MPL 1.1/GPL 2.0/LGPL 2.1 license.

Project Information

Labels:
JavaScript JSON Persistence Persistent REST JSPON Ajax JSON-RPC Schema Database JSONPath JSONQuery Referencing