Atitit Java内容仓库(Java Content Repository,JCR)的JSR-170  文件存储api标准

目录

1. Java内容仓库 1

2. Java内容仓库 2

2.1. 存储模型 2

3. JackRabbit就是一种面向文档的数据库, 3

3.1. Apache Jackrabbit 3

1. Java内容仓库

问题提出

存取各种信息对于任何应用程序来说非常平常,大多数时候我们会把数据保存在关系数据库中。数据库处理规范数据类型十分在行,但是在处理如图像、文档等二进制数据时却不是那么得心应手。

尽管可以用文件系统作为替代——而且它们还提供了更好的性能。但它们既没有提供用于搜索信息的查询语言,也没有提供表示关系或事务的概念。

什么是JSR-170

幸运的是,被称为Java内容仓库(Java Content Repository,JCR)的JSR-170,试图以独立于具体实现的方式解决这些(以及其它)问题。即,不论底层资源(如,数据库,本地或虚拟文件系统)是什么,API都将相同。在数据存储之上,JCR提供诸如访问粒度控制、版本控制、内容事件、全文检索和过滤等内容服务。

采用JCR能带来什么呢?包括如事务、伸缩性、数据库端的查询、使用超大文件带来的真正好处、流、访问控制和文件系统端的层次结构,以及诸如版本标定、全文检索,以及“数据优先”方法。

由Day Software领导的JSR-170背后的专家组付出了艰辛的劳动。2005年6月完成,在javax.jcr包中,API包含了大约50个类(主要是接口和异常)。

2006年早些时候,我们的主角JackRabbit登场了, 它是JCR 1.0版本的参考实现,除了JackRabbit之外,还有许多开源或者商业的JCR 1.0的不同实现。

JCR全拼Java content repository,中文名为java内容仓库。随着内容管理应用程序的日益普及,对用于内容仓库的普通、标准化 API 的需求已凸现出来。Content Repository for Java Technology API (JSR-170、JSR-283) 的目标就是提供这样一个接口。JCR 的一个主要优点是,它不绑定到任何特定的底层架构。例如,JCR 实现的后端数据存储可以是文件系统、WebDAV 仓库、支持 XML 的系统,甚至还可以是 SQL 数据库。此外,JCR 的导出和导入功能允许一个集成器在内容后端与 JCR 实现之间无缝地切换。

2. Java内容仓库

编辑

本词条缺少信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

Java内容仓库是JSR-170中定义的一个内容存储的规范。

Java内容仓库

Java内容仓库

Java内容仓库是JSR-170中定义的一个内容存储的规范。JSR-170试图建立一套标准的API去访问内容仓库。如果你对内容管理系统(CMS)不熟悉的话,你一定会对内容仓库是什么感到疑惑。你可以这样去理解,把内容仓库理解为一个用来存储文本和二进制数据(图片,word文档,PDF等等)的数据存储应用程序。一个显著的特点是你不用关心你真正的数据到底存储在什么地方,是关系数据库?是文件系统?还是XML?不仅仅是数据的存储和读取,大多数的内容仓库还提供了更加高级的功能,例如访问控制,查找,版本控制,锁定内容等等

2.1. 存储模型

编辑

内容仓库有很多工作区(workspace)组成,每个工作区是一颗树。如左图,树是由节点(node)和属性(property)组成,其中属性隶属节点,属性可以存储字符串、整形、布尔型、二进制等信息。每个工作区只有一个根节点(root),除了跟节点,其它节点都有一个父节点

3. JackRabbit就是一种面向文档的数据库,

它和MongoDB,CouchDB的功能十分接近,优势在于JackRabbit遵从JCR标准,日后可以迁移到其他同样兼容JCR的性能更好的商业解决方案上。

3.1. Apache Jackrabbit

编辑

本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

Apache Jackrabbit是基于java内容仓库仓库JSR170、JSR283的完全实现,支持存储结构化和非结构化内容。具有全文索引、版本管理、事务、锁、事件监听、访问控制等特性。

