JSR170/283 内容仓库

JSR 170:Java Content Repository API
  JSR-170 把自己定义为一个能与内容仓库互相访问的,独立的,标准的方式。
  它认为内容仓库是一个高级的信息管理系统,是传统的数据仓库的扩展。
  它提供了诸如版本控制、全文检索、访问控制、内容分类、访问控制、内容事件监视等内容服务。

我们可以把内容仓库理解为一个用来存储文本和二进制数据(图片,word文档,PDF等等)的数据存储应用程序。
内容仓库一个显著的特点是你不用关心你真正的数据到底存储在什么地方,是关系数据库?是文件系统?还是XML?
不仅仅是数据的存储和读取,大多数的内容仓库还提供了更加高级的功能,例如访问控制,查找,版本控制,锁定内容等等。

JSR-170 是这样定义内容仓库的:
  内容仓库由一组 workspace(工作空间)组成,这些workspace通常应该包含相似的内容。一个内容仓库有一个到多个workspace。
  每个workspace都是一个树状结构,都有一个唯一的树根节点(root node)。
  树上的item(元素)或者是个node(节点)或者是个property(属性)。
  每个node都可以有零个到多个子节点和零个到多个子属性。只有根节点没有父节点,其余所有的节点都有一个父节点。
  property 也必须有一个父节点,但它没有子节点或是子属性。
  property 是叶子元素,它是真正存储数据的元素。

根据内容仓库实现的功能,JSR-170定义了三种级别:
  Level 1:定义了一个只读的内容仓库。功能包括读取内容,将内容导出为XML和查找内容。
  Level 2:定义了可写的内容仓库。Level 2是Level 1的扩展,新增的功能包括往内容仓库里写入内容,和从XML导入数据到仓库。
  Advanced options:定义实现五种附加功能,版本控制、JTA、SQL查询、清晰的内容锁定和监视。

Apache推出了内容仓库API标准JSR170/283
  JSR170标准是JCR(Java Content Repository)1.0;JSR283标准是JCR2.0。
  Jackrabbit是对JSR170/283的一个参考实现
  Jackrabbit可以和Struts+spring+hibernate框架结合良好。
  SpringModules提供将Jackrabbit集成到Spring框架中的方法。
  注:
    SpringModules:包含一组用于扩展Spring框架的工具、附件和模块。
    Spring Modules的核心目标是促进Spring与其他项目相集成而不需要打乱或扩大Spring core。

参考:
  http://www.360doc.com/content/08/0101/11/51513_938743.shtml
  http://space.itpub.net/13353915/viewspace-614576

posted @ 2012-04-01 21:59  万法自然~  阅读(706)  评论(0)    收藏  举报