赵 聪,寇德齐,张子伟
(1.装甲兵工程学院,北京 100072;2.72253部队,济南 250022)
随着装备保障信息化建设的不断深入,各兵种以及装备保障各业务部门都开发了一系列的信息管理系统,这些信息管理系统在一定程度上满足了装备保障工作的需要。但这些系统在开发初期没有统一的标准和规范,因此,数据定义、数据存储格式不统一,并且各类装备保障数据分布在各业务分系统中,必然导致决策部门或首长机关无法进行高效的数据汇总、查询和应用,严重影响了对装备保障工作的决策和控制,装备保障信息化建设的整体效能也无法得到最大程度的发挥。
目前集成异构数据源的体系结构主要有3种:联邦数据库、数据仓库和中介集成系统。联邦数据库中数据源之间使用数据转换接口来实现数据互访,在集成的数据源种类和个数限定的情况下容易实现,但在数据源种类繁多并且经常变化的情况下,扩展性差;数据仓库将几个异构数据源的数据存储到数据仓库,主要适用海量数据的统计分析,但是由于集成的数据是原有数据的副本,一方面增加了存储的负担,另一方面不能反映各异构数据源的实时情况;中介集成系统不存储数据副本,只提供查询沟通的机制,当用户进行数据查询时,必须到各异构数据源中得到相关的数据,然后利用这些数据构造用户需要的结果,主要应用于对数据响应速度要求不高的情况中。
本文在中介集成系统的基础上,利用XML和Web技术,提出了装备保障数据集成平台的设计方案。
在对装备保障现有的系统和数据库特点以及信息化战争对数据的需求进行深入分析的基础上,提出数据集成平台的设计目标:数据集成平台不改变现有业务系统的数据库,如车务、修理、器材等,而是建立独立的中间件系统对现有数据系统进行抽取、转换和集成;数据集成平台灵活配置各种集成数据源;集成框架应支持多种操作系统。
在集成框架中,需集成的数据称为局部数据源,分布于各地,它们在存储方式和组织方式上各不相同。为了将这些异构的局部数据源集成起来,从各个局部数据源抽取公共部分建立新的数据模型,并在局部数据源和新的数据模型之间建立映射关系,这个新的数据模型被称之为全局数据源,并呈现给用户。用户对全局数据源的操作都可以通过映射关系对应到具体的局部数据源中,从而屏蔽了数据的异构性。
装备保障数据集成平台的体系结构如图1所示,从下到上分为数据层、逻辑层、表示层。
图1 装备保障数据集成平台体系结构
1)数据层包括各种异构的局部数据源和包装器。其中局部数据源可以是Oracle、SQL Server等关系型数据库,也可以是XML文档。与以往中介系统对每个数据源分别建立包装器不同,图1的架构中只采用1个包装器来对所有局部数据源进行包装。收到逻辑层传过来的查询指令后,从元数据库中查找映射信息操作局部数据源。
2)逻辑层包括中介器和元数据库。中介器一方面负责将表示层传来的针对全局数据源的查询转换为对各局部数据源的查询,另一方面将数据层返回的结果整合后发送给表示层。元数据库存放局部数据源、全局数据源及它们之间的关系。中介器以Web Service形式发布。
3)表示层直接面向用户。由于逻辑层的中介器采用Web Service发布,所有可以调用Web Service的客户端都可以用于表示层,因此,表示层可以采用多种语言,为用户提供友好的操作界面。表示层还接收用户发出的XQuery查询指令,将XQuery指令发送到下面的逻辑层,并接收逻辑层发来的查询结果。
数据集成平台主要包括逻辑层和数据层。集成平台的主要构件中介器和包装器都是以Web Service的形式进行发布的,方便所有用户调用。
元数据库位于逻辑层,用于存储全局数据源、局部数据源及它们之间的映射。为了实现轻量配置,采用XML文件充当存储介质。元数据库向下层的包装器提供局部数据源的地址信息、数据源类型、用户信息等,实现1个包装器对多个局部数据源的包装,并向同层的中介器提供全局数据源和局部数据源的映射信息,实现全局查询向局部查询的转换。
从图1中可以看出,中介器是集成系统的核心模块。根据功能,将中介器划分为2个部分:元数据处理器和查询处理器。中介器的结构如图2所示。
图2 中介器结构
元数据处理器负责操作元数据库中的数据,包括全局数据源管理、局部数据源管理和映射关系管理。查询处理器进行2方面的工作:一方面向上接收表示层发送的全局查询语句,将其分解为针对局部数据源的查询语句发送到数据层;另一方面向下接收数据层的查询结果,对其进行全局数据源封装之后,发送至表示层。
中介器工作流程为:
1)表示层根据系统提供的全局数据源,编写并发送XQuery查询语句。
2)查询处理器中的查询解析部件收到XQuerv后,验证其语法,提取相应的关键字,判断该语句是否合法。如果合法,将XQuery传到查询分解器,转第3步,否则返回第1步。
3)查询分解器通过调用数据处理器查询元数据库中的全局数据源与局部数据源的映射关系,将针对全局的XQuery分解为针对局部的XQuery。
4)查询分发器将针对局部的XQuery发送到数据层的包装器。
5)数据层的包装器从元数据库中获取局部数据源信息,执行局部查询,以XML形式返回查询结果。整合器收到查询结果后,根据全局数据源与局部数据源的映射关系,按照全局数据源样式将其封装,返回涵盖多个局部数据源的集成数据。
包装器是中介器与局部数据源联系的桥梁,用来封装局部数据源,为中介器提供统一的查询接口。按照功能可以分为查询语言转换器、查询执行引擎、JDBC Driver和结果转换器4部分,如图3所示。
图3 包装器结构
图3中,包装器收到中介器分解后的局部XQuery查询语言后,通过查询语言转换器,将XQuery语句翻译成本包装器对应数据源的查询语言。如对于SQL Server等关系数据库,将XQuery转换为SQL语句。对于XML文档,则无需进行转换,直接用XQuery进行查询,转换后的查询语言被发送到查询执行引擎。
查询执行引擎根据不同的数据源,选择不同的JDBC驱动程序,与对应的局部数据源建立连接,执行查询语言转换器转换后的查询语言,并将查询结果发送到结果转换器。结果转换器将查询结果按照一定的规则包装成统一的XML格式,返回给中介器。
通过上述的设计方案可以看出,数据集成平台的主要构件(查询处理器、元数据处理器、结果转换器、查询语言转换器以及查询执行引擎等)是通过接口通信的,同时采用了与平台无关的XML作为传输数据的载体。所以各构件可以在各种机器、平台上运行,其主要特征有:
1)自治性。装备保障数据集成平台通过元数据库中的存储全局数据源、局部数据源以及它们之间的映射关系,使得对全局数据库的操作转化为对局部数据库的操作,因此,保持原有系统的自治性,在进行数据集成的同时不影响原系统的正常运行。
2)通用性。通过XML及其相关技术(XQuery、XML、Schema等),装备保障数据集成平台可广泛集成不同数据格式的数据源,同时各数据源只需建立与平台相对应的数据接口即可,大大减少了接口的数量,在很大程度上提高了平台的通用性。
3)实时性。通过装备保障数据集成平台进行的数据操作实际上是通过网络对分布在不同位置的局部数据源进行的,同时由于保持了局部数据源的高度自治,因此,数据操作是实时进行的,得到的数据也是最新的。
4)易更新。装备保障数据集成采用数据集成平台技术,中介器和包装器全部位于集成平台上,如果数据源发生变动,只需在集成平台上对中介器和包装器进行更新即可。
不足之处是装备保障数据集成平台每次在进行数据操作时都需要连接数据源,有时还会出现网络延时等现象,这些都会对性能产生影响。但随着计算机硬件、网络环境的改善以及DBMS的不断升级,装备保障数据集成平台的性能也会不断提高。
装备保障数据集成平台利用XML和Web Service技术解决了装备保障数据点多面广、数据异构等问题,为装备保障指挥决策提供强有力的数据支撑。但数据集成只是装备保障信息化建设的一部分,如果没有通信集成和应用集成,数据集成也很难发挥其应有的功效。
[1]史万江,吴健.一种异构数据集成框架及关键技术研究[J].微处理机,2008(4):167-173.
[2]方长江.异构数据源集成技术在军事中的应用研究[D].济南:山东大学,2007.
[3]李军怀,周明全,耿国华,等.XML在异构数据集成中的应用研究[J].计算机应用,2002,22(9):18-24.
[4]孙长俊,周晓峰.基于Web Services的企业应用集成模型[J].计算机技术与发展,2006,16(5):209-210.
[5]佘名高,贾秀峰,林坤江,等.基于Web服务的企业应用集成[J].计算机技术与发展,2007,17(5):55-58.
[6]李烨,冯志勇.基于XQuery的数据集成研究[J].微处理机,2008(3):120-122.
[7]尚蕾,孙志辉.基于XML的异构数据集成系统的查询处理[J].计算机工程,2005(3):121-123.
[8]W3C.Web Services Architecture[EB/OL].[2004-02-01].http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/.
[9]徐宗昌.保障性工程[Z].北京:兵器工业出版社,2002.
[10]愈康伦.装备保障系统运行理论研究[D].石家庄:军械工程学院,2002.