动态数据服务发布引擎设计与实现

2018-07-25 11:22许雪松郭丹丹王雨辰康燕燕
计算机应用与软件 2018年7期
关键词:数据服务数据源调用

许雪松 王 峥 郭丹丹 王雨辰* 康燕燕

1(航天科工智慧产业发展有限公司 北京 100854) 2(国家开发银行北京市分行 北京 100031) 3(北京市西城区规划管理信息中心 北京 100035)

0 引 言

在信息化快速发展的今天,数据打通和共享是[1-3]长期困扰政府和企业的一道难题,其中,部门内部数据碎片化、多源化及数据结构差异大等问题,导致大数据资源很难互联互通、共享以及最大化地被挖掘和利用[3]。当前我国各级政府政务信息系统建设面临着“各自为政、条块分割、烟囱林立”的突出问题,因此,政务公共数据共享开放具有一定困难。

本文的动态数据服务发布引擎是面向政府或企业信息化建设过程中解决数据统一发布与共享问题,特别是在当下智慧城市建设场景下尤为突出,其首要任务就是实现公共数据统一共享。本文中动态数据服务发布引擎的作用是建立数据库系统统一服务发布和接口管理视图,将所有与数据库相关操作(增、删、改、查)都通过服务一个接口来完成[4]。在信息化进程中会有很多不同的业务部门,这些部门都建立了自己的业务系统和数据库,而这些数据库则形成一个个“信息孤岛”[4-5]。要想达到数据全面共享的状态,首先需要连接这些数据库,然后对外提供一个统一的、透明的数据库接口服务。它是连通各接入系统与各接出系统进行信息交换共享的纽带、桥梁[6-8]。同时这些数据库也需要相互之间共享,达到转发数据的目的[9]。本文主要是为了实现各业务系统数据资源的发布和共享。

1 系统需求分析

对于不同部门中的业务系统,通常由不同厂家建设,大都采用不同类型数据库,因此动态数据服务发布引擎需要支持市场各类主流数据库(Oracle、DB2、MSSQL、MYSQL等),通过建立一个基于B/S模式的发布引擎系统,以动态可视化管理视图进行管理和操作。本系统需要解决数据源不统一、数据地域不统一、操作平台不统一等问题。能够实现诸多功能,包括查看数据库表元数据、建立服务模型、管理服务模型属性/操作与数据库表元数据的关联关系,以及服务的启用/停用控制等,使得用户快速将数据库数据表发布成服务,进而提高数据的快速异地的访问效率。该系统在总体结构上划分为服务配置控制台、服务运行引擎和公共支撑三个模块,各模块组合起来实现系统的总体功能。

服务配置控制台,以B/S视图提供用户操作及配置界面,通过Web页面管理和配置数据连接方式、数据库数据抽取、服务发布和管理等。

服务运行引擎,为后台引擎系统,完成对数据服务接口的封装和调度分发,能够对服务使用者的服务调用请求进行识别、解析,执行服务操作并返回数据服务请求结果,该部分为系统的核心部分,实现数据服务的访问、操作及转发控制。

系统用例图如图1所示。

图1 系统用例图

公共支撑,对多种类型数据源的支撑,完成数据源元数据的解析,分析元数据(属性、操作)及与相关数据库表元数据的关系。

将角色定义为两种,分别为服务管理员与服务使用者。服务管理员的主要职责是将来自于多个数据源的数据配置成为服务,同时有查看元数据源,服务模型配置,服务状态控制的权限。服务使用者的主要职责是新增资源、修改资源、删除资源、获取资源和检索资源。

2 系统设计

2.1 系统功能结构设计

动态数据服务发布引擎系统主要针对单个或多个数据库表,提供快速生成响应Restful协议的服务。由服务配置控制台配置生成服务,无需编写代码。数据服务引擎支持多数据源、数据库元数据管理等。动态数据服务发布引擎系统由服务配置控制台、服务运行引擎和公共支撑组成,公共支撑模块支撑服务配置控制台和服务运行引擎。系统功能结构如图2所示。

图2 系统功能结构图

服务运行引擎:服务运行引擎为生成的服务提供运行环境,对服务调用请求进行解析,处理服务的调用过程,并返回调用结果。服务运行引擎负责管理服务的生命周期,包括服务启动、服务初始化、接收服务请求,处理服务逻辑、返回服务结果、服务关闭等过程。

服务配置控制台:服务配置控制台提供对服务的方便配置,使得通过简单的配置即可生成相应的服务。服务配置控制台通过可视化页面操作,配置要使用的数据库连接(支持多种数据源,多种数据类型)、查看数据库表元数据、建立服务模型、管理服务模型属性/操作与数据库表元数据的关联关系,以及服务的启用/停用控制等。

公共支撑模块:公共支撑模块为服务运行引擎和服务配置控制台提供相关的支撑,包括多数据源连接的控制、数据库表元数据解析、数据映射等。

