全 文 :林业科学研究 2008, 21 (增刊 ) : 46~49
Forest Research
文章编号 : 100121498 (2008)增刊 20046204
林业科学异构数据访问技术研究
颜平辉 , 张 旭 , 李 凡 , 刘 燕
(中国林业科学研究院资源信息研究所 ,北京 100091)
摘 要 :在分析了林业科学数据共享环境中操作系统、数据存储、数据语义不同层次的异构性的基础上 ,提出了基于
服务的林业科学数据共享系统体系结构 ,从而实现不同操作系统、应用平台层的分布式数据访问 ;在数据存储层面 ,
设计了基于设计模式的数据访问组件 ,实现不同数据库和多种数据文件数据的统一访问 ;通过公共数据元目录消解
数据在语义层的异构性 ,从而实现异构数据流在林业科学数据平台中自动交换。
关键词 :异构性 ;体系结构 ;设计模式 ;公共数据元目录
中图分类号 : TP75 文献标示码 : A
收稿日期 : 2007212215
基金项目 : 国家 863计划“面向林场森林资源异构数据的分布式管理技术研究”(2006AA10Z40)
作者简介 : 颜平辉 (1975—) ,男 ,四川攀枝花人 ,硕士研究生.
Heterogeneous Forestry Sc ience Da ta Access Technolog ies
YAN Ping2hui, ZHANG Xu, L I Fan, L IU Yan
( Institute of Forest Resource Information Techniques, CAF, Beijing 100091, China)
Abstract: Heterogeneity of operation system, data storage system and semantic data in forestry science data2sharing
environment was analyzed. A t the operation system level, a service2oriented architecture of forestry science data2
sharing system was made so that the distributed data access was realized between diverse operation system s and
app lication p latform s smoothly; at the data storage level, a design pattern2oriented data access component has
p rovided a unified access means for different database and data file; at semantic level, the common data element
directory elim inated semantic heterogeneity, which realized automatic data converting. This paper also pointed out
technological trend of forestry science data2sharing in the future.
Key words: heterogeneity; service2oriented architecture; design pattern; common data element directory
林业科学数据的异构性是指林业科学数据所
在的操作系统、数据库和所用的开发平台和数据
语义的差异性。这些不同层面的差异性严重影
响了数据整合和共享 ,数据整合与共享是林业科
学数据共享核心目标 [ 1 ] ,消除系统在操作系统、
数据库、数据语义层的异构性是实现这一目标的
关键问题。
在操作系统层面 ,已有的技术如 COM /DCOM、
CORBA和 EJB是分布式技术中目前比较成熟且已
经大量使用的三种技术 [ 2 ]。但是 , COM /DCOM 只适
用于 W indows系列操作系统 ,平台层的异构性并没
有得到很好的解决 ;而 CORBA主要适用于多操作系
统下的分布式系统构建 ,其实现太复杂 ;这三者共同
的不足之处在于没有形成一个统一的规范。它们对
其他分布式技术的兼容性比较差。本研究采用 W eb
Service技术较好地解决了这一问题 [ 3 ]。
在数据库层面 ,林业科学数据存储多样 ,数据
库和文件并存 ,数据库除了包括 SQL Server、O ra2
cle、DB2等大型的数据库外 ,还包括 D base、A c2
cess等小型数据库 ;一些系统用文件存储数据 ,如
遥感图像分析处理软件 , 地理信息系统软件 ,
XML数据文件。目前的做法是针对每一种数据
增刊 颜平辉等 :林业科学异构数据访问技术研究
存储类型编写相应的数据访问组件 ,如 SQL Serv2
er有 SqlHelper, O racle 有 O racleHelper等 [ 3 ] 。如
此众多的数据存储类型 ,对每一种数据存储类型
都实现各自的数据访问组件 ,工作量是巨大的 ,
也是不可取的。因此 ,在设计模式的基础上 ,本
文设计了通用数据访问组件 ,使在不改变源程序
或仅仅改变很少的一部分源程序的条件下 ,能在
多种数据库环境中平滑切换。
数据层面上 ,通常会存在语义上的不一致。
同名字段含义不同 ,异名字段却表达相同的数据
内容 ;同一数据用不同的表示方法 ,如性别“男 ”
还可能会出现“m ale”、“Y”等表示方法 ;两个数
据表虽然描述相同的主题 ,但数据内容遵循不同
的分类标准 ,会出现包含、交叉关系如森林资源
二类调查中不同时期对林地、林种划分是不完全
一致的。这些情况的出现 ,都会导致数据聚合、
转换不正确。在林业科学数据共享元数据方面 ,
以往的工作主要针对数据内容的表述 ,元数据的
使用也主要针对人 [ 4 ] 。要实现数据交换的自动
化 ,需要一套完善的元数据机制 ,本文采用公共
数据元目录方法对元数据的组织和管理作了探
索 [ 5 ] ,数据语义的异构性得到有效的解决。
1 W eb Services消解操作系统层的异
构性
W eb Services是由 UR I标识的软件应用程序 ,
其接口和绑定可以通过 XML标准进行定义、描述和
发现 ,通过 Internet协议与其他软件应用程序直接进
行交互。XML提供了跨平台的数据编码和组织方
式 ,使机器能够交互、转换 ; SOAP定义了跨平台的信
息交换的简单封装方法 ,从而实现跨语言、跨操作系
统进行远程调用 ,实现编程语言和系统的独立性。
W eb Services通过对数据和软件功能的封装 ,消
除了操作系统层面和应用程序宿主环境如. Net和
J2EE的差异。在林业科学数据共享平台中 ,中心节
点和分中心节点需要实现不同功能的服务 ,这些服
务需要遵循统一的服务规范 ,不同的服务之间协同
工作 ,才能实现分布林业科学数据统一访问的目标 ,
同时林业科学数据中心要能与国家科学数据中心互
连 ,其体系结构如图 1所示 [ 6 - 7 ]。根据服务提供功
能不同 ,主要包括以下几类服务 :数据提供服务、元
数据服务、元数据聚合服务、服务监控服务、全局数
据目录服务和统一数据访问接口。
图 1 林业科学数据中心体系结构
在林业科学数据分中心 ,主要部署数据提供服
务、元数据服务和监控服务。数据提供服务包括创
建数据、读取创建、更新数据和删除数据 (CRUD )等
基本操作。提供数据服务的同时 ,还要提供数据内
容的解释、数据分类说明、调用数据的服务及使用方
法说明 ,这就是元数据服务的主要作用。监控服务
提供实时了解服务状态和远程控制服务的功能。
在林业科学数据中心 ,主要部署元数据聚合服
74
林 业 科 学 研 究 第 21卷
务、全局数据目录服务、统一数据访问接口。元数据
聚合服务主要功能是通过访问各分中心的元数据服
务 ,将分中心各类元数据统一存放在数据中心 ,并进
行组织、合并形成元数据库 ,为全局数据目录提供服
务。全局目录服务向用户提供林业科学数据中心所
有数据目录 ,可以根据需要形成不同数据目录 ,从多
个维度进行查询 ,数据目录与相关数据提供服务和
元数据服务关联 ,提供全面的信息服务。统一数据
访问接口对数据服务进一步抽象 ,通过代理 ,形成统
一的数据入口 ,简化了服务的使用。
使用数据是通过调用服务实现的。用户首先通
过全局数据目录查到所需的数据 ,通过元数据了解数
据的详细情况和调用数据的服务和服务使用方法 ,最
后通过统一数据访问接口或数据提供服务消费数据。
2 使用设计模式实现多源数据的一致
访问
通过采用接口编程技术、简单工厂模式、配置技
术实现简单接口对多种数据库、数据文件的访问 [ 8 ]。
接口定义了一致访问数据的方法 ,在接口编程的过程
中不将变量声明为某个具体类的实例对象 ,而是让他
遵从抽象类所定义的接口 ,客户无须知道他们使用对
象的特定类型和实现细节 ,降低了子系统间的依赖关
系。简单工厂模式根据提供给它的数据 ,访问几个可
能类中的一个实例。通常它返回的类型都有一个共
同的父类和共同的方法 ,但每个方法执行的任务不
同 ,而且根据不同的数据进行了优化。配置主要解决
应用程序中的硬编码问题 ,使程序变得更加灵活。
图 2 数据访问组件结构图
异构数据访问软件结构如图 2,主要包括抽象
数据库和文件基类、数据库、文件实现类、工厂类、配
置组件。
抽象基类如 : Database定义了访问数据库的通
用方法 ,这些方法都是虚方法 ,派生类在需要时可重
载这些方法。另外 ,这些方法的返回结果不再是为
一个特定的数据源返回一个数据对象如 SqlDa2
taReadr、SqlCommand,而是返回一个通用的数据接
口的对象如 IDataReader, IDbCommand。通过这两方
面的抽象 ,从而实现数据库的透明访问。
SqlDatabase、O racleDatabase 和 Db2Database 类
均派生于 Database类 ,是提供数据访问功能的实现
类 ,它们需要重载所有 Database的方法 ,为实现特定
数据库系统所特有的功能。
配置组件的主要功能是简化配置数据的读写 ,
减小应用程序与配置数据存储器 (如 XML文件注册
表、数据库等 )的耦合 ,自动捕捉配置数据的变化。
DatabaseFactory类提供了静态方法 CreateData2
base,以封装创建适当 Database 对象的逻辑 ; File2
Factory类提供了静态方法 CreateDataFile,以封装创
建适当 文件数据访问逻辑 ;通过使用工厂来创建正
确的数据对象 ,客户端代码就不会绑定到特定的数
据库类型和文件类型。
DatabaseFactory类和 FileFactory类使用配置应
用程组件来检索所需的配置信息 ,包括要创建的、派
生于 Database的特定类的完全限定类型名和连接字
符串。
用户在使用这个软件组件时 ,只需调用工厂类 ,
由工厂类完成创建工作 ,至于具体需要创建何种类
型 ,有工厂类与配置组件交互 ,配置组件从配置数据
存储器中获得相应的配置信息。如果数据存储环境
发生变化 ,只需变更配置 ;数据类型的扩展只需添加
84
增刊 颜平辉等 :林业科学异构数据访问技术研究
插件 ,不必重新编译程序 ,也不用停止当前服务。
3 数据在语义层的异构性消解办法
数据元是用一组属性描述其定义、标识、表达和
允许值、所遵循规范、版本号的一个数据单元。公用
数据元目录是根据各技术规程定义了林业行业相关
的核心数据元。针对数据在语义层的异构现象 ,设
计、引用的一系列规范和标准 ,是数据字段和内容的
依据。所有数据表字段和数据内容都表明了数据所
遵循的规范和标准 ,从而为实现异构数据的转换、融
合提供依据 (图 3)。
图 3 公用数据元目录结构
对于林业科学数据 ,主要的标准规范是“林业科
学数据库和数据共享技术标准与规范 ”[ 9 - 10 ] ,任何
数据库、数据集、数据表的定义 ,都必须指定特定项
的数据元 ID ,通过数据元 ID就可以知道该项所遵
循的规范版本。比如在森林资源二类清查数据库
中 ,存在两张小班数据表 ,数据模式是一样的 ,但通
过数据元 ID查找 ,发现一个数据表的林地字段与另
一个数据表的林地字段所遵循标准的版本号不一
致 ,因此是不能直接融合数据的。
对内容相同或相似数据转换融合过程是这样的 ,
首先提取元数据 ,其中关键项是数据元版本号。然后
依次判断字段的数据元版本号是否一致 ,如果一致则
可直接进行转换 ,否则就对转换表进行查找 ,看能否
找到匹配 ,如果有 ,按转换表定义的规则进行转换 ,否
则转换无法进行 (图 4)。由于引入公共数据元目录 ,
从而提高了数据转换自动化程度和准确性。
4 小结与讨论
通过采用 W eb Services技术 ,基于服务的体系
结构来构建林业科学数据中心解决了不同操作系
统、应用平台之间的差异 ;面向接口编程和良好的设
计模式 ,使得多源数据访问组件的代码量大幅度下
降 ,可扩展性、可维护性得到增强。公共数据元目录
的引入提高了数据转换的自动化程度 ,从而使得数
图 4 异构数据转换过程
据在系统中顺畅流转。
异构性的消解是长期困扰软件开发的问题 ,源
于软件技术多样化 ,数据的多样性。即便是通过
W eb Services在理论上沟通了 J2EE和. Net,消除了
不同操作系统的边界 ,实际上不同平台仍然存在细
微的差别 ,并非所有的服务在任何平台上都能互相
调用 ;林业科学数据共享的元数据标准和服务接口
的标准目前还不全面 ,详细程度也不够 ,还需要进一
步加强。
随着软件技术的成熟和行业标准的进一步完
善 ,林业科学数据共享将朝着数据网格方向发展 ,自
动化转换、共享的程度将更高 ,林业科学数据共享中
的异构性问题将得到更好的解决。
参考文献 :
[ 1 ] 易浩若. 加强基础数据采集 ,促进林业科学数据共享 [ J ]. 林业
科技管理 , 2003 (3) : 21 - 22
[ 2 ] 邓 灵 ,陈 亮 ,叶仲和. 分布式技术及其应用概述 [ J ]. 计算机
时代 , 2004 (6) : 6 - 8
[ 3 ] 张焱译. M icrosoft Enterp rise L ibrary高效开发指南 [M ]. 北京 : 清
华大学出版社 , 2007: 79 - 89
[ 4 ] 张怀清 ,陈永富 ,刘 华. 林业基础数据采集元数据标准及元数
据工具软件 [ J ]. 林业科技管理 , 2003 (3) : 23 - 25
[ 5 ] 颜平辉 ,张 旭 ,陈 艳 ,等. 数字林业数据管理平台研究 [ J ].
林业科学 , 2006: 42 (增刊 ) : 140 - 145
[ 6 ] 张 旭 ,杨彦承 ,陈 艳 ,等. 林业基础数据采集系统中的网络
建设 [ J ]. 林业科技管理 , 2003 (3) : 36 - 37
[ 7 ] 徐志伟 ,冯百明 ,李 伟. 网格计算技术 [M ]. 北京 :电子工业出
版社 , 2004: 126 - 128
[ 8 ] 李英军 ,马晓星 ,蔡 敏 ,等译. 设计模式 : 可复用面向对象软件
的基础 [M ]. 北京 : 机械工业出版社 , 2000: 10 - 16
[ 9 ] 易浩若 ,张会儒 ,张 旭 ,等. 林业科学数据库和数据共享技术
标准与规范 第 1辑 [M ]. 北京 :中国林业出版社 , 2004: 1 - 38
[ 10 ] 易浩若 ,张会儒 ,张 旭 ,等. 林业科学数据库和数据共享技术
标准与规范 第 2辑 [M ]. 北京 :中国林业出版社 , 2006: 54 - 72
94