基于Web Service 的异构数据集成平台设计与实现

2017-11-17 20:48刘云汉
电脑知识与技术 2017年30期
关键词:WEB服务数据集成

刘云汉

摘要:为解决信息系统的信息孤存问题,通过研究数据集成的相关技术,采用基于Web Service的技术构建了异构数据集成平台,包括数据层、业务逻辑层和应用层三层,重点对数据库访问接口、基础数据服务、web服务封装和元数据库设计4个模块的设计进行了详细描述。数据层采用通用的数据访问接口,业务逻辑层以web 服务的形式发布,降低了层间耦合,实现了局部数据源的自治性、业务逻辑接口的通用性、响应的实时性和平台的易维护性。

关键词:数据集成;Web服务;全局数据模式

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)30-0019-04

信息化体系作战,是依托信息化武器装备和综合电子信息平台的新型作战形式。体系作战涉及多军兵种、多作战形式和多维空间,仅通过手工操作和人脑,指挥员难以从海量的战场信息中迅速、准确地获取有用的战场知识。因此,必须借助信息系统的计算优势,提高决策的效能和效率,才能充分发挥体系作战的效能。

由于缺乏统一规划,无论是数据库种类的选择,还是数据字段的定义,体系作战依赖的信息系统之间都没有统一的标准,“烟囱”式发展现象十分普遍。与“数据集中化、业务综合化、管理扁平化、决策科学化”的信息化发展趋势不相适应[1]。为给基于信息系统体系作战指挥提供强有力的决策数据支持,指挥信息系统必须统一数据格式,对各信息系统的原始数据进行集成,实现数据在各级指挥平台上的纵向流动。

1 数据集成设计需求

1) 装备数据集成的目标

信息战中涉及的装备数据主要包括装备实体数据(装备编号、型号、战技指标等)和装备业务数据(装备日常工作中运行、训练、维护等产生的数据,以及装备仿真试验、靶场实战产生的数据等)两大类,为了保证数据的质量和高可用性,关键是要将多源异构的装备数据集成为具有统一全局视图的有机整体,为数据分析与应用提供支撑。装备数据集成的目标是构建相对独立的装备数据管理系统,统一数据存储格式,形成装备数据管理规范,将数据与具体的应用环境解耦,提高数据的可用性和共享水平。

2) 数据集成的难点

由于装备数据多源异构的特点,装备数据集成的难点主要可以归结为异构性问题、分布性问题和自治性问题。异构性问题主要是指各数据源的存储管理系统、数据模型、数据表达方式和数据语义的异构。分布性问题主要是指局部数据源是不是集中管理的,需要解决数据的远程访问问题。自治性问题是指局部数据源由各分系统单独维护,这种管理的独立性为数据集成提出了挑战。

2 基于Web Service的数据集成技术

数据集成技术主要针对异构数据源实现数据统一集中,Web Service是一种SOA服务规范,以服务形式重新规划系统业务过程的方法,将面向服务思想与数据集成技术相结合,忽略异构数据源的平台、技术和结构区别,实现数据的逻辑统一,实现抽象数据单元,形成抽象统计数据标准,特别是针对 Web 上非结构数据具有很好集成效果[2]。面向服务的数据集成是在数据集成基本抽象上,针对不同信息资源的高异构化,构建跨信息平台和应用集成的具有低耦合、标准化的良好集成方案。

常规的集成方法可以按照数据的集成方式分为两种:基于模式的数据集成和基于复制的数据集成[3]。

2.1 基于模式的数据集成

基于模式的数据集成需要在应用终端与源系统之间引入中间层 [4], 搭建数据集成平台,建立独立的全局数逻辑视图,集成各数据源需要共享的数据,全局模式描述了集成数据的结构、语义和与局部数据源的映射关系等。在全局模式上创建统一的数据访问接口,用户在终端可以把集成数据源视为一个统一的整体,不必考虑数据来自何处或以何种方式存储。

基于模式的数据集成方法既不改变分系统的运行架构,也不影响业务系统运行,完美实现对底层数据细节的屏蔽。由于每次响应用户请求都需要数据映射计算,随着数据量的增大,访问效率降低。

2.2 基于复制的数据集成

基于复制的数据集成需要建立数据仓库[4],数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合。将局部数据源的数据经过抽取、 转换、清洗和装载等步骤复制到数据仓库中,并对数据源进行整体一致性维护,减少了用户对于多个异构数据源的访问代价,提高了数据的共享和利用效率。

基于复制的数据集成为用户提供了高效稳定的查询服务,便于进行联机分析处理和数据挖掘,用以支持经营、管理中的决策制定过程。但是数据仓库中的数据是分时段进行更新的,无法满足实时分析的需求。

2.3 Web Service 技术规范