Jackrabbit是Java内容仓库(Java Content Repository)实现。不准确地说是一种即可存储文本又可存储二进制数据(图片,word文档,PDF等等)的文档数据库。到目前为止最新稳定版本是2.11.1,从1.x到2.x版本增加了很多高级特性,比如锁,事务等。1.x是基于JSR170的实现,2.x是基于JSR283的实现。jackrabbit oak是jackrabbit的下一代产品,其致力于大规模高性能的内容仓库以便满足当代世界级站点需求。

Jackrabbit是Apache基金会的顶级项目之一。

3.2. JCR 及 Apache Jackrabbit 简介

JCR 是 Content Repository for Java Technology API 的缩写,译为 Java 内容存储规范,其规范定义在 JSR170 和 JSR283,两者分别定义了 JCR 的 1.0 和 2.0 版本。其目的是简化 Java 的数据管理,并希望建立起一种基于内容仓库(Repository)而不是传统数据库(例如 RDBMS)的编码模型。内容仓库的一个典型应是内容管理系统(CMS)。JCR 是内容仓库的抽象,因为实际的内容仓库可以基于数据库,可能基于文件系统或者其他适合的存储机制,例如 WebDAV 仓库。而内容仓库的访问也有多种方式,包括直接访问(如应用程序的本地仓库),或者作为资源来访问(如通过 JNDI 来访问 Java EE 的容器),也可以使用 HTTP 或者 RMI 方式通过网络访问。

Apache Jackrabbit 是由 Apache Foundation 提供的 JCR 的开源实现。其起源可以追溯到 2002 年的 Apache Jakarta Slide 项目,该项目计划实现 JSR170 定义的内容仓库。随后在 2004 年,关于 JCR 的开源实现成为一个单独的项目,并命名为“Jackrabbit”。关于 Jakarta 和 Slide 项目,最初的 Jakarta 是一个包含 Ant、Maven、JMeter 等著名子项目的集合,Slide 也是其中的一个子项目。Slide 项目的主要内容是内容仓库,其中一个重要功能就是对 WebDAV 的支持,WebDAV 也可以看作是内容仓库的重要基石。但 Slide 项目在 2004 年以后便没有更新,并于 2007 年正式关闭。目前对 WebDAV 的支持主要来自 Jackrabbit 项目,实现 JCR1.0 的最新版本为 Jackrabbit1.6,实现 JCR2.0 的最新版本为 Jackrabbit2.4

JackRabbit的前世今生 - 萌哒哒~ - 博客园.html

Java Content Repository API 简介 转自(https___www.ibm.com_developerworks_cn_java_j-jcr_) - 蜗牛兰 - 博客园.html

