Кіріспе

Java платформасы қолданбалық бағдарламалау интерфейсі (API) үшін спецификация. Java Content Repository API (JCR) – контент-қоймаларына бірыңғай тәсілмен қол жеткізуге арналған Java платформасы қолданбалық бағдарламалау интерфейсі (API) үшін жасалған спецификация. Контент-қоймалары контентті басқару жүйелерінде (CMS) контент деректерін және нұсқалау метадеректері сияқты контентті басқару жүйелерінде қолданылатын метадеректерді сақтау үшін пайдаланылады. Спецификация Java Community Process аясында JSR 170 (1-нұсқа) және JSR 283 (2-нұсқа) ретінде әзірленді. Java-ның негізгі пакеті – javax.jcr.

Шолу

JCR – иерархиялық деректерді сақтауға, іздеуге және алуға бағытталған нысандық деректер базасының бір түрі. JCR API мазмұн басқару жүйелерінің қажеттіліктерінен туындады, олар құжаттар мен басқа да екілік нысандарды байланыстырылған метадеректермен сақтауды талап етеді; алайда, бұл API көптеген басқа да қолданбалар үшін де қолданылады. Нысанды сақтаудан өзге, JCR келесі мүмкіндіктерді ұсынады: деректерді нұсқалауға арналған API; транзакциялар; деректердегі өзгерістерді бақылау; және деректерді стандартты жолмен XML форматына импорттау немесе экспорттау.

Деректер құрылымы

JCR-дегі деректер, қасиеттерімен байланысты түйіндер ағашынан құралады. Деректер қасиеттерде сақталады, олар сандар мен жолдар сияқты қарапайым мәндерді немесе кез келген ұзындықтағы екілік деректерді қамти алады. Түйіндерге бір немесе бірнеше типтер тағайындалуы мүмкін, бұл қасиеттердің түрлерін, бағынышты түйіндердің санын және түрін, сондай-ақ түйіндердің белгілі бір мінез-құлқының ерекшеліктерін анықтайды. Түйіндер арнайы сілтеме типіндегі қасиет арқылы басқа түйіндерге сілтеме бере алады. Осылайша, JCR-дегі түйіндер сілтемелік тұтастықты және объектіге бағытталған мұрагерлік концепциясын ұсынады. Қосымша түйін типтеріне, пайдаланушыға әмбебап бірегей идентификаторды пайдалану арқылы осы түйінге сілтеме жасауға мүмкіндік беретін сілтемеге арналған түйін типі кіреді. Тағы бір танымал тип – нұсқалау типі. Бұл репозиторийге құжаттың тарихын қадағалауға және құжаттың әрбір нұсқасының көшірмелерін сақтауға мүмкіндік береді.

Сұраулар

JCR өз ағашының бөліктерін екі стандартты форматта XML-ге экспорттауға және иерархияларды тікелей XML-ден импорттауға мүмкіндік береді. JSR 283 стандартына сәйкес келетін жүзеге асырулар сұраныштар үшін SQL-дің стандартталған түрін және сұраныс объектісі моделін (QOM) қолдауы керек. JSR 283, JSR 170-те анықталған XPath сұраныс тілін қолданудан шығарады. JCR-дің Apache Jackrabbit анықтамалық жүзеге асырылуы Apache Lucene іздеу қозғалтқышын интеграциялауды қолдайды, бұл репозиторийдегі деректерді толық мәтіндік іздеуді жүзеге асыруға мүмкіндік береді.

Қол жетімді іске асырулар

Екі JSR-ді де Adobe Systems (бұрынғы Day Software) компаниясының Дэвид Нюшелер басқарады. Day компаниясы Content Repository Extreme (CRX) деп аталатын коммерциялық JCR іске асырылымын және 2010 жылдың қаңтар айында 2.0 нұсқасын шығарған ашық кодты Apache Jackrabbit JCR жобасына қатысты. ModeShape – JSR 283-ті қолдайтын тағы бір ашық кодты JCR іске асырылымы. Adobe Experience Manager (AEM), Jahia, Hippo CMS және Magnolia – JCR API-ға негізделген Enterprise Content Management жүйелері, олар әдепкі репозиторий ретінде Jackrabbit-ті пайдаланады, бірақ кез келген басқа JSR 170 сертификатталған репозиторийді қосуға мүмкіндік береді. JSR 170 Oracle Beehive корпоративтік ынтымақтастық бағдарламалық жасақтамасымен де қолдалады. eXo Platform-ның eXo JCR ашық бастапқы кодты репозиторий болып табылады және коммерциялық қолдау мен құжаттамамен қамтамасыз етілген. Көптеген басқа коммерциялық жеткізушілер JCR үйлесімділігі мен өнімдерімен жұмыс істеп жатыр. Alfresco – олардың репозиторийіне JCR API-ді ұсынатын ашық бастапқы кодты мазмұнды басқару жүйесі. GX компаниясы Apache Jackrabbit және JSR негізінде құрылған Web enterprise content management (ECM) платформасының жаңа қауымдастық нұсқасын шығарды. TYPO3 Java API-ді PHP-ге аудара отырып, PHP-ге бейімдеуді бастады. PHPCR интерфейстерін Jackalope, WebDAV интерфейсі арқылы Jackrabbit бэкендімен байланысатын PHP фронтенді және Midgard, көп тілді мазмұн қоймасы іске асырады.