Java内容仓库规范及产品介绍2011-11-11 博客园 镜涛背景:对于大多数的应用系统而言,保存信息无疑是最重要也是最平常的功能,目前大多数情况下这些信息 是保存在 Oracle、DB2、SqlServer等关系型数据库中的。但是这些数据库在处理图像、文档等二进制数 据方面,却是有很多的不足。虽然我们可以用文件系统来替代,例如淘宝就开发了自己的文件系统 (Taobao File System),能够满足高性能的存取海量小文件以及PB级数据量和百亿级数据规模的需求, 但是对于文件系统而言,他们没有提供用于搜索信息的查询语言,也没有提供关系、事务等相关的功能。 而随着应用程序的不断扩展,允许第三方访问这些存储数据已经成为一个典型的需求。同时很长一段时间以来市场上各个厂家开发的不同的CMS系统,这些系统都建立在他们各自的内容仓库 之上,每个CMS 开发商都提供了他们自己的API来访问内容仓库。这对应用程序的开发者带来了困扰,因 为要学习不同的开发商提供的API,同时代码也与这些特定的API产生了绑定。JSR-170正是为解决这一问 题而出现的,它提供了一套标准的API来访问任何数据仓库。通过JSR-170,你开发代码只需要引用 javax.jcr.* 这些类和接口。它适用于任何兼容JSR-170规范的内容仓库。JCR(或者JSR-170)规范:1.JCR模型介绍:Java内容仓库(Java Content Repository,JCR)试图以独立于具体实现的方式解决这些问题。不论 底层资源(如,数据库,本地或虚拟文件系统)是什么,API都将相同。在数据存储之上,JCR提供诸如访 问粒度控制、版本控制、内容事件、全文检索和过滤等内容服务。如图(1-1)所示:

图(1-1)