系统总体分为应用层、逻辑层、展现层及用户层。在应用层中包括服务统一接口、服务绑定映射、服务执行操作和数据源连接池管理,对数据表服务的统一封装,将表和服务进行绑定映射,执行服务请求的各项操作,及对数据源持久化管理。逻辑层包括服务模型解析、元数据解析和服务状态控制,对页面展现层和应用层进行衔接,对数据服务模型进行打包、拆包处理,将元数据与数据源进行映射处理,以及服务启动、停止等状态进行管理,展现层面向用户操作包括数据源显示、服务模型显示、元数据查看、服务状态显示。系统技术架构如图3所示。

图3 系统技术架构图

本系统采用Spring MVC设计,最上层为服务接口层与WEB表现层,服务接口层采用REST风格的Web Service。WEB表现层提供给用户通过浏览器访问系统,WEB层使用MVC架构实现表现与业务逻辑相分离。业务逻辑层则实现具体的功能逻辑处理,并通过调用基础访问层,通过基础访问层与数据库相连,完成数据存取操作。

2.2 数据服务处理流程

数据服务发布系统获取数据整体架构流程图如图4所示。

图4 整体架构流程图

2.2.1 动态服务生成流程

动态服务生成的流程(见图5)如下:

1) 对数据源中的数据进行抽取,获取数据源中数据库表中数据字段。

2) 对需要发布服务的数据库表配置相应的服务模型。

3) 将服务模型打包为服务模板,并以JSON的形式存储。

4) 发布成Restful架构风格的服务链接地址。

通过上述的业务流程描述可知,数据服务引擎核心的功能模块组成是公共支撑模块、服务运行引擎和服务配置控制台。围绕这些核心功能的辅助功能主要有多数据源的配置以及数据库元数据的管理等功能。

图5 动态服务生成流程图

2.2.2 数据服务调用流程

数据服务调用的业务流程如下:

1) 根据服务调用请求,解析、识别出服务操作指令。

2) 判断服务的有效性。

3) 获取请求参数并解析服务模型与数据库表关系,分析其元数据(属性、操作)与相关数据库表元数据的关系。

4) 执行服务操作。

5) 返回服务给调用者。

调用数据服务的流程如图6所示。

图6 调用数据服务图

2.3 功能设计

动态数据服务发布引擎包括服务配置控制台、服务运行引擎和公共支撑三大部分组成,系统总体功能架构设计如图7所示。

图7 总体功能架构图

2.3.1 服务配置控制台

服务配置控制台由数据源配置、查看元数据、服务模型配置和服务状态控制四部分组成。其中数据源配置可灵活配置服务需要用到的数据库连接,可配置多个不同类型数据库的连接信息(基于JDBC接口),支持连接池配置;查看元数据提供在可视化页面中查看相关数据库连接中包含的数据库表及其元数据信息的功能;服务模型配置可对需要发布服务的数据库表配置相应的服务模型,对服务模型的元数据(属性、操作)及其与数据库表元数据之间的关系进行维护;服务状态控制提供对服务的启用/停用状态的控制。

1) 数据源配置。数据源配置提供对服务需要用到的数据库连接进行灵活配置,可配置多个不同类型数据库的连接信息(基于JDBC接口),支持连接池配置。

2) 查看元数据。提供在可视化页面中查看相关数据库连接中包含的数据库表及其元数据信息。

3) 服务模型配置。提供对需要发布服务的数据库表配置相应的服务模型,对服务模型的元数据(属性、操作)及其与数据库表元数据之间的关系进行维护。

4) 服务状态控制提供对服务的启用/停用状态的控制。

2.3.2 服务运行引擎

服务运行引擎由服务统一接口、服务绑定映射、服务操作执行三部分组成。其中服务统一接口负责提供对外统一的服务接口,对于服务使用者的服务调用请求进行识别、解析,而后判断服务调用的有效性,获取请求参数,再通过服务绑定映射模块解析服务模型与数据库表的关系,并通过调用服务操作执行模块,执行服务操作并将结果返回给服务使用者;服务操作执行模块负责对服务操作的实际执行,通过服务绑定映射模块解析服务模型元数据与数据库表元数据之间的关系,将请求参数从服务模型元数据表示形式转化为数据库元数据表示形式,执行操作之后,再将执行结果从数据库元数据表示形式转换成服务模型元数据表示形式;服务绑定映射模块负责管理服务的启动、初始化、关闭,维持服务模型及元数据与数据库表及元数据之间的关系,并提供解析和调用接口,供服务统一接口和服务操作执行使用。

获取资源是一个根据主键值获取对应资源详细信息的接口,该接口通过识别、解析服务的调用请求,对于有效的服务调用请求,解析请求参数获取资源主键值,调用服务操作执行中的根据主键值获取操作,从数据库相应表中获取主键值对应的资源数据并返回该资源数据。

1) 服务统一接口。服务统一接口负责提供对外统一的服务接口,包括对基础信息资源的新增、修改、删除、获取、检索等。服务统一接口需要对服务请求进行识别、解析,判断服务调用的有效性,执行相应的服务操作,返回执行结果。

2) 服务绑定映射。服务绑定映射模块负责管理服务的启动、初始化、关闭,维持服务模型及元数据与数据库表及元数据之间的关系,并提供解析和调用接口,供服务统一接口和服务操作执行使用。

