API repository di contenuti per Java - Content repository API for Java
API Repository contenuto per Java ( CCR ) è una specifica per un Java piattaforma application programming interface (API) per accedere repository di contenuti in modo uniforme. I repository di contenuti sono utilizzati in sistemi di gestione dei contenuti per mantenere i dati di contenuto e anche la metadati utilizzato in sistemi di gestione dei contenuti (CMS) come ad esempio il controllo delle versioni dei metadati. La specifica è stata sviluppata sotto il Java Community Process come JSR-170 (versione 1), e come JSR-283 (versione 2). Il principale pacchetto Java è javax.jcr.
Contenuto
Panoramica
Un JCR è un tipo di oggetto di database su misura per l'archiviazione, la ricerca e il recupero dei dati gerarchici. L'API JCR cresciuto dalle esigenze dei sistemi di gestione dei contenuti, che richiedono documenti di memorizzazione e altri oggetti binari con metadati associati; Tuttavia, l'API è applicabile a molti altri tipi di applicazioni. Oltre ad oggetto stoccaggio, il CCR prevede: API per versioni dei dati; transazioni ; osservazione delle variazioni di dati; e l'importazione o l'esportazione di dati XML in un modo standard.
Struttura dati
I dati in un JCR è costituito da un albero di nodi con proprietà associate. I dati sono memorizzati nelle proprietà, che possono contenere valori semplici come numeri e stringhe o dati binari di lunghezza arbitraria. I nodi possono facoltativamente avere uno o più tipi associati con loro che dettano i tipi di proprietà, numero e tipo di nodi figlio, e certe caratteristiche comportamentali dei nodi. Nodi possono puntare ad altri nodi tramite una speciale struttura tipo di riferimento. In questo modo i nodi di un JCR offrono sia l'integrità referenziale e concetto orientato agli oggetti di ereditarietà . Ulteriori tipi di nodo sono il tipo di nodo referenziabile che permette all'utente di detto nodo di riferimento attraverso l'uso di un identificatore univoco universale. Un altro tipo popolare è il tipo versionable. Questo rende il repository traccia la storia e memorizzare copie di un documento di ogni versione del documento.
Interrogazioni
Un JCR può esportare parti del suo albero di XML in due formati standard e può importare le gerarchie direttamente da XML. JSR 283 implementazioni compatibili devono supportare una forma standardizzata di SQL per le query e una query oggetto del modello Qom. JSR 283 depreca l' XPath linguaggio di query definito nella JSR 170. L'Apache Jackrabbit implementazione di riferimento di JCR supporta anche l'integrazione del Apache Lucene motore di ricerca per dare ricerche full text di dati nel repository.
implementazioni disponibili
Entrambe le JSR sono guidati da David Nüscheler di Adobe Systems (ex di Day Software ). Giorno aveva sia un'implementazione commerciale JCR chiamato Content Repository Extreme (CRX) ed è stato coinvolto nella open source Apache Jackrabbit JCR, che aveva la sua release 2.0 nel gennaio 2010. ModeShape è un'altra implementazione JCR open source che supporta la JSR-283. Jahia , Hippo CMS e Magnolia sono Enterprise Content Management System costruiti sulle API JCR, utilizzando Jackrabbit come repository di default, ma in grado di collegare in qualsiasi altro JSR-170 certificato implementazione repository. JSR-170 è supportato anche da Oracle Beehive , software di collaborazione enterprise di Oracle. L'Exo JCR da eXo Platform è un repository open source con il supporto commerciale a pagamento e la documentazione. Molti altri fornitori commerciali stanno lavorando su compatibilità e prodotti JCR. Alfresco è un sistema open source di gestione che fornisce un API JCR sul loro repository. GX ha rilasciato la nuova versione di comunità del suo Web enterprise content management piattaforma (ECM) basato nativamente su Apache Jackrabbit e JSR.
Adattamenti di PHP sono stati avviati da TYPO3 , traducendo l'API Java per PHP. I PHPCR interfacce sono implementate anche da Jackalope, un frontend PHP parlare con il backend Jackrabbit attraverso l'interfaccia WebDAV, e Midgard , un repository di contenuti cross-language.
Guarda anche
- Content Management Interoperability Services (CMIS), un altro contenuto repository API