数据库应用不断扩大,集中式数据库已经不能满足发展的需要,并且在网络技术发展的推动下,尤其是云计算的数据量大、数据复杂,且是分布式存储,所以人们在对数据的处理过程中不仅需要对局部数据进行管理,还要对全局数据进行协同管理,此时,异构数据融合应运而生,通过数据融合使得局部数据有一个总视图,从而构成整个存储结构的全局模式。
海上异构数据融合技术对船舶航行信息化具有重要意义,通过异构数据融合技术,可以提高海上航行的动态变化的反应能力,提高决策能力。
1 海上异构数据融合模型异构数据融合从逻辑上可以分为3部分:异构数据的数据模型、异构数据存储、异构数据访问,如图 1所示。
在异构数据存储中要研究数据的存储,通过需求的不同选择不同的存储方式。异构数据存储就是为了让在不同区域存储的异构数据关联起来,并且使得数据间仍然具有完整性和一致性。
在异构数据的数据模型中,主要研究异构数据的表示方法以及数据融合。
在异构数据安全中主要研究其安全机制和访问方式,保证数据的安全性,不被恶意攻击。
海上异构数据海图数据的来源主要有不同国家航海管理部门提供的IHO-S57数据[1]。为了实现数字海图和地形图数据之间的融合,需要设计多数据融合的数据模型和数据格式。本文设计的海图数据模型如2所示。本文进行数据融合的软件平台是ARC/INFO GIS,通过能够反映海上空间航行信息情况的6种数据Coverage、GRID、属性表、TIN、多媒体视频和CAD图像形成海图数据模型。
在此模型中,分成不同的工作单元,每个单元按照内容不同分成要素层,然后在要素层下按照目标的特征再细分为点、线、面3个层次。
2 海上异构数据融合方式异构数据可以分为以下4种数据类型:
1)一般属性数据:包含文本、数据和图像,以实体-属性的方式进行建模,其中实体是船舶航行,而文本等是对船舶航行情况的描述,其表示方法为:
实体n {属性1,属性2(子属性1,子属性2,…),属性3(……),…}
2)多媒体数据:图像、静态视频和动态视频,以数据-索引的方式进行建模,获取的数据时二进制数据,通过索引详细的描述了二进制数据的其他属性,其表示方式为:
多媒体数据{(索引描述1,数据),(索引描述2,数据),……}
相较于图片,视频文件通常情况下会很大,因此本文在进行存储时会选择数据库存储方式。索引是描述目标与其属性之间的关系,因此采用关系数据库进行存储。
3)空间矢量数据:按照层-特征-属性的方式进行建模,层用来存储海上资源空间数据,通过层得到矢量地图;特征构成了层,描述了空间属性和应用属性。其表示方式为:
Point(空间数据、应用属性数据);
Feature [Point, Polyine, Polygon];
Layer {Feature 1, Feature 2, Feature 3, ……};
空间矢量数据{Layer 1,Layer 2,Layer 3}。
4)三维场景数据:将海上船舶航行的场景进行描述,如起点、终点坐标等。
海上信息化的进程在不断的加快,也出现了下列问题,如海量数据接口的不统一、缺乏通用性的规范和标准,从而无法实现信息数据的共享。
海上数据的异构性主要表现在系统异构和模式异构,前者是因为不同港口所使用的数据库或者应用系统不一样,从而造成了系统异构;后者是因此数据的存储方式不同造成的。在数据集成中前者所产生的异构是主因。通常情况下解决这种系统异构的方案是使得异构数据源之间可以互相操作,这样就必须将不同的数据源进行连接。连接的方式有通过为数据库设置网关,进行身份认证;利用套接字作为网络通信方式;将数据源连接APIs[2]。
本文所设计的异构数据融合实现方式如下图所示。
从图 3可以看出,异构数据融合分为全局模式和局部模式。通过局部模式可以有效的解决通过对象去访问某一区域的所有应用,从而降低了数据访问的复杂性。通过全局模型解决了面向应用数据的处理问题。虽然数据库中的数据是动态变化的,但是在实际的应用中,对于一些成熟的应用可以根据已经设定好的模块进行固定处理,即通过接口用户可以直接调用。而对于不固定的应用或者是预留的功能,可以通过定制相应的接口,进行数据的增删改查,在其实现的过程中没有预留的接口可以调用,所以必须根据API函数实现功能[3]。
3 测试结果分析为了验证本文所设计的海上异构数据融合的有效性,对其进行了测试,其测试环境为用6台服务器搭建了异构数据融合系统,服务器的硬件参数为HP system X3650 M3,处理器为Intel (R) Core (TM) i5-3550 CPU @3.30GHz 3.30GHz,内存是16GB,网卡是千兆以太网,硬盘1024GB。交换机1000M,通过此局域网能够对不同海上数据库进行测试,测试端是一台PC机。测试环境的拓扑结构如下图所示。
在此拓扑结构中,Master节点是主控节点,负责整个系统的监控和任务分配,运行的是Nimbus进程;ZooKeeper节点用来负责整个系统的工作协调;Worker节点负责系统工作进程的建立;数据库节点负责系统数据融合时数据库的维护工作[4]。
本文通过系统吞吐量的测试来验证异构数据融合的性能优势。实验设置:将采样数据放在数据库中,然后读取数据,写入数据库,建立了10组海陆图数据库中的采样数据。在系统运行的过程中,每次启动的集群中的监督节点的数目不一样,采样时间是30s,获取不同节点的吞吐率。如图 5所示。
通过上述结果对比可以看出,随着工作节点数的增加,系统的吞吐率有所提高,但是其变化情况并不成倍增长,这其中的原因可能是数据库的读写性能产生的影响。
[1] | 纪宏宇, 黄忠刚, 陈高兴, 等. 利用ARC/INFO建立S-57数据模型的研究[J]. 海洋测绘, 2002, 22 (1): 11–17. |
[2] | 胡彬华, 李晓, 梁剑. 异构分布式数据库系统集成的研究与实现[J]. 计算机应用研究, 2002, 19 (10): 67–70. |
[3] | 戴华东, 夏军, 杨学军. 分布式共享存储系统中的存储管理及优化技术[J]. 计算机工程, 2003, 29 (5): 13–15. |
[4] | 谢芳华, 任午令, 唐任仲. 基于XML的异构数据交换集成技术及其实现[J]. 制造业自动化, 2004, 26 (4): 1–4. |