Web Service 是一种支持跨网络的机器间相互操作的软件系统,它能够通过规范的服务描述、 标准的消息通信协议和开放的服务发布策略,完成各数据来源节点的直接交互。基于 Web Service 的数据集成是将数据来源包装成Web服务,并使用 WSDL(Web Service Description Language,Web 服务描述语言)进行规范化描述,然后将其注册到 UDDI(Universal Discovery Description Integration,统一描述发现集成中心)的服务目录中,以供中心服务器和用户的集成和调用[5]。

3 基于服务的异构数据集成平台设计

数据集成平台体系架构的核心是数据层、业务逻辑层和应用层,还包括数据接口层和应用接口层两个衔接层。

3.1 数据层

数据层包括各种在存储方式和组织结构上各不相同的数据源。为了屏蔽数据的异构性,从局部数据源中抽取公共部分建立全局数据视图,通过在局部数据源和全局数据视图之间建立映射关系,用户对全局数据视图的操作都可以解析为对相应局部数据源的操作。不同于常规数据集成系统对每个数据源分别建立访问接口,圖 1 的架构中采用基于QtSql的通用数据访问架构来实现对所有局部数据源的操作。endprint

3.2 业务逻辑层

业务逻辑层分为数据服务、业务服务和用户服务3大类,各类服务以 Web Service 的形式发布,可忽略数据层的具体数据管理系统选型和应用层的具体业务实现编程语言等技术问题。

1) 数据服务

主要是指与数据包密切相关的数据服务,根据各类数据业务处理的流程和规范特点,可分为基础数据服务和应用数据服务 2个大类。其中,基础数据服务主要是指对局部数据源和元数据库中数据集合执行连接、增、删、改、查等基本操作封装的服务。应用数据服务主要是对具体业务流程和数据相关操作的组合,其中既有数据库中数据基本操作也有具体业务操作。

2) 业务服务

主要是指不包括数据基本操作的,具有普遍性、通用性和原子性,并在其他具体业务中可重用的具体业务功能处理流程,将该流程封装成服务,实现提供者与使用者的解耦,使得应用系统易于维护。

3) 用户服务

用户服务本身不具备具体的服务功能,主要是数据服务和业务服务的聚合,通过一系列数据服务和业务服务的组合形成针对某具体应用业务的服务。在用户服务基础上建立模式概念,结合具体应用环境中同一业务的不同应用差别,形成服务模式,一种服务模式对应一个具体应用,一个用户服务对应一类具体应用业务。

3.3 应用层

应用层直接面向用户,调用逻辑层的服务,将服务响应结果呈现给用户。由于逻辑层接口采用Web Service服务的方式发布,所有可以调用 Web Service 服务的客户端都可以访问逻辑层接口。因此,应用层可以采用多种语言,适用于不同的操作系统。

该架构通过在基础数据层设计统一数据规范,在业务逻辑层构建相关数据服务,通过提供具有标准程序接口和协议规范的通用服务,使得业务应用层可以脱离数据层的具体物理实现形式,同时,也可以隔离具体应用实现,在规范数据包不变环境下,同一应用可以进行环境和平台转换。同时采用3层架构的设计,降低了层间耦合。

4 基于服務的装备数据集成平台的实现

4.1 基础数据服务实现

基础数据服务由查询处理和元数据管理两大模块组成。其中,查询处理模块将应用层对全局数据视图的查询转换为对各局部数据源的查询,并将数据层返回的结果按照全局视图数据结构整合后发送给应用层。元数据管理器负责操作元数据库中的数据,包括全局数据视图管理、局部数据结构管理和映射关系管理[6]。

图2 基础数据服务实现架构

基础数据服务的工作流程为:

1) 应用层根据系统提供的全局数据源,编写标准sql查询语句,调用基础数据服务接口,发出查询请求。

2) 查询处理器中的校验模块收到查询请求后,验证查询语句的合法性。如果合法,将查询语句传到查询解析器,否则返回错误日志。

3) 查询解析器调用元数据处理器查询元数据库中的全局数据视图与局部数据源的映射关系,将全局查询请求分解为局部查询指令。

4) 查询分发器调用通用数据库访问接口执行局部查询,并将查询结果反馈给整合器。

5) 整合器收到所有局部查询结果后,根据映射关系封装返回全局视图。

4.2 通用数据库访问接口实现

通用数据库访问接口是基础数据服务与局部数据源联系的桥梁,用来屏蔽局部数据源的系统差异,为基础数据服务提供统一的查询接口。本文的通用数据库访问接口采用基于QtSql的数据库访问模块实现。

Qt为数据访问提供的QtSql模块实现了数据库与Qt应用程序的无缝集成,同时为开发人员提供了一套和具体所用数据库均无关的调用接口,主要由通用接口层、SQL接口层和驱动层组成。其中,通用接口层为用户提供了对数据库的SELECT、INSERT、UPDATE和DELETE 操作的接口;SQL 接口层提供了数据库访问类,QSqlDatabase类提供了数据库连接操作,QSqlQuery类提供了数据库的增、删、改、查操作;驱动层实现了特定数据库与SQL接口的底层桥接[7]。

