Fedora仓储体系研究及其扩展案例分析,本文主要内容关键词为:案例分析论文,体系论文,Fedora论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
数字仓储是一种数字内容的存储管理技术,它能够在同一个存储体系下容纳各种类型和众多复杂格式的数字内容,并为目标用户提供对这些数字内容长期稳定服务,该技术被广泛应用于创建信息环境、出版系统和长期保存系统。目前国内外已经提出了许多具有实用性的数字仓储解决方案,如MIT的DSpace系统、Conell大学、Virginia大学图书馆合作的Fedora系统和California大学的数字仓储系统等。经过笔者的研究比较,Fedora(Flexible Extensible Digital Object Repository Architecture)以其多样性、统一性、灵活的可扩展性、高效性和海量性引起了广泛的关注[1]。本文结合实例对Fedora的核心内容——数字对象和仓储框架进行了详细的解析。由于Fedora只是一个保存层面,因而在实际领域应用中必须对其进行适当的扩展,本文根据OAIS参考模型提出了一些扩展方案,并以Tufts大学数字图书馆对Fedora的应用扩展为例进行了具体分析。
1、Fedora简述
Fedora最初是1997年由美国国防高级研究项目署(DARPA)和美国国家科学基金会(NSF)共同资助的关于复合数字对象模型的研究项目。它提出由结构内核(Structural Kernel)和功能分发层(Disseminator Layer)来共同组成一个复合数字对象,即将数据和对数据的操作分离[2]。其中,结构内核容纳以比特流形式存在的数字对象的内容、描述该数字对象的元数据以及对这个数字对象及元数据进行存取控制的有关数据。功能分发层是对这些数据的操作,它包括主功能分发器(Primitive Disseminator)和内容类型分发器(Content-Type Disseminators),功能分发器支持有关结构内核数据类型和对内核数据进行读取的服务功能,内容类型分发器则支持内嵌数据格式的转换机制。Cornell大学在此模型框架上建立了基于CORBA的原型系统。
Fedora模型框架具有灵活可扩展的优点,因此它得到了众多研究机构的广泛关注和研究尤其是Virginia大学图书馆。从1999年夏天开始,Virginia大学图书馆不仅建立了原型系统,并在此基础上不断深入研究。由于Cornell大学提出的基于CORBA的原型系统只是简单的实验性系统,不具备实用性,于是Virginia大学图书馆在丰富数字对象和仓储框架的基础上,提出了采用关系数据库管理后台数据和使用Java完成系统功能。
从2001年9月开始,该项目就得到Mellon基金支持,由Virginia大学图书馆和Cornell大学共同合作来全面开发完善Fedora系统,以便其更广泛地适用于图书馆、博物馆和档案馆等数字内容管理领域。系统最早于2003年5月发布1.0版,至2005年1月,Fedora的最新版本是2.0。
2、数字对象及其仓储框架解析
数字对象(Digital Object)和仓储框架(Repository Architecture)是Fedora的两大核心内容[3]。在Fedora中,将存储的数字内容称为数字对象。数字对象通过数据流(Data Stream)将文本、图像、视频、电子期刊、数据集、元数据以及其他形式的多媒体数据和对这些数据的操作封装起来。仓储框架是Fedora系统的体系结构,包括了系统管理、访问、存储、安全以及Web服务等模块。下文是对Fedora的数字对象和仓储框架的详细解析。
2.1 数字对象
Fedora中,每一条数据都被视为一个数据对象(Data Object),它包括数字内容、表示数字内容的元数据以及分发数字内容的软件工具或服务链接。这种链接在系统中被称为分发器(Disseminators),它将数字内容绑定到数字内容的服务上,用户通过链接访问数字内容。通常,数据对象包括四部分内容,如图1所示。
附图
图1 数据对象结构
从Fedora数据对象的模型中,我们发现这是一种面向对象的设计,它包括数据和对数据的操作,正是这种对数据的操作实现了以不同的方式对数字资源的获取。数据对象中通过分发器来建立工具或服务的链接,但是它并没有描述服务操作的实现。服务的内部实现机制通过行为对象(Behavior Object)来描述,行为对象中存储了服务和服务操作的元数据。
为了更好地继承和发扬面向对象设计的特性,也进一步增强数据对象的行为无关性,行为对象又被分为行为定义对象(Behavior Definition Object)和行为机制对象(Behavior Mechanism Object)。其中,行为定义对象描述数据对象的服务定义,行为机制对象则描述约定性服务的具体实现机制,如图2所示。
附图
图2 对象模型
2.2 仓储框架
信息技术会不断发展变化,仓储系统也需要能随之更新或升级。要保证仓储的长期性,就必须能够对仓储进行改变。因此,Fedora仓储框架采用了分层技术,它将系统结构分为Web服务层、中间层和存储层[4],如图3所示。这样Fedora可以对每层技术进行改变,又不会对整个仓储产生很大影响。
附图
图3 Fedora系统结构
在Web服务层,Fedora2.0提供了6大应用接口(API),包括基于SOAP的管理接口(API-M)、基于SOAP的访问接口(API-A)、基于REST支持URL的访问接口(API-A-Lite)、基于REST支持URL的管理接口(API-M-Lite)、简单的查询接口(作为API-A-Lite的一部分)和资源索引查询接口。
中心层包括管理模块、安全模块、访问模块,其中,管理模块主要管理数字对象的操作、对象完整性校验以及PID生成,安全模块实现系统用户和仓储的安全策略,访问模块实现数字对象的传播和数字对象行为的映射。
存储层,作为仓储框架中的底层核心,主要是保存数据和对数据进行读、写、删除操作,这里所指的数据不仅指数据流还包括数字对象的元数据包文件。在存储模块中,每个数字对象在保存数据流的同时以FOXML(Fedora Object XML)格式封装元数据生成元数据包文件,FOXML是基于XML的扩展METS格式。对于每个对象的元数据,Fedora采用直接封装的方式,这种方式一方面是便于整体管理对象的元数据,另一方面也在一定程度上支持了系统的开放获取。除此之外,存储模块中还使用关系数据库辅助管理数字对象。
Fedora还对文件的仓储策略采取了2种安全方式。一是加深文件路径,每个进入系统的数字对象都会依据时间生成4级目录,分别是年、日期、小时、分钟。二是不提供文件格式和原文件名,仅以PID显示文件名。例如,系统元数据文件的主目录为../fedora-2.0-objects,数据流文件主目录设定为../fedora-2.0-datastreams,并于2005年2月23日14点40分创建了一个数字对象,PID为demo:5。则其元数据文件路径为../fedora-2.0-objects/2005/0223/14/40,该文件夹下是以FOXML编码的元数据包文件,数据流文件路径为../fedora-2.0-datastreams/2005/0223/14/40,该文件夹下包括了该数据对象所包含的所有本地存储的数据流文件,如图4所示。
附图
图4 文件存储
3、系统扩展
虽然Fedora2.0具备了一定的使用功能,但是它并不足以构成一个完整的应用系统,它所承担的主要功能还仅仅是保存对象,并辅助以简单的数据管理、访问、检索、OAI等基本功能。因此,Fedora并不能作为一个实用的应用系统,它必须在其仓储的功能上结合其他系统进行扩展。
与OAIS(开放档案存取系统)参考模型的功能模型相比,Fedora的数据摄入模块、数据过程模块和数据访问模块都存在不足之处,笔者认为Fedora只承担了OAIS参考模型中数据存储模块[5]。因此,对于不同的应用领域,需对Fedora进行有针对性的扩展。例如,构建文献出版就必须扩展数字对象的过程管理。通常情况下,对Fedora的实际应用需要进行以下4方面的扩展。
(1)数字资源获取及校验扩展。它主要包括2部分,一是对数字资源的来源文件进行合法性和完整性校验,二是将数字资源转换成Fedora能够识别的文件格式,这样Fedora才能成功创建数字对象。
(2)数字资源命名扩展。Fedora的永久标识符(PID)管理比较简单,在一定程度上,还不足以完全揭示数字资源的主题特性,因此还需要对此进行扩展,目前比较常见的方式就是结合数字资源注册系统,比如可以使用Handle System来管理资源句柄。
(3)数字资源检索扩展。资源检索是一个信息系统必须具备的功能,目前Fedora检索功能还局限于关系数据库和元数据的检索,并不具有全文检索功能,因此这也是扩展方向之一。
(4)数字资源访问扩展。Fedora提供的用户访问相当简单,基本上只是数字资源本身在Fedora系统中各个属性的展现,因此必须要重新设计丰富完善友好的用户访问界面,利用Fedora分发器在内容传递上的优势,灵活地以不同的视角访问同一内容。
4、应用案例
目前共有23家研究机构建立了基于Fedora的应用系统,主要是在数字图书馆领域。在这些应用案例中,英国Tufts大学的数字图书馆系统是比较有代表性的应用系统之一。
在重新设计数字图书馆之前,Tufts大学已经建成一些专业性的数字资源库,有Perseus古籍数字图书馆、自然科学知识库、Artifact资源库、犯罪案例资源库、Bolles典藏库,这些资源库除了保存了大量的数据,还包括了各种格式的文本、图像、音频、视频的数字资源。因此,Tufts大学对新的数字图书馆系统提出了组件化、模块化的要求,希望能够采取松散耦合的设计原则,使新的系统既包含现有图书馆的所有资源又能适应将来可能扩展的应用,能够具备良好的灵活性、可扩展性,Fedora的特性恰好满足了这种要求。
所以,Tufts大学以Fedora系统作为数字图书馆保存模块的核心,重点定义了一系列现有资源的逻辑结构和上下文关联[6]。同时,在Fedora核心的基础上扩展缓存器(Drop Box)模块、摄入模块(Ingestion Service)、命名模块(Naming Service)、索引模块(Search Indexing Service)以及其他应用服务模块(Application Creation Service),具体系统结构见图5所示。
附图
图5 Tufts大学数字图书馆体系结构
(1)缓存器模块(Drop Box)。暂时保存经过预处理的数据文件,包括确定所有对象的基本元数据,对数据类型的有效性进行验证等。
(2)摄入服务模块(Ingestion Service)。从缓存器中自动采集缓存对象,验证对象是否符合Fedora数字对象结构,再根据存档标准审核数字内容的质量确定是否合格,最后提出反馈意见。在这一模块中,还将数字内容和相关元数据进行绑定,生成METS文件,便于Fedora摄入。
(3)命名模块(Naming Service)。由于Fedora提供的PID比较简单,无法建立能够唯一追溯和发现资源的URNs。同时,Fedora分布式存储的特性也要求能够唯一表示对象。因此,Tufts大学数字图书馆在原有PID基础上进行了扩展,命名机制为tufts:school name:owner:[collection:]item name。
(4)索引模块(Search Indexing Service)。建立功能更强大使用更便捷的用户接口,便于用户和外部应用访问仓储资源。Tufts大学数字图书馆使用了Lunece3.1作为搜索引擎,采用增加数字内容的文本格式的分发器来建立索引。
(5)应用服务模块(Application Creation Service)。实现原有工具与当前仓储的无缝链接,比如Perseus能够通过接口使用原有工具分发TDL的数字资源。另一个应用服务就是根据仓储资源建立VUE(Visual Understanding Environment),促进学术交流和在线教育。
5、结语
虽然Fedora并不提供一个完整的系统,但是在数字内容仓储上,Fedora数字对象模型的层次性、统一性、关联性和多视角,不仅能适应当前的数字资源类型,还能够适应将来可能的资源类型。同时,它还支持数字对象之间的复合,这些都为仓储内容的灵活扩展提供了强大的保证,具体表现如下。
(1)结构化数字对象的内容。不仅将数据内容和元数据分开,还能建立数字对象的多种分发方式。
(2)建立了统一的数字对象4层结构模型,便于异构分布式数据的统一操作。
(3)建立数字对象的关联机制,不仅能够满足用户建立复杂的数字对象的要求,还保证了数字对象的复用性,不需要浪费资源空间来重复保存同一资源。
(4)允许为数字对象定义多方式分发方式,便于用户从不同视角或不同方式对同一数字对象的访问。
事实上,Fedora系统的组件性也方便用户在此基础上扩展建立个性化专业化服务,比如加入过程管理,对仓储资源提供数据分析等。目前,中国科学院文献情报中心已经建立了原型系统,正在该系统上作进一步的开发应用。