Persevere and Jsponic Beta Release
29 September 2007I have released a beta version of Persevere and an alpha version of Jsponic. Persevere is an open source persistent object mapping framework for JavaScript in the browser. Persevere allows programmers to access, traverse, and manipulate persisted data easily with standard JavaScript syntax and intuitive Persistent JavaScript (PJS). 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 JSPON data sources which can represent various underlying sources such as database tables and can even span domains. Persevere can provide orthogonal persistence and lazy loading support with standard JavaScript property access and modification through JavaScript pre-processing, such that persisted data can be modified with plain JavaScript, for example:
var result = pjs.load("data or query id"); // load a object mapped to persistent data
var object = result[1]; // access items from a result
var value = object.prop; // lazy loading is performed transparently when necessary
object.prop = "new value"; // change a property and it is automatically sent to the server to be persisted
result.push({name:"new object/row"}) // adding and removing rows/objects from persisted data can be done with normal JS array methods
Array.remove(result,object); // or splice
Persevere can also be used without preprocessing, or it can provide these capabilities natively with JavaScript 1.7. Persevere allows supports application code to be persisted and exist within these object graphs, to facilitate a unique “live programming” approach to object oriented design and organization. Persevere (with Jsponic) can be downloaded here.
I am also releasing an alpha version of Jsponic along with Persevere, as it provides a server implementation of the JSPON protocol, and therefore is ideal as a backend for Persevere (or any other JSPON client). Jsponic is a Java-based server that implements the JSPON protocol for exposing persistent data storage as RESTful JSON web services, and with full capabilities for modification of persisted data, execution of remote/distributed JavaScript methods, and data centric object level security. Jsponic includes an internal dynamic object database, and supports standard SQL tables, XML files, and web service, and exposes these data sources through JSON. Jsponic also implements the PJS specification, and provides persistent object mapping in a server local JavaScript environment (Rhino) which facilitates distributed remote calls between the client and server with both environments referencing and sharing access to the same persisted data.
Persevere and Jsponic can be used independently of each other, as communication is based completely on JSON (JSPON and JSON-RPC), and it is easy to implement these publicly available specifications to write your own client to connect to Jsponic or build your web service as a backend to Persevere. Persevere and Jsponic both come with the JSPON Object Browser to facilitate testing, accessing, and manipulating JSPON data to simplify building your own client or server.
No comments yet