俞天秀 吴健 赵良 丁晓宏 叶青
内容摘要:本文综合考虑满足高性能、高可用、可扩展和安全等需求,设计了从底层平台硬件至上层用户功能的分层架构,采用了动态资源与静态资源分离、应用服务器与数据库分离、负载均衡和数据库主从复制、缓存、应用拆分和压缩等技术,实现了“数字敦煌”资源库的系统功能,并优化和提高了性能;开发了高精度图像快速浏览、洞窟空间结构构建、元数据存储与检索等主要功能,最终“数字敦煌”资源库通过互联网和移动互联网展示,达到全球共享的目的。
关键词:数字敦煌;资源库;系统架构;网络拓扑
中图分类号:K854.3 文献标识码:A 文章编号:1000-4106(2020)02-0120-11
The Design and Implementation of the Framework for
the Database of“Digital Dunhuang”
YU Tianxiu1,2,3,4,5 WU Jian1,2,3,4 ZHAO Liang1,2,3,4 DING Xiaohong1,2,3,4 YE Qing6
(1. Cultural Heritage Digitization Institute, Dunhuang Academy, Dunhuang, Gansu 736200; 2. National Research Center for Conservation of Ancient Wall Paintings and Earthen Sites, Dunhuang, Gansu 736200;
3. Key Scientific Research Base for Conservation of Ancient Wall Paintings of SACH, Dunhuang,
Gansu 736200; 4. Key Laboratory for Conservation of Ancient Wall Paintings and Earthen Sites,
Gansu Province, Dunhuang, Gansu 736200; 5. College of Intelligence and Computing, Tianjian University,
Tianjin 300072; 6. Gansu Win Think Network Technology Co., Ltd. Lanzhou, Gansu 730000)
Abstract: This paper briefly introduces the Digital Dunhuang project, summarizes the present condition of domestic and overseas databases containing material about Dunhuang, and analyzes the characteristics and difficulties of constructing such a data bank. Considering the overall requirements of high performance, high availability, expandability, and security, a layered architecture beginning from the underlying hardware platform to the upper level of user function has been designed. The initial level of construction has realized the primary system functions of a Digital Dunhuang database and even optimized and improved several aspects of data storage and operation with methods such as the separation of dynamic and static resources, separation of application server and database, load balancing, a master-replica and cache of databases, application multifunctioning, and data compression. Many functions like the quick browsing of high resolution images, analysis of the spatial structure and construction of caves, metadata storage, and quick retrieval of information have all been developed with the goal of sharing the Digital Dunhuang database for both online and mobile use.
Keywords: Digital Dunhuang; database; system architecture; network topology
(Translated by WANG Pingxian)
一 “數字敦煌”项目概况
为了敦煌石窟的永久保存、永续利用,敦煌研究院20世纪90年代初开始数字化探索[1]。近30年组织实施的“数字敦煌”项目,包括敦煌石窟数字化、“数字敦煌”数字资产管理系统、永久存储体系和资源库四个方面。
敦煌石窟数字化,采用先进的数字化技术将敦煌石窟进行数字化。
“数字敦煌”数字资产管理系统(DAMS),主要目标是对敦煌石窟保护、研究和弘扬各领域数字资产的生产、保存、展示等进行科学的管理,在统一的系统架构下,实现各领域知识高度关联,达到数字资产的高效利用。数字资产指与敦煌石窟相关的所有数字资源,包括敦煌石窟大遗址、壁画、彩塑和建筑数字化成果,藏经洞出土文物数字化成果,敦煌学研究文献数字资源,石窟保护数据(环境监测数据、保护材料数据、修复方案等),石窟考古资料(考古报告、考古测绘图、出土文物信息等),石窟展示、展览、新闻宣传等方面的资料。
“数字敦煌”永久存储体系,指导数字资产长期保存而建立的模型,是数据生产追踪、数据校验、存储监控、文件格式的提升和转换,数据的备份及容灾,以及存储规章制度等的集合体。
“数字敦煌”资源库,基于“数字敦煌”资产管理系统(DAMS),对数字资产的成果进行再加工,形成新的数字产品。结合大数据分析等技术手段,形成敦煌石窟知识图谱,高度关联敦煌石窟知识等信息。
二 国内外有关敦煌资料资源库应用现状
国内,敦煌研究院于2007年研发了“敦煌艺术图像数据库”[2],利用传统胶片拍摄并数字化扫描,其内容包括佛传、飞天、供养人、服饰、图案、瑞像、经变画、山水画、音乐9个专题共1309幅图像。该库没有完整壁画的数字化成果,图像数量有限;其它与敦煌石窟有关的数据库基本都是敦煌文献数据库,没有敦煌石窟整窟壁画、彩塑等数据,例如敦煌文献数字图书馆[3]收录北敦、斯号、英藏(其他)、伯号、法藏(其他)、俄藏等14类敦煌文献,收入图版文件51万多个,敦煌学信息资源库[4]收录了与敦煌学相关的12万余篇期刊文章和会议论文。
国际上,“国际敦煌项目”(the International Dunhuang Project,IDP)[5]于1994年启动,其目标是敦煌及丝绸之路东段其他考古遗址出土的写本、绘画、纺织品以及艺术品的信息与图像能在互联网上自由地获取,并通过教育与研究项目鼓励用户利用这些资源,数字图像累计525,356张,但是不包括敦煌石窟壁画。敦煌研究院与美国梅隆基金会合作建立了“梅隆国际敦煌档案”(the Me-
llon International Dunhuang Archive,MIDA)[6]展示了22个数字化洞窟的图像和5个虚拟漫游节目[7],展示的敦煌石窟壁画数字化图像采集精度仅为75DPI。敦煌研究院在固定IP地址的电子阅览室可免费浏览,外界观众需要付费查看,浏览速度较慢。
三 “数字敦煌”资源库建设任务的
特点和难点
“数字敦煌”资源库有三大特点:其一,展示内容丰富、专业知识性强。展示对象为敦煌石窟中的建筑、彩塑和壁画。壁画包括尊像画、佛传故事画、本生故事画、因缘故事画、神话题材画、佛教史迹画、经变画、供养画、装饰图案画和说法图等,专业知识涵盖历史、科技和艺术等方面[8];其二,展示数字资源多样,包括高精度数字图像、三维重建数据、虚拟漫游节目、多媒体节目、视频节目、动漫节目、文字等[9];其三,展示壁画数字化成果数据精度高、容量大,敦煌石窟壁画数字化采集分辨率达到300DPI,每一个壁面最终形成的数字化成果数据容量超大,以莫高窟第61窟西壁为例,长宽像素分别为210270×91273,总像素超过了442亿,数据容量超过60GB。
鉴于本资源库的特点,造成了建设中的众多难点:第一,选择本资源库展示敦煌石窟的内容时,需考虑的因素众多,既要考虑敦煌石窟的年代包括北魏、西魏、北周、隋朝、初唐、盛唐、中唐、晚唐、五代、西夏、元代等朝代,又要考虑洞窟形制包括中心塔柱式、穹顶、覆斗型、马蹄形佛坛等,还要考虑壁画的画面内容等;第二,数据关联性强,如何挖掘多种形式的数字资源所包含的价值,并以何种形式科学、高效地关联、组织敦煌石窟的专有知识;第三,由于洞窟空间结构的多样性,导致无法用结构化的数据库进行数据存储;第四,壁画数字化精度高、超大容量的图像如何在互联网和移动互联网上的自适应展示,并且满足个性化的展示与检索;第五,可扩展性强,本资源库第一期展示内容在已完成100余个洞窟的数字化成果中确定30个洞窟[10][11],如何在不改变系统架构,将敦煌石窟812个洞窟全部展示;第六,数据知识产权如何管理;第七,本资源库大量为图像数据,如何优化和提升性能,提高用户并发量;第八,本资源库的网络安全如何保障。
四 分层架构设计
“数字敦煌”资源库分层架构设计如图 1所示。
1)平台硬件层与虚拟化
本资源库购置3台物理主机,利用VMWare?譹?訛构建虚拟环境,vSAN构建分布式存储。允许1台物理主机宕机后,虚拟机可自動迁移至另外两台物理主机上运行,确保“数字敦煌”资源库提供不间断的服务,今后随着数据量和计算资源的增加,只需要底层增加物理主机,加入虚拟池中,即可提供服务。
2)系统软件
虚拟化的管理主机VMware vCenter Server 6.0版本?譹?訛其操作系统采用了Windows server 2008操作系统,其它应用主机都采用了Cent OS6.9操作系统。
3)运维管理
运营统计分析“数字敦煌”资源库页面访问量、页面访问停留时间、访问者的地域统计、操作系统统计、访问者忠实用户量、在线人数,等等。为了提升“数字敦煌”资源库的不间断服务能力,还对服务器硬件、操作系统和应用程序做了相应的监控。
4)后台数据管理
洞窟空间结构管理,以洞窟为单位,构建每个洞窟相对应的空间结构。上传壁画高精度图像和全景漫游节目,数据上传后系统自动校验每个文件的sha-1值,确保上传数据的一致性和完整性。针对洞窟、壁面进行信息编目,并由专业人员审核编目的信息。多语言模块的管理,目前只有中文和英文。
5)用户功能
用户通过互联网和移动互联网访问“数字敦煌”资源库,系统可自适应在PC和不同类型的移动终端显示浏览内容。首先通过全景漫游节目以及文字介绍对整窟有全面的了解,然后每一个壁面对应的有文字介绍,并且可以浏览壁画的每一个细节内容。用户可通过遗址地、年代、洞窟形制筛选浏览内容,或者可通过全文检索准确查找壁画内容。
6)安全保障
“数字敦煌”资源库硬件安全保障采用了防火墙和网页防篡改防火墙,在软件控制方面采用了反向代理技术,提升安全性能。
7)知识产权保护和管理
知识产权是一项非常重要的工作,在页面浏览中加入了自适应多分辨的水印。数据授权目前遵循敦煌研究院线下的授权流程。
五 整体架构实现与优化
敦煌学的研究在国际上涵盖几十个国家,在国内也涵盖多个省份,因此“数字敦煌”资源库面向的用户地域分布较广,为了满足多国家、多地域的用戶需求,提高“数字敦煌”资源库页面的浏览速度,提升用户的体验,单台服务器运行所有的应用程序已不能满足需求。最终采用动态资源与静态资源分离、应用服务器与数据库分离、负载均衡、数据库主从复制、缓存、应用拆分和压缩等技术,满足本资源库的高性能、高可用、可扩展和安全等需求,系统架构拓扑如图 2所示。
1)高性能设计
“数字敦煌”资源库的高性能在用户层面考虑,即访问页面的相应时间越短,用户的体验越好。本资源库包含的主要资源是洞窟高精度壁画数字图像和全景漫游节目,用户多次访问这些资源时不发生任何变化,这些资源在网站资源中都属于静态资源,提高静态资源访问速度的办法是与动态资源分离,将静态资源存储在两台独立的服务器上,启用ngnix?譺?訛高性能的http服务,并且具有独立的二级域,通过独立域名可直接快速访问静态资源。相对应的动态资源即用户多次访问时资源发生变换,本资源库动态资源主要包括洞窟、壁画描述文字、洞窟空间结构、洞窟列表、检索与检索结果、登录、注册、用户信息修改等,这些资源存储在数据库中。
将动态资源和静态资源分离的同时,减少HTTP的下载请求,会缩短网络传输的时间,为了缓解两台独立静态资源服务器的访问压力,浏览器与数据服务器之间增加了squid?譻?訛反向代理服务器。将用户访问频繁的洞窟壁画和全景漫游节目资源缓存,并且重用频繁请求的web页面。用户访问动态资源时,采用了ngnix?譼?訛作为反向代理服务器,并且增加了memcache?譹?訛分布式缓存服务器,从MySQL查询的动态资源存储在memcached服务器中,减少数据库的访问次数。
用户访问的资源如果不影响浏览质量,在网络传输时进行压缩,传输效率大大提升,本资源库采用了gzip?譺?訛的网页压缩的技术,用户浏览器如果支持gzip便可提高访问速度,若用户浏览器不支持gzip压缩技术,访问速度则相对慢一些。经测试用Chrome浏览器访问“数字敦煌”资源库时,网页压缩率可在40%—70%之间。
所有的数据在最底层都要存储于硬盘中,如果硬件资源采用速度较快的设备,将提升“数字敦煌”资源库的整体性能。本资源库底层采用了VMWare vSAN?譻?訛软件定义的分布式存储,硬盘采用闪存和机械硬盘混合模式,提高存储性能。
2)高可用性设计
敦煌学的研究在国际上涵盖多个国家,导致“数字敦煌”的用户来自全球,因为各个国家时差的原因,要求本资源24小时提供可靠的服务。用户访问静态资源和动态资源时采用负责均衡技术,由haproxy?譼?訛软件实现,根据访问资源的特性,haproxy采用不同的负载策略。用户访问壁画与全景漫游节目时采用leastconn(连接数最小)的策略,访问动态资源采用roundrobin(轮询)策略。
本资源库的高可用性设计的另一方面是备份,一旦应用服务器宕机,自动或者手动启动备份设备,缩短系统从故障到正常运行的恢复时间。本资源库的备份有三种形式:第一种,数据库主从复制机制,数据库存储动态资源,单一的数据库容易发生单点故障,因此需要考虑数据库的备份机制,采用了MySQL5.7版本的关系型数据库,利用它自带的主从复制功能,两台独立数据库服务器一主一从,一旦主数据库服务器发生宕机,自动切换至从数据库服务器;第二种,VMWare vSAN技术自身将数据底层做了一份备份,所有的虚拟机都做了快照;第三种,静态资源服务器增加了数据完全相同的备份服务器,两台squid服务器,两台nginx反向代理服务器,拆分的应用根据需求启动了不同数量的备份服务器。
3)可扩展设计
“数字敦煌”资源库既要考虑内容的扩展性,又要考虑系统架构的扩展性。内容的扩张性将在下一章节介绍,在系统架构方面,提高资源库的扩展性,就是要降低资源库功能的耦合度,主要采用拆解的思想,一台服务器提供所有功能,拆解为多台服务器提供不同的功能,例如将消耗资源较大的数据库和应用分离,部署在各自独立的服务器上,降低因服务器资源耗尽造成宕机的概率,提高本资源库的高可用性。
“数字敦煌”资源库将复杂的功能拆分成独立的多个功能,可提高单项功能的复用率,也可提高系统维护效率,目前应用拆分为首页信息、洞窟分类、洞窟详情、检索、认证。
4)安全设计
安全是一项非常重要的工作,互联网上的应用,大部分都会受到各种攻击。确保本资源库的安全采用了硬件防火墙、反向代理和定期漏洞扫描。硬件防火墙采用了外网边界防火墙和web防火墙两种硬件设备。外网边界防火墙主要用于网络边界防护和地址转换,防御外部用户的非法访问和网络攻击,web防火墙主要是防御web入侵,保障内容网络安全。
在5.1节中所述,本资源库增加了反向代理服务器,将反向代理服务器置于公网,将其它应用都置于内网,未经授权的用户没有机会访问反向代理服务器与动态资源、静态资源服务器之间的交换信息,提高内部服务器的安全性。
另外定期還采用了专业的网络漏洞扫描,及时发现网站的漏洞并予以修复。
5)性能测试
网站性能测试采用了Apache JMeter?譹?訛,它可用于测试动态和静态资源、Web动态应用程序的性能,用来模拟服务器、服务器组、网络或对象上的重载,以测试其强度或分析不同负载类型下的总体性能。本资源库的性能测试以100个并发用户量为开始,每次测试增加100个并发用户,测试20组数据,用户并发数量和平均响应时间如图 3所示。
按照网站性能测试2、5、10原则,当响应时间在2秒内,用户浏览网站会感觉很快,根据测试结果“数字敦煌”资源库并发量在1200之内,平均响应速度可以在2秒之内。
根据“数字敦煌”资源库的统计,平均每天PV量约7000,平均页面停留时间为1821秒,用户访问时间主要集中在每天的8点至12点,14点至16点,20点至22点,即每天访问时间长为28800秒。根据网页并发量计算公式C=nL/T,即C=7000*1821/28800,C≈443,由此可知“数字敦煌”用户并发数量大概在443,依据测试结果用户访问页面平均响应时间在200毫秒。
总体来看,“数字敦煌”资源库达到了高性能设计的需求。
六 主要功能设计与实现
针对“数字敦煌”资源库的特点和难点,本资源库主要功能为高精度图像快速浏览、洞窟空间结构设计、系统核心元数据设计、洞窟空间结构与元数据的存储检索、除了主要功能外,还有系统管理、接口管理、多语言管理、日志管理、全文检索、资源管理、用户注册和登录等功能。
1)高精度图像分层细化
通常情况,通过高性能的图形工作站才可以浏览敦煌壁画几百亿像素的数字图像,而通过互联网和移动互联网直接加载浏览根本不可能实现。为了解决这一难题,我们采用了LOD?譺?訛模型思想,如图 4所示,超大图像从上而下,划分为0层、1层……N层,那么第0层图像最小且分辨率最低,第N层图像最大且分辨率最高,随着层数增加,图像越来越大。
2)洞窟空间结构设计
洞窟的空间结构设计原则首先考虑空间,然后考虑方位和独立实体,循环渐进建立洞窟空间结构,以空间结构三层级为例:
第一层级:洞窟从空间考虑有整窟、前室、甬道和主室四部分,这里有区别于日常洞窟空间结构划分,增加了整窟,因为在“数字敦煌”资源库平台首先要对整窟进行图像和文字的介绍,让观众对洞窟有整体性的了解。
第二层级:以主室为例从方位考虑有东壁、南壁、西壁、北壁、东披、南披、西披、北披;以独立实体考虑有藻井、中心柱、佛坛、背屏、佛台等。
第三层级:以主室西壁为例从空间考虑有佛龛、佛台;以中心柱为例从方位考虑有东壁、南壁、西壁和北壁。
以此类推,逐渐细化每一层,针对每个洞窟建立自己独有的洞窟空间结构,洞窟结构基础库构建后,可服务于数据采集、加工、存储和展示等各个环节。“数字敦煌”资源库第一期展示的数字类型有图像、文字和VR,洞窟空间结构与数字类型对应关系如图 5所示。
3)系统核心元数据设计
为了更好的描述“数字敦煌”资源库所展示的各类数据,考虑元数据描述的易操作性、可扩展性等,系统核心元数据内容,如表 1所示。
4)洞窟空间结构构建和元数据的存储、检索实现
“数字敦煌”资源库第一期选择了30个洞窟作为展示内容,目前可以将这30个洞窟的空间结构完整构建,但是敦煌石窟共计812个洞窟,所有洞窟空间结构除了相同之外,还存在大量的独特性,各遗址保存在不同地域,详细调查每个洞窟工作量非常大,所以,目前无法将812个洞窟的所有空间结构完整构建。因此,考虑“数字敦煌”资源库将来展示更多敦煌石窟数字资源,洞窟空间结构和元数据的存储应具有极强的可扩展性。
XML是一种简单灵活的可扩展语言,非常适合“数字敦煌”资源库中洞窟结构空间构建和元数据的存储。根据洞窟空间结构设计的层级关系,制定XML的模板,每个洞窟生成独立的XML文件,并以遗产地名称的第一个拼音字母+洞窟号命名,保存在相对应洞窟图像的根目录下。以莫高窟第61窟为例即MGK61.xml,其视图如图 6所示。
由上述XML结构可知,如果增加前室和甬道,可在〈Space〉同级扩充,其它层级增加内容同理,非常灵活。
针对XML文件的生成,采用了分散录入、模块组装成完整的XML文件的方法:首先根据6.3章节中核心元数据内容,拆分成数字资源信息XML、洞窟空间结构XML、基础信息XML、和版本信息XML四部分;其次将洞窟空间结构拆分成前室XML、甬道XML、主室XML和整窟XML四部分;以主室为例根据洞窟空间结构,拆分相对应方位的XML文件,最后根据完整XML的文件结构,整合成一个完整的XML文件。具体流程如图 7所示。
将完整的洞窟XML文件存储在Mysql 5.7数据库,并利用XPath查询对应的内容。XPath是一种表达式语言,它允许处理符合XQuery和XPath数据模型(XDM)中定义的数据模型的值,提供了对XML树中的节点进行分层寻址的方法?譹?訛。这种方法具有速度快、定位准等特点,例如要查询莫高窟第61窟主室东壁的文字描述,即可用下面语句进行查找:
SELECT EXTRACTVALUE(@MGK61_xml,
'Dunhuang/Grottoes/Space/Location/Met-
adata/Contents') AS names
七 界面设计与实现
“数字敦煌”资源库开发了洞窟空间结构构建功能,便于数据录入与多人操作,可快速、规范地构建每个洞窟对应的空间结构(图8)。
用户界面主要有洞窟、壁画、检索、语言和登录功能(图9)。用户登录系统后,通过窟号浏览洞窟,或者系统会推荐精美壁画直接浏览壁画详细内容。目前已有中文和英语两种语言,资源库根据用户操作系统推荐默认的语言。
“數字敦煌”资源库运行监测(图10)已稳定运行3年多,未发生系统故障,具有一定的抗攻击性,安全系数较高。分析页面访问趋势,进行SEO优化,在各大主流搜索引擎检索“数字敦煌”都排名第一。
“数字敦煌”资源库[11]在2016年5月1日正式上线,第一次向全球免费共享敦煌石窟30个洞窟采集精度为300DPI的高精度数字图像和全景漫游节目,访问国已超过十多个,页面访问超过700万次,在敦煌学研究、展览、美术临摹、教育等领域的应用,取得了良好的社会反响。
八 展 望
“数字敦煌”资源库虽然已设计与开发特定的功能,系统上线也取得了较好的成绩,但是,如何挖掘壁画包含的价值——将整幅壁画按照内容拆解,将图像和文字一一对应,构建不同的专题,如何将不同区域在同一界面内对比研究,如何构建敦煌石窟知识图谱,提升检索能力——这将是未来需要开发的主要功能。未来“数字敦煌”资源库将构建一个敦煌知识信息共享,智能服务观众,为敦煌学的研究、敦煌文化的弘扬和传播发挥重大作用。随着“数字敦煌”业务的增加,网站的性能也会面临新的挑战,将来还需要做进一步的优化与改进。
参考文献:
[1]樊锦诗.为了敦煌的久远长存——敦煌石窟保护的探索历程[J].敦煌研究,2004(03).
[2]吴健,俞天秀,张若识.敦煌艺术图像数据库的建设[J].敦煌研究,2008(06).
[3]陕西师范大学出版总社.敦煌文献数字图书馆[DB/OL].
(2017-9-0)[2019-10-14 ]http://dunhuang.hanjil-
ibrary.com/index.aspx.
[4]敦煌研究院.敦煌学信息资源库[DB/OL].(2018-8-0)[2019-10-14]http://dh.dha.ac.cn.
[5]国际敦煌项目[DB/OL].(1994-0-0)[2019-10-14]http:
//idp.nlc.cn.
[6]梅隆国际敦煌档案[DB/OL].(2005-0-0)[2019-10-14]https://www.artstor.org.
[7]敦煌研究院编.敦煌研究院年鉴2005—2006 [M].上海:上海辞书出版社,2007.
[8]季羡林.敦煌学大辞典 [M].上海:上海辞书出版社.1998-12-1:80.
[9]吴健.多元异构的数字文化——敦煌石窟数字文化呈现与展示[J].敦煌研究,2016(01).
[10]吴健.石窟寺文物数字化的内涵——融学术、技术、艺术于一体[J].敦煌研究,2015(02).
[11]“数字敦煌”资源库[DB/OL].(2016-05-01)[2019-07-
30]https://www.e-dunhuang.com.