面向对象的海洋地质调查数据服务平台实现

2014-06-26 09:54魏合龙郭加树孙记红李益文
海洋科学 2014年2期
关键词:数据服务面向对象数据模型

杨 辰 ,刘 展,魏合龙,李 曼,郭加树,孙记红,李益文

(1.中国地质科学院岩溶地质研究所/国土资源部、广西壮族自治区岩溶动力学重点实验室,广西 桂林 541004;2.中国石油大学(华东),山东 青岛 266580;3.青岛海洋地质研究所,山东 青岛 266071)

在全球陆地资源日益紧张和环境不断恶化的今天,海洋成为沿海国家经济发展的重要支柱[1],因此对海洋地质调查数据产生大量的应用需求。由于工作分区部署,海洋地质调查数据由各个调查单位独自管理,数据存储在传统的关系数据库中,这就导致了海洋地质调查数据存在数据结构不一致、数据关联性小、信息孤岛、数据难以共享、利用率低等问题[2],如何对获取的数据进行有效的组织并提供高效的数据服务,是信息化建设需要解决的关键问题。目前,国外面向对象的数据模型应用已趋于成熟,最典型的是 POSC(Petrotechnical Open Standards Consortium)组织的 Epicentre数据模型,国内宋玮等人[3]进行了面向对象时空数据模型的研究;徐翠玲等人[4]设计了面向对象的数字地质图数据模型。海洋地质调查领域戴勤奋等[5]提出了区域海洋地质调查数据库结构模型,冯斌等人[6]设计的海洋地质调查数据库管理系统,孙记红等人[7]设计了海洋油气勘探钻录测数据库平台,并构建了海洋油气勘探钻录测数据库,但这些都是基于关系数据模型的,数据的管理应用仅局限于单个数据库,数据的关联性低、共享差,还没有统一的数据集成服务系统。

本文通过研究 Epicentre数据模型,采用面向对象的方法设计统一数据模型,建立海洋地质调查数据服务平台,集成各海洋地质调查数据库数据,实现海洋地质调查数据的共享服务。

1 平台框架设计

海洋地质调查数据分布存储在各调查单位的关系数据库中,由各单位独立管理使用,设计面向对象的统一逻辑实现海洋地质调查数据的集成。为方便专业人员获取数据,设计业务模型,为用户提供以业务活动为单元的数据,并提供相应的应用方法。基于以上分析,如图1所示,本文提出了“三层”体系结构的海洋地质调查数据服务平台的设计框架。

图1 海洋地质调查数据服务平台体系架构Fig.1 The system architecture of marine geological survey data services platform

1.1 基础数据服务层

基础数据服务层以单个海洋地质调查数据库为基本单位,建立海洋地质调查数据访问接口,以服务的方式对外发布,在集成管理层统一管理。

基础数据为存储在各调查单位的海洋地质调查数据库数据。海洋地质调查是海洋沉积、海洋地貌和海底构造调查的统称。海洋地质调查内容主要包括地球物理调查、地质取样、原位测试观测、样品测试分析、研究等[8],包括地球物理调查数据、海底地形调查数据、样品分析数据、海洋钻井数据、海岸带环境地质调查数据及卫星遥感数据等[5-6]。

1.2 集成管理层

集成管理层以统一的逻辑模型实现多源异构数据库的集成访问,主要包括管理单库数据访问服务、面向对象的统一逻辑模型管理、数据统一访问接口等功能。

(1)面向对象的统一逻辑模型设计

采用面向对象的方法,以对象-活动-关系为核心体系,建立涵盖所有海洋地质调查对象的统一的海洋地质调查数据逻辑模型。

(2)数据源信息管理

主要包括数据源的数据库名称、简介、对象关系映射信息、单库数据访问服务接口等。

(3)统一数据访问接口设计

根据用户发出的查询指令,对各单库数据访问服务进行查询访问,并将各数据访问服务返回的查询结果进行整合,提交给用户。

1.3 平台应用层

平台应用层主要是根据集成管理层提供的统一数据访问接口,进行基于对象和业务模型的数据可视化查询展示、打包下载等服务。

2 关键技术

实现多源异构海洋地质调查数据库的集成服务,为用户提供基于业务模型和对象的数据查询,主要有以下关键技术。

2.1 业务模型的构建

借鉴 POSC业务模型[9]和王海平等人提出的油田业务分析与建模方法[10],本文以海洋地质调查生命周期为主线,结合专业技术和业务管理的划分方法,合理划分业务域及业务活动,保证全面覆盖海洋地质调查业务,并避免不同业务域间的业务活动冗余,采用“业务领域-业务-业务流程-业务活动”的方式对海洋地质调查进行业务及活动划分,具体流程如图 2所示。业务模型的建立方便了用户基于业务的数据查询服务,用户不需要自己建立数据之间的关系,避免了用户对数据库不了解带来的麻烦。