服务绑定映射模块提供包括判断服务的可用性、服务操作的可用性、服务属性的有效性、服务相关数据库表的列的有效性、服务名与相关数据库表名的相互转换、服务属性与相关数据库表列名相互转换等功能接口。

3) 服务操作执行。服务操作执行模块负责对服务操作的实际执行,即实际与数据库表进行相关持久化处理,包括新增、修改、删除、获取、检索等。服务操作执行模块需要通过调用服务绑定映射模块解析服务模型元数据与数据库表元数据之间的关系,将请求参数从服务模型元数据表示形式转化为数据库元数据表示形式,执行操作之后,将执行结果从数据库元数据表示形式转换成服务模型元数据表示形式。

2.3.3 公共支撑

公共支撑模块由多数据源支持、元数据解析和数据映射三部分组成。其中多数据源支撑提供对多数据库连接的管理,支持多种类型的数据库,包括对结构化数据、半结构化数据与非结构化数据的支持。并提供连接池的管理,不同的服务可使用不同的数据库连接,运用JPA框架封装对数据库的操作逻辑,它以面向对象的自然语法构造查询语句,并将运行期的实体对象持久化到数据库中。元数据解析模块提供对数据库表元数据的解析功能,能够解析数据库表的列信息(包含列名、数据类型、长度等),以及主键列等;数据映射模块可对建立的服务模型进行解析,分析其元数据(属性、操作)及与相关数据库表元数据的关系。

2.4 系统详细设计与实现

2.4.1 服务操作执行设计与实现

获取操作提供根据待修改的服务资源主键值从相应数据库表中获取相关资源数据,通过调用服务绑定映射模块解析服务模型元数据与数据库表元数据之间的关系,将数据库中获取的数据从数据库元数据表示形式转换成服务模型元数据表示形式,并返回结果,如图8所示。

图8 获取调用转换图

检索操作根据给定的过滤条件、排序条件和分页参数从相应数据库表中查找满足条件的资源数据,通过调用服务绑定映射模块解析服务模型元数据与数据库表元数据之间的关系。将过滤条件、排序条件从服务模型元数据表示形式转换为数据库元数据表示形式,将得到的检索结果从数据库元数据表示形式转换成服务模型元数据表示形式,并返回转换后的结果如图9所示。

图9 调用服务绑定映射模块图

检索资源提供统一的检索资源服务的对外接口,该接口通过识别、解析服务的调用请求,时序图设计如图10所示。对于有效的服务调用请求,解析请求参数获取要检索的过滤条件、排序条件和分页参数,调用服务操作执行中的分页检索操作指令,从数据库相应表中查找符合条件的资源数据,并返回查找到的资源数据。

图10 查找资源数据图

2.4.2 服务配置控制台设计与实现

新增数据源用于配置新的数据库连接信息,可以增加多个数据库连接,支持各种常用的数据库类型。在新增数据源时,对新增数据源的名称,驱动器类名,连接url等进行正确性校验。流程图如图11所示。

图11 新增数据源图

创建数据源时序图如图12所示。服务管理员在服务配置控制台填写数据源信息,填写完毕后提交新增资源请求,公共支撑模块接收到新增请求后,对请求中的数据源信息进行核验,无误后持久化到数据库中,并将新增结果返回给服务管理员。

图12 创建数据源时序图

3 系统测试

本系统经过了单元测试和功能测试两个过程。通过单元测试保障系统遵照系统设计进行开发,确保系统功能模块准确性,使系统在设计和开发过程中模块化且降低耦合度。在系统进行功能测试过程中,整个流程包括编制测试方案、测试计划、测试用例及执行测试用例,记录测试过程中出现的各类功能性问题及性能问题。测试内容涵盖了数据源支持度、服务响应速度、系统稳定性等。最后完成了回归测试,保证系统完成开发和设计。服务状态管理页面如图13所示。

图13 服务状态管理页面图

4 结 语

本系统基于B/S架构模式,利用了数据解析、服务分发、JDBC、元数据等关键技术,成功设计并实现了一个动态数据服务发布引擎,并详细描述了系统功能结构和数据服务处理流程。与行业API服务接口管理系统相关软件相比,该系统易用性较高,创新点在于可快速实现视图、表的CRUD快速数据服务封装及发布,实现外部系统的快速调用。本系统的数据服务采用了Restful架构风格,具有可重用性、简单性、可扩展性等特点。该系统在投入多个政务数据共享交换项目中使用,大大地促进了政务数据共享和开发,能够解决政府或企业各部门间“信息孤岛”的问题,且运行稳定,具有很高的使用价值。

猜你喜欢
数据服务数据源调用
大数据时代高校图书馆数据服务的困境及优化路径
地理空间大数据服务自然资源调查监测的方向分析
基于数据中台的数据服务建设规范研究
核电项目物项调用管理的应用研究
一种面向传感云的数据源质量评估框架
利用属性集相关性与源误差的多真值发现方法研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
基于HGAV的多源异构数据集成方法①
数据服务依赖图模型及自动组合方法研究
数据有增加 图表自适应