动态数据服务发布引擎设计与实现_第1页
动态数据服务发布引擎设计与实现_第2页
动态数据服务发布引擎设计与实现_第3页
动态数据服务发布引擎设计与实现_第4页
动态数据服务发布引擎设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

动态瞄服务发布引擎设计与实现许雪松;王峥淳B丹丹;王雨辰;康燕燕【摘要】针对数据分散、格式不一、数据共享困难的问题,提出将多源异构数据动态统一发布成数据服务方法.设计研发一套基于B/S架构的动态数据服务发布引擎,以Restful架构风格实现对服务使用者的调用请求进行识别、解析、校验、操作执行并将执行结果返回给服务请求者解决了数据模型的异构性、数据抽取、数据合成等问题.【期刊名称】《计算机应用与软件》【年(卷),期】2018(035)007【总页数】6页(P126-130,177)【关键词】数据服务;异构数据;发布引擎;Restful架构;调用请求【作者】许雪松;王峥;郭丹丹;王雨辰;康燕燕【作者单位】航天科工智慧产业发展有限公司北京100854;国家开发银行北京市分行北京100031;航天科工智慧产业发展有限公司北京100854;航天科工智慧产业发展有限公司北京100854;北京市西城区规划管理信息中心北京100035【正文语种】中文【中图分类】TP311.120引言在信息化快速发展的今天,数据打通和共享是[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系统技术架构图本系统采用SpringMVC设计,最上层为服务接口层与WEB表现层,服务接口层采用REST风格的WebService。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快速数据服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论