Skip to end of banner
Go to start of banner

Content Repository for the Platform

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Can an off-the-shelf content repository (CR) provide the functionality needed for the back end of Synapse?

Such a CR would require the following features:

- CRUD on objects

- create universal IDs for objects

- Custom meta-data on objects, with either (1) composite keys (attributes), and/or (2) multiple values per attribute

- versioning of objects

- fine grained authorization/security (would need to know how users and groups are represented)

- meta data for users and groups

- querying (paginated, sorted, and filtering results based on authorization); unstructured as well as structured queries

- support open-source database, e.g. MySQL

- integrate with our authentication mechanism

- support concurrent access by users

Nice to have:

- automatic indexing for search

Evaluation of Jackrabbit/Java Content Respository:

Answers to requirements above:

YES - CRUD on objects

YES, for "referenceable" nodes - create universal IDs for objects

YES, multiple values are allowed - Custom meta-data on objects, with either (1) composite keys (attributes), and/or (2) multiple values per attribute

YES - versioning of objects

YES - fine grained authorization/security (would need to know how users and groups are represented)

YES, by leveraging content nodes to represent this metadata - meta data for users and groups

YES, in version 2 (relatively new) - querying (paginated, sorted, and filtering results based on authorization); unstructured as well as structured queries

YES - support open-source database, e.g. MySQL

YES, via JAAS, for which Crowd has a plug-in - integrate with our authentication mechanism

YES - support concurrent access by users

Nice to have:

YES - automatic indexing for search

Open questions:

- how widely is JCR/jackrabbit adopted?  How widely is the new version 2.0 adopted?

- what competing CR products are there?

- Can you specify a finite list of values (i.e. an "enum") for an attribute, or more generally integrate validation with annotation population?

- are the attributes sufficiently flexible?

Notes:

- There is a Spring template for JCR

Feasibility tasks:

- stress test querying

- exercise SQL-like querying

- integrate authentication and authorization with Crowd via JAAS

Caveats about Jackrabbit/JCR:

JCR v.1 has problems doing joins and with query performance.

JCR has no relation DB client

JCR v.1 didn't have versioning or auth'

Dave B found issues during querying related to 'annotation types'

Other products:

Content Repositories:

CouchDB (might have RDBMS client)

http://code.google.com/p/couchdb-python/ 

(Enterprise) Content Management Systems:




  • No labels