Atitit Java内容仓库(Java Content Repository,JCR)的JSR-170 文件存储api标准 目录 1. Java内容仓库 1 2. Java内容仓库 2 2.1.相关推荐

  1. Java 跨平台运行机理:Dos 命令在桌面新建文件夹,并在其中编译、运行一段 Java 程序

    文章目录 前言 一.打开 Dos 命令界面 二.Dos 查看桌面文件目录序列 三.Dos 创建文件夹 四.相关 Windows 系统 Shell 命令补充 五.Dos 进入文件夹编写 Java 文件 ...

  2. Linux服务器根目录有大量 java_pid88637.hprof文件,把更目录空间占满了,top中有java进程占用大量cpu资源

    1. 查看文件后发现是 安装的 logstash 给的内存太少了: 2. 进入  logstash 目录,修改 config/jvm.options 修改: -Xms1g -Xmx1g 可以适当的 根 ...

  3. 文件节点的linux指令,Java工程师必学的Linux命令(一)文件与目录管理

    从本篇文章开始,我将总结一些Java工程师日常研发工作中会使用到的Linux命令,在介绍这些命令的过程中,也会对Linux系统的一些基础知识进行普及.希望对大家工作和学习有所帮助吧. 本篇将从文件与目 ...

  4. 什么是JAVA内容仓库(Java Content Repository)

    内容仓库模型 JSR-170 是这样定义内容仓库的,内容仓库由一组 workspace(工作空间)组成,这些workspace通常应该包含相似的内容.一个内容仓库有一个到多个 workspace.每个 ...

  5. java全文检索word中的内容_搜索引擎时对WORD,EXCEL,PDF,POWERPOINT文件全文检索的总结...

    搜索引擎时对WORD,EXCEL,PDF,POWERPOINT文件全文检索的总结 (2012-02-12 16:31:59) 标签: pdf文档 幻灯片 pdf文件 全文检索 控件 it JAVA读取 ...

  6. 解决java.lang.IllegalStateException: The content of the adapter has changed but ListView...的问题

    我写了一个Dialog,Dialog中有一个ListView,想要点ListView中的一项后,跳转到另外一个Activity去. 但在使用时,会偶尔报出下面的错误: 02-21 14:54:28.9 ...

  7. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  8. Android异常总结---1.异常原因: java.lang.IllegalArgumentException: URI: content://com.android.contacts/con

    1.异常原因: java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts1/data, call ...

  9. 项目销毁主页Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService异常

    项目需求,项目退出登录的时候,跳转登录页面,重新登录,会重新进入首页.很简单的需求,只需在退出的时候将存储的用户信息销毁,把之前活跃的activity销毁,重新跳转进入登录界面即可.但是在真正执行退出 ...

  10. 解决MediaPlayer: Couldn't open /storage/emulated:java.io.FileNotFoundException: No content provider问题

    项目中用到了MediaPlayer播放本地视频文件的功能,遇到了一个很奇葩的问题,在4.0的设备上可以完美播放,但是在7.0的设备上死活播放不了,一直报如下错误 错误信息里出现了这几个字眼" ...

最新文章

  1. java不同的数据源如何处理_java – 如何在不同的数据源上创建两个类之间的关系?...
  2. 022_applescript快速入门教程
  3. Js判断下拉框是否为空值
  4. android gridview控件使用详解_作为Android 开发者该如何进阶?
  5. html怎么给框格加背景图,怎么给word 2013表格添加漂亮的背景图片
  6. mysql group_concat时间用法
  7. 【maven】 在 MyEcplise上使用maven搭建Web项目
  8. 离散卷积与自相关----------信号处理系列[原创]
  9. 从AR光学开始,了解AR眼镜
  10. html怎么创建表格,html怎么做表格
  11. 25个常用Matplotlib图的Python代码
  12. C#替换方向性的 Unicode 控制字符,解决无法匹配iphone 通讯录复制的手机号码问题
  13. js实现addClass、removeClass方法
  14. 02、alex 说过“普通运维人员就是秋后的蚂蚱”
  15. 美团、飞猪基础架构组实习经历分享
  16. 计算机应用基础18秋在线作业2奥鹏,奥鹏15春北航《计算机应用基础》在线作业2答案...
  17. linux认证考试有哪些
  18. Bless You Autocorrect!(字典树上建图)
  19. 爬取安居客租房详情+翻页
  20. 将XP SP3集成到Windows XP安装光盘

热门文章

  1. mysql desc show_MYSQL SHOW 用法
  2. 在公司网络中如何手动为apt-get设置代理
  3. NGN学习笔记8——NGN的安全问题
  4. Ajax 学习(一)
  5. 5G信道编码技术取得新突破,极化码同时满足ITU三大应用需求
  6. 《制造业中的机器人、自动化和系统集成》—— 3.5 工装与夹具
  7. table TD 超出省略号
  8. 数据库实战:SQL Server系列网络课程资料集
  9. 微信小程序开发:学习笔记[5]——JavaScript脚本
  10. iOS 混合开发 —— 方案分析