La API de repositorio de contenido para Java ( JCR ) es una especificación para una interfaz de programación de aplicaciones (API) de la plataforma Java para acceder a los repositorios de contenido de manera uniforme. [1] [ verificación fallida ] Los repositorios de contenido se utilizan en los sistemas de gestión de contenido para mantener los datos del contenido y también los metadatos utilizados en los sistemas de gestión de contenido (CMS), como los metadatos de control de versiones. La especificación fue desarrollada bajo el Proceso de la Comunidad Java como JSR-170 (Versión 1), [2] [3] y como JSR-283 (versión 2). [4] El principalEl paquete de Java es javax.jcr
.
Descripción general
Un JCR es un tipo de base de datos de objetos diseñada para almacenar, buscar y recuperar datos jerárquicos. La API de JCR surgió de las necesidades de los sistemas de gestión de contenido, que requieren almacenar documentos y otros objetos binarios con metadatos asociados; sin embargo, la API es aplicable a muchos tipos adicionales de aplicaciones. Además del almacenamiento de objetos, el JCR proporciona: API para el control de versiones de datos; transacciones ; observación de cambios en los datos; e importar o exportar datos a XML de forma estándar.
Estructura de datos
Los datos en un JCR consisten en un árbol de nodos con propiedades asociadas. Los datos se almacenan en las propiedades, que pueden contener valores simples como números y cadenas o datos binarios de longitud arbitraria. Los nodos pueden tener opcionalmente uno o más tipos asociados con ellos que dictan los tipos de propiedades, el número y el tipo de nodos secundarios y ciertas características de comportamiento de los nodos. Los nodos pueden apuntar a otros nodos a través de una propiedad de tipo de referencia especial. De esta manera, los nodos en un JCR ofrecen integridad referencial y un concepto de herencia orientado a objetos . Los tipos de nodo adicionales incluyen el tipo de nodo referenciable que permite al usuario hacer referencia a dicho nodo mediante el uso de un identificador único universal. Otro tipo popular es el tipo versionable. Esto hace que el repositorio rastree el historial de un documento y almacene copias de cada versión del documento.
Consultas
Un JCR puede exportar partes de su árbol a XML en dos formatos estándar y puede importar jerarquías directamente desde XML. Las implementaciones compatibles con JSR 283 deben admitir una forma estandarizada de SQL para consultas y un modelo de objeto de consulta QOM. JSR 283 desaprueba el lenguaje de consulta XPath definido en JSR 170. La implementación de referencia de Apache Jackrabbit de JCR también admite la integración del motor de búsqueda Apache Lucene para proporcionar búsquedas de texto completo de datos en el repositorio.
Implementaciones disponibles
Ambos JSR están dirigidos por David Nüscheler de Adobe Systems (anteriormente de Day Software ). Day tenía una implementación comercial de JCR llamada Content Repository Extreme (CRX) y participó en el código abierto Apache Jackrabbit JCR, [5] [6] que tuvo su lanzamiento 2.0 en enero de 2010. ModeShape [7] es otra implementación de código abierto JCR que es compatible con JSR-283. Jahia , Hippo CMS y Magnolia son sistemas de gestión de contenido empresarial basados en la API de JCR, que utilizan Jackrabbit como su repositorio de forma predeterminada, pero pueden conectar cualquier otra implementación de repositorio certificado JSR-170. JSR-170 también es compatible con Oracle Beehive , el software de colaboración empresarial de Oracle. EXo JCR by eXo Platform es un repositorio de código abierto con documentación y soporte comercial de pago. Muchos otros proveedores comerciales están trabajando en la compatibilidad y los productos de JCR. Alfresco es un sistema de gestión de contenido de código abierto que proporciona una API JCR en su repositorio. GX lanzó la nueva versión comunitaria de su plataforma de gestión de contenido empresarial web (ECM) basada de forma nativa en Apache Jackrabbit y JSR.
PHP adaptaciones han sido iniciadas por TYPO3 , la traducción de la API Java para PHP. [8] [9] Las interfaces PHPCR también son implementadas por Jackalope, [10] un frontend PHP que habla con el backend Jackrabbit a través de la interfaz WebDAV, y Midgard , [11] un repositorio de contenido entre idiomas.
Ver también
- Servicios de interoperabilidad de gestión de contenido (CMIS), otra API de repositorio de contenido
Referencias
- ^ API de Java para registros XML : otra API de Java para registros y repositorios
- ^ JSR-170
- ^ "JSR-170 (versión HTML de la especificación)" . Archivado desde el original el 8 de junio de 2009 . Consultado el 17 de febrero de 2009 .
- ^ JSR-283
- ^ Página de inicio de Apache Jackrabbit
- ^ Enlaces de JCR a artículos y aplicaciones basados en JCR.
- ^ http://modeshape.org
- ^ phpCR
- ^ phpcr en github
- ^ Jackalope: JCR para PHP
- ^ Bergius, Henri (23 de diciembre de 2011). "El proveedor Midgard2 PHPCR alcanza 1.0" .