图2 业务模型建模流程Fig.2 Modeling process of business model

2.2 面向对象的逻辑模型设计

采用面向对象的方法设计,参考EPICENTRE数据模型,针对现有海洋地质调查数据,设计覆盖所有海洋地质调查数据的统一逻辑模型。

(1)EPICENTRE数据模型

EPICENTRE数据模型是由类、实体、属性、约束等构成的具有层次结构的面向对象的数据模型,对象-活动-属性-关系构成了Epicentre数据模型的核心数据体系,如图3所示[11]。EPICENTRE数据模型主要由活动、特性、关心对象、关系、地质过程、参考数据等超类构成。

图3 Epicentre数据模型核心体系Fig.3 The core system of Epicentre data model

(2)逻辑模型设计原则

设计海洋地质调查逻辑模型时,应体现面向对象的特点和科学的数据管理体系,同时模型具有高度的集成性,模型必须覆盖海洋地质调查所有领域的对象,这些对象不按专业进行分割,而是按客观世界中对象间的联系组织,使各专业的应用软件都可以对该模型进行操作,并且其数据是相互一致的,实现不同应用软件在数据一级上的集成。

2.3 对象关系映射技术

为实现关系数据库向面向对象数据模型的转换,需采用ORM(Object/Relation Mapping)技术。ORM对象关系映射,将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作,不需要再使用复杂的 SQL语句[12]。ORM 是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射,映射机制如图 4所示[13]。

图4 ORM映射机制Fig.4 ORM mapping mechanism

2.4 分布式技术

由于海洋地质调查数据存储在分布式异构数据库中,需采用分布式技术实现对各数据库数据的集成共享,本文所采用的分布式技术为WCF技术。

WCF的全称为Windows Communication Foundation,是 Microsoft 基于面向服务的体系结构(SOA)构建的分布式通信编程框架,是.NET框架的重要组成部分,体系结构如图5所示[14]。使用WCF技术,程序员可以快速构建具有跨平台性、高可用性、安全、支持事务处理的企业级解决方案[15]。

图5 WCF体系结构Fig.5 WCF system structure

WCF实际上是构建了一个框架,这个框架实现了在互联系统中各个应用程序之间如何通信。使得开发和设计人员在构建分布式系统中,无需再考虑如何去实现通信相关的问题,更加关注与系统的业务逻辑本身。在WCF框架中,各个应用程序之间的通信是由终结点(Endpoint)来实现的,如图 6所示。每个终结点由地址(Address)、绑定(Binding)、协定(Contract)和行为(Behavior),其中 Address,Binding,Contract称为终结点(Endpoint)的ABC,当WCF发送消息时,address描述了消息发送的网络地址,binding描述了消息的发送方式,contract则是消息的组织操作方式和消息内容[16]。

图6 WCF程序通信Fig.6 WCF program communication

3 平台初步实现

3.1 单库数据服务实现

单库数据服务主要实现底层数据库与统一数据模型的关联和基于统一数据模型的对象数据访问接口,具体实现步骤如下:

(1)数据库配置,配置数据库连接时所需要的信息,如数据库类型、数据库名、用户名、密码以及连接字符串等,数据库配置文件采用 XML文件定义。所需信息均采用进行定义,如数据库类型定义为NHibernate.Driver.OracleClientDriver

(2)对象关系映射,建立统一对象模型与关系数据库之间的关联关系,如对象类和数据库表的对应关系、表字段和类属性名称的对应关系等,具体采用XML文件定义。对象与数据库表之间的定义格式为,对象属性和数据库表字段之间映射的定义格式为

(3)数据访问服务设计,建立面向对象的统一数据模型与底层关系数据库的关联之后,设计实现对对象的访问接口,具体通过 string GetEntityList(string pEntityName,string strHql)和byte[]GetEntityByteValue(string strHql)函数实现数据查询返回结果,并采用WCF技术实现数据访问接口的服务模式发布。

3.2 集成管理层实现

数据服务平台的实现分布式数据访问的关键是对数据服务的管理,主要是实现对数据服务的注册、查找、更新的功能,本次研究中服务基于统一的访问接口,所以对数据服务的管理主要是服务位置的管理,及服务URL地址的管理。本次研究通过缓存一个数据服务列表,实现对数据服务的管理,数据服务列表可以通过序列化保存到数据服务源配置文件dataProvider.config中,也可以从 dataProvider.config中反序列化为服务列表。

实现数据的统一访问主要是对已注册的分布式数据访问接口进行访问,具体访问流程如图7所示。通过反序列化 dataProvider.config文件,得到服务列表通过 foreach (string strRemoteAddress in dataP-rovider)逐一访问,对返回的查询结构进行整理合并得到最终的查询结果。

3.3 数据查询展示

图7 统一数据查询访问流程Fig.7 Unified data query access processes

