摘 要:随着信息化作战的发展,迫切需要对指挥信息系统的数据进行集成整合,在分散异构的数据源上实现统一的数据交换。针对这一问题,提出了一种基于 SOA 和本体的多源异构数据集成架构,并详细阐述了其体系结构、模块设计、功能特点以及关键技术,最终实现了一个多源异构数据集成原型系统。通过 Web Service 技术解决了客户端与服务端之间的远程多源数据传输问题,同时利用本体技术在语义描述方面的优势,有效整合了领域知识,实现了统一的数据访问。结果表明,该系统克服了传统平台技术及数据共享技术在信息集成中的局限,解决了指挥信息系统数据空间异构、语义异构、格式异构的现实问题,实现了数据的有效集成。
本文源自叶霞; 刘睿珩; 许飞翔; 岳增营, 火力与指挥控制 发表时间:2021-04-19《火力与指挥控制》杂志,月刊,于1976年经国家新闻出版总署批准正式创刊,由中国兵器工业集团有限公司主管,北方自动控制技术研究所主办的学术性刊物,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:专家论坛、综述、理论研究、工程实践、试验技术。
关键词:Web Service,本体技术,数据集成,语义异构
在信息化战争背景下,指挥信息系统作为作战指挥的“神经中枢”,已然成为各国部队的建设重点之一,数据作为其“血液”,更是发挥着至关重要的作用。然而,随着指挥信息系统数据需求的快速增长,各类数据资源的规模、结构、分布都发生了巨大变化。当前,由于各作战单位指挥信息系统建设的阶段性和分布性特点,这些系统的建设时间、开发人员、运行环境大都不一致,并且它们的数据源之间相互独立,因此存在着大量冗余、异构的数据。这导致数据难以在系统之间流转、共享和融合,容易产生“信息孤岛”的现象[1]。
为解决不同指挥信息系统数据之间存在的格式异构、空间异构、语义异构等问题,实现数据资源的高效利用。本文提出了一种基于 SOA(Service Oriented Architecture)[2]和本体技术的多源异构数据集成系统[3]。通过面向 SOA 的 WebService[4]技术,对多个孤立数据源进行整合,结合本体映射方法,合并不同指标体系中具有相同语义的概念,从而构建统一的全局指标本体,为指挥员提供一个完整统一的数据视图,协助指挥中心对子单位数据资源进行管理。除此之外,通过统一底层数据源格式,系统还集中了数据模式转换和查询处理等功能,实现异构数据源的无缝链接和信息共享,为指挥员提供兼容可靠的查询功能,便于获取、集成和查看数据。因此,多源异构数据集成系统的设计实现成为了解决“信息孤岛”问题的有效手段,是实现数据一体化访问和挖掘运用的关键因素。
1 相关研究
数据集成指通过清理、映射和转换等操作,将不同来源的数据合并到单个统一视图的过程。起初的研究主要集中在联邦数据库系统[5,6]上,通过建立联邦模式架构,实现各个数据源之间的相互联系和独立自治[7],但这种架构很难实现数据源的拓展。随着数据存储能力的提升,数据仓库[8]能较好地整合多个数据源从而实现高效查询,并得到了进一步运用[9],但数据仓库不能很好地处理冗余数据,导致数据实时更新困难。为了更好地解决用户与数据源之间的连接关系,一些工作在两者之间建立一个中间件层[10],从而为用户提供统一的数据视图和访问接口。但这种方法难以区分具有相似语义的数据,并且查询效率很大程度上依赖于中间层的设计。因此,近年来越来越多的研究集中在实体匹配[11]和语义映射[12]等方面,但是这些方法往往只针对结构化或者非结构化类型的单一数据。XML (Extensible Markup Language)和本体技术[13]的引入为异构数据集成提供了一种新思路,利用 XML 在统一数据格式时的普适性以及本体技术严谨的概念结构和逻辑推理等特性,进一步提升了数据集成的效果[14]。本文以 Web Service 体系为框架并结合本体技术,针对指挥信息系统数据在空间、结构和语义上的差异,设计实现了一个多源异构数据集成系统。
1.1 SOA 和 Web Service 概述
SOA 即面向服务架构,它是一种软件架构设计的模型和方法论,将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。 SOA 的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的,粗粒度,松耦合,无状态的服务。在 SOA 的技术框架下,可以把杂乱无章的庞大系统整合成一个全面有序的系统,从而增加企业在业务发展过程中应用系统的灵活性,解决异构系统之间通信问题,实现最大的网络资产利用率。
Web Service 作为一个新型的分布式计算模型,是实现 SOA 这一理念的推荐标准,它由三个部分组成,分别为服务提供者、服务请求者和服务代理,通过发布、查找和绑定实现信息的传输。Web Service 的关键技术包括 XML、SOAP、WSDL 和 UDDI。
XML 是指可扩展标记语言,是 Web Service 的技术基础,Web Service 中各种信息的描述都是基于 XML。
SOAP(Simple Object Access Protoco1)是指简单对象访问协议,是基于 XML 在分散或分布式的环境中交换信息的简单的协议。允许服务提供者和服务请求者经过防火墙在 Internet 进行通讯交互。
WSDL(WebService Description Language)是指网络服务描述语言,也是基于 XML 语言的,用于描述 WebService 以及如何对它们进行访问。
UDDI (Universal Description,Discoveryand Integration)是指通用描述、发现与集成服务,用来创建 Web 服务注册中心,它是 Web 服务注册和发现的技术规范。UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成。
Web Service 三角形的设计模型[15]被称作 SOA 的体系结构,Web Service 模型如图 1 所示。
一个完整的 Web Service 体系结构的实现过程如图 2 所示
Step1:客户查询服务中介以请求特定的服务; Step2:服务注册中心引导客户找到满足请求的服务 WSDL 文档; Step3:服务请求者访问 WSDL 文档; Step4:WSDL 提供服务的具体描述信息; Step5:客户根据 WSDL 生成相应的 SOAP 消息,发送给 Web 服务提供者; Step6:服务提供者应答 SOAP 消息,提供给请求者相应的服务。
1.2 本体技术
随着语义网技术[16]的不断发展成熟,异构数据集成的重点慢慢地转移到解决语义异构的问题上,而目前本体技术利用对语义很好地描述能力可以很好地解决数据的语义异构问题,EhrigM 等在文献[17]中介绍了本体集成的问题在欧洲委员会启动的 SWAP(Semantic Weband Peer-to-peer)项目中首次被提出,该项目有着在每个终端建立各自的本体之后建立一个集成大本体的需求,因此提出了本体映射和本体合并的概念,本体技术的运用消除了数据集成过程中的语义异构问题,并最终实现语义融合的目的。
本体概念的发展使得本体模型也在不断地进行完善,最终得到公认的一套本体模型[18]:O={C, R,F,A,I}。
1)C 代表类(class):是从本体中提取出用以表述事物对象的集合,描述领域内的实际概念,既可以是实际存在的事物,也可以是抽象的概念,比如逻辑推理、动作、策略和工作过程等;
2)R 代表关系(relations):用于描述类(概念)之间的关系,表示了领域内的概念与概念之间的相互影响力,如 part-of、kind-of 等;
3)F 代表函数(function):函数是一类特殊的关系,可以理解为关系的一个特例,在这种关系中前 n-1 个元素可以唯一决定第 n 个元素,
4)A 代表公理(axioms):公理代表本体内存在的事实,多用来表示对概念或者实例的约束;
5)I 代表实例(instances):表示具体某个类的实际存在,从语义方面讲实例代表的就是具体对象。
为解决指挥信息系统数据目前存在的空间异构、格式异构以及语义异构等问题,本文提出使用本体技术和基于 SOA 的 WebService 技术实现多源异构数据集成的方法,设计并实现了多源异构数据集成原型系统。
2 基于 Web Service 和本体的多源异构数据集成原型系统设计
2.1 需求分析
不同的作战单位在地理位置分布上十分的分散,而且每个单位指挥信息系统存储数据的格式不尽相同,不利于进行联合作战指挥,难以提高部队战斗力。因此考虑将各个单位的数据集成起来,进行统一查询,并将集成后的数据以二维数据表的形式输出,可以很好地了解相应系统的作战水平。
多源异构数据集成原型系统是服务于基层作战单位以及指挥中心的。该系统使用 Web Service 技术进行数据传输,利用 XML 技术和本体技术实现数据集成查询 [19],提供给指挥员数据集成分析的功能,为各级指战员高效完成作战提供坚实的基础,是信息化战争中不可或缺的一环。
多源异构数据集成原型系统的主要参与者可以分为两类:指挥中心技术员作为指挥中心用户完成数据集成查询等操作;各个子单位技术员作为子单位用户完成数据采集处理等操作。具体的系统用户及其功能性需求如表 1 所示。
2.2 系统功能设计
在充分调研了现有的指挥信息系统数据管理现状后,结合用户的需求,将系统划分为各作战单位使用的客户端以及指挥中心使用的服务端。完整的系统功能设计如图 3 所示。
2.2.1 客户端主要功能
1)本地数据管理
各作战单位是数据的来源,对数据的管理尤为重要,直接关乎到后续数据集成效果的优劣,用户需要通过此功能对本地的数据进行管理,不论是非结构化的文本数据还是结构化的数据库数据,都可以进行增删查改等操作。
2)数据清洗及转换
规范的数据可以减少服务端进行集成所花费的时间,所以在客户端需要实现数据的清洗[20]及格式的转换。数据的清洗主要针对数据中出现的重复、缺失、不合理值的情况进行处理,从而得到规范的数据,方便后续的处理。由于在数据传输中采用 Web Service 技术,可扩展的标记语言 XML 作为 Web Service 平台表示数据的基本格式,除了易于建立和易于分析外,其主要的优点在于它可以不受平台和所使用软件的影响。因此考虑将数据格式全部统一成 XML 格式的文件,以便于后续的数据传输和集成。
3)上传数据
各个单位的客户端在处理好数据后,需要将数据上传至指挥中心的服务端,此过程中通过 Web Service 技术与服务端进行通信,同时进行数据的传输,从而将各个作战单位的数据全都集中到指挥中心的服务端上,这是解决数据空间异构的重要步骤。
4)系统设置
系统在实现主要功能时,还应具备一些基础功能。如语言选择、时间调整、界面外观设置、用户名和密码修改等通用设置,提供更好地用户体验。
2.2.2 服务端主要功能
1)用户管理
用户管理主要针对服务端和客户端用户,对登录到系统的用户权限进行管理。为了充分考虑各个单位数据源的安全性,因此可以将每个客户端看作一个数据源,同时对用户和数据源进行相应的绑定。
2)数据管理
数据管理功能主要实现对各单位上传的 XML 数据的管理,接收到各单位的数据后,可以进行增删查改等操作。服务端还需对客户端清洗过的数据进行检查,如果数据依旧存在有重复、缺失、不合理值等情况,需要再次进行清洗修正。
3)数据集成
数据集成的功能主要利用本体集成相关技术,具体包括本体的构建、本体概念相似度的计算以及本体的映射,最终将各个单位的数据集成到一个全局本体中,这也是整个系统的关键技术。在相似度计算和本体映射中可以引入机器学习算法,提高计算精度和映射准确性。通过本体集成技术实现各个单位数据的高效集成,并存储于服务端的数据库中。
4)集成结果查询
集成结果查询为用户提供了一个人性化查询接口。将各个单位的数据集成到一起后,可实现用户的按需查询,例如,当用户有查看某单位或某一天数据的需求时,可以通过系统搜索框输入需要查询的单位编号、日期、指标名称等关键字,就可以在数据库中查找相应的信息,后台经过一些查询内容的查询转换、最终向用户呈现查询结果。
5)辅助功能
辅助功能主要是保证管理员可以在服务端完成数据和代码的维护。系统将重要的指标名称进行标记,当有新的指标名称出现时,进行相似度计算,实时更新本体概念库,数据维护对于系统的运行十分重要,也是保证本体集成效果的重要措施。代码维护功能可以保证系统正常的调试运行。
6)系统设置
同客户端一样,服务端也具备系统的基础设置功能。
2.3 系统体系结构设计
本文在数据结构和相应算法的基础上进行系统体系结构设计和开发,如图 4 所示。系统采用基于 SOA 的三层 B/S 结构[21],其中包含应用层、中间层和信息源层。信息源层主要包含异构数据源,首先进行数据的清洗,然后将数据转换为 XML 格式;中间层主要完成基于 Web Service 的数据安全传输、接口的管理以及基于本体的数据集成相关工作;应用层主要表现为网页端系统,直接面向管理员和用户。系统的体系结构设计如图 4 所示。
2.3.1 信息源层
信息源层是整个系统的基础,本课题研究的数据是来自于各个作战单位指挥信息系统运行数据,数据源存储于不同的单位,在不改变原有信息结构的基础上,将结构化数据及非结构化文本数据转化为 XML 格式后上传至服务端,在服务端将 XML 文档进行处理,构造局部本体,通过本体映射实现将局部本体映射到全局本体。实现数据的集成,以满足后续的查询需求。
2.3.2 中间层
中间层的主要任务是进行整个业务功能的完成。要为应用层访问该系统的用户提供功能操作和数据查看,向下需要协调各个单位的数据源,在这一层系统主要完成数据的交互、本体的构建、本体概念相似度的计算、本体的映射、集成数据查询处理、Web Service 接口的管理等功能。
2.3.3 应用层
应用层处于多源异构数据集成原型系统的信息源层和中间层之上,主要是服务于系统框架中的信息的用户和管理者,在本系统中以网页的形式展现,为客户端用户和服务端管理员进行数据的传输、处理、集成、查询提供用户界面。用户和管理员只需在网页上选择需要进行的操作或者查询需要查找的信息,浏览器便可以接受用户的请求并进行解析,将请求传至中间层进行处理,完成相应的操作。这种方法的好处在于,用户和管理员无需了解请求数据和系统数据在底层传输处理的细节,而是能够直接在网页系统上查看到中间层返回的结果,有着较好的人机交互体验。
3 系统关键模块设计
3.1 数据格式统一模块
数据格式的异构是当前数据集成所面临的最基本的问题,不同的单位的指挥信息系统运行数据存储的格式不尽相同,有的以 TXT、Word、Excel 或者 XML 格式进行存储,有的存放在数据库中,数据库的选择也不尽相同,有 Oracle、SQLServer、MySQL、 Access 等,统一各单位数据的数据格式是完成数据集成的第一步。由于 Web Service 和本体技术都对 XML 格式有着较好的亲和力,因此,考虑以 XML 作为数据的统一格式。XML 作为一种机器可读文档的规范,在数据转换领域有着广泛的应用,特别是可以根据其语义约束的特性定义 XML 文件结构,以便于开发人员和解析工具处理。本文通过 XML Schema 定义各类元素及其系列属性来确定 XML 文档结构。在转换数据格式时,对于需要集成的数据,根据结构特点,主要将其划分为结构化和非结构化两类,并按照预先定义的 XMLSchema 映射文件,在客户端统一将本地数据转换为 XML 格式。
3.1.1 结构化数据到 XML 数据的转换
由于目前的数据库管理系统存在很多差异,不同的应用领域,数据模型不尽相同,不同的生产商也生产出不同的数据库,如 Oracle、SQL Server、 MySQL、Access 等。这些关系数据库到 XML 的数据转换主要是通过 XML Schema 直接建立与数据库的映射。
首先按照需求和 XML 文件的定义,根据映射规则生成 XMLSchema 映射文件,Schema 定义了在数据库中检索的数据,以及最终在 XML 文件中如何表示这些数据。然后利用文档对象模型(Document Object Model,DOM)来解析 Schema 文件,根据映射的定义,将获得的数据库结果集转化为目标 XML 文档。
3.1.2 非结构化文本数据到 XML 数据的转换
非结构化文本数据主要是以 TXT、Word、Excel 这些类型存储的数据。其中,TXT 文本数据可以通过 java.io 流来进行输入和输出,完成对 TXT 文本的读取,并将其中的文件结构和文件内容取出,按照 XML Schema 预设的格式写入到同名的 XML 文档中,最终实现 TXT 文档到 XML 文档的转换;Word 文档的转换可以通过 Jacob(Java-COMBridge)技术对 Word 文档内容进行读取,Jacob 在 Java 与微软 COM 组件之间建立桥梁,通过 JNI 功能访问 Windows 平台的 COM 组件或 win32 系统库,完成读取后按照 XML Schema 预设格式生成同名 XML 文档; Excel 文档到 XML 文档的转换可以通过 Java Excel API 实现[22],该组件可以对 Excel 文档进行读取、创建和更新。因此,使用 Java Excel API 读取 Excel 文档中所有单元格的内容及格式,并按照同样的方法写入到同名 XML 文档。
3.2 数据传输模块
结合各级指挥单元之间在空间分布上“散”和 “远”的特点,依托指挥信息系统信息通信支撑网和其他共用信息基础设施,数据交互模块主要解决指挥信息系统在数据集成时所面临的空间异构问题,以实现客户端与服务端之间的数据交互,这里的数据不仅指系统数据,还包括请求和响应数据。
首先为每个数据源创建相应的 WebService 接口,然后各子单位可根据指挥中心发布的 WSDL 文档并通过 SOAP 协议上传数据。在本系统中,服务端作为服务提供者进行 Web Service 接口的开发,而各单位的客户端系统作为服务的请求者,根据服务端的 WSDL 文件配置交互的参数,并以 SOAP 消息的形式封装 XML 数据,交互的参数、文档以及返回值都采用 XML 格式[23]。客户端与服务端进行通信时的数据交互流程如图 5 所示。
3.3 本体构建模块
在指挥信息系统中,由于不同单位建立的指标体系存在差异,相同的概念经常以不同的指标描述,容易引起语义异构问题。本体的构建[24]是利用本体技术进行数据集成的重要基础,本系统将各单位上传的 XML 文档转换为局部本体的形式,具体的构建流程如图 6 所示。通过本体映射对具有相同语义的指标概念进行合并,从而实现指挥信息系统数据的集成和共享。
首先将各个单位上传的 XML 文档,使用 XML Schema 进行描述,接着将 XML Schema 转换成为 RDF Schema 模式,然后将 RDF 相关文件导入到 prot佴g佴 中,完成局部本体 OWL 的构建,最后将构建好的 OWL 本体文件导入到服务端系统。
为增强与指挥信息系统领域与本体概念之间的相关性,在转换成本体概念后,还需进一步的筛选,保证转换后的概念可以有效表示指挥信息系统领域的相关指标[25],具体方法如下:
1)划定所研究的领域的知识范围。比如指挥信息系统通信模块相关数据的集成时,在构建本体时就要将领域知识范围限定在指挥信息新系统通信相关领域,准确分析相关概念,尽量选择认可度最高的概念作为本体构建的权威依据;
2)分析领域知识中的相关概念和所构建的本体概念之间的差异与联系。确保两者之间不出现逻辑上的混乱和原则上的差错;
3)利用语义模型检验本体概念。将所构建的本体概念在语义网中进行表示,确保不会出现模棱两可、表述不清的情形;
4)确保人工评价的准确性。在使用本体构建原则对所构建的本体进行人工评价时,需要做到评价准确。对补充到本体中新的本体概念,也要进行评价,以确保本体的不断完善。
5)若完成上述操作,即可确定所构建的本体,并使用本体语言表示,添加到本体概念库中。
3.4 集成结果查询模块
查询处理也是系统的重要功能,当用户需要查询一些特定条件下的数据时,比如特定的单位、特定的时间或者特定的指标数据时,系统可以及时做出反应,将用户需要的信息呈现出来。在查询的过程中,系统需要根据用户所输入的关键词与本体库中的概念进行映射匹配,在全局本体中找到该概念的本体表达,然后将查询命令分解为对局部本体的查询,最后将查询局部本体数据返回给用户界面。
本 研 究 用 到 两 种 查 询 语 言 OWL-QL 和 XQuery,分别对本体语言表示的概念和 XML 语言形式的概念进行查询。OWL-QL 是 W3C 推荐的网络本体查询语言错误!未找到引用源。,由查询回复和查询回复协议组成,与传统查询语言不同,在查询过程中,OWL-QL 需要对 OWL 知识库进行推理,且支持应答格式的设定、多知识库的选择和使用。 XQuery 是一种针对于 XML 的查询语言错误!未找到引用源。,类似于 SQL、OQL 等,能够从 XML 文档中抽取数据。XQuery 不仅拥有其它多种查询语言的优点,而且适用于各种类型 XML 数据源的查询。系统查询处理的过程如图 7 所示,具体步骤为:
Step1:查询生成器接收用户所发出的查询请求,将用户的查询关键词接受后送给本体管理器。查询生成器开始验证查询关键词的语法,判断所输入的关键词是否符合语法要求,符合要求时生成 OWL-QL 查询语句送至本体管理器,否则提示输入的查询信息有误;
Step2:本体管理器根据得到词语在全局本体内进行查找,当查找到全局本体里面的概念或者根据本体概念相似度计算模型得出的相近的概念时,将全局本体的查询分解为对局部本体的查询,此时查询的概念为映射为全局本体概念前的所有相似概念,同时生成多个局部本体查询语句,本体管理器会将结果送给查询分解器;
Step3:查询分解器接收到本体管理器的查找结果后,生成 XQuery 查询语句在各局部本体对应的 XML 文件中进行相关概念的查找;
Step4:查询处理器将查询分解器最终查询到的结果以数据表的形式返回到浏览器进行解析,用户便可在网页系统上看到查询的结果。
4 验证与应用
根据多源异构数据集成原型系统需求分析、功能设计、体系结构设计和关键模块的设计,结合 Web Service、本体以及 XML 技术,基于 java 语言,使用 Eclipse IDE 开发,系统的整体展示如图 8 所示。本文所实现的数据集成原型系统于 2019 年 8 月份进行了测试,测试过程中在 101 单位、102 单位、103 单位和 201 单位使用 IE 浏览器登录数据集成原型系统客户端,首先将各单位不同格式数据通过格式转换功能统一成为 XML 格式的文件,然后通过 Web Service 上传至指挥中心的服务端进行集成,服务端中使用本体集成相关功能进行语义融合和数据集成。
系统在测试中可以基本完成相应的功能,但也存在部分测试用例不通过的情况,例如出现以下问题:各级用户权限判别有误;输入错误或者无效的字段时,查询界面没有错误提示等。产生这些问题的主要原因主要来自于需求定义不明确、功能性错误、页面设计和需求不一致以及开发过程中的疏忽等原因。经过后期的修改和调试工作,对本系统进行了再次测试,结果表明上述问题均得到了有效解决,实现了不同单位、不同格式、存在语义异构数据的集成,较好地验证了系统设计的可行性。
5 结论
本文研究了基于 SOA 和本体的指挥信息系统数据集成方法和架构。将系统分为信息源层、中间层和应用层,通过 WebService 技术解决了数据集成中的数据源空间异构问题,使用 XML 统一了多种格式的数据源,解决了数据集成中的格式异构问题,利用本体技术解决了数据集成中的概念语义异构问题。实现了指挥信息系统多源异构数据的有效集成,为用户提供全局视图,为数据挖掘、决策支持提供基础。同时设计实现的系统是实验性质的,距离完成大数据的集成和战场应用还有很大的差距,需要进一步改进完善。
论文指导 >
SCI期刊推荐 >
论文常见问题 >
SCI常见问题 >