1 绪论1.1 动机 随着拥有内容仓库的内容提供商的增长,在数据仓库上面需要有一套统一的程序接口规范。基于Java技术的API规范的目的就是提供这样的一套接口,这样做,以便为建立一套真正的工业用的内容基础结构打下基础。
应用开发者和客户解决方案集成哲不用再学习每一个内容提供商的特殊API规范。相反的,程序开发人员能够开发基于内容的独立逻辑的应用,这种应用能够很好的识别内容仓库的体系结构和物理存储方案。
用户也可以不用在他们的内容仓库上面建立任何应用而完成内容仓库的交换,并从中获取利益。
1.2 目标 控制API设计的指导原则是:
ü 它不必和任何特殊潜在的结构,数据源或协议相联系
API的本质是一组能够被外部以各种不同方式实现的Java接口。因此,在本质上实现这个目标并不困难。在这里最主要的挑战是在API中要提供足够的弹性以便它能适用于分层的和没有分层的仓库模型。这点是通过提供内容选项的分层的、以路径为基础的地址和直接的、以共同唯一ID(UUID)为基础的地址来实现的。
ü 从程序设计者的角度出发,它必须易于使用
为了达到这个目的,API被尽可能被设计得简单和直接。特别的,它有一个简单的对象模型,并且它集中在表现一个内容仓库的核心功能而不是贸人进入有可能被当作是内容应用的区域。
ü 它必须在各种已经存在内容仓库上面提供尽可能相对简单的实现
已经做出共同的努力以确保在大多数主要内容提供商的内容仓库之上实现API变得相对容易。(特别是下面的第一级模型)
ü 然而,它必须使那些高级的与内容相关的应用所需要的综合功能表化
为了识别在这个目标和上一个目标之间存在着差别,本规范分成两个兼容的级别和一系列的可选特征。
第一级模型定义了一个只读的仓库。它包括读取仓库内容,内省内容类型的定义,对命名空间的基本支持,导出内容成XML和检索等功能。这些功能必须满足表现模板和由大部分已经存在的以代码为基础的内容相关应用组成的基本门户应用的需要。第一级模型也被设计得能够在任何已经存在内容仓库进行简单的实现。
第二级模型添加了一些方法的定义,这些方法包括内容修改,指定内容的类型,进一步的支持命名空间以及从XML中导入内容等。
最后,定义了大量的独立可选组件以便支持兼容的仓库。这些组件包括事务、版本化、观察器、访问控制、锁和对检索支持的添加。