1、开放源代码的数字资源管理系统DSpace和Fedora的分析和比较1背景 我们对目前国际上流行的开放源代码的数字资源管理系统进行了重点的分析和试用,尤其对目前流行的两种开放源代码数字资源管理系统DSpace1和Fedora的体系结构、主要功能特点等做一些系统的分析和比较,希望能够为关注这些研究的单位和研究人员提供一些借鉴和参考。 2DSpace的分析 DSpace系统是MIT和HP实验室合作研究开发的为教育科研机构创建稳定的环境来长期保存和获得原生数字材料,捕捉、存储、索引、保存以及传播数字财产的系统平台。2002年10月,该平台开始在MIT正式服务,2002年底,向全世界公开了基于BSD开放
2、源代码许可协议的DSpace源码,目前最新版本为版。 DSpace的数据模型 DSpace中的数据组织倾向于反映使用DSpace系统的组织本身的结构。每个Dspace系统被划分成一些数字空间群(Communities),对应于大学的院系、实验室、研究中心等,这些依据不同的授权完成不同任务的组群称作数字空间群。在DSpace 中,这些数字空间群可以组织成一个有继承关系的结构。 数字空间群中包含数字馆藏(Collections),数字馆藏由一些相关的内容组成,一个数字馆藏可以出现在多个数字空间群中。 数字馆藏由数字条目(Items)组成,数字条目是信息的基本存档元素。每一个数字条目由一个数字馆藏拥
3、有,它可以出现在其他的数字馆藏中,但是只有唯一的所有者拥有馆藏。 数字条目被进一步划分为命名的数字流包(Bundles of Bitstreams)。数字流(BitStreams)是由比特位组成的一般的计算机文件。具有密切联系的数字流可以组成数字流包。 每个数字流与一种数字流格式相关联。因为提供长期保存服务是DSpace服务的一个重要方面,所以获取用户提交的文件的特定格式是很重要的。在DSpace中,一个数字流格式是用来指向一个特定文件格式的唯一方法。例如:对Microsoft Word 2000格式的数字流的解释是通过指向Microsoft Word 2000应用程序的引用来隐式地定义。数字
4、流格式比MIME类型或者文件名后缀更能准确表达格式。例如:对Microsoft Word 2000格式的数字流的解释是通过指向Microsoft Word 2000应用程序的引用来定义的;而采用MIME类型的Application/ms-word和文件名后缀的,doc覆盖了Microsoft Word应用的多种版本,每种版本对应可能特性不同的数字流。 DSPace的体系结构 DSPace系统分为三层,每一层由一系列组件组成。 DSpace的体系结构 其中存储层(Storage Layer)负责对数字条目和关联的元数据进行存储,数字内容存储在文件系统中,以数字流和数字流包的形式与条目相关联,条目
5、中可以包含不同类型的文件。业务逻辑层(Business Logic Layer)由处理DSpace系统各个独立功能的一系列组件组成,如:浏览、检索、用户组管理和授权、工作流管理、内容管理等。应用层(Application Layer)提供终端用户交互和接口功能,基于Web的用户界面,批量数据导入工具,OAI元数据供应等。考虑到长期保存的需要,DSpace提供对CNRI句柄的支持,保证给每个数字条目一个全球唯一的标识符。 DSpace的主要功能特点 (1)DSpace中的元数据支持 DSpace中的存档内容具有3种元数据。 描述元数据 每个数字条目对应有一个Qualified Dublin Co
6、re描述元数据记录。Qualified Dublin Core之外的其他关于数字条目的描述元数据可以以序列化的数字流的形式存在。数字空间群和数字馆藏具备一些简单的描述元数据,存在于系数据库中。 管理元数据 包括技术元数据,数字化过程元数据和授权策略等数据。大多数存在于DSpace的关系数据库表中。 结构元数据 包括的信息有:如何展示一个数字条目,或者是将个数字条目内部的数字流给用户;数字条目组成部分之间的关系。例如:组成一个论文的一组TIFF图,每幅图代表其中一页,结构元数据可以将其中的每一张图像表示为一页,并表示每页的顺序信息。 (2)DSpace中的电子用户(E-People) DSpac
7、e中的许多功能如:文档发现和提取都可以匿名使用,但是用户必须经过身份验证才能行使如提交,E-mail通知或管理的功能。用户可以通过分组来方便地管理。DSpace中把用户叫做“E-People”,因为在有些时候一些用户可能是机器而非真正的人。 DSPace中保存的每个E-Person的信息 邮件地址; 姓名; 用户是否可以通过Web界面登录,或者是必须使用X509验证; 密码; 订阅的数字馆藏列表; 电子用户是通过自己注册产生,还是通过该机构的个人信息数据库产生。 (3)DSpace中的授权策略 DSpace中采用基于分组的资源控制策略,权限策略可以针对个别的用户和匿名用户,也可以适用于电子用户
8、工作组。对用户用户组的授权必须明确地声明,缺省情况下,DSpace中采用“否定”授权策略。而且权限也不能随便扩展,比如说,某个用户具有某个数字条目的读权限,但不一定具备与该条目关联的数字流文件的读权限。 (4)可定制的工作流机制 DSpace中的馆藏资源的提交和管理基于一个可以定制的工作流过程运行。一般情况下,一个数字馆藏的工作流分3个步骤,并且每个步骤对应有可以行使该操作的电子用户组,如果某个步骤没有对应的操作用户组,那么该步骤在实际的过程中将被忽略。当某个步骤被激活时,执行该步骤的任务被加入到相关的用户组的“任务池”中,并且组中的用户获得通知,从“任务池”中取出该任务处理,完成后进入下一步
9、。工作流流程可以通过DSpace提供的管理员工具来定制,具有管理员身份的用户可以根据馆藏资源的具体提交过程使用管理工具定义适合的资源提交流程。 (5)资源的唯一标识符策略 在DSpace中采用美国国家研究推进机构(The Corporation for National Research Initiatives,CNRI)的句柄系统(Handle System)来生成资源标识。每个DSpace站点要从CNRI获得一个唯一的前缀,站点本身可以运行一个句柄服务器来生成内部的唯一标识符,并且可以接收和解析外部进来的请求。句柄可以被指定给数字空间群,数字馆藏和数字条目,对于数字流包和数字流不采用指定句
10、柄来标识。 句柄可以写成2种形式: hdl:/4567 http:/4567 第二种表示可以被任意的浏览器识别,第一种需要使用CNRI的句柄解析插件。 其中,前缀:;4567是本地部分。 (6)DSpace中的资源开放服务 DSpace系统实现了OAI-PMH协议,通过公开提供可匿名访问的数字条目的DC元数据。另外,数字馆藏结构也采用OAI协议的“集合(Sets)”机制公开。DSpace中采用OCLC的开放源OAICat框架来提供这项功能。 DSpace系统以一种简单的方式支持SFX10的OpenURL协议11。如果使用机构有一个SFX服务器,DSpace将给每一个数字条目页上显示一个Open
11、URL链接,自动使用DC元数据。另外,DSpace能够响应外来的OpenURL请求。目前,只是简单地把OpenURL中的信息传递给检索子系统,会给出一个结果列表,在列表顶部会给出最相关的数字条目。 (7)DSpace的检索和浏览功能 DSpace的索引和检索模块提供一个简单的API,允许对新内容作索引,重建索引以及在指定范围内检索。这个API来自免费的Java搜索引擎Lucene12。Lucene支持字段检索、停词(Stop words)、词干(Stemming)以及不重建索引增加新的索引内容的能力。 浏览子系统提供了一个简单的API来指定一个索引,或该索引的一部分。可以被浏览的索引有Item
12、 Title,Item lssue Date和Authors。浏览范围可以从数字空间群到数字馆藏。 (8)数据的导入导出 DSpace包括导入和导出数字条目的批处理工具,采用简单的目录结构组织,DC元数据存成XML文件。这些工具可以用来作为在DSpace和其他系统之间迁移的基础。还提供一个基于METS13的导出工具,将数字条目导出成METS格式的元数据记录,但还不提供对METS格式的元数据的导入功能,DSpace开发组计划在未来的版本中提供基于METS的元数据导入工具。 DSpace的安装和运行环境 本文以DSpace 版本为例进行了安装和试用,所需的安装和运行环境 Unix类的操作系统,如:
13、Linux,HP/UX等; Java2 Standard Development Kit(J2SDK)或者是更高版本; Apache Ant 或者是更高版本,或者是其它类似的Java编译工具; PostgreSQL 或者是更高版本,一个开放源代码的关系数据库系统; Jakarta Tomcat /或者是类似的系统,如:Caucho Resin的等同版本。 3Fedora的分析 Fedora(Flexible Extensible Digital Object and Repositoty Architecture)系统是由Andrew 基金会资助,由Virginia和Cornell大学联合开发
14、的开放源代码系统,遵守Mozilla开放源代码协议。Fedora是一个通用的数字对象管理系统。可以用在很多地方,包括:数字图书馆、内容管理、数字资产管理、资源保存等。2001年发布Fedora 版,目前最新版本版。 Fedora的数据模型 (1)Fedora的数字对象框架 数字对象框架(Digital Object Architecture,DOA)最早是William 于1997年提出的,后来在Fedora系统中得到实现。Fedora中的数字对象的结构模型如图2所示。 数字对象的结构模型14 Persistent ID(PID),数字对象唯一标识符(Digital ObjectIdentif
15、ier),用来唯一地标识一个数字对象,以便于在命名空间内唯一地引用该数字对象。 系统元数据(System Metadata),描述整个数字对象,用来管理该数字对象和建立数字对象的索引。 数据元素(Datastream),是数字对象所包含的数据,它可能是元数据,也可能是数据本身。如果是元数据,可能是各种格式的,比如Dublin Core,MARC。如果是数据本身,可能是文本、图像、音频、视频数据。一个数字对象包含一个或者多个数据元素。 数据发布器(Disseminator),是数字对象内部的一种结构,对应着一种发布数字对象内容的方式。包括两部分:接口定义(Behavior Definition)
16、和接口的实现(Behavior Mechanism),分别对应着对数据内容的操作接口和对数据内容操作的接口的实现14。 (2)Fedora的仓储 仓储(Repository)是存储管理数字对象的容器,是Fedora系统中非常重要的实体。仓储实现了数字对象的存储管理,并且通过一定的访问控制策略提供了数字对象内容发布的机制。数字对象存放在仓储里面,一个数字对象对外部可见的只是它的唯一标识符,与数字对象的交互只能通过仓储访问协议进行14。 Fedora的体系结构 Fedora是一个三层结构的系统,采用灵活可变的数字对象仓储体系结构。 Fedora的体系结构图15 最上层是管理和访问接口层,定义了系统
17、的公共视图,构建于Web Services技术之上。仓储提供了两个相关的Web Services,管理Web Service和访问Web Service。Fedora管理接口定义了管理仓储的公开接口,包括创建、修改、删除数字对象或者数字对象的数据元素。Fedora访问接口定义了访问数字对象的公共接口。 中间层是内部服务层,包含管理子系统,访问子系统,安全子系统。管理子系统和访问子系统分别实现了管理和访问接口。 底层是存储于系统,负责读写数字对象和数字对象元素。数字对象的元素可以是分布的。存储子系统需要负责实时请求和缓存分布的数据。Fedora支持通过HT-TP协议和FTP协议访问分布式资源。
18、Fedora的主要功能特点16 (1)灵活的数字对象模型 Fedora数字对象模型提供很大的灵活性,支持创建各种类型的对象,包括:文档、图像、电子书、多媒体学习对象、数据集、元数据等。Fedora中的元数据模型可以用数字对象中的一个或多个数据流描述和访问,可以是一个本地的元数据集合,一个标准的元数据集合,或者是DC元数据的扩展。 (2)以Web Service方式发布管理和访问服务 Fedora仓储系统提供的管理和访问服务作为Web Service进行发布,通过WSDL(Web Services Description Language)进行描述。同时访问服务接口还提供了基于Web页面的调用实
19、现。外界对数字对象的访问通过调用数字对象提供的行为中的具体方法来进行。数字对象的行为作为分布式的Web Service进行实现,用WSDL进行表述,通过HTTP GET/POST或者SOAP(Simple Object Access Protocol)进行访问。 (3)内容版本控制 通过Fedora管理接口修改数据元素或者是数据发布器可以自动地生成新版本的相应内容。Fedora对象包含一个所有版本的记录,对以往版本内容的访问可以通过在Fedora访问服务(API-A和API-A-LITE)请求之上加入时间戳来实现。 (4)XML格式的数据存储和导入导出 缺省情况下,Fedora数字对象在Fed
20、ora系统中以FedoraObject XML(FOXML)格式编码的XML文件形式存储。数字对象中的内容数据保持本身的格式以数据元素(Data Stream)的形式存放在系统的序列化存储区。 数字对象可以遵照Fedora Object XML(FOXML)Schema或者是Metadats Encoding and Transmission Standard(METS)13Schema格式编码过的XML文件的格式提交到Fedora存储系统和从系统中导出。在Fedora的未来版本中还将支持MPEG2/DIDL和METS 规范。 (5)对象之间的关联支持 Fedora提供对象之间关联关系的声明。
21、对象到对象的关联元数据用来表示对象之间的各种关系,包括:某个对象是一个数字馆藏的成员,是否另一个对象的一部分从另一个对象派生,或者是等价于另外一个对象等。这些关系定义在Fedora的关联本体集合中。 (6)简单检索功能 Fedora自动地为存储系统创建两种索引。缺省的检索索引是有关对象的属性和DC元数据元素。在Fedora 中,有一个新的基于RDF的资源索引,包含对象之间的关联关系。这两种索引都可以通过基于表现性状态传输协议REST(Representational StateTransfer)17这种面向资源的Web服务接口来检索。 (7)OAI元数据采集服务 每个Fedora数字对象有一个
22、原始的DC记录,符合OAI PMH 协议标准所定义的Schema规范,这种元数据可以使用OAI PMH 标准访问。 (8)管理工具 系统提供一个迁移工具可以实现批量的对象导入和导出。迁移工具在2个新增强的命令行工具:Fedoraingest和Fedora-export的基础上实现,可以在不同的仓储之间实现对象的移动和复制,包括从以前的版本升级。 Fedora仓储系统中包含一个管理员客户端中的批处理工具,可以批量创建和修改数字对象。另外,还包括一个报告工具,提供对Fedora仓储中各种内容的不同管理视图的报告。 Fedora的安装和运行环境 本文以Fedora 版本为基础扩展开发了一个通用的数字
23、资源管理系统DRMS18,所需的安装和运行环境 Unix类或者是Windows操作系统,包括Linux,Solaris等; Java2 Standard Development Kit(J2SDK)或者是更高版本; MySQL 版本,版本,或者是Oracle 9i关系数据库系统; Apache Jakarta Tomcat 或者是类似的系统。 4DSpace和Fedora的比较 通过上述对两个系统的分析,可以总结出两个系统之间的一些共同点和区别如下。 相同点 (1)都基于开放和模块化的体系结构。DSpace基于一个三层结构而且数据模型基于OAIS参考模型;Fedora使用灵活可扩展的数字对象和
24、仓储体系结构。 (2)都支持长期保存的问题,可以给同一种内容提供多种数字格式,使用技术元数据并保证一个全球唯一的标识符来访问每个数字对象。 (3)都支持数字对象,可以是原生的或者是数字化的,不受特定的文件格式或数字内容类型的限制。 (4)都采用METS标准作为数据交换的格式。 (5)都实现了OAI协议,提供元数据采集服务,方便系统之间的互操作。 (6)系统都采用纯Java实现,具有良好的跨平台性。 不同点 (1)处理数据的方式不同。DSpace中的数据和元数据作为独立的两个实体,Fedora中的数据和元数据被封装在数字对象内部。 (2)对内部数据的管理和访问方式不同。DSpace直接将数据和元
25、数据暴露给最终用户,直接操作内部数据。Fedora为管理服务提供2种公共的API(API-M,API-Mlite),为访问服务提供2种公共的API(API-A,API-A-Lite),都通过Web Service的方式提供,不用直接操作内部数据。 (3)信息模型不同。DSpace的信息模型基于一些数字空间群(Communities),由用户和用户组组成,包含数字馆藏(Collections),再顺次包含条目(Items)。Fedora系统中把各种资源统一成数字对象,本身不直接支持馆藏(Collection)的概念。为了描述馆藏,需要使用一个数字对象来表示包含适当的馆藏描述信息、权限元数据和创建
26、数据对象的模版的馆藏对象。 (4)数据的导入导出支持不同。DSpace中提供终端用户交互和接口功能,基于Web的用户界面,批量数据导入导出工具。数据导入格式是DSpace内部的格式,数据导出格式可以是简单的METS编码的文件。Fedora中提供客户端形式的批量数据导入导出工具,格式采用METS标准编码,方便与其它系统之间交换数据。 (5)元数据支持的灵活程度不同。DSpace中内置的支持允许一些简单修饰符的DC元数据,如果要扩展其它的元数据方案,需要对数据库结构进行修改。Fedora中的元数据模型可以是一个本地的元数据集合,一个标准的元数据集合,或者是DC元数据的扩展。Fedora只提供对DC
27、元数据集中的元素进行索引和检索的支持,如果对其他的元数据字段做索引和检索,可以扩展一个外部的应用程序来实现,比DSpace更为灵活。 (6)快速开发、易用性方面。DSpace可以很容易地生成包含独立数字文档内容的数字仓储。它对一些常见问题提供了简单,实用和高效的解决方法,如:用户和工作流的管理,持续化和索引检索问题。Fedora不提供直接面向终端用户的数据操作和访问界面,它的目标是提供一个数字对象存储、管理、检索和交换的基础平台,利用它提供的开放的接口可以实现复杂应用的需求,但二次开发的起点较高。 (7)可扩展性。DSpace提供了几种内置的工具可以简单和快速地开发一个数字仓储,这些功能都是高
28、度捆绑的,而且与底层的数据库结构绑定。为了实现功能上的重大改进,必须对数据库结构和相关的代码进行修改。一旦进行这些修改,会破坏对系统将来版本的兼容性,限制了对系统将来性能提高和扩展的继承性。Fedora的可扩展体系结构提供了开发附加的外部模块的能力,通过它提供的公共接口实现,不用修改到核心代码。这种扩展方式可以在Fedora之上开发新的应用,而且可以保持对Fedora系统核心升级的兼容性。 5结语 通过对两个系统的分析和比较,可以看出,作为目前较为流行的两个开放源代码数字资源管理系统,DSpace和Fedora都提供了丰富的功能,可以满足许多馆藏数字资源的提交、保存、管理和发布中的一般需求。在
29、部署本地应用系统时,应该根据实际需要,选择合适的系统作为基础平台。对于一般的简单应用,不需要扩展特殊功能的情况下,可以选择DSpace作为应用的基础,利用它的快速开发支持解决一些常见的资源保存和发布的问题。对于一些复杂的应用需求,比如说:对用户的授权控制方面有特殊的需求,对元数据的支持方面有特殊的需求,需要对功能上作较大的改进,这种情况下,可以考虑以Fedora为基础扩展实现。 【参考文献】 1DSpace的官方站点.http:/(Accessed ,2005) 2Fedora的官方站点.http:/,info/(Accessed ,2005) 3The BSD :/licenses/bsd-
30、li-cense,php(Accessed ,2005) 4浙江大学图书馆,DSpace研究.http:/aduser/dspace/dspace,jsp(Accessed ,2005) 5DSpace System Documentation:Functional :/technology/system-docs/(Accessed ,2005) 6DSpace System Documentation:/technology/system-docs/architecture,html(Accessed ,2005) 7x509-Certificate display and signing
31、 :/docs/apps/x509,html(Accessed ,2005) 8CNRI Handle :/(Accessed ,2005) 9Open Archives :/,org/(Accessed ,2005) 10Ex Libris SFX :/www,exlibrisgroup,com/sfx,htm(Accessed ,2005) 11The OpenURL Framework for Context-Sensitive :/committees/committee_(Accessed ,2005) 12The Apache :/,org/java/does/(Accessed
32、,2005) 13METS官方站点.http:/www,/standards/mets/(Accessed ,2004) 14Mellon Fedora Technical ,:/documents/(Assessed ,2005) 15Thornton Staples and Sandy Payette,The Fedora :/,info/presentations/(Accessed ,2005 ) 16Fedora Repository :/www,fedora,info/download/userdoes/server/features/(Accessed ,2005) 17PaulGeneration Web :/pub/a/ws/2002/02/06/rest,html(Accessed ,2005) 18王勇.通用数字图书馆管理系统设计和实现资源存储管理和服务,清华大学硕士学位论文。