Content repository API for Java

Content Repository for Java Technology API (JCR ) is a specification for a Java platform API for accessing content in a uniform manner. Content repositories are used by various information systems that manage any documents along with their metadata, such as web content management systems (WCM ), Enterprise Content Management Systems ( ECMS ), source control management systems, or directory services and e- mail systems. The aim of the API is to unite the many islands with the content each own proprietary interfaces on a common future. Thus, an application that uses the JCR API, store the content in it used in any other, JCR compliant content repository. Thus, applications as well as the users themselves independent of a content repository manufacturer. Programmers who have learned the API, so can directly develop applications for any content repositories. The specification has been developed since 2002 under the Java Community Process as JSR -170 and (JCR version 1.0 ) and in 2009 as JSR- 283 (JCR 2.0 ). published.

Overview

A JCR - based content repository is a kind of object-oriented database, which combines the advantages of a relational database data structures, searching, transactions and referential integrity, as well as a file system hierarchies, access control, streaming, and locking. In addition, other useful functions such as storing unstructured data (documents ), full text search, multiple fields, sort order, versioning, and observation of changes ( Event Observation ) are supported. An important aspect in support of that independence is the migration of content from a content repository via import and export of data in a standardized XML format.

Data model

The data model is very simple and looks like a tree. Each repository has at least one workspace. A workspace has one or more items. An item can be either a node or a property. One node can in turn have zero or more children, and zero or more Properties own, in which the actual content is stored. A node has exactly one primary node type that defines its characteristics, such as its properties and children they may have. In addition, nodes, one or more mixin types can be assigned. These control whether a node is supported for versioning, if a node can be locked for access temporarily to or a unique identification number will be assigned when creating her. The data model provides a completely simple drop without structures, in which each content to be stored is stored in a node below the root node of a workspace. This corresponds to the " Data First " strategy, in which the repository designer needs to make advance not worry about a search on the structure, as it is known from a file system. Since nodes in turn can be linked by means of a reference with other nodes, a structure, such as a customer record, to be tightened much later. The search is then similar, as is known from the Web search engines, a full-text search. In the JCR model can also be searched through the contents of the previous versions of content. Are already in advance the structure of the repository clear and the content should be stored only in accordance with these structures for more efficient retrieval, strategy can be moved according to the "Structure First".

JCR - conformity

The JCR specification distinguishes different from supportive level. The functions for Level 1 should be supported, while Level 2 and some other functions are optional. For Level 1 includes the search (query ), and read (read ), as well as export. Typical applications are therefore purely presenting systems such as web content management or reporting tools. Among the Level 2 functions include writing ( write), the import, full text search, access control, and referential integrity. Level 2 features are typical for entry level content, document and workflow management systems. The optional features such as versioning, locking (Locking ), observation and transactions are required for enterprise content management systems or source control management systems. Applications that are JCR compliant must be certified with respect to the mentioned level. There is also a so-called Technology Compatibility Kit ( TCK) with over 1000 to existing test routines.

Queries

A JCR - based content repository used to search the standard XPath. Version 2.0 is optional to use a form of SQL queries. The reference implementation Apache Jackrabbit supported by the integration of the Search Engine based on Apache Lucene full-text search on unstructured data such as documents in the CI format.

Available implementations

Both JSRs are led by David Nüscheler of Day Software. Day offers a commercial JCR implementation called Content Repository Extreme ( CRX ) and is also involved in the open source Apache Jackrabbit JCR, which was available as a reference system for a JCR - based content repository with version 1.0 in April 2006. Magnolia is an enterprise content management system that uses the JCR API to save its contents by default in Jackrabbit, but can also use any other JSR -170 fully certified repository. The eXo JCR ObjectWeb is an open source repository available for the payment to support and documentation. Many other commercial manufacturers are working on the JCR compliance of their products such as IBM, SAP, Oracle, Open Text, EMC DOCUMENTUM. Alfresco and Jeceira also offer an open source content management system as their own repositories. GX has the new community version of their enterprise web content management platform released that is based natively on Apache Jackrabbit. Saperion supports the interface under the name SAPERION Content Repository ( SCR) with the released in March 2009, version 6. On the client side, the SCR is complemented by the product SAPERIONvelocity, a framework for configuring applications in the electronic file.

201133
de