为了方便专业人员的使用,本平台设计了海洋地质调查业务模型。海洋地质调查业务模型是根据海洋地质调查规范和现有海洋地质调查数据库,对海洋地质调查所涉及的业务进行规划化、统一化、结构化、标准化整理得到的,涵盖所有海洋地质调查业务,为海洋地质调查业务人员提供数据服务的应用模型。根据业务划分流程,分析海洋地质调查业务,得到海洋地质调查业务模型,以海洋地质调查中取样及样品分析业务域为例,其业务结构如图8所示。

用户可以按自己需求选择业务,如果需要精确查询,可以有条件地查询业务数据,如图9是调用统一数据服务接口开发的业务的条件查询窗口,可以设置多种查询条件筛选所需业务数据。

4 结束语

本平台采用的面向对象数据模型作为统一的数据模型,与传统的关系数据模型相比,具有继承性、易用性和可维护性好等优点。平台用户不需知道数据的来源,不需要了解具体的数据库结构,直接根据所熟悉的业务或对象提取数据,提高了数据的共享性、易用性。另外本平台具有良好的可扩展性和稳定性,方便基于网络环境的使用,底层数据库中如果有新的数据单元加入,无需改变平台程序架构,只需对统一模型进行扩充,对上层应用没有影响。

图8 海洋地质调查取样及样品分析业务模型结构Fig.8 Structure of Marine Geological Survey sampling and sample analysis business model

图9 业务条件查询窗口Fig.9 Query Business Data by conditions

图10 业务查询结果展示Fig.10 Results of business query

文中所设计的海洋地质调查数据服务平台所有功能模块均采用服务的方式构建,用户根据实际应用需求既可以访问单库数据查询服务接口,也可以使用统一的数据访问接口,为以后应用程序的开发使用提供了便利。目前平台还有一些不足,有待进一步完善。如统一数据模型建设尚不完善,目前只完成了部分建模,需要全面分析各相关单位的数据库扩充完善;平台的查询效率可以继续优化提高,查询方式更加多元化,使用户的使用更加方便。

[1]李新放,刘海行,周林,等.基于 OpenSceneGraph的海洋环境三维可视化系统研究[J].海洋科学,2012,36(1): 54-58.

[2]刘展,杨辰,魏合龙,等.基于 EPICENTRE的海洋钻探数据库构建方法研究[J].计算机技术与发展,2012,22(6): 49-52.

[3]宋玮,王家耀,郭金华.面向对象时空数据模型的研究[J].测绘科学技术学报,2006,28(4): 235-238.

[4]徐翠玲,钱壮志,马远新.浅谈面向对象的数字地质图数据模型[J].测绘科学,2007,32(3): 31-35.

[5]戴勤奋,魏合龙,苏国辉,等.区域海洋地质调查数据库结构模型[J].计算机应用研究,2004,21(3): 65-67.

[6]冯斌,谭建军,李绍荣,等.海洋地质调查数据库管理系统设计与实现[J].计算机工程,2009,35(3):29-31.

[7]孙记红,刘展,为贺龙,等.油气勘探钻录测数据库平台设计[J].计算机工程,2010,36(5): 287-289.

[8]李绍荣,张锡林,陈道华,等.海洋地质调查基础数据库模式构建方法[J].海洋技术,2009,28(4): 94-97.

[9]POSC.Energistics E&P business process reference model[R].America:POSC,2009.

[10]王海平,葛珺,王娟.基于 POSC的油田业务分析与建模方法[J].计算机系统应用,2010,19(3): 100-102.

[11]袁满.POSC数据模型与我国石油工业标准化[EB/OL].[2012-05-25].http://wenku.baidu.com/view/55014b27a 5e9856a5612603b.html.

[12]李杰.基于ORM的轻量级数据持久化技术研究及应用[J].计算机科学,2010,37(9): 190-193.

[13]李斌勇,李庆.基于NHibernate 的ORM映射机制研究[J].计算机技术与发展,2009,19(7): 32-34,37.

[14]李文涛.基于WCF 架构的应用开发研究[J].计算机时代,2011,2: 19-21.

[15]Scott K.Professional WCF Programming[M].America:Wiley Publishing,Inc,2007.

[16]赵庆霞,孙建伶.基于 WCF的服务缓存设计与研究[J].计算机工程与设计,2010,31(14): 3151-3153.

猜你喜欢
数据服务面向对象数据模型
地理空间大数据服务自然资源调查监测的方向分析
基于数据中台的数据服务建设规范研究
面板数据模型截面相关检验方法综述
如何运用税收大数据服务供给侧结构性改革
基于频繁子图挖掘的数据服务Mashup推荐
面向对象Web开发编程语言的的评估方法
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
峰丛洼地农作物面向对象信息提取规则集
基于面向对象的车辆管理软件的研制与开发
面向对象的SoS体系结构建模方法及应用