什麼是JAVA內容倉庫(Java Content Repository)(1) – JAVA編程語言程序開發技術文章

JSR-170把自己定義為一個能與內容倉庫互相訪問的,獨立的,標準的方式。同時它也對內容倉庫做出瞭自己的定義,它認為內容倉庫是一個高級的信息管理系統,該系統是是傳統的數據倉庫的擴展,它提供瞭諸如版本控制、全文檢索,訪問控制,內容分類、訪問控制、內容事件監視等內容服務。

Java Content Repository  API(JSR-170)試圖建立一套標準的API去訪問內容倉庫。如果你對內容管理系統(CMS)不熟悉的話,你一定會對內容倉庫是什麼感到疑惑。你可以這樣去理解,把內容倉庫理解為一個用來存儲文本和二進制數據(圖片,word文檔,PDF等等)的數據存儲應用程序。一個顯著的特點是你不用關心你真正的數據到底存儲在什麼地方,是關系數據庫?是文件系統?還是XML?不僅僅是數據的存儲和讀取,大多數的內容倉庫還提供瞭更加高級的功能,例如訪問控制,查找,版本控制,鎖定內容等等。

一段時間以來市場上出現瞭各個廠傢開發的不同的CMS系統,這些系統都建立在他們各自的內容倉庫之上。
問題出現瞭,每個CMS開發商都提供瞭他們自己的API來訪問內容倉庫。這對應用程序的開發者帶來瞭困擾,因為他們要學習不同的開發商提供的API,同時,他們的代碼也與這些特定的API產生瞭綁定。

JSR-170正是為解決這一問題而出現的,它提供瞭一套標準的API來訪問任何數據倉庫。通過JSR-170,你開發代碼隻需要引用 javax.jcr.* 這些類和接口。它適用於任何兼容JSR-170規范的內容倉庫。

我們將通過一個例子來逐步瞭解JSR-170。

為什麼需要 Java Content Repository API

隨著各個廠傢各自的內容倉庫實現數量的增長,人們越來越需要一組通用的編程接口來使用這些內容倉庫,這就是JSR-170所要做的東西。它提供一組通用的編程接口來連接內容倉庫。你可以把JSR-170理解為和JDBC類似的API,這樣你可以不依賴任何具體的內容倉庫實現來開發你的程序。你可以直接使用支持JSR-170的內容倉庫;或者如果一些廠傢的內容倉庫不支持JSR-170則可以通過這些廠傢提供的JSR-170驅動來完成從JSR-170與廠傢特定的內容倉庫的轉換。

下面這張圖描述瞭使用JSR-170開發的應用系統的結構。在該系統運行的時候,它可以操作內容倉庫1,2,3中的任意一個。在這些內容倉庫當中,隻有2是直接支持JSR-170的,剩下的兩個都需要JSR-170驅動來和應用系統交互。註意:你的應用系統完全不用關心你的數據是如何存儲的。1可能使用瞭關系數據庫來存儲,而2使用瞭文件系統,至於上,它甚至更前衛的使用瞭XML。

repositorymodel1.gif

JSR-170 API對不同的人員提供瞭不同的好處。

●對於開發者無需瞭解廠傢的倉庫特定的API,隻要兼容JSR-170就可以通過JSR-170訪問其倉庫。
●對於使用CMS的公司則無需花費資金用於在不同種類CMS的內容倉庫之間進行轉換。
●對於CMS廠傢,無需自己開發內容倉庫,而專註於開發CMS應用

發佈留言