通用数据库访问接口需要从元数据库中获取局部数据源的连接信息,包括驱动类型、数据源的IP、端口、数据库实例名、用户名和密码等。实现与各数据源的无缝连接,并可根据基础数据服务的调用返回相应的数据集合。

4.3 WEB服务封装

gSOAP是一种跨平台的C和 C++软件开发工具包,能够自动地将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构。由于本文的底层数据访问基于Qt开发框架,因此,Web服务封装引入Gsoap。

WEB服务封装的步骤:

1) 定义数据交互接口头文件;

2) 通过头文件生成WSDL文件及C++服务端和客户端文件;

3) 编写实现接口处理函数。

若业务应用需要通过Java编程语言实现,可通过WSDL文件生成Java服务端和客户端代码。

4.4 元数据库设计

元数据库位于逻辑层,用于存储全局数据视图、局部数据结构及它们之间的映射。本文采用 XML 文件存储元数据信息,数据源连接配置与映射关系XML结构设计如图4所示。元数据库向下层的数据库访问接口提供局部数据源的连接信息,并向同层的基础数据服务提供全局数据视图和局部数据结构的映射信息。

4.5 全局数据模式

服务分解后的子请求除了要避免重复访问同一数据源外, 还要保证分解后的查询结果的正确性, 即分解后语义与分解前应是一致的。但在不同的数据源中往往存在着命名冲突、 内容交织等语义的异构。为了解决这种语义异构的问题,系统建立了映射关系。映射规则的建立需要充分考虑到异构数据源间的语义异构问题[8]。

1) 如果局部模式中存在名称冲突,在全局模式中则要进行统一命名,如,在全局模式中统一命名为

2) 如果局部模式中存在内容包含和交织, 全局模式则要进行扩展,含局部视图的全部元素。

5 数据集成平台的特点

数据集成平台包括数据层、逻辑服务层和应用层三层架构,以及数据接口层和应用接口层两个衔接层。其主要特征有:

1) 自治性:

数据集成平台通过在元数据库中存储全局数据视图、局部数据结构以及它们的映射关系,使得对全局数据视图的操作转化为对局部数据源的操作,因此,在进行数据集成的同时不影响原有系统的正常运行。

2) 通用性:

引入基于QtSql的通用数据访问接口,屏蔽了局部数据源操作系统级和数据库管理系统级的异构;将业务逻辑接口封装成服务,利用soap协议的跨平台特点,可供部署在不同开发环境下的应用调用。

3) 实时性:

数据集成平台执行的数据操作针对的是子业务系统中的实时数据,相對于基于复制的数据集成操作,实时性高,得到的数据也是最新的。

4) 易更新:

通过数据映射将应用与局部数据源解耦,如果局部数据源发生变动,只需在集成平台的元数据库中重新建立对应关系。

6 结束语

数据集成平台设计了数据层、业务逻辑层和应用层 3 层总体架构,通过通用数据库访问接口屏蔽了数据源的异构,引入元数据库,管理全局模式与局部数据源的映射,建立基础数据服务和业务服务形成面向服务的业务逻辑架构,实现了数据源异构和数据结构异构的数据集成,改变信息孤存现象,实现各业务系统的信息共享和业务互通,为指挥决策提供强有力的数据支撑。

参考文献:

[1] 祝本玉,刘焱.装备保障数据集成的认识与思考[J].装备学院学报,2015(5):91-94.

[2] 陈跃国,王京春. 数据集成综述[J]. 计算机科学,2004,31(5):48-51.

[3] Vijayendra N,Lu Meiliu.A Web-based ETL tool for dataintegration process

[C]// 2013 the 6th International Con-ference on Human System Interactions, 2013:434-438.

[4] 李亢,李新明.多源异构装备数据集成研究综述[J] 中国电子科学研究院学报,2015(4):162-167.

[5] 周钢,郭福亮.面向服务的军械装备保障业务数据集成架构设计[J].计算机与现代化,2017(3):112-116.

[6] 赵聪,寇德齐.装备保障数据集成平台[J] 四川兵工学报,2012,33(6):122-124.

[7] 潘学文,文汉云.基于Qt4的SQLite数据库应用编程[J].电脑编程技巧与维护,2011(2):49-50.

[8] 马云峰 王源 基于XML和Web Service的异构数据集成研究与实现[J].计算机技术与发展,2010(11):42-46.

猜你喜欢
WEB服务数据集成
XML数据交换技术在中医智能化诊断数据集成中的应用
高校一表通系统建设探究
基于数据集成的水上项目国家队数据库网络管理平台的设计与开发