?? JSR-170 (Java Content Repository (JCR)Java內(nèi)容倉(cāng)庫(kù)包)
1、什么是Content Repository ?
?? 可以把Content Repository 看作是一個(gè)通用的數(shù)據(jù)存儲(chǔ)程序,可以用于存儲(chǔ)txt和其他二進(jìn)制文件(圖片、Word、PDF等)。
?? Content Repository 的一個(gè)關(guān)鍵特性是,你不必關(guān)心數(shù)據(jù)是如何存放的(無(wú)論數(shù)據(jù)存放在數(shù)據(jù)庫(kù)、文件系統(tǒng)還是XML文件)。
?? Content Repository 可以對(duì)文件進(jìn)行訪問(wèn)控制、查詢、版本控制、鎖定等。
2、JSR-170的目標(biāo):
?? 通過(guò)javax.jcr.* 中的類和接口可以訪問(wèn)所有兼容JSR-170的 Content Repository。
實(shí)現(xiàn)了內(nèi)容服務(wù)的一些功能如基于編輯者的版本控制、完全文本搜索、訪問(wèn)控制、內(nèi)容分類和內(nèi)容事件監(jiān)控。可以把JSR-170看作是一個(gè)訪問(wèn)內(nèi)容倉(cāng)庫(kù)的類似JDBC的API。
?? 如果一些廠家的內(nèi)容倉(cāng)庫(kù)不支持JSR-170則可以通過(guò)這些廠家提供的JSR-170驅(qū)動(dòng)來(lái)完成從JSR-170與廠家特定的內(nèi)容倉(cāng)庫(kù)的轉(zhuǎn)換。
?? 內(nèi)容倉(cāng)庫(kù)的數(shù)據(jù)存儲(chǔ)方式可以是數(shù)據(jù)庫(kù)或者文件系統(tǒng)或者是二者的混合。
??
3、JSR-170具有如下優(yōu)點(diǎn):
●對(duì)于開發(fā)者無(wú)需了解廠家的倉(cāng)庫(kù)特定的API,只要兼容JSR-170就可以通過(guò)JSR-170訪問(wèn)其倉(cāng)庫(kù)。
●對(duì)于使用CMS的公司則無(wú)需花費(fèi)資金用于在不同種類CMS的內(nèi)容倉(cāng)庫(kù)之間進(jìn)行轉(zhuǎn)換。
●對(duì)于CMS廠家,無(wú)需自己開發(fā)內(nèi)容倉(cāng)庫(kù),而專注于開發(fā)CMS應(yīng)用。
4、JSR-170內(nèi)容倉(cāng)庫(kù)模型:
JSR-170聲稱內(nèi)容倉(cāng)庫(kù)是由一些workspace組成的,每個(gè)工作空間應(yīng)該存放相似的數(shù)據(jù),每個(gè)工作空間包含一個(gè)樹根節(jié)點(diǎn),下面是一些items,每個(gè)item是一個(gè)node或者property,每個(gè)node下面包含一個(gè)或多個(gè)child node和一個(gè)或者多個(gè)property,property不能有子節(jié)點(diǎn),它們是葉子節(jié)點(diǎn),內(nèi)容倉(cāng)庫(kù)中真正的值存放在property中。
5、為了使廠家更容易的實(shí)現(xiàn)JSR-170,JSR-170提供了三種承諾級(jí)別:
Level 1:定義了一個(gè)只讀的內(nèi)容倉(cāng)庫(kù)。
Level 2:定義了可寫的內(nèi)容倉(cāng)庫(kù)。
Advanced options:定義實(shí)現(xiàn)五種附加功能,版本控制、JTA、SQL查詢、清晰的內(nèi)容鎖定和監(jiān)視。
引自:http://blogger.org.cn/blog/more.asp?name=lylhelin&id=20455