李 琳 郭 易 盖优普 武 炜 朱吉生
(中国水利水电科学研究院,北京 100038)
水利信息元数据的相关标准是水利信息交换、共享,以及数据中心数据管理的关键性技术标准[1]。水利部于2010年颁布了《水利信息核心元数据》(SL473-2010)[2]技术标准。元数据标准不同于传统的技术标准,不可能通过印刷版本的颁布,以及传统的会议、培训实施标准的宣贯。在国外,这类信息技术标准大都需要研发相应的软件工具,借助软件工具开展标准化的信息管理。而在我国,在水利行业尚未实现采用软件工具来进行元数据管理和推进元数据标准的宣惯。
鉴于元数据的制作管理的复杂性,为进一步推进 SL473-2010的实施,同时方便元数据的管理,通过信息技术,开发一套符合SL473-2010的水利信息核心元数据编制工具。这在水利行业标准中是初次尝试,为贯彻实施元数据标准提供技术支撑尤为必要。本文以 SL473-2010为依据,使用目前流行的 Flex技术开发水利核心元数据管理系统,实现对核心元数据的制作、查询、修改、导入/导出等功能,以提高元数据管理的准确性和效率。同时,实现了B/S(Browser/Server)和C/S(Client/Server)终端的统一,大大提高了开发人员的开发和部署效率,极大的方便了专业人员在不同环境下进行核心元数据的管理,对水利信息核心元数据标准的推广具有重要意义。
本系统采用富客户应用(Rich Internet Application,简称RIA)[3]中的Flex 技术框架实现。Macromedia Flex 是目前开发RIA的最流行的一种解决方案,通过 Flex技术和相关服务器端技术,开发者能够赋予Flash 与后端服务器交互的能力。
Flex 以ActionScript、MXML和扩展类库作为基础,编译生成SWF 格式文件(Flash文件格式),用户访问Flex RIA 应用时需预先安装Flash Player 作为ActionScript 的解析引擎。同时,Flex 框架生成的SWF 格式文件,能运行于各种安装了Flash Player的操作系统上,具有良好的通用性和跨平台性。而且,Flash Player 的强大解析能力为 Flex 应用程序提供了更强大的交互和动画能力。
按照“分层设计、模块构建”的思想[4设计总体框架,系统整体框架分为三层,分别为数据层、服务层和表示层,如图1所示。
数据层用来存取元数据,本系统采用XML文件库的形式进行存取。服务层是整个体系结构应用的核心,用来实现系统应用的功能,通过ActionScript语言来实现。表示层是系统展示层,通过Flex来实现,可以实现应用程序客户端和网页客户端的同步部署和更新。
图1 系统架构
系统按照SL473-2010[2]技术标准,其数据结构由1个数据实体和8个元数据子集构成。其中,标识信息为必选子集,内容信息、数据质量信息、覆盖范围信息、限制信息、参照系信息、维护信息和分发信息为可选子集。数据结构如图2所示。
图2 元数据结构
数据集采用XML语言进行数据描述,共设计五个属性:分别为 name、value、id、style、edit和 del,采用ActionScript 语言对XML节点进行增删改操作。按照 SL473-2010[2]技术要求数据集XML属性如表1所示。
依照水利核心元数据的内容,将系统主要分为八个模块,分别为:标识信息、内容信息、数据质量信息、覆盖范围信息、限制信息、参照系信息、维护信息和分发信息模块。几个模块彼此独立,互不干扰。
2.3.1 模块工作流程
在主要的八个模块中,标识信息模块为必选模块,其他模块可选。其中,标识信息、数据质量信息、参照系信息、内容信息、覆盖范围信息和限制信息模块可以重复调用,维护信息和分发信息模块只能调用一次。主要模块工作流程如图3所示。
表1 元数据集属性说明
图3 模块工作流程
2.3.2 模块功能描述
(1)标识信息模块。标识信息模块为系统必选模块,它完成唯一标识数据信息的功能,标识有关资源的基本信息,包括名称、日期、版本、摘要、目的、关键词、状况和联系方式等,其中联系人和/或单位、数据获取途径、浏览图、空间分辨率为四个子模块。以全国主要水文站实时水情数据集元数据为例,标识信息模块主要内容如图4所示。
图4 标识信息模块
(2)数据质量信息模块。数据质量信息模块为系统可选模块,完成对数据资源质量的总体评价的功能,包括范围、数据质量报告和数据志三个子模块。数据质量信息模块主要内容如图5所示。
(3)维护信息模块。维护信息模块为系统可选模块,完成有关资源的更新频率及更新范围的信息功能,包括联系人信息子模块。维护信息模块主要内容如图6所示。
(4)参照系信息模块。参照系信息模块为系统可选模块,完成对数据集使用的空间参照系和时间参照系的说明功能。参照系信息模块主要内容如图7所示。
(5)内容信息模块。内容信息模块为可选模块,完成提供数据内容特征的描述信息功能。内容信息模块主要内容如图8所示。
图5 数据质量信息模块
图6 维护信息模块
图7 参照系信息模块
图8 内容信息模块
(6)覆盖范围信息模块。覆盖范围信息模块为可选模块,完成数据资源所涉及空间覆盖范围、时间覆盖范围的信息功能。分为时间覆盖范围、地理覆盖范围和垂向覆盖范围三个覆盖范围。覆盖范围信息模块主要内容如图9所示。
图9 覆盖范围信息模块
(7)分发信息模块。分发信息模块在系统中只能出现一次,为可选模块。完成有关资源如何分发和获取的信息功能。包含分发者和在线信息。分发信息模块主要内容如图10所示。
图10 分发信息模块
(8)限制信息模块。限制信息模块为可选模块,完成访问资源和使用资源的限制信息功能。限制信息主要内容如图11所示。
图11 限制信息模块
系统使用Flex Builder 作为开发工具,语言使用ActionScript,数据结构采用XML实现。
系统开发主要使用了Flex Builder 软件的AdvancedDatagrid组件[5],AdvancedDatagrid可以采用XML作为数据源,并且能在组件中灵活实现XML数据的增加、修改和删除等操作。
主要代码实现如下:
其中:designViewDataType 表示数据的显示形式,在这里designViewDataType ="tree",表示树形显示。dataProvider为AdvancedDatagrid的数据源,editable="true"表示AdvancedDatagrid列数据可进行修改操作。
显示效果如图12所示。
图12 系统AdvancedDatagrid组件应用
(1)增加数据。主要通过AdvancedDatagrid的selectedItem属性获取要增加数据的位置,通过ActionScript中的prependChild()、insertChild-Before()、insertChildAfter()、appendChild()方法来进行XML数据的插入。
(2)删除数据。主要通过AdvancedDatagrid的selectedItem属性获取要增加数据的位置,通过ActionScript中的delete()方法删除XML数据。
(3)修改数据。使用AdvancedDataGrid 的项目编辑器功能实现数据编辑修改功能。利用DataGridColumn的itemEditor属性,直接为属性赋值,直接指定可视化控件类为项目编辑器。此项目使用的编辑器为TextInput和ComboBox。
对于一般软件开发技术来说,如果想要将一个BS 应用改造成为一个CS 应用,必须对整个应用进行重新设计和开发,其复杂程度和成本都是无法估计的。但是,对于Flex 技术来说,它通过虚拟机的形式实现跨平台的Web应用,AIR技术则可以通过对Flex 应用代码进行极少量的修改,将Flex开发的Web应用移植到桌面,而且为移植的应用提供了比Web应用更为多样的接口和本地访问能力,从而为大批量操作效率的提高提供了可能。
Flex开发Web应用的主程序体如下代码:
如果将主程序移植到桌面应用,仅仅需要在此基础上做简单的修改,修改后的代码如下:
本文介绍了水利元数据管理系统的设计和实现过程,系统采用XML和Flex技术将水利元数据和管理流程有效的结合起来,实现数据管理、导入和导出等丰富功能,提高元数据编制的质量和效率。
本文设计实现的水利元数据管理系统是水利技术标准在信息化领域的初次尝试,目前只限于对xml文件和文本文件的操作。随着信息化技术的飞速发展,水利元数据标准必将在信息化领域深入发展,水利元数据标准将在元数据信息集成、应用平台化方面长期持续发展。今后,随着元数据管理工作的不断推进,将在现有基础上重点开发水利元数据标准库、元数据标准平台等应用,充分利用信息化的高技术手段,不断提升水利元数据管理系统的功能,提高水利技术标准贯彻实施水平。
[1]朱星明,张行南,白婧怡,等.水利科学数据共享元数据理论的应用探讨[J].水利学报,2005,36(8):1-5
[2]SL473-2010 水利信息核心元数据[S]
[3]杨占坡,杨铭,等.Flex 3 RIA 开发详解与精深实践[M].北京:清华大学出版社,2009
[4]董龙飞,肖娜.Adobe Flex 大师之路[M].北京:电子工业出版社,2010
[5]Tariq Ahmed,Jon Hirschi,等.Flex 3 实战[M].北京:清华大学出版社,2010
[6]胡少英,李晓斌,等.基于Web Servic和Flex的水调自动化系统[J].水电自动化与大坝监测,2011,35(3)