SitePen Blog Category ‘Persevere’

When to Use Persevere: a Comparison with CouchDB and Others November 18th, 2008 at 10:24 am by Kris Zyp

Persevere and CouchDB are both new JSON-based storage systems, and have been receiving increasing focus. It may be informative to those interested in these new technologies to discuss the differences between these new database systems and what types of applications each is best suited for. While Persevere and CouchDB share an extremely similar JSON HTTP/REST interface and object structured data storage, there are important distinctions. Each of these different tools has a different target audience, and despite my obvious bias being the developer of Persevere, I hope to give at least some semi-objective differentiations between these tools.

(more…)

Evolving Schemas with Persevere November 17th, 2008 at 7:27 am by Kris Zyp

Traditional relational databases have strict data schemas; all records in a table must be of the same type. With new non-relational database technologies, some databases feature schema-free tables, each record is free to have any structure desired. This fundamentally different approach to the structure of persisted data is one of the core differences between relational and non-relational databases. However, is strict-schema or schema-free always the best approach for all the components in an application, throughout the entire life cycle of the application? Persevere provides a more flexible approach, allowing tables to start schema-free, and type constraints can be gradually added as desired or needed, with the freedom to partially constrain, defining types for some properties and not for others.

(more…)

Using the Persistent Object Model in Persevere November 2nd, 2008 at 9:09 pm by Kris Zyp

Persevere uses a storage structure that closely follows the semantics of JavaScript’s class system. Persevere stores objects in tables that each have a corresponding class/constructor and schema of properties. Every object in a Persevere table is an instance of the table’s class. This provides a very natural clean integration between Persevere’s persisted data and JavaScript environment, and an intuitive class-based object model for building applications. We can see this relationship by creating some classes and interacting with it at in the Persevere Server-Side JavaScript (SSJS) environment.

(more…)

JSON Schema in Dojo October 31st, 2008 at 7:36 am by Kris Zyp

JSON Schema is a specification for defining the structure of JSON data. JSON Schema provides the definition of contractual type constraints for describing a valid set of values for object style data structures. JSON Schema development is based on the concepts from XML Schema, RelaxNG, and Kwalify, but is a JSON-based format, so it is well suited for JSON-based applications. It is intended to provide validation, documentation, and interaction control. Defining type constraints provides a standardized form of data documentation that can be used for data persistence, form generation, and creating contracts on data used in web services.

(more…)

Jaxer + Persevere via Dojo’s JsonRestStore September 29th, 2008 at 9:43 am by Kris Zyp

perseverejaxerdojo.png With the increasing popularity of JavaScript, and rising usage of JavaScript in the browser, it is becoming very effective to use JavaScript on the server to have a single end-to-end language for both client and server-side development. Options for server-side JavaScript are also increasing.

Jaxer is a new server that uses server-side JavaScript for HTML generation, using the standard browser DOM model (it is actually running Mozilla’s engine on the server) as the API. Persevere is a JavaScript based database system, that integrates a JavaScript based object model with object persistence. Dojo’s new PersevereStore, which is built on the JsonRestStore, allows code running in Jaxer to easily query, manipulate, and interact with data in Persevere by running Dojo on Jaxer’s server-side JavaScript environment. These two JavaScript servers can complement each other, with Jaxer providing HTML presentation/generation and Persevere providing the data object model and persistence, with JsonRestStore as the bridge